diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/GBApplication.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/GBApplication.java index 298ed18d..12453253 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/GBApplication.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/GBApplication.java @@ -33,7 +33,6 @@ import android.os.Build; import android.os.Build.VERSION; import android.preference.PreferenceManager; import android.provider.ContactsContract.PhoneLookup; -import android.support.annotation.Nullable; import android.support.v4.content.LocalBroadcastManager; import android.util.Log; import android.util.TypedValue; @@ -377,7 +376,7 @@ public class GBApplication extends Application { if (blacklist.isEmpty()) { editor.putStringSet(GBPrefs.PACKAGE_BLACKLIST, null); } else { - editor.putStringSet(GBPrefs.PACKAGE_BLACKLIST, blacklist); + Prefs.putStringSet(editor, GBPrefs.PACKAGE_BLACKLIST, blacklist); } editor.apply(); } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/Prefs.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/Prefs.java index 7e8f83cb..3a13319a 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/Prefs.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/Prefs.java @@ -19,6 +19,7 @@ package nodomain.freeyourgadget.gadgetbridge.util; import android.content.SharedPreferences; import android.util.Log; +import java.util.HashSet; import java.util.Set; /** @@ -162,4 +163,16 @@ public class Prefs { public SharedPreferences getPreferences() { return preferences; } + + /** + * Ugly workaround for Set preferences not consistently applying. + * @param editor + * @param preference + * @param value + */ + public static void putStringSet(SharedPreferences.Editor editor, String preference, HashSet value) { + editor.putStringSet(preference, null); + editor.commit(); + editor.putStringSet(preference, new HashSet<>(value)); + } }