Merge "TextView should report in an AccessibilityNodeInfo's text its hint if the View text is empty."

This commit is contained in:
Svetoslav Ganov
2011-09-15 13:11:44 -07:00
committed by Android (Google) Code Review

View File

@@ -8939,14 +8939,8 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
final boolean isPassword = hasPasswordTransformationMethod();
if (!isPassword) {
CharSequence text = getText();
CharSequence text = getTextForAccessibility();
if (TextUtils.isEmpty(text)) {
text = getHint();
}
if (TextUtils.isEmpty(text)) {
text = getContentDescription();
}
if (!TextUtils.isEmpty(text)) {
event.getText().add(text);
}
}
@@ -8972,7 +8966,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
final boolean isPassword = hasPasswordTransformationMethod();
if (!isPassword) {
info.setText(getText());
info.setText(getTextForAccessibility());
}
info.setPassword(isPassword);
}
@@ -8988,6 +8982,20 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
super.sendAccessibilityEvent(eventType);
}
/**
* Gets the text reported for accessibility purposes. It is the
* text if not empty or the hint.
*
* @return The accessibility text.
*/
private CharSequence getTextForAccessibility() {
CharSequence text = getText();
if (TextUtils.isEmpty(text)) {
text = getHint();
}
return text;
}
void sendAccessibilityEventTypeViewTextChanged(CharSequence beforeText,
int fromIndex, int removedCount, int addedCount) {
AccessibilityEvent event =