Merge "Use a Region when calculating TouchableRegion for cutouts" into qt-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
6c22dff644
@@ -22,6 +22,7 @@ import android.content.Context;
|
|||||||
import android.content.res.Configuration;
|
import android.content.res.Configuration;
|
||||||
import android.content.res.Resources;
|
import android.content.res.Resources;
|
||||||
import android.graphics.Rect;
|
import android.graphics.Rect;
|
||||||
|
import android.graphics.Region;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.util.Pools;
|
import android.util.Pools;
|
||||||
import android.view.DisplayCutout;
|
import android.view.DisplayCutout;
|
||||||
@@ -76,7 +77,7 @@ public class HeadsUpManagerPhone extends HeadsUpManager implements Dumpable,
|
|||||||
private int[] mTmpTwoArray = new int[2];
|
private int[] mTmpTwoArray = new int[2];
|
||||||
private boolean mHeadsUpGoingAway;
|
private boolean mHeadsUpGoingAway;
|
||||||
private int mStatusBarState;
|
private int mStatusBarState;
|
||||||
private Rect mTouchableRegion = new Rect();
|
private Region mTouchableRegion = new Region();
|
||||||
|
|
||||||
private AnimationStateHandler mAnimationStateHandler;
|
private AnimationStateHandler mAnimationStateHandler;
|
||||||
|
|
||||||
@@ -299,10 +300,11 @@ public class HeadsUpManagerPhone extends HeadsUpManager implements Dumpable,
|
|||||||
info.touchableRegion.set(calculateTouchableRegion());
|
info.touchableRegion.set(calculateTouchableRegion());
|
||||||
}
|
}
|
||||||
|
|
||||||
public Rect calculateTouchableRegion() {
|
public Region calculateTouchableRegion() {
|
||||||
if (!hasPinnedHeadsUp()) {
|
if (!hasPinnedHeadsUp()) {
|
||||||
mTouchableRegion.set(0, 0, mStatusBarWindowView.getWidth(), mStatusBarHeight);
|
mTouchableRegion.set(0, 0, mStatusBarWindowView.getWidth(), mStatusBarHeight);
|
||||||
updateRegionForNotch(mTouchableRegion);
|
updateRegionForNotch(mTouchableRegion);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
NotificationEntry topEntry = getTopEntry();
|
NotificationEntry topEntry = getTopEntry();
|
||||||
if (topEntry.isChildInGroup()) {
|
if (topEntry.isChildInGroup()) {
|
||||||
@@ -322,7 +324,7 @@ public class HeadsUpManagerPhone extends HeadsUpManager implements Dumpable,
|
|||||||
return mTouchableRegion;
|
return mTouchableRegion;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateRegionForNotch(Rect region) {
|
private void updateRegionForNotch(Region region) {
|
||||||
DisplayCutout cutout = mStatusBarWindowView.getRootWindowInsets().getDisplayCutout();
|
DisplayCutout cutout = mStatusBarWindowView.getRootWindowInsets().getDisplayCutout();
|
||||||
if (cutout == null) {
|
if (cutout == null) {
|
||||||
return;
|
return;
|
||||||
@@ -390,6 +392,8 @@ public class HeadsUpManagerPhone extends HeadsUpManager implements Dumpable,
|
|||||||
super.dumpInternal(fd, pw, args);
|
super.dumpInternal(fd, pw, args);
|
||||||
pw.print(" mBarState=");
|
pw.print(" mBarState=");
|
||||||
pw.println(mStatusBarState);
|
pw.println(mStatusBarState);
|
||||||
|
pw.print(" mTouchableRegion=");
|
||||||
|
pw.println(mTouchableRegion);
|
||||||
}
|
}
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|||||||
@@ -38,6 +38,7 @@ import android.graphics.PointF;
|
|||||||
import android.graphics.PorterDuff;
|
import android.graphics.PorterDuff;
|
||||||
import android.graphics.PorterDuffXfermode;
|
import android.graphics.PorterDuffXfermode;
|
||||||
import android.graphics.Rect;
|
import android.graphics.Rect;
|
||||||
|
import android.graphics.Region;
|
||||||
import android.os.PowerManager;
|
import android.os.PowerManager;
|
||||||
import android.util.AttributeSet;
|
import android.util.AttributeSet;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
@@ -620,9 +621,10 @@ public class NotificationPanelView extends PanelView implements
|
|||||||
|
|
||||||
private Rect calculateGestureExclusionRect() {
|
private Rect calculateGestureExclusionRect() {
|
||||||
Rect exclusionRect = null;
|
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
|
// Note: The heads up manager also calculates the non-pinned touchable region
|
||||||
exclusionRect = mHeadsUpManager.calculateTouchableRegion();
|
exclusionRect = touchableRegion.getBounds();
|
||||||
}
|
}
|
||||||
return exclusionRect != null
|
return exclusionRect != null
|
||||||
? exclusionRect
|
? exclusionRect
|
||||||
|
|||||||
Reference in New Issue
Block a user