diff options
| -rw-r--r-- | services/core/java/com/android/server/wm/DisplayPolicy.java | 17 |
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 |