From 7a5df6457fbbf7f61548f7cdde7b6640afb45c4b Mon Sep 17 00:00:00 2001 From: Fankesyooni Date: Thu, 17 Mar 2022 10:11:26 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=8A=B6=E6=80=81=E6=A0=8F?= =?UTF-8?q?=E9=80=9A=E7=9F=A5=E4=B8=AA=E6=95=B0=E6=98=BE=E7=A4=BA=E5=AF=BC?= =?UTF-8?q?=E8=87=B4=E9=9A=90=E8=97=8F=E5=9B=BE=E6=A0=87=E6=97=A0=E6=95=88?= =?UTF-8?q?=E7=9A=84=20BUG?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/misc.xml | 4 +++- app/build.gradle | 2 +- .../java/com/fankes/miui/notify/hook/HookEntry.kt | 12 +++++++++++- .../miui/notify/utils/factory/FunctionFactory.kt | 8 +------- .../com/fankes/miui/notify/view/MaterialSwitch.kt | 10 +++++----- 5 files changed, 21 insertions(+), 15 deletions(-) diff --git a/.idea/misc.xml b/.idea/misc.xml index 797e340..737c14c 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -7,6 +7,7 @@ + @@ -15,10 +16,11 @@ - + + diff --git a/app/build.gradle b/app/build.gradle index a51980f..71ccb2f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -30,7 +30,7 @@ android { buildTypes { release { - minifyEnabled true + minifyEnabled false signingConfig signingConfigs.debug proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } diff --git a/app/src/main/java/com/fankes/miui/notify/hook/HookEntry.kt b/app/src/main/java/com/fankes/miui/notify/hook/HookEntry.kt index 90abab3..761181d 100644 --- a/app/src/main/java/com/fankes/miui/notify/hook/HookEntry.kt +++ b/app/src/main/java/com/fankes/miui/notify/hook/HookEntry.kt @@ -119,6 +119,9 @@ class HookEntry : YukiHookXposedInitProxy { /** 缓存的通知优化图标数组 */ private var iconDatas = ArrayList() + /** 是否显示通知图标 - 跟随 Hook 保存 */ + private var isShowNotificationIcons = true + /** * - 这个是修复彩色图标的关键核心代码判断 * @@ -558,12 +561,19 @@ class HookEntry : YukiHookXposedInitProxy { method { name = "updateState" } beforeHook { /** 解除状态栏通知图标个数限制 */ - if (prefs.getBoolean(ENABLE_HOOK_STATUS_ICON_COUNT, default = true)) + if (isShowNotificationIcons && prefs.getBoolean(ENABLE_HOOK_STATUS_ICON_COUNT, default = true)) field { name = "MAX_STATIC_ICONS" } .get(instance).set(prefs.getInt(HOOK_STATUS_ICON_COUNT, default = 5) .let { if (it in 0..100) it else 5 }) } } + injectMember { + method { + name = "miuiShowNotificationIcons" + param(BooleanType) + } + beforeHook { isShowNotificationIcons = firstArgs as Boolean } + } } NotificationHeaderViewWrapperClass.hook { /** 修复下拉通知图标自动设置回 APP 图标的方法 */ 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 fb8a89a..a0f813c 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 @@ -211,18 +211,12 @@ val Context.versionName get() = packageInfo.versionName ?: "" */ val Context.versionCode get() = packageInfo.versionCode -/** - * dp 转换为 px - * @return [Int] - */ -val Number.dp get() = (toFloat() * appContext.resources.displayMetrics.density).toInt() - /** * dp 转换为 px * @param context 使用的实例 * @return [Float] */ -fun Number.dp(context: Context) = toFloat() * context.resources.displayMetrics.density +fun Number.dp(context: Context) = (toFloat() * context.resources.displayMetrics.density) /** * Base64 加密 diff --git a/app/src/main/java/com/fankes/miui/notify/view/MaterialSwitch.kt b/app/src/main/java/com/fankes/miui/notify/view/MaterialSwitch.kt index 7201a21..51bea50 100644 --- a/app/src/main/java/com/fankes/miui/notify/view/MaterialSwitch.kt +++ b/app/src/main/java/com/fankes/miui/notify/view/MaterialSwitch.kt @@ -48,16 +48,16 @@ class MaterialSwitch(context: Context, attrs: AttributeSet?) : SwitchCompat(cont .rectangle() .rounded() .solidColor(0xFF656565.toInt()) - .height(20.dp) - .cornerRadius(15.dp) + .height(20.dp(context).toInt()) + .cornerRadius(15.dp(context).toInt()) .build() thumbDrawable = DrawableBuilder() .rectangle() .rounded() .solidColor(Color.WHITE) - .size(20.dp, 20.dp) - .cornerRadius(20.dp) - .strokeWidth(8.dp) + .size(20.dp(context).toInt(), 20.dp(context).toInt()) + .cornerRadius(20.dp(context).toInt()) + .strokeWidth(8.dp(context).toInt()) .strokeColor(Color.TRANSPARENT) .build() trackTintList = toColors(