Merge "Nodes with contentDescription should always be important for accessibility." into jb-dev

This commit is contained in:
Svetoslav Ganov
2012-06-05 15:55:42 -07:00
committed by Android (Google) Code Review
2 changed files with 10 additions and 2 deletions

View File

@@ -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);
}
}
/**

View File

@@ -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() {