From 84afb1a9675d8090f4b4efe39d7eb967c6dc6bb9 Mon Sep 17 00:00:00 2001 From: Jorim Jaggi Date: Wed, 28 Sep 2016 14:54:04 +0200 Subject: [PATCH] Don't start recents if no transition is happening Change-Id: I06c65633139a1c0af4c9c2701ec16c42e5a5bb69 Fixes: 31643084 --- services/core/java/com/android/server/wm/AppTransition.java | 3 ++- .../com/android/server/wm/DockedStackDividerController.java | 6 ++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/services/core/java/com/android/server/wm/AppTransition.java b/services/core/java/com/android/server/wm/AppTransition.java index e4ec295fa34e5..cd46165b56b3c 100644 --- a/services/core/java/com/android/server/wm/AppTransition.java +++ b/services/core/java/com/android/server/wm/AppTransition.java @@ -374,6 +374,7 @@ public class AppTransition implements Dump { void goodToGo(AppWindowAnimator topOpeningAppAnimator, AppWindowAnimator topClosingAppAnimator, ArraySet openingApps, ArraySet closingApps) { + int appTransition = mNextAppTransition; mNextAppTransition = TRANSIT_UNSET; mAppTransitionState = APP_STATE_RUNNING; notifyAppTransitionStartingLocked( @@ -382,7 +383,7 @@ public class AppTransition implements Dump { topOpeningAppAnimator != null ? topOpeningAppAnimator.animation : null, topClosingAppAnimator != null ? topClosingAppAnimator.animation : null); mService.getDefaultDisplayContentLocked().getDockedDividerController() - .notifyAppTransitionStarting(openingApps); + .notifyAppTransitionStarting(openingApps, appTransition); // Prolong the start for the transition when docking a task from recents, unless recents // ended it already then we don't need to wait. diff --git a/services/core/java/com/android/server/wm/DockedStackDividerController.java b/services/core/java/com/android/server/wm/DockedStackDividerController.java index f8d2ee931d047..6f0a43a20e8ac 100644 --- a/services/core/java/com/android/server/wm/DockedStackDividerController.java +++ b/services/core/java/com/android/server/wm/DockedStackDividerController.java @@ -29,6 +29,7 @@ import static android.view.WindowManager.DOCKED_RIGHT; import static android.view.WindowManager.DOCKED_TOP; import static com.android.server.wm.AppTransition.DEFAULT_APP_TRANSITION_DURATION; import static com.android.server.wm.AppTransition.TOUCH_RESPONSE_INTERPOLATOR; +import static com.android.server.wm.AppTransition.TRANSIT_NONE; import static com.android.server.wm.WindowManagerDebugConfig.TAG_WITH_CLASS_NAME; import static com.android.server.wm.WindowManagerDebugConfig.TAG_WM; import static com.android.server.wm.WindowManagerService.H.NOTIFY_DOCKED_STACK_MINIMIZED_CHANGED; @@ -493,7 +494,7 @@ public class DockedStackDividerController implements DimLayerUser { checkMinimizeChanged(false /* animate */); } - void notifyAppTransitionStarting(ArraySet openingApps) { + void notifyAppTransitionStarting(ArraySet openingApps, int appTransition) { final boolean wasMinimized = mMinimizedDock; checkMinimizeChanged(true /* animate */); @@ -502,7 +503,8 @@ public class DockedStackDividerController implements DimLayerUser { // any case that was missed in ActivityStarter.postStartActivityUncheckedProcessing because // we couldn't retrace the launch of the app in the docked stack to the launch from // homescreen. - if (wasMinimized && mMinimizedDock && containsAppInDockedStack(openingApps)) { + if (wasMinimized && mMinimizedDock && containsAppInDockedStack(openingApps) + && appTransition != TRANSIT_NONE) { mService.showRecentApps(true /* fromHome */); } }