summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/core/java/com/android/server/wm/DisplayPolicy.java34
1 files 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 58d673194ae6..3dff680c9497 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);
}
}