diff options
Diffstat (limited to 'src/com/android/launcher3/config')
-rw-r--r-- | src/com/android/launcher3/config/BaseFlags.java | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/src/com/android/launcher3/config/BaseFlags.java b/src/com/android/launcher3/config/BaseFlags.java index d6e450a8a..cb239b3de 100644 --- a/src/com/android/launcher3/config/BaseFlags.java +++ b/src/com/android/launcher3/config/BaseFlags.java @@ -21,6 +21,9 @@ import static androidx.core.util.Preconditions.checkNotNull; import android.content.ContentResolver; import android.content.Context; import android.content.SharedPreferences; +import android.database.ContentObserver; +import android.os.Handler; +import android.os.Looper; import android.provider.Settings; import androidx.annotation.GuardedBy; @@ -256,6 +259,16 @@ abstract class BaseFlags { @Override public void initialize(Context context) { contentResolver = context.getContentResolver(); + contentResolver.registerContentObserver(Settings.Global.getUriFor(getKey()), true, + new ContentObserver(new Handler(Looper.getMainLooper())) { + @Override + public void onChange(boolean selfChange) { + superInitialize(context); + }}); + superInitialize(context); + } + + private void superInitialize(Context context) { super.initialize(context); } @@ -274,10 +287,5 @@ abstract class BaseFlags { } return Settings.Global.getInt(contentResolver, getKey(), defaultValue ? 1 : 0) == 1; } - - @Override - public boolean get() { - return getFromStorage(null, getDefaultValue()); - } } } |