summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--core/java/android/widget/TextView.java19
1 files changed, 13 insertions, 6 deletions
diff --git a/core/java/android/widget/TextView.java b/core/java/android/widget/TextView.java
index 39f6e27..c61aad1 100644
--- a/core/java/android/widget/TextView.java
+++ b/core/java/android/widget/TextView.java
@@ -9228,21 +9228,23 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
@Override
public boolean performLongClick() {
+ boolean handled = false;
+ boolean vibrate = true;
+
if (super.performLongClick()) {
mDiscardNextActionUp = true;
- return true;
+ handled = true;
}
- boolean handled = false;
-
// Long press in empty space moves cursor and shows the Paste affordance if available.
- if (!isPositionOnText(mLastDownPositionX, mLastDownPositionY) &&
+ if (!handled && !isPositionOnText(mLastDownPositionX, mLastDownPositionY) &&
mInsertionControllerEnabled) {
final int offset = getOffsetForPosition(mLastDownPositionX, mLastDownPositionY);
stopSelectionActionMode();
Selection.setSelection((Spannable) mText, offset);
getInsertionController().showWithActionPopup();
handled = true;
+ vibrate = false;
}
if (!handled && mSelectionActionMode != null) {
@@ -9264,10 +9266,15 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
}
// Start a new selection
- handled |= !handled && startSelectionActionMode();
+ if (!handled) {
+ handled = startSelectionActionMode();
+ }
- if (handled) {
+ if (vibrate) {
performHapticFeedback(HapticFeedbackConstants.LONG_PRESS);
+ }
+
+ if (handled) {
mDiscardNextActionUp = true;
}