summaryrefslogtreecommitdiff
path: root/core/java/android
diff options
context:
space:
mode:
authorPhil Weaver <pweaver@google.com>2016-04-04 16:36:34 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2016-04-04 16:36:35 +0000
commit2bf5f20a2b9aeed688a9b0ffbf82f0368aae8023 (patch)
tree81ad97ef2d90322830e1808875b9cf082ca0ca68 /core/java/android
parentd4a19326085f2a68d568dfa754c29fd0ac49d193 (diff)
parent44b3b91bf087f040678af756b60ea1e00ee4926f (diff)
Merge "Support SET_TEXT for editable text views." into nyc-dev
Diffstat (limited to 'core/java/android')
-rw-r--r--core/java/android/widget/EditText.java3
-rw-r--r--core/java/android/widget/TextView.java14
2 files changed, 17 insertions, 0 deletions
diff --git a/core/java/android/widget/EditText.java b/core/java/android/widget/EditText.java
index 434e3eb8237e..ad355504a0ee 100644
--- a/core/java/android/widget/EditText.java
+++ b/core/java/android/widget/EditText.java
@@ -155,6 +155,9 @@ public class EditText extends TextView {
public boolean performAccessibilityActionInternal(int action, Bundle arguments) {
switch (action) {
case AccessibilityNodeInfo.ACTION_SET_TEXT: {
+ if (!isEnabled()) {
+ return false;
+ }
CharSequence text = (arguments != null) ? arguments.getCharSequence(
AccessibilityNodeInfo.ACTION_ARGUMENT_SET_TEXT_CHARSEQUENCE) : null;
setText(text);
diff --git a/core/java/android/widget/TextView.java b/core/java/android/widget/TextView.java
index 15d1bd6e08c6..da0768e4b604 100644
--- a/core/java/android/widget/TextView.java
+++ b/core/java/android/widget/TextView.java
@@ -9094,6 +9094,9 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
if (mBufferType == BufferType.EDITABLE) {
info.setEditable(true);
+ if (isEnabled()) {
+ info.addAction(AccessibilityNodeInfo.AccessibilityAction.ACTION_SET_TEXT);
+ }
}
if (mEditor != null) {
@@ -9225,6 +9228,17 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
}
}
} return false;
+ case AccessibilityNodeInfo.ACTION_SET_TEXT: {
+ if (!isEnabled() || (mBufferType != BufferType.EDITABLE)) {
+ return false;
+ }
+ CharSequence text = (arguments != null) ? arguments.getCharSequence(
+ AccessibilityNodeInfo.ACTION_ARGUMENT_SET_TEXT_CHARSEQUENCE) : null;
+ setText(text);
+ if (text != null && text.length() > 0) {
+ Selection.setSelection((Spannable) mText, text.length());
+ }
+ } return true;
default: {
return super.performAccessibilityActionInternal(action, arguments);
}