From b2e7c9fe6e54dbf6a52298814aaf7c57e8fe9575 Mon Sep 17 00:00:00 2001 From: Alinson Xavier Date: Thu, 2 Jan 2020 05:27:17 -0600 Subject: [PATCH] Remove HabitNotFound exception from WidgetPreferences --- .../org/isoron/uhabits/core/preferences/Preferences.java | 6 ++++-- .../isoron/uhabits/core/preferences/WidgetPreferences.java | 5 ++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/android/uhabits-core/src/main/java/org/isoron/uhabits/core/preferences/Preferences.java b/android/uhabits-core/src/main/java/org/isoron/uhabits/core/preferences/Preferences.java index c9753b0c0..d271ce811 100644 --- a/android/uhabits-core/src/main/java/org/isoron/uhabits/core/preferences/Preferences.java +++ b/android/uhabits-core/src/main/java/org/isoron/uhabits/core/preferences/Preferences.java @@ -390,9 +390,11 @@ public class Preferences putString(key, StringUtils.joinLongs(values)); } - default long[] getLongArray(String key) + default long[] getLongArray(String key, long[] defValue) { - return StringUtils.splitLongs(getString(key, "")); + String string = getString(key, ""); + if (string.isEmpty()) return defValue; + else return StringUtils.splitLongs(string); } } } diff --git a/android/uhabits-core/src/main/java/org/isoron/uhabits/core/preferences/WidgetPreferences.java b/android/uhabits-core/src/main/java/org/isoron/uhabits/core/preferences/WidgetPreferences.java index 018652d89..255170d41 100644 --- a/android/uhabits-core/src/main/java/org/isoron/uhabits/core/preferences/WidgetPreferences.java +++ b/android/uhabits-core/src/main/java/org/isoron/uhabits/core/preferences/WidgetPreferences.java @@ -38,10 +38,10 @@ public class WidgetPreferences { } public long[] getHabitIdsFromWidgetId(int widgetId) { - long habitIds[]; + long[] habitIds; String habitIdKey = getHabitIdKey(widgetId); try { - habitIds = storage.getLongArray(habitIdKey); + habitIds = storage.getLongArray(habitIdKey, new long[]{-1}); } catch (ClassCastException e) { // Up to Loop 1.7.11, this preference was not an array, but a single // long. Trying to read the old preference causes a cast exception. @@ -49,7 +49,6 @@ public class WidgetPreferences { habitIds[0] = storage.getLong(habitIdKey, -1); storage.putLongArray(habitIdKey, habitIds); } - if (habitIds.length == 0) throw new HabitNotFoundException(); return habitIds; }