diff options
| author | Phil Weaver <pweaver@google.com> | 2016-04-04 16:36:34 +0000 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2016-04-04 16:36:35 +0000 |
| commit | 2bf5f20a2b9aeed688a9b0ffbf82f0368aae8023 (patch) | |
| tree | 81ad97ef2d90322830e1808875b9cf082ca0ca68 /core/java/android | |
| parent | d4a19326085f2a68d568dfa754c29fd0ac49d193 (diff) | |
| parent | 44b3b91bf087f040678af756b60ea1e00ee4926f (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.java | 3 | ||||
| -rw-r--r-- | core/java/android/widget/TextView.java | 14 |
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); } |
