Add state_color support
This commit is contained in:
parent
b029146bf3
commit
96b3e7c739
@ -7,6 +7,7 @@ class CardData {
|
||||
List conditions;
|
||||
bool showEmpty;
|
||||
List stateFilter;
|
||||
bool stateColor = true;
|
||||
|
||||
EntityWrapper get entity => entities.isNotEmpty ? entities[0] : null;
|
||||
|
||||
@ -152,7 +153,6 @@ class EntitiesCardData extends CardData {
|
||||
String title;
|
||||
String icon;
|
||||
bool showHeaderToggle;
|
||||
bool stateColor;
|
||||
|
||||
@override
|
||||
Widget buildCardWidget() {
|
||||
@ -163,8 +163,8 @@ class EntitiesCardData extends CardData {
|
||||
//Parsing card data
|
||||
title = rawData["title"];
|
||||
icon = rawData['icon'];
|
||||
stateColor = rawData['state_color'] ?? false;
|
||||
showHeaderToggle = rawData['show_header_toggle'] ?? false;
|
||||
stateColor = rawData['state_color'] ?? true;
|
||||
//Parsing entities
|
||||
var rawEntities = rawData["entities"] ?? [];
|
||||
rawEntities.forEach((rawEntity) {
|
||||
@ -196,6 +196,7 @@ class EntitiesCardData extends CardData {
|
||||
service: rawEntity["service"],
|
||||
actionName: rawEntity["action_name"]
|
||||
),
|
||||
stateColor: rawEntity["state_color"] ?? stateColor,
|
||||
uiAction: EntityUIAction(rawEntityData: uiActionData)
|
||||
)
|
||||
);
|
||||
@ -213,6 +214,7 @@ class EntitiesCardData extends CardData {
|
||||
name: rawEntity["name"],
|
||||
url: rawEntity["url"]
|
||||
),
|
||||
stateColor: rawEntity["state_color"] ?? stateColor,
|
||||
uiAction: EntityUIAction(rawEntityData: uiActionData)
|
||||
)
|
||||
);
|
||||
@ -221,6 +223,7 @@ class EntitiesCardData extends CardData {
|
||||
entities.add(
|
||||
EntityWrapper(
|
||||
entity: e,
|
||||
stateColor: rawEntity["state_color"] ?? stateColor,
|
||||
overrideName: rawEntity["name"],
|
||||
overrideIcon: rawEntity["icon"],
|
||||
stateFilter: rawEntity['state_filter'] ?? [],
|
||||
@ -256,6 +259,7 @@ class AlarmPanelCardData extends CardData {
|
||||
if (HomeAssistant().entities.isExist(entitiId)) {
|
||||
entities.add(EntityWrapper(
|
||||
entity: HomeAssistant().entities.get(entitiId),
|
||||
stateColor: true,
|
||||
overrideName: name
|
||||
));
|
||||
} else {
|
||||
@ -287,6 +291,7 @@ class ButtonCardData extends CardData {
|
||||
icon = rawData['icon'];
|
||||
showName = rawData['show_name'] ?? true;
|
||||
showIcon = rawData['show_icon'] ?? true;
|
||||
stateColor = rawData['state_color'] ?? true;
|
||||
if (rawData.containsKey('icon_height')) {
|
||||
String rawHeight = rawData['icon_height'];
|
||||
if (rawHeight.contains('px')) {
|
||||
@ -305,6 +310,7 @@ class ButtonCardData extends CardData {
|
||||
entity: HomeAssistant().entities.get(entitiId),
|
||||
overrideName: name,
|
||||
overrideIcon: icon,
|
||||
stateColor: stateColor,
|
||||
uiAction: EntityUIAction(
|
||||
rawEntityData: rawData
|
||||
)
|
||||
@ -319,6 +325,7 @@ class ButtonCardData extends CardData {
|
||||
name,
|
||||
icon,
|
||||
),
|
||||
stateColor: stateColor,
|
||||
uiAction: EntityUIAction(
|
||||
rawEntityData: rawData
|
||||
)
|
||||
@ -404,6 +411,7 @@ class GlanceCardData extends CardData {
|
||||
entities.add(
|
||||
EntityWrapper(
|
||||
entity: e,
|
||||
stateColor: stateColor,
|
||||
overrideName: rawEntity["name"],
|
||||
overrideIcon: rawEntity["icon"],
|
||||
stateFilter: rawEntity['state_filter'] ?? [],
|
||||
|
@ -60,11 +60,19 @@ class EntityIcon extends StatelessWidget {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final EntityWrapper entityWrapper = EntityModel.of(context).entityWrapper;
|
||||
Color iconColor;
|
||||
if (color != null) {
|
||||
iconColor = color;
|
||||
} else if (entityWrapper.stateColor) {
|
||||
iconColor = HAClientTheme().getColorByEntityState(entityWrapper.entity.state, context);
|
||||
} else {
|
||||
iconColor = HAClientTheme().getOffStateColor(context);
|
||||
}
|
||||
return Padding(
|
||||
padding: padding,
|
||||
child: buildIcon(
|
||||
entityWrapper,
|
||||
color ?? HAClientTheme().getColorByEntityState(entityWrapper.entity.state, context)
|
||||
iconColor
|
||||
),
|
||||
);
|
||||
}
|
||||
|
@ -4,6 +4,7 @@ class EntityWrapper {
|
||||
|
||||
String overrideName;
|
||||
final String overrideIcon;
|
||||
final bool stateColor;
|
||||
EntityUIAction uiAction;
|
||||
Entity entity;
|
||||
String unitOfMeasurementOverride;
|
||||
@ -18,6 +19,7 @@ class EntityWrapper {
|
||||
this.entity,
|
||||
this.overrideIcon,
|
||||
this.overrideName,
|
||||
this.stateColor: true,
|
||||
this.uiAction,
|
||||
this.stateFilter
|
||||
}) {
|
||||
|
Reference in New Issue
Block a user