diff options
| -rw-r--r-- | services/core/java/com/android/server/wm/DisplayPolicy.java | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/wm/DisplayPolicy.java b/services/core/java/com/android/server/wm/DisplayPolicy.java index 442f70846118..7e91989a9105 100644 --- a/services/core/java/com/android/server/wm/DisplayPolicy.java +++ b/services/core/java/com/android/server/wm/DisplayPolicy.java @@ -1231,6 +1231,29 @@ public class DisplayPolicy { } inOutFrame.inset(win.mGivenContentInsets); } : null, imeFrameProvider); + if (mNavigationBar == null && (insetsType == ITYPE_NAVIGATION_BAR + || insetsType == ITYPE_EXTRA_NAVIGATION_BAR)) { + mDisplayContent.setInsetProvider(ITYPE_LEFT_GESTURES, win, + (displayFrames, windowState, inOutFrame) -> { + final int leftSafeInset = + Math.max(displayFrames.mDisplayCutoutSafe.left,0); + inOutFrame.left = 0; + inOutFrame.top = 0; + inOutFrame.bottom = displayFrames.mDisplayHeight; + inOutFrame.right = + leftSafeInset + mLeftGestureInset; + }); + mDisplayContent.setInsetProvider(ITYPE_RIGHT_GESTURES, win, + (displayFrames, windowState, inOutFrame) -> { + final int rightSafeInset = + Math.min(displayFrames.mDisplayCutoutSafe.right, + displayFrames.mUnrestricted.right); + inOutFrame.left = rightSafeInset - mRightGestureInset; + inOutFrame.top = 0; + inOutFrame.bottom = displayFrames.mDisplayHeight; + inOutFrame.right = displayFrames.mDisplayWidth; + }); + } mInsetsSourceWindowsExceptIme.add(win); } } |