mirror of
https://github.com/fankes/ColorOSNotifyIcon.git
synced 2025-09-04 09:45:34 +08:00
Modify inject module resources to system ui in SystemUIHooker
- Merge app support notification icon type to vector - Remove all android adb hardcode base64 icon data - Merge android default icon to "com.android.internal.R.drawable.stat_sys_adb"
This commit is contained in:
@@ -30,7 +30,6 @@ import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.content.IntentFilter
|
||||
import android.content.res.ColorStateList
|
||||
import android.graphics.Bitmap
|
||||
import android.graphics.Color
|
||||
import android.graphics.Outline
|
||||
import android.graphics.drawable.BitmapDrawable
|
||||
@@ -45,6 +44,7 @@ import android.view.ViewOutlineProvider
|
||||
import android.widget.ImageView
|
||||
import androidx.core.graphics.drawable.toBitmap
|
||||
import androidx.core.view.children
|
||||
import com.fankes.coloros.notify.R
|
||||
import com.fankes.coloros.notify.bean.IconDataBean
|
||||
import com.fankes.coloros.notify.data.DataConst
|
||||
import com.fankes.coloros.notify.hook.HookConst.ANDROID_PACKAGE_NAME
|
||||
@@ -351,28 +351,26 @@ object SystemUIHooker : YukiBaseHooker() {
|
||||
|
||||
/**
|
||||
* 自动适配状态栏、通知栏自定义小图标
|
||||
* @param context 实例
|
||||
* @param isGrayscaleIcon 是否为灰度图标
|
||||
* @param packageName APP 包名
|
||||
* @return [Pair] - ([Bitmap] 位图,[Int] 颜色)
|
||||
* @return [Pair] - ([Drawable] 位图 or null,[Int] 颜色)
|
||||
*/
|
||||
private fun compatCustomIcon(isGrayscaleIcon: Boolean, packageName: String): Pair<Bitmap?, Int> {
|
||||
var customPair: Pair<Bitmap?, Int>? = null
|
||||
private fun compatCustomIcon(context: Context, isGrayscaleIcon: Boolean, packageName: String): Pair<Drawable?, Int> {
|
||||
var customPair: Pair<Drawable?, Int>? = null
|
||||
val statSysAdbIcon = runCatching {
|
||||
context.resources.drawableOf("com.android.internal.R\$drawable".toClass().field { name = "stat_sys_adb" }.get().int())
|
||||
}.getOrNull() ?: context.resources.drawableOf(R.drawable.ic_unsupported)
|
||||
when {
|
||||
/** 替换系统图标为 Android 默认 */
|
||||
(packageName == ANDROID_PACKAGE_NAME || packageName == SYSTEMUI_PACKAGE_NAME) && isGrayscaleIcon.not() ->
|
||||
customPair = Pair(
|
||||
when {
|
||||
isUpperOfAndroidT -> IconPackParams.android13IconBitmap
|
||||
isUpperOfAndroidS -> IconPackParams.android12IconBitmap
|
||||
else -> IconPackParams.android11IconBitmap
|
||||
}, 0
|
||||
)
|
||||
customPair = Pair(statSysAdbIcon, 0)
|
||||
/** 替换自定义通知图标 */
|
||||
prefs.get(DataConst.ENABLE_NOTIFY_ICON_FIX) -> run {
|
||||
iconDatas.takeIf { it.isNotEmpty() }?.forEach {
|
||||
if (packageName == it.packageName && isAppNotifyHookOf(it)) {
|
||||
if (isGrayscaleIcon.not() || isAppNotifyHookAllOf(it))
|
||||
customPair = Pair(it.iconBitmap, it.iconColor)
|
||||
customPair = Pair(BitmapDrawable(context.resources, it.iconBitmap), it.iconColor)
|
||||
return@run
|
||||
}
|
||||
}
|
||||
@@ -396,11 +394,10 @@ object SystemUIHooker : YukiBaseHooker() {
|
||||
isGrayscaleIcon: Boolean,
|
||||
packageName: String,
|
||||
drawable: Drawable
|
||||
) = compatCustomIcon(isGrayscaleIcon, packageName).first.also {
|
||||
) = compatCustomIcon(context, isGrayscaleIcon, packageName).first.also {
|
||||
/** 打印日志 */
|
||||
printLogcat(tag = "StatusIcon", context, packageName, isCustom = it != null, isGrayscaleIcon)
|
||||
}?.let { Pair(BitmapDrawable(context.resources, it), true) }
|
||||
?: Pair(if (isGrayscaleIcon) drawable else nf.compatPushingIcon(drawable), isGrayscaleIcon.not())
|
||||
}?.let { Pair(it, true) } ?: Pair(if (isGrayscaleIcon) drawable else nf.compatPushingIcon(drawable), isGrayscaleIcon.not())
|
||||
|
||||
/**
|
||||
* 自动适配通知栏小图标
|
||||
@@ -421,7 +418,7 @@ object SystemUIHooker : YukiBaseHooker() {
|
||||
iconColor: Int,
|
||||
iconView: ImageView
|
||||
) = runInSafe {
|
||||
compatCustomIcon(isGrayscaleIcon, packageName).also { customPair ->
|
||||
compatCustomIcon(context, isGrayscaleIcon, packageName).also { customPair ->
|
||||
when {
|
||||
prefs.get(DataConst.ENABLE_NOTIFY_ICON_FORCE_APP_ICON) && isEnableHookColorNotifyIcon(isHooking = false) ->
|
||||
iconView.apply {
|
||||
@@ -434,7 +431,7 @@ object SystemUIHooker : YukiBaseHooker() {
|
||||
/** 设置不要裁切到边界 */
|
||||
clipToOutline = false
|
||||
/** 重新设置图标 */
|
||||
setImageBitmap(customPair.first ?: drawable.toBitmap())
|
||||
setImageDrawable(customPair.first ?: drawable)
|
||||
|
||||
/** 是否开启 Android 12 风格 */
|
||||
val isA12Style = prefs.get(DataConst.ENABLE_ANDROID12_STYLE)
|
||||
@@ -544,6 +541,8 @@ object SystemUIHooker : YukiBaseHooker() {
|
||||
IconAdaptationTool.prepareAutoUpdateIconRule(context, prefs.get(DataConst.NOTIFY_ICON_FIX_AUTO_TIME))
|
||||
}
|
||||
onCreate {
|
||||
/** 注入模块资源 */
|
||||
injectModuleAppResources()
|
||||
/** 注册发送适配新的 APP 图标通知监听 */
|
||||
registerReceiver(object : BroadcastReceiver() {
|
||||
override fun onReceive(context: Context, intent: Intent?) {
|
||||
|
@@ -25,7 +25,6 @@
|
||||
package com.fankes.coloros.notify.param
|
||||
|
||||
import android.content.Context
|
||||
import android.graphics.Bitmap
|
||||
import android.graphics.Color
|
||||
import com.fankes.coloros.notify.bean.IconDataBean
|
||||
import com.fankes.coloros.notify.data.DataConst
|
||||
@@ -44,112 +43,6 @@ import org.json.JSONObject
|
||||
*/
|
||||
class IconPackParams(private val context: Context? = null, private val param: PackageParam? = null) {
|
||||
|
||||
companion object {
|
||||
|
||||
/**
|
||||
* Android 11 系统默认图标
|
||||
* @return [Bitmap]
|
||||
*/
|
||||
val android11IconBitmap by lazy {
|
||||
("iVBORw0KGgoAAAANSUhEUgAAAEIAAABCCAYAAADjVADoAAAAAXNSR0IArs4c6QAAAARzQklUCAgI\n" +
|
||||
"CHwIZIgAAAPkSURBVHic7ZvfVdswFMY/9fS93qDZoNmg6QS4E8AGdAMYgQ1gg4QJkk5AOkGcCUgm\n" +
|
||||
"+Pog27EdCa7+WDIn/J4gx77W/SzpyvdKwCefdFE5H06yAPCj/vefUuqQqy1JhCA5B3AFYFH/NAdQ\n" +
|
||||
"WC4/ANjWf28APCultpZrozGaECQbx0sAs0BzFYAVgI1S6jm0baNDsiB5R/KV4/FK8i63r1ZIXpPc\n" +
|
||||
"jSjAkB3J69x+t5AsEwtgEqTMLcJjRgGGPOYQoCC5zu25gTV1SE4iwpx5h8J77KjDtRNO4ZPkAsAS\n" +
|
||||
"9jXAVDgA+K2U2khvEAtRq7zG9EVoOAD4JV2MfZFcRD3uXHvCEcBfh+vf429tU0oBYMmYcwbJF+H4\n" +
|
||||
"3FKH09ng/jnJG5IHh7F+qO+ZD2zN6mdshXbWsUSQhsh7ga2C5Epga0XBmyR5L2xbWGilVl6C04KG\n" +
|
||||
"5MMbth6m0MbhQyRhcuVhtyBZGWxV9BjTlPWynavdxviNwLhXw2v7C4M95/hf27IJO+TGx7CkNzh1\n" +
|
||||
"Y8Nzuo0PyjmQfBK019orbOHzD2Q5hMqr1Se6zse0ZWNGy6RuE+I24sOl98e09RZG386EoJ5dU60e\n" +
|
||||
"xUvgiBQ0RBBTj1gYfkuB10Tpef+ZjyYhrvzbEsT3wPtdhDjzsSdEHb5CE62+zEPCJ4CfDrfMhs8a\n" +
|
||||
"9oi8KS//j6RHuL/A3vAYCpFrfmiYAXj3m6VLPfH5vMDePaLP8MTckhT1DOq0/jJ6C+hejwjqQTQv\n" +
|
||||
"sxteqUsEps/wK8pTA1b7XbtfB22bUvapAPAEACQBveZ4q1ToY7+lHRpMlf31Z4HIL6rrc3eOCF3Q\n" +
|
||||
"fERan6c4WWahK8TopfcJ0vrcCpFzk0Yuuj5f8tDolQaGQsSsQ0yd3lRwyT2ix1CIHImSXPSy70Mh\n" +
|
||||
"nFPzH5jeS+8JURdM90mbk4f9sDhsmiMuoVec+WgS4hLmiTMfz4RQSq3gVn4PIUci6Fj72MMWPqUV\n" +
|
||||
"rJSZ51jIq3OU1xJDS36p92K5V9MoKwLvGLcIPDZuReBOYyW9wjlnSHmROSb+tVXm2SgyFmGlCsrK\n" +
|
||||
"7aRgozh1T1iO56uVpyAROg5shA98oc4wmzaTXXPcXfs2ROsi0T5L6glxC7f6ZHMAJWfRaA9gLkk6\n" +
|
||||
"uW443QD4FtCwlBwBLKJuOAXaD7IS6VadIRwBlKMegarHuySs5qKiZ1XdR4yC8gk0JRvmKFRRHlpT\n" +
|
||||
"ECdEBohRMu9QqZj7KFMX6m+TlIJU9P12SAH1RnGXXfiuHCjYAO/KmAdgS5wOwIZuFNvjdAB2lFRi\n" +
|
||||
"yiPRjTCATsjYFmZHnIovjfMf90i0BOpQ18T87SXWXz+ZKv8BVnFXPlKejoIAAAAASUVORK5CYII=").bitmap
|
||||
}
|
||||
|
||||
/**
|
||||
* Android 12 系统默认图标
|
||||
* @return [Bitmap]
|
||||
*/
|
||||
val android12IconBitmap by lazy {
|
||||
("iVBORw0KGgoAAAANSUhEUgAAAEIAAABCCAYAAADjVADoAAAAAXNSR0IArs4c6QAAAARzQklUCAgI\n" +
|
||||
"CHwIZIgAAANkSURBVHic7ZvNkRoxEIWfXL4vIbBVvpsMTAhksIRgRwAZsBnAxWfjCMARGM4+MBkw\n" +
|
||||
"RPB8kKh1zagljUYzwlv6qrZ2a0fo50lq9agboFAoFApeVI5GSX4xf07NDwDUAE4AbkqpU45+9Ybk\n" +
|
||||
"hOTK8/yF5JbklX6uJH+QfPG0uyI5ST+iCMwgf5sBbC3PVoGDd4nSGrARlabtvGI0RLizNc9eegrQ\n" +
|
||||
"5EJy0RDhTj4xBBHu/EkoQGjdvcT40EOLKYBn4dmnHvX6kOp+xpvh7UyvU4PkDMARwFOHj50B7KBP\n" +
|
||||
"iEopVZmZnOHtFFkA+NyhzhuAedbThuSMZB2wpHckg2eM5JzkMaDem5mQ/JD86ehoTXLeo+6lR+jv\n" +
|
||||
"KccSjZk5iRMTWHP6V1200MmgPtYGE+GfdlxiXFK1E9u5pdCxmh3sQYf2Jg4xlqnb69IxaTUsBmxz\n" +
|
||||
"LbR5GKpNX4dmQoeOI7RdCW1Hnx59HCrJQL02/0FySnJD8kDtHovbJrDsumOfhoN297oWyjZnUDRu\n" +
|
||||
"oWVptxX7VOMLRliaO0s56XhtLeOOZfe2grHj6bM1bFSJ63OR//KGsqG0nhZsL3dRsNCyJBehqyeE\n" +
|
||||
"jzEfAiA5SlYbAW3EvkK/WFWQjV2XshWAX96eDoljL+d3dSNJbSP+W4oQhiKEoQhhiD01JDYUvMsR\n" +
|
||||
"+RZzZZdaiEe4Mou6Aylbw1CEMBQhDLE2okZu91bbgi6xj/dJaje/bA1DEcJQhDAUIQxRp4a5BdpY\n" +
|
||||
"HkW5t49AHxfbZp2nGO8uUQoJRN2bRm0Nx6yP+a5hFUIpNZ4QDrILMTq0xxWuI7ZvS1SL3pZ9VoQt\n" +
|
||||
"xjnhCFFp6rCB7XW7FWAaHMqxjcFzFajjosliGik6dBI65Ipb9G1TCuyMGWVrdUpKFLlygARQ6ki5\n" +
|
||||
"lMSaL1HEdE7KVbikXKp0J7jmd+LoTia7phDDIwL5KBE2kq8eMZxZ9p6653TndI9/UkiYGZMM551D\n" +
|
||||
"l5mjtgfN5PMmydKUkn1xhdo4HuG/PjsB2EO/E1QAzkqpmnoLPUF7p0v4vdQzdNpx7jhKm8CVkYKk\n" +
|
||||
"OZyDYMTYDSjC49iEEKgdH+lojaFmbl8hFurVsWZY9r5LgDUffSuEQu2F7gNFqam313IsAXJ93XEG\n" +
|
||||
"/fZ4/w3o06QGAKXU4Nm7hUKhUIjgL/9/6dhvvYPfAAAAAElFTkSuQmCC").bitmap
|
||||
}
|
||||
|
||||
/**
|
||||
* Android 13 系统默认图标
|
||||
* @return [Bitmap]
|
||||
*/
|
||||
val android13IconBitmap by lazy {
|
||||
("iVBORw0KGgoAAAANSUhEUgAAAEIAAABCCAYAAADjVADoAAAACXBIWXMAAAsTAAALEwEAmpwYAAAFG2lUWHRYTU" +
|
||||
"w6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZ" +
|
||||
"VN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0i" +
|
||||
"QWRvYmUgWE1QIENvcmUgNi4wLWMwMDYgNzkuZGFiYWNiYiwgMjAyMS8wNC8xNC0wMDozOTo0NCAgICA" +
|
||||
"gICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi" +
|
||||
"1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwO" +
|
||||
"i8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1l" +
|
||||
"bnRzLzEuMS8iIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4" +
|
||||
"wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0RX" +
|
||||
"Z0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiIHhtcDpDc" +
|
||||
"mVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIyLjQgKE1hY2ludG9zaCkiIHhtcDpDcmVhdGVEYXRl" +
|
||||
"PSIyMDIzLTAxLTI3VDAxOjQ2OjAzKzA4OjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAyMy0wMS0yN1QwMTo" +
|
||||
"0NjozOSswODowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAyMy0wMS0yN1QwMTo0NjozOSswODowMCIgZG" +
|
||||
"M6Zm9ybWF0PSJpbWFnZS9wbmciIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHBob3Rvc2hvcDpJQ0NQc" +
|
||||
"m9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDphZjQwOGEx" +
|
||||
"ZC0wM2M4LTRiNTgtYmQxMC1kNDBkYTg4MDU0ODUiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6YWY" +
|
||||
"0MDhhMWQtMDNjOC00YjU4LWJkMTAtZDQwZGE4ODA1NDg1IiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SU" +
|
||||
"Q9InhtcC5kaWQ6YWY0MDhhMWQtMDNjOC00YjU4LWJkMTAtZDQwZGE4ODA1NDg1Ij4gPHhtcE1NOkhpc" +
|
||||
"3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIgc3RFdnQ6aW5zdGFu" +
|
||||
"Y2VJRD0ieG1wLmlpZDphZjQwOGExZC0wM2M4LTRiNTgtYmQxMC1kNDBkYTg4MDU0ODUiIHN0RXZ0Ond" +
|
||||
"oZW49IjIwMjMtMDEtMjdUMDE6NDY6MDMrMDg6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIF" +
|
||||
"Bob3Rvc2hvcCAyMi40IChNYWNpbnRvc2gpIi8+IDwvcmRmOlNlcT4gPC94bXBNTTpIaXN0b3J5PiA8L" +
|
||||
"3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/" +
|
||||
"PqALyqMAAAU1SURBVHic7Vvvces2DP+l1+9lJ6i7gTaoOkG0QdQJnEwQbxC/CaK3gd4EUSaIOkGcCSx" +
|
||||
"PgH4AdVEk/gEp2sy95nfHsywBIAQRJABKV0SELwC/5Fbgs+AShtgAeATwBOABgBLwKABbzXMv5FkHIj" +
|
||||
"pnq4joSB/xQkTKwaM0zRSvRFScU9dzj4gKy6dZALh18Nxqmik2AOoE+lhxdebJ8gjzsB4A/A2gn50vw" +
|
||||
"O5g4jkA+DORXguc2xAu4T3YGIP+r8BGKBw8Vwl0MgvOaIgRvf4tBLRnM8SvkXxb8BMcAHyz0JRCWUVA" +
|
||||
"vwWW7jRCopMdETPsk2FGL2c0G8PMnwJPtFxxCq3DnC7ovkJd4xYcC5jQgCc0BZ7hVfBTkaEHsAc/+Qr" +
|
||||
"21eQfrZMIoYboAPwVwpARz5C7Z3Ac0QXS50QXQpzbECfwk3vWxynRhRDHLJ8d4tzjBKDV/C3e44c5FN" +
|
||||
"j3S/37W0RfQW4BIGrVqANn+p4451iTr/SBfdah/cQoVgiVOcQo5Gi1lilBESo/JumSDLnv4OCniZBvQ" +
|
||||
"6NlfhfQlsHSAy2naBm8zHGbcBTY2q1Hh1dyp/qLZpssCwDX+ngABzElOKBSDrsGBTErUYMLPjYcwLp0" +
|
||||
"4PtR+vwPmMJ0g3Uqj7VzjoTQkWFDNZdlGvrHCMGNRdGSiB6JaEuBQ3Wiz1bLKC00TYS+x7kck+KhOJD" +
|
||||
"5JtWMbm+g8bX9TIatn0OE3h8Mm6JUt4M5OCo8/yWQyBi0DutgsHDIUOs9T3SY0MbMIdM5YPDQ9gF6L1" +
|
||||
"zZ5pedUOBi0jHIqmldBbrQMkxuMW2VUOfOJEv6NEzwPaEcbToCTahtvK45Yg/gznG9Xe2X6dE6rt3BE" +
|
||||
"eP4JkuX4M7DmwOd41rrYpSk4TaC32FPpXNBgfdSTHBWwH1V7NpxrfXwfjbUcLiGa0QU4Fi+SKxQLvTg" +
|
||||
"XKg3XTQZogRwgzPvNWZEA07lu+nJuSEe4N6g/Zmwx2RVnK4aO/x/jADwve7GP9PJsgwU9LxSkQLLwuw" +
|
||||
"J9i09KUIKy+V4MDXEENhhFcEzRYel0j1iymzvULAvnyYM48HUNdrATqtA+kugCqRvx4OpIRrwLrJ0o6" +
|
||||
"UM7PQSKIV0J/C9NuMJ0/KpwP67AVv4ek6gMYCjy1h0WLpG+MbMR9je0AG4VtmCa5k95m4tyOhKRzbnS" +
|
||||
"8NdzZTqdyvkudLw0scvqVB1sO8l3Av4LwXb6wrfIEgQpaW6g+V8gc8RgdZgVzbhIBEgNcTguHaZF0Lt" +
|
||||
"UHCPzEEiRGIIX0cb2IflJfAA+2gYryufEIkhJIJq5AnPd/C7poLkQXlm051jJjbBWhM0tLWrRh2o284" +
|
||||
"lz9WRorhdr63wRtYY4j5CryM5KuEu11CImwT34IJODK8PSsveRfIq20WXIQ4A3iI6BNhvX8AFnlS40T" +
|
||||
"LrSP5/4VhKfZPlznDuBA5Xf8BtqA04ln+BPUyX4BrAq5a1cdC9TfQy5Ut7Zy8Cf6yIt8haWu44KX1e6" +
|
||||
"qOPRHRD9t20Tl+70bRHoezWoFetzzckSAVSvJSuwEMu5u23FDiBR8qwRkiK3fAB66tKa9Ajwf7K18dt" +
|
||||
"GqkM8UciOdn6TvXhSu6PR1d/0HIJ17gDK3oF/nRJEpu8adqRz7Urnwa+ZUXYBsuyZso9NoLlcGPgs+U" +
|
||||
"WQ4p7SGWIwmAMkxHG1jiM0Dj45sYYKNH3oLHfdM3R42O1qoO7PNbBHn67+BpwzFLO/q/Gub/ys0HBHI" +
|
||||
"QlCY5ikCuOGGDOY3bI9PJJrhExosT77lSLjK8j5TbEp8FXiK3xH4bAld9cxsQDAAAAAElFTkSuQmCC").bitmap
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 已存储的 JSON 数据
|
||||
* @return [String]
|
||||
|
@@ -29,11 +29,11 @@ import android.app.PendingIntent
|
||||
import android.content.ComponentName
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.graphics.Bitmap
|
||||
import android.graphics.drawable.Icon
|
||||
import android.os.Build
|
||||
import androidx.core.graphics.drawable.toBitmap
|
||||
import com.fankes.coloros.notify.BuildConfig
|
||||
import com.fankes.coloros.notify.R
|
||||
import com.fankes.coloros.notify.hook.HookEntry
|
||||
import com.fankes.coloros.notify.utils.factory.*
|
||||
|
||||
@@ -53,66 +53,6 @@ object IconAdaptationTool {
|
||||
/** 已过期的日期 */
|
||||
private val outDateLimits = HashSet<String>()
|
||||
|
||||
/**
|
||||
* 使用的小图标
|
||||
* @return [Bitmap]
|
||||
*/
|
||||
private val smallIcon by lazy {
|
||||
("iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAACXBIWXMAAAsTAAALEwEAmpwYAAAG\n" +
|
||||
"x2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkP\n" +
|
||||
"SJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG\n" +
|
||||
"9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNi4wLWMwMDYgNzkuZGF\n" +
|
||||
"iYWNiYiwgMjAyMS8wNC8xNC0wMDozOTo0NCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6\n" +
|
||||
"cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gP\n" +
|
||||
"HJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYW\n" +
|
||||
"RvYmUuY29tL3hhcC8xLjAvIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1\n" +
|
||||
"lbnRzLzEuMS8iIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90\n" +
|
||||
"b3Nob3AvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuM\n" +
|
||||
"C9tbS8iIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cG\n" +
|
||||
"UvUmVzb3VyY2VFdmVudCMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDI\n" +
|
||||
"yLjQgKE1hY2ludG9zaCkiIHhtcDpDcmVhdGVEYXRlPSIyMDIyLTAzLTIzVDAyOjU1OjM2\n" +
|
||||
"KzA4OjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAyMi0wMy0yM1QwMzowMDoyMSswODowMCIge\n" +
|
||||
"G1wOk1ldGFkYXRhRGF0ZT0iMjAyMi0wMy0yM1QwMzowMDoyMSswODowMCIgZGM6Zm9ybW\n" +
|
||||
"F0PSJpbWFnZS9wbmciIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHBob3Rvc2hvcDpJQ0N\n" +
|
||||
"Qcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlp\n" +
|
||||
"ZDpiZGY1YWY2NS1lYjYxLTRiOGUtOTk1NS01OTE5OThkN2ExNDAiIHhtcE1NOkRvY3VtZ\n" +
|
||||
"W50SUQ9ImFkb2JlOmRvY2lkOnBob3Rvc2hvcDo2MDFlYjQ1OC01ZTdlLWFjNDYtODA0Mi\n" +
|
||||
"1iNWJmYTFhYWQwNGMiIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDpjYTU\n" +
|
||||
"4YTA1ZS04OTU1LTQyNzItODg2NC0xNmI5MWI0YzcxMmUiPiA8eG1wTU06SGlzdG9yeT4g\n" +
|
||||
"PHJkZjpTZXE+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJjcmVhdGVkIiBzdEV2dDppbnN0Y\n" +
|
||||
"W5jZUlEPSJ4bXAuaWlkOmNhNThhMDVlLTg5NTUtNDI3Mi04ODY0LTE2YjkxYjRjNzEyZS\n" +
|
||||
"Igc3RFdnQ6d2hlbj0iMjAyMi0wMy0yM1QwMjo1NTozNiswODowMCIgc3RFdnQ6c29mdHd\n" +
|
||||
"hcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIDIyLjQgKE1hY2ludG9zaCkiLz4gPHJkZjps\n" +
|
||||
"aSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjg5Y\n" +
|
||||
"mIxNTI1LWVjYmMtNGY2NC1iZTRlLWU1N2EyNjQ1NDE1YyIgc3RFdnQ6d2hlbj0iMjAyMi\n" +
|
||||
"0wMy0yM1QwMjo1NzoxMCswODowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGh\n" +
|
||||
"vdG9zaG9wIDIyLjQgKE1hY2ludG9zaCkiIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4gPHJkZjps\n" +
|
||||
"aSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOmJkZ\n" +
|
||||
"jVhZjY1LWViNjEtNGI4ZS05OTU1LTU5MTk5OGQ3YTE0MCIgc3RFdnQ6d2hlbj0iMjAyMi\n" +
|
||||
"0wMy0yM1QwMzowMDoyMSswODowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGh\n" +
|
||||
"vdG9zaG9wIDIyLjQgKE1hY2ludG9zaCkiIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4gPC9yZGY6\n" +
|
||||
"U2VxPiA8L3htcE1NOkhpc3Rvcnk+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+I\n" +
|
||||
"DwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+QdGsggAAA35JREFUaIHtmE2IVW\n" +
|
||||
"Ucxn9z0Ukm7cMSo1AxUwjNIclLRVSL0CAoyD5oYwS1iogWGW0rwQpcJNjCRdKmTR+SBhF\n" +
|
||||
"BWWZlZllmOgsT/EqHKRuqMVv8XJy5zPGd95x75hyh03Ae+C/O//2/z3Oee97P26MyGdD6\n" +
|
||||
"r1/gQqExUjc0RuqGxkjd0BipGxojdcOkMTKlS/tCYBXQBvqBWcA/wI/AD8AW4NML9C79w\n" +
|
||||
"APAYmAOcCUwCBwCvgTeB37J7K3Goq1utRgG1NUZPEXibnVnQa231CUxnhjxmoKkId5WWx\n" +
|
||||
"M08XpJrSe7GXmlJHEH36l9oUgketRPKmqtS3P2OHaxWgO8HBl9vwPbgM+AU8B0YAnJ3Fk\n" +
|
||||
"Uqd8HLAfO5MyHz4HbIvkh4ENgJ/Dn6DxZCdxFfGF6GngtPUeuz3D9qnpZzi/7mDoS6fe9\n" +
|
||||
"Oi1SP0XdnqH1vDo9Q2eeujmj33WmhtbuSMFTOQbSsUg9Gem/3/HDbEuk7ox6c0GtZyP9d\n" +
|
||||
"3WMLIg0vlGQuBPz1cEIzx51aqouxN/qsglqvRnhWYj6UpAcVnsnSN75/MciIntTfC+m8r\n" +
|
||||
"+qi0vo9Kp/BBrrUD8KkutLkHdijvpbxMy3jn2Z1eoL6uUVdDYE/NtRjwfJ+yoIoF6rnoi\n" +
|
||||
"Y2VORNx33B9wHWsDMYEk7m7NsFsEhYBlwMsjfCOwFplbkBzgdPPe2gOEg2e38VQQnSMwM\n" +
|
||||
"BvmlwBfAtIr8FwXPIy1gf5BsVxS5ieTQd5zEzFDQvhzYBfRU0OgPnk/j+GPJYMlx26d+P\n" +
|
||||
"MpxNjXX5hlfmneYbJBltAYCrk2YnCZDnHeOKRAXqz8FHMOp9mtMltsQu0uYeTzC085yqL\n" +
|
||||
"qqIPFMdV+k/46gbr7xpflrz98086Kt/hv0P6JjR5RbIwKqz5h/NF/p+OVb9bA6O1I/N6P\n" +
|
||||
"+Z/WWLiYezXjHO9JGMBlOMRxW16r3mhwn7jS5D2Rdho6ps3JeKGuYaXKnedhkL5qhLlWf\n" +
|
||||
"UL/KqN/Y4Q1FNmd0KIqj6tU5JtJmjnThGu7S/k6aMyayvpSF5FfL+xJhXKF+U1JrU8iXJ\n" +
|
||||
"bLC7M8Z4pTJXJrIypOO59ShgloH1YdiPOkbYgy3A48ANwBXAZcCIyQ79gDwAfAe8FeFzQ\n" +
|
||||
"3gEuBB4B5gATAb6BvlPUpy63wX2JpF0M3I/waT5g+6xkjd0BipGxojdUNjpG5ojNQNjZG\n" +
|
||||
"64Rx5J7QeMy++3AAAAABJRU5ErkJggg==").bitmap
|
||||
}
|
||||
|
||||
/**
|
||||
* 推送新 APP 安装适配通知
|
||||
* @param context 实例
|
||||
@@ -134,7 +74,7 @@ object IconAdaptationTool {
|
||||
setContentText("尚未适配此应用,点按打开在线规则。")
|
||||
setColor(0xFF2993F0.toInt())
|
||||
setAutoCancel(true)
|
||||
setSmallIcon(Icon.createWithBitmap(smallIcon))
|
||||
setSmallIcon(Icon.createWithResource(BuildConfig.APPLICATION_ID, R.drawable.ic_unsupported))
|
||||
setLargeIcon(context.appIconOf(packageName)?.toBitmap())
|
||||
setContentIntent(
|
||||
PendingIntent.getActivity(
|
||||
|
12
app/src/main/res/drawable/ic_unsupported.xml
Normal file
12
app/src/main/res/drawable/ic_unsupported.xml
Normal file
@@ -0,0 +1,12 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="52dp"
|
||||
android:height="52dp"
|
||||
android:viewportWidth="739.56"
|
||||
android:viewportHeight="739.56">
|
||||
<path
|
||||
android:fillColor="#ffffff"
|
||||
android:pathData="m207.74,575.04c-105.24,0 -192,-86.76 -192,-192 0,-105.24 86.76,-192 192,-192 36.98,0 72.53,9.96 103.82,29.87 12.8,8.53 17.07,25.6 8.53,39.82 -8.53,12.8 -25.6,17.07 -39.82,8.53 -21.33,-14.22 -46.93,-21.33 -72.53,-21.33 -73.96,0 -135.11,61.16 -135.11,135.11 0,73.96 61.16,135.11 135.11,135.11 73.96,0 135.11,-61.16 135.11,-135.11 0,-15.64 12.8,-28.44 28.44,-28.44 15.64,0 28.44,12.8 28.44,28.44 0,105.24 -86.76,192 -192,192z" />
|
||||
<path
|
||||
android:fillColor="#ffffff"
|
||||
android:pathData="m534.85,575.04c-39.82,0 -78.22,-11.38 -109.51,-34.13 -12.8,-8.53 -15.64,-27.02 -7.11,-39.82 8.53,-12.8 27.02,-15.64 39.82,-7.11 22.76,15.64 49.78,24.18 76.8,24.18 73.96,0 135.11,-61.16 135.11,-135.11 0,-73.96 -61.16,-135.11 -135.11,-135.11 -73.96,0 -135.11,61.16 -135.11,135.11 0,15.64 -12.8,28.44 -28.44,28.44 -15.64,0 -28.44,-12.8 -28.44,-28.44 0,-105.24 86.76,-192 192,-192 105.24,0 192,85.33 192,192 0,105.24 -86.76,192 -192,192z" />
|
||||
</vector>
|
Reference in New Issue
Block a user