diff --git a/quickstep/src/com/android/launcher3/model/PredictionUpdateTask.java b/quickstep/src/com/android/launcher3/model/PredictionUpdateTask.java index e504141024..2fcbe4e0fe 100644 --- a/quickstep/src/com/android/launcher3/model/PredictionUpdateTask.java +++ b/quickstep/src/com/android/launcher3/model/PredictionUpdateTask.java @@ -15,8 +15,9 @@ */ package com.android.launcher3.model; +import static com.android.launcher3.LauncherPrefs.nonRestorableItem; +import static com.android.launcher3.EncryptionType.ENCRYPTED; import static com.android.launcher3.LauncherSettings.Favorites.ITEM_TYPE_DEEP_SHORTCUT; -import static com.android.launcher3.model.QuickstepModelDelegate.LAST_PREDICTION_ENABLED_STATE; import static com.android.quickstep.InstantAppResolverImpl.COMPONENT_CLASS_MARKER; import android.app.prediction.AppTarget; @@ -29,6 +30,7 @@ import android.os.UserHandle; import androidx.annotation.NonNull; +import com.android.launcher3.ConstantItem; import com.android.launcher3.LauncherAppState; import com.android.launcher3.LauncherPrefs; import com.android.launcher3.model.BgDataModel.FixedContainerItems; @@ -47,6 +49,9 @@ import java.util.stream.Collectors; */ public class PredictionUpdateTask extends BaseModelUpdateTask { + public static final ConstantItem LAST_PREDICTION_ENABLED = + nonRestorableItem("last_prediction_enabled_state", true, ENCRYPTED); + private final List mTargets; private final PredictorState mPredictorState; @@ -61,8 +66,7 @@ public class PredictionUpdateTask extends BaseModelUpdateTask { Context context = app.getContext(); // TODO: remove this - LauncherPrefs.getDevicePrefs(context).edit() - .putBoolean(LAST_PREDICTION_ENABLED_STATE, !mTargets.isEmpty()).apply(); + LauncherPrefs.get(context).put(LAST_PREDICTION_ENABLED, !mTargets.isEmpty()); Set usersForChangedShortcuts = dataModel.extraItems.get(mPredictorState.containerId).items.stream() diff --git a/quickstep/src/com/android/launcher3/model/QuickstepModelDelegate.java b/quickstep/src/com/android/launcher3/model/QuickstepModelDelegate.java index 32361a862a..667f78498e 100644 --- a/quickstep/src/com/android/launcher3/model/QuickstepModelDelegate.java +++ b/quickstep/src/com/android/launcher3/model/QuickstepModelDelegate.java @@ -18,7 +18,8 @@ package com.android.launcher3.model; import static android.text.format.DateUtils.DAY_IN_MILLIS; import static android.text.format.DateUtils.formatElapsedTime; -import static com.android.launcher3.LauncherPrefs.getDevicePrefs; +import static com.android.launcher3.LauncherPrefs.nonRestorableItem; +import static com.android.launcher3.EncryptionType.ENCRYPTED; import static com.android.launcher3.LauncherSettings.Favorites.CONTAINER_HOTSEAT_PREDICTION; import static com.android.launcher3.LauncherSettings.Favorites.CONTAINER_PREDICTION; import static com.android.launcher3.LauncherSettings.Favorites.CONTAINER_WIDGETS_PREDICTION; @@ -39,7 +40,6 @@ import android.app.prediction.AppTarget; import android.app.prediction.AppTargetEvent; import android.content.Context; import android.content.Intent; -import android.content.SharedPreferences; import android.content.pm.LauncherActivityInfo; import android.content.pm.LauncherApps; import android.content.pm.ShortcutInfo; @@ -55,8 +55,10 @@ import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; import androidx.annotation.WorkerThread; +import com.android.launcher3.ConstantItem; import com.android.launcher3.InvariantDeviceProfile; import com.android.launcher3.LauncherAppState; +import com.android.launcher3.LauncherPrefs; import com.android.launcher3.config.FeatureFlags; import com.android.launcher3.logger.LauncherAtom; import com.android.launcher3.logging.InstanceId; @@ -86,14 +88,15 @@ import java.util.stream.IntStream; */ public class QuickstepModelDelegate extends ModelDelegate { - public static final String LAST_PREDICTION_ENABLED_STATE = "last_prediction_enabled_state"; - private static final String LAST_SNAPSHOT_TIME_MILLIS = "LAST_SNAPSHOT_TIME_MILLIS"; private static final String BUNDLE_KEY_ADDED_APP_WIDGETS = "added_app_widgets"; private static final int NUM_OF_RECOMMENDED_WIDGETS_PREDICATION = 20; private static final boolean IS_DEBUG = false; private static final String TAG = "QuickstepModelDelegate"; + private static final ConstantItem LAST_SNAPSHOT_TIME_MILLIS = + nonRestorableItem("LAST_SNAPSHOT_TIME_MILLIS", 0L, ENCRYPTED); + @VisibleForTesting final PredictorState mAllAppsState = new PredictorState(CONTAINER_PREDICTION, "all_apps_predictions"); @@ -211,8 +214,8 @@ public class QuickstepModelDelegate extends ModelDelegate { super.modelLoadComplete(); // Log snapshot of the model - SharedPreferences prefs = getDevicePrefs(mApp.getContext()); - long lastSnapshotTimeMillis = prefs.getLong(LAST_SNAPSHOT_TIME_MILLIS, 0); + LauncherPrefs prefs = LauncherPrefs.get(mApp.getContext()); + long lastSnapshotTimeMillis = prefs.get(LAST_SNAPSHOT_TIME_MILLIS); // Log snapshot only if previous snapshot was older than a day long now = System.currentTimeMillis(); if (now - lastSnapshotTimeMillis < DAY_IN_MILLIS) { @@ -233,7 +236,7 @@ public class QuickstepModelDelegate extends ModelDelegate { StatsLogCompatManager.writeSnapshot(info.buildProto(parent), instanceId); } additionalSnapshotEvents(instanceId); - prefs.edit().putLong(LAST_SNAPSHOT_TIME_MILLIS, now).apply(); + prefs.put(LAST_SNAPSHOT_TIME_MILLIS, now); } // Only register for launcher snapshot logging if this is the primary ModelDelegate diff --git a/quickstep/src/com/android/quickstep/logging/SettingsChangeLogger.java b/quickstep/src/com/android/quickstep/logging/SettingsChangeLogger.java index d3a01f256b..f8d695ccde 100644 --- a/quickstep/src/com/android/quickstep/logging/SettingsChangeLogger.java +++ b/quickstep/src/com/android/quickstep/logging/SettingsChangeLogger.java @@ -26,7 +26,7 @@ import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCH import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_THEMED_ICON_DISABLED; import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_THEMED_ICON_ENABLED; import static com.android.launcher3.model.DeviceGridState.KEY_WORKSPACE_SIZE; -import static com.android.launcher3.model.QuickstepModelDelegate.LAST_PREDICTION_ENABLED_STATE; +import static com.android.launcher3.model.PredictionUpdateTask.LAST_PREDICTION_ENABLED; import static com.android.launcher3.util.DisplayController.CHANGE_NAVIGATION_MODE; import static com.android.launcher3.util.SettingsCache.NOTIFICATION_BADGING_URI; import static com.android.launcher3.util.Themes.KEY_THEMED_ICONS; @@ -155,13 +155,12 @@ public class SettingsChangeLogger implements @Override public void onSharedPreferenceChanged(SharedPreferences prefs, String key) { - if (LAST_PREDICTION_ENABLED_STATE.equals(key) + if (LAST_PREDICTION_ENABLED.getSharedPrefKey().equals(key) || KEY_WORKSPACE_SIZE.equals(key) || KEY_THEMED_ICONS.equals(key) || mLoggablePrefs.containsKey(key)) { - mHomeScreenSuggestionEvent = getDevicePrefs(mContext) - .getBoolean(LAST_PREDICTION_ENABLED_STATE, true) + mHomeScreenSuggestionEvent = LauncherPrefs.get(mContext).get(LAST_PREDICTION_ENABLED) ? LAUNCHER_HOME_SCREEN_SUGGESTIONS_ENABLED : LAUNCHER_HOME_SCREEN_SUGGESTIONS_DISABLED; diff --git a/src/com/android/launcher3/LauncherPrefs.kt b/src/com/android/launcher3/LauncherPrefs.kt index f2df230152..e822cca1a5 100644 --- a/src/com/android/launcher3/LauncherPrefs.kt +++ b/src/com/android/launcher3/LauncherPrefs.kt @@ -413,7 +413,6 @@ class LauncherPrefs(private val encryptedContext: Context) { type ) - @VisibleForTesting @JvmStatic fun nonRestorableItem( sharedPrefKey: String,