diff --git a/app/src/main/java/com/beemdevelopment/aegis/Preferences.java b/app/src/main/java/com/beemdevelopment/aegis/Preferences.java index f714afc9..b43640df 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/Preferences.java +++ b/app/src/main/java/com/beemdevelopment/aegis/Preferences.java @@ -61,6 +61,16 @@ public class Preferences { } + public int getCurrentViewMode() { + return _prefs.getInt("pref_current_view_mode", 0); + } + + public void setCurrentViewMode(ViewMode viewMode) { + _prefs.edit().putInt("pref_current_view_mode", viewMode.ordinal()).apply(); + + } + + public int getTimeout() { return _prefs.getInt("pref_timeout", -1); diff --git a/app/src/main/java/com/beemdevelopment/aegis/ViewMode.java b/app/src/main/java/com/beemdevelopment/aegis/ViewMode.java new file mode 100644 index 00000000..9ba2880d --- /dev/null +++ b/app/src/main/java/com/beemdevelopment/aegis/ViewMode.java @@ -0,0 +1,33 @@ +package com.beemdevelopment.aegis; + +public enum ViewMode { + NORMAL, + COMPACT; + + public static ViewMode fromInteger(int x) { + switch(x) { + case 0: + return NORMAL; + case 1: + return COMPACT; + } + return null; + } + + public static String getViewModeName(int x) { + switch(x) { + case 0: + return "Normal"; + case 1: + return "Compact"; + } + return null; + } + + public static String[] getViewModeNames() { + return new String[] { + "Normal", + "Compact" + }; + } +} diff --git a/app/src/main/java/com/beemdevelopment/aegis/ui/PreferencesFragment.java b/app/src/main/java/com/beemdevelopment/aegis/ui/PreferencesFragment.java index 74927c7f..2e7dab6a 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/ui/PreferencesFragment.java +++ b/app/src/main/java/com/beemdevelopment/aegis/ui/PreferencesFragment.java @@ -19,6 +19,7 @@ import android.widget.Toast; import com.beemdevelopment.aegis.Preferences; import com.beemdevelopment.aegis.Theme; +import com.beemdevelopment.aegis.ViewMode; import com.beemdevelopment.aegis.db.DatabaseFileCredentials; import com.beemdevelopment.aegis.helpers.FingerprintHelper; import com.beemdevelopment.aegis.helpers.PermissionHelper; @@ -130,6 +131,33 @@ public class PreferencesFragment extends PreferenceFragmentCompat { } }); + int currentViewMode = app.getPreferences().getCurrentViewMode(); + Preference viewModePreference = findPreference("pref_view_mode"); + viewModePreference.setSummary("Selected: " + ViewMode.getViewModeName(currentViewMode)); + viewModePreference.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() { + @Override + public boolean onPreferenceClick(Preference preference) { + String[] viewModes = ViewMode.getViewModeNames(); + int checkedMode = app.getPreferences().getCurrentViewMode(); + + Dialogs.showSecureDialog(new AlertDialog.Builder(getActivity()) + .setTitle(getString(R.string.choose_view_mode)) + .setSingleChoiceItems(viewModes, checkedMode, (dialog, which) -> { + int i = ((AlertDialog) dialog).getListView().getCheckedItemPosition(); + app.getPreferences().setCurrentViewMode(ViewMode.fromInteger(i)); + + dialog.dismiss(); + + _result.putExtra("needsRecreate", true); + getActivity().recreate(); + }) + .setPositiveButton(android.R.string.ok, null) + .create()); + + return true; + } + }); + Preference importPreference = findPreference("pref_import"); importPreference.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() { @Override diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index cfc049cd..90e745e7 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -12,6 +12,7 @@ Предпочтения Тема + Select view mode Показать имя аккаунта Включите это, чтобы показать имя учетной записи рядом с эмитентом Тайм-аут diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index e2c9a544..5174b108 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -12,6 +12,7 @@ Preferences Theme + View mode Show the account name Enable this to show the account name next to the issuer Timeout @@ -120,6 +121,7 @@ Permission denied Select the application you\'d like to import a database from Select your desired theme + Select your desired view mode An error occurred while trying to parse the file Error: File not found An error occurred while trying to read the file diff --git a/app/src/main/res/xml/preferences.xml b/app/src/main/res/xml/preferences.xml index 7b4a7afa..d42bdf78 100644 --- a/app/src/main/res/xml/preferences.xml +++ b/app/src/main/res/xml/preferences.xml @@ -13,6 +13,12 @@ android:title="@string/pref_select_theme_title" app:iconSpaceReserved="false"/> + +