diff options
| -rw-r--r-- | services/core/java/com/android/server/wm/DisplayPolicy.java | 3 | ||||
| -rw-r--r-- | services/core/java/com/android/server/wm/SystemGesturesPointerEventListener.java | 18 |
2 files changed, 15 insertions, 6 deletions
diff --git a/services/core/java/com/android/server/wm/DisplayPolicy.java b/services/core/java/com/android/server/wm/DisplayPolicy.java index 70f2d64e89aa..977df93412f8 100644 --- a/services/core/java/com/android/server/wm/DisplayPolicy.java +++ b/services/core/java/com/android/server/wm/DisplayPolicy.java @@ -1453,8 +1453,7 @@ public class DisplayPolicy { } void onDisplayInfoChanged(DisplayInfo info) { - mSystemGestures.screenWidth = info.logicalWidth; - mSystemGestures.screenHeight = info.logicalHeight; + mSystemGestures.onDisplayInfoChanged(info); } private void layoutStatusBar(DisplayFrames displayFrames, Rect contentFrame) { diff --git a/services/core/java/com/android/server/wm/SystemGesturesPointerEventListener.java b/services/core/java/com/android/server/wm/SystemGesturesPointerEventListener.java index f3859b41b6fd..513b1b715a27 100644 --- a/services/core/java/com/android/server/wm/SystemGesturesPointerEventListener.java +++ b/services/core/java/com/android/server/wm/SystemGesturesPointerEventListener.java @@ -17,6 +17,7 @@ package com.android.server.wm; import android.content.Context; +import android.content.res.Resources; import android.graphics.Rect; import android.graphics.Region; import android.hardware.display.DisplayManagerGlobal; @@ -65,6 +66,7 @@ class SystemGesturesPointerEventListener implements PointerEventListener { int screenHeight; int screenWidth; + private DisplayInfo mTmpDisplayInfo = new DisplayInfo(); private int mDownPointers; private boolean mSwipeFireable; private boolean mDebugFireable; @@ -75,23 +77,31 @@ class SystemGesturesPointerEventListener implements PointerEventListener { mContext = checkNull("context", context); mHandler = handler; mCallbacks = checkNull("callbacks", callbacks); + onConfigurationChanged(); + } + void onDisplayInfoChanged(DisplayInfo info) { + screenWidth = info.logicalWidth; + screenHeight = info.logicalHeight; onConfigurationChanged(); } void onConfigurationChanged() { - mSwipeStartThreshold = mContext.getResources() - .getDimensionPixelSize(com.android.internal.R.dimen.status_bar_height); - + final Resources r = mContext.getResources(); final Display display = DisplayManagerGlobal.getInstance() .getRealDisplay(Display.DEFAULT_DISPLAY); + display.getDisplayInfo(mTmpDisplayInfo); + mSwipeStartThreshold = mTmpDisplayInfo.logicalWidth > mTmpDisplayInfo.logicalHeight + ? r.getDimensionPixelSize(com.android.internal.R.dimen.status_bar_height_landscape) + : r.getDimensionPixelSize(com.android.internal.R.dimen.status_bar_height_portrait); + final DisplayCutout displayCutout = display.getCutout(); if (displayCutout != null) { final Rect bounds = displayCutout.getBoundingRectTop(); if (!bounds.isEmpty()) { // Expand swipe start threshold such that we can catch touches that just start below // the notch area - mDisplayCutoutTouchableRegionSize = mContext.getResources().getDimensionPixelSize( + mDisplayCutoutTouchableRegionSize = r.getDimensionPixelSize( com.android.internal.R.dimen.display_cutout_touchable_region_size); mSwipeStartThreshold += mDisplayCutoutTouchableRegionSize; } |