diff options
| author | 2023-11-28 14:35:36 +0100 | |
|---|---|---|
| committer | 2023-11-28 16:45:58 +0100 | |
| commit | 78864fa254438ff9def639f160cdf240fa0024e4 (patch) | |
| tree | 5e86cc2decfa748f538a73e5f66d5ce221e28ea7 | |
| parent | 204f79c091d0c332c2e37129cd108edeb9ad7047 (diff) | |
Fix touchable area after shade is gone in Flexiglass
After transitioning away from the Shade or QS the touches on all other
scenes were not registering anymore.
Test: NONE
Bug: b/309861158
Flag: NONE
Change-Id: Iffe08cd9ee298c0eb0c7b5babc4937755cce647e
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarTouchableRegionManager.java | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarTouchableRegionManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarTouchableRegionManager.java index 6d8ec44ad55e..c615887d5c25 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarTouchableRegionManager.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarTouchableRegionManager.java @@ -67,6 +67,7 @@ public final class StatusBarTouchableRegionManager implements Dumpable { private final UnlockedScreenOffAnimationController mUnlockedScreenOffAnimationController; private boolean mIsStatusBarExpanded = false; + private boolean mIsSceneContainerVisible = false; private boolean mShouldAdjustInsets = false; private View mNotificationShadeWindowView; private View mNotificationPanelView; @@ -128,11 +129,14 @@ public final class StatusBarTouchableRegionManager implements Dumpable { }); mUnlockedScreenOffAnimationController = unlockedScreenOffAnimationController; - javaAdapter.alwaysCollectFlow(shadeInteractor.isAnyExpanded(), this::onShadeOrQsExpanded); if (sceneContainerFlags.isEnabled()) { javaAdapter.alwaysCollectFlow( sceneInteractor.get().isVisible(), + this::onSceneContainerVisibilityChanged); + } else { + javaAdapter.alwaysCollectFlow( + shadeInteractor.isAnyExpanded(), this::onShadeOrQsExpanded); } @@ -164,6 +168,17 @@ public final class StatusBarTouchableRegionManager implements Dumpable { } } + private void onSceneContainerVisibilityChanged(Boolean isVisible) { + if (isVisible != mIsSceneContainerVisible) { + mIsSceneContainerVisible = isVisible; + if (isVisible) { + // make sure our state is sensible + mForceCollapsedUntilLayout = false; + } + updateTouchableRegion(); + } + } + /** * Calculates the touch region needed for heads up notifications, taking into consideration * any existing display cutouts (notch) @@ -267,6 +282,7 @@ public final class StatusBarTouchableRegionManager implements Dumpable { // since we don't want stray touches to go through the light reveal scrim to whatever is // underneath. return mIsStatusBarExpanded + || mIsSceneContainerVisible || mPrimaryBouncerInteractor.isShowing().getValue() || mAlternateBouncerInteractor.isVisibleState() || mUnlockedScreenOffAnimationController.isAnimationPlaying(); |