From 0fcaf20221327fa1b5a9621324ea5bfe5e2450c6 Mon Sep 17 00:00:00 2001 From: Stypox Date: Wed, 24 Mar 2021 10:16:24 +0100 Subject: [PATCH] Fix settings switches are not red anymore Reverts part of 731c65cd59e72921389c114f5f5ba4da8374336c --- .../newpipe/settings/SettingsActivity.java | 2 +- .../org/schabi/newpipe/util/ThemeHelper.java | 33 +++++++++++++++++++ 2 files changed, 34 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/schabi/newpipe/settings/SettingsActivity.java b/app/src/main/java/org/schabi/newpipe/settings/SettingsActivity.java index c445928c4..4de166a55 100644 --- a/app/src/main/java/org/schabi/newpipe/settings/SettingsActivity.java +++ b/app/src/main/java/org/schabi/newpipe/settings/SettingsActivity.java @@ -48,7 +48,7 @@ public class SettingsActivity extends AppCompatActivity @Override protected void onCreate(final Bundle savedInstanceBundle) { - ThemeHelper.setTheme(this); + setTheme(ThemeHelper.getSettingsThemeStyle(this)); assureCorrectAppLanguage(this); super.onCreate(savedInstanceBundle); diff --git a/app/src/main/java/org/schabi/newpipe/util/ThemeHelper.java b/app/src/main/java/org/schabi/newpipe/util/ThemeHelper.java index 0c890dddc..dcfb7ed19 100644 --- a/app/src/main/java/org/schabi/newpipe/util/ThemeHelper.java +++ b/app/src/main/java/org/schabi/newpipe/util/ThemeHelper.java @@ -169,6 +169,39 @@ public final class ThemeHelper { return baseTheme; } + @StyleRes + public static int getSettingsThemeStyle(final Context context) { + final Resources res = context.getResources(); + final String lightTheme = res.getString(R.string.light_theme_key); + final String blackTheme = res.getString(R.string.black_theme_key); + final String automaticDeviceTheme = res.getString(R.string.auto_device_theme_key); + + + final String selectedTheme = getSelectedThemeKey(context); + + if (selectedTheme.equals(lightTheme)) { + return R.style.LightSettingsTheme; + } else if (selectedTheme.equals(blackTheme)) { + return R.style.BlackSettingsTheme; + } else if (selectedTheme.equals(automaticDeviceTheme)) { + if (isDeviceDarkThemeEnabled(context)) { + // use the dark theme variant preferred by the user + final String selectedNightTheme = getSelectedNightThemeKey(context); + if (selectedNightTheme.equals(blackTheme)) { + return R.style.BlackSettingsTheme; + } else { + return R.style.DarkSettingsTheme; + } + } else { + // there is only one day theme + return R.style.LightSettingsTheme; + } + } else { + // default to dark theme + return R.style.DarkSettingsTheme; + } + } + /** * Get a resource id from a resource styled according to the context's theme. *