diff options
Diffstat (limited to 'app/src')
-rw-r--r-- | app/src/main/java/com/zeapo/pwdstore/PasswordFragment.java | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/app/src/main/java/com/zeapo/pwdstore/PasswordFragment.java b/app/src/main/java/com/zeapo/pwdstore/PasswordFragment.java index 4d433013..6058d169 100644 --- a/app/src/main/java/com/zeapo/pwdstore/PasswordFragment.java +++ b/app/src/main/java/com/zeapo/pwdstore/PasswordFragment.java @@ -129,13 +129,15 @@ public class PasswordFragment extends Fragment{ public void filterAdapter(String filter) { if (filter.isEmpty()) { updateAdapter(); - return; - } - for (int i=0; i<recyclerAdapter.getItemCount(); i++) { - PasswordItem item = recyclerAdapter.getValues().get(i); - boolean matches = item.getName().toLowerCase().contains(filter); - if (!matches) { - recyclerAdapter.remove(i); + } else { + for (PasswordItem item : PasswordRepository.getPasswords()) { + boolean matches = item.getName().toLowerCase().contains(filter); + boolean inAdapter = recyclerAdapter.getValues().contains(item); + if (matches && !inAdapter) { + recyclerAdapter.add(item); + } else if (!matches && inAdapter) { + recyclerAdapter.remove(recyclerAdapter.getValues().indexOf(item)); + } } } } |