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

Commit e47957a0 authored by Svetoslav Ganov's avatar Svetoslav Ganov
Browse files

Nodes with contentDescription should always be important for accessibility.

1. Now after setting the content description on a view we mark is as
   important for accessibility of the current important for accessibility
   mode of that view is auto.

2. Minor tweak to a touch explorer coefficient to make performing double
   tapping easier.

bug:6615353

Change-Id: I3b477f533a3ebde85d425caf32ace5e851240f88
parent 1c20cc5c
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -3457,7 +3457,7 @@ public class View implements Drawable.Callback, Drawable.Callback2, KeyEvent.Cal
                    }
                    break;
                case com.android.internal.R.styleable.View_contentDescription:
                    mContentDescription = a.getString(attr);
                    setContentDescription(a.getString(attr));
                    break;
                case com.android.internal.R.styleable.View_soundEffectsEnabled:
                    if (!a.getBoolean(attr, true)) {
@@ -5048,6 +5048,10 @@ public class View implements Drawable.Callback, Drawable.Callback2, KeyEvent.Cal
    @RemotableViewMethod
    public void setContentDescription(CharSequence contentDescription) {
        mContentDescription = contentDescription;
        final boolean nonEmptyDesc = contentDescription != null && contentDescription.length() > 0;
        if (nonEmptyDesc && getImportantForAccessibility() == IMPORTANT_FOR_ACCESSIBILITY_AUTO) {
             setImportantForAccessibility(IMPORTANT_FOR_ACCESSIBILITY_YES);
        }
    }
    /**
+5 −1
Original line number Diff line number Diff line
@@ -100,6 +100,9 @@ public class TouchExplorer {
    // Temporary array for storing pointer IDs.
    private final int[] mTempPointerIds = new int[MAX_POINTER_COUNT];

    // Timeout before trying to decide what the user is trying to do.
    private final int mDetermineUserIntentTimeout;

    // Timeout within which we try to detect a tap.
    private final int mTapTimeout;

@@ -199,6 +202,7 @@ public class TouchExplorer {
        mInjectedPointerTracker = new InjectedPointerTracker();
        mInputFilter = inputFilter;
        mTapTimeout = ViewConfiguration.getTapTimeout();
        mDetermineUserIntentTimeout = (int) (mTapTimeout * 1.5f);
        mDoubleTapTimeout = ViewConfiguration.getDoubleTapTimeout();
        mTouchSlop = ViewConfiguration.get(context).getScaledTouchSlop();
        mDoubleTapSlop = ViewConfiguration.get(context).getScaledDoubleTapSlop();
@@ -1332,7 +1336,7 @@ public class TouchExplorer {
            mPrototype = MotionEvent.obtain(prototype);
            mPointerIdBits = pointerIdBits;
            mPolicyFlags = policyFlags;
            mHandler.postDelayed(this, mTapTimeout);
            mHandler.postDelayed(this, mDetermineUserIntentTimeout);
        }

        public float getX() {