diff options
Diffstat (limited to 'src/com/android/launcher3/util/SettingsCache.java')
-rw-r--r-- | src/com/android/launcher3/util/SettingsCache.java | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/com/android/launcher3/util/SettingsCache.java b/src/com/android/launcher3/util/SettingsCache.java index 10611c7211..0c5b7225d3 100644 --- a/src/com/android/launcher3/util/SettingsCache.java +++ b/src/com/android/launcher3/util/SettingsCache.java @@ -47,7 +47,7 @@ import java.util.concurrent.CopyOnWriteArrayList; * * Cache will also be updated if a key queried is missing (even if it has no listeners registered). */ -public class SettingsCache extends ContentObserver { +public class SettingsCache extends ContentObserver implements SafeCloseable { /** Hidden field Settings.Secure.NOTIFICATION_BADGING */ public static final Uri NOTIFICATION_BADGING_URI = @@ -69,7 +69,6 @@ public class SettingsCache extends ContentObserver { private final Map<Uri, CopyOnWriteArrayList<OnChangeListener>> mListenerMap = new HashMap<>(); protected final ContentResolver mResolver; - /** * Singleton instance */ @@ -82,6 +81,11 @@ public class SettingsCache extends ContentObserver { } @Override + public void close() { + mResolver.unregisterContentObserver(this); + } + + @Override public void onChange(boolean selfChange, Uri uri) { // We use default of 1, but if we're getting an onChange call, can assume a non-default // value will exist |