diff options
| author | Matthew Wong <wongma@protonmail.ch> | 2015-08-11 17:39:35 -0400 |
|---|---|---|
| committer | Matthew Wong <wongma@protonmail.ch> | 2015-08-11 17:39:35 -0400 |
| commit | 113dadd227a4d1cb4d9d12ee8c77c475fa19b577 (patch) | |
| tree | b050ee4afd86d0482015dba61a515d65157892b8 /app/src/main/java/com/zeapo/pwdstore/utils | |
| parent | 083f340f29944bc6f026af09ddb8356325c66e4c (diff) | |
| download | HardenedPass-113dadd227a4d1cb4d9d12ee8c77c475fa19b577.tar.gz HardenedPass-113dadd227a4d1cb4d9d12ee8c77c475fa19b577.zip | |
Open password deletion dialogs one-by-one instead of all at once, don't rely on the order of opening (potentially prevent #115)
Diffstat (limited to 'app/src/main/java/com/zeapo/pwdstore/utils')
| -rw-r--r-- | app/src/main/java/com/zeapo/pwdstore/utils/PasswordRecyclerAdapter.java | 29 |
1 files changed, 16 insertions, 13 deletions
diff --git a/app/src/main/java/com/zeapo/pwdstore/utils/PasswordRecyclerAdapter.java b/app/src/main/java/com/zeapo/pwdstore/utils/PasswordRecyclerAdapter.java index b4ad1d81..4bf9cb98 100644 --- a/app/src/main/java/com/zeapo/pwdstore/utils/PasswordRecyclerAdapter.java +++ b/app/src/main/java/com/zeapo/pwdstore/utils/PasswordRecyclerAdapter.java @@ -140,9 +140,7 @@ public class PasswordRecyclerAdapter extends RecyclerView.Adapter<PasswordRecycl public boolean onActionItemClicked(ActionMode mode, MenuItem item) { switch (item.getItemId()) { case R.id.menu_delete_password: - for (int position : selectedItems) { - activity.deletePassword(PasswordRecyclerAdapter.this, position); - } + activity.deletePasswords(PasswordRecyclerAdapter.this, new TreeSet<>(selectedItems)); mode.finish(); // Action picked, so close the CAB return true; default: @@ -193,16 +191,7 @@ public class PasswordRecyclerAdapter extends RecyclerView.Adapter<PasswordRecycl // keep selectedItems updated so we know what to notifyItemChanged // (instead of just using notifyDataSetChanged) - Set<Integer> temp = new TreeSet<>(); - for (int selected : selectedItems) { - if (selected > position) { - temp.add(selected - 1); - } else { - temp.add(selected); - } - } - selectedItems.clear(); - selectedItems.addAll(temp); + updateSelectedItems(position, selectedItems); } public void toggleSelection(int position, View view) { @@ -214,4 +203,18 @@ public class PasswordRecyclerAdapter extends RecyclerView.Adapter<PasswordRecycl } } + // use this after an item is removed to update the positions of items in set + // that followed the removed position + public void updateSelectedItems(int position, Set<Integer> selectedItems) { + Set<Integer> temp = new TreeSet<>(); + for (int selected : selectedItems) { + if (selected > position) { + temp.add(selected - 1); + } else { + temp.add(selected); + } + } + selectedItems.clear(); + selectedItems.addAll(temp); + } }
\ No newline at end of file |
