diff --git a/app/src/main/java/com/beemdevelopment/aegis/Preferences.java b/app/src/main/java/com/beemdevelopment/aegis/Preferences.java index b4c5d920..f714afc9 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/Preferences.java +++ b/app/src/main/java/com/beemdevelopment/aegis/Preferences.java @@ -39,6 +39,15 @@ public class Preferences { _prefs.edit().putInt("pref_tap_to_reveal_time", number).apply(); } + public void setCurrentSortCategory(SortCategory category) { + _prefs.edit().putInt("pref_current_sort_category", category.ordinal()).apply(); + } + + public int getCurrentSortCategory() { + return _prefs.getInt("pref_current_sort_category", 0); + } + + public int getTapToRevealTime() { return _prefs.getInt("pref_tap_to_reveal_time", 30); } diff --git a/app/src/main/java/com/beemdevelopment/aegis/SortCategory.java b/app/src/main/java/com/beemdevelopment/aegis/SortCategory.java index 0f2005e4..7e6e6bbf 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/SortCategory.java +++ b/app/src/main/java/com/beemdevelopment/aegis/SortCategory.java @@ -6,11 +6,27 @@ import com.beemdevelopment.aegis.helpers.comparators.IssuerNameComparator; import java.util.Comparator; public enum SortCategory { + CUSTOM, ACCOUNT, ACCOUNTREVERSED, ISSUER, - ISSUERREVERSED, - CUSTOM; + ISSUERREVERSED; + + public static SortCategory fromInteger(int x) { + switch(x) { + case 0: + return CUSTOM; + case 1: + return ACCOUNT; + case 2: + return ACCOUNTREVERSED; + case 3: + return ISSUER; + case 4: + return ISSUERREVERSED; + } + return null; + } public static Comparator getComparator(SortCategory sortCategory) { switch(sortCategory) { @@ -27,8 +43,7 @@ public enum SortCategory { } public static boolean isReversed(SortCategory sortCategory) { - switch(sortCategory) - { + switch(sortCategory) { case ACCOUNTREVERSED: case ISSUERREVERSED: return true; @@ -37,4 +52,22 @@ public enum SortCategory { return false; } } + + public static int getMenuItem(SortCategory sortCategory) { + switch (sortCategory) { + case CUSTOM: + return R.id.menu_sort_custom; + case ACCOUNT: + return R.id.menu_sort_alphabetically_name; + case ACCOUNTREVERSED: + return R.id.menu_sort_alphabetically_name_reverse; + case ISSUER: + return R.id.menu_sort_alphabetically; + case ISSUERREVERSED: + return R.id.menu_sort_alphabetically_reverse; + + default: + return R.id.menu_sort_custom; + } + } } 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 bd901ec8..029faa11 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/ui/MainActivity.java +++ b/app/src/main/java/com/beemdevelopment/aegis/ui/MainActivity.java @@ -275,6 +275,10 @@ public class MainActivity extends AegisActivity implements EntryListView.Listene _entryListView.setSortCategory(sortCategory); } + private void updateSortCategoryMenu(SortCategory sortCategory) { + _menu.findItem(SortCategory.getMenuItem(sortCategory)).setChecked(true); + } + private void addEntry(DatabaseEntry entry) { _db.addEntry(entry); _entryListView.addEntry(entry); @@ -416,6 +420,7 @@ public class MainActivity extends AegisActivity implements EntryListView.Listene updateLockIcon(); if (_loaded) { updateGroupFilterMenu(); + updateSortCategoryMenu(SortCategory.fromInteger(getPreferences().getCurrentSortCategory())); } return true; } @@ -462,13 +467,14 @@ public class MainActivity extends AegisActivity implements EntryListView.Listene sortCategory = SortCategory.ACCOUNTREVERSED; break; - case R.id.sort_custom: + case R.id.menu_sort_custom: default: sortCategory = SortCategory.CUSTOM; break; } setSortCategory(sortCategory); + getPreferences().setCurrentSortCategory(sortCategory); } return super.onOptionsItemSelected(item); } @@ -507,6 +513,8 @@ public class MainActivity extends AegisActivity implements EntryListView.Listene } loadEntries(); + SortCategory currentSortCategory = SortCategory.fromInteger(getPreferences().getCurrentSortCategory()); + setSortCategory(currentSortCategory); } private void loadEntries() { diff --git a/app/src/main/res/menu/menu_main.xml b/app/src/main/res/menu/menu_main.xml index cc0e391b..4d9644d5 100644 --- a/app/src/main/res/menu/menu_main.xml +++ b/app/src/main/res/menu/menu_main.xml @@ -34,7 +34,7 @@ android:id="@+id/action_sort_category" android:checkableBehavior="single">