mirror of
https://github.com/fankes/MIUINativeNotifyIcon.git
synced 2025-09-04 01:35:26 +08:00
StatusBarMaxStaticIcons: Fully managed by us if enabled else do nothing (#199)
* StatusBarMaxStaticIcons: Fully managed by us if enabled else do nothing Signed-off-by: hamjin <jinham@qq.com> * Fix restore original count and enhance manage on HyperOS * Remove unused code --------- Signed-off-by: hamjin <jinham@qq.com>
This commit is contained in:
@@ -194,6 +194,9 @@ object SystemUIHooker : YukiBaseHooker() {
|
||||
/** 状态栏原始通知图标最大个数限制 */
|
||||
private var statusBarMaxStaticIcons = -1
|
||||
|
||||
/** 模块上次设置的通知图标最大个数限制 */
|
||||
private var moduleLastSetStatusBarMaxStaticIcons = -1
|
||||
|
||||
/** 是否已经使用过缓存刷新功能 */
|
||||
private var isUsingCachingMethod = false
|
||||
|
||||
@@ -664,11 +667,24 @@ object SystemUIHooker : YukiBaseHooker() {
|
||||
*/
|
||||
private fun hookStatusBarMaxStaticIcons(fieldName: String, instance: Any) {
|
||||
val maxStaticIconsField = NotificationIconContainerClass.field { name = fieldName }.get(instance)
|
||||
if (statusBarMaxStaticIcons == -1) statusBarMaxStaticIcons = maxStaticIconsField.int()
|
||||
if (statusBarMaxStaticIcons == -1 ||
|
||||
/** 系统设置内修改,模块同步更新 */
|
||||
moduleLastSetStatusBarMaxStaticIcons != maxStaticIconsField.int()) {
|
||||
statusBarMaxStaticIcons = maxStaticIconsField.int()
|
||||
}
|
||||
if (!ConfigData.isEnableLiftedStatusIconCount) {
|
||||
maxStaticIconsField.set(statusBarMaxStaticIcons)
|
||||
return
|
||||
}
|
||||
|
||||
/** 解除状态栏通知图标个数限制 */
|
||||
if (isShowNotificationIcons && ConfigData.isEnableLiftedStatusIconCount)
|
||||
maxStaticIconsField.set(ConfigData.liftedStatusIconCount.let { if (it in 0..100) it else 5 })
|
||||
else maxStaticIconsField.set(if (isShowNotificationIcons) statusBarMaxStaticIcons else 0)
|
||||
if (isShowNotificationIcons) {
|
||||
moduleLastSetStatusBarMaxStaticIcons = ConfigData.liftedStatusIconCount.let { if (it in 0..100) it else 5 }
|
||||
maxStaticIconsField.set(moduleLastSetStatusBarMaxStaticIcons)
|
||||
} else {
|
||||
maxStaticIconsField.set(0)
|
||||
moduleLastSetStatusBarMaxStaticIcons = 0
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -947,7 +963,11 @@ object SystemUIHooker : YukiBaseHooker() {
|
||||
}.hook().after { updateStatusBarIconsAlpha(instance()) }
|
||||
method {
|
||||
name = "resetViewStates"
|
||||
}.hook().after { updateStatusBarIconsAlpha(instance()) }
|
||||
}.hook().after {
|
||||
updateStatusBarIconsAlpha(instance())
|
||||
/** HyperOS系统设置修改通知图标个数触发此方法 */
|
||||
hookStatusBarMaxStaticIcons("mMaxStaticIcons", instance)
|
||||
}
|
||||
method {
|
||||
name { it == "calculateIconTranslations" || it == "calculateIconXTranslations" }
|
||||
}.hook().after {
|
||||
|
Reference in New Issue
Block a user