From dc186e68a1d9afe5d9acfd7387ba0152dde31bb8 Mon Sep 17 00:00:00 2001 From: Jon Miranda Date: Wed, 15 Apr 2020 15:19:49 -0700 Subject: [PATCH] Add AnimationFlag for SKIP_DEPTH_CONTROLLER. We use this flag to prevent the depth from being immediately set to 0 when preparing to animate home. Bug: 152327671 Change-Id: I614c6ae08b9f9e56ecb94fb51748791a38504583 --- .../com/android/quickstep/util/StaggeredWorkspaceAnim.java | 3 ++- .../com/android/launcher3/statehandlers/DepthController.java | 5 ++++- src/com/android/launcher3/states/StateAnimationConfig.java | 2 ++ 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/quickstep/recents_ui_overrides/src/com/android/quickstep/util/StaggeredWorkspaceAnim.java b/quickstep/recents_ui_overrides/src/com/android/quickstep/util/StaggeredWorkspaceAnim.java index 9cf45b3151..bde6f9af19 100644 --- a/quickstep/recents_ui_overrides/src/com/android/quickstep/util/StaggeredWorkspaceAnim.java +++ b/quickstep/recents_ui_overrides/src/com/android/quickstep/util/StaggeredWorkspaceAnim.java @@ -21,6 +21,7 @@ import static com.android.launcher3.LauncherState.NORMAL; import static com.android.launcher3.anim.Interpolators.ACCEL_DEACCEL; import static com.android.launcher3.anim.Interpolators.LINEAR; import static com.android.launcher3.states.StateAnimationConfig.ANIM_ALL_COMPONENTS; +import static com.android.launcher3.states.StateAnimationConfig.SKIP_DEPTH_CONTROLLER; import static com.android.launcher3.states.StateAnimationConfig.SKIP_OVERVIEW; import android.animation.Animator; @@ -146,7 +147,7 @@ public class StaggeredWorkspaceAnim { */ private void prepareToAnimate(Launcher launcher) { StateAnimationConfig config = new StateAnimationConfig(); - config.animFlags = ANIM_ALL_COMPONENTS | SKIP_OVERVIEW; + config.animFlags = ANIM_ALL_COMPONENTS | SKIP_OVERVIEW | SKIP_DEPTH_CONTROLLER; config.duration = 0; // setRecentsAttachedToAppWindow() will animate recents out. launcher.getStateManager().createAtomicAnimation(BACKGROUND_APP, NORMAL, config).start(); diff --git a/quickstep/src/com/android/launcher3/statehandlers/DepthController.java b/quickstep/src/com/android/launcher3/statehandlers/DepthController.java index 24ba89a0d3..f83737ef9f 100644 --- a/quickstep/src/com/android/launcher3/statehandlers/DepthController.java +++ b/quickstep/src/com/android/launcher3/statehandlers/DepthController.java @@ -17,6 +17,7 @@ package com.android.launcher3.statehandlers; import static com.android.launcher3.anim.Interpolators.LINEAR; +import static com.android.launcher3.states.StateAnimationConfig.SKIP_DEPTH_CONTROLLER; import android.os.IBinder; import android.util.FloatProperty; @@ -163,7 +164,9 @@ public class DepthController implements LauncherStateManager.StateHandler { @Override public void setStateWithAnimation(LauncherState toState, StateAnimationConfig config, PendingAnimation animation) { - if (mSurface == null || config.onlyPlayAtomicComponent()) { + if (mSurface == null + || config.onlyPlayAtomicComponent() + || config.hasAnimationFlag(SKIP_DEPTH_CONTROLLER)) { return; } diff --git a/src/com/android/launcher3/states/StateAnimationConfig.java b/src/com/android/launcher3/states/StateAnimationConfig.java index 82cde642fa..8dccbd3207 100644 --- a/src/com/android/launcher3/states/StateAnimationConfig.java +++ b/src/com/android/launcher3/states/StateAnimationConfig.java @@ -37,6 +37,7 @@ public class StateAnimationConfig { PLAY_ATOMIC_OVERVIEW_SCALE, PLAY_ATOMIC_OVERVIEW_PEEK, SKIP_OVERVIEW, + SKIP_DEPTH_CONTROLLER }) @Retention(RetentionPolicy.SOURCE) public @interface AnimationFlags {} @@ -44,6 +45,7 @@ public class StateAnimationConfig { public static final int PLAY_ATOMIC_OVERVIEW_SCALE = 1 << 1; public static final int PLAY_ATOMIC_OVERVIEW_PEEK = 1 << 2; public static final int SKIP_OVERVIEW = 1 << 3; + public static final int SKIP_DEPTH_CONTROLLER = 1 << 4; public long duration; public boolean userControlled;