mirror of
https://github.com/fankes/MIUINativeNotifyIcon.git
synced 2025-09-07 03:05:51 +08:00
Compare commits
23 Commits
Author | SHA1 | Date | |
---|---|---|---|
79843eb0d0 | |||
7a4e254230 | |||
0534ab9218 | |||
5cee229a99 | |||
b6920e3ca1 | |||
|
a4f7c95f84 | ||
38803846cd | |||
fb44c4e945 | |||
a2fc95d765 | |||
0e3ef5418c | |||
4e5e2cee09 | |||
7b4b728523 | |||
9b6540df65 | |||
3e8982aad0 | |||
085f2498c8 | |||
a1e01d1d33 | |||
03aa550487 | |||
ea632b8892 | |||
|
69847a0b0b | ||
|
4cdbfa944d | ||
|
9edb04cf08 | ||
|
071c98e8f3 | ||
|
a317cc07f5 |
5
.github/ISSUE_TEMPLATE/----------.md
vendored
5
.github/ISSUE_TEMPLATE/----------.md
vendored
@@ -9,7 +9,7 @@ assignees: ''
|
|||||||
|
|
||||||
**需要适配的 APP 名称/包名/通知图标颜色 (必填)**
|
**需要适配的 APP 名称/包名/通知图标颜色 (必填)**
|
||||||
|
|
||||||
* (示例:小米音乐/com.miui.player/0xfff16033)
|
* (示例:小米音乐/com.miui.player/#fff16033)
|
||||||
|
|
||||||
*
|
*
|
||||||
|
|
||||||
@@ -23,6 +23,7 @@ assignees: ''
|
|||||||
|
|
||||||
* (若直接在附件提交这里可不填)
|
* (若直接在附件提交这里可不填)
|
||||||
|
|
||||||
<!--- 提交时请将示例内容全部删除 --->
|
<!--- 提交时请将括号内容包括括号全部删除,填入你自己的内容 --->
|
||||||
|
<!--- 请保留模板原始标题 --->
|
||||||
<!--- 不按规定提交的 issues 将直接被关闭 --->
|
<!--- 不按规定提交的 issues 将直接被关闭 --->
|
||||||
<!--- Create by Template --->
|
<!--- Create by Template --->
|
||||||
|
3
.github/ISSUE_TEMPLATE/----bug---.md
vendored
3
.github/ISSUE_TEMPLATE/----bug---.md
vendored
@@ -46,6 +46,7 @@ assignees: fankes
|
|||||||
|
|
||||||
</code></pre></details>
|
</code></pre></details>
|
||||||
|
|
||||||
<!--- 提交时请将示例内容全部删除 --->
|
<!--- 提交时请将括号内容包括括号全部删除,填入你自己的内容 --->
|
||||||
|
<!--- 请保留模板原始标题 --->
|
||||||
<!--- 不按规定提交的 issues 将直接被关闭 --->
|
<!--- 不按规定提交的 issues 将直接被关闭 --->
|
||||||
<!--- Create by Template --->
|
<!--- Create by Template --->
|
||||||
|
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||

|

|
||||||

|

|
||||||

|

|
||||||
<br/><br/>
|
<br/><br/>
|
||||||
<img src="https://github.com/fankes/MIUINativeNotifyIcon/blob/master/app/src/main/ic_launcher-playstore.png" width = "100" height = "100"/>
|
<img src="https://github.com/fankes/MIUINativeNotifyIcon/blob/master/app/src/main/ic_launcher-playstore.png" width = "100" height = "100"/>
|
||||||
<br/>
|
<br/>
|
||||||
@@ -12,7 +12,7 @@ Fix the native notification bar icon function abandoned by the MIUI development
|
|||||||
# 开始使用
|
# 开始使用
|
||||||
|
|
||||||
点击下载最新版本
|
点击下载最新版本
|
||||||
<a href='https://github.com/fankes/MIUINativeNotifyIcon/releases'></a>
|
<a href='https://github.com/fankes/MIUINativeNotifyIcon/releases'></a>
|
||||||
<br/><br/>
|
<br/><br/>
|
||||||
⚠️ 适配说明<br/>
|
⚠️ 适配说明<br/>
|
||||||
|
|
||||||
|
@@ -51,9 +51,13 @@ android {
|
|||||||
tasks.whenTaskAdded {
|
tasks.whenTaskAdded {
|
||||||
task -> if (task.name == "lintVitalRelease") task.enabled = false
|
task -> if (task.name == "lintVitalRelease") task.enabled = false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** 移除无效耗时 lint Task */
|
||||||
tasks.whenTaskAdded {
|
tasks.whenTaskAdded {
|
||||||
task -> if (task.name == "lintVitalAnalyzeRelease") task.enabled = false
|
task -> if (task.name == "lintVitalAnalyzeRelease") task.enabled = false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** 移除无效耗时 lint Task */
|
||||||
tasks.whenTaskAdded {
|
tasks.whenTaskAdded {
|
||||||
task -> if (task.name == "lintVitalReportRelease") task.enabled = false
|
task -> if (task.name == "lintVitalReportRelease") task.enabled = false
|
||||||
}
|
}
|
||||||
@@ -64,8 +68,8 @@ dependencies {
|
|||||||
implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.3.1'
|
implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.3.1'
|
||||||
implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.3.1'
|
implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.3.1'
|
||||||
compileOnly 'de.robv.android.xposed:api:82'
|
compileOnly 'de.robv.android.xposed:api:82'
|
||||||
implementation 'com.highcapable.yukihookapi:api:1.0.1'
|
implementation 'com.highcapable.yukihookapi:api:1.0.2'
|
||||||
ksp 'com.highcapable.yukihookapi:ksp-xposed:1.0.1'
|
ksp 'com.highcapable.yukihookapi:ksp-xposed:1.0.2'
|
||||||
implementation 'com.geyifeng.immersionbar:immersionbar:3.2.0'
|
implementation 'com.geyifeng.immersionbar:immersionbar:3.2.0'
|
||||||
implementation 'com.geyifeng.immersionbar:immersionbar-ktx:3.2.0'
|
implementation 'com.geyifeng.immersionbar:immersionbar-ktx:3.2.0'
|
||||||
implementation 'androidx.core:core-ktx:1.7.0'
|
implementation 'androidx.core:core-ktx:1.7.0'
|
||||||
|
@@ -51,7 +51,6 @@ import com.highcapable.yukihookapi.hook.log.loggerD
|
|||||||
import com.highcapable.yukihookapi.hook.log.loggerW
|
import com.highcapable.yukihookapi.hook.log.loggerW
|
||||||
import com.highcapable.yukihookapi.hook.param.PackageParam
|
import com.highcapable.yukihookapi.hook.param.PackageParam
|
||||||
import com.highcapable.yukihookapi.hook.type.android.ContextClass
|
import com.highcapable.yukihookapi.hook.type.android.ContextClass
|
||||||
import com.highcapable.yukihookapi.hook.type.android.DrawableClass
|
|
||||||
import com.highcapable.yukihookapi.hook.type.android.ImageViewClass
|
import com.highcapable.yukihookapi.hook.type.android.ImageViewClass
|
||||||
import com.highcapable.yukihookapi.hook.type.java.IntType
|
import com.highcapable.yukihookapi.hook.type.java.IntType
|
||||||
import com.highcapable.yukihookapi.hook.xposed.proxy.YukiHookXposedInitProxy
|
import com.highcapable.yukihookapi.hook.xposed.proxy.YukiHookXposedInitProxy
|
||||||
@@ -76,12 +75,6 @@ class HookEntry : YukiHookXposedInitProxy {
|
|||||||
private const val NotificationViewWrapperClass =
|
private const val NotificationViewWrapperClass =
|
||||||
"$SYSTEMUI_PACKAGE_NAME.statusbar.notification.NotificationViewWrapper"
|
"$SYSTEMUI_PACKAGE_NAME.statusbar.notification.NotificationViewWrapper"
|
||||||
|
|
||||||
/** 原生存在的类 */
|
|
||||||
private const val StatusBarIconViewClass = "$SYSTEMUI_PACKAGE_NAME.statusbar.StatusBarIconView"
|
|
||||||
|
|
||||||
/** 原生存在的类 */
|
|
||||||
private const val ContrastColorUtilClass = "com.android.internal.util.ContrastColorUtil"
|
|
||||||
|
|
||||||
/** 未确定是否只有旧版本存在的类 */
|
/** 未确定是否只有旧版本存在的类 */
|
||||||
private const val ExpandableNotificationRowClass = "$SYSTEMUI_PACKAGE_NAME.statusbar.ExpandableNotificationRow"
|
private const val ExpandableNotificationRowClass = "$SYSTEMUI_PACKAGE_NAME.statusbar.ExpandableNotificationRow"
|
||||||
|
|
||||||
@@ -101,25 +94,11 @@ class HookEntry : YukiHookXposedInitProxy {
|
|||||||
/**
|
/**
|
||||||
* - 这个是修复彩色图标的关键核心代码判断
|
* - 这个是修复彩色图标的关键核心代码判断
|
||||||
*
|
*
|
||||||
* 判断是否为灰度图标 - 反射执行系统方法
|
* 判断是否为灰度图标 - [isXmsf] 直接标记为非灰度图标防止 💩 MIUI 乱改
|
||||||
* @param context 实例
|
|
||||||
* @param drawable 要判断的图标
|
* @param drawable 要判断的图标
|
||||||
* @return [Boolean]
|
* @return [Boolean]
|
||||||
*/
|
*/
|
||||||
private fun PackageParam.isGrayscaleIcon(context: Context, drawable: Drawable) = safeOfFalse {
|
private fun StatusBarNotification.isGrayscaleIcon(drawable: Drawable) = !isXmsf && BitmapCompatTool.isGrayscaleDrawable(drawable)
|
||||||
ContrastColorUtilClass.clazz.let {
|
|
||||||
it.method(name = "isGrayscaleIcon", DrawableClass)
|
|
||||||
?.call<Boolean>(it.method(name = "getInstance", ContextClass)?.callStatic(context), drawable) ?: false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取当前通知栏的样式
|
|
||||||
* @return [Boolean]
|
|
||||||
*/
|
|
||||||
private fun PackageParam.isShowMiuiStyle() = safeOfFalse {
|
|
||||||
NotificationUtilClass.clazz.method(name = "showMiuiStyle")?.callStatic() ?: false
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 是否为新版本 MIUI 方案
|
* 是否为新版本 MIUI 方案
|
||||||
@@ -127,8 +106,15 @@ class HookEntry : YukiHookXposedInitProxy {
|
|||||||
* 拥有状态栏图标颜色检查功能
|
* 拥有状态栏图标颜色检查功能
|
||||||
* @return [Boolean]
|
* @return [Boolean]
|
||||||
*/
|
*/
|
||||||
private fun PackageParam.hasIgnoreStatusBarIconColor() = safeOfFalse {
|
private val PackageParam.hasIgnoreStatusBarIconColor
|
||||||
NotificationUtilClass.clazz.hasMethod(name = "ignoreStatusBarIconColor", ExpandedNotificationClass.clazz)
|
get() = NotificationUtilClass.clazz.hasMethod(name = "ignoreStatusBarIconColor", ExpandedNotificationClass.clazz)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取当前通知栏的样式
|
||||||
|
* @return [Boolean]
|
||||||
|
*/
|
||||||
|
private fun PackageParam.isShowMiuiStyle() = safeOfFalse {
|
||||||
|
NotificationUtilClass.clazz.method { name = "showMiuiStyle" }.get().invoke() ?: false
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -137,7 +123,7 @@ class HookEntry : YukiHookXposedInitProxy {
|
|||||||
* @return [String]
|
* @return [String]
|
||||||
*/
|
*/
|
||||||
private fun PackageParam.findAppName(instance: Any?) = safeOf(default = "<unknown>") {
|
private fun PackageParam.findAppName(instance: Any?) = safeOf(default = "<unknown>") {
|
||||||
ExpandedNotificationClass.clazz.method(name = "getAppName")?.call(instance) ?: "<empty>"
|
ExpandedNotificationClass.clazz.method { name = "getAppName" }.get(instance).invoke() ?: "<empty>"
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -197,7 +183,9 @@ class HookEntry : YukiHookXposedInitProxy {
|
|||||||
*/
|
*/
|
||||||
private val PackageParam.globalContext
|
private val PackageParam.globalContext
|
||||||
get() = safeOfNull {
|
get() = safeOfNull {
|
||||||
SystemUIApplicationClass.clazz.method(name = "getContext")?.callStatic<Context>()
|
if (SystemUIApplicationClass.clazz.hasMethod(name = "getContext"))
|
||||||
|
SystemUIApplicationClass.clazz.method { name = "getContext" }.get().invoke<Context>()
|
||||||
|
else null
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -218,10 +206,11 @@ class HookEntry : YukiHookXposedInitProxy {
|
|||||||
if (iconDrawable == null) return@safeRun
|
if (iconDrawable == null) return@safeRun
|
||||||
/** 如果没开启修复 APP 的彩色图标 */
|
/** 如果没开启修复 APP 的彩色图标 */
|
||||||
if (!prefs.getBoolean(ENABLE_COLOR_ICON_HOOK, default = true)) return@safeRun
|
if (!prefs.getBoolean(ENABLE_COLOR_ICON_HOOK, default = true)) return@safeRun
|
||||||
/** 判断是否不是灰度图标 */
|
|
||||||
val isNotGrayscaleIcon = !isGrayscaleIcon(context, iconDrawable)
|
|
||||||
/** 获取通知对象 - 由于 MIUI 的版本迭代不规范性可能是空的 */
|
/** 获取通知对象 - 由于 MIUI 的版本迭代不规范性可能是空的 */
|
||||||
expandedNf?.also { notifyInstance ->
|
expandedNf?.also { notifyInstance ->
|
||||||
|
/** 判断是否不是灰度图标 */
|
||||||
|
val isNotGrayscaleIcon = !notifyInstance.isGrayscaleIcon(iconDrawable)
|
||||||
|
|
||||||
/** 目标彩色通知 APP 图标 */
|
/** 目标彩色通知 APP 图标 */
|
||||||
var customIcon: Bitmap? = null
|
var customIcon: Bitmap? = null
|
||||||
if (prefs.getBoolean(ENABLE_NOTIFY_ICON_FIX, default = true))
|
if (prefs.getBoolean(ENABLE_NOTIFY_ICON_FIX, default = true))
|
||||||
@@ -239,12 +228,12 @@ class HookEntry : YukiHookXposedInitProxy {
|
|||||||
}
|
}
|
||||||
/** 打印日志 */
|
/** 打印日志 */
|
||||||
if (prefs.getBoolean(ENABLE_MODULE_LOG))
|
if (prefs.getBoolean(ENABLE_MODULE_LOG))
|
||||||
loggerD(msg = "hook Icon [${findAppName(notifyInstance)}][${notifyInstance.opPkgName}] custom [${customIcon != null}] grayscale [${!isNotGrayscaleIcon}]")
|
loggerD(msg = "Icon --> [${findAppName(notifyInstance)}][${notifyInstance.opPkgName}] custom [${customIcon != null}] grayscale [${!isNotGrayscaleIcon}] xmsf [${notifyInstance.isXmsf}]")
|
||||||
when {
|
when {
|
||||||
/** 处理自定义通知图标优化 */
|
/** 处理自定义通知图标优化 */
|
||||||
customIcon != null -> it(customIcon!!)
|
customIcon != null -> it(customIcon!!)
|
||||||
/** 若不是灰度图标自动处理为圆角 */
|
/** 若不是灰度图标自动处理为圆角 */
|
||||||
isNotGrayscaleIcon -> it(expandedNf.compatNotifyIcon(context, iconDrawable).toBitmap().round(15.dp(context)))
|
isNotGrayscaleIcon -> it(notifyInstance.compatNotifyIcon(context, iconDrawable).toBitmap().round(15.dp(context)))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -291,7 +280,7 @@ class HookEntry : YukiHookXposedInitProxy {
|
|||||||
val iconDrawable = notifyInstance.notification.smallIcon.loadDrawable(context)
|
val iconDrawable = notifyInstance.notification.smallIcon.loadDrawable(context)
|
||||||
|
|
||||||
/** 判断图标风格 */
|
/** 判断图标风格 */
|
||||||
val isGrayscaleIcon = isGrayscaleIcon(context, iconDrawable)
|
val isGrayscaleIcon = notifyInstance.isGrayscaleIcon(iconDrawable)
|
||||||
|
|
||||||
/** 自定义默认小图标 */
|
/** 自定义默认小图标 */
|
||||||
var customIcon: Bitmap? = null
|
var customIcon: Bitmap? = null
|
||||||
@@ -336,7 +325,7 @@ class HookEntry : YukiHookXposedInitProxy {
|
|||||||
background = DrawableBuilder().rounded().solidColor(iconColor).build()
|
background = DrawableBuilder().rounded().solidColor(iconColor).build()
|
||||||
} else iconImageView.apply {
|
} else iconImageView.apply {
|
||||||
/** 重新设置图标 */
|
/** 重新设置图标 */
|
||||||
setImageDrawable(expandedNf.compatNotifyIcon(context, iconDrawable))
|
setImageDrawable(notifyInstance.compatNotifyIcon(context, iconDrawable))
|
||||||
/** 设置裁切到边界 */
|
/** 设置裁切到边界 */
|
||||||
clipToOutline = true
|
clipToOutline = true
|
||||||
/** 设置一个圆角轮廓裁切 */
|
/** 设置一个圆角轮廓裁切 */
|
||||||
@@ -374,7 +363,7 @@ class HookEntry : YukiHookXposedInitProxy {
|
|||||||
notifyInstance.notification.smallIcon.loadDrawable(context)
|
notifyInstance.notification.smallIcon.loadDrawable(context)
|
||||||
|
|
||||||
/** 判断是否不是灰度图标 */
|
/** 判断是否不是灰度图标 */
|
||||||
val isNotGrayscaleIcon = !isGrayscaleIcon(context, iconDrawable)
|
val isNotGrayscaleIcon = !notifyInstance.isGrayscaleIcon(iconDrawable)
|
||||||
|
|
||||||
/** 获取目标修复彩色图标的 APP */
|
/** 获取目标修复彩色图标的 APP */
|
||||||
var isTargetFixApp = false
|
var isTargetFixApp = false
|
||||||
@@ -427,9 +416,9 @@ class HookEntry : YukiHookXposedInitProxy {
|
|||||||
* 因为之前的 MIUI 版本的状态栏图标颜色会全部设置为白色的 - 找不到修复的地方就直接判断版本了
|
* 因为之前的 MIUI 版本的状态栏图标颜色会全部设置为白色的 - 找不到修复的地方就直接判断版本了
|
||||||
* 对于之前没有通知图标色彩判断功能的版本判断是 MIUI 样式就停止 Hook
|
* 对于之前没有通知图标色彩判断功能的版本判断是 MIUI 样式就停止 Hook
|
||||||
*/
|
*/
|
||||||
replaceAny { if (hasIgnoreStatusBarIconColor()) false else isShowMiuiStyle() }
|
replaceAny { if (hasIgnoreStatusBarIconColor) false else isShowMiuiStyle() }
|
||||||
}
|
}
|
||||||
if (hasIgnoreStatusBarIconColor())
|
if (hasIgnoreStatusBarIconColor)
|
||||||
injectMember {
|
injectMember {
|
||||||
method {
|
method {
|
||||||
name = "ignoreStatusBarIconColor"
|
name = "ignoreStatusBarIconColor"
|
||||||
@@ -460,7 +449,7 @@ class HookEntry : YukiHookXposedInitProxy {
|
|||||||
}
|
}
|
||||||
afterHook {
|
afterHook {
|
||||||
/** 对于之前没有通知图标色彩判断功能的版本判断是 MIUI 样式就停止 Hook */
|
/** 对于之前没有通知图标色彩判断功能的版本判断是 MIUI 样式就停止 Hook */
|
||||||
if (hasIgnoreStatusBarIconColor() || !isShowMiuiStyle())
|
if (hasIgnoreStatusBarIconColor || !isShowMiuiStyle())
|
||||||
(globalContext ?: args[0] as Context).also { context ->
|
(globalContext ?: args[0] as Context).also { context ->
|
||||||
hookSmallIconOnSet(
|
hookSmallIconOnSet(
|
||||||
context = context,
|
context = context,
|
||||||
@@ -471,35 +460,8 @@ class HookEntry : YukiHookXposedInitProxy {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
findClass(StatusBarIconViewClass).hook {
|
|
||||||
/** 修复通知图标为彩色 - MIPUSH 修复 */
|
|
||||||
injectMember {
|
|
||||||
method { name = "updateIconColor" }
|
|
||||||
afterHook {
|
|
||||||
/** 获取自身 */
|
|
||||||
val iconImageView = instance<ImageView?>() ?: return@afterHook
|
|
||||||
|
|
||||||
/** 获取通知实例 */
|
|
||||||
val expandedNf = field { name = "mNotification" }.of<StatusBarNotification>(instance)
|
|
||||||
|
|
||||||
/** 对于之前没有通知图标色彩判断功能的版本判断是 MIUI 样式就停止 Hook */
|
|
||||||
if (!hasIgnoreStatusBarIconColor() && isShowMiuiStyle()) return@afterHook
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 强制重新进行设置图标
|
|
||||||
* 防止 MIPUSH 不生效
|
|
||||||
*/
|
|
||||||
if (expandedNf?.isXmsf == true)
|
|
||||||
hookSmallIconOnSet(
|
|
||||||
context = iconImageView.context,
|
|
||||||
expandedNf,
|
|
||||||
expandedNf.notification?.smallIcon?.loadDrawable(iconImageView.context),
|
|
||||||
) { icon -> iconImageView.setImageBitmap(icon) }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (NotificationHeaderViewWrapperInjectorClass.hasClass)
|
if (NotificationHeaderViewWrapperInjectorClass.hasClass)
|
||||||
findClass(NotificationHeaderViewWrapperInjectorClass).hook {
|
NotificationHeaderViewWrapperInjectorClass.hook {
|
||||||
/** 修复下拉通知图标自动设置回 APP 图标的方法 */
|
/** 修复下拉通知图标自动设置回 APP 图标的方法 */
|
||||||
injectMember {
|
injectMember {
|
||||||
var isUseLegacy = false
|
var isUseLegacy = false
|
||||||
@@ -539,30 +501,30 @@ class HookEntry : YukiHookXposedInitProxy {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
findClass(NotificationHeaderViewWrapperClass).hook {
|
NotificationHeaderViewWrapperClass.hook {
|
||||||
/** 之前的版本解决方案 */
|
/** 之前的版本解决方案 */
|
||||||
injectMember {
|
injectMember {
|
||||||
method { name = "handleHeaderViews" }
|
method { name = "handleHeaderViews" }
|
||||||
afterHook {
|
afterHook {
|
||||||
/** 对于之前没有通知图标色彩判断功能的版本判断是 MIUI 样式就停止 Hook */
|
/** 对于之前没有通知图标色彩判断功能的版本判断是 MIUI 样式就停止 Hook */
|
||||||
if (!hasIgnoreStatusBarIconColor() && isShowMiuiStyle()) return@afterHook
|
if (!hasIgnoreStatusBarIconColor && isShowMiuiStyle()) return@afterHook
|
||||||
|
|
||||||
/** 获取小图标 */
|
/** 获取小图标 */
|
||||||
val iconImageView = field {
|
val iconImageView =
|
||||||
classSet = NotificationHeaderViewWrapperClass.clazz
|
NotificationHeaderViewWrapperClass.clazz
|
||||||
name = "mIcon"
|
.field { name = "mIcon" }.of<ImageView>(instance) ?: return@afterHook
|
||||||
}.of<ImageView>(instance) ?: return@afterHook
|
|
||||||
/** 从父类中得到 mRow 变量 - [ExpandableNotificationRowClass] */
|
/**
|
||||||
field {
|
* 从父类中得到 mRow 变量 - [ExpandableNotificationRowClass]
|
||||||
classSet = NotificationViewWrapperClass.clazz
|
* 获取其中的得到通知方法
|
||||||
name = "mRow"
|
*/
|
||||||
}.get(instance).apply {
|
val expandedNf =
|
||||||
/** 获取其中的得到通知方法 */
|
ExpandableNotificationRowClass.clazz
|
||||||
val expandedNf =
|
.method { name = "getStatusBarNotification" }
|
||||||
ExpandableNotificationRowClass.clazz.method(name = "getStatusBarNotification")
|
.get(NotificationViewWrapperClass.clazz.field { name = "mRow" }.get(instance).self)
|
||||||
?.call<StatusBarNotification>(instance = self)
|
.invoke<StatusBarNotification>()
|
||||||
/** 执行 Hook */
|
/** 执行 Hook */
|
||||||
hookNotifyIconOnSet(iconImageView.context, expandedNf, iconImageView)
|
hookNotifyIconOnSet(iconImageView.context, expandedNf, iconImageView)
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -983,8 +983,34 @@ object IconPackParams {
|
|||||||
"XJeAll4JkTEwEPid8h/M3cBkYECu3zfAJGqL0qol0GGgNzZ3pYEmAHuAdyWG/gP+SEy/qDCe4jTw\n" +
|
"XJeAll4JkTEwEPid8h/M3cBkYECu3zfAJGqL0qol0GGgNzZ3pYEmAHuAdyWG/gP+SEy/qDCe4jTw\n" +
|
||||||
"U58FKAg0EthI7T5xxRPgGLAg1IeJESYFMFK1F/75PwxI0vPM8Ui19+s9MfWbaKKJcnwCIC7Ye698\n" +
|
"U58FKAg0EthI7T5xxRPgGLAg1IeJESYFMFK1F/75PwxI0vPM8Ui19+s9MfWbaKKJcnwCIC7Ye698\n" +
|
||||||
"lvkAAAAASUVORK5CYII=").bitmap,
|
"lvkAAAAASUVORK5CYII=").bitmap,
|
||||||
iconColor = 0xff63ad59.toInt(),
|
iconColor = 0xff29cbb6.toInt(),
|
||||||
contributorName = "fankes"
|
contributorName = "fankes、naicfeng"
|
||||||
|
),
|
||||||
|
IconDataBean(
|
||||||
|
isEnabled = true,
|
||||||
|
isEnabledAll = false,
|
||||||
|
appName = "小米音乐",
|
||||||
|
packageName = "com.miui.player",
|
||||||
|
iconBitmap = ("iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAARzQklUCAgI\n" +
|
||||||
|
"CHwIZIgAAAOBSURBVGiB7ZpdqE1ZAMf/azCahrxwY0LqUpgZ6YrCPJBIRJTrwQMejY/y5oUi4/q+\n" +
|
||||||
|
"zMPUECEe6FKUPJB8PLjiwc3wIpOP8T0vY540pZ+Hs7e2ffbeZ33d+zLnX7tz1mqt/8fae6+z1t5H\n" +
|
||||||
|
"aqKJ/weA6T79+veCkR8kTZQ0OnMg6amkZ8lnjzHmaQnFEkndrrpRggAzJC1Kju8t+/wp6Yak68aY\n" +
|
||||||
|
"k0ldP0njfDwEBQHmSFonaalH91ZJryTdytStlGcQLwDTgBP44QFwBFhSwHs5adPq6sn5jACrJB2v\n" +
|
||||||
|
"aPKvpL8kvcgcabnHGPO2hHe9pLlJcbWkLa7erAFsKBnlrYG8rcCzHOeBWL7zYpcqLpfQIBdKeI/E\n" +
|
||||||
|
"8p8KnW1w3T8EhnhyH2rAfSZWiK0NhFJs8+D+xZJ7fWiIxZZCAB+BHx24bzlwvwHGhwS55iAGcMyC\n" +
|
||||||
|
"sz0x5opTviHWeogBLKzg3OTJmWK1a4hhwGNPsZsFfMuBm4EhAK64Bvk5UHBNjq/RrOeCKUWevyrJ\n" +
|
||||||
|
"MtspeT1+BYZmyrsC+bJYZtUKGBxp5HbmeDsj8f5jG6Q9kiBAW4Z3OH6zVRHm5X0XXVptBXW+2Jd+\n" +
|
||||||
|
"Mca8UbxL7Lt8RVEQr6VGCWaTWa4bYw5KuhuBd0S+oreDSFL+h2xPBM4+PyOS9C2wPS0YY85KOhfI\n" +
|
||||||
|
"aXVGBgaKFGEzkB3F/YF8dYNdFMRuenPH53WYMaZb0sEArvf5ir4MMg+YnykfkFS47bVAXZCiPXto\n" +
|
||||||
|
"kHuSrqs2O70ua2SMeQ7sk7TXQ6MuSB3wX/UC7AAG2boB+gN3PHQab62BUZ4h2m0D5PRWeGhNsCV3\n" +
|
||||||
|
"3VB5hcjonXfQul3EUbb6vezgo8sY0+Vu/wu4PPq5aN0SaAM+WI7QLHffhZoXLbQ+kFmI2hJ32KSI\n" +
|
||||||
|
"ESLR+81CrsOH2Gq7GzFIo8dOj4FhZf3L7hEZY/6W1BnLaAR0Jp78AHQ1GKlY90jVc67QyeSzyMsK\n" +
|
||||||
|
"keBlOTClgv9ljAyp0LgKofvAmED+qgfkcV/8AGMrxK4CX3vyHq3gHRs1REa0pWL0zgMzHbimAt0l\n" +
|
||||||
|
"XJeAll4JkTEwEPid8h/M3cBkYECu3zfAJGqL0qol0GGgNzZ3pYEmAHuAdyWG/gP+SEy/qDCe4jTw\n" +
|
||||||
|
"U58FKAg0EthI7T5xxRPgGLAg1IeJESYFMFK1F/75PwxI0vPM8Ui19+s9MfWbaKKJcnwCIC7Ye698\n" +
|
||||||
|
"lvkAAAAASUVORK5CYII=").bitmap,
|
||||||
|
iconColor = 0xff29cbb6.toInt(),
|
||||||
|
contributorName = "naicfeng、fankes"
|
||||||
),
|
),
|
||||||
IconDataBean(
|
IconDataBean(
|
||||||
isEnabled = true,
|
isEnabled = true,
|
||||||
@@ -1829,23 +1855,37 @@ object IconPackParams {
|
|||||||
"IiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RS\n" +
|
"IiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RS\n" +
|
||||||
"ZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpD\n" +
|
"ZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpD\n" +
|
||||||
"cmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJ\n" +
|
"cmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJ\n" +
|
||||||
"RD0ieG1wLmlpZDpFRDc1OTdFMDhGMzExMUVDQUM1QUNCM0FGODcxOTZFMiIgeG1wTU06RG9jdW1l\n" +
|
"RD0ieG1wLmlpZDoyMTU2MUMyOThGOEUxMUVDOTQ5NUZGMTVFMEJEOUZDNiIgeG1wTU06RG9jdW1l\n" +
|
||||||
"bnRJRD0ieG1wLmRpZDpFRDc1OTdFMThGMzExMUVDQUM1QUNCM0FGODcxOTZFMiI+IDx4bXBNTTpE\n" +
|
"bnRJRD0ieG1wLmRpZDoyMTU2MUMyQThGOEUxMUVDOTQ5NUZGMTVFMEJEOUZDNiI+IDx4bXBNTTpE\n" +
|
||||||
"ZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkVENzU5N0RFOEYzMTExRUNBQzVB\n" +
|
"ZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjIxNTYxQzI3OEY4RTExRUM5NDk1\n" +
|
||||||
"Q0IzQUY4NzE5NkUyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkVENzU5N0RGOEYzMTExRUNB\n" +
|
"RkYxNUUwQkQ5RkM2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjIxNTYxQzI4OEY4RTExRUM5\n" +
|
||||||
"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\n" +
|
||||||
"QmCC").bitmap,
|
"dZymLS/bFQltPczVw99Ca6uajGY466aKhNaOBDJUl9LpWji20CY5KW91hdZdYJkKjWHPXWESO8ti\n" +
|
||||||
|
"MkybrCyjzRcVpJne2lTBDy92W7SMJ+DIhMczs7RJShttTweM1xvBFlVowNOIV8EZMUbS3JP3OXS0\n" +
|
||||||
|
"c6BWcXzYMbLes64B2mZXy1u4kv4jYBddC5pEgZ/AaIgynbV2hzz3Art+iNctnMxWeBgclhlHaVsr\n" +
|
||||||
|
"r5to+5RpvVoeGMjCv0fsoS94tp7ZRN2qNmUrPMuG1TFH26TDxvbagCcdtarAOW6MXGLi9B3wNNNk\n" +
|
||||||
|
"TqTMKoaqlajjnjkufSrVVPAW+CykzIzYcVoxtq8MuGOrcTiSi2it57gVtXEuJ9R31bY1bG54Fnwk\n" +
|
||||||
|
"d6v8ez7C+ZzDEWP78rjHQYFowUKMWd8+e5XDkSDOSUrA7pp2xHeYwlrOsk/4nAlEOPleSBnToy86\n" +
|
||||||
|
"bLL2rlL3zHMzaebwSYcj1SEVdXk6EXey7AZ3h/xW7XDE2D6R5j/nVQw3qkGrlfnIEFOllVM8XfGR\n" +
|
||||||
|
"6ohTzUY1Zoztk6arsiYPs+JmkfPrQ+aSnCMUfmbrV5Acs9tv4rkz3KzdwzCTE+LtYE9EHVbqaJts\n" +
|
||||||
|
"LGN7NmAaPMtZs1m0iJk1v/NovTdUy0fJCaJlm3IkTLap3hqg7Qtptsi8Y6/wgGcYNSaw1qr3DLdO\n" +
|
||||||
|
"da+ftuflYPyaYWbFnACu8aggiXccPjrW0CYrWdr8j42VGYwZHg7YFugBrxSpoJ0pWc7Q0zw6HXP0\n" +
|
||||||
|
"3ma+CMoJJ7Z7ONKjIiRDm52HD3tAXp0lbVDP9Hjuu/tBgyhnDhQGPcs+qercoM7Y8rQ1dM/+Pjgu\n" +
|
||||||
|
"rs0ib796JusZLttF8rCZcJNnWV3HfrXgPE5byzoOagZfeLSqOemoF+VWgwGPcn3g5lKPg+Ie0DVw\n" +
|
||||||
|
"bFQ4cr6dI/ocy/HrOWCjDugyYuFY1gHdFXlkuuQPsZfUa4Ul9aLninn1luTL0I/5MnRQvAydEVmt\n" +
|
||||||
|
"kttq+zK0lXub+5J4GbpkXk//bz8YuGw/4SjHkSXzUU2YU3Upv8+cxlIJfuaUtCP/2YdnfwkwABDy\n" +
|
||||||
|
"UyV45nFEAAAAAElFTkSuQmCC").bitmap,
|
||||||
iconColor = 0xffa90000.toInt(),
|
iconColor = 0xffa90000.toInt(),
|
||||||
contributorName = "fankes、naicfeng"
|
contributorName = "fankes、naicfeng"
|
||||||
),
|
),
|
||||||
@@ -2070,26 +2110,20 @@ object IconPackParams {
|
|||||||
isEnabledAll = false,
|
isEnabledAll = false,
|
||||||
appName = "哔哩哔哩漫画",
|
appName = "哔哩哔哩漫画",
|
||||||
packageName = "com.bilibili.comic",
|
packageName = "com.bilibili.comic",
|
||||||
iconBitmap = ("iVBORw0KGgoAAAANSUhEUgAAADcAAAAyCAYAAAD4FkP1AAAAAXNSR0IArs4c6QAAAARzQklUCAgI\n" +
|
iconBitmap = ("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\n" +
|
"bwAAAABJRU5ErkJggg==").bitmap,
|
||||||
"VTCbCREZisgA+EDWhUr9QpNb31LOp37LM1UVe5BQUgrEBfYTkUcRORORWNPHRx7SyzSCKpdgIeVS\n" +
|
|
||||||
"vLdnnXSN0lvi82KOIYRJJbVuCyGkXIrVF17shBmRUX8VXoAT79giFX8iL0dTlHCgmedwn5zz/WMy\n" +
|
|
||||||
"xVKs/QIclvLbCr2qBm0UjZQDei4Mr4Fr0irkezLFytERzTtDpv3INSC8tkyl5gEZnafmxhVwFmBk\n" +
|
|
||||||
"651+6TMA+8uqiEyt/wc0bTP8SBw3A45j9aKIjEsCzjBCtU7NGVKure7zjMxTN4njj4DHJb8X3lEM\n" +
|
|
||||||
"47/B/3Q0+M/XjIzihxuo7Atoo/s1IcuXKTDepq+0MeV8N/s9xLxDvFGvpOAfWYvqI/JlEOsAAAAA\n" +
|
|
||||||
"SUVORK5CYII=").bitmap,
|
|
||||||
iconColor = 0xffd3618a.toInt(),
|
iconColor = 0xffd3618a.toInt(),
|
||||||
contributorName = "fankes"
|
contributorName = "fankes"
|
||||||
),
|
),
|
||||||
@@ -2937,36 +2971,31 @@ object IconPackParams {
|
|||||||
isEnabledAll = false,
|
isEnabledAll = false,
|
||||||
appName = "Jump",
|
appName = "Jump",
|
||||||
packageName = "com.vgjump.jump",
|
packageName = "com.vgjump.jump",
|
||||||
iconBitmap = ("iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ\n" +
|
iconBitmap = ("iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAARzQklUCAgI\n" +
|
||||||
"bWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdp\n" +
|
"CHwIZIgAAAUDSURBVGiB1ZpriFVVGIbfz0uRmtKUVk5ZImoqkanlJUOLoAtdzKxMoqKSNKOIqIik\n" +
|
||||||
"bj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6\n" +
|
"+mH5IwoJycgiSDTGICEwLamEHG+ZTmqmkl1MJ0vzxjg6mT792HuPaz73mfHMOfucfP/MrPdd37e/\n" +
|
||||||
"eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2\n" +
|
"d6+z1zp7rWMqEoD+koZLGijpMkmVks6R1DHuUi9pn6Q/JG2RVCNppZl9X6waWg2gL/AK8B2tx0Zg\n" +
|
||||||
"MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJo\n" +
|
"OnBlOQxcDXxUQPG58CkwuhQGzgc+yMCAx3ygZ1YmxgP7S2AiQQMwqdgmZpbQgEdVsUwsLqOJBCuB\n" +
|
||||||
"dHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlw\n" +
|
"s5qr01owUS1pRFHuSOHYJGmwmR1JE9vkigKW6P9jQpL6S6rOJaYaAd6WdENWFRWAQcDHp9QTGFPO\n" +
|
||||||
"dGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAv\n" +
|
"h+EU8Ziv25yJTpL2S2pblPuXLSrNrDZp+I/WbJ0eJiRpbthoHBGgr6TNJS+nMIw0s2qp6Yi8XqZi\n" +
|
||||||
"IiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RS\n" +
|
"CsEbyT8mScBFkn4vWzmF4QozW5+MyKNlLaUwTJZOjMgWSX0C8VdJe4N2d0kXlKqyPLHHzLoa0EvS\n" +
|
||||||
"ZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpD\n" +
|
"T04cZmarkgawWNKNJS0vPwxpJ+m6FMEbuyb+u1DSOkWTRIOk8ZL6xVqdpLfi/48rGsWHgxxVktpL\n" +
|
||||||
"cmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJ\n" +
|
"GpujmDclPSSpwvHbJE1TtL41xLnbSuomaaikSZIeETDLrZq/hVmAEYHWzmk/Btocp90WJg34NEyM\n" +
|
||||||
"RD0ieG1wLmlpZDozNDNENkZGMDhGMzMxMUVDQUU3NkE0MENFRUUzRUI4RSIgeG1wTU06RG9jdW1l\n" +
|
"tQUp2ss5jCf57gDmCfjKBc53HZ+K+RrHj3Jxtzp9WaBNC/gZLm5moD2dYuSWQO9J9H4/zF1rnIDN\n" +
|
||||||
"bnRJRD0ieG1wLmRpZDozNDNENkZGMThGMzMxMUVDQUU3NkE0MENFRUUzRUI4RSI+IDx4bXBNTTpE\n" +
|
"LnCK61QV89MdPy2IOQC0DbRzgeOxVue0LsDRWPvc5RyQYqRryk0FCBfz6QL+dIGXuOS7Y/5ex38T\n" +
|
||||||
"ZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjM0M0Q2RkVFOEYzMzExRUNBRTc2\n" +
|
"xLzntAmB9rgcgPeBA56PtdogdoPTlsb8hwHXA9gn4GAQuNoFXhVovQO+0pm/3sUlOyy1SgHRiPXI\n" +
|
||||||
"QTQwQ0VFRTNFQjhFIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjM0M0Q2RkVGOEYzMzExRUNB\n" +
|
"oc0J8s4K+LOBncC7rn8NgDdyk+v0TszvcvzEIGaH09oA9bE2JuA7ApemFN6faAlI2g8GuSe4+M5B\n" +
|
||||||
"RTc2QTQwQ0VFRTNFQjhFIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBt\n" +
|
"+zxgUdyvTsCOuLHcXaA9cDjWtjvt7uBi45w2OeY3Ov5JomepfcB1Bo4ATwRc9yD3hSnGK4Bngb1B\n" +
|
||||||
"ZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+JLQbCgAAAvxJREFUeNrsmVtIVUEUhs/RzDJ76Ka9dTCC\n" +
|
"v7pwOuzmAl4ItKMED12s3w+MdVy3uLAjQD+nbYtzzQm4dTH3muu7A/jXcbcDC4FDnIy/k+n3PhfU\n" +
|
||||||
"8ME0jIIosYtUUkFRVOBL0FPZ7cEiUCR6iK4vhRU9RJcHw8KsoIyIhG5geCOKLlSCFmWkVBZa7v6J\n" +
|
"IRiNBLPUDIimxi1xXz+6D7hcw4BXg7Z/NlcDXzuultzYKOCkL4zk3gKagXtIgV7AVKJRSFAPLCda\n" +
|
||||||
"tel3sfcpKkhkDXyw51+zZubfM7P35pyo53mRwVASIoOkmBEzYkbMiBkxI2bEjJgRM2JGzMhANLIf\n" +
|
"FLtw8szocYhoArgH+DbmRgfXqGghfkGy+bY2CHq+haBjRDPFKpqu7Lmwt+UuHKfpLmY90Il4raDp\n" +
|
||||||
"PAMPQSvIH8hGhsSJ5YAMqg/7wzGiwPtfRoaCNKq/AfVyXQTyQDdIAbvBU4nFwDbQA0aCq6CS+ikB\n" +
|
"5JKGlwy4XNJ6Sc9J2iBpUXMfoRKhQdH70RmSUPTN+8xm+o9KHG+XdHHm5WWDg5IqkhereeWspEAs\n" +
|
||||||
"zeBKwJizwFywE/SpWDFYDJLACNlJXaAdnAUXI+7HhwAmgFfez3JJ9ETwhPRuEKO8rV7/spFiuaLV\n" +
|
"MLNjyYj0UXSKdDpihJmtaCNJZrZV0tLy1tMq/GBmK6SmuyjPlKmYQtBYc6MRM1sr6bOylNM6rDGz\n" +
|
||||||
"BoyXCh5LfLyKuTEbvPDyFZSHGZkHeqhxuejTVCenKCcJ1FHsPZhM8SrRXb+z1XgXKG+hik0Cbyle\n" +
|
"xtcAv2XaVdJfJS+pdehtZo2v5E22TM1st06PraEXQxNSjoMe4BNJd5akpPyxzMyu9WTOEytgjaTB\n" +
|
||||||
"AbaoG9oeZmSXmnCB6KVKX0c52aCXYtdAVGL56sZcp7yDqs89ai7LKPYF5IheTHp90BlJBguo3gFa\n" +
|
"mZaUP36WNCDt1CrniZWiLaBNmZWUP3ZKGpr30ZuZNUgaIml1rj4lxFZJg8xsT0FZyOZXDqeKJUCH\n" +
|
||||||
"5DqXdLdHb1J9kTpztXTIS2V/+2UOKBBtsxo/T9V5zCbQANLBWtIPBa2G3j41tHWaSb9BOcPBA4q5\n" +
|
"4tyPyMwUTmzxlApTi2bAmelL9HuRrPElMCgTE87QzcAXGRioBu7K3ECKoeFEb5i/FFB8LTAbKOg4\n" +
|
||||||
"u58lsZUhe7sNdAXo70AG9V2ttnKWOjMVP35kDDByQnW8RvR0tVf3Uk6hyrkr2yo5wPxl1faj9NVG\n" +
|
"vNlfPuRpaqSiKXugorOWSkn+IT0saZeiWahG0nJJ1Wb2T6HX/w/46hXjH66RIAAAAABJRU5ErkJg\n" +
|
||||||
"2goa87VofeATtfksWz0SZGS+JPjlOUiR2DjQQbFq0UeB+2pySyS2SenTxRyvRJm0vUfaEZqPLq1g\n" +
|
"gg==").bitmap,
|
||||||
"H5jKc9eP3BcqaQPF3QTuUOwbuA0eqZxj0j5TDqdfblFfO0Q7T9oZavsBjAXbSesUY2lBDyj/wj19\n" +
|
|
||||||
"WtSE3B1KUAmFsqRBxa3kAbW6L0Meq24yJ8FE0tZT23Oy0jWkVYU8YfsZKQKNlOSWfkpI0kxwGjTJ\n" +
|
|
||||||
"/nfn4ahMXLd1L7fD4Dg9isOYASrBcqnH5GXnl5LfMeKfAf8Orv7FoI7RYIy8lSP/gERVXyo3q062\n" +
|
|
||||||
"ZXa8/Kj6f2QVyARlA+CDNlU+VHvlw7Mz7pep/dFjRsyIGTEjZsSMmBEzYkbMiBkxI39XvgswAC6J\n" +
|
|
||||||
"7TsnD1fXAAAAAElFTkSuQmCC").bitmap,
|
|
||||||
iconColor = 0xffff3a48.toInt(),
|
iconColor = 0xffff3a48.toInt(),
|
||||||
contributorName = "sddpljx、naicfeng"
|
contributorName = "sddpljx、naicfeng"
|
||||||
),
|
),
|
||||||
@@ -3073,62 +3102,32 @@ object IconPackParams {
|
|||||||
"IiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RS\n" +
|
"IiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RS\n" +
|
||||||
"ZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpD\n" +
|
"ZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpD\n" +
|
||||||
"cmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJ\n" +
|
"cmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJ\n" +
|
||||||
"RD0ieG1wLmlpZDpENzI5MzQ4RDhGM0ExMUVDODg5OEEzNzE1NTJGMDhBMyIgeG1wTU06RG9jdW1l\n" +
|
"RD0ieG1wLmlpZDo2Qjk1MzRGRDhGOEUxMUVDOTZEM0FDQjI4OTNENjZDOSIgeG1wTU06RG9jdW1l\n" +
|
||||||
"bnRJRD0ieG1wLmRpZDpENzI5MzQ4RThGM0ExMUVDODg5OEEzNzE1NTJGMDhBMyI+IDx4bXBNTTpE\n" +
|
"bnRJRD0ieG1wLmRpZDo2Qjk1MzRGRThGOEUxMUVDOTZEM0FDQjI4OTNENjZDOSI+IDx4bXBNTTpE\n" +
|
||||||
"ZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkQ3MjkzNDhCOEYzQTExRUM4ODk4\n" +
|
"ZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjZCOTUzNEZCOEY4RTExRUM5NkQz\n" +
|
||||||
"QTM3MTU1MkYwOEEzIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkQ3MjkzNDhDOEYzQTExRUM4\n" +
|
"QUNCMjg5M0Q2NkM5IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjZCOTUzNEZDOEY4RTExRUM5\n" +
|
||||||
"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").bitmap,
|
||||||
"R4H3lOK6hb6JWqtBmk6f+btVF1cwHdSneOgEOGXk58tTFR3AhEO8q49yPiEd6hrZNsttXKuBmr+X\n" +
|
|
||||||
"Yq3RyN93eMshalMjicZM0R1HQwIcyjqW5zuONako6lGOlKc9znTopUIG48Kcyl1044N033We5IMI\n" +
|
|
||||||
"yRvF+18UO0ofplMJ0hWHjL//leFGZk0W49Ob2ohRLu5m6eRpeO3YYhti0ZhQtlP5n5HxJo0pZYP+\n" +
|
|
||||||
"fDkzJUlcqv/m9Of7ym8BBgCXcsuULxM98wAAAABJRU5ErkJggg==").bitmap,
|
|
||||||
iconColor = 0xffec1a1c.toInt(),
|
iconColor = 0xffec1a1c.toInt(),
|
||||||
contributorName = "naicfeng"
|
contributorName = "naicfeng"
|
||||||
),
|
),
|
||||||
IconDataBean(
|
|
||||||
isEnabled = true,
|
|
||||||
isEnabledAll = false,
|
|
||||||
appName = "小米音乐",
|
|
||||||
packageName = "com.miui.player",
|
|
||||||
iconBitmap = ("iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAARzQklUCAgI\n" +
|
|
||||||
"CHwIZIgAAAOBSURBVGiB7ZpdqE1ZAMf/azCahrxwY0LqUpgZ6YrCPJBIRJTrwQMejY/y5oUi4/q+\n" +
|
|
||||||
"zMPUECEe6FKUPJB8PLjiwc3wIpOP8T0vY540pZ+Hs7e2ffbeZ33d+zLnX7tz1mqt/8fae6+z1t5H\n" +
|
|
||||||
"aqKJ/weA6T79+veCkR8kTZQ0OnMg6amkZ8lnjzHmaQnFEkndrrpRggAzJC1Kju8t+/wp6Yak68aY\n" +
|
|
||||||
"k0ldP0njfDwEBQHmSFonaalH91ZJryTdytStlGcQLwDTgBP44QFwBFhSwHs5adPq6sn5jACrJB2v\n" +
|
|
||||||
"aPKvpL8kvcgcabnHGPO2hHe9pLlJcbWkLa7erAFsKBnlrYG8rcCzHOeBWL7zYpcqLpfQIBdKeI/E\n" +
|
|
||||||
"8p8KnW1w3T8EhnhyH2rAfSZWiK0NhFJs8+D+xZJ7fWiIxZZCAB+BHx24bzlwvwHGhwS55iAGcMyC\n" +
|
|
||||||
"sz0x5opTviHWeogBLKzg3OTJmWK1a4hhwGNPsZsFfMuBm4EhAK64Bvk5UHBNjq/RrOeCKUWevyrJ\n" +
|
|
||||||
"MtspeT1+BYZmyrsC+bJYZtUKGBxp5HbmeDsj8f5jG6Q9kiBAW4Z3OH6zVRHm5X0XXVptBXW+2Jd+\n" +
|
|
||||||
"Mca8UbxL7Lt8RVEQr6VGCWaTWa4bYw5KuhuBd0S+oreDSFL+h2xPBM4+PyOS9C2wPS0YY85KOhfI\n" +
|
|
||||||
"aXVGBgaKFGEzkB3F/YF8dYNdFMRuenPH53WYMaZb0sEArvf5ir4MMg+YnykfkFS47bVAXZCiPXto\n" +
|
|
||||||
"kHuSrqs2O70ua2SMeQ7sk7TXQ6MuSB3wX/UC7AAG2boB+gN3PHQab62BUZ4h2m0D5PRWeGhNsCV3\n" +
|
|
||||||
"3VB5hcjonXfQul3EUbb6vezgo8sY0+Vu/wu4PPq5aN0SaAM+WI7QLHffhZoXLbQ+kFmI2hJ32KSI\n" +
|
|
||||||
"ESLR+81CrsOH2Gq7GzFIo8dOj4FhZf3L7hEZY/6W1BnLaAR0Jp78AHQ1GKlY90jVc67QyeSzyMsK\n" +
|
|
||||||
"keBlOTClgv9ljAyp0LgKofvAmED+qgfkcV/8AGMrxK4CX3vyHq3gHRs1REa0pWL0zgMzHbimAt0l\n" +
|
|
||||||
"XJeAll4JkTEwEPid8h/M3cBkYECu3zfAJGqL0qol0GGgNzZ3pYEmAHuAdyWG/gP+SEy/qDCe4jTw\n" +
|
|
||||||
"U58FKAg0EthI7T5xxRPgGLAg1IeJESYFMFK1F/75PwxI0vPM8Ui19+s9MfWbaKKJcnwCIC7Ye698\n" +
|
|
||||||
"lvkAAAAASUVORK5CYII=").bitmap,
|
|
||||||
iconColor = 0xff63ad59.toInt(),
|
|
||||||
contributorName = "naicfeng、fankes"
|
|
||||||
),
|
|
||||||
IconDataBean(
|
IconDataBean(
|
||||||
isEnabled = true,
|
isEnabled = true,
|
||||||
isEnabledAll = false,
|
isEnabledAll = false,
|
||||||
@@ -3341,7 +3340,156 @@ object IconPackParams {
|
|||||||
iconColor = 0xff5cc8c6.toInt(),
|
iconColor = 0xff5cc8c6.toInt(),
|
||||||
contributorName = "fankes"
|
contributorName = "fankes"
|
||||||
),
|
),
|
||||||
|
IconDataBean(
|
||||||
|
isEnabled = true,
|
||||||
|
isEnabledAll = false,
|
||||||
|
appName = "斗鱼",
|
||||||
|
packageName = "air.tv.douyu.android",
|
||||||
|
iconBitmap = ("iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAARzQklUCAgI\n" +
|
||||||
|
"CHwIZIgAAAVcSURBVGiB1Zp7zNZjGMc/F29JpRwih8WSkVNT/dG8ySFmElmGiGVjw8JG/sgYs8gw\n" +
|
||||||
|
"M21mzGmsN1tGjsOwyZmcErJYGw2ziurtsA76+OP+vfX09HvOz9Ob7/Zsv999X/d1X9/7vn7XdR8e\n" +
|
||||||
|
"1L7q8eo+/M+g9lNHqP3JSOzb3UbVC3WAehJqr+42plGovWMXdLI30B84AGgD1gErgc6I2FIkuz8w\n" +
|
||||||
|
"COgNbAR+j4i/qumnaUTUA4E+mbEnA+3AscAJQD+gR4H4emAV8BOwANgbOBMYTCLRhU3AUuAzYF5E\n" +
|
||||||
|
"vNose/MInK7Od9fgW/XiPDsamhH1auDJ7PU5YD5wONAJTAZGNKK/DOZExOWFBXUTUScDHcBaYCKw\n" +
|
||||||
|
"P8k9jgCWAF8A40iEWoFvgNERsaGu1upeakc21X+rh6jnlXCFm9XvW+lq9ZI4UV1aoGhWQd3CgvIP\n" +
|
||||||
|
"1LnqRerMFhJRfRZShKmWxFjgXXZ0x/fUo4FpwIFZ2TLgzIjYnLUbXteoVY8p6rdVEVFPBd7LqVoL\n" +
|
||||||
|
"jAKuLSjr0UUiw8D6bayIDaRvZVNFSXVImWl9Uz0yp/xL9W71qOy52fhevcqUuypDbVP/qKD0xszg\n" +
|
||||||
|
"BUXlL5q+j41NJnFHnq1lw6/6MnBBFZxvAF4BziVl5z+BfYFbSVm7GJtJ7tCnCt1dWANcEhFv19AG\n" +
|
||||||
|
"1Ik1jtQy9V1Tlv+1guwEdXGN+i+vbPXOJNrUzho7qhYPZ31Uctli5LpUJSJ3tYCA6sqCPlbX2Pan\n" +
|
||||||
|
"cjbv9I2obSR/zPPtRrAVGE5a8Z4BvFWHjkMj4s+8ij1yyq6i+SQE2iPiO2Am9ZGAtCXIxQ4JUQ3g\n" +
|
||||||
|
"njo7KYWNwPCIWJy9L29AV8m8kTcjnzXQUTEWASMjYrFpKQPwVQP6Sq4SdiASEUbEBOA64LcGOuwE\n" +
|
||||||
|
"boqIYRHxg3ow8L46A7iiAb1962qljldfVrdWGVnWq9eU0PVRjVEqD1NL2dpW0NFA0h57ACnCLIuI\n" +
|
||||||
|
"N4A3svpjgEeBsaTM/SPwc/a8AjgbOBLopZ4DXEkKGlMj4g+Sy46ua0S3Y0VJImpf4BngItJqdhEp\n" +
|
||||||
|
"yqxX+5NC8XxgIXAcMCki5hYqUUeRDhQ+IvnxBcB4YB9gnPo0cFqDJCANXD7Ux7Jpm2XRatJ0kjda\n" +
|
||||||
|
"vT+T+UKdpk4okJmnvqYOKmo7tEnu1IU1phxXksgCdWu5YVAnq69nz5eps9V71Y+7ysu0fadJRMrn\n" +
|
||||||
|
"HvX8THDPMjJz1ClFZd+o68oq3y67uQlEJlXT0Tz1nTL1s9WRBe+nmRaV/SroHaU+ov7bIIn1al7O\n" +
|
||||||
|
"24Y2gIiYqH6qzoiIO3PkepICQBceBG6JiDUFRk8DhpGCw5Dsd0y5zmvArIgo6/7bYFq6v6Tel1P3\n" +
|
||||||
|
"vHpJ9jxGfSFHZnqDo14K/5oia1lsm66I2BIRFwKb1cfVwlPCX9gePtuBF4sVRcT9QMmE1QCmR8Ta\n" +
|
||||||
|
"ulqq49Tb1Xa1lzrIdO7aWz3VlDxLtT3FFM2agYV10y8yaojaJ3t+yPQdVXXMajp9fEr92nSoV+uO\n" +
|
||||||
|
"c4t6aFOI5Bi3Wp1bWXKndj3V5TUSGdMKDl0GHWY6732gxna31Uji/FZxKDRqoMlVPlGHViE/tgYC\n" +
|
||||||
|
"K9X2lpMoMvBx9UfTMv8sixKW6cD7wRpIvGbat+x6qIerT2SGdJqi1QfqkhoILFEv7RYCxTCF3Frx\n" +
|
||||||
|
"tumyaPeCaf1VDhtMK4Tr1cHdbW9ZuP0mKw8zu9u+qmHa45dCK+9Jco+DGkFnifLp1V787xZQL8yZ\n" +
|
||||||
|
"ic+7266aoX5YRKJD7VG55W4E09+NNN2TdKhn7cK+e3QtOfo3QdlBpmxecu/fCpi2FgeHaZneB/in\n" +
|
||||||
|
"6DZ2t4fpL1r7Aav+A1kpEaj/kLRHAAAAAElFTkSuQmCC").bitmap,
|
||||||
|
iconColor = 0xffff6c2d.toInt(),
|
||||||
|
contributorName = "sddpljx"
|
||||||
|
),
|
||||||
|
IconDataBean(
|
||||||
|
isEnabled = true,
|
||||||
|
isEnabledAll = false,
|
||||||
|
appName = "讯飞输入法",
|
||||||
|
packageName = "com.iflytek.inputmethod",
|
||||||
|
iconBitmap = ("iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAARzQklUCAgI\n" +
|
||||||
|
"CHwIZIgAAATQSURBVGiB7ZpviBVVGMafN4TIAomUtD9bq1ZmJQaFftEsxJCgApEiCimDKDCKiP5Q\n" +
|
||||||
|
"uEKJEVJQ0QdpCSFKw4JIxaJWSqjQLUuLcLfM1N1c1nUlZD9Y/PowM3X2vWdm7r17996CHhjunDPv\n" +
|
||||||
|
"n+c558yZOXOu9D/+XbBGBgNmSloqaY6kmZIuk3S+pBPB8bOk7uwws98byaFuAEuAF4FvqR0DwGvA\n" +
|
||||||
|
"olYKWAR01UE+D13Aynr51DW0gA5JqwtMRiT1SDoi6bikQUmnJV0haVb6m4dtktab2af1cKsKJb2w\n" +
|
||||||
|
"A7gXKCIZxloObC7ooaKGGpOIlTkJNwALxxC3HVgHnB53McCTkSRbaOBNClwPbIrk2dioBC81rduT\n" +
|
||||||
|
"fKsj+brGGvSdSNBHG8S5KO9Tkbyb6g12fyRY0+Z7kueTx7pag0wFel2QO8aJcxGPmJibagnwsnMe\n" +
|
||||||
|
"t3uiCi4POC5bq3Vc7By/A84ZZ75lnF51nMrfAIB3ndOKJnAt49QO9AWcvihzmOtEbGsS11IAjzlu\n" +
|
||||||
|
"dxYZr3PGDzaRaymAQwG37UWG+wLDU8DFTeRZCuAt19AzsmsTAqMZkq4O/D40s8Mu0O2SRsxsR1ou\n" +
|
||||||
|
"fa6Y2c7Qzsx2BvFC//1mNujyTZF0VVr8RtInku4KTOZI+smrvcepvdtdX5XWHwyJUIyHU7uOrMIL\n" +
|
||||||
|
"BZ4P7JcH9cuD+lvSusku/nMVLUeyUgtxubuekfmySiFdEd+YkInA7sBvtuOy1tkfieUIDcJ1Rn+F\n" +
|
||||||
|
"gSqHkhOyKDimA2dWIyS9flsQ52BwvquE56FYsIHAoKrVmRdSYFcoJLV5gUrcGrHb4GwmSMHNLmlK\n" +
|
||||||
|
"cP51jIykr5Tc7Dv99UxYenpS0rCkE2Y2nEfe4RlJ8yVli7ROM/sgYnfMladLOjAhYihJE3Pqswdk\n" +
|
||||||
|
"bK0fWzOskdSRE2sUzOx0OuYzIRWNmeLcWPmMHOO2apKXYLuZVSUiB0dz6r2QHmn00DogKZup6hHS\n" +
|
||||||
|
"kSbvTctH6ogRoi+nPhQyZGZD0mgh3SoWUkbsIzMrfpmT5G74vUqG0OFI7+X1yDXBeU92Eg6t7uB8\n" +
|
||||||
|
"EjDXBTiZ/nZGgndWIyKCuZLuk7TZ1b9iZhVCgGslXRhU/X0f+R4JsUJJi2U4KWmBmfm5PVYXw5qc\n" +
|
||||||
|
"+j4z+yEoX2lmP+bYLnXlPVErYDiYn3uiRi0EsNU9Q+blGW50hr4FWgbgItfQ/cDZ2XU//X7uyjeP\n" +
|
||||||
|
"P8Wq8YikSUH5TTM7FbUEpgFHA9X7m0KxBCRfIf8IeI0As8qcOhiN65rEt4iTX1C9Xo2T75WWfQpK\n" +
|
||||||
|
"+SxzIo4SrAzLnB8KHMf23XUMAOYBg05Ibd8RgDdaKSSdpfY5Ee/VE2gKsLeFQj52InoB/8JYdbAF\n" +
|
||||||
|
"wJYGcyzLuRT4jEoU7oSV7iECyyRNljSkZHv5mJLXiuMNYf5PnqmSnpa0KnJ5oZn5Z1xdSWYD+10L\n" +
|
||||||
|
"NWRrGTgvnVx6Ir3QQ6O/rQFtVH5pybAbWAvcWEO8+SS7YX05Md8HJpVHSlDz9jTJ+9cTkm7IMTkl\n" +
|
||||||
|
"aZekX93Rlh6XSLpU0uIc/34l29Pra+VWF4DHgV9yWrMejJBsH7Q3RYATcxbJRsxY/gHxPfBsSwTE\n" +
|
||||||
|
"AMwhGfN7GP2K4zFA8r+Vt4Eljcrf0H8HeQDTJF2Q5umX9JuZ/TmeOf/z+AuQV+ZFLOIPXAAAAABJ\n" +
|
||||||
|
"RU5ErkJggg==").bitmap,
|
||||||
|
iconColor = 0xff4679e9.toInt(),
|
||||||
|
contributorName = "fankes"
|
||||||
|
),
|
||||||
|
IconDataBean(
|
||||||
|
isEnabled = true,
|
||||||
|
isEnabledAll = false,
|
||||||
|
appName = "讯飞输入法小米版",
|
||||||
|
packageName = "com.iflytek.inputmethod.miui",
|
||||||
|
iconBitmap = ("iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAAXNSR0IArs4c6QAAAARzQklUCAgI\n" +
|
||||||
|
"CHwIZIgAAATQSURBVGiB7ZpviBVVGMafN4TIAomUtD9bq1ZmJQaFftEsxJCgApEiCimDKDCKiP5Q\n" +
|
||||||
|
"uEKJEVJQ0QdpCSFKw4JIxaJWSqjQLUuLcLfM1N1c1nUlZD9Y/PowM3X2vWdm7r17996CHhjunDPv\n" +
|
||||||
|
"n+c558yZOXOu9D/+XbBGBgNmSloqaY6kmZIuk3S+pBPB8bOk7uwws98byaFuAEuAF4FvqR0DwGvA\n" +
|
||||||
|
"olYKWAR01UE+D13Aynr51DW0gA5JqwtMRiT1SDoi6bikQUmnJV0haVb6m4dtktab2af1cKsKJb2w\n" +
|
||||||
|
"A7gXKCIZxloObC7ooaKGGpOIlTkJNwALxxC3HVgHnB53McCTkSRbaOBNClwPbIrk2dioBC81rduT\n" +
|
||||||
|
"fKsj+brGGvSdSNBHG8S5KO9Tkbyb6g12fyRY0+Z7kueTx7pag0wFel2QO8aJcxGPmJibagnwsnMe\n" +
|
||||||
|
"t3uiCi4POC5bq3Vc7By/A84ZZ75lnF51nMrfAIB3ndOKJnAt49QO9AWcvihzmOtEbGsS11IAjzlu\n" +
|
||||||
|
"dxYZr3PGDzaRaymAQwG37UWG+wLDU8DFTeRZCuAt19AzsmsTAqMZkq4O/D40s8Mu0O2SRsxsR1ou\n" +
|
||||||
|
"fa6Y2c7Qzsx2BvFC//1mNujyTZF0VVr8RtInku4KTOZI+smrvcepvdtdX5XWHwyJUIyHU7uOrMIL\n" +
|
||||||
|
"BZ4P7JcH9cuD+lvSusku/nMVLUeyUgtxubuekfmySiFdEd+YkInA7sBvtuOy1tkfieUIDcJ1Rn+F\n" +
|
||||||
|
"gSqHkhOyKDimA2dWIyS9flsQ52BwvquE56FYsIHAoKrVmRdSYFcoJLV5gUrcGrHb4GwmSMHNLmlK\n" +
|
||||||
|
"cP51jIykr5Tc7Dv99UxYenpS0rCkE2Y2nEfe4RlJ8yVli7ROM/sgYnfMladLOjAhYihJE3Pqswdk\n" +
|
||||||
|
"bK0fWzOskdSRE2sUzOx0OuYzIRWNmeLcWPmMHOO2apKXYLuZVSUiB0dz6r2QHmn00DogKZup6hHS\n" +
|
||||||
|
"kSbvTctH6ogRoi+nPhQyZGZD0mgh3SoWUkbsIzMrfpmT5G74vUqG0OFI7+X1yDXBeU92Eg6t7uB8\n" +
|
||||||
|
"EjDXBTiZ/nZGgndWIyKCuZLuk7TZ1b9iZhVCgGslXRhU/X0f+R4JsUJJi2U4KWmBmfm5PVYXw5qc\n" +
|
||||||
|
"+j4z+yEoX2lmP+bYLnXlPVErYDiYn3uiRi0EsNU9Q+blGW50hr4FWgbgItfQ/cDZ2XU//X7uyjeP\n" +
|
||||||
|
"P8Wq8YikSUH5TTM7FbUEpgFHA9X7m0KxBCRfIf8IeI0As8qcOhiN65rEt4iTX1C9Xo2T75WWfQpK\n" +
|
||||||
|
"+SxzIo4SrAzLnB8KHMf23XUMAOYBg05Ibd8RgDdaKSSdpfY5Ee/VE2gKsLeFQj52InoB/8JYdbAF\n" +
|
||||||
|
"wJYGcyzLuRT4jEoU7oSV7iECyyRNljSkZHv5mJLXiuMNYf5PnqmSnpa0KnJ5oZn5Z1xdSWYD+10L\n" +
|
||||||
|
"NWRrGTgvnVx6Ir3QQ6O/rQFtVH5pybAbWAvcWEO8+SS7YX05Md8HJpVHSlDz9jTJ+9cTkm7IMTkl\n" +
|
||||||
|
"aZekX93Rlh6XSLpU0uIc/34l29Pra+VWF4DHgV9yWrMejJBsH7Q3RYATcxbJRsxY/gHxPfBsSwTE\n" +
|
||||||
|
"AMwhGfN7GP2K4zFA8r+Vt4Eljcrf0H8HeQDTJF2Q5umX9JuZ/TmeOf/z+AuQV+ZFLOIPXAAAAABJ\n" +
|
||||||
|
"RU5ErkJggg==").bitmap,
|
||||||
|
iconColor = 0xff4679e9.toInt(),
|
||||||
|
contributorName = "fankes"
|
||||||
|
),
|
||||||
|
IconDataBean(
|
||||||
|
isEnabled = true,
|
||||||
|
isEnabledAll = false,
|
||||||
|
appName = "QQ阅读",
|
||||||
|
packageName = "com.qq.reader",
|
||||||
|
iconBitmap = ("iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAARzQklUCAgI\n" +
|
||||||
|
"CHwIZIgAAAMRSURBVGiB7ZhNSFVBGIbfCVIuBG4UMgiSgihq5dZqY5ERSOSunRtXgYs2tW3TImjh\n" +
|
||||||
|
"tkWbqHDRIrAfI7CltErIwMJIJfuRDOEKGjwtZvTe5J6fb+7Rg+ADlwv3fjPzvjNz5nzfSHvs0RSu\n" +
|
||||||
|
"yM6AbklXJJ2RdExSh6S/kpYkTUl6I+mJc26uyHGbBugFJsnPI6CrbN0CKsB9g/B6qsBQmeLbjbOe\n" +
|
||||||
|
"xEgZ4isFiS/HBDBSoPgNru2U+O5tEA+wDHRa9eyL8HA7ok0e2iTdsjYyvQeAw5K+WgcxsCqp0zn3\n" +
|
||||||
|
"J28D6wr0G+OtVCRdtTSwGjhnjI/hrCXYauC4MT6Gk5Zgq4GDxvgYTCeR1UCLMT6GVktwzDG63eQ+\n" +
|
||||||
|
"gSS7gZ/G+Bi+W4KtBiYkrRvbWPgo6XEhPVHL8R8Ag4T8HZ/I9QJ3gZkm04c1YAwY2kgj8FluP3AH\n" +
|
||||||
|
"GA9jDMYYmGsw4Bw+/+8HKiGuG5/c/TAIfw8MA+2hj54geDohfiXGQJagKvAUGMCvSgvQh5/RRqzh\n" +
|
||||||
|
"K7Hu0P/RILrRRG1lOcbAeI6ONwfAr0xPnbgRYCUYHaG2BQeACUPfAGMxBvqNg2wwDdwEOoG28GkH\n" +
|
||||||
|
"bgCzkX32JelsmI1SKy46JN0zu68xL38rcaSJPq5LWpTU6px7mKsFfm/PACfCzJXFcNAwA4zmtkyt\n" +
|
||||||
|
"3q3i9/NCCeJngS78cwQw2Uhr0ovsV/iuSOqV9CG3++J4J+mCpANbNP1HkoH6p35/gaKs1I+d/yTC\n" +
|
||||||
|
"n+mjYeuUvYUWgpa4TBh/JJbFcJa+xKIenyp8knQoynlxzEs6lVTop95KAFX5B7lM1p1zidsnK51e\n" +
|
||||||
|
"KFhMDKn1QZaB3wUKieVb2p+7YQVSS8wsA0sFCokldRKzDCwWKCSWhm/gDXaDgVQNWQY+Fygkli9p\n" +
|
||||||
|
"f2beTuOrrMuSLkk6XZCoLKYkvZL0wjn3Oi0w5nr9vKQ+SRdVyxSbZVXSS0nPJD13zqUenYWAL+QH\n" +
|
||||||
|
"8IX6SnI6k8gK/spm84ajNOrMjOKLoCSqIWagdNFJ4Iv4QeBtnfCJ8Ftb2fpMBDO7S/RO8w+xh352\n" +
|
||||||
|
"EqfboQAAAABJRU5ErkJggg==").bitmap,
|
||||||
|
iconColor = 0xff45afff.toInt(),
|
||||||
|
contributorName = "fankes"
|
||||||
|
),
|
||||||
|
IconDataBean(
|
||||||
|
isEnabled = true,
|
||||||
|
isEnabledAll = false,
|
||||||
|
appName = "QQ浏览器",
|
||||||
|
packageName = "com.tencent.mtt",
|
||||||
|
iconBitmap = ("iVBORw0KGgoAAAANSUhEUgAAADUAAAAyCAYAAAD845PIAAAAAXNSR0IArs4c6QAAAARzQklUCAgI\n" +
|
||||||
|
"CHwIZIgAAAPhSURBVGiB5ZpLiB1FFIb/I4nR8REw0UkGE9zERyIDxriIbgYXQTKuXKhBERcujAYf\n" +
|
||||||
|
"oAshiwEloLgQNA+UoKCiC40YRBEXCYoIEiE4YzJxQPJkzEtEGXQw8LmovtjpdPf0qep7r+gPDUPX\n" +
|
||||||
|
"qXPOV9W3q+r0SP9BWTecAssl5a/fJB3PrmNmdrobcVsVsBzYCHxCM50CtgKjwEC/8z9PwDpgd0OQ\n" +
|
||||||
|
"OsDtwM39hlkLvJMIU9QM8CLh0e050JaWYYqaBh7tFcwA8H6XgfLa3m2gNT2EyeuzbgEN9wmoo21t\n" +
|
||||||
|
"Ay0FzvYZCtr6jQHzga/6TZPTA21APd9vioKmafi6v6gCaIWkx5NHRpqV9J2koy34WqKUnIBXEkZ0\n" +
|
||||||
|
"J/AwcGvB5yBhB/IMcDzS9wwxOw9gNXAuMug9DWMMArsiY/jXL+C5iEDfAAsiYq2LiHUWuMwbaI8z\n" +
|
||||||
|
"yF9emEK8FRFg99b5PO9FASyTNOLMa5MXJC8zm5L0tLPbaGNL4DHniO1wJlMX+wtH3DN1voqv9Ouc\n" +
|
||||||
|
"ubS56fzYYbsIuLqqsQh1pcPxjKQfHPZzadJpv6yqIQXqgJmdcyZSp/1O+2urGopQCx1O25wlmdkZ\n" +
|
||||||
|
"+XYejaHmOZxOO2y74bNyAopQPzucLnXYNtUqh+2JqoYUqCGH7ZwCrpJ0uaNLJVTxcfNM/wiwwMxm\n" +
|
||||||
|
"HX0ELFFYOi6RJDPbmzXdqFDsrPytFFQJVQx4v3Pxva+Bz4XAZmAf8EuJj6PAy8BdwLzMdrZB7Cua\n" +
|
||||||
|
"Qo04ob4GKh8ZYBMw6fC3M+t3C3Cyxm6iEVAukXEnWOmuAnjX6aej01n/0RqbMS/UxohExgo+tkbh\n" +
|
||||||
|
"/KMvMz9PVLSv9EINEndIHMv6vxBLUtBLmb/rgQ3ANuBXGjx6F9QozOykpLdcIxE0AAyqndqGJD0L\n" +
|
||||||
|
"HJH0mqTbJX0kaY2kD6K8AesjRvY24JGWZqlKrxLOfHHKHDTVt1mf1M86TbQPuDQF7OAcASaAp4DF\n" +
|
||||||
|
"hM8wvdIbKVAraxxPZO3rqV9TuqUNVXmXFjM7MrMDkp4saZqV9JDCNut1SddEj1y87kzqzYU7jS3Z\n" +
|
||||||
|
"/bf7MEMd/ZQ8LIRPOp3y2U3E1ezaVunxp/bxy8vMvpf0oKRdZnZQ0nDySKXrhrKbjaEkycxOKIBJ\n" +
|
||||||
|
"0h2pGbWgQ2U3XVCSZGZ/ZH+eSkonXXvNrPT854bKaTyhbxvaXdWQAlU69T3Spwp7wvYF7Pg3vfXa\n" +
|
||||||
|
"BPuwhzAzwNquAuXA7gamSpL4E3gT+HyOZPcQzkx1h8v3mubT2r/GEWoVw9k1X9IxSfvN7HDWfrHC\n" +
|
||||||
|
"Z6IhhZrh7wrVq3Ez+zHnZ7XC+jOkUK+flDSVLSf/X/0N9IzKpFVJbfwAAAAASUVORK5CYII=").bitmap,
|
||||||
|
iconColor = 0xff6593f1.toInt(),
|
||||||
|
contributorName = "fankes"
|
||||||
|
),
|
||||||
// TODO 可继续在这里添加更多 APP
|
// TODO 可继续在这里添加更多 APP
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -0,0 +1,118 @@
|
|||||||
|
/*
|
||||||
|
* MIUINativeNotifyIcon - Fix the native notification bar icon function abandoned by the MIUI development team.
|
||||||
|
* Copyright (C) 2019-2022 Fankes Studio(qzmmcn@163.com)
|
||||||
|
* https://github.com/fankes/MIUINativeNotifyIcon
|
||||||
|
*
|
||||||
|
* This software is non-free but opensource software: you can redistribute it
|
||||||
|
* and/or modify it under the terms of the GNU Affero General Public License
|
||||||
|
* as published by the Free Software Foundation; either
|
||||||
|
* version 3 of the License, or any later version and our eula as published
|
||||||
|
* by ferredoxin.
|
||||||
|
*
|
||||||
|
* This software is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* Affero General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Affero General Public License
|
||||||
|
* and eula along with this software. If not, see
|
||||||
|
* <https://www.gnu.org/licenses/>
|
||||||
|
*
|
||||||
|
* This file is Created by fankes on 2022/2/19.
|
||||||
|
*/
|
||||||
|
package com.fankes.miui.notify.utils
|
||||||
|
|
||||||
|
import android.graphics.*
|
||||||
|
import android.graphics.drawable.AnimationDrawable
|
||||||
|
import android.graphics.drawable.BitmapDrawable
|
||||||
|
import android.graphics.drawable.Drawable
|
||||||
|
import android.graphics.drawable.VectorDrawable
|
||||||
|
import android.util.ArrayMap
|
||||||
|
import androidx.core.graphics.drawable.toBitmap
|
||||||
|
import kotlin.math.abs
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 这是一个从 AOSP 源码中分离出来的功能
|
||||||
|
*
|
||||||
|
* 主要作用于兼容部分 MIUI 魔改颜色判断代码造成判断位图灰度功能失效
|
||||||
|
*/
|
||||||
|
object BitmapCompatTool {
|
||||||
|
|
||||||
|
/** 缓存已判断的结果防止卡顿 */
|
||||||
|
private var cachedBitmapGrayscales = ArrayMap<Int, Boolean>()
|
||||||
|
|
||||||
|
private var tempBuffer = intArrayOf(0)
|
||||||
|
private var tempCompactBitmap: Bitmap? = null
|
||||||
|
private var tempCompactBitmapCanvas: Canvas? = null
|
||||||
|
private var tempCompactBitmapPaint: Paint? = null
|
||||||
|
private val tempMatrix = Matrix()
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 判断 [Drawable] 是否为灰度位图
|
||||||
|
* @param drawable 要判断的 [Drawable]
|
||||||
|
* @return [Boolean] 是否灰度
|
||||||
|
*/
|
||||||
|
fun isGrayscaleDrawable(drawable: Drawable) = safeOfFalse {
|
||||||
|
when (drawable) {
|
||||||
|
is BitmapDrawable -> isGrayscaleBitmap(drawable.bitmap)
|
||||||
|
is AnimationDrawable -> !(drawable.numberOfFrames <= 0 || !isGrayscaleBitmap(drawable.getFrame(0).toBitmap()))
|
||||||
|
is VectorDrawable -> true
|
||||||
|
else -> isGrayscaleBitmap(drawable.toBitmap())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 判断 [Bitmap] 是否为灰度位图
|
||||||
|
* @param bitmap 要判断的位图
|
||||||
|
* @return [Boolean] 是否灰度
|
||||||
|
*/
|
||||||
|
private fun isGrayscaleBitmap(bitmap: Bitmap) =
|
||||||
|
cachedBitmapGrayscales[bitmap.generationId] ?: let {
|
||||||
|
var height = bitmap.height
|
||||||
|
var width = bitmap.width
|
||||||
|
if (height > 64 || width > 64) {
|
||||||
|
if (tempCompactBitmap == null) {
|
||||||
|
tempCompactBitmap = Bitmap.createBitmap(64, 64, Bitmap.Config.ARGB_8888)
|
||||||
|
.also { tempCompactBitmapCanvas = Canvas(it) }
|
||||||
|
tempCompactBitmapPaint = Paint(Paint.FILTER_BITMAP_FLAG).apply { isFilterBitmap = true }
|
||||||
|
}
|
||||||
|
tempMatrix.reset()
|
||||||
|
tempMatrix.setScale(64f / width, 64f / height, 0f, 0f)
|
||||||
|
tempCompactBitmapCanvas?.drawColor(0, PorterDuff.Mode.SRC)
|
||||||
|
tempCompactBitmapCanvas?.drawBitmap(bitmap, tempMatrix, tempCompactBitmapPaint)
|
||||||
|
height = 64
|
||||||
|
width = 64
|
||||||
|
}
|
||||||
|
val size = height * width
|
||||||
|
ensureBufferSize(size)
|
||||||
|
tempCompactBitmap?.getPixels(tempBuffer, 0, width, 0, 0, width, height)
|
||||||
|
for (i in 0 until size)
|
||||||
|
if (!isGrayscaleColor(tempBuffer[i])) {
|
||||||
|
cachedBitmapGrayscales[bitmap.generationId] = false
|
||||||
|
return@let false
|
||||||
|
}
|
||||||
|
cachedBitmapGrayscales[bitmap.generationId] = true
|
||||||
|
true
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 提纯 [Bitmap] 颜色判断灰度
|
||||||
|
* @param color 颜色
|
||||||
|
* @return [Boolean] 是否灰度
|
||||||
|
*/
|
||||||
|
private fun isGrayscaleColor(color: Int): Boolean {
|
||||||
|
if (color shr 24 and 255 < 50) return true
|
||||||
|
val r = color shr 16 and 255
|
||||||
|
val g = color shr 8 and 255
|
||||||
|
val b = color and 255
|
||||||
|
return !(abs(r - g) >= 20 || abs(r - b) >= 20 || abs(g - b) >= 20)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 计算字节数组
|
||||||
|
* @param size 大小
|
||||||
|
*/
|
||||||
|
private fun ensureBufferSize(size: Int) {
|
||||||
|
if (tempBuffer.size < size) tempBuffer = IntArray(size)
|
||||||
|
}
|
||||||
|
}
|
@@ -37,7 +37,6 @@ import android.util.Base64
|
|||||||
import android.widget.Toast
|
import android.widget.Toast
|
||||||
import com.fankes.miui.notify.application.MNNApplication.Companion.appContext
|
import com.fankes.miui.notify.application.MNNApplication.Companion.appContext
|
||||||
import com.google.android.material.snackbar.Snackbar
|
import com.google.android.material.snackbar.Snackbar
|
||||||
import com.highcapable.yukihookapi.hook.factory.callStatic
|
|
||||||
import com.highcapable.yukihookapi.hook.factory.classOf
|
import com.highcapable.yukihookapi.hook.factory.classOf
|
||||||
import com.highcapable.yukihookapi.hook.factory.hasClass
|
import com.highcapable.yukihookapi.hook.factory.hasClass
|
||||||
import com.highcapable.yukihookapi.hook.factory.method
|
import com.highcapable.yukihookapi.hook.factory.method
|
||||||
@@ -241,9 +240,10 @@ fun Bitmap.round(radius: Float): Bitmap =
|
|||||||
* @return [String]
|
* @return [String]
|
||||||
*/
|
*/
|
||||||
fun findPropString(key: String, default: String = "") = safeOf(default) {
|
fun findPropString(key: String, default: String = "") = safeOf(default) {
|
||||||
(classOf(name = "android.os.SystemProperties").method(
|
(classOf(name = "android.os.SystemProperties").method {
|
||||||
name = "get", StringType, StringType
|
name = "get"
|
||||||
)?.callStatic(key, default)) ?: default
|
param(StringType, StringType)
|
||||||
|
}.get().invoke(key, default)) ?: default
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -5,8 +5,8 @@ plugins {
|
|||||||
}
|
}
|
||||||
|
|
||||||
ext {
|
ext {
|
||||||
appVersionName = "1.6"
|
appVersionName = "1.67"
|
||||||
appVersionCode = 11
|
appVersionCode = 14
|
||||||
}
|
}
|
||||||
|
|
||||||
task clean(type: Delete) {
|
task clean(type: Delete) {
|
||||||
|
@@ -10,7 +10,8 @@ dependencyResolutionManagement {
|
|||||||
repositories {
|
repositories {
|
||||||
google()
|
google()
|
||||||
maven { url "https://api.xposed.info/" }
|
maven { url "https://api.xposed.info/" }
|
||||||
maven { url 'https://www.jitpack.io' }
|
maven { url "https://www.jitpack.io" }
|
||||||
|
maven { url "https://s01.oss.sonatype.org/content/repositories/releases" }
|
||||||
mavenCentral()
|
mavenCentral()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user