summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/core/java/com/android/server/wm/DisplayPolicy.java17
1 files changed, 8 insertions, 9 deletions
diff --git a/services/core/java/com/android/server/wm/DisplayPolicy.java b/services/core/java/com/android/server/wm/DisplayPolicy.java
index 515d1f58d3ef..daec4d761742 100644
--- a/services/core/java/com/android/server/wm/DisplayPolicy.java
+++ b/services/core/java/com/android/server/wm/DisplayPolicy.java
@@ -3437,17 +3437,16 @@ public class DisplayPolicy {
}
final InsetsState requestedState = controlTarget.getRequestedInsetsState();
+ final InsetsSource nbSource = requestedState.peekSource(ITYPE_NAVIGATION_BAR);
+ final InsetsSource sbSource = requestedState.peekSource(ITYPE_STATUS_BAR);
+ final InsetsSource enbSource = requestedState.peekSource(ITYPE_EXTRA_NAVIGATION_BAR);
+ final InsetsSource cbSource = requestedState.peekSource(ITYPE_CLIMATE_BAR);
final @InsetsType int restorePositionTypes =
- (requestedState.getSourceOrDefaultVisibility(ITYPE_NAVIGATION_BAR)
+ (nbSource != null && nbSource.isVisible() ? Type.navigationBars() : 0)
+ | (sbSource != null && sbSource.isVisible() ? Type.statusBars() : 0)
+ | (mExtraNavBarAlt != null && enbSource != null && enbSource.isVisible()
? Type.navigationBars() : 0)
- | (requestedState.getSourceOrDefaultVisibility(ITYPE_STATUS_BAR)
- ? Type.statusBars() : 0)
- | (mExtraNavBarAlt != null
- && requestedState.getSourceOrDefaultVisibility(
- ITYPE_EXTRA_NAVIGATION_BAR)
- ? Type.navigationBars() : 0)
- | (mClimateBarAlt != null
- && requestedState.getSourceOrDefaultVisibility(ITYPE_CLIMATE_BAR)
+ | (mClimateBarAlt != null && cbSource != null && cbSource.isVisible()
? Type.statusBars() : 0);
if (swipeTarget == mNavigationBar