summaryrefslogtreecommitdiff
path: root/src/com/android/launcher3/util/SettingsCache.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/launcher3/util/SettingsCache.java')
-rw-r--r--src/com/android/launcher3/util/SettingsCache.java8
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