mirror of
https://github.com/fankes/ColorOSNotifyIcon.git
synced 2025-09-06 02:35:41 +08:00
Update YukiHookAPI
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
plugins {
|
plugins {
|
||||||
id 'com.android.application'
|
id 'com.android.application'
|
||||||
id 'org.jetbrains.kotlin.android'
|
id 'org.jetbrains.kotlin.android'
|
||||||
id 'com.google.devtools.ksp' version '1.6.10-1.0.2'
|
id 'com.google.devtools.ksp' version '1.6.10-1.0.4'
|
||||||
}
|
}
|
||||||
|
|
||||||
android {
|
android {
|
||||||
@@ -44,11 +44,11 @@ android {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
compileOptions {
|
compileOptions {
|
||||||
sourceCompatibility JavaVersion.VERSION_1_8
|
sourceCompatibility JavaVersion.VERSION_11
|
||||||
targetCompatibility JavaVersion.VERSION_1_8
|
targetCompatibility JavaVersion.VERSION_11
|
||||||
}
|
}
|
||||||
kotlinOptions {
|
kotlinOptions {
|
||||||
jvmTarget = '1.8'
|
jvmTarget = '11'
|
||||||
}
|
}
|
||||||
buildFeatures {
|
buildFeatures {
|
||||||
viewBinding true
|
viewBinding true
|
||||||
@@ -72,8 +72,8 @@ tasks.whenTaskAdded {
|
|||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
compileOnly 'de.robv.android.xposed:api:82'
|
compileOnly 'de.robv.android.xposed:api:82'
|
||||||
implementation 'com.highcapable.yukihookapi:api:1.0.67'
|
implementation 'com.highcapable.yukihookapi:api:1.0.68'
|
||||||
ksp 'com.highcapable.yukihookapi:ksp-xposed:1.0.67'
|
ksp 'com.highcapable.yukihookapi:ksp-xposed:1.0.68'
|
||||||
implementation 'com.github.tiann:FreeReflection:3.1.0'
|
implementation 'com.github.tiann:FreeReflection:3.1.0'
|
||||||
implementation "com.github.topjohnwu.libsu:core:3.1.2"
|
implementation "com.github.topjohnwu.libsu:core:3.1.2"
|
||||||
implementation 'androidx.annotation:annotation:1.3.0'
|
implementation 'androidx.annotation:annotation:1.3.0'
|
||||||
|
@@ -20,8 +20,6 @@
|
|||||||
*
|
*
|
||||||
* This file is Created by fankes on 2022/3/25.
|
* This file is Created by fankes on 2022/3/25.
|
||||||
*/
|
*/
|
||||||
@file:Suppress("Recycle")
|
|
||||||
|
|
||||||
package com.fankes.coloros.notify.hook.entity
|
package com.fankes.coloros.notify.hook.entity
|
||||||
|
|
||||||
import android.app.WallpaperManager
|
import android.app.WallpaperManager
|
||||||
@@ -295,7 +293,7 @@ class SystemUIHooker : YukiBaseHooker() {
|
|||||||
statusBarIconViews.takeIf { it.isNotEmpty() }?.forEach {
|
statusBarIconViews.takeIf { it.isNotEmpty() }?.forEach {
|
||||||
runInSafe {
|
runInSafe {
|
||||||
/** 得到通知实例 */
|
/** 得到通知实例 */
|
||||||
val nf = nfField.of<StatusBarNotification>(it) ?: return@Thread
|
val nf = nfField.get(it).cast<StatusBarNotification>() ?: return@Thread
|
||||||
|
|
||||||
/** 得到原始通知图标 */
|
/** 得到原始通知图标 */
|
||||||
val iconDrawable = nf.notification.smallIcon.loadDrawable(it.context)
|
val iconDrawable = nf.notification.smallIcon.loadDrawable(it.context)
|
||||||
@@ -308,10 +306,10 @@ class SystemUIHooker : YukiBaseHooker() {
|
|||||||
drawable = iconDrawable
|
drawable = iconDrawable
|
||||||
).also { pair ->
|
).also { pair ->
|
||||||
/** 得到图标圆角 */
|
/** 得到图标圆角 */
|
||||||
val sRadius = sRadiusField.ofFloat(it)
|
val sRadius = sRadiusField.get(it).float()
|
||||||
|
|
||||||
/** 得到缩放大小 */
|
/** 得到缩放大小 */
|
||||||
val sNfSize = sNfSizeField.ofInt(it)
|
val sNfSize = sNfSizeField.get(it).int()
|
||||||
/** 在主线程设置图标 */
|
/** 在主线程设置图标 */
|
||||||
it.post { it.setImageDrawable(roundUtil.invoke(pair.first, sRadius, sNfSize, sNfSize, it.context)) }
|
it.post { it.setImageDrawable(roundUtil.invoke(pair.first, sRadius, sNfSize, sNfSize, it.context)) }
|
||||||
}
|
}
|
||||||
@@ -343,7 +341,7 @@ class SystemUIHooker : YukiBaseHooker() {
|
|||||||
}.get(it.method {
|
}.get(it.method {
|
||||||
name = "getInstance"
|
name = "getInstance"
|
||||||
param(ContextClass)
|
param(ContextClass)
|
||||||
}.get().invoke(context)).callBoolean(drawable)
|
}.get().invoke(context)).boolean(drawable)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -537,7 +535,7 @@ class SystemUIHooker : YukiBaseHooker() {
|
|||||||
}
|
}
|
||||||
beforeHook {
|
beforeHook {
|
||||||
/** 是否移除 */
|
/** 是否移除 */
|
||||||
if (args().ofInt() == 7 && prefs.get(DataConst.REMOVE_CHANGECP_NOTIFY)) resultNull()
|
if (args().int() == 7 && prefs.get(DataConst.REMOVE_CHANGECP_NOTIFY)) resultNull()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -573,7 +571,7 @@ class SystemUIHooker : YukiBaseHooker() {
|
|||||||
}
|
}
|
||||||
afterHook {
|
afterHook {
|
||||||
IconBuilderClass.clazz.field { name = "context" }
|
IconBuilderClass.clazz.field { name = "context" }
|
||||||
.of<Context>(field { name = "iconBuilder" }.of(instance))?.also { context ->
|
.get(field { name = "iconBuilder" }.get(instance).cast()).cast<Context>()?.also { context ->
|
||||||
NotificationEntryClass.clazz.method {
|
NotificationEntryClass.clazz.method {
|
||||||
name = "getSbn"
|
name = "getSbn"
|
||||||
}.get(firstArgs).invoke<StatusBarNotification>()?.also { nf ->
|
}.get(firstArgs).invoke<StatusBarNotification>()?.also { nf ->
|
||||||
@@ -622,7 +620,7 @@ class SystemUIHooker : YukiBaseHooker() {
|
|||||||
method { name = "resolveHeaderViews" }
|
method { name = "resolveHeaderViews" }
|
||||||
afterHook {
|
afterHook {
|
||||||
NotificationHeaderViewWrapperClass.clazz
|
NotificationHeaderViewWrapperClass.clazz
|
||||||
.field { name = "mIcon" }.of<ImageView>(instance)?.apply {
|
.field { name = "mIcon" }.get(instance).cast<ImageView>()?.apply {
|
||||||
ExpandableNotificationRowClass.clazz
|
ExpandableNotificationRowClass.clazz
|
||||||
.method { name = "getEntry" }
|
.method { name = "getEntry" }
|
||||||
.get(NotificationViewWrapperClass.clazz.field {
|
.get(NotificationViewWrapperClass.clazz.field {
|
||||||
|
@@ -140,8 +140,8 @@ val colorOSFullVersion get() = "${if (isRealmeUI) "RealmeUI " else ""}$colorOSVe
|
|||||||
val colorOSVersion
|
val colorOSVersion
|
||||||
get() = safeOf(default = "无法获取") {
|
get() = safeOf(default = "无法获取") {
|
||||||
(classOf(name = "com.oplus.os.OplusBuild").let {
|
(classOf(name = "com.oplus.os.OplusBuild").let {
|
||||||
it.field { name = "VERSIONS" }.ignoredError().of<Array<String>>()
|
it.field { name = "VERSIONS" }.ignoredError().get().array<String>().takeIf { e -> e.isNotEmpty() }
|
||||||
?.get(it.method { name = "getOplusOSVERSION" }.ignoredError().get().callInt() - 1)
|
?.get(it.method { name = "getOplusOSVERSION" }.ignoredError().get().int() - 1)
|
||||||
} ?: findPropString(
|
} ?: findPropString(
|
||||||
key = "ro.system.build.fingerprint", default = "无法获取"
|
key = "ro.system.build.fingerprint", default = "无法获取"
|
||||||
).split("ssi:")[1].split("/")[0].trim()) + " ${Build.DISPLAY}"
|
).split("ssi:")[1].split("/")[0].trim()) + " ${Build.DISPLAY}"
|
||||||
|
Reference in New Issue
Block a user