Skip to content

Commit

Permalink
fix: some problem in MIUI 14 (14.0.4) Android 14
Browse files Browse the repository at this point in the history
  • Loading branch information
fankes committed Nov 6, 2023
1 parent 386d3c2 commit d1dc641
Showing 1 changed file with 28 additions and 24 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -732,9 +732,9 @@ object SystemUIHooker : YukiBaseHooker() {
*/
private fun Any?.getSbn() =
ExpandableNotificationRowClass
.method { name = "getEntry" }
.get(this).call()
?.current(ignored = true)
.field { name = "mEntry" }
.get(this)
.current(ignored = true)
?.field { name = "mSbn" }
?.cast<StatusBarNotification>()
?: ExpandableNotificationRowClass
Expand Down Expand Up @@ -843,30 +843,34 @@ object SystemUIHooker : YukiBaseHooker() {
param { it[0] extends StatusBarNotificationClass }
}.hookAll().replaceToFalse()
var isUseLegacy = false
/** 强制回写系统的状态栏图标样式为原生 */
method {
name = "getSmallIcon"
param { it[0] extends StatusBarNotificationClass && it[1] == IntType }
}.remedys {
method {
name = "getSmallIcon"
param(ExpandedNotificationClass)
}
/**
* 强制回写系统的状态栏图标样式为原生
* 部分系统没有 "getSmallIcon" 这个方法 - 所以直接忽略
*/
if (hasMethod { name = "getSmallIcon" })
method {
name = "getSmallIcon"
param(ContextClass, ExpandedNotificationClass)
}.onFind { isUseLegacy = true }
}.hook().after {
(globalContext ?: args().first().cast())?.also { context ->
val expandedNf = args(if (isUseLegacy) 1 else 0).cast<StatusBarNotification?>()
/** Hook 状态栏小图标 */
compatStatusIcon(
context = context,
nf = expandedNf,
iconDrawable = result<Icon>()?.loadDrawable(context)
).also { pair -> if (pair.second) result = Icon.createWithBitmap(pair.first?.toBitmap()) }
param { it[0] extends StatusBarNotificationClass && it[1] == IntType }
}.remedys {
method {
name = "getSmallIcon"
param(ExpandedNotificationClass)
}
method {
name = "getSmallIcon"
param(ContextClass, ExpandedNotificationClass)
}.onFind { isUseLegacy = true }
}.hook().after {
(globalContext ?: args().first().cast())?.also { context ->
val expandedNf = args(if (isUseLegacy) 1 else 0).cast<StatusBarNotification?>()
/** Hook 状态栏小图标 */
compatStatusIcon(
context = context,
nf = expandedNf,
iconDrawable = result<Icon>()?.loadDrawable(context)
).also { pair -> if (pair.second) result = Icon.createWithBitmap(pair.first?.toBitmap()) }
}
}
}
}
/** 注入状态栏通知图标实例 */
StatusBarIconViewClass.method {
Expand Down

0 comments on commit d1dc641

Please sign in to comment.