diff --git a/quickstep/src/com/android/launcher3/uioverrides/states/QuickstepAtomicAnimationFactory.java b/quickstep/src/com/android/launcher3/uioverrides/states/QuickstepAtomicAnimationFactory.java index 2d7fe69d3b..4d2f9652ad 100644 --- a/quickstep/src/com/android/launcher3/uioverrides/states/QuickstepAtomicAnimationFactory.java +++ b/quickstep/src/com/android/launcher3/uioverrides/states/QuickstepAtomicAnimationFactory.java @@ -42,17 +42,10 @@ import static com.android.launcher3.states.StateAnimationConfig.ANIM_OVERVIEW_SC 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_SCRIM_FADE; -import static com.android.launcher3.states.StateAnimationConfig.ANIM_VERTICAL_PROGRESS; 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.uioverrides.touchcontrollers.PortraitStatesTouchController.ALL_APPS_CONTENT_FADE_MAX_CLAMPING_THRESHOLD; -import static com.android.launcher3.uioverrides.touchcontrollers.PortraitStatesTouchController.ALL_APPS_CONTENT_FADE_MIN_CLAMPING_THRESHOLD; -import static com.android.launcher3.uioverrides.touchcontrollers.PortraitStatesTouchController.ALL_APPS_SCRIM_OPAQUE_THRESHOLD; -import static com.android.launcher3.uioverrides.touchcontrollers.PortraitStatesTouchController.ALL_APPS_SCRIM_VISIBLE_THRESHOLD; import static com.android.quickstep.views.RecentsView.RECENTS_SCALE_PROPERTY; -import static com.android.systemui.animation.Interpolators.EMPHASIZED_ACCELERATE; -import static com.android.systemui.animation.Interpolators.EMPHASIZED_DECELERATE; import android.animation.ValueAnimator; @@ -60,8 +53,8 @@ import com.android.launcher3.CellLayout; import com.android.launcher3.Hotseat; import com.android.launcher3.LauncherState; import com.android.launcher3.Workspace; -import com.android.launcher3.anim.Interpolators; import com.android.launcher3.states.StateAnimationConfig; +import com.android.launcher3.touch.AllAppsSwipeController; import com.android.launcher3.uioverrides.QuickstepLauncher; import com.android.launcher3.util.DisplayController; import com.android.quickstep.util.RecentsAtomicAnimationFactory; @@ -182,23 +175,9 @@ public class QuickstepAtomicAnimationFactory extends } config.duration = Math.max(config.duration, mHintToNormalDuration); } else if (fromState == ALL_APPS && toState == NORMAL) { - boolean isTablet = mActivity.getDeviceProfile().isTablet; - config.setInterpolator(ANIM_ALL_APPS_FADE, - isTablet ? FINAL_FRAME : Interpolators.clampToProgress(LINEAR, - 1 - ALL_APPS_CONTENT_FADE_MAX_CLAMPING_THRESHOLD, - 1 - ALL_APPS_CONTENT_FADE_MIN_CLAMPING_THRESHOLD)); - config.setInterpolator(ANIM_SCRIM_FADE, Interpolators.clampToProgress(LINEAR, - 1 - ALL_APPS_SCRIM_OPAQUE_THRESHOLD, - 1 - ALL_APPS_SCRIM_VISIBLE_THRESHOLD)); - config.setInterpolator(ANIM_VERTICAL_PROGRESS, EMPHASIZED_ACCELERATE); - if (!isTablet) { - config.setInterpolator(ANIM_WORKSPACE_FADE, INSTANT); - } + AllAppsSwipeController.applyAllAppsToNormalConfig(mActivity, config); } else if (fromState == NORMAL && toState == ALL_APPS) { - if (mActivity.getDeviceProfile().isTablet) { - config.setInterpolator(ANIM_VERTICAL_PROGRESS, EMPHASIZED_DECELERATE); - } - // TODO(b/231682175): centralize this setup in AllAppsSwipeController + AllAppsSwipeController.applyNormalToAllAppsAnimConfig(mActivity, config); } } } diff --git a/quickstep/src/com/android/launcher3/uioverrides/touchcontrollers/PortraitStatesTouchController.java b/quickstep/src/com/android/launcher3/uioverrides/touchcontrollers/PortraitStatesTouchController.java index e56c90c20c..9efbc34a17 100644 --- a/quickstep/src/com/android/launcher3/uioverrides/touchcontrollers/PortraitStatesTouchController.java +++ b/quickstep/src/com/android/launcher3/uioverrides/touchcontrollers/PortraitStatesTouchController.java @@ -21,21 +21,8 @@ import static com.android.launcher3.AbstractFloatingView.getTopOpenViewWithType; import static com.android.launcher3.LauncherState.ALL_APPS; import static com.android.launcher3.LauncherState.NORMAL; import static com.android.launcher3.LauncherState.OVERVIEW; -import static com.android.launcher3.anim.Interpolators.FINAL_FRAME; -import static com.android.launcher3.anim.Interpolators.INSTANT; -import static com.android.launcher3.anim.Interpolators.LINEAR; -import static com.android.launcher3.states.StateAnimationConfig.ANIM_ALL_APPS_FADE; -import static com.android.launcher3.states.StateAnimationConfig.ANIM_DEPTH; -import static com.android.launcher3.states.StateAnimationConfig.ANIM_HOTSEAT_FADE; -import static com.android.launcher3.states.StateAnimationConfig.ANIM_HOTSEAT_SCALE; -import static com.android.launcher3.states.StateAnimationConfig.ANIM_HOTSEAT_TRANSLATE; -import static com.android.launcher3.states.StateAnimationConfig.ANIM_SCRIM_FADE; -import static com.android.launcher3.states.StateAnimationConfig.ANIM_VERTICAL_PROGRESS; -import static com.android.launcher3.states.StateAnimationConfig.ANIM_WORKSPACE_FADE; -import static com.android.launcher3.states.StateAnimationConfig.ANIM_WORKSPACE_SCALE; import android.view.MotionEvent; -import android.view.animation.Interpolator; import com.android.launcher3.DeviceProfile; import com.android.launcher3.Launcher; @@ -44,6 +31,7 @@ import com.android.launcher3.allapps.AllAppsTransitionController; import com.android.launcher3.anim.Interpolators; import com.android.launcher3.states.StateAnimationConfig; import com.android.launcher3.touch.AbstractStateChangeTouchController; +import com.android.launcher3.touch.AllAppsSwipeController; import com.android.launcher3.touch.SingleAxisSwipeDetector; import com.android.launcher3.uioverrides.states.OverviewState; import com.android.quickstep.SystemUiProxy; @@ -58,53 +46,6 @@ public class PortraitStatesTouchController extends AbstractStateChangeTouchContr private static final String TAG = "PortraitStatesTouchCtrl"; - /** - * The progress at which all apps content will be fully visible. - */ - public static final float ALL_APPS_CONTENT_FADE_MAX_CLAMPING_THRESHOLD = 0.8f; - - /** - * Minimum clamping progress for fading in all apps content - */ - public static final float ALL_APPS_CONTENT_FADE_MIN_CLAMPING_THRESHOLD = 0.5f; - - /** - * Minimum clamping progress for fading in all apps scrim - */ - public static final float ALL_APPS_SCRIM_VISIBLE_THRESHOLD = .1f; - - /** - * Maximum clamping progress for opaque all apps scrim - */ - public static final float ALL_APPS_SCRIM_OPAQUE_THRESHOLD = .5f; - - // Custom timing for NORMAL -> ALL_APPS on phones only. - private static final float ALL_APPS_STATE_TRANSITION = 0.4f; - private static final float ALL_APPS_FULL_DEPTH_PROGRESS = 0.5f; - - // Custom interpolators for NORMAL -> ALL_APPS on phones only. - private static final Interpolator LINEAR_EARLY = - Interpolators.clampToProgress(LINEAR, 0f, ALL_APPS_STATE_TRANSITION); - private static final Interpolator STEP_TRANSITION = - Interpolators.clampToProgress(FINAL_FRAME, 0f, ALL_APPS_STATE_TRANSITION); - // The blur to and from All Apps is set to be complete when the interpolator is at 0.5. - public static final Interpolator BLUR = - Interpolators.clampToProgress( - Interpolators.mapToProgress(LINEAR, 0f, ALL_APPS_FULL_DEPTH_PROGRESS), - 0f, ALL_APPS_STATE_TRANSITION); - public static final Interpolator WORKSPACE_FADE = STEP_TRANSITION; - public static final Interpolator WORKSPACE_SCALE = LINEAR_EARLY; - public static final Interpolator HOTSEAT_FADE = STEP_TRANSITION; - public static final Interpolator HOTSEAT_SCALE = LINEAR_EARLY; - public static final Interpolator HOTSEAT_TRANSLATE = STEP_TRANSITION; - public static final Interpolator SCRIM_FADE = LINEAR_EARLY; - public static final Interpolator ALL_APPS_FADE = - Interpolators.clampToProgress(LINEAR, ALL_APPS_STATE_TRANSITION, 1f); - public static final Interpolator ALL_APPS_VERTICAL_PROGRESS = - Interpolators.clampToProgress( - Interpolators.mapToProgress(LINEAR, ALL_APPS_STATE_TRANSITION, 1f), - ALL_APPS_STATE_TRANSITION, 1f); - private final PortraitOverviewStateTouchHelper mOverviewPortraitStateTouchHelper; public PortraitStatesTouchController(Launcher l) { @@ -160,66 +101,15 @@ public class PortraitStatesTouchController extends AbstractStateChangeTouchContr return fromState; } - private StateAnimationConfig getNormalToAllAppsAnimation() { - StateAnimationConfig builder = new StateAnimationConfig(); - if (mLauncher.getDeviceProfile().isTablet) { - builder.setInterpolator(ANIM_ALL_APPS_FADE, INSTANT); - builder.setInterpolator(ANIM_SCRIM_FADE, - Interpolators.clampToProgress(LINEAR, - ALL_APPS_SCRIM_VISIBLE_THRESHOLD, - ALL_APPS_SCRIM_OPAQUE_THRESHOLD)); - } else { - // TODO(b/231682175): centralize this setup in AllAppsSwipeController. - builder.setInterpolator(ANIM_DEPTH, BLUR); - builder.setInterpolator(ANIM_WORKSPACE_FADE, WORKSPACE_FADE); - builder.setInterpolator(ANIM_WORKSPACE_SCALE, WORKSPACE_SCALE); - builder.setInterpolator(ANIM_HOTSEAT_FADE, HOTSEAT_FADE); - builder.setInterpolator(ANIM_HOTSEAT_SCALE, HOTSEAT_SCALE); - builder.setInterpolator(ANIM_HOTSEAT_TRANSLATE, HOTSEAT_TRANSLATE); - builder.setInterpolator(ANIM_SCRIM_FADE, SCRIM_FADE); - builder.setInterpolator(ANIM_ALL_APPS_FADE, ALL_APPS_FADE); - builder.setInterpolator(ANIM_VERTICAL_PROGRESS, ALL_APPS_VERTICAL_PROGRESS); - } - return builder; - } - - private StateAnimationConfig getAllAppsToNormalAnimation() { - StateAnimationConfig builder = new StateAnimationConfig(); - if (mLauncher.getDeviceProfile().isTablet) { - builder.setInterpolator(ANIM_ALL_APPS_FADE, FINAL_FRAME); - builder.setInterpolator(ANIM_SCRIM_FADE, - Interpolators.clampToProgress(LINEAR, - 1 - ALL_APPS_SCRIM_OPAQUE_THRESHOLD, - 1 - ALL_APPS_SCRIM_VISIBLE_THRESHOLD)); - } else { - // These interpolators are the reverse of the ones used above, so swiping out of All - // Apps feels the same as swiping into it. - // TODO(b/231682175): centralize this setup in AllAppsSwipeController. - builder.setInterpolator(ANIM_DEPTH, Interpolators.reverse(BLUR)); - builder.setInterpolator(ANIM_WORKSPACE_FADE, Interpolators.reverse(WORKSPACE_FADE)); - builder.setInterpolator(ANIM_WORKSPACE_SCALE, Interpolators.reverse(WORKSPACE_SCALE)); - builder.setInterpolator(ANIM_HOTSEAT_FADE, Interpolators.reverse(HOTSEAT_FADE)); - builder.setInterpolator(ANIM_HOTSEAT_SCALE, Interpolators.reverse(HOTSEAT_SCALE)); - builder.setInterpolator(ANIM_HOTSEAT_TRANSLATE, - Interpolators.reverse(HOTSEAT_TRANSLATE)); - builder.setInterpolator(ANIM_SCRIM_FADE, Interpolators.reverse(SCRIM_FADE)); - builder.setInterpolator(ANIM_ALL_APPS_FADE, Interpolators.reverse(ALL_APPS_FADE)); - builder.setInterpolator(ANIM_VERTICAL_PROGRESS, - Interpolators.reverse(ALL_APPS_VERTICAL_PROGRESS)); - } - return builder; - } - @Override protected StateAnimationConfig getConfigForStates( LauncherState fromState, LauncherState toState) { - final StateAnimationConfig config; + final StateAnimationConfig config = new StateAnimationConfig(); + config.userControlled = true; if (fromState == NORMAL && toState == ALL_APPS) { - config = getNormalToAllAppsAnimation(); + AllAppsSwipeController.applyNormalToAllAppsAnimConfig(mLauncher, config); } else if (fromState == ALL_APPS && toState == NORMAL) { - config = getAllAppsToNormalAnimation(); - } else { - config = new StateAnimationConfig(); + AllAppsSwipeController.applyAllAppsToNormalConfig(mLauncher, config); } return config; } diff --git a/src/com/android/launcher3/touch/AllAppsSwipeController.java b/src/com/android/launcher3/touch/AllAppsSwipeController.java index db43baa4d8..37b76fb90c 100644 --- a/src/com/android/launcher3/touch/AllAppsSwipeController.java +++ b/src/com/android/launcher3/touch/AllAppsSwipeController.java @@ -47,48 +47,88 @@ import com.android.launcher3.states.StateAnimationConfig; */ public class AllAppsSwipeController extends AbstractStateChangeTouchController { - private static final float ALLAPPS_STAGGERED_FADE_THRESHOLD = 0.5f; + private static final float ALL_APPS_CONTENT_FADE_MAX_CLAMPING_THRESHOLD = 0.8f; + private static final float ALL_APPS_CONTENT_FADE_MIN_CLAMPING_THRESHOLD = 0.5f; + private static final float ALL_APPS_SCRIM_VISIBLE_THRESHOLD = 0.1f; + private static final float ALL_APPS_STAGGERED_FADE_THRESHOLD = 0.5f; - // Custom timing for NORMAL -> ALL_APPS on phones only. - private static final float WORKSPACE_MOTION_START = 0.1667f; - private static final float ALL_APPS_STATE_TRANSITION = 0.305f; - private static final float ALL_APPS_FADE_END = 0.4717f; + public static final Interpolator ALL_APPS_SCRIM_RESPONDER = + Interpolators.clampToProgress( + LINEAR, ALL_APPS_SCRIM_VISIBLE_THRESHOLD, ALL_APPS_STAGGERED_FADE_THRESHOLD); + public static final Interpolator ALL_APPS_CLAMPING_RESPONDER = + Interpolators.clampToProgress( + LINEAR, + 1 - ALL_APPS_CONTENT_FADE_MAX_CLAMPING_THRESHOLD, + 1 - ALL_APPS_CONTENT_FADE_MIN_CLAMPING_THRESHOLD); + + // ---- Custom interpolators for NORMAL -> ALL_APPS on phones only. ---- + + private static final float WORKSPACE_MOTION_START_ATOMIC = 0.1667f; + private static final float ALL_APPS_STATE_TRANSITION_ATOMIC = 0.305f; + private static final float ALL_APPS_STATE_TRANSITION_MANUAL = 0.4f; + private static final float ALL_APPS_FADE_END_ATOMIC = 0.4717f; private static final float ALL_APPS_FULL_DEPTH_PROGRESS = 0.5f; - public static final Interpolator ALLAPPS_STAGGERED_FADE_EARLY_RESPONDER = - Interpolators.clampToProgress(LINEAR, 0, ALLAPPS_STAGGERED_FADE_THRESHOLD); - public static final Interpolator ALLAPPS_STAGGERED_FADE_LATE_RESPONDER = - Interpolators.clampToProgress(LINEAR, ALLAPPS_STAGGERED_FADE_THRESHOLD, 1f); + private static final Interpolator LINEAR_EARLY_MANUAL = + Interpolators.clampToProgress(LINEAR, 0f, ALL_APPS_STATE_TRANSITION_MANUAL); + private static final Interpolator STEP_TRANSITION_ATOMIC = + Interpolators.clampToProgress(FINAL_FRAME, 0f, ALL_APPS_STATE_TRANSITION_ATOMIC); + private static final Interpolator STEP_TRANSITION_MANUAL = + Interpolators.clampToProgress(FINAL_FRAME, 0f, ALL_APPS_STATE_TRANSITION_MANUAL); - // Custom interpolators for NORMAL -> ALL_APPS on phones only. // The blur to All Apps is set to be complete when the interpolator is at 0.5. - public static final Interpolator BLUR = + private static final Interpolator BLUR_ADJUSTED = + Interpolators.mapToProgress(LINEAR, 0f, ALL_APPS_FULL_DEPTH_PROGRESS); + public static final Interpolator BLUR_ATOMIC = Interpolators.clampToProgress( - Interpolators.mapToProgress( - LINEAR, 0f, ALL_APPS_FULL_DEPTH_PROGRESS), - WORKSPACE_MOTION_START, ALL_APPS_STATE_TRANSITION); - public static final Interpolator WORKSPACE_FADE = - Interpolators.clampToProgress(FINAL_FRAME, 0f, ALL_APPS_STATE_TRANSITION); - public static final Interpolator WORKSPACE_SCALE = + BLUR_ADJUSTED, WORKSPACE_MOTION_START_ATOMIC, ALL_APPS_STATE_TRANSITION_ATOMIC); + public static final Interpolator BLUR_MANUAL = + Interpolators.clampToProgress(BLUR_ADJUSTED, 0f, ALL_APPS_STATE_TRANSITION_MANUAL); + + public static final Interpolator WORKSPACE_FADE_ATOMIC = STEP_TRANSITION_ATOMIC; + public static final Interpolator WORKSPACE_FADE_MANUAL = STEP_TRANSITION_MANUAL; + + public static final Interpolator WORKSPACE_SCALE_ATOMIC = Interpolators.clampToProgress( - EMPHASIZED_ACCELERATE, WORKSPACE_MOTION_START, ALL_APPS_STATE_TRANSITION); - public static final Interpolator HOTSEAT_FADE = WORKSPACE_FADE; - public static final Interpolator HOTSEAT_SCALE = HOTSEAT_FADE; - public static final Interpolator HOTSEAT_TRANSLATE = + EMPHASIZED_ACCELERATE, WORKSPACE_MOTION_START_ATOMIC, + ALL_APPS_STATE_TRANSITION_ATOMIC); + public static final Interpolator WORKSPACE_SCALE_MANUAL = LINEAR_EARLY_MANUAL; + + public static final Interpolator HOTSEAT_FADE_ATOMIC = STEP_TRANSITION_ATOMIC; + public static final Interpolator HOTSEAT_FADE_MANUAL = STEP_TRANSITION_MANUAL; + + public static final Interpolator HOTSEAT_SCALE_ATOMIC = STEP_TRANSITION_ATOMIC; + public static final Interpolator HOTSEAT_SCALE_MANUAL = LINEAR_EARLY_MANUAL; + + public static final Interpolator HOTSEAT_TRANSLATE_ATOMIC = Interpolators.clampToProgress( - EMPHASIZED_ACCELERATE, WORKSPACE_MOTION_START, ALL_APPS_STATE_TRANSITION); - public static final Interpolator SCRIM_FADE = + EMPHASIZED_ACCELERATE, WORKSPACE_MOTION_START_ATOMIC, + ALL_APPS_STATE_TRANSITION_ATOMIC); + public static final Interpolator HOTSEAT_TRANSLATE_MANUAL = STEP_TRANSITION_MANUAL; + + public static final Interpolator SCRIM_FADE_ATOMIC = Interpolators.clampToProgress( Interpolators.mapToProgress(LINEAR, 0f, 0.8f), - WORKSPACE_MOTION_START, ALL_APPS_STATE_TRANSITION); - public static final Interpolator ALL_APPS_FADE = + WORKSPACE_MOTION_START_ATOMIC, ALL_APPS_STATE_TRANSITION_ATOMIC); + public static final Interpolator SCRIM_FADE_MANUAL = LINEAR_EARLY_MANUAL; + + public static final Interpolator ALL_APPS_FADE_ATOMIC = Interpolators.clampToProgress( - Interpolators.mapToProgress(DECELERATED_EASE, 0.2f, 1.0f), - ALL_APPS_STATE_TRANSITION, ALL_APPS_FADE_END); - public static final Interpolator ALL_APPS_VERTICAL_PROGRESS = + Interpolators.mapToProgress(DECELERATED_EASE, 0.2f, 1f), + ALL_APPS_STATE_TRANSITION_ATOMIC, ALL_APPS_FADE_END_ATOMIC); + public static final Interpolator ALL_APPS_FADE_MANUAL = + Interpolators.clampToProgress(LINEAR, ALL_APPS_STATE_TRANSITION_MANUAL, 1f); + + public static final Interpolator ALL_APPS_VERTICAL_PROGRESS_ATOMIC = Interpolators.clampToProgress( - Interpolators.mapToProgress(EMPHASIZED_DECELERATE, 0.4f, 1.0f), - ALL_APPS_STATE_TRANSITION, 1.0f); + Interpolators.mapToProgress(EMPHASIZED_DECELERATE, 0.4f, 1f), + ALL_APPS_STATE_TRANSITION_ATOMIC, 1f); + public static final Interpolator ALL_APPS_VERTICAL_PROGRESS_MANUAL = + Interpolators.clampToProgress( + Interpolators.mapToProgress(LINEAR, ALL_APPS_STATE_TRANSITION_MANUAL, 1f), + ALL_APPS_STATE_TRANSITION_MANUAL, 1f); + + // -------- public AllAppsSwipeController(Launcher l) { super(l, SingleAxisSwipeDetector.VERTICAL); @@ -141,6 +181,7 @@ public class AllAppsSwipeController extends AbstractStateChangeTouchController { protected StateAnimationConfig getConfigForStates(LauncherState fromState, LauncherState toState) { StateAnimationConfig config = super.getConfigForStates(fromState, toState); + config.userControlled = true; if (fromState == NORMAL && toState == ALL_APPS) { applyNormalToAllAppsAnimConfig(mLauncher, config); } else if (fromState == ALL_APPS && toState == NORMAL) { @@ -150,36 +191,75 @@ public class AllAppsSwipeController extends AbstractStateChangeTouchController { } /** - * Applies Animation config values for transition from all apps to home + * Applies Animation config values for transition from all apps to home. */ public static void applyAllAppsToNormalConfig(Launcher launcher, StateAnimationConfig config) { - boolean isTablet = launcher.getDeviceProfile().isTablet; - config.setInterpolator(ANIM_SCRIM_FADE, ALLAPPS_STAGGERED_FADE_LATE_RESPONDER); - config.setInterpolator(ANIM_ALL_APPS_FADE, isTablet - ? FINAL_FRAME : ALLAPPS_STAGGERED_FADE_EARLY_RESPONDER); - if (!isTablet) { - config.setInterpolator(ANIM_WORKSPACE_FADE, INSTANT); + if (launcher.getDeviceProfile().isTablet) { + config.setInterpolator(ANIM_SCRIM_FADE, + Interpolators.reverse(ALL_APPS_SCRIM_RESPONDER)); + config.setInterpolator(ANIM_ALL_APPS_FADE, FINAL_FRAME); + if (!config.userControlled) { + config.setInterpolator(ANIM_VERTICAL_PROGRESS, EMPHASIZED_ACCELERATE); + } + } else { + if (config.userControlled) { + config.setInterpolator(ANIM_DEPTH, Interpolators.reverse(BLUR_MANUAL)); + config.setInterpolator(ANIM_WORKSPACE_FADE, + Interpolators.reverse(WORKSPACE_FADE_MANUAL)); + config.setInterpolator(ANIM_WORKSPACE_SCALE, + Interpolators.reverse(WORKSPACE_SCALE_MANUAL)); + config.setInterpolator(ANIM_HOTSEAT_FADE, + Interpolators.reverse(HOTSEAT_FADE_MANUAL)); + config.setInterpolator(ANIM_HOTSEAT_SCALE, + Interpolators.reverse(HOTSEAT_SCALE_MANUAL)); + config.setInterpolator(ANIM_HOTSEAT_TRANSLATE, + Interpolators.reverse(HOTSEAT_TRANSLATE_MANUAL)); + config.setInterpolator(ANIM_SCRIM_FADE, Interpolators.reverse(SCRIM_FADE_MANUAL)); + config.setInterpolator(ANIM_ALL_APPS_FADE, + Interpolators.reverse(ALL_APPS_FADE_MANUAL)); + config.setInterpolator(ANIM_VERTICAL_PROGRESS, + Interpolators.reverse(ALL_APPS_VERTICAL_PROGRESS_MANUAL)); + } else { + config.setInterpolator(ANIM_SCRIM_FADE, + Interpolators.reverse(ALL_APPS_SCRIM_RESPONDER)); + config.setInterpolator(ANIM_ALL_APPS_FADE, ALL_APPS_CLAMPING_RESPONDER); + config.setInterpolator(ANIM_WORKSPACE_FADE, INSTANT); + config.setInterpolator(ANIM_VERTICAL_PROGRESS, EMPHASIZED_ACCELERATE); + } } } /** - * Applies Animation config values for transition from home to all apps + * Applies Animation config values for transition from home to all apps. */ - public static void applyNormalToAllAppsAnimConfig(Launcher launcher, - StateAnimationConfig config) { + public static void applyNormalToAllAppsAnimConfig( + Launcher launcher, StateAnimationConfig config) { if (launcher.getDeviceProfile().isTablet) { - config.setInterpolator(ANIM_SCRIM_FADE, ALLAPPS_STAGGERED_FADE_EARLY_RESPONDER); config.setInterpolator(ANIM_ALL_APPS_FADE, INSTANT); + config.setInterpolator(ANIM_SCRIM_FADE, ALL_APPS_SCRIM_RESPONDER); + if (!config.userControlled) { + config.setInterpolator(ANIM_VERTICAL_PROGRESS, EMPHASIZED_DECELERATE); + } } else { - config.setInterpolator(ANIM_DEPTH, BLUR); - config.setInterpolator(ANIM_WORKSPACE_FADE, WORKSPACE_FADE); - config.setInterpolator(ANIM_WORKSPACE_SCALE, WORKSPACE_SCALE); - config.setInterpolator(ANIM_HOTSEAT_FADE, HOTSEAT_FADE); - config.setInterpolator(ANIM_HOTSEAT_SCALE, HOTSEAT_SCALE); - config.setInterpolator(ANIM_HOTSEAT_TRANSLATE, HOTSEAT_TRANSLATE); - config.setInterpolator(ANIM_SCRIM_FADE, SCRIM_FADE); - config.setInterpolator(ANIM_ALL_APPS_FADE, ALL_APPS_FADE); - config.setInterpolator(ANIM_VERTICAL_PROGRESS, ALL_APPS_VERTICAL_PROGRESS); + config.setInterpolator(ANIM_DEPTH, config.userControlled ? BLUR_MANUAL : BLUR_ATOMIC); + config.setInterpolator(ANIM_WORKSPACE_FADE, + config.userControlled ? WORKSPACE_FADE_MANUAL : WORKSPACE_FADE_ATOMIC); + config.setInterpolator(ANIM_WORKSPACE_SCALE, + config.userControlled ? WORKSPACE_SCALE_MANUAL : WORKSPACE_SCALE_ATOMIC); + config.setInterpolator(ANIM_HOTSEAT_FADE, + config.userControlled ? HOTSEAT_FADE_MANUAL : HOTSEAT_FADE_ATOMIC); + config.setInterpolator(ANIM_HOTSEAT_SCALE, + config.userControlled ? HOTSEAT_SCALE_MANUAL : HOTSEAT_SCALE_ATOMIC); + config.setInterpolator(ANIM_HOTSEAT_TRANSLATE, + config.userControlled ? HOTSEAT_TRANSLATE_MANUAL : HOTSEAT_TRANSLATE_ATOMIC); + config.setInterpolator(ANIM_SCRIM_FADE, + config.userControlled ? SCRIM_FADE_MANUAL : SCRIM_FADE_ATOMIC); + config.setInterpolator(ANIM_ALL_APPS_FADE, + config.userControlled ? ALL_APPS_FADE_MANUAL : ALL_APPS_FADE_ATOMIC); + config.setInterpolator(ANIM_VERTICAL_PROGRESS, + config.userControlled + ? ALL_APPS_VERTICAL_PROGRESS_MANUAL + : ALL_APPS_VERTICAL_PROGRESS_ATOMIC); } } }