diff --git a/app/src/main/java/eu/faircode/email/ActivityBase.java b/app/src/main/java/eu/faircode/email/ActivityBase.java
index 41b50c22e6..461658d737 100644
--- a/app/src/main/java/eu/faircode/email/ActivityBase.java
+++ b/app/src/main/java/eu/faircode/email/ActivityBase.java
@@ -493,7 +493,7 @@ abstract class ActivityBase extends AppCompatActivity implements SharedPreferenc
Log.i("Preference " + key + "=" + prefs.getAll().get(key));
if ("theme".equals(key)) {
finish();
- if (this.getClass().equals(ActivitySetup.class))
+ if (this.getClass().equals(ActivitySetup.class) || this.getClass().equals(ActivityView.class))
startActivity(getIntent());
} else if (!this.getClass().equals(ActivitySetup.class) && !visible &&
Arrays.asList(FragmentOptions.OPTIONS_RESTART).contains(key))
diff --git a/app/src/main/java/eu/faircode/email/FragmentAccounts.java b/app/src/main/java/eu/faircode/email/FragmentAccounts.java
index 0f136fc2f5..ac1897795b 100644
--- a/app/src/main/java/eu/faircode/email/FragmentAccounts.java
+++ b/app/src/main/java/eu/faircode/email/FragmentAccounts.java
@@ -298,6 +298,7 @@ public class FragmentAccounts extends FragmentBase {
public void onPrepareOptionsMenu(Menu menu) {
menu.findItem(R.id.menu_search).setVisible(!settings);
menu.findItem(R.id.menu_unified).setVisible(!settings);
+ menu.findItem(R.id.menu_theme).setVisible(!settings);
super.onPrepareOptionsMenu(menu);
}
@@ -311,6 +312,9 @@ public class FragmentAccounts extends FragmentBase {
case R.id.menu_unified:
onMenuUnified();
return true;
+ case R.id.menu_theme:
+ onMenuTheme();
+ return true;
case R.id.menu_force_sync:
onMenuForceSync();
return true;
@@ -336,6 +340,10 @@ public class FragmentAccounts extends FragmentBase {
fragmentTransaction.commit();
}
+ private void onMenuTheme() {
+ new FragmentDialogTheme().show(getParentFragmentManager(), "messages:theme");
+ }
+
private void onMenuForceSync() {
ServiceSynchronize.reload(getContext(), null, true, "force sync");
ToastEx.makeText(getContext(), R.string.title_executing, Toast.LENGTH_LONG).show();
diff --git a/app/src/main/java/eu/faircode/email/FragmentFolders.java b/app/src/main/java/eu/faircode/email/FragmentFolders.java
index 2f3b35d61b..b89e2c573e 100644
--- a/app/src/main/java/eu/faircode/email/FragmentFolders.java
+++ b/app/src/main/java/eu/faircode/email/FragmentFolders.java
@@ -459,6 +459,7 @@ public class FragmentFolders extends FragmentBase {
boolean subscribed_only = prefs.getBoolean("subscribed_only", false);
menu.findItem(R.id.menu_unified).setVisible(account < 0 || primary);
+ menu.findItem(R.id.menu_theme).setVisible(account < 0 || primary);
menu.findItem(R.id.menu_compact).setChecked(compact);
menu.findItem(R.id.menu_show_hidden).setChecked(show_hidden);
menu.findItem(R.id.menu_show_flagged).setChecked(show_flagged);
@@ -478,6 +479,9 @@ public class FragmentFolders extends FragmentBase {
case R.id.menu_unified:
onMenuUnified();
return true;
+ case R.id.menu_theme:
+ onMenuTheme();
+ return true;
case R.id.menu_compact:
onMenuCompact();
return true;
@@ -519,6 +523,10 @@ public class FragmentFolders extends FragmentBase {
fragmentTransaction.commit();
}
+ private void onMenuTheme() {
+ new FragmentDialogTheme().show(getParentFragmentManager(), "messages:theme");
+ }
+
private void onMenuCompact() {
compact = !compact;
diff --git a/app/src/main/java/eu/faircode/email/FragmentMessages.java b/app/src/main/java/eu/faircode/email/FragmentMessages.java
index 52c3f65023..b6c564235a 100644
--- a/app/src/main/java/eu/faircode/email/FragmentMessages.java
+++ b/app/src/main/java/eu/faircode/email/FragmentMessages.java
@@ -4172,6 +4172,10 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences.
onMenuCompact();
return true;
+ case R.id.menu_theme:
+ onMenuTheme();
+ return true;
+
case R.id.menu_select_language:
onMenuSelectLanguage();
return true;
@@ -4303,6 +4307,10 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences.
getActivity().invalidateOptionsMenu();
}
+ private void onMenuTheme() {
+ new FragmentDialogTheme().show(getParentFragmentManager(), "messages:theme");
+ }
+
private void clearMeasurements() {
sizes.clear();
heights.clear();
diff --git a/app/src/main/res/menu/menu_accounts.xml b/app/src/main/res/menu/menu_accounts.xml
index 808f09c040..c136763df9 100644
--- a/app/src/main/res/menu/menu_accounts.xml
+++ b/app/src/main/res/menu/menu_accounts.xml
@@ -14,6 +14,11 @@
android:title="@string/title_folders_unified"
app:showAsAction="always" />
+
+
+
+
+
+