summaryrefslogtreecommitdiffstats
path: root/core/java
diff options
context:
space:
mode:
authorGilles Debunne <debunne@google.com>2010-12-10 12:00:42 -0800
committerGilles Debunne <debunne@google.com>2010-12-15 16:52:51 -0800
commit33a8cfb0af2e1d5983bc128007ded21bcc4f2da9 (patch)
tree79703bbd7fdf2d7551bb36d8f2e14afbed4ddd33 /core/java
parenta69293a00d8a3320fc5750eb439bd3e809d0a821 (diff)
downloadframeworks_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.java10
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;