mirror of
https://github.com/fankes/MIUINativeNotifyIcon.git
synced 2025-09-06 02:35:32 +08:00
Modify change Android 12 notification icon style contents to Material 3 in SystemUIHooker, activity_main
This commit is contained in:
@@ -386,14 +386,14 @@ object SystemUIHooker : YukiBaseHooker() {
|
|||||||
* @param expandedNf 通知实例
|
* @param expandedNf 通知实例
|
||||||
* @param iconImageView 通知图标实例
|
* @param iconImageView 通知图标实例
|
||||||
* @param isExpanded 通知是否展开 - 可做最小化通知处理 - 默认:是
|
* @param isExpanded 通知是否展开 - 可做最小化通知处理 - 默认:是
|
||||||
* @param isUseAndroid12Style 是否使用 Android 12 通知图标风格 - 默认跟随系统版本决定
|
* @param isUseMaterial3Style 是否使用 Material 3 通知图标风格 - 默认跟随系统版本决定
|
||||||
*/
|
*/
|
||||||
private fun compatNotifyIcon(
|
private fun compatNotifyIcon(
|
||||||
context: Context,
|
context: Context,
|
||||||
expandedNf: StatusBarNotification?,
|
expandedNf: StatusBarNotification?,
|
||||||
iconImageView: ImageView,
|
iconImageView: ImageView,
|
||||||
isExpanded: Boolean = true,
|
isExpanded: Boolean = true,
|
||||||
isUseAndroid12Style: Boolean = isUpperOfAndroidS,
|
isUseMaterial3Style: Boolean = isUpperOfAndroidS,
|
||||||
) = runInSafe(msg = "compatNotifyIcon") {
|
) = runInSafe(msg = "compatNotifyIcon") {
|
||||||
/**
|
/**
|
||||||
* 设置默认通知图标
|
* 设置默认通知图标
|
||||||
@@ -414,7 +414,7 @@ object SystemUIHooker : YukiBaseHooker() {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (isUseAndroid12Style) {
|
if (isUseMaterial3Style) {
|
||||||
/** 清除原生的背景边距 */
|
/** 清除原生的背景边距 */
|
||||||
setPadding(0, 0, 0, 0)
|
setPadding(0, 0, 0, 0)
|
||||||
/** 清除原生的主题色背景圆圈颜色 */
|
/** 清除原生的主题色背景圆圈颜色 */
|
||||||
@@ -445,7 +445,7 @@ object SystemUIHooker : YukiBaseHooker() {
|
|||||||
/** 通知图标适配颜色 */
|
/** 通知图标适配颜色 */
|
||||||
val supportColor = iconColor.let {
|
val supportColor = iconColor.let {
|
||||||
when {
|
when {
|
||||||
isUseAndroid12Style -> newStyle
|
isUseMaterial3Style -> newStyle
|
||||||
it == 0 || isExpanded.not() -> oldStyle
|
it == 0 || isExpanded.not() -> oldStyle
|
||||||
else -> it
|
else -> it
|
||||||
}
|
}
|
||||||
@@ -465,8 +465,8 @@ object SystemUIHooker : YukiBaseHooker() {
|
|||||||
var customIconColor: Int
|
var customIconColor: Int
|
||||||
compatCustomIcon(isGrayscaleIcon, notifyInstance.nfPkgName).also {
|
compatCustomIcon(isGrayscaleIcon, notifyInstance.nfPkgName).also {
|
||||||
customIcon = it.first
|
customIcon = it.first
|
||||||
customIconColor = if (isUseAndroid12Style || isExpanded)
|
customIconColor = if (isUseMaterial3Style || isExpanded)
|
||||||
(it.second.takeIf { e -> e != 0 } ?: (if (isUseAndroid12Style) context.systemAccentColor else 0)) else 0
|
(it.second.takeIf { e -> e != 0 } ?: (if (isUseMaterial3Style) context.systemAccentColor else 0)) else 0
|
||||||
}
|
}
|
||||||
/** 打印日志 */
|
/** 打印日志 */
|
||||||
printLogcat(tag = "NotifyIcon", context, notifyInstance, isCustom = customIcon != null, isGrayscaleIcon)
|
printLogcat(tag = "NotifyIcon", context, notifyInstance, isCustom = customIcon != null, isGrayscaleIcon)
|
||||||
@@ -480,16 +480,16 @@ object SystemUIHooker : YukiBaseHooker() {
|
|||||||
/** 设置自定义小图标 */
|
/** 设置自定义小图标 */
|
||||||
setImageBitmap(customIcon)
|
setImageBitmap(customIcon)
|
||||||
/** 上色 */
|
/** 上色 */
|
||||||
setColorFilter(if (isUseAndroid12Style || customIconColor == 0) supportColor else customIconColor)
|
setColorFilter(if (isUseMaterial3Style || customIconColor == 0) supportColor else customIconColor)
|
||||||
/** Android 12 设置图标外圈颜色 */
|
/** 设置图标外圈颜色 */
|
||||||
if (isUseAndroid12Style && customIconColor != 0)
|
if (isUseMaterial3Style && customIconColor != 0)
|
||||||
background = DrawableBuilder()
|
background = DrawableBuilder()
|
||||||
.rectangle()
|
.rectangle()
|
||||||
.cornerRadius(iconCorner.dp(context))
|
.cornerRadius(iconCorner.dp(context))
|
||||||
.solidColor(if (context.isSystemInDarkMode) customIconColor.brighterColor else customIconColor)
|
.solidColor(if (context.isSystemInDarkMode) customIconColor.brighterColor else customIconColor)
|
||||||
.build()
|
.build()
|
||||||
/** 设置原生的背景边距 */
|
/** 设置原生的背景边距 */
|
||||||
if (isUseAndroid12Style) setPadding(4.dp(context), 4.dp(context), 4.dp(context), 4.dp(context))
|
if (isUseMaterial3Style) setPadding(4.dp(context), 4.dp(context), 4.dp(context), 4.dp(context))
|
||||||
}
|
}
|
||||||
else -> {
|
else -> {
|
||||||
/** 重新设置图标 - 防止系统更改它 */
|
/** 重新设置图标 - 防止系统更改它 */
|
||||||
@@ -500,9 +500,9 @@ object SystemUIHooker : YukiBaseHooker() {
|
|||||||
clipToOutline = false
|
clipToOutline = false
|
||||||
/** 设置图标着色 */
|
/** 设置图标着色 */
|
||||||
setColorFilter(supportColor)
|
setColorFilter(supportColor)
|
||||||
/** Android 12 设置图标外圈颜色 */
|
/** 设置图标外圈颜色 */
|
||||||
(if (hasIconColor) iconColor else context.systemAccentColor).also {
|
(if (hasIconColor) iconColor else context.systemAccentColor).also {
|
||||||
if (isUseAndroid12Style)
|
if (isUseMaterial3Style)
|
||||||
background = DrawableBuilder()
|
background = DrawableBuilder()
|
||||||
.rectangle()
|
.rectangle()
|
||||||
.cornerRadius(iconCorner.dp(context))
|
.cornerRadius(iconCorner.dp(context))
|
||||||
@@ -510,7 +510,7 @@ object SystemUIHooker : YukiBaseHooker() {
|
|||||||
.build()
|
.build()
|
||||||
}
|
}
|
||||||
/** 设置原生的背景边距 */
|
/** 设置原生的背景边距 */
|
||||||
if (isUseAndroid12Style) setPadding(4.dp(context), 4.dp(context), 4.dp(context), 4.dp(context))
|
if (isUseMaterial3Style) setPadding(4.dp(context), 4.dp(context), 4.dp(context), 4.dp(context))
|
||||||
} else setDefaultNotifyIcon(notifyInstance.compatPushingIcon(context, iconDrawable))
|
} else setDefaultNotifyIcon(notifyInstance.compatPushingIcon(context, iconDrawable))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -919,7 +919,7 @@ object SystemUIHooker : YukiBaseHooker() {
|
|||||||
context = context,
|
context = context,
|
||||||
expandedNf = instance.getRowPair().second.getSbn(),
|
expandedNf = instance.getRowPair().second.getSbn(),
|
||||||
iconImageView = this,
|
iconImageView = this,
|
||||||
isUseAndroid12Style = true
|
isUseMaterial3Style = true
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -937,7 +937,7 @@ object SystemUIHooker : YukiBaseHooker() {
|
|||||||
field { name = "mAppIcon" }.get(instance).cast<ImageView>()?.apply {
|
field { name = "mAppIcon" }.get(instance).cast<ImageView>()?.apply {
|
||||||
compatNotifyIcon(context, NotificationChildrenContainerClass.toClassOrNull()?.field {
|
compatNotifyIcon(context, NotificationChildrenContainerClass.toClassOrNull()?.field {
|
||||||
name = "mContainingNotification"
|
name = "mContainingNotification"
|
||||||
}?.get(instance)?.any()?.getSbn(), iconImageView = this, isUseAndroid12Style = true)
|
}?.get(instance)?.any()?.getSbn(), iconImageView = this, isUseMaterial3Style = true)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -674,11 +674,24 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginLeft="15dp"
|
android:layout_marginLeft="15dp"
|
||||||
android:layout_marginRight="15dp"
|
android:layout_marginRight="15dp"
|
||||||
|
android:layout_marginBottom="10dp"
|
||||||
android:alpha="0.6"
|
android:alpha="0.6"
|
||||||
android:lineSpacingExtra="6dp"
|
android:lineSpacingExtra="6dp"
|
||||||
android:text="你可以拖拽滑动条来调整通知栏中图标的边框圆角大小,仅支持 Android 12 风格以及 MIUI 经典样式的通知图标。"
|
android:text="你可以拖拽滑动条来调整通知栏中图标的边框圆角大小。"
|
||||||
android:textColor="@color/colorTextDark"
|
android:textColor="@color/colorTextDark"
|
||||||
android:textSize="12sp" />
|
android:textSize="12sp" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginLeft="15dp"
|
||||||
|
android:layout_marginRight="15dp"
|
||||||
|
android:alpha="0.6"
|
||||||
|
android:lineSpacingExtra="6dp"
|
||||||
|
android:text="此功能仅支持 Android 12 及以上系统的 Material 3 通知图标风格以及 MIUI 后期的经典样式通知图标风格。"
|
||||||
|
android:textColor="@color/colorTextDark"
|
||||||
|
android:textSize="12sp"
|
||||||
|
android:textStyle="bold" />
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
|
Reference in New Issue
Block a user