Modify make status icon count function open/close dynamic update in SystemUIHooker, MainActivity

This commit is contained in:
2023-02-02 21:39:55 +08:00
parent 596c4363d0
commit 741157336c
2 changed files with 8 additions and 4 deletions

View File

@@ -148,6 +148,9 @@ object SystemUIHooker : YukiBaseHooker() {
/** 是否显示通知图标 - 跟随 Hook 保存 */
private var isShowNotificationIcons = true
/** 状态栏原始通知图标最大个数限制 */
private var statusBarMaxStaticIcons = -1
/** 是否已经使用过缓存刷新功能 */
private var isUsingCachingMethod = false
@@ -857,11 +860,12 @@ object SystemUIHooker : YukiBaseHooker() {
injectMember {
method { name = "updateState" }
beforeHook {
val maxStaticIconsField = field { name = "MAX_STATIC_ICONS" }.get(instance)
if (statusBarMaxStaticIcons == -1) statusBarMaxStaticIcons = maxStaticIconsField.int()
/** 解除状态栏通知图标个数限制 */
if (isShowNotificationIcons && prefs.get(DataConst.ENABLE_HOOK_STATUS_ICON_COUNT))
field { name = "MAX_STATIC_ICONS" }
.get(instance).set(prefs.get(DataConst.HOOK_STATUS_ICON_COUNT)
.let { if (it in 0..100) it else 5 })
maxStaticIconsField.set(prefs.get(DataConst.HOOK_STATUS_ICON_COUNT).let { if (it in 0..100) it else 5 })
else maxStaticIconsField.set(statusBarMaxStaticIcons)
}
}.by { NotificationIconContainerClass.toClassOrNull()?.hasField { name = "MAX_STATIC_ICONS" } ?: false }
/** 旧版方法 - 新版不存在 */

View File

@@ -201,7 +201,7 @@ class MainActivity : BaseActivity<ActivityMainBinding>() {
if (btn.isPressed.not()) return@setOnCheckedChangeListener
modulePrefs.put(DataConst.ENABLE_HOOK_STATUS_ICON_COUNT, b)
binding.statusIconCountChildItem.isVisible = b
SystemUITool.showNeedRestartSnake(context = this)
SystemUITool.refreshSystemUI(context = this) { snake(msg = "设置将在新通知推送或状态栏刷新后自动生效") }
}
binding.colorIconCompatSwitch.setOnCheckedChangeListener { btn, b ->
if (btn.isPressed.not()) return@setOnCheckedChangeListener