diff --git a/app/src/main/java/com/beemdevelopment/aegis/helpers/SimpleItemTouchHelperCallback.java b/app/src/main/java/com/beemdevelopment/aegis/helpers/SimpleItemTouchHelperCallback.java index 96c672bde1..01a6700345 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/helpers/SimpleItemTouchHelperCallback.java +++ b/app/src/main/java/com/beemdevelopment/aegis/helpers/SimpleItemTouchHelperCallback.java @@ -32,14 +32,7 @@ public void setIsLongPressDragEnabled(boolean enabled) { } public void setSelectedEntry(VaultEntry entry) { - if (entry == null) { - _selectedEntry = null; - return; - } - - if (!entry.isFavorite()) { - _selectedEntry = entry; - } + _selectedEntry = entry; } @Override @@ -80,13 +73,21 @@ public int getMovementFlags(@NonNull RecyclerView recyclerView, @NonNull Recycle @Override public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) { - int targetIndex = _adapter.translateEntryPosToIndex(target.getBindingAdapterPosition()); - if (targetIndex < _adapter.getShownFavoritesCount()) { + int targetPosition = target.getBindingAdapterPosition(); + + if (_adapter.isPositionFooter(targetPosition) || _adapter.isPositionErrorCard(targetPosition)) { + return false; + } + + VaultEntry sourceEntry = _adapter.getEntryAtPosition(viewHolder.getBindingAdapterPosition()); + VaultEntry targetEntry = _adapter.getEntryAtPosition(targetPosition); + + if (sourceEntry.isFavorite() != targetEntry.isFavorite()) { return false; } int firstPosition = viewHolder.getLayoutPosition(); - int secondPosition = target.getBindingAdapterPosition(); + int secondPosition = targetPosition; _adapter.onItemMove(firstPosition, secondPosition); _positionChanged = true; diff --git a/app/src/main/java/com/beemdevelopment/aegis/ui/views/EntryAdapter.java b/app/src/main/java/com/beemdevelopment/aegis/ui/views/EntryAdapter.java index 9fce5424aa..1425fde5bf 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/ui/views/EntryAdapter.java +++ b/app/src/main/java/com/beemdevelopment/aegis/ui/views/EntryAdapter.java @@ -324,7 +324,6 @@ private boolean isEntryDraggable(VaultEntry entry) { return entry != null && isDragAndDropAllowed() && _selectedEntries.size() == 1 - && !_selectedEntries.get(0).isFavorite() && _selectedEntries.get(0) == entry; }