diff options
| author | Matthew Wong <wongma7@outlook.com> | 2016-05-14 20:30:55 -0400 |
|---|---|---|
| committer | Matthew Wong <wongma7@outlook.com> | 2016-05-14 20:30:55 -0400 |
| commit | cacf739f6d5af79ddfe623cc764b07ff8a6136f6 (patch) | |
| tree | 9699a66bd7a411fe1098ec11b91fc30468c8222b /app/src/main/java/com/zeapo/pwdstore/utils | |
| parent | 2b01219e5c4a47b685d49b8aeb7671fafe9de8b0 (diff) | |
| download | HardenedPass-cacf739f6d5af79ddfe623cc764b07ff8a6136f6.tar.gz HardenedPass-cacf739f6d5af79ddfe623cc764b07ff8a6136f6.zip | |
add edit long press action
Diffstat (limited to 'app/src/main/java/com/zeapo/pwdstore/utils')
| -rw-r--r-- | app/src/main/java/com/zeapo/pwdstore/utils/PasswordRecyclerAdapter.java | 22 |
1 files changed, 21 insertions, 1 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 c9158b30..45dd0d0b 100644 --- a/app/src/main/java/com/zeapo/pwdstore/utils/PasswordRecyclerAdapter.java +++ b/app/src/main/java/com/zeapo/pwdstore/utils/PasswordRecyclerAdapter.java @@ -25,6 +25,7 @@ public class PasswordRecyclerAdapter extends RecyclerView.Adapter<PasswordRecycl private final PasswordFragment.OnFragmentInteractionListener listener; private final Set<Integer> selectedItems; private ActionMode mActionMode; + private Boolean canEdit; // Provide a reference to the views for each data item // Complex data items may need more than one view per item, and @@ -85,6 +86,14 @@ public class PasswordRecyclerAdapter extends RecyclerView.Adapter<PasswordRecycl toggleSelection(holder.getAdapterPosition(), holder.card, pass.getType()); if (selectedItems.isEmpty()) { mActionMode.finish(); + } else if (selectedItems.size() == 1 && !canEdit) { + if (values.get(selectedItems.iterator().next()).getType() == PasswordItem.TYPE_PASSWORD) { + canEdit = true; + mActionMode.invalidate(); + } + } else if (selectedItems.size() >= 1 && canEdit) { + canEdit = false; + mActionMode.invalidate(); } } else { listener.onFragmentInteraction(pass); @@ -99,8 +108,10 @@ public class PasswordRecyclerAdapter extends RecyclerView.Adapter<PasswordRecycl return false; } toggleSelection(holder.getAdapterPosition(), holder.card, pass.getType()); + canEdit = pass.getType() == PasswordItem.TYPE_PASSWORD; // Start the CAB using the ActionMode.Callback mActionMode = activity.startSupportActionMode(mActionModeCallback); + mActionMode.invalidate(); return true; } }); @@ -123,7 +134,12 @@ public class PasswordRecyclerAdapter extends RecyclerView.Adapter<PasswordRecycl // may be called multiple times if the mode is invalidated. @Override public boolean onPrepareActionMode(ActionMode mode, Menu menu) { - return false; // Return false if nothing is done + if (canEdit) { + menu.findItem(R.id.menu_edit_password).setVisible(true); + } else { + menu.findItem(R.id.menu_edit_password).setVisible(false); + } + return true; // Return false if nothing is done } // Called when the user selects a contextual menu item @@ -134,6 +150,10 @@ public class PasswordRecyclerAdapter extends RecyclerView.Adapter<PasswordRecycl activity.deletePasswords(PasswordRecyclerAdapter.this, new TreeSet<>(selectedItems)); mode.finish(); // Action picked, so close the CAB return true; + case R.id.menu_edit_password: + activity.editPassword(values.get(selectedItems.iterator().next())); + mode.finish(); + return true; default: return false; } |
