diff options
| author | 2019-07-11 00:14:27 -0700 | |
|---|---|---|
| committer | 2019-07-11 00:14:27 -0700 | |
| commit | e85f9ee37e6ecdbf6a3debb4729f936a1a5d304b (patch) | |
| tree | 5298e98ef87b582344395e5e2e466d95f911072d | |
| parent | 1e3d73fa43d8926fa5bc72e7e922955f954b16ef (diff) | |
| parent | 04b33a938b4d3b0290ca4e7df1c501897731591f (diff) | |
Merge "Use a Region when calculating TouchableRegion for cutouts" into qt-dev am: 6c22dff644
am: 04b33a938b
Change-Id: Id156b04f35738f73cbcb1512fc823c8661fd9be8
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/statusbar/phone/HeadsUpManagerPhone.java | 10 | ||||
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java | 6 |
2 files changed, 11 insertions, 5 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/HeadsUpManagerPhone.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/HeadsUpManagerPhone.java index c44f953615e3..cbaf85c511dd 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/HeadsUpManagerPhone.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/HeadsUpManagerPhone.java @@ -22,6 +22,7 @@ import android.content.Context; import android.content.res.Configuration; import android.content.res.Resources; import android.graphics.Rect; +import android.graphics.Region; import android.util.Log; import android.util.Pools; import android.view.DisplayCutout; @@ -88,7 +89,7 @@ public class HeadsUpManagerPhone extends HeadsUpManager implements Dumpable, private int[] mTmpTwoArray = new int[2]; private boolean mHeadsUpGoingAway; private int mStatusBarState; - private Rect mTouchableRegion = new Rect(); + private Region mTouchableRegion = new Region(); private AnimationStateHandler mAnimationStateHandler; @@ -365,10 +366,11 @@ public class HeadsUpManagerPhone extends HeadsUpManager implements Dumpable, info.touchableRegion.set(calculateTouchableRegion()); } - public Rect calculateTouchableRegion() { + public Region calculateTouchableRegion() { if (!hasPinnedHeadsUp()) { mTouchableRegion.set(0, 0, mStatusBarWindowView.getWidth(), mStatusBarHeight); updateRegionForNotch(mTouchableRegion); + } else { NotificationEntry topEntry = getTopEntry(); if (topEntry.isChildInGroup()) { @@ -388,7 +390,7 @@ public class HeadsUpManagerPhone extends HeadsUpManager implements Dumpable, return mTouchableRegion; } - private void updateRegionForNotch(Rect region) { + private void updateRegionForNotch(Region region) { DisplayCutout cutout = mStatusBarWindowView.getRootWindowInsets().getDisplayCutout(); if (cutout == null) { return; @@ -460,6 +462,8 @@ public class HeadsUpManagerPhone extends HeadsUpManager implements Dumpable, super.dumpInternal(fd, pw, args); pw.print(" mBarState="); pw.println(mStatusBarState); + pw.print(" mTouchableRegion="); + pw.println(mTouchableRegion); } /////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java index 7430f7cc2cd1..37855ae592a5 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java @@ -38,6 +38,7 @@ import android.graphics.PointF; import android.graphics.PorterDuff; import android.graphics.PorterDuffXfermode; import android.graphics.Rect; +import android.graphics.Region; import android.os.PowerManager; import android.util.AttributeSet; import android.util.Log; @@ -676,9 +677,10 @@ public class NotificationPanelView extends PanelView implements private Rect calculateGestureExclusionRect() { Rect exclusionRect = null; - if (isFullyCollapsed()) { + Region touchableRegion = mHeadsUpManager.calculateTouchableRegion(); + if (isFullyCollapsed() && touchableRegion != null) { // Note: The heads up manager also calculates the non-pinned touchable region - exclusionRect = mHeadsUpManager.calculateTouchableRegion(); + exclusionRect = touchableRegion.getBounds(); } return exclusionRect != null ? exclusionRect |