This repository has been archived on 2023-11-18. You can view files and clone it, but cannot push or open issues or pull requests.
ha_client/lib/entity_class/entity_wrapper.class.dart

85 lines
1.8 KiB
Dart
Raw Normal View History

2018-11-15 19:08:47 +02:00
part of '../main.dart';
class EntityWrapper {
String displayName;
String icon;
2018-12-14 14:28:23 +02:00
EntityUIAction uiAction;
2018-11-15 19:08:47 +02:00
Entity entity;
EntityWrapper({
this.entity,
String icon,
String displayName,
2018-12-14 14:28:23 +02:00
this.uiAction
}) {
2018-11-15 19:08:47 +02:00
this.icon = icon ?? entity.icon;
this.displayName = displayName ?? entity.displayName;
}
void handleTap() {
2018-12-14 14:28:23 +02:00
switch (uiAction.tapAction) {
case EntityUIAction.toggle: {
eventBus.fire(
ServiceCallEvent("homeassistant", "toggle", entity.entityId, null));
break;
}
2018-12-14 14:28:23 +02:00
case EntityUIAction.callService: {
if (uiAction.tapService != null) {
eventBus.fire(
ServiceCallEvent(uiAction.tapService.split(".")[0],
uiAction.tapService.split(".")[1], null,
uiAction.tapServiceData));
}
break;
}
2018-12-14 14:28:23 +02:00
case EntityUIAction.none: {
break;
}
2018-12-14 14:28:23 +02:00
case EntityUIAction.moreInfo: {
eventBus.fire(
new ShowEntityPageEvent(entity));
break;
}
2018-12-14 14:28:23 +02:00
default: {
break;
}
}
}
void handleHold() {
2018-12-14 14:28:23 +02:00
switch (uiAction.holdAction) {
case EntityUIAction.toggle: {
eventBus.fire(
ServiceCallEvent("homeassistant", "toggle", entity.entityId, null));
break;
}
2018-12-14 14:28:23 +02:00
case EntityUIAction.callService: {
if (uiAction.holdService != null) {
eventBus.fire(
ServiceCallEvent(uiAction.holdService.split(".")[0],
uiAction.holdService.split(".")[1], null,
uiAction.holdServiceData));
}
break;
}
2018-12-14 14:28:23 +02:00
case EntityUIAction.moreInfo: {
eventBus.fire(
new ShowEntityPageEvent(entity));
break;
}
default: {
break;
}
}
}
2018-11-15 19:08:47 +02:00
}