From 491ae55a2a461b160b64f1453576b42a49939971 Mon Sep 17 00:00:00 2001 From: estevez-dev Date: Wed, 13 Mar 2019 17:48:49 +0200 Subject: [PATCH] Resolves #299, Resolves #234 Fix entity picture url issue --- lib/entity_class/entity.class.dart | 15 ++++++++++++++- .../controls/media_player_widgets.dart | 2 +- lib/entity_widgets/entity_icon.dart | 10 +--------- 3 files changed, 16 insertions(+), 11 deletions(-) diff --git a/lib/entity_class/entity.class.dart b/lib/entity_class/entity.class.dart index fb997b6..f4f009e 100644 --- a/lib/entity_class/entity.class.dart +++ b/lib/entity_class/entity.class.dart @@ -95,7 +95,7 @@ class Entity { bool get isBadge => Entity.badgeDomains.contains(domain); String get icon => attributes["icon"] ?? ""; bool get isOn => state == EntityState.on; - String get entityPicture => attributes["entity_picture"]; + String get entityPicture => _getEntityPictureUrl(); String get unitOfMeasurement => attributes["unit_of_measurement"] ?? ""; List get childEntityIds => attributes["entity_id"] ?? []; String get lastUpdated => _getLastUpdatedFormatted(); @@ -103,6 +103,19 @@ class Entity { double get doubleState => double.tryParse(state) ?? 0.0; int get supportedFeatures => attributes["supported_features"] ?? 0; + String _getEntityPictureUrl() { + String result = attributes["entity_picture"]; + if (result == null) return result; + if (!result.startsWith("http")) { + if (result.startsWith("/")) { + result = "$homeAssistantWebHost$result"; + } else { + result = "$homeAssistantWebHost/$result"; + } + } + return result; + } + Entity(Map rawData) { update(rawData); } diff --git a/lib/entity_widgets/controls/media_player_widgets.dart b/lib/entity_widgets/controls/media_player_widgets.dart index f01d17f..3f942f6 100644 --- a/lib/entity_widgets/controls/media_player_widgets.dart +++ b/lib/entity_widgets/controls/media_player_widgets.dart @@ -81,7 +81,7 @@ class MediaPlayerWidget extends StatelessWidget { children: [ Flexible( child: Image( - image: CachedNetworkImageProvider("$homeAssistantWebHost${entity.entityPicture}"), + image: CachedNetworkImageProvider("${entity.entityPicture}"), height: 240.0, //width: 320.0, fit: BoxFit.contain, diff --git a/lib/entity_widgets/entity_icon.dart b/lib/entity_widgets/entity_icon.dart index 7cfd804..3a7f913 100644 --- a/lib/entity_widgets/entity_icon.dart +++ b/lib/entity_widgets/entity_icon.dart @@ -36,19 +36,11 @@ class EntityIcon extends StatelessWidget { image: DecorationImage( fit:BoxFit.cover, image: CachedNetworkImageProvider( - "$homeAssistantWebHost${data.entity.entityPicture}", + "${data.entity.entityPicture}", ), ) ), ); - return CircleAvatar( - radius: size/2+0, - - backgroundColor: Colors.white, - backgroundImage: CachedNetworkImageProvider( - "$homeAssistantWebHost${data.entity.entityPicture}", - ), - ); } else { String iconName = data.icon; int iconCode = 0;