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

Commit 59c9b30e authored by Roman Birg's avatar Roman Birg Committed by Steve Kondik
Browse files

SystemUI: add quick settings pull down with one finger



Logic is currently set to use 1/3 of right hand side of the statusbar to
trigger a quick settings quick pull down, quickly.

Change-Id: I3f536496f724f07d2419a5b2db5fa8f8261609e7
Signed-off-by: default avatarRoman Birg <roman@cyngn.com>
parent 9677ab18
Loading
Loading
Loading
Loading
+20 −4
Original line number Diff line number Diff line
@@ -620,8 +620,12 @@ public class NotificationPanelView extends PanelView implements
                && mQsExpansionEnabled) {
            mTwoFingerQsExpandPossible = true;
        }
        if (mTwoFingerQsExpandPossible && event.getActionMasked() == MotionEvent.ACTION_POINTER_DOWN
                && event.getPointerCount() == 2
        boolean twoFingerQsEvent = mTwoFingerQsExpandPossible
                && (event.getActionMasked() == MotionEvent.ACTION_POINTER_DOWN
                && event.getPointerCount() == 2);
        boolean oneFingerQsOverride = event.getActionMasked() == MotionEvent.ACTION_DOWN
                && shouldQuickSettingsIntercept(event.getX(), event.getY(), -1, false);
        if ((twoFingerQsEvent || oneFingerQsOverride)
                && event.getY(event.getActionIndex()) < mStatusBarMinHeight) {
            mTwoFingerQsExpand = true;
            requestPanelHeightUpdate();
@@ -1181,16 +1185,28 @@ public class NotificationPanelView extends PanelView implements
     * @return Whether we should intercept a gesture to open Quick Settings.
     */
    private boolean shouldQuickSettingsIntercept(float x, float y, float yDiff) {
        return shouldQuickSettingsIntercept(x, y, yDiff, true);
    }

    /**
     * @return Whether we should intercept a gesture to open Quick Settings.
     */
    private boolean shouldQuickSettingsIntercept(float x, float y, float yDiff, boolean useHeader) {
        if (!mQsExpansionEnabled) {
            return false;
        }
        View header = mKeyguardShowing ? mKeyguardStatusBar : mHeader;
        boolean onHeader = x >= header.getLeft() && x <= header.getRight()
        boolean onHeader = useHeader && x >= header.getLeft() && x <= header.getRight()
                && y >= header.getTop() && y <= header.getBottom();

        final float w = getMeasuredWidth();
        float region = (w * (1.f/3.f)); // TODO overlay region fraction?
        final boolean showQsOverride = isLayoutRtl() ? (x < region) : (w - region < x);

        if (mQsExpanded) {
            return onHeader || (mScrollView.isScrolledToBottom() && yDiff < 0) && isInQsArea(x, y);
        } else {
            return onHeader;
            return onHeader || showQsOverride;
        }
    }