diff options
| author | Gilles Debunne <debunne@google.com> | 2010-12-10 12:00:42 -0800 |
|---|---|---|
| committer | Gilles Debunne <debunne@google.com> | 2010-12-15 16:52:51 -0800 |
| commit | 33a8cfb0af2e1d5983bc128007ded21bcc4f2da9 (patch) | |
| tree | 79703bbd7fdf2d7551bb36d8f2e14afbed4ddd33 /core/java | |
| parent | a69293a00d8a3320fc5750eb439bd3e809d0a821 (diff) | |
| download | frameworks_base-33a8cfb0af2e1d5983bc128007ded21bcc4f2da9.zip frameworks_base-33a8cfb0af2e1d5983bc128007ded21bcc4f2da9.tar.gz frameworks_base-33a8cfb0af2e1d5983bc128007ded21bcc4f2da9.tar.bz2 | |
Show keyboard when user starts a text selection.
Bug 3266297
Change-Id: I1985ab52ae867c4a6c92279986cd6d0654614118
Diffstat (limited to 'core/java')
| -rw-r--r-- | core/java/android/widget/TextView.java | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/core/java/android/widget/TextView.java b/core/java/android/widget/TextView.java index c7ee57b..93a306e 100644 --- a/core/java/android/widget/TextView.java +++ b/core/java/android/widget/TextView.java @@ -7152,7 +7152,8 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener int end = Math.min(len, mPrevEnd); Selection.setSelection((Spannable)mText, start, end); - if (hasSelection()) { + boolean selectAllGotFocus = mSelectAllOnFocus && mTouchFocusSelected; + if (hasSelection() && !selectAllGotFocus) { startSelectionActionMode(); } } @@ -7956,9 +7957,9 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener return true; } + // Long press in empty space moves cursor and shows the Paste affordance if available. if (!isPositionOnText(mLastDownPositionX, mLastDownPositionY) && mInsertionControllerEnabled) { - // Long press in empty space moves cursor and shows the Paste affordance if available. final int offset = getOffset(mLastDownPositionX, mLastDownPositionY); stopSelectionActionMode(); Selection.setSelection((Spannable)mText, offset); @@ -7978,6 +7979,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener startDrag(data, getTextThumbnailBuilder(selectedText), false, localState); stopSelectionActionMode(); } else { + // Start a new selection at current position, keep selectionAction mode on selectCurrentWord(); getSelectionController().show(); } @@ -7986,6 +7988,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener return true; } + // Start a new selection if (startSelectionActionMode()) { performHapticFeedback(HapticFeedbackConstants.LONG_PRESS); mDiscardNextActionUp = true; @@ -8061,6 +8064,9 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener } selectCurrentWord(); + final InputMethodManager imm = (InputMethodManager) + getContext().getSystemService(Context.INPUT_METHOD_SERVICE); + imm.showSoftInput(this, 0, null); ActionMode.Callback actionModeCallback = new SelectionActionModeCallback(); mSelectionActionMode = startActionMode(actionModeCallback); return mSelectionActionMode != null; |
