diff --git a/app/src/main/java/androidx/recyclerview/selection/DefaultSelectionTracker.java b/app/src/main/java/androidx/recyclerview/selection/DefaultSelectionTracker.java index 8f564e44b2..7093084825 100644 --- a/app/src/main/java/androidx/recyclerview/selection/DefaultSelectionTracker.java +++ b/app/src/main/java/androidx/recyclerview/selection/DefaultSelectionTracker.java @@ -394,7 +394,7 @@ public class DefaultSelectionTracker extends SelectionTracker implements R @SuppressWarnings({"WeakerAccess", "unchecked"}) /* synthetic access */ void onDataSetChanged() { - //mSelection.clearProvisionalSelection(); + mSelection.clearProvisionalSelection(); notifySelectionRefresh(); diff --git a/patches/selection-tracker.patch b/patches/selection-tracker.patch deleted file mode 100644 index 0fde5ac97e..0000000000 --- a/patches/selection-tracker.patch +++ /dev/null @@ -1,47 +0,0 @@ ---- /home/marcel/support/recyclerview/recyclerview-selection/src/main/java/androidx/recyclerview/selection/DefaultSelectionTracker.java 2020-03-23 17:03:46.043122318 +0100 -+++ app/src/main/java/androidx/recyclerview/selection/DefaultSelectionTracker.java 2020-06-26 16:44:56.973294109 +0200 -@@ -379,6 +379,10 @@ public class DefaultSelectionTracker - return mRange != null; - } - -+ boolean isOverlapping(int position, int count) { -+ return (mRange != null && mRange.isOverlapping(position, count)); -+ } -+ - private boolean canSetState(@NonNull K key, boolean nextState) { - return mSelectionPredicate.canSetStateForKey(key, nextState); - } -@@ -390,7 +394,7 @@ public class DefaultSelectionTracker - - @SuppressWarnings({"WeakerAccess", "unchecked"}) /* synthetic access */ - void onDataSetChanged() { -- mSelection.clearProvisionalSelection(); -+ //mSelection.clearProvisionalSelection(); - - notifySelectionRefresh(); - -@@ -601,17 +605,21 @@ public class DefaultSelectionTracker - - @Override - public void onItemRangeInserted(int startPosition, int itemCount) { -- mSelectionTracker.endRange(); -+ if (mSelectionTracker.isOverlapping(startPosition, itemCount)) -+ mSelectionTracker.endRange(); - } - - @Override - public void onItemRangeRemoved(int startPosition, int itemCount) { -- mSelectionTracker.endRange(); -+ if (mSelectionTracker.isOverlapping(startPosition, itemCount)) -+ mSelectionTracker.endRange(); - } - - @Override - public void onItemRangeMoved(int fromPosition, int toPosition, int itemCount) { -- mSelectionTracker.endRange(); -+ if (mSelectionTracker.isOverlapping(fromPosition, itemCount) || -+ mSelectionTracker.isOverlapping(toPosition, itemCount)) -+ mSelectionTracker.endRange(); - } - } - }