From 438e6c90af73660fd5a46b4fb3872a033c618efe Mon Sep 17 00:00:00 2001 From: Tony Wickham Date: Fri, 5 Jan 2024 19:19:57 +0000 Subject: [PATCH] Fix onIsStashedChanged() not called in 3 button mode Calling this ensures we update touchableRegion accordingly. Since this will also start the stashed handle region sampling, which we don't need for 3 button mode, also adjust logic to check that the StashedHandleView is actually visible. Flag: None Test: Lock screen, run `adb shell cmd uimode night yes`, unlock Test: Lock screen, rotate, unlock In both cases, verify touchableRegion is accurate Fixes: 315393203 Change-Id: I951af6b97cad0ee0f362dc22f3996cfd9286a21e --- .../launcher3/taskbar/StashedHandleViewController.java | 8 ++++---- .../android/launcher3/taskbar/TaskbarStashController.java | 7 ++++--- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/quickstep/src/com/android/launcher3/taskbar/StashedHandleViewController.java b/quickstep/src/com/android/launcher3/taskbar/StashedHandleViewController.java index ad2dc234a0..e5a6021416 100644 --- a/quickstep/src/com/android/launcher3/taskbar/StashedHandleViewController.java +++ b/quickstep/src/com/android/launcher3/taskbar/StashedHandleViewController.java @@ -149,7 +149,7 @@ public class StashedHandleViewController implements TaskbarControllers.LoggableT }); initRegionSampler(); if (mActivity.isPhoneGestureNavMode()) { - onIsStashedChanged(true); + onIsStashedChanged(); } } @@ -232,10 +232,10 @@ public class StashedHandleViewController implements TaskbarControllers.LoggableT } /** Called when taskbar is stashed or unstashed. */ - public void onIsStashedChanged(boolean isStashed) { - mIsStashed = isStashed; + public void onIsStashedChanged() { + mIsStashed = isStashedHandleVisible(); updateRegionSamplingWindowVisibility(); - if (isStashed) { + if (mIsStashed) { mStashedHandleView.updateSampledRegion(mStashedHandleBounds); mRegionSamplingHelper.start(mStashedHandleView.getSampledRegion()); } else { diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarStashController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarStashController.java index 48c83dabc9..eced202556 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarStashController.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarStashController.java @@ -590,6 +590,7 @@ public class TaskbarStashController implements TaskbarControllers.LoggableTaskba mAnimator.addListener(AnimatorListeners.forEndCallback(() -> { mAnimator = null; mIsStashed = isStashed; + onIsStashedChanged(); })); return; } @@ -604,7 +605,7 @@ public class TaskbarStashController implements TaskbarControllers.LoggableTaskba @Override public void onAnimationStart(Animator animation) { mIsStashed = isStashed; - onIsStashedChanged(mIsStashed); + onIsStashedChanged(); cancelTimeoutIfExists(); } @@ -829,9 +830,9 @@ public class TaskbarStashController implements TaskbarControllers.LoggableTaskba .setDuration(TASKBAR_HINT_STASH_DURATION).start(); } - private void onIsStashedChanged(boolean isStashed) { + private void onIsStashedChanged() { mControllers.runAfterInit(() -> { - mControllers.stashedHandleViewController.onIsStashedChanged(isStashed); + mControllers.stashedHandleViewController.onIsStashedChanged(); mControllers.taskbarInsetsController.onTaskbarOrBubblebarWindowHeightOrInsetsChanged(); }); }