From 9ebac9684bbd383097da49ee80b9ed6076b75912 Mon Sep 17 00:00:00 2001 From: MM20 <15646950+MM2-0@users.noreply.github.com> Date: Mon, 13 Dec 2021 17:34:13 +0100 Subject: [PATCH] Simplify theme color application logic --- app/src/main/AndroidManifest.xml | 4 +-- .../launcher2/activity/SettingsActivity.kt | 12 +++----- .../res/values-night-v31/color-schemes.xml | 2 +- .../main/res/values-night/color-schemes.xml | 4 +-- base/src/main/res/values-night/themes.xml | 7 +---- .../src/main/res/values-v31/color-schemes.xml | 2 +- base/src/main/res/values/color-schemes.xml | 4 +-- base/src/main/res/values/styles.xml | 29 ------------------- base/src/main/res/values/themes.xml | 24 ++------------- .../ui/CrashReporterActivity.java | 1 + crashreporter/src/main/res/values/styles.xml | 2 +- .../ui/legacy/activity/LauncherActivity.kt | 7 ++--- .../launcher2/ui/legacy/helper/ThemeHelper.kt | 16 ++++++++++ 13 files changed, 35 insertions(+), 79 deletions(-) create mode 100644 ui/src/main/java/de/mm20/launcher2/ui/legacy/helper/ThemeHelper.kt diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 995a9186..218183f3 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -37,7 +37,7 @@ android:requestLegacyExternalStorage="true" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" - android:theme="@style/LauncherTheme.DefaultColors" + android:theme="@style/LauncherTheme" android:usesCleartextTraffic="true" tools:ignore="GoogleAppIndexingWarning"> @@ -51,7 +51,7 @@ android:parentActivityName=".ui.legacy.activity.LauncherActivity" android:screenOrientation="portrait" android:taskAffinity="de.mm20.launcher2.settings" - android:theme="@style/SettingsTheme.DefaultColors"> + android:theme="@style/SettingsTheme"> diff --git a/app/src/main/java/de/mm20/launcher2/activity/SettingsActivity.kt b/app/src/main/java/de/mm20/launcher2/activity/SettingsActivity.kt index 6ae2df69..f01e9f1c 100644 --- a/app/src/main/java/de/mm20/launcher2/activity/SettingsActivity.kt +++ b/app/src/main/java/de/mm20/launcher2/activity/SettingsActivity.kt @@ -3,26 +3,22 @@ package de.mm20.launcher2.activity import android.content.Intent import android.os.Bundle import android.view.MenuItem -import android.view.View import androidx.appcompat.app.AppCompatActivity import androidx.fragment.app.Fragment -import de.mm20.launcher2.R import de.mm20.launcher2.fragment.PreferencesCalendarFragment import de.mm20.launcher2.fragment.PreferencesMainFragment import de.mm20.launcher2.fragment.PreferencesServicesFragment import de.mm20.launcher2.fragment.PreferencesWeatherFragment -import de.mm20.launcher2.preferences.ColorSchemes -import de.mm20.launcher2.preferences.LauncherPreferences import de.mm20.launcher2.ui.legacy.activity.LauncherActivity +import de.mm20.launcher2.ui.legacy.helper.ThemeHelper class SettingsActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - when(LauncherPreferences.instance.colorScheme) { - ColorSchemes.BLACK -> setTheme(R.style.SettingsTheme_BlackWhiteColors) - else -> setTheme(R.style.SettingsTheme_DefaultColors) - } + + ThemeHelper.applyTheme(theme) + if (savedInstanceState == null) { val fragment = getStartFragment() setupActionBar() diff --git a/base/src/main/res/values-night-v31/color-schemes.xml b/base/src/main/res/values-night-v31/color-schemes.xml index 381a16b5..c25ffbc9 100644 --- a/base/src/main/res/values-night-v31/color-schemes.xml +++ b/base/src/main/res/values-night-v31/color-schemes.xml @@ -1,5 +1,5 @@ - - - - diff --git a/base/src/main/res/values-v31/color-schemes.xml b/base/src/main/res/values-v31/color-schemes.xml index 8e0a67a1..5b719179 100644 --- a/base/src/main/res/values-v31/color-schemes.xml +++ b/base/src/main/res/values-v31/color-schemes.xml @@ -1,5 +1,5 @@ - - - - - - - - - - - - - - - diff --git a/ui/src/main/java/de/mm20/launcher2/ui/legacy/activity/LauncherActivity.kt b/ui/src/main/java/de/mm20/launcher2/ui/legacy/activity/LauncherActivity.kt index c4d7c233..236972bc 100644 --- a/ui/src/main/java/de/mm20/launcher2/ui/legacy/activity/LauncherActivity.kt +++ b/ui/src/main/java/de/mm20/launcher2/ui/legacy/activity/LauncherActivity.kt @@ -50,7 +50,6 @@ import de.mm20.launcher2.ktx.dp import de.mm20.launcher2.ktx.isBrightColor import de.mm20.launcher2.legacy.helper.ActivityStarter import de.mm20.launcher2.permissions.PermissionsManager -import de.mm20.launcher2.preferences.ColorSchemes import de.mm20.launcher2.preferences.LauncherPreferences import de.mm20.launcher2.search.SearchViewModel import de.mm20.launcher2.transition.ChangingLayoutTransition @@ -59,6 +58,7 @@ import de.mm20.launcher2.ui.R import de.mm20.launcher2.ui.databinding.ActivityLauncherBinding import de.mm20.launcher2.ui.legacy.component.EditFavoritesView import de.mm20.launcher2.ui.legacy.component.WidgetView +import de.mm20.launcher2.ui.legacy.helper.ThemeHelper import de.mm20.launcher2.ui.legacy.search.SearchGridView import de.mm20.launcher2.ui.legacy.widget.LauncherWidget import de.mm20.launcher2.weather.WeatherViewModel @@ -191,11 +191,8 @@ class LauncherActivity : AppCompatActivity() { super.onCreate(savedInstanceState) val iconRepository: IconRepository by inject() iconRepository.recreate() + ThemeHelper.applyTheme(theme) - when(LauncherPreferences.instance.colorScheme) { - ColorSchemes.BLACK -> setTheme(R.style.LauncherTheme_BlackWhiteColors) - else -> setTheme(R.style.LauncherTheme_DefaultColors) - } if (LauncherPreferences.instance.firstRunVersion < 1) { ActivityCompat.requestPermissions( this, arrayOf( diff --git a/ui/src/main/java/de/mm20/launcher2/ui/legacy/helper/ThemeHelper.kt b/ui/src/main/java/de/mm20/launcher2/ui/legacy/helper/ThemeHelper.kt new file mode 100644 index 00000000..2231cc5d --- /dev/null +++ b/ui/src/main/java/de/mm20/launcher2/ui/legacy/helper/ThemeHelper.kt @@ -0,0 +1,16 @@ +package de.mm20.launcher2.ui.legacy.helper + +import android.content.res.Resources +import de.mm20.launcher2.preferences.ColorSchemes +import de.mm20.launcher2.preferences.LauncherPreferences +import de.mm20.launcher2.ui.R + +object ThemeHelper { + fun applyTheme(theme: Resources.Theme) { + val colorScheme = when(LauncherPreferences.instance.colorScheme) { + ColorSchemes.BLACK -> R.style.BlackWhiteColors + else -> R.style.DefaultColors + } + theme.applyStyle(colorScheme, true) + } +} \ No newline at end of file