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

Commit ae1bbbb3 authored by Selim Cinek's avatar Selim Cinek
Browse files

Only requiring 2 taps for accessibility on lock screen

On the lock screen we were requiring two double taps
in order to unlock to a notification, which seems excessive
especially since talkback do their own falsing already.

Test: add notification with talkback on, try double tap
Test: add notification without talkback, existing logic still works
Bug: 32945599
Change-Id: I07e0e4299140644f62d311d8db25ec25ff138fde
parent 0c87f870
Loading
Loading
Loading
Loading
+11 −3
Original line number Diff line number Diff line
@@ -29,6 +29,7 @@ import android.view.MotionEvent;
import android.view.View;
import android.view.ViewAnimationUtils;
import android.view.ViewConfiguration;
import android.view.accessibility.AccessibilityManager;
import android.view.animation.Interpolator;
import android.view.animation.PathInterpolator;

@@ -37,6 +38,7 @@ import com.android.systemui.R;
import com.android.systemui.classifier.FalsingManager;
import com.android.systemui.statusbar.notification.FakeShadowView;
import com.android.systemui.statusbar.notification.NotificationUtils;
import com.android.systemui.statusbar.policy.AccessibilityController;
import com.android.systemui.statusbar.stack.NotificationStackScrollLayout;
import com.android.systemui.statusbar.stack.StackStateAnimator;

@@ -99,6 +101,7 @@ public abstract class ActivatableNotificationView extends ExpandableOutlineView
    private final int mTintedRippleColor;
    private final int mLowPriorityRippleColor;
    protected final int mNormalRippleColor;
    private final AccessibilityManager mAccessibilityManager;

    private boolean mDimmed;
    private boolean mDark;
@@ -199,6 +202,7 @@ public abstract class ActivatableNotificationView extends ExpandableOutlineView
        mNormalRippleColor = context.getColor(
                R.color.notification_ripple_untinted_color);
        mFalsingManager = FalsingManager.getInstance(context);
        mAccessibilityManager = AccessibilityManager.getInstance(mContext);
    }

    @Override
@@ -223,13 +227,17 @@ public abstract class ActivatableNotificationView extends ExpandableOutlineView

    @Override
    public boolean onInterceptTouchEvent(MotionEvent ev) {
        if (mDimmed && !mActivated
                && ev.getActionMasked() == MotionEvent.ACTION_DOWN && disallowSingleClick(ev)) {
        if (mDimmed && !mActivated && ev.getActionMasked() == MotionEvent.ACTION_DOWN
                && disallowSingleClick(ev) && !isTouchExplorationEnabled()) {
            return true;
        }
        return super.onInterceptTouchEvent(ev);
    }

    private boolean isTouchExplorationEnabled() {
        return mAccessibilityManager.isTouchExplorationEnabled();
    }

    protected boolean disallowSingleClick(MotionEvent ev) {
        return false;
    }
@@ -241,7 +249,7 @@ public abstract class ActivatableNotificationView extends ExpandableOutlineView
    @Override
    public boolean onTouchEvent(MotionEvent event) {
        boolean result;
        if (mDimmed) {
        if (mDimmed && !isTouchExplorationEnabled()) {
            boolean wasActivated = mActivated;
            result = handleTouchEventDimmed(event);
            if (wasActivated && result && event.getAction() == MotionEvent.ACTION_UP) {