mirror of
https://github.com/fankes/MIUINativeNotifyIcon.git
synced 2025-09-05 10:15:31 +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 statusBarMaxStaticIcons = -1
|
||||||
|
|
||||||
|
/** 模块上次设置的通知图标最大个数限制 */
|
||||||
|
private var moduleLastSetStatusBarMaxStaticIcons = -1
|
||||||
|
|
||||||
/** 是否已经使用过缓存刷新功能 */
|
/** 是否已经使用过缓存刷新功能 */
|
||||||
private var isUsingCachingMethod = false
|
private var isUsingCachingMethod = false
|
||||||
|
|
||||||
@@ -664,11 +667,24 @@ object SystemUIHooker : YukiBaseHooker() {
|
|||||||
*/
|
*/
|
||||||
private fun hookStatusBarMaxStaticIcons(fieldName: String, instance: Any) {
|
private fun hookStatusBarMaxStaticIcons(fieldName: String, instance: Any) {
|
||||||
val maxStaticIconsField = NotificationIconContainerClass.field { name = fieldName }.get(instance)
|
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)
|
if (isShowNotificationIcons) {
|
||||||
maxStaticIconsField.set(ConfigData.liftedStatusIconCount.let { if (it in 0..100) it else 5 })
|
moduleLastSetStatusBarMaxStaticIcons = ConfigData.liftedStatusIconCount.let { if (it in 0..100) it else 5 }
|
||||||
else maxStaticIconsField.set(if (isShowNotificationIcons) statusBarMaxStaticIcons else 0)
|
maxStaticIconsField.set(moduleLastSetStatusBarMaxStaticIcons)
|
||||||
|
} else {
|
||||||
|
maxStaticIconsField.set(0)
|
||||||
|
moduleLastSetStatusBarMaxStaticIcons = 0
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -947,7 +963,11 @@ object SystemUIHooker : YukiBaseHooker() {
|
|||||||
}.hook().after { updateStatusBarIconsAlpha(instance()) }
|
}.hook().after { updateStatusBarIconsAlpha(instance()) }
|
||||||
method {
|
method {
|
||||||
name = "resetViewStates"
|
name = "resetViewStates"
|
||||||
}.hook().after { updateStatusBarIconsAlpha(instance()) }
|
}.hook().after {
|
||||||
|
updateStatusBarIconsAlpha(instance())
|
||||||
|
/** HyperOS系统设置修改通知图标个数触发此方法 */
|
||||||
|
hookStatusBarMaxStaticIcons("mMaxStaticIcons", instance)
|
||||||
|
}
|
||||||
method {
|
method {
|
||||||
name { it == "calculateIconTranslations" || it == "calculateIconXTranslations" }
|
name { it == "calculateIconTranslations" || it == "calculateIconXTranslations" }
|
||||||
}.hook().after {
|
}.hook().after {
|
||||||
|
Reference in New Issue
Block a user