From a6210b83da5afb59c4292a35dddcee5189149f5b Mon Sep 17 00:00:00 2001
From: maniac103 <dannybaumann@web.de>
Date: Fri, 31 May 2019 18:05:17 +0000
Subject: [PATCH] Parse missing fields from SSE update events. (#1383)

We previously didn't update icon, label color and value color via SSE.

Fixes #1380.

Signed-off-by: Danny Baumann <dannybaumann@web.de>
---
 mobile/src/main/java/org/openhab/habdroid/model/Widget.java | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/mobile/src/main/java/org/openhab/habdroid/model/Widget.java b/mobile/src/main/java/org/openhab/habdroid/model/Widget.java
index 26095268..a2c860c7 100644
--- a/mobile/src/main/java/org/openhab/habdroid/model/Widget.java
+++ b/mobile/src/main/java/org/openhab/habdroid/model/Widget.java
@@ -319,12 +319,16 @@ public abstract class Widget implements Parcelable {
         Item item = Item.updateFromEvent(
                 source.item(), eventPayload.getJSONObject("item"));
 
+        String icon = eventPayload.optString("icon", source.icon());
         String iconPath = determineOH2IconPath(item, source.type(),
-                source.icon(), iconFormat, !source.mappings().isEmpty());
+                icon, iconFormat, !source.mappings().isEmpty());
         return source.toBuilder()
                 .label(eventPayload.optString("label", source.label()))
                 .state(determineWidgetState(eventPayload.optString("state", null), item))
+                .labelColor(eventPayload.optString("labelcolor", source.labelColor()))
+                .valueColor(eventPayload.optString("valuecolor", source.valueColor()))
                 .item(item)
+                .icon(icon)
                 .iconPath(iconPath)
                 .build();
     }
-- 
GitLab