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

Commit 86fb6220 authored by Beverly's avatar Beverly Committed by Beverly Tai
Browse files

Don't send lock icon touches to NotifShade

If the lock icon affordance enters the device,
we don't want the shade to expand after device
entry.

Test: manual
Fixes: 208364482
Change-Id: If2d5b5296f7820b099e4315f9586632993617955
parent 8a05667f
Loading
Loading
Loading
Loading
+24 −12
Original line number Original line Diff line number Diff line
@@ -661,24 +661,36 @@ public class LockIconViewController extends ViewController<LockIconView> impleme
     * @return whether to intercept the touch event
     * @return whether to intercept the touch event
     */
     */
    public boolean onTouchEvent(MotionEvent event, Runnable onGestureDetectedRunnable) {
    public boolean onTouchEvent(MotionEvent event, Runnable onGestureDetectedRunnable) {
        if (mSensorTouchLocation.contains((int) event.getX(), (int) event.getY())
        if (onInterceptTouchEvent(event)) {
                && (mView.getVisibility() == View.VISIBLE
                || (mAodFp != null && mAodFp.getVisibility() == View.VISIBLE))) {
            mOnGestureDetectedRunnable = onGestureDetectedRunnable;
            mOnGestureDetectedRunnable = onGestureDetectedRunnable;
            mGestureDetector.onTouchEvent(event);
            mGestureDetector.onTouchEvent(event);
            return true;
        }
        }


        // we continue to intercept all following touches until we see MotionEvent.ACTION_CANCEL UP
        // or MotionEvent.ACTION_UP. this is to avoid passing the touch to NPV
        // after the lock icon disappears on device entry
        if (mDownDetected) {
            if (event.getAction() == MotionEvent.ACTION_CANCEL
                    || event.getAction() == MotionEvent.ACTION_UP) {
        mDownDetected = false;
        mDownDetected = false;
        return false;
    }

    /**
     * Intercepts the touch if the onDown event and current event are within this lock icon view's
     * bounds.
     */
    public boolean onInterceptTouchEvent(MotionEvent event) {
        if (!inLockIconArea(event) || !isClickable()) {
            return false;
        }
        }

        if (event.getActionMasked() == MotionEvent.ACTION_DOWN) {
            return true;
            return true;
        }
        }
        return false;

        return mDownDetected;
    }

    private boolean inLockIconArea(MotionEvent event) {
        return mSensorTouchLocation.contains((int) event.getX(), (int) event.getY())
                && (mView.getVisibility() == View.VISIBLE
                || (mAodFp != null && mAodFp.getVisibility() == View.VISIBLE));
    }
    }


    private boolean isClickable() {
    private boolean isClickable() {
+5 −0
Original line number Original line Diff line number Diff line
@@ -338,6 +338,11 @@ public class NotificationShadeWindowViewController {
                    return true;
                    return true;
                }
                }


                if (mLockIconViewController.onInterceptTouchEvent(ev)) {
                    // immediately return true; don't send the touch to the drag down helper
                    return true;
                }

                boolean intercept = false;
                boolean intercept = false;
                if (mNotificationPanelViewController.isFullyExpanded()
                if (mNotificationPanelViewController.isFullyExpanded()
                        && mDragDownHelper.isDragDownEnabled()
                        && mDragDownHelper.isDragDownEnabled()