diff options
author | Stefan Niedermann <info@niedermann.it> | 2021-09-11 13:02:25 +0300 |
---|---|---|
committer | Stefan Niedermann <info@niedermann.it> | 2021-09-11 13:02:25 +0300 |
commit | a9fb6f12ba310163fd3e649ee1a114fa7d1ade24 (patch) | |
tree | 1ff5f56138e39d42f95b7cad9b7f0bac29aba1e9 /app/src/main | |
parent | 119fced9697f304ecb8039236f7f84b634aae2a5 (diff) |
Fix #1308 Crash when long pressing a note and swiping to the edge of the screen
Signed-off-by: Stefan Niedermann <info@niedermann.it>
Diffstat (limited to 'app/src/main')
-rw-r--r-- | app/src/main/java/it/niedermann/owncloud/notes/main/items/ItemAdapter.java | 4 | ||||
-rw-r--r-- | app/src/main/java/it/niedermann/owncloud/notes/main/items/selection/ItemSelectionTracker.java | 5 |
2 files changed, 8 insertions, 1 deletions
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/main/items/ItemAdapter.java b/app/src/main/java/it/niedermann/owncloud/notes/main/items/ItemAdapter.java index 5508beb6..7470fa25 100644 --- a/app/src/main/java/it/niedermann/owncloud/notes/main/items/ItemAdapter.java +++ b/app/src/main/java/it/niedermann/owncloud/notes/main/items/ItemAdapter.java @@ -170,6 +170,10 @@ public class ItemAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> i return itemList.get(notePosition); } + public boolean hasItemPosition(int notePosition) { + return notePosition >= 0 && notePosition < itemList.size(); + } + public void remove(@NonNull Item item) { itemList.remove(item); notifyDataSetChanged(); diff --git a/app/src/main/java/it/niedermann/owncloud/notes/main/items/selection/ItemSelectionTracker.java b/app/src/main/java/it/niedermann/owncloud/notes/main/items/selection/ItemSelectionTracker.java index 4031c47e..bce834e2 100644 --- a/app/src/main/java/it/niedermann/owncloud/notes/main/items/selection/ItemSelectionTracker.java +++ b/app/src/main/java/it/niedermann/owncloud/notes/main/items/selection/ItemSelectionTracker.java @@ -31,7 +31,10 @@ public class ItemSelectionTracker { @Override public boolean canSetStateAtPosition(int position, boolean nextState) { @Nullable Integer swipedPosition = adapter.getSwipedPosition(); - return !adapter.getItem(position).isSection() && (swipedPosition == null || swipedPosition != position); + if (!adapter.hasItemPosition(position)) { + return false; + } + return (swipedPosition == null || swipedPosition != position) && !adapter.getItem(position).isSection(); } @Override |