Merge "Allow swiping down from area directly below notch to trigger QS instead of notification shade." into sc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
40116423b0
@@ -590,6 +590,7 @@ public class NotificationPanelViewController extends PanelViewController {
|
|||||||
*/
|
*/
|
||||||
private ValueAnimator mQsClippingAnimation = null;
|
private ValueAnimator mQsClippingAnimation = null;
|
||||||
private final Rect mKeyguardStatusAreaClipBounds = new Rect();
|
private final Rect mKeyguardStatusAreaClipBounds = new Rect();
|
||||||
|
private final Region mQsInterceptRegion = new Region();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The alpha of the views which only show on the keyguard but not in shade / shade locked
|
* The alpha of the views which only show on the keyguard but not in shade / shade locked
|
||||||
@@ -2670,10 +2671,16 @@ public class NotificationPanelViewController extends PanelViewController {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
View header = mKeyguardShowing || mQs == null ? mKeyguardStatusBar : mQs.getHeader();
|
View header = mKeyguardShowing || mQs == null ? mKeyguardStatusBar : mQs.getHeader();
|
||||||
final boolean
|
|
||||||
onHeader =
|
mQsInterceptRegion.set(
|
||||||
x >= mQsFrame.getX() && x <= mQsFrame.getX() + mQsFrame.getWidth()
|
/* left= */ (int) mQsFrame.getX(),
|
||||||
&& y >= header.getTop() && y <= header.getBottom();
|
/* top= */ header.getTop(),
|
||||||
|
/* right= */ (int) mQsFrame.getX() + mQsFrame.getWidth(),
|
||||||
|
/* bottom= */ header.getBottom());
|
||||||
|
// Also allow QS to intercept if the touch is near the notch.
|
||||||
|
mStatusBarTouchableRegionManager.updateRegionForNotch(mQsInterceptRegion);
|
||||||
|
final boolean onHeader = mQsInterceptRegion.contains((int) x, (int) y);
|
||||||
|
|
||||||
if (mQsExpanded) {
|
if (mQsExpanded) {
|
||||||
return onHeader || (yDiff < 0 && isInQsArea(x, y));
|
return onHeader || (yDiff < 0 && isInQsArea(x, y));
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -223,7 +223,7 @@ public final class StatusBarTouchableRegionManager implements Dumpable {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateRegionForNotch(Region touchableRegion) {
|
void updateRegionForNotch(Region touchableRegion) {
|
||||||
WindowInsets windowInsets = mNotificationShadeWindowView.getRootWindowInsets();
|
WindowInsets windowInsets = mNotificationShadeWindowView.getRootWindowInsets();
|
||||||
if (windowInsets == null) {
|
if (windowInsets == null) {
|
||||||
Log.w(TAG, "StatusBarWindowView is not attached.");
|
Log.w(TAG, "StatusBarWindowView is not attached.");
|
||||||
|
|||||||
Reference in New Issue
Block a user