From 154b1c928b9e6417fce55ec08f3fd2f4e2105e39 Mon Sep 17 00:00:00 2001 From: Tony Wickham Date: Mon, 3 May 2021 20:58:21 -0700 Subject: [PATCH 1/2] Cleanup/consolidate normal<->all apps interpolators We no longer need to have a different behavior for no button mode, so make PortraitStatesTouchController the source of truth Also remove unused ANIM_ALL_APPS_HEADER_FADE & RECENTS_FADE_THRESHOLD Test: manually in 0 button and 3 button modes Bug: 183001675 Bug: 175137718 Change-Id: If0bc2a6d6d3bf1649fad45226a4e6055f30e4880 --- ...ButtonNavbarToOverviewTouchController.java | 45 ------------------- .../PortraitStatesTouchController.java | 6 --- .../states/StateAnimationConfig.java | 10 ++--- 3 files changed, 4 insertions(+), 57 deletions(-) diff --git a/quickstep/src/com/android/launcher3/uioverrides/touchcontrollers/NoButtonNavbarToOverviewTouchController.java b/quickstep/src/com/android/launcher3/uioverrides/touchcontrollers/NoButtonNavbarToOverviewTouchController.java index 2d95ce2b98..729e2cb5c6 100644 --- a/quickstep/src/com/android/launcher3/uioverrides/touchcontrollers/NoButtonNavbarToOverviewTouchController.java +++ b/quickstep/src/com/android/launcher3/uioverrides/touchcontrollers/NoButtonNavbarToOverviewTouchController.java @@ -18,20 +18,11 @@ package com.android.launcher3.uioverrides.touchcontrollers; import static com.android.launcher3.LauncherAnimUtils.VIEW_BACKGROUND_COLOR; import static com.android.launcher3.LauncherAnimUtils.newCancelListener; -import static com.android.launcher3.LauncherState.ALL_APPS; import static com.android.launcher3.LauncherState.HINT_STATE; import static com.android.launcher3.LauncherState.NORMAL; import static com.android.launcher3.LauncherState.OVERVIEW; import static com.android.launcher3.Utilities.EDGE_NAV_BAR; -import static com.android.launcher3.anim.Interpolators.ACCEL; import static com.android.launcher3.anim.Interpolators.ACCEL_DEACCEL; -import static com.android.launcher3.anim.Interpolators.DEACCEL; -import static com.android.launcher3.anim.Interpolators.DEACCEL_3; -import static com.android.launcher3.states.StateAnimationConfig.ANIM_ALL_APPS_FADE; -import static com.android.launcher3.states.StateAnimationConfig.ANIM_ALL_APPS_HEADER_FADE; -import static com.android.launcher3.states.StateAnimationConfig.ANIM_WORKSPACE_FADE; -import static com.android.launcher3.states.StateAnimationConfig.ANIM_WORKSPACE_SCALE; -import static com.android.launcher3.states.StateAnimationConfig.ANIM_WORKSPACE_TRANSLATE; import static com.android.launcher3.util.VibratorWrapper.OVERVIEW_HAPTIC; import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_OVERVIEW_DISABLED; @@ -45,7 +36,6 @@ import com.android.launcher3.Launcher; import com.android.launcher3.LauncherState; import com.android.launcher3.Utilities; import com.android.launcher3.anim.AnimatorPlaybackController; -import com.android.launcher3.anim.Interpolators; import com.android.launcher3.states.StateAnimationConfig; import com.android.launcher3.util.VibratorWrapper; import com.android.quickstep.SystemUiProxy; @@ -269,39 +259,4 @@ public class NoButtonNavbarToOverviewTouchController extends PortraitStatesTouch private float dpiFromPx(float pixels) { return Utilities.dpiFromPx(pixels, mLauncher.getResources().getDisplayMetrics().densityDpi); } - - @Override - protected StateAnimationConfig getConfigForStates( - LauncherState fromState, LauncherState toState) { - if (fromState == NORMAL && toState == ALL_APPS) { - StateAnimationConfig builder = new StateAnimationConfig(); - builder.setInterpolator(ANIM_ALL_APPS_HEADER_FADE, Interpolators.clampToProgress( - ACCEL, - 0, - ALL_APPS_CONTENT_FADE_MAX_CLAMPING_THRESHOLD)); - builder.setInterpolator(ANIM_ALL_APPS_FADE, Interpolators.clampToProgress( - ACCEL, - ALL_APPS_CONTENT_FADE_MIN_CLAMPING_THRESHOLD, - ALL_APPS_CONTENT_FADE_MAX_CLAMPING_THRESHOLD)); - - // Get workspace out of the way quickly, to prepare for potential pause. - builder.setInterpolator(ANIM_WORKSPACE_SCALE, DEACCEL_3); - builder.setInterpolator(ANIM_WORKSPACE_TRANSLATE, DEACCEL_3); - builder.setInterpolator(ANIM_WORKSPACE_FADE, DEACCEL_3); - return builder; - } else if (fromState == ALL_APPS && toState == NORMAL) { - StateAnimationConfig builder = new StateAnimationConfig(); - - builder.setInterpolator(ANIM_ALL_APPS_FADE, Interpolators.clampToProgress( - DEACCEL, - 1 - ALL_APPS_CONTENT_FADE_MAX_CLAMPING_THRESHOLD, - 1 - ALL_APPS_CONTENT_FADE_MIN_CLAMPING_THRESHOLD)); - builder.setInterpolator(ANIM_ALL_APPS_HEADER_FADE, Interpolators.clampToProgress( - DEACCEL, - 1 - ALL_APPS_CONTENT_FADE_MAX_CLAMPING_THRESHOLD, - 1)); - return builder; - } - return super.getConfigForStates(fromState, toState); - } } diff --git a/quickstep/src/com/android/launcher3/uioverrides/touchcontrollers/PortraitStatesTouchController.java b/quickstep/src/com/android/launcher3/uioverrides/touchcontrollers/PortraitStatesTouchController.java index b8f9452f36..adb025209c 100644 --- a/quickstep/src/com/android/launcher3/uioverrides/touchcontrollers/PortraitStatesTouchController.java +++ b/quickstep/src/com/android/launcher3/uioverrides/touchcontrollers/PortraitStatesTouchController.java @@ -58,12 +58,6 @@ public class PortraitStatesTouchController extends AbstractStateChangeTouchContr */ protected static final float ALL_APPS_CONTENT_FADE_MIN_CLAMPING_THRESHOLD = 0.4f; - - /** - * The progress at which recents will begin fading out when swiping up from overview. - */ - private static final float RECENTS_FADE_THRESHOLD = 0.88f; - private final PortraitOverviewStateTouchHelper mOverviewPortraitStateTouchHelper; public PortraitStatesTouchController(Launcher l) { diff --git a/src/com/android/launcher3/states/StateAnimationConfig.java b/src/com/android/launcher3/states/StateAnimationConfig.java index 2f26b4f70f..abd3b9604b 100644 --- a/src/com/android/launcher3/states/StateAnimationConfig.java +++ b/src/com/android/launcher3/states/StateAnimationConfig.java @@ -59,7 +59,6 @@ public class StateAnimationConfig { ANIM_OVERVIEW_FADE, ANIM_ALL_APPS_FADE, ANIM_WORKSPACE_SCRIM_FADE, - ANIM_ALL_APPS_HEADER_FADE, ANIM_OVERVIEW_MODAL, ANIM_DEPTH, ANIM_OVERVIEW_ACTIONS_FADE, @@ -78,12 +77,11 @@ public class StateAnimationConfig { public static final int ANIM_OVERVIEW_FADE = 9; public static final int ANIM_ALL_APPS_FADE = 10; public static final int ANIM_WORKSPACE_SCRIM_FADE = 11; - public static final int ANIM_ALL_APPS_HEADER_FADE = 12; // e.g. predictions - public static final int ANIM_OVERVIEW_MODAL = 13; - public static final int ANIM_DEPTH = 14; - public static final int ANIM_OVERVIEW_ACTIONS_FADE = 15; + public static final int ANIM_OVERVIEW_MODAL = 12; + public static final int ANIM_DEPTH = 13; + public static final int ANIM_OVERVIEW_ACTIONS_FADE = 14; - private static final int ANIM_TYPES_COUNT = 16; + private static final int ANIM_TYPES_COUNT = 15; protected final Interpolator[] mInterpolators = new Interpolator[ANIM_TYPES_COUNT]; From 3ab273da0c14f2777f77dab31696fbb2dbe8a97a Mon Sep 17 00:00:00 2001 From: Samuel Fufa Date: Mon, 3 May 2021 08:12:24 -0500 Subject: [PATCH 2/2] [Search][Motion] Modify interpolator for AllApps background scrim Also rename ANIM_WORKSPACE_SCRIM_FADE to ANIM_SCRIM_FADE since the scrim is shared between states now. Bug: 183001675 Test: Manual in 3 button and 0 button modes Change-Id: Ice83b54480bdf74155e8593c421b68d7186cf78a --- .../PortraitStatesTouchController.java | 25 ++++++++++++++++--- .../FallbackRecentsStateController.java | 4 +-- .../WorkspaceStateTransitionAnimation.java | 5 ++-- .../states/StateAnimationConfig.java | 4 +-- 4 files changed, 28 insertions(+), 10 deletions(-) diff --git a/quickstep/src/com/android/launcher3/uioverrides/touchcontrollers/PortraitStatesTouchController.java b/quickstep/src/com/android/launcher3/uioverrides/touchcontrollers/PortraitStatesTouchController.java index adb025209c..3c83d25b71 100644 --- a/quickstep/src/com/android/launcher3/uioverrides/touchcontrollers/PortraitStatesTouchController.java +++ b/quickstep/src/com/android/launcher3/uioverrides/touchcontrollers/PortraitStatesTouchController.java @@ -24,6 +24,7 @@ import static com.android.launcher3.LauncherState.OVERVIEW; import static com.android.launcher3.anim.Interpolators.ACCEL; import static com.android.launcher3.anim.Interpolators.DEACCEL; import static com.android.launcher3.states.StateAnimationConfig.ANIM_ALL_APPS_FADE; +import static com.android.launcher3.states.StateAnimationConfig.ANIM_SCRIM_FADE; import android.view.MotionEvent; @@ -56,7 +57,17 @@ public class PortraitStatesTouchController extends AbstractStateChangeTouchContr /** * Minimum clamping progress for fading in all apps content */ - protected static final float ALL_APPS_CONTENT_FADE_MIN_CLAMPING_THRESHOLD = 0.4f; + protected static final float ALL_APPS_CONTENT_FADE_MIN_CLAMPING_THRESHOLD = 0.5f; + + /** + * Minimum clamping progress for fading in all apps scrim + */ + protected static final float ALL_APPS_SCRIM_VISIBLE_THRESHOLD = .1f; + + /** + * Maximum clamping progress for opaque all apps scrim + */ + protected static final float ALL_APPS_SCRIM_OPAQUE_THRESHOLD = .5f; private final PortraitOverviewStateTouchHelper mOverviewPortraitStateTouchHelper; @@ -116,14 +127,22 @@ public class PortraitStatesTouchController extends AbstractStateChangeTouchContr private StateAnimationConfig getNormalToAllAppsAnimation() { StateAnimationConfig builder = new StateAnimationConfig(); builder.setInterpolator(ANIM_ALL_APPS_FADE, Interpolators.clampToProgress(ACCEL, - 0, ALL_APPS_CONTENT_FADE_MAX_CLAMPING_THRESHOLD)); + ALL_APPS_CONTENT_FADE_MIN_CLAMPING_THRESHOLD, + ALL_APPS_CONTENT_FADE_MAX_CLAMPING_THRESHOLD)); + builder.setInterpolator(ANIM_SCRIM_FADE, Interpolators.clampToProgress(ACCEL, + ALL_APPS_SCRIM_VISIBLE_THRESHOLD, + ALL_APPS_SCRIM_OPAQUE_THRESHOLD)); return builder; } private StateAnimationConfig getAllAppsToNormalAnimation() { StateAnimationConfig builder = new StateAnimationConfig(); builder.setInterpolator(ANIM_ALL_APPS_FADE, Interpolators.clampToProgress(DEACCEL, - 1 - ALL_APPS_CONTENT_FADE_MAX_CLAMPING_THRESHOLD, 1)); + 1 - ALL_APPS_CONTENT_FADE_MAX_CLAMPING_THRESHOLD, + 1 - ALL_APPS_CONTENT_FADE_MIN_CLAMPING_THRESHOLD)); + builder.setInterpolator(ANIM_SCRIM_FADE, Interpolators.clampToProgress(DEACCEL, + 1 - ALL_APPS_SCRIM_OPAQUE_THRESHOLD, + 1 - ALL_APPS_SCRIM_VISIBLE_THRESHOLD)); return builder; } diff --git a/quickstep/src/com/android/quickstep/fallback/FallbackRecentsStateController.java b/quickstep/src/com/android/quickstep/fallback/FallbackRecentsStateController.java index 7067dbcc0d..e4d148cb76 100644 --- a/quickstep/src/com/android/quickstep/fallback/FallbackRecentsStateController.java +++ b/quickstep/src/com/android/quickstep/fallback/FallbackRecentsStateController.java @@ -20,7 +20,7 @@ import static com.android.launcher3.states.StateAnimationConfig.ANIM_OVERVIEW_MO import static com.android.launcher3.states.StateAnimationConfig.ANIM_OVERVIEW_SCALE; import static com.android.launcher3.states.StateAnimationConfig.ANIM_OVERVIEW_TRANSLATE_X; import static com.android.launcher3.states.StateAnimationConfig.ANIM_OVERVIEW_TRANSLATE_Y; -import static com.android.launcher3.states.StateAnimationConfig.ANIM_WORKSPACE_SCRIM_FADE; +import static com.android.launcher3.states.StateAnimationConfig.ANIM_SCRIM_FADE; import static com.android.launcher3.states.StateAnimationConfig.SKIP_OVERVIEW; import static com.android.quickstep.views.RecentsView.ADJACENT_PAGE_OFFSET; import static com.android.quickstep.views.RecentsView.FULLSCREEN_PROGRESS; @@ -98,6 +98,6 @@ public class FallbackRecentsStateController implements StateHandler