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
diff --git a/quickstep/src/com/android/launcher3/taskbar/StashedHandleViewController.java b/quickstep/src/com/android/launcher3/taskbar/StashedHandleViewController.java
index ad2dc23..e5a6021 100644
--- a/quickstep/src/com/android/launcher3/taskbar/StashedHandleViewController.java
+++ b/quickstep/src/com/android/launcher3/taskbar/StashedHandleViewController.java
@@ -149,7 +149,7 @@
});
initRegionSampler();
if (mActivity.isPhoneGestureNavMode()) {
- onIsStashedChanged(true);
+ onIsStashedChanged();
}
}
@@ -232,10 +232,10 @@
}
/** 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 48c83da..eced202 100644
--- a/quickstep/src/com/android/launcher3/taskbar/TaskbarStashController.java
+++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarStashController.java
@@ -590,6 +590,7 @@
mAnimator.addListener(AnimatorListeners.forEndCallback(() -> {
mAnimator = null;
mIsStashed = isStashed;
+ onIsStashedChanged();
}));
return;
}
@@ -604,7 +605,7 @@
@Override
public void onAnimationStart(Animator animation) {
mIsStashed = isStashed;
- onIsStashedChanged(mIsStashed);
+ onIsStashedChanged();
cancelTimeoutIfExists();
}
@@ -829,9 +830,9 @@
.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();
});
}