fix: updateStatusBarIconAlpha on A14 and HyperOS

This commit is contained in:
2023-11-02 08:12:06 +08:00
parent f294120fa8
commit 8a97e38d20

View File

@@ -612,12 +612,12 @@ object SystemUIHooker : YukiBaseHooker() {
* @param container 当前 [NotificationIconContainerClass] 的实例
*/
private fun updateStatusBarIconAlpha(container: ViewGroup) {
val iconStateMethod = container.current().method { name = "getIconState"; param(StatusBarIconViewClass) }
val iconStatesMap = container.current().field { name = "mIconStates" }.cast<HashMap<View, Any>>()
if (container.childCount > 0) container.children.forEach { iconView ->
if (iconView !is ImageView) return@forEach
val iconAlpha = if (iconView.isGrayscaleIcon()) statusBarIconAlpha else 1f
iconView.alpha = iconAlpha
iconStateMethod.call(iconView)?.current()?.field { name = "alpha"; superClass() }?.set(iconAlpha)
iconStatesMap?.get(iconView)?.current()?.field { name { it == "alpha" || it == "mAlpha" }; superClass() }?.set(iconAlpha)
}
}