diff --git a/quickstep/src/com/android/launcher3/taskbar/StashedHandleViewController.java b/quickstep/src/com/android/launcher3/taskbar/StashedHandleViewController.java index ec710c5229..fabf3a5acd 100644 --- a/quickstep/src/com/android/launcher3/taskbar/StashedHandleViewController.java +++ b/quickstep/src/com/android/launcher3/taskbar/StashedHandleViewController.java @@ -94,6 +94,7 @@ public class StashedHandleViewController implements TaskbarControllers.LoggableT // States that affect whether region sampling is enabled or not private boolean mIsStashed; private boolean mIsLumaSamplingEnabled; + private boolean mIsAppTransitionPending; private boolean mTaskbarHidden; private float mTranslationYForSwipe; @@ -267,6 +268,11 @@ public class StashedHandleViewController implements TaskbarControllers.LoggableT updateSamplingState(); } + public void setIsAppTransitionPending(boolean pending) { + mIsAppTransitionPending = pending; + updateSamplingState(); + } + private void updateSamplingState() { updateRegionSamplingWindowVisibility(); if (shouldSample()) { @@ -278,7 +284,7 @@ public class StashedHandleViewController implements TaskbarControllers.LoggableT } private boolean shouldSample() { - return mIsStashed && mIsLumaSamplingEnabled; + return mIsStashed && mIsLumaSamplingEnabled && !mIsAppTransitionPending; } protected void updateStashedHandleHintScale() { diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java index 5f733b066e..041433213e 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java @@ -914,6 +914,10 @@ public class TaskbarActivityContext extends BaseTaskbarContext { mControllers.navbarButtonsViewController.transitionTo(barMode, animate); } + public void appTransitionPending(boolean pending) { + mControllers.stashedHandleViewController.setIsAppTransitionPending(pending); + } + /** * Called when this instance of taskbar is no longer needed */ diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarManager.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarManager.java index 8c87fa65d5..8ecac96ad4 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarManager.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarManager.java @@ -549,7 +549,15 @@ public class TaskbarManager { public void transitionTo(@BarTransitions.TransitionMode int barMode, boolean animate) { - mTaskbarActivityContext.transitionTo(barMode, animate); + if (mTaskbarActivityContext != null) { + mTaskbarActivityContext.transitionTo(barMode, animate); + } + } + + public void appTransitionPending(boolean pending) { + if (mTaskbarActivityContext != null) { + mTaskbarActivityContext.appTransitionPending(pending); + } } private boolean isTaskbarEnabled(DeviceProfile deviceProfile) { diff --git a/quickstep/src/com/android/quickstep/TouchInteractionService.java b/quickstep/src/com/android/quickstep/TouchInteractionService.java index 4587bdd0a4..98e7fed5fd 100644 --- a/quickstep/src/com/android/quickstep/TouchInteractionService.java +++ b/quickstep/src/com/android/quickstep/TouchInteractionService.java @@ -379,6 +379,15 @@ public class TouchInteractionService extends Service { )); } + @BinderThread + @Override + public void appTransitionPending(boolean pending) { + MAIN_EXECUTOR.execute(() -> executeForTouchInteractionService(tis -> + executeForTaskbarManager( + taskbarManager -> taskbarManager.appTransitionPending(pending)) + )); + } + /** * Preloads the Overview activity. *