From 29e3d7e58e27509c6eb5708d90066f8cfa17551a Mon Sep 17 00:00:00 2001 From: androidacy-user Date: Sun, 27 Nov 2022 21:19:39 -0500 Subject: [PATCH] Add option to make dark theme a black theme Signed-off-by: androidacy-user --- .../java/com/fox2code/mmm/MainApplication.java | 11 +++++++++++ .../fox2code/mmm/settings/SettingsActivity.java | 14 ++++++++++++++ app/src/main/res/values-v31/themes.xml | 10 ++++++++++ app/src/main/res/values/strings.xml | 3 +++ app/src/main/res/values/styles.xml | 5 +++++ app/src/main/res/values/themes.xml | 10 ++++++++++ app/src/main/res/xml/root_preferences.xml | 9 +++++++++ 7 files changed, 62 insertions(+) create mode 100644 app/src/main/res/values/styles.xml diff --git a/app/src/main/java/com/fox2code/mmm/MainApplication.java b/app/src/main/java/com/fox2code/mmm/MainApplication.java index 75a5c21..5fbfea7 100644 --- a/app/src/main/java/com/fox2code/mmm/MainApplication.java +++ b/app/src/main/java/com/fox2code/mmm/MainApplication.java @@ -295,9 +295,20 @@ public class MainApplication extends FoxApplication R.style.Theme_MagiskModuleManager_Light; break; } + // Handle force black theme + if (theme.equals("dark") && isForceBlackThemeEnabled()) { + // just black background + themeResId = monet ? + R.style.Theme_MagiskModuleManager_Monet_Black : + R.style.Theme_MagiskModuleManager_Black; + } this.setManagerThemeResId(themeResId); } + private boolean isForceBlackThemeEnabled() { + return getSharedPreferences().getBoolean("pref_force_black_theme", false); + } + @StyleRes public int getManagerThemeResId() { return managerThemeResId; 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 8942565..ef0ee43 100644 --- a/app/src/main/java/com/fox2code/mmm/settings/SettingsActivity.java +++ b/app/src/main/java/com/fox2code/mmm/settings/SettingsActivity.java @@ -137,6 +137,20 @@ public class SettingsActivity extends FoxActivity implements LanguageActivity { }, 1); return true; }); + // Force black theme - depends on themePreference being system or dark + SwitchPreferenceCompat forceBlackPreference = findPreference("pref_force_black_theme"); + // Set invisible if theme is not dark or system + forceBlackPreference.setVisible(themePreference.getValue().equals("dark") || + themePreference.getValue().equals("system")); + forceBlackPreference.setOnPreferenceChangeListener((preference, newValue) -> { + devModeStep = 0; + UiThreadHandler.handler.postDelayed(() -> { + MainApplication.getINSTANCE().updateTheme(); + FoxActivity.getFoxActivity(this).setThemeRecreate( + MainApplication.getINSTANCE().getManagerThemeResId()); + }, 1); + return true; + }); // Crash reporting TwoStatePreference crashReportingPreference = findPreference("pref_crash_reporting"); if (!SentryMain.IS_SENTRY_INSTALLED) crashReportingPreference.setVisible(false); diff --git a/app/src/main/res/values-v31/themes.xml b/app/src/main/res/values-v31/themes.xml index b70691e..e7fb75b 100644 --- a/app/src/main/res/values-v31/themes.xml +++ b/app/src/main/res/values-v31/themes.xml @@ -22,6 +22,16 @@ @style/Widget.Material3.Chip.Choice.Dark + + + + \ No newline at end of file diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index 00b67da..82578a6 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -83,6 +83,16 @@ @style/Widget.Material.Chip.Choice.Dark + + +