am d8bc6677: Merge "Optimize text rendering in accessibility mode." into lmp-mr1-dev

* commit 'd8bc6677e5b923cda9e953b60c936815368fb84a':
  Optimize text rendering in accessibility mode.
This commit is contained in:
Svet Ganov
2014-10-23 07:55:48 +00:00
committed by Android Git Automerger

View File

@@ -8518,6 +8518,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
} return false; } return false;
case AccessibilityNodeInfo.ACTION_SET_SELECTION: { case AccessibilityNodeInfo.ACTION_SET_SELECTION: {
if (isFocused() && canSelectText()) { if (isFocused() && canSelectText()) {
ensureIterableTextForAccessibilitySelectable();
CharSequence text = getIterableTextForAccessibility(); CharSequence text = getIterableTextForAccessibility();
if (text == null) { if (text == null) {
return false; return false;
@@ -8543,6 +8544,11 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
} }
} }
} return false; } return false;
case AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY:
case AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY: {
ensureIterableTextForAccessibilitySelectable();
return super.performAccessibilityAction(action, arguments);
}
default: { default: {
return super.performAccessibilityAction(action, arguments); return super.performAccessibilityAction(action, arguments);
} }
@@ -9032,10 +9038,13 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
*/ */
@Override @Override
public CharSequence getIterableTextForAccessibility() { public CharSequence getIterableTextForAccessibility() {
return mText;
}
private void ensureIterableTextForAccessibilitySelectable() {
if (!(mText instanceof Spannable)) { if (!(mText instanceof Spannable)) {
setText(mText, BufferType.SPANNABLE); setText(mText, BufferType.SPANNABLE);
} }
return mText;
} }
/** /**