diff --git a/lib/entity_class/entity.class.dart b/lib/entity_class/entity.class.dart index 6af169b..eb89590 100644 --- a/lib/entity_class/entity.class.dart +++ b/lib/entity_class/entity.class.dart @@ -67,7 +67,6 @@ class Entity { String state; String displayState; DateTime _lastUpdated; - String thumbnailBase64; List childEntities = []; List attributesToShow = ["all"]; diff --git a/lib/entity_widgets/entity_icon.dart b/lib/entity_widgets/entity_icon.dart index c75a405..f7f7242 100644 --- a/lib/entity_widgets/entity_icon.dart +++ b/lib/entity_widgets/entity_icon.dart @@ -1,19 +1,13 @@ part of '../main.dart'; -class EntityIcon extends StatefulWidget { +class EntityIcon extends StatelessWidget { final EdgeInsetsGeometry padding; final double size; final Color color; - EntityIcon({Key key, this.padding: const EdgeInsets.fromLTRB( - Sizes.leftWidgetPadding, 0.0, 12.0, 0.0), this.size: Sizes.iconSize, this.color}) : super(key: key); - - @override - _EntityIconState createState() => _EntityIconState(); -} - -class _EntityIconState extends State { + const EntityIcon({Key key, this.color, this.size: Sizes.iconSize, this.padding: const EdgeInsets.fromLTRB( + Sizes.leftWidgetPadding, 0.0, 12.0, 0.0)}) : super(key: key); int getDefaultIconByEntityId(String entityId, String deviceClass, String state) { String domain = entityId.split(".")[0]; @@ -30,24 +24,13 @@ class _EntityIconState extends State { } } - Widget buildIcon(HomeAssistantModel homeAssistantModel, EntityWrapper data, Color color) { + Widget buildIcon(EntityWrapper data, Color color) { if (data == null) { - return Container(width: widget.size, height: widget.size,); + return null; } - if ((data.entity.domain == "camera" || data.entity.domain == "media_player") && data.entity.thumbnailBase64 == null) { - homeAssistantModel.homeAssistant.updateEntityThumbnail(data.entity); - } - if (data.entity.thumbnailBase64 != null) { + if (data.entity.entityPicture != null) { return CircleAvatar( - radius: widget.size/2, - backgroundColor: Colors.white, - backgroundImage: MemoryImage( - Base64Codec().decode(data.entity.thumbnailBase64), - ) - ); - } else if (data.entity.entityPicture != null && data.entity.domain != "camera" && data.entity.domain != "media_player") { - return CircleAvatar( - radius: widget.size/2, + radius: size/2, backgroundColor: Colors.white, backgroundImage: CachedNetworkImageProvider( "$homeAssistantWebHost${data.entity.entityPicture}", @@ -64,7 +47,7 @@ class _EntityIconState extends State { } return Icon( IconData(iconCode, fontFamily: 'Material Design Icons'), - size: widget.size, + size: size, color: color, ); } @@ -73,13 +56,11 @@ class _EntityIconState extends State { @override Widget build(BuildContext context) { final EntityWrapper entityWrapper = EntityModel.of(context).entityWrapper; - final HomeAssistantModel homeAssistantModel = HomeAssistantModel.of(context); return Padding( - padding: widget.padding, + padding: padding, child: buildIcon( - homeAssistantModel, entityWrapper, - widget.color ?? EntityColor.stateColor(entityWrapper.entity.state) + color ?? EntityColor.stateColor(entityWrapper.entity.state) ), ); } diff --git a/lib/home_assistant.class.dart b/lib/home_assistant.class.dart index 41ea943..36075eb 100644 --- a/lib/home_assistant.class.dart +++ b/lib/home_assistant.class.dart @@ -253,30 +253,6 @@ class HomeAssistant { await _sendInitialMessage("get_services").then((data) => Logger.d("We actually don`t need the list of servcies for now")); } - Future updateEntityThumbnail(Entity entity) async { - if (entity.thumbnailBase64 == null) { - _incrementMessageId(); - _messageResolver[_currentMessageId] = Completer(); - String type; - if (entity.domain == "camera") { - type = "camera_thumbnail"; - } else if (entity.domain == "media_player") { - type = "media_player_thumbnail"; - } - _send('{"id": $_currentMessageId, "type": "$type", "entity_id": "${entity.entityId}"}', false); - await _messageResolver[_currentMessageId].future.then((data){ - if (data['success']) { - Logger.d("Got entity thumbnail for ${entity - .entityId}. Content-type: ${data['result']['content_type']}"); - if (!data['result']['content_type'].contains('xml')) { - entity.thumbnailBase64 = data['result']['content']; - } - } - }); - } - - } - _incrementMessageId() { _currentMessageId += 1; }