diff --git a/app/src/main/java/eu/faircode/email/ActivitySetup.java b/app/src/main/java/eu/faircode/email/ActivitySetup.java
index 7b0da67262..f6a2b015b5 100644
--- a/app/src/main/java/eu/faircode/email/ActivitySetup.java
+++ b/app/src/main/java/eu/faircode/email/ActivitySetup.java
@@ -44,7 +44,6 @@ import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.MenuItem;
import android.view.View;
-import android.widget.RadioGroup;
import android.widget.TextView;
import androidx.annotation.RequiresApi;
@@ -202,14 +201,6 @@ public class ActivitySetup extends ActivityBilling implements FragmentManager.On
}
}));
- menus.add(new NavMenuItem(R.drawable.baseline_palette_24, R.string.title_setup_theme, new Runnable() {
- @Override
- public void run() {
- drawerLayout.closeDrawer(drawerContainer);
- onMenuTheme();
- }
- }));
-
menus.add(new NavMenuItem(R.drawable.baseline_person_24, R.string.menu_contacts, new Runnable() {
@Override
public void run() {
@@ -447,52 +438,6 @@ public class ActivitySetup extends ActivityBilling implements FragmentManager.On
fragmentTransaction.commit();
}
- private void onMenuTheme() {
- View dview = LayoutInflater.from(this).inflate(R.layout.dialog_theme, null);
- final RadioGroup rgTheme = dview.findViewById(R.id.rgTheme);
-
- final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
- String theme = prefs.getString("theme", "light");
-
- switch (theme) {
- case "dark":
- rgTheme.check(R.id.rbThemeDark);
- break;
- case "black":
- rgTheme.check(R.id.rbThemeBlack);
- break;
- case "system":
- rgTheme.check(R.id.rbThemeSystem);
- break;
- default:
- rgTheme.check(R.id.rbThemeLight);
- }
-
- rgTheme.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
- @Override
- public void onCheckedChanged(RadioGroup group, int checkedId) {
- switch (checkedId) {
- case R.id.rbThemeLight:
- prefs.edit().putString("theme", "light").apply();
- break;
- case R.id.rbThemeDark:
- prefs.edit().putString("theme", "dark").apply();
- break;
- case R.id.rbThemeBlack:
- prefs.edit().putString("theme", "black").apply();
- break;
- case R.id.rbThemeSystem:
- prefs.edit().putString("theme", "system").apply();
- break;
- }
- }
- });
-
- new DialogBuilderLifecycle(this, this)
- .setView(dview)
- .show();
- }
-
private void onMenuContacts() {
if (getLifecycle().getCurrentState().isAtLeast(Lifecycle.State.RESUMED))
getSupportFragmentManager().popBackStack("contacts", FragmentManager.POP_BACK_STACK_INCLUSIVE);
diff --git a/app/src/main/java/eu/faircode/email/FragmentOptionsDisplay.java b/app/src/main/java/eu/faircode/email/FragmentOptionsDisplay.java
index bf55ee2a4f..da82af484f 100644
--- a/app/src/main/java/eu/faircode/email/FragmentOptionsDisplay.java
+++ b/app/src/main/java/eu/faircode/email/FragmentOptionsDisplay.java
@@ -28,7 +28,9 @@ import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
+import android.widget.Button;
import android.widget.CompoundButton;
+import android.widget.RadioGroup;
import android.widget.Spinner;
import androidx.annotation.NonNull;
@@ -37,6 +39,7 @@ import androidx.appcompat.widget.SwitchCompat;
import androidx.preference.PreferenceManager;
public class FragmentOptionsDisplay extends FragmentBase implements SharedPreferences.OnSharedPreferenceChangeListener {
+ private Button btnTheme;
private Spinner spStartup;
private SwitchCompat swDate;
private SwitchCompat swThreading;
@@ -54,7 +57,7 @@ public class FragmentOptionsDisplay extends FragmentBase implements SharedPrefer
private SwitchCompat swActionbar;
private final static String[] RESET_OPTIONS = new String[]{
- "startup", "date", "threading", "avatars", "identicons", "circular", "name_email", "subject_italic",
+ "theme", "startup", "date", "threading", "avatars", "identicons", "circular", "name_email", "subject_italic",
"flags", "preview", "addresses", "attachments_alt", "monospaced", "autoimages", "actionbar",
};
@@ -68,6 +71,7 @@ public class FragmentOptionsDisplay extends FragmentBase implements SharedPrefer
// Get controls
+ btnTheme = view.findViewById(R.id.btnTheme);
spStartup = view.findViewById(R.id.spStartup);
swDate = view.findViewById(R.id.swDate);
swThreading = view.findViewById(R.id.swThreading);
@@ -90,6 +94,13 @@ public class FragmentOptionsDisplay extends FragmentBase implements SharedPrefer
final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext());
+ btnTheme.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ onSelectTheme();
+ }
+ });
+
spStartup.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView> adapterView, View view, int position, long id) {
@@ -245,6 +256,52 @@ public class FragmentOptionsDisplay extends FragmentBase implements SharedPrefer
editor.apply();
}
+ private void onSelectTheme() {
+ View dview = LayoutInflater.from(getContext()).inflate(R.layout.dialog_theme, null);
+ final RadioGroup rgTheme = dview.findViewById(R.id.rgTheme);
+
+ final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext());
+ String theme = prefs.getString("theme", "light");
+
+ switch (theme) {
+ case "dark":
+ rgTheme.check(R.id.rbThemeDark);
+ break;
+ case "black":
+ rgTheme.check(R.id.rbThemeBlack);
+ break;
+ case "system":
+ rgTheme.check(R.id.rbThemeSystem);
+ break;
+ default:
+ rgTheme.check(R.id.rbThemeLight);
+ }
+
+ rgTheme.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
+ @Override
+ public void onCheckedChanged(RadioGroup group, int checkedId) {
+ switch (checkedId) {
+ case R.id.rbThemeLight:
+ prefs.edit().putString("theme", "light").apply();
+ break;
+ case R.id.rbThemeDark:
+ prefs.edit().putString("theme", "dark").apply();
+ break;
+ case R.id.rbThemeBlack:
+ prefs.edit().putString("theme", "black").apply();
+ break;
+ case R.id.rbThemeSystem:
+ prefs.edit().putString("theme", "system").apply();
+ break;
+ }
+ }
+ });
+
+ new DialogBuilderLifecycle(getContext(), getViewLifecycleOwner())
+ .setView(dview)
+ .show();
+ }
+
private void setOptions() {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext());
diff --git a/app/src/main/res/drawable/baseline_palette_24.xml b/app/src/main/res/drawable/baseline_palette_24.xml
deleted file mode 100644
index 230f75166b..0000000000
--- a/app/src/main/res/drawable/baseline_palette_24.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
diff --git a/app/src/main/res/layout/fragment_options_display.xml b/app/src/main/res/layout/fragment_options_display.xml
index bdd4f0c10b..9e486a4896 100644
--- a/app/src/main/res/layout/fragment_options_display.xml
+++ b/app/src/main/res/layout/fragment_options_display.xml
@@ -18,16 +18,28 @@
android:layout_height="wrap_content"
android:padding="12dp">
+
+
+ app:layout_constraintTop_toBottomOf="@id/btnTheme" />