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

Commit 9dc32099 authored by Adrian Roos's avatar Adrian Roos
Browse files

Disable touch dispatch while adjusting brightness

Prevents new pointers from being added while the shade
is transparent so that nothing gets touched by accident.

Bug: 17113634
Change-Id: I4a607d08dbccd467280159060846edd32db9c512
parent ce5474b8
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
@@ -42,6 +42,7 @@ public class StatusBarWindowView extends FrameLayout {
    private DragDownHelper mDragDownHelper;
    private NotificationStackScrollLayout mStackScrollLayout;
    private NotificationPanelView mNotificationPanel;
    private View mBrightnessMirror;

    PhoneStatusBar mService;

@@ -72,6 +73,7 @@ public class StatusBarWindowView extends FrameLayout {
                R.id.notification_stack_scroller);
        mNotificationPanel = (NotificationPanelView) findViewById(R.id.notification_panel);
        mDragDownHelper = new DragDownHelper(getContext(), this, mStackScrollLayout, mService);
        mBrightnessMirror = findViewById(R.id.brightness_mirror);

        // We really need to be able to animate while window animations are going on
        // so that activities may be started asynchronously from panel animations
@@ -105,6 +107,19 @@ public class StatusBarWindowView extends FrameLayout {
        return super.dispatchKeyEvent(event);
    }

    @Override
    public boolean dispatchTouchEvent(MotionEvent ev) {
        if (mBrightnessMirror != null && mBrightnessMirror.getVisibility() == VISIBLE) {
            // Disallow new pointers while the brightness mirror is visible. This is so that you
            // can't touch anything other than the brightness slider while the mirror is showing
            // and the rest of the panel is transparent.
            if (ev.getActionMasked() == MotionEvent.ACTION_POINTER_DOWN) {
                return false;
            }
        }
        return super.dispatchTouchEvent(ev);
    }

    @Override
    public boolean onInterceptTouchEvent(MotionEvent ev) {
        boolean intercept = false;