diff options
author | Sunny Goyal <sunnygoyal@google.com> | 2023-10-06 11:28:25 -0700 |
---|---|---|
committer | Sunny Goyal <sunnygoyal@google.com> | 2023-10-06 14:35:56 -0700 |
commit | 576f7a5e808a0b82bc8da27cc1b6a21d07ed9f45 (patch) | |
tree | a0010d1b30b000a3993e1ba22a2cf4a3d2c52857 | |
parent | 447b09057a6702556d085df4d4f7e3b85e142b77 (diff) | |
download | Launcher3-576f7a5e808a0b82bc8da27cc1b6a21d07ed9f45.tar.gz |
Removing some usage of shared prefs
Bug: 301661768
Test: Presubmit
Flag: N/A
Change-Id: I158e9a5148d2c9404ea4d2e9e239696b29dbeb20
9 files changed, 31 insertions, 80 deletions
diff --git a/src/com/android/launcher3/AppWidgetResizeFrame.java b/src/com/android/launcher3/AppWidgetResizeFrame.java index 7b0d71b959..189db21085 100644 --- a/src/com/android/launcher3/AppWidgetResizeFrame.java +++ b/src/com/android/launcher3/AppWidgetResizeFrame.java @@ -3,6 +3,7 @@ package com.android.launcher3; import static com.android.launcher3.CellLayout.SPRING_LOADED_PROGRESS; import static com.android.launcher3.LauncherAnimUtils.LAYOUT_HEIGHT; import static com.android.launcher3.LauncherAnimUtils.LAYOUT_WIDTH; +import static com.android.launcher3.LauncherPrefs.RECONFIGURABLE_WIDGET_EDUCATION_TIP_SEEN; import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_WIDGET_RESIZE_COMPLETED; import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_WIDGET_RESIZE_STARTED; import static com.android.launcher3.views.BaseDragLayer.LAYOUT_X; @@ -55,8 +56,6 @@ public class AppWidgetResizeFrame extends AbstractFloatingView implements View.O private static final float RESIZE_THRESHOLD = 0.66f; private static final int RESIZE_TRANSITION_DURATION_MS = 150; - private static final String KEY_RECONFIGURABLE_WIDGET_EDUCATION_TIP_SEEN = - "launcher.reconfigurable_widget_education_tip_seen"; private static final Rect sTmpRect = new Rect(); private static final Rect sTmpRect2 = new Rect(); @@ -276,9 +275,8 @@ public class AppWidgetResizeFrame extends AbstractFloatingView implements View.O if (!hasSeenReconfigurableWidgetEducationTip()) { post(() -> { if (showReconfigurableWidgetEducationTip() != null) { - mLauncher.getSharedPrefs().edit() - .putBoolean(KEY_RECONFIGURABLE_WIDGET_EDUCATION_TIP_SEEN, - true).apply(); + LauncherPrefs.get(getContext()).put( + RECONFIGURABLE_WIDGET_EDUCATION_TIP_SEEN, true); } }); } @@ -872,8 +870,7 @@ public class AppWidgetResizeFrame extends AbstractFloatingView implements View.O } private boolean hasSeenReconfigurableWidgetEducationTip() { - return mLauncher.getSharedPrefs() - .getBoolean(KEY_RECONFIGURABLE_WIDGET_EDUCATION_TIP_SEEN, false) + return LauncherPrefs.get(getContext()).get(RECONFIGURABLE_WIDGET_EDUCATION_TIP_SEEN) || Utilities.isRunningInTestHarness(); } } diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java index fd9ff50910..b6156cc093 100644 --- a/src/com/android/launcher3/Launcher.java +++ b/src/com/android/launcher3/Launcher.java @@ -237,7 +237,6 @@ import com.android.launcher3.widget.model.WidgetsListBaseEntry; import com.android.launcher3.widget.picker.WidgetsFullSheet; import com.android.systemui.plugins.LauncherOverlayPlugin; import com.android.systemui.plugins.PluginListener; -import com.android.systemui.plugins.shared.LauncherExterns; import com.android.systemui.plugins.shared.LauncherOverlayManager; import com.android.systemui.plugins.shared.LauncherOverlayManager.LauncherOverlay; @@ -259,7 +258,7 @@ import java.util.stream.Stream; * Default launcher application. */ public class Launcher extends StatefulActivity<LauncherState> - implements LauncherExterns, Callbacks, InvariantDeviceProfile.OnIDPChangeListener, + implements Callbacks, InvariantDeviceProfile.OnIDPChangeListener, PluginListener<LauncherOverlayPlugin> { public static final String TAG = "Launcher"; @@ -696,7 +695,7 @@ public class Launcher extends StatefulActivity<LauncherState> @Override public void onPluginConnected(LauncherOverlayPlugin overlayManager, Context context) { - switchOverlay(() -> overlayManager.createOverlayManager(this, this)); + switchOverlay(() -> overlayManager.createOverlayManager(this)); } @Override @@ -2971,7 +2970,7 @@ public class Launcher extends StatefulActivity<LauncherState> for (int j = 0; j < layout.getChildCount(); j++) { Object tag = layout.getChildAt(j).getTag(); if (tag != null) { - writer.println(prefix + " " + tag.toString()); + writer.println(prefix + " " + tag); } } } @@ -2981,7 +2980,7 @@ public class Launcher extends StatefulActivity<LauncherState> for (int j = 0; j < layout.getChildCount(); j++) { Object tag = layout.getChildAt(j).getTag(); if (tag != null) { - writer.println(prefix + " " + tag.toString()); + writer.println(prefix + " " + tag); } } } @@ -3247,7 +3246,6 @@ public class Launcher extends StatefulActivity<LauncherState> /** * Call this after onCreate to set or clear overlay. */ - @Override public void setLauncherOverlay(LauncherOverlay overlay) { mWorkspace.setLauncherOverlay(overlay); } @@ -3355,16 +3353,10 @@ public class Launcher extends StatefulActivity<LauncherState> return mModelWriter; } - @Override public SharedPreferences getSharedPrefs() { return mSharedPrefs; } - @Override - public SharedPreferences getDevicePrefs() { - return LauncherPrefs.getDevicePrefs(this); - } - public int getOrientation() { return mOldConfig.orientation; } diff --git a/src/com/android/launcher3/LauncherPrefs.kt b/src/com/android/launcher3/LauncherPrefs.kt index 4db2fca8c5..f2df230152 100644 --- a/src/com/android/launcher3/LauncherPrefs.kt +++ b/src/com/android/launcher3/LauncherPrefs.kt @@ -24,7 +24,6 @@ import androidx.annotation.VisibleForTesting import com.android.launcher3.BuildConfig.WIDGET_ON_FIRST_SCREEN import com.android.launcher3.LauncherFiles.DEVICE_PREFERENCES_KEY import com.android.launcher3.LauncherFiles.SHARED_PREFERENCES_KEY -import com.android.launcher3.allapps.WorkProfileManager import com.android.launcher3.model.DeviceGridState import com.android.launcher3.pm.InstallSessionHelper import com.android.launcher3.provider.RestoreDbTask @@ -312,7 +311,7 @@ class LauncherPrefs(private val encryptedContext: Context) { val THEMED_ICONS = backedUpItem(Themes.KEY_THEMED_ICONS, false, EncryptionType.MOVE_TO_DEVICE_PROTECTED) @JvmField val PROMISE_ICON_IDS = backedUpItem(InstallSessionHelper.PROMISE_ICON_IDS, "") - @JvmField val WORK_EDU_STEP = backedUpItem(WorkProfileManager.KEY_WORK_EDU_STEP, 0) + @JvmField val WORK_EDU_STEP = backedUpItem("showed_work_profile_edu", 0) @JvmField val WORKSPACE_SIZE = backedUpItem( @@ -380,6 +379,16 @@ class LauncherPrefs(private val encryptedContext: Context) { encryptionType = EncryptionType.DEVICE_PROTECTED ) + // Preferences for widget configurations + @JvmField + val RECONFIGURABLE_WIDGET_EDUCATION_TIP_SEEN = + backedUpItem("launcher.reconfigurable_widget_education_tip_seen", false) + @JvmField + val WIDGETS_EDUCATION_DIALOG_SEEN = + backedUpItem("launcher.widgets_education_dialog_seen", false) + @JvmField + val WIDGETS_EDUCATION_TIP_SEEN = backedUpItem("launcher.widgets_education_tip_seen", false) + @VisibleForTesting @JvmStatic fun <T> backedUpItem( diff --git a/src/com/android/launcher3/allapps/WorkProfileManager.java b/src/com/android/launcher3/allapps/WorkProfileManager.java index 05ed9ba953..ac0e5a43f6 100644 --- a/src/com/android/launcher3/allapps/WorkProfileManager.java +++ b/src/com/android/launcher3/allapps/WorkProfileManager.java @@ -62,8 +62,6 @@ import java.util.stream.Stream; public class WorkProfileManager implements PersonalWorkSlidingTabStrip.OnActivePageChangedListener { private static final String TAG = "WorkProfileManager"; - public static final String KEY_WORK_EDU_STEP = "showed_work_profile_edu"; - public static final int STATE_ENABLED = 1; public static final int STATE_DISABLED = 2; public static final int STATE_TRANSITION = 3; diff --git a/src/com/android/launcher3/widget/BaseWidgetSheet.java b/src/com/android/launcher3/widget/BaseWidgetSheet.java index 742d2dcf32..fc9c7744a7 100644 --- a/src/com/android/launcher3/widget/BaseWidgetSheet.java +++ b/src/com/android/launcher3/widget/BaseWidgetSheet.java @@ -16,6 +16,7 @@ package com.android.launcher3.widget; import static com.android.app.animation.Interpolators.EMPHASIZED; +import static com.android.launcher3.LauncherPrefs.WIDGETS_EDUCATION_TIP_SEEN; import android.content.Context; import android.graphics.Canvas; @@ -40,6 +41,7 @@ import com.android.launcher3.DragSource; import com.android.launcher3.DropTarget.DragObject; import com.android.launcher3.Insettable; import com.android.launcher3.Launcher; +import com.android.launcher3.LauncherPrefs; import com.android.launcher3.R; import com.android.launcher3.Utilities; import com.android.launcher3.dragndrop.DragOptions; @@ -63,8 +65,6 @@ public abstract class BaseWidgetSheet extends AbstractSlideInView<Launcher> /** The default number of cells that can fit horizontally in a widget sheet. */ public static final int DEFAULT_MAX_HORIZONTAL_SPANS = 4; - protected static final String KEY_WIDGETS_EDUCATION_TIP_SEEN = - "launcher.widgets_education_tip_seen"; protected final Rect mInsets = new Rect(); /* Touch handling related member variables. */ @@ -330,15 +330,14 @@ public abstract class BaseWidgetSheet extends AbstractSlideInView<Launcher> /* arrowXCoord= */coords[0] + view.getWidth() / 2, /* yCoord= */coords[1]); if (arrowTipView != null) { - mActivityContext.getSharedPrefs().edit() - .putBoolean(KEY_WIDGETS_EDUCATION_TIP_SEEN, true).apply(); + LauncherPrefs.get(getContext()).put(WIDGETS_EDUCATION_TIP_SEEN, true); } return arrowTipView; } /** Returns {@code true} if tip has previously been shown on any of {@link BaseWidgetSheet}. */ protected boolean hasSeenEducationTip() { - return mActivityContext.getSharedPrefs().getBoolean(KEY_WIDGETS_EDUCATION_TIP_SEEN, false) + return LauncherPrefs.get(getContext()).get(WIDGETS_EDUCATION_TIP_SEEN) || Utilities.isRunningInTestHarness(); } diff --git a/src/com/android/launcher3/widget/picker/WidgetsFullSheet.java b/src/com/android/launcher3/widget/picker/WidgetsFullSheet.java index 37ec65cf2d..78116ae080 100644 --- a/src/com/android/launcher3/widget/picker/WidgetsFullSheet.java +++ b/src/com/android/launcher3/widget/picker/WidgetsFullSheet.java @@ -18,6 +18,7 @@ package com.android.launcher3.widget.picker; import static android.view.View.MeasureSpec.makeMeasureSpec; import static com.android.launcher3.LauncherAnimUtils.VIEW_TRANSLATE_Y; +import static com.android.launcher3.LauncherPrefs.WIDGETS_EDUCATION_DIALOG_SEEN; import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_WIDGETSTRAY_SEARCHED; import static com.android.launcher3.testing.shared.TestProtocol.NORMAL_STATE_ORDINAL; @@ -56,6 +57,7 @@ import androidx.recyclerview.widget.RecyclerView; import com.android.launcher3.DeviceProfile; import com.android.launcher3.Launcher; +import com.android.launcher3.LauncherPrefs; import com.android.launcher3.R; import com.android.launcher3.Utilities; import com.android.launcher3.anim.PendingAnimation; @@ -98,8 +100,6 @@ public class WidgetsFullSheet extends BaseWidgetSheet // resolution or landscape on phone. This ratio defines the max percentage of content area that // the table can display. private static final float RECOMMENDATION_TABLE_HEIGHT_RATIO = 0.75f; - private static final String KEY_WIDGETS_EDUCATION_DIALOG_SEEN = - "launcher.widgets_education_dialog_seen"; private final UserManagerState mUserManagerState = new UserManagerState(); private final UserHandle mCurrentUser = Process.myUserHandle(); @@ -853,15 +853,13 @@ public class WidgetsFullSheet extends BaseWidgetSheet /** Shows education dialog for widgets. */ private WidgetsEduView showEducationDialog() { - mActivityContext.getSharedPrefs().edit() - .putBoolean(KEY_WIDGETS_EDUCATION_DIALOG_SEEN, true).apply(); + LauncherPrefs.get(getContext()).put(WIDGETS_EDUCATION_DIALOG_SEEN, true); return WidgetsEduView.showEducationDialog(mActivityContext); } /** Returns {@code true} if education dialog has previously been shown. */ protected boolean hasSeenEducationDialog() { - return mActivityContext.getSharedPrefs() - .getBoolean(KEY_WIDGETS_EDUCATION_DIALOG_SEEN, false) + return LauncherPrefs.get(getContext()).get(WIDGETS_EDUCATION_DIALOG_SEEN) || Utilities.isRunningInTestHarness(); } diff --git a/src_plugins/com/android/systemui/plugins/LauncherOverlayPlugin.java b/src_plugins/com/android/systemui/plugins/LauncherOverlayPlugin.java index 9e223556bc..32f0216943 100644 --- a/src_plugins/com/android/systemui/plugins/LauncherOverlayPlugin.java +++ b/src_plugins/com/android/systemui/plugins/LauncherOverlayPlugin.java @@ -18,7 +18,6 @@ package com.android.systemui.plugins; import android.app.Activity; import com.android.systemui.plugins.annotations.ProvidesInterface; -import com.android.systemui.plugins.shared.LauncherExterns; import com.android.systemui.plugins.shared.LauncherOverlayManager; /** @@ -29,6 +28,6 @@ public interface LauncherOverlayPlugin extends Plugin { String ACTION = "com.android.systemui.action.PLUGIN_LAUNCHER_OVERLAY"; int VERSION = 1; - LauncherOverlayManager createOverlayManager(Activity activity, LauncherExterns externs); + LauncherOverlayManager createOverlayManager(Activity activity); } diff --git a/src_plugins/com/android/systemui/plugins/shared/LauncherExterns.java b/src_plugins/com/android/systemui/plugins/shared/LauncherExterns.java deleted file mode 100644 index 173b4540e6..0000000000 --- a/src_plugins/com/android/systemui/plugins/shared/LauncherExterns.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright (C) 2016 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.android.systemui.plugins.shared; - -import android.content.SharedPreferences; - -import com.android.systemui.plugins.shared.LauncherOverlayManager.LauncherOverlay; - -/** - * This interface defines the set of methods that the Launcher activity exposes. Methods - * here should be safe to call from classes outside of com.android.launcher3.* - */ -public interface LauncherExterns { - - /** - * Returns the shared main preference - */ - SharedPreferences getSharedPrefs(); - - /** - * Returns the device specific preference - */ - SharedPreferences getDevicePrefs(); - - /** - * Sets the overlay on the target activity - */ - void setLauncherOverlay(LauncherOverlay overlay); -} diff --git a/tests/src/com/android/launcher3/ui/WorkProfileTest.java b/tests/src/com/android/launcher3/ui/WorkProfileTest.java index ac710fd705..be8f4d386d 100644 --- a/tests/src/com/android/launcher3/ui/WorkProfileTest.java +++ b/tests/src/com/android/launcher3/ui/WorkProfileTest.java @@ -15,6 +15,7 @@ */ package com.android.launcher3.ui; +import static com.android.launcher3.LauncherPrefs.WORK_EDU_STEP; import static com.android.launcher3.LauncherState.ALL_APPS; import static com.android.launcher3.LauncherState.NORMAL; import static com.android.launcher3.allapps.AllAppsStore.DEFER_UPDATES_TEST; @@ -29,6 +30,7 @@ import android.view.View; import androidx.recyclerview.widget.RecyclerView.ViewHolder; +import com.android.launcher3.LauncherPrefs; import com.android.launcher3.R; import com.android.launcher3.allapps.ActivityAllAppsContainerView; import com.android.launcher3.allapps.AllAppsPagedView; @@ -174,7 +176,7 @@ public class WorkProfileTest extends AbstractLauncherUiTest { assumeTrue(mWorkProfileSetupSuccessful); waitForWorkTabSetup(); executeOnLauncher(l -> { - l.getSharedPrefs().edit().putInt(WorkProfileManager.KEY_WORK_EDU_STEP, 0).commit(); + LauncherPrefs.get(l).putSync(WORK_EDU_STEP.to(0)); ((AllAppsPagedView) l.getAppsView().getContentView()).setCurrentPage(WORK_PAGE); l.getAppsView().getWorkManager().reset(); }); |