|
|
|
diff --git a/app/src/main/java/androidx/recyclerview/selection/GestureSelectionHelper.java b/app/src/main/java/androidx/recyclerview/selection/GestureSelectionHelper.java
|
|
|
|
index 7f2a5bb2..3736ada4 100644
|
|
|
|
--- a/app/src/main/java/androidx/recyclerview/selection/GestureSelectionHelper.java
|
|
|
|
+++ b/app/src/main/java/androidx/recyclerview/selection/GestureSelectionHelper.java
|
|
|
|
@@ -98,7 +98,7 @@ final class GestureSelectionHelper implements OnItemTouchListener {
|
|
|
|
case MotionEvent.ACTION_MOVE:
|
|
|
|
case MotionEvent.ACTION_UP:
|
|
|
|
case MotionEvent.ACTION_CANCEL:
|
|
|
|
- return mStarted;
|
|
|
|
+ return mStarted && mSelectionMgr.isRangeActive();
|
|
|
|
default:
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
diff --git a/app/src/main/java/androidx/recyclerview/selection/SelectionTracker.java b/app/src/main/java/androidx/recyclerview/selection/SelectionTracker.java
|
|
|
|
index ae3785df..1591ff4b 100644
|
|
|
|
--- a/app/src/main/java/androidx/recyclerview/selection/SelectionTracker.java
|
|
|
|
+++ b/app/src/main/java/androidx/recyclerview/selection/SelectionTracker.java
|
|
|
|
@@ -765,7 +765,13 @@ public abstract class SelectionTracker<K> {
|
|
|
|
new Runnable() {
|
|
|
|
@Override
|
|
|
|
public void run() {
|
|
|
|
- gestureHelper.start();
|
|
|
|
+ if (mSelectionPredicate.canSelectMultiple()) {
|
|
|
|
+ try {
|
|
|
|
+ gestureHelper.start();
|
|
|
|
+ } catch (IllegalStateException ex) {
|
|
|
|
+ ex.printStackTrace();
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
}
|
|
|
|
},
|
|
|
|
mOnDragInitiatedListener,
|
|
|
|
diff --git a/app/src/main/java/androidx/recyclerview/selection/TouchInputHandler.java b/app/src/main/java/androidx/recyclerview/selection/TouchInputHandler.java
|
|
|
|
index d82812cc..48db78ec 100644
|
|
|
|
--- a/app/src/main/java/androidx/recyclerview/selection/TouchInputHandler.java
|
|
|
|
+++ b/app/src/main/java/androidx/recyclerview/selection/TouchInputHandler.java
|
|
|
|
@@ -107,6 +107,11 @@ final class TouchInputHandler<K> extends MotionInputHandler<K> {
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
+ public boolean onDoubleTapEvent(MotionEvent e) {
|
|
|
|
+ return mSelectionTracker.hasSelection();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
public void onLongPress(@NonNull MotionEvent e) {
|
|
|
|
if (!mDetailsLookup.overItemWithSelectionKey(e)) {
|
|
|
|
if (DEBUG) Log.d(TAG, "Ignoring LongPress on non-model-backed item.");
|