diff options
author | Niedermann IT-Dienstleistungen <stefan-niedermann@users.noreply.github.com> | 2020-10-03 23:47:12 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-10-03 23:47:12 +0300 |
commit | 04d85196c4dc37b5ab237191d9f73792fb33a484 (patch) | |
tree | c1fd5e6e10034b335b35680c4d517369a7e2234f /app/src/main/java/it/niedermann/nextcloud/deck/api | |
parent | 8e0b4546aa33b3215a394e55a8fbee33f72621fb (diff) |
🎨 Store colors as integer in database (#603)
* #556 Store colors as integer in database - UI should only use @ColorInt from model
* Merge master
Signed-off-by: Stefan Niedermann <info@niedermann.it>
* #556 Store colors as integer in database
Signed-off-by: Stefan Niedermann <info@niedermann.it>
* #556 Store colors as integer in database
Signed-off-by: Stefan Niedermann <info@niedermann.it>
* merged into branch
Co-authored-by: desperateCoder <echotodevnull@gmail.com>
Diffstat (limited to 'app/src/main/java/it/niedermann/nextcloud/deck/api')
-rw-r--r-- | app/src/main/java/it/niedermann/nextcloud/deck/api/JsonToEntityParser.java | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/api/JsonToEntityParser.java b/app/src/main/java/it/niedermann/nextcloud/deck/api/JsonToEntityParser.java index ebd66a8fa..6a51d226f 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/api/JsonToEntityParser.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/api/JsonToEntityParser.java @@ -1,5 +1,7 @@ package it.niedermann.nextcloud.deck.api; +import android.graphics.Color; + import com.google.gson.JsonArray; import com.google.gson.JsonElement; import com.google.gson.JsonObject; @@ -37,6 +39,7 @@ import it.niedermann.nextcloud.deck.model.ocs.projects.OcsProjectResource; import it.niedermann.nextcloud.deck.model.ocs.user.GroupMemberUIDs; import it.niedermann.nextcloud.deck.model.ocs.user.OcsUser; import it.niedermann.nextcloud.deck.model.ocs.user.OcsUserList; +import it.niedermann.nextcloud.deck.util.ColorUtil; import static it.niedermann.nextcloud.deck.exceptions.DeckException.Hint.CAPABILITIES_VERSION_NOT_PARSABLE; import static it.niedermann.nextcloud.deck.exceptions.TraceableException.makeTraceableIfFails; @@ -543,8 +546,8 @@ public class JsonToEntityParser { } if (caps.has("theming")) { JsonObject theming = caps.getAsJsonObject("theming"); - capabilities.setColor(theming.get("color").getAsString()); - capabilities.setTextColor(theming.get("color-text").getAsString()); + capabilities.setColor(getColorAsInt(theming, "color")); + capabilities.setTextColor(getColorAsInt(theming, "color-text")); } } capabilities.setDeckVersion(Version.of(version)); @@ -553,6 +556,19 @@ public class JsonToEntityParser { return capabilities; } + private static int getColorAsInt(JsonObject element, String field) { + String rawString = getNullAsEmptyString(element.get(field)); + try { + if (!rawString.trim().isEmpty()) { + String colorAsString = ColorUtil.formatColorToParsableHexString(rawString); + return Color.parseColor(colorAsString); + } + } catch (Exception e) { + // Do mostly nothing, return default value + } + return Color.parseColor("#757575"); + } + protected static List<Activity> parseActivity(JsonObject e) { DeckLog.verbose(e.toString()); List<Activity> activityList = new ArrayList<>(); @@ -617,7 +633,7 @@ public class JsonToEntityParser { //todo: last modified! // label.setLastModified(get); label.setTitle(getNullAsEmptyString(e.get("title"))); - label.setColor(getNullAsEmptyString(e.get("color"))); + label.setColor(getColorAsInt(e, "color")); }, e); return label; } |