mirror of
https://github.com/fankes/MIUINativeNotifyIcon.git
synced 2025-09-06 10:45:20 +08:00
Update YukiHookAPI
This commit is contained in:
@@ -38,7 +38,7 @@ android {
|
|||||||
|
|
||||||
buildTypes {
|
buildTypes {
|
||||||
release {
|
release {
|
||||||
minifyEnabled true
|
minifyEnabled rootProject.ext.enableR8
|
||||||
signingConfig signingConfigs.debug
|
signingConfig signingConfigs.debug
|
||||||
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
|
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
|
||||||
}
|
}
|
||||||
@@ -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.73'
|
implementation 'com.highcapable.yukihookapi:api:1.0.75'
|
||||||
ksp 'com.highcapable.yukihookapi:ksp-xposed:1.0.73'
|
ksp 'com.highcapable.yukihookapi:ksp-xposed:1.0.75'
|
||||||
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'
|
||||||
implementation 'com.geyifeng.immersionbar:immersionbar:3.2.0'
|
implementation 'com.geyifeng.immersionbar:immersionbar:3.2.0'
|
||||||
|
@@ -359,7 +359,7 @@ class SystemUIHooker : YukiBaseHooker() {
|
|||||||
*/
|
*/
|
||||||
private val globalContext
|
private val globalContext
|
||||||
get() = safeOfNull {
|
get() = safeOfNull {
|
||||||
SystemUIApplicationClass.clazz.method { name = "getContext" }.ignoredError().get().invoke<Context>()
|
SystemUIApplicationClass.clazz.method { name = "getContext" }.ignoredError().get().invoke<Context>() ?: appContext
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -699,13 +699,13 @@ class SystemUIHooker : YukiBaseHooker() {
|
|||||||
}.onFind { isUseLegacy = true }
|
}.onFind { isUseLegacy = true }
|
||||||
}
|
}
|
||||||
afterHook {
|
afterHook {
|
||||||
(globalContext ?: firstArgs())?.also { context ->
|
(globalContext ?: args().first().cast())?.also { context ->
|
||||||
val expandedNf = args(if (isUseLegacy) 1 else 0).cast<StatusBarNotification?>()
|
val expandedNf = args(if (isUseLegacy) 1 else 0).cast<StatusBarNotification?>()
|
||||||
/** Hook 状态栏小图标 */
|
/** Hook 状态栏小图标 */
|
||||||
compatStatusIcon(
|
compatStatusIcon(
|
||||||
context = context,
|
context = context,
|
||||||
expandedNf,
|
expandedNf,
|
||||||
(result as Icon).loadDrawable(context)
|
result<Icon>()?.loadDrawable(context)
|
||||||
).also { pair -> if (pair.second) result = Icon.createWithBitmap(pair.first?.toBitmap()) }
|
).also { pair -> if (pair.second) result = Icon.createWithBitmap(pair.first?.toBitmap()) }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -750,7 +750,7 @@ class SystemUIHooker : YukiBaseHooker() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
afterHook {
|
afterHook {
|
||||||
if (firstArgs != null) instance<ImageView>().also {
|
if (args[0] != null) instance<ImageView>().also {
|
||||||
/** 注册壁纸颜色监听 */
|
/** 注册壁纸颜色监听 */
|
||||||
registerWallpaperColorChanged(it)
|
registerWallpaperColorChanged(it)
|
||||||
/** 注册广播 */
|
/** 注册广播 */
|
||||||
@@ -789,7 +789,7 @@ class SystemUIHooker : YukiBaseHooker() {
|
|||||||
name = "setMaxStaticIcons"
|
name = "setMaxStaticIcons"
|
||||||
param(IntType)
|
param(IntType)
|
||||||
}
|
}
|
||||||
beforeHook { isShowNotificationIcons = (firstArgs<Int>() ?: 0) > 0 }
|
beforeHook { isShowNotificationIcons = args().first().int() > 0 }
|
||||||
}.ignoredNoSuchMemberFailure()
|
}.ignoredNoSuchMemberFailure()
|
||||||
/** 新版方法 - 旧版不存在 */
|
/** 新版方法 - 旧版不存在 */
|
||||||
injectMember {
|
injectMember {
|
||||||
@@ -797,7 +797,7 @@ class SystemUIHooker : YukiBaseHooker() {
|
|||||||
name = "miuiShowNotificationIcons"
|
name = "miuiShowNotificationIcons"
|
||||||
param(BooleanType)
|
param(BooleanType)
|
||||||
}
|
}
|
||||||
beforeHook { isShowNotificationIcons = firstArgs<Boolean>() ?: false }
|
beforeHook { isShowNotificationIcons = args().first().boolean() }
|
||||||
}.ignoredNoSuchMemberFailure()
|
}.ignoredNoSuchMemberFailure()
|
||||||
}
|
}
|
||||||
/** 注入原生通知包装纸实例 */
|
/** 注入原生通知包装纸实例 */
|
||||||
@@ -913,7 +913,7 @@ class SystemUIHooker : YukiBaseHooker() {
|
|||||||
param(ContextClass, IntentClass)
|
param(ContextClass, IntentClass)
|
||||||
}
|
}
|
||||||
afterHook {
|
afterHook {
|
||||||
if (isEnableHookColorNotifyIcon()) (lastArgs as? Intent)?.also {
|
if (isEnableHookColorNotifyIcon()) args().last().cast<Intent>()?.also {
|
||||||
if (it.action.equals(Intent.ACTION_PACKAGE_REPLACED).not() &&
|
if (it.action.equals(Intent.ACTION_PACKAGE_REPLACED).not() &&
|
||||||
it.getBooleanExtra(Intent.EXTRA_REPLACING, false)
|
it.getBooleanExtra(Intent.EXTRA_REPLACING, false)
|
||||||
) return@also
|
) return@also
|
||||||
@@ -923,11 +923,11 @@ class SystemUIHooker : YukiBaseHooker() {
|
|||||||
if (iconDatas.takeIf { e -> e.isNotEmpty() }
|
if (iconDatas.takeIf { e -> e.isNotEmpty() }
|
||||||
?.filter { e -> e.packageName == newPkgName }
|
?.filter { e -> e.packageName == newPkgName }
|
||||||
.isNullOrEmpty()
|
.isNullOrEmpty()
|
||||||
) IconAdaptationTool.pushNewAppSupportNotify(firstArgs()!!, newPkgName)
|
) IconAdaptationTool.pushNewAppSupportNotify(args().first().cast()!!, newPkgName)
|
||||||
}
|
}
|
||||||
Intent.ACTION_PACKAGE_REMOVED ->
|
Intent.ACTION_PACKAGE_REMOVED ->
|
||||||
IconAdaptationTool.removeNewAppSupportNotify(
|
IconAdaptationTool.removeNewAppSupportNotify(
|
||||||
context = firstArgs()!!,
|
context = args().first().cast()!!,
|
||||||
packageName = it.data?.schemeSpecificPart ?: ""
|
packageName = it.data?.schemeSpecificPart ?: ""
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
@@ -1,12 +1,13 @@
|
|||||||
plugins {
|
plugins {
|
||||||
id 'com.android.application' version '7.1.2' apply false
|
id 'com.android.application' version '7.1.3' apply false
|
||||||
id 'com.android.library' version '7.1.2' apply false
|
id 'com.android.library' version '7.1.3' apply false
|
||||||
id 'org.jetbrains.kotlin.android' version '1.6.10' apply false
|
id 'org.jetbrains.kotlin.android' version '1.6.10' apply false
|
||||||
}
|
}
|
||||||
|
|
||||||
ext {
|
ext {
|
||||||
appVersionName = "2.35"
|
appVersionName = "2.35"
|
||||||
appVersionCode = 29
|
appVersionCode = 29
|
||||||
|
enableR8 = true
|
||||||
}
|
}
|
||||||
|
|
||||||
task clean(type: Delete) {
|
task clean(type: Delete) {
|
||||||
|
Reference in New Issue
Block a user