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"/>
+
+