From b45e7e858eff6e84cf1da0b27c167fd216bfeee2 Mon Sep 17 00:00:00 2001 From: Winson Chung Date: Thu, 2 Sep 2021 17:34:58 -0700 Subject: [PATCH] Use same side-swipe check for alt bars Bug: 198188014 Test: Side swipe with only taskbar should show bars Change-Id: I510aa33acac5491a286d5c78ca58e87e841db583 --- .../com/android/server/wm/DisplayPolicy.java | 34 +++++++++++-------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/services/core/java/com/android/server/wm/DisplayPolicy.java b/services/core/java/com/android/server/wm/DisplayPolicy.java index 58d673194ae67..3dff680c9497e 100644 --- a/services/core/java/com/android/server/wm/DisplayPolicy.java +++ b/services/core/java/com/android/server/wm/DisplayPolicy.java @@ -482,7 +482,8 @@ public class DisplayPolicy { if (mStatusBar != null) { requestTransientBars(mStatusBar); } - checkAltBarSwipeForTransientBars(ALT_BAR_TOP); + checkAltBarSwipeForTransientBars(ALT_BAR_TOP, + false /* allowForAllPositions */); } } @@ -493,7 +494,8 @@ public class DisplayPolicy { && mNavigationBarPosition == NAV_BAR_BOTTOM) { requestTransientBars(mNavigationBar); } - checkAltBarSwipeForTransientBars(ALT_BAR_BOTTOM); + checkAltBarSwipeForTransientBars(ALT_BAR_BOTTOM, + false /* allowForAllPositions */); } } @@ -503,13 +505,13 @@ public class DisplayPolicy { synchronized (mLock) { mDisplayContent.calculateSystemGestureExclusion( excludedRegion, null /* outUnrestricted */); - final boolean excluded = - mSystemGestures.currentGestureStartedInRegion(excludedRegion); + final boolean allowSideSwipe = mNavigationBarAlwaysShowOnSideGesture && + !mSystemGestures.currentGestureStartedInRegion(excludedRegion); if (mNavigationBar != null && (mNavigationBarPosition == NAV_BAR_RIGHT - || !excluded && mNavigationBarAlwaysShowOnSideGesture)) { + || allowSideSwipe)) { requestTransientBars(mNavigationBar); } - checkAltBarSwipeForTransientBars(ALT_BAR_RIGHT); + checkAltBarSwipeForTransientBars(ALT_BAR_RIGHT, allowSideSwipe); } excludedRegion.recycle(); } @@ -520,13 +522,13 @@ public class DisplayPolicy { synchronized (mLock) { mDisplayContent.calculateSystemGestureExclusion( excludedRegion, null /* outUnrestricted */); - final boolean excluded = - mSystemGestures.currentGestureStartedInRegion(excludedRegion); + final boolean allowSideSwipe = mNavigationBarAlwaysShowOnSideGesture && + !mSystemGestures.currentGestureStartedInRegion(excludedRegion); if (mNavigationBar != null && (mNavigationBarPosition == NAV_BAR_LEFT - || !excluded && mNavigationBarAlwaysShowOnSideGesture)) { + || allowSideSwipe)) { requestTransientBars(mNavigationBar); } - checkAltBarSwipeForTransientBars(ALT_BAR_LEFT); + checkAltBarSwipeForTransientBars(ALT_BAR_LEFT, allowSideSwipe); } excludedRegion.recycle(); } @@ -680,17 +682,19 @@ public class DisplayPolicy { mHandler.post(mGestureNavigationSettingsObserver::register); } - private void checkAltBarSwipeForTransientBars(@WindowManagerPolicy.AltBarPosition int pos) { - if (mStatusBarAlt != null && mStatusBarAltPosition == pos) { + private void checkAltBarSwipeForTransientBars(@WindowManagerPolicy.AltBarPosition int pos, + boolean allowForAllPositions) { + if (mStatusBarAlt != null && (mStatusBarAltPosition == pos || allowForAllPositions)) { requestTransientBars(mStatusBarAlt); } - if (mNavigationBarAlt != null && mNavigationBarAltPosition == pos) { + if (mNavigationBarAlt != null + && (mNavigationBarAltPosition == pos || allowForAllPositions)) { requestTransientBars(mNavigationBarAlt); } - if (mClimateBarAlt != null && mClimateBarAltPosition == pos) { + if (mClimateBarAlt != null && (mClimateBarAltPosition == pos || allowForAllPositions)) { requestTransientBars(mClimateBarAlt); } - if (mExtraNavBarAlt != null && mExtraNavBarAltPosition == pos) { + if (mExtraNavBarAlt != null && (mExtraNavBarAltPosition == pos || allowForAllPositions)) { requestTransientBars(mExtraNavBarAlt); } }