diff --git a/app/src/main/java/com/fox2code/mmm/MainApplication.java b/app/src/main/java/com/fox2code/mmm/MainApplication.java index 6a31b50..23d80f5 100644 --- a/app/src/main/java/com/fox2code/mmm/MainApplication.java +++ b/app/src/main/java/com/fox2code/mmm/MainApplication.java @@ -235,17 +235,24 @@ public class MainApplication extends CompatApplication { public void updateTheme() { @StyleRes int themeResId; String theme; + boolean monet = isMonetEnabled(); switch (theme = getSharedPreferences().getString("pref_theme", "system")) { default: Log.w("MainApplication", "Unknown theme id: " + theme); case "system": - themeResId = R.style.Theme_MagiskModuleManager; + themeResId = monet ? + R.style.Theme_MagiskModuleManager_Monet : + R.style.Theme_MagiskModuleManager; break; case "dark": - themeResId = R.style.Theme_MagiskModuleManager_Dark; + themeResId = monet ? + R.style.Theme_MagiskModuleManager_Monet_Dark : + R.style.Theme_MagiskModuleManager_Dark; break; case "light": - themeResId = R.style.Theme_MagiskModuleManager_Light; + themeResId = monet ? + R.style.Theme_MagiskModuleManager_Monet_Light : + R.style.Theme_MagiskModuleManager_Light; break; } this.setManagerThemeResId(themeResId); @@ -276,11 +283,11 @@ public class MainApplication extends CompatApplication { public void onCreate() { if (INSTANCE == null) INSTANCE = this; super.onCreate(); - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S && isMonetEnabled()) { + /*if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { DynamicColors.applyToActivitiesIfAvailable(this, new DynamicColorsOptions.Builder().setPrecondition( (activity, theme) -> isMonetEnabled()).build()); - } + }*/ SharedPreferences sharedPreferences = MainApplication.getSharedPreferences(); // We are only one process so it's ok to do this SharedPreferences bootPrefs = MainApplication.bootSharedPreferences = diff --git a/app/src/main/java/com/fox2code/mmm/settings/SettingsActivity.java b/app/src/main/java/com/fox2code/mmm/settings/SettingsActivity.java index 4e460ff..b2954b1 100644 --- a/app/src/main/java/com/fox2code/mmm/settings/SettingsActivity.java +++ b/app/src/main/java/com/fox2code/mmm/settings/SettingsActivity.java @@ -108,6 +108,14 @@ public class SettingsActivity extends CompatActivity implements LanguageActivity disableMonet.setSummary(R.string.require_android_12); disableMonet.setEnabled(false); } + disableMonet.setOnPreferenceClickListener(preference -> { + UiThreadHandler.handler.postDelayed(() -> { + MainApplication.getINSTANCE().updateTheme(); + ((CompatActivity) this.requireActivity()).setThemeRecreate( + MainApplication.getINSTANCE().getManagerThemeResId()); + }, 1); + return true; + }); findPreference("pref_dns_over_https").setOnPreferenceChangeListener((p, v) -> { Http.setDoh((Boolean) v); diff --git a/app/src/main/res/values-night-v31/themes.xml b/app/src/main/res/values-night-v31/themes.xml new file mode 100644 index 0000000..55fbc37 --- /dev/null +++ b/app/src/main/res/values-night-v31/themes.xml @@ -0,0 +1,4 @@ + + + +