summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Alan Viverette <alanv@google.com> 2014-09-09 22:58:27 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2014-09-09 22:58:28 +0000
commita7cbaeb138b280b51f282a371cd11c65c0d05d1b (patch)
tree64814e042625d0b77817479b94fd003e6b199892
parentad0c450d4d9a1db6384984884e2a8244fe0c5071 (diff)
parentb687788f52e8367a32efbfdbc4738c2cae5804c1 (diff)
Merge "Bring up the IME when TextView receives ACTION_CLICK" into lmp-dev
-rw-r--r--core/java/android/widget/TextView.java27
1 files changed, 27 insertions, 0 deletions
diff --git a/core/java/android/widget/TextView.java b/core/java/android/widget/TextView.java
index 3e1b674892a1..80ea6ea0fe24 100644
--- a/core/java/android/widget/TextView.java
+++ b/core/java/android/widget/TextView.java
@@ -8423,6 +8423,33 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
@Override
public boolean performAccessibilityAction(int action, Bundle arguments) {
switch (action) {
+ case AccessibilityNodeInfo.ACTION_CLICK: {
+ boolean handled = false;
+
+ // Simulate View.onTouchEvent for an ACTION_UP event.
+ if (isClickable() || isLongClickable()) {
+ if (isFocusable() && !isFocused()) {
+ requestFocus();
+ }
+
+ performClick();
+ handled = true;
+ }
+
+ // Simulate TextView.onTouchEvent for an ACTION_UP event.
+ if ((mMovement != null || onCheckIsTextEditor()) && isEnabled()
+ && mText instanceof Spannable && mLayout != null
+ && (isTextEditable() || isTextSelectable()) && isFocused()) {
+ // Show the IME, except when selecting in read-only text.
+ final InputMethodManager imm = InputMethodManager.peekInstance();
+ viewClicked(imm);
+ if (!isTextSelectable() && mEditor.mShowSoftInputOnFocus && imm != null) {
+ handled |= imm.showSoftInput(this, 0);
+ }
+ }
+
+ return handled;
+ }
case AccessibilityNodeInfo.ACTION_COPY: {
if (isFocused() && canCopy()) {
if (onTextContextMenuItem(ID_COPY)) {