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 bdb12afa..387126d2 100644 --- a/app/src/main/java/com/beemdevelopment/aegis/ui/PreferencesFragment.java +++ b/app/src/main/java/com/beemdevelopment/aegis/ui/PreferencesFragment.java @@ -9,11 +9,16 @@ import android.net.Uri; import android.os.Bundle; import androidx.appcompat.app.AlertDialog; import androidx.preference.Preference; + +import android.view.Gravity; +import android.view.View; import android.view.Window; import android.view.WindowManager; +import android.widget.AdapterView; import android.widget.Toast; import com.beemdevelopment.aegis.Preferences; +import com.beemdevelopment.aegis.Theme; import com.beemdevelopment.aegis.db.DatabaseFileCredentials; import com.beemdevelopment.aegis.helpers.FingerprintHelper; import com.beemdevelopment.aegis.helpers.PermissionHelper; @@ -87,6 +92,34 @@ public class PreferencesFragment extends PreferenceFragmentCompat { setResult(new Intent()); Preference darkModePreference = findPreference("pref_dark_mode"); + darkModePreference.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() { + @Override + public boolean onPreferenceClick(Preference preference) { + String[] themeNames = {"Light theme", "Dark theme", "Amoled theme"}; + int checkedTheme = app.getPreferences().getCurrentTheme(); + + Dialogs.showSecureDialog(new AlertDialog.Builder(getActivity()) + .setTitle(getString(R.string.choose_theme)) + .setSingleChoiceItems(themeNames, checkedTheme, (dialog, which) -> { + int i = ((AlertDialog) dialog).getListView().getCheckedItemPosition(); + Theme selectedTheme = Theme.fromInteger(i); + app.getPreferences().setCurrentTheme(selectedTheme); + + if (selectedTheme == Theme.AMOLED) + { + Toast.makeText(app, "Due to a bug in a third party library, the amoled theme is not visible here.", Toast.LENGTH_LONG).show(); + } + + _result.putExtra("needsRecreate", true); + getActivity().recreate(); + }) + .setPositiveButton(android.R.string.ok, null) + .create()); + + return true; + } + }); + darkModePreference.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() { @Override public boolean onPreferenceChange(Preference preference, Object newValue) { diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index f8bc276f..4741d812 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -120,6 +120,7 @@ An error occurred while enabling encryption Permission denied Select the application you\'d like to import a database from + Select your desired theme An error occurred while trying to parse the file Error: File not found An error occurred while trying to read the file