From ecdadf53358829ae0a40d2b6401837c988b9f23b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20Sch=C3=A4ttgen?= Date: Sun, 31 Mar 2019 21:23:14 +0200 Subject: [PATCH] Add SortCategory fixes and support for custom sorting --- .../java/com/beemdevelopment/aegis/SortCategory.java | 7 +++---- .../java/com/beemdevelopment/aegis/ui/MainActivity.java | 9 ++++++++- .../com/beemdevelopment/aegis/ui/views/EntryAdapter.java | 7 ++++--- 3 files changed, 15 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/com/beemdevelopment/aegis/SortCategory.java b/app/src/main/java/com/beemdevelopment/aegis/SortCategory.java index 0124e503..0f2005e4 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/SortCategory.java +++ b/app/src/main/java/com/beemdevelopment/aegis/SortCategory.java @@ -1,5 +1,6 @@ package com.beemdevelopment.aegis; +import com.beemdevelopment.aegis.helpers.comparators.AccountNameComparator; import com.beemdevelopment.aegis.helpers.comparators.IssuerNameComparator; import java.util.Comparator; @@ -14,11 +15,9 @@ public enum SortCategory { public static Comparator getComparator(SortCategory sortCategory) { switch(sortCategory) { case ACCOUNT: - return new IssuerNameComparator(); case ACCOUNTREVERSED: - return new IssuerNameComparator(); + return new AccountNameComparator(); case ISSUER: - return new IssuerNameComparator(); case ISSUERREVERSED: return new IssuerNameComparator(); case CUSTOM: @@ -35,7 +34,7 @@ public enum SortCategory { return true; default: - return true; + return false; } } } diff --git a/app/src/main/java/com/beemdevelopment/aegis/ui/MainActivity.java b/app/src/main/java/com/beemdevelopment/aegis/ui/MainActivity.java index b3ad2d74..bd901ec8 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/ui/MainActivity.java +++ b/app/src/main/java/com/beemdevelopment/aegis/ui/MainActivity.java @@ -265,6 +265,13 @@ public class MainActivity extends AegisActivity implements EntryListView.Listene private void setSortCategory(SortCategory sortCategory) { _sortCategory = sortCategory; + + if(sortCategory == SortCategory.CUSTOM) + { + _entryListView.clearEntries(); + loadEntries(); + } + _entryListView.setSortCategory(sortCategory); } @@ -457,7 +464,7 @@ public class MainActivity extends AegisActivity implements EntryListView.Listene case R.id.sort_custom: default: - sortCategory = SortCategory.ACCOUNTREVERSED; + sortCategory = SortCategory.CUSTOM; break; } 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 829ba953..9f7fa08a 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 @@ -155,9 +155,8 @@ public class EntryAdapter extends RecyclerView.Adapter implements I } public void setSortCategory(SortCategory sortCategory) { - if (_sortCategory != sortCategory) { - _sortCategory = sortCategory; - Collections.sort(_shownEntries, new IssuerNameComparator()); + if (_sortCategory != sortCategory && sortCategory != SortCategory.CUSTOM) { + Collections.sort(_shownEntries, SortCategory.getComparator(sortCategory)); if(SortCategory.isReversed(sortCategory)) { @@ -166,6 +165,8 @@ public class EntryAdapter extends RecyclerView.Adapter implements I notifyDataSetChanged(); } + + _sortCategory = sortCategory; } @Override