From df4727e8eeb33139d99614effd394be209213618 Mon Sep 17 00:00:00 2001 From: Tony Wickham Date: Wed, 5 Jun 2019 17:03:39 -0700 Subject: Fix flicker to OVERVIEW state during quick switch Here's what was happening: - When animating to a new task, the launcher controller ends first (when quick switching it likely ends immediately since we're already scaled up). - Then we get onApplyWindowInsets(), which re-builds the launcher controller. - Finally, the window animation ends, invalidating the handler and ending the new controller, which sets the state to OVERVIEW. To fix this, never create a new controller if it has ever been started. Bug: 133508173 Change-Id: Ibd0e18e488353df73159ffbdd9a3b335bed57d98 --- .../src/com/android/quickstep/WindowTransformSwipeHandler.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'quickstep/recents_ui_overrides/src/com/android/quickstep/WindowTransformSwipeHandler.java') diff --git a/quickstep/recents_ui_overrides/src/com/android/quickstep/WindowTransformSwipeHandler.java b/quickstep/recents_ui_overrides/src/com/android/quickstep/WindowTransformSwipeHandler.java index 87b732664..45f34e72c 100644 --- a/quickstep/recents_ui_overrides/src/com/android/quickstep/WindowTransformSwipeHandler.java +++ b/quickstep/recents_ui_overrides/src/com/android/quickstep/WindowTransformSwipeHandler.java @@ -267,6 +267,7 @@ public class WindowTransformSwipeHandler private MultiStateCallback mStateCallback; // Used to control launcher components throughout the swipe gesture. private AnimatorPlaybackController mLauncherTransitionController; + private boolean mHasLauncherTransitionControllerStarted; private T mActivity; private RecentsView mRecentsView; @@ -647,8 +648,7 @@ public class WindowTransformSwipeHandler } private void buildAnimationController() { - if (mGestureEndTarget == HOME || (mLauncherTransitionController != null - && mLauncherTransitionController.getAnimationPlayer().isStarted())) { + if (mGestureEndTarget == HOME || mHasLauncherTransitionControllerStarted) { // We don't want a new mLauncherTransitionController if mGestureEndTarget == HOME (it // has its own animation) or if we're already animating the current controller. return; @@ -1122,6 +1122,7 @@ public class WindowTransformSwipeHandler } mLauncherTransitionController.getAnimationPlayer().start(); } + mHasLauncherTransitionControllerStarted = true; } /** -- cgit v1.2.3