Merge "Add developer option to tweak All Apps from Overview threshold." into udc-qpr-dev am: 7eeaae488e

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/23355109

Change-Id: I285ab5298bee842c7c68ed67890fddfd61a2b30d
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Treehugger Robot
2023-05-22 16:17:04 +00:00
committed by Automerger Merge Worker
5 changed files with 44 additions and 6 deletions
@@ -23,6 +23,7 @@ import static android.content.pm.PackageManager.MATCH_DISABLED_COMPONENTS;
import static android.view.View.GONE;
import static android.view.View.VISIBLE;
import static com.android.launcher3.LauncherPrefs.ALL_APPS_OVERVIEW_THRESHOLD;
import static com.android.launcher3.settings.SettingsActivity.EXTRA_FRAGMENT_ARG_KEY;
import static com.android.launcher3.uioverrides.plugins.PluginManagerWrapper.PLUGIN_CHANGED;
import static com.android.launcher3.uioverrides.plugins.PluginManagerWrapper.pluginEnabledKey;
@@ -59,6 +60,7 @@ import androidx.preference.PreferenceFragmentCompat;
import androidx.preference.PreferenceGroup;
import androidx.preference.PreferenceScreen;
import androidx.preference.PreferenceViewHolder;
import androidx.preference.SeekBarPreference;
import androidx.preference.SwitchPreference;
import com.android.launcher3.LauncherPrefs;
@@ -106,6 +108,9 @@ public class DeveloperOptionsFragment extends PreferenceFragmentCompat {
loadPluginPrefs();
maybeAddSandboxCategory();
addOnboardingPrefsCatergory();
if (FeatureFlags.ENABLE_ALL_APPS_FROM_OVERVIEW.get()) {
addAllAppsFromOverviewCatergory();
}
if (getActivity() != null) {
getActivity().setTitle("Developer Options");
@@ -393,6 +398,33 @@ public class DeveloperOptionsFragment extends PreferenceFragmentCompat {
}
}
private void addAllAppsFromOverviewCatergory() {
PreferenceCategory category = newCategory("All Apps from Overview Config");
SeekBarPreference thresholdPref = new SeekBarPreference(getContext());
thresholdPref.setTitle("Threshold to open All Apps from Overview");
thresholdPref.setSingleLineTitle(false);
// These values are 100x swipe up shift value (100 = where overview sits).
thresholdPref.setMax(500);
thresholdPref.setMin(105);
thresholdPref.setUpdatesContinuously(true);
thresholdPref.setIconSpaceReserved(false);
// Don't directly save to shared prefs, use LauncherPrefs instead.
thresholdPref.setPersistent(false);
thresholdPref.setOnPreferenceChangeListener((preference, newValue) -> {
LauncherPrefs.get(getContext()).put(ALL_APPS_OVERVIEW_THRESHOLD, newValue);
preference.setSummary(String.valueOf((int) newValue / 100f));
return true;
});
int value = LauncherPrefs.get(getContext()).get(ALL_APPS_OVERVIEW_THRESHOLD);
thresholdPref.setValue(value);
// For some reason the initial value is not triggering the summary update, so call manually.
thresholdPref.getOnPreferenceChangeListener().onPreferenceChange(thresholdPref, value);
category.addPreference(thresholdPref);
}
private String toName(String action) {
String str = action.replace("com.android.systemui.action.PLUGIN_", "")
.replace("com.android.launcher3.action.PLUGIN_", "");
@@ -23,6 +23,7 @@ import static android.widget.Toast.LENGTH_SHORT;
import static com.android.launcher3.BaseActivity.INVISIBLE_BY_STATE_HANDLER;
import static com.android.launcher3.BaseActivity.STATE_HANDLER_INVISIBILITY_FLAGS;
import static com.android.launcher3.LauncherPrefs.ALL_APPS_OVERVIEW_THRESHOLD;
import static com.android.launcher3.PagedView.INVALID_PAGE;
import static com.android.launcher3.anim.Interpolators.ACCEL_DEACCEL;
import static com.android.launcher3.anim.Interpolators.DEACCEL;
@@ -94,6 +95,7 @@ import androidx.annotation.UiThread;
import com.android.internal.util.LatencyTracker;
import com.android.launcher3.AbstractFloatingView;
import com.android.launcher3.DeviceProfile;
import com.android.launcher3.LauncherPrefs;
import com.android.launcher3.R;
import com.android.launcher3.Utilities;
import com.android.launcher3.anim.AnimationSuccessListener;
@@ -163,9 +165,6 @@ public abstract class AbsSwipeUpHandler<T extends StatefulActivity<S>,
private static final ArrayList<String> STATE_NAMES = new ArrayList<>();
/** Shift distance to transition to All Apps if ENABLE_ALL_APPS_FROM_OVERVIEW. */
public static final float ALL_APPS_SHIFT_THRESHOLD = 2f;
protected final BaseActivityInterface<S, T> mActivityInterface;
protected final InputConsumerProxy mInputConsumerProxy;
protected final ActivityInitListener mActivityInitListener;
@@ -864,7 +863,8 @@ public abstract class AbsSwipeUpHandler<T extends StatefulActivity<S>,
@UiThread
@Override
public void onCurrentShiftUpdated() {
setIsInAllAppsRegion(mCurrentShift.value >= ALL_APPS_SHIFT_THRESHOLD);
float threshold = LauncherPrefs.get(mContext).get(ALL_APPS_OVERVIEW_THRESHOLD) / 100f;
setIsInAllAppsRegion(mCurrentShift.value >= threshold);
updateSysUiFlags(mCurrentShift.value);
applyScrollAndTransform();
@@ -15,9 +15,9 @@
*/
package com.android.quickstep.util;
import static com.android.launcher3.LauncherPrefs.ALL_APPS_OVERVIEW_THRESHOLD;
import static com.android.launcher3.anim.Interpolators.DEACCEL;
import static com.android.launcher3.anim.Interpolators.LINEAR;
import static com.android.quickstep.AbsSwipeUpHandler.ALL_APPS_SHIFT_THRESHOLD;
import static com.android.quickstep.views.RecentsView.RECENTS_SCALE_PROPERTY;
import static com.android.quickstep.views.RecentsView.TASK_SECONDARY_TRANSLATION;
@@ -34,6 +34,7 @@ import androidx.annotation.Nullable;
import com.android.launcher3.DeviceProfile;
import com.android.launcher3.Launcher;
import com.android.launcher3.LauncherPrefs;
import com.android.launcher3.LauncherState;
import com.android.launcher3.Utilities;
import com.android.launcher3.anim.AnimatorPlaybackController;
@@ -188,7 +189,8 @@ public class AnimatorControllerWithResistance {
recentsOrientedState.getOrientationHandler());
float dragLengthFactor = (float) dp.heightPx / transitionDragLength;
// -1s are because 0-1 is reserved for the normal transition.
return (ALL_APPS_SHIFT_THRESHOLD - 1) / (dragLengthFactor - 1);
float threshold = LauncherPrefs.get(context).get(ALL_APPS_OVERVIEW_THRESHOLD) / 100f;
return (threshold - 1) / (dragLengthFactor - 1);
}
/**
@@ -62,6 +62,7 @@ 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 =
@@ -275,6 +275,9 @@ class LauncherPrefs(private val encryptedContext: Context) {
const val TASKBAR_PINNING_KEY = "TASKBAR_PINNING_KEY"
@JvmField val ICON_STATE = nonRestorableItem(LauncherAppState.KEY_ICON_STATE, "", true)
@JvmField
val ALL_APPS_OVERVIEW_THRESHOLD =
nonRestorableItem(LauncherAppState.KEY_ALL_APPS_OVERVIEW_THRESHOLD, 200, true)
@JvmField val THEMED_ICONS = backedUpItem(Themes.KEY_THEMED_ICONS, false, true)
@JvmField val PROMISE_ICON_IDS = backedUpItem(InstallSessionHelper.PROMISE_ICON_IDS, "")
@JvmField val WORK_EDU_STEP = backedUpItem(WorkProfileManager.KEY_WORK_EDU_STEP, 0)