From 256e2ebfce68fce9621cb61f686c8ef2cc68eedc Mon Sep 17 00:00:00 2001 From: Fankesyooni Date: Tue, 29 Mar 2022 23:47:21 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=20Android=2012=20=E9=A3=8E?= =?UTF-8?q?=E6=A0=BC=E9=80=9A=E7=9F=A5=E5=9B=BE=E6=A0=87=E6=B7=B1=E8=89=B2?= =?UTF-8?q?=E6=A8=A1=E5=BC=8F=E7=9A=84=E9=A2=9C=E8=89=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../miui/notify/hook/entity/SystemUIHooker.kt | 14 +++++++++++--- .../miui/notify/utils/factory/FunctionFactory.kt | 13 +++++++++++++ 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/fankes/miui/notify/hook/entity/SystemUIHooker.kt b/app/src/main/java/com/fankes/miui/notify/hook/entity/SystemUIHooker.kt index 817bae3..32fc501 100644 --- a/app/src/main/java/com/fankes/miui/notify/hook/entity/SystemUIHooker.kt +++ b/app/src/main/java/com/fankes/miui/notify/hook/entity/SystemUIHooker.kt @@ -532,7 +532,10 @@ class SystemUIHooker : YukiBaseHooker() { setColorFilter(if (isUseAndroid12Style || customIconColor == 0) supportColor else customIconColor) /** Android 12 设置图标外圈颜色 */ if (isUseAndroid12Style && customIconColor != 0) - background = DrawableBuilder().rounded().solidColor(customIconColor).build() + background = DrawableBuilder() + .rounded() + .solidColor(if (context.isSystemInDarkMode) customIconColor.brighter else customIconColor) + .build() /** 设置原生的背景边距 */ if (isUseAndroid12Style) setPadding(4.dp(context), 4.dp(context), 4.dp(context), 4.dp(context)) } else { @@ -545,8 +548,13 @@ class SystemUIHooker : YukiBaseHooker() { /** 设置图标着色 */ setColorFilter(supportColor) /** Android 12 设置图标外圈颜色 */ - if (isUseAndroid12Style) background = - DrawableBuilder().rounded().solidColor(if (hasIconColor) iconColor else context.systemAccentColor).build() + (if (hasIconColor) iconColor else context.systemAccentColor).also { + if (isUseAndroid12Style) + background = DrawableBuilder() + .rounded() + .solidColor(if (context.isSystemInDarkMode) it.brighter else it) + .build() + } /** 设置原生的背景边距 */ if (isUseAndroid12Style) setPadding(4.dp(context), 4.dp(context), 4.dp(context), 4.dp(context)) } else iconImageView.apply { diff --git a/app/src/main/java/com/fankes/miui/notify/utils/factory/FunctionFactory.kt b/app/src/main/java/com/fankes/miui/notify/utils/factory/FunctionFactory.kt index df763ba..39302d4 100644 --- a/app/src/main/java/com/fankes/miui/notify/utils/factory/FunctionFactory.kt +++ b/app/src/main/java/com/fankes/miui/notify/utils/factory/FunctionFactory.kt @@ -308,6 +308,19 @@ val Context.wallpaperColor WallpaperManager.getInstance(this).getWallpaperColors(WallpaperManager.FLAG_SYSTEM)?.primaryColor?.toArgb() ?: 0 } +/** + * 获取较浅的颜色 + * @return [Int] + */ +val Int.brighter: Int + get() { + val hsv = FloatArray(3) + Color.colorToHSV(this, hsv) + hsv[1] = hsv[1] - 0.3f + hsv[2] = hsv[2] + 0.3f + return Color.HSVToColor(hsv) + } + /** * 是否为白色 * @return [Boolean]