From 1670bf3bc7eb014ea65b95db0a49400a69a0433a Mon Sep 17 00:00:00 2001 From: HuanCheng65 <22636177+HuanCheng65@users.noreply.github.com> Date: Thu, 5 Oct 2023 18:34:35 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=8A=A8=E6=80=81=E5=8F=96=E8=89=B2?= =?UTF-8?q?=E4=B8=BB=E9=A2=98=E6=A5=BC=E4=B8=AD=E6=A5=BC=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E5=90=8D=E7=AD=89=E4=B8=8D=E5=8F=98=E8=89=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/java/com/huanchengfly/tieba/post/App.kt | 11 ++++++++++- .../com/huanchengfly/tieba/post/utils/ThemeUtil.kt | 7 +++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/huanchengfly/tieba/post/App.kt b/app/src/main/java/com/huanchengfly/tieba/post/App.kt index e2c5cf49..d7d85aac 100644 --- a/app/src/main/java/com/huanchengfly/tieba/post/App.kt +++ b/app/src/main/java/com/huanchengfly/tieba/post/App.kt @@ -19,6 +19,7 @@ import androidx.annotation.Keep import androidx.annotation.RequiresApi import androidx.appcompat.app.AlertDialog import androidx.appcompat.app.AppCompatDelegate +import androidx.compose.ui.graphics.toArgb import com.github.gzuliyujiang.oaid.DeviceID import com.github.panpf.sketch.Sketch import com.github.panpf.sketch.SketchFactory @@ -34,6 +35,7 @@ import com.huanchengfly.tieba.post.components.OAIDGetter import com.huanchengfly.tieba.post.components.dialogs.LoadingDialog import com.huanchengfly.tieba.post.plugins.PluginManager import com.huanchengfly.tieba.post.plugins.interfaces.IApp +import com.huanchengfly.tieba.post.ui.common.theme.compose.dynamicTonalPalette import com.huanchengfly.tieba.post.ui.common.theme.interfaces.ThemeSwitcher import com.huanchengfly.tieba.post.ui.common.theme.utils.ThemeUtils import com.huanchengfly.tieba.post.utils.AccountUtil @@ -368,7 +370,14 @@ class App : Application(), IApp, SketchFactory { } R.attr.colorNewPrimary -> { - return if (ThemeUtil.isNightMode(theme)) { + return if (ThemeUtil.isUsingDynamicTheme() && Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { + val dynamicTonalPalette = dynamicTonalPalette(context) + if (ThemeUtil.isNightMode(theme)) { + dynamicTonalPalette.primary80.toArgb() + } else { + dynamicTonalPalette.primary40.toArgb() + } + } else if (ThemeUtil.isNightMode(theme)) { context.getColorCompat(R.color.theme_color_new_primary_night) } else if (theme == ThemeUtil.THEME_DEFAULT) { context.getColorCompat( diff --git a/app/src/main/java/com/huanchengfly/tieba/post/utils/ThemeUtil.kt b/app/src/main/java/com/huanchengfly/tieba/post/utils/ThemeUtil.kt index 99f94690..1554fc17 100644 --- a/app/src/main/java/com/huanchengfly/tieba/post/utils/ThemeUtil.kt +++ b/app/src/main/java/com/huanchengfly/tieba/post/utils/ThemeUtil.kt @@ -82,6 +82,9 @@ object ThemeUtil { const val TRANSLUCENT_THEME_LIGHT = 0 const val TRANSLUCENT_THEME_DARK = 1 + private val context: Context + get() = INSTANCE + val dataStore: DataStore get() = INSTANCE.dataStore @@ -133,6 +136,10 @@ object ThemeUtil { dataStore.putBoolean(KEY_USE_DYNAMIC_THEME, useDynamicTheme) } + fun isUsingDynamicTheme(): Boolean { + return context.appPreferences.useDynamicColorTheme + } + fun switchNightMode() { if (isNightMode()) { switchTheme(getOldTheme(), recordOldTheme = false)