diff options
Diffstat (limited to 'src/com/android/launcher3/LauncherAppState.java')
-rw-r--r-- | src/com/android/launcher3/LauncherAppState.java | 36 |
1 files changed, 34 insertions, 2 deletions
diff --git a/src/com/android/launcher3/LauncherAppState.java b/src/com/android/launcher3/LauncherAppState.java index 9db8c82a03..9a19526fa2 100644 --- a/src/com/android/launcher3/LauncherAppState.java +++ b/src/com/android/launcher3/LauncherAppState.java @@ -21,8 +21,11 @@ import static android.content.Context.RECEIVER_EXPORTED; import static com.android.launcher3.LauncherPrefs.ICON_STATE; import static com.android.launcher3.LauncherPrefs.THEMED_ICONS; +import static com.android.launcher3.config.FeatureFlags.ENABLE_SMARTSPACE_REMOVAL; +import static com.android.launcher3.model.LoaderTask.SMARTSPACE_ON_HOME_SCREEN; import static com.android.launcher3.util.Executors.MODEL_EXECUTOR; import static com.android.launcher3.util.SettingsCache.NOTIFICATION_BADGING_URI; +import static com.android.launcher3.util.SettingsCache.PRIVATE_SPACE_HIDE_WHEN_LOCKED_URI; import android.content.ComponentName; import android.content.Context; @@ -62,8 +65,6 @@ import com.android.launcher3.widget.custom.CustomWidgetManager; public class LauncherAppState implements SafeCloseable { public static final String ACTION_FORCE_ROLOAD = "force-reload-launcher"; - public static final String KEY_ICON_STATE = "pref_icon_shape_path"; - public static final String KEY_ALL_APPS_OVERVIEW_THRESHOLD = "pref_all_apps_overview_threshold"; // We do not need any synchronization for this variable as its only written on UI thread. public static final MainThreadInitializedObject<LauncherAppState> INSTANCE = @@ -123,6 +124,23 @@ public class LauncherAppState implements SafeCloseable { .addUserEventListener(mModel::onUserEvent); mOnTerminateCallback.add(userChangeListener::close); + if (ENABLE_SMARTSPACE_REMOVAL.get()) { + OnSharedPreferenceChangeListener firstPagePinnedItemListener = + new OnSharedPreferenceChangeListener() { + @Override + public void onSharedPreferenceChanged( + SharedPreferences sharedPreferences, String key) { + if (SMARTSPACE_ON_HOME_SCREEN.equals(key)) { + mModel.forceReload(); + } + } + }; + LauncherPrefs.getPrefs(mContext).registerOnSharedPreferenceChangeListener( + firstPagePinnedItemListener); + mOnTerminateCallback.add(() -> LauncherPrefs.getPrefs(mContext) + .unregisterOnSharedPreferenceChangeListener(firstPagePinnedItemListener)); + } + LockedUserState.get(context).runOnUserUnlocked(() -> { CustomWidgetManager cwm = CustomWidgetManager.INSTANCE.get(mContext); cwm.setWidgetRefreshCallback(mModel::refreshAndBindWidgetsAndShortcuts); @@ -149,6 +167,8 @@ public class LauncherAppState implements SafeCloseable { onNotificationSettingsChanged(settingsCache.getValue(NOTIFICATION_BADGING_URI)); mOnTerminateCallback.add(() -> settingsCache.unregister(NOTIFICATION_BADGING_URI, notificationLister)); + // Register an observer to notify Launcher about Private Space settings toggle. + registerPrivateSpaceHideWhenLockListener(settingsCache); } public LauncherAppState(Context context, @Nullable String iconCacheFileName) { @@ -171,6 +191,18 @@ public class LauncherAppState implements SafeCloseable { } } + private void registerPrivateSpaceHideWhenLockListener(SettingsCache settingsCache) { + SettingsCache.OnChangeListener psHideWhenLockChangedListener = + this::onPrivateSpaceHideWhenLockChanged; + settingsCache.register(PRIVATE_SPACE_HIDE_WHEN_LOCKED_URI, psHideWhenLockChangedListener); + mOnTerminateCallback.add(() -> settingsCache.unregister(PRIVATE_SPACE_HIDE_WHEN_LOCKED_URI, + psHideWhenLockChangedListener)); + } + + private void onPrivateSpaceHideWhenLockChanged(boolean isPrivateSpaceHideOnLockEnabled) { + mModel.forceReload(); + } + private void refreshAndReloadLauncher() { LauncherIcons.clearPool(); mIconCache.updateIconParams( |