Add ability to change view mode

This commit is contained in:
Michael Schättgen 2019-04-01 01:21:12 +02:00
parent ee8fd2e9f2
commit f3ed79dc71
6 changed files with 80 additions and 0 deletions

View file

@ -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);

View file

@ -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"
};
}
}

View file

@ -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