Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b8842318 authored by Caitlin Cassidy's avatar Caitlin Cassidy
Browse files

Allow swiping down from area directly below notch to trigger QS instead

of notification shade.

Demo uploaded to bug.

Fixes: 191114862
Test: Manual (see demo video)

Change-Id: I3181963bd9f66196b992d63b99bf6c2614fefe4b
parent b01c33a7
Loading
Loading
Loading
Loading
+11 −4
Original line number Diff line number Diff line
@@ -578,6 +578,7 @@ public class NotificationPanelViewController extends PanelViewController {
     */
    private ValueAnimator mQsClippingAnimation = null;
    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
@@ -2643,10 +2644,16 @@ public class NotificationPanelViewController extends PanelViewController {
            return false;
        }
        View header = mKeyguardShowing || mQs == null ? mKeyguardStatusBar : mQs.getHeader();
        final boolean
                onHeader =
                x >= mQsFrame.getX() && x <= mQsFrame.getX() + mQsFrame.getWidth()
                        && y >= header.getTop() && y <= header.getBottom();

        mQsInterceptRegion.set(
                /* left= */ (int) mQsFrame.getX(),
                /* 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) {
            return onHeader || (yDiff < 0 && isInQsArea(x, y));
        } else {
+1 −1
Original line number Diff line number Diff line
@@ -223,7 +223,7 @@ public final class StatusBarTouchableRegionManager implements Dumpable {
        }
    }

    private void updateRegionForNotch(Region touchableRegion) {
    void updateRegionForNotch(Region touchableRegion) {
        WindowInsets windowInsets = mNotificationShadeWindowView.getRootWindowInsets();
        if (windowInsets == null) {
            Log.w(TAG, "StatusBarWindowView is not attached.");