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 8e7781aa..011e6a70 100644 --- a/app/src/main/java/com/huanchengfly/tieba/post/App.kt +++ b/app/src/main/java/com/huanchengfly/tieba/post/App.kt @@ -743,7 +743,13 @@ class App : Application(), IApp, SketchFactory { } override fun getColorByAttr(context: Context, attrId: Int): Int { - return getColorByAttr(context, attrId, ThemeUtil.getCurrentTheme()) + return when (attrId) { + R.attr.colorPrimary, R.attr.colorNewPrimary, R.attr.colorAccent -> { + getColorByAttr(context, attrId, ThemeUtil.getCurrentTheme(checkDynamic = true)) + } + + else -> getColorByAttr(context, attrId, ThemeUtil.getCurrentTheme()) + } } override fun getColorById(context: Context, colorId: Int): Int { 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 9542018a..89049e46 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 @@ -279,7 +279,10 @@ object ThemeUtil { } @JvmOverloads - fun getCurrentTheme(theme: String = getRawTheme()): String { + fun getCurrentTheme( + theme: String = getRawTheme(), + checkDynamic: Boolean = false, + ): String { var nowTheme = theme if (isTranslucentTheme(nowTheme)) { val colorTheme = @@ -289,7 +292,7 @@ object ThemeUtil { } else { THEME_TRANSLUCENT_LIGHT } - } else if (isUsingDynamicTheme() && Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { + } else if (checkDynamic && isUsingDynamicTheme() && Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { nowTheme = "${nowTheme}_dynamic" } return nowTheme