From d177620784bf02507f1afadeece19628f963b148 Mon Sep 17 00:00:00 2001 From: fankesyooni Date: Tue, 31 May 2022 03:43:46 +0800 Subject: [PATCH] Added notify icon custom corner function --- .../fankes/coloros/notify/data/DataConst.kt | 1 + .../notify/hook/entity/SystemUIHooker.kt | 7 +- .../notify/ui/activity/MainActivity.kt | 18 +++ app/src/main/res/layout/activity_main.xml | 115 +++++++++++++++--- 4 files changed, 121 insertions(+), 20 deletions(-) diff --git a/app/src/main/java/com/fankes/coloros/notify/data/DataConst.kt b/app/src/main/java/com/fankes/coloros/notify/data/DataConst.kt index a0fb822..3e1a939 100644 --- a/app/src/main/java/com/fankes/coloros/notify/data/DataConst.kt +++ b/app/src/main/java/com/fankes/coloros/notify/data/DataConst.kt @@ -41,6 +41,7 @@ object DataConst { val ENABLE_NOTIFY_ICON_FIX_AUTO = PrefsData("_enable_notify_icon_fix_auto", true) val ENABLE_NOTIFY_PANEL_ALPHA = PrefsData("_enable_notify_panel_alpha", false) val ENABLE_NOTIFY_MEDIA_PANEL_AUTO_EXP = PrefsData("_enable_notify_media_panel_auto_exp", false) + val NOTIFY_ICON_CORNER = PrefsData("_notify_icon_corner", 10) val NOTIFY_PANEL_ALPHA = PrefsData("_notify_panel_alpha_pst", 75) val NOTIFY_ICON_DATAS = PrefsData("_notify_icon_datas", "") val NOTIFY_ICON_FIX_AUTO_TIME = PrefsData("_notify_icon_fix_auto_time", "07:00") diff --git a/app/src/main/java/com/fankes/coloros/notify/hook/entity/SystemUIHooker.kt b/app/src/main/java/com/fankes/coloros/notify/hook/entity/SystemUIHooker.kt index 682408b..68e85f8 100644 --- a/app/src/main/java/com/fankes/coloros/notify/hook/entity/SystemUIHooker.kt +++ b/app/src/main/java/com/fankes/coloros/notify/hook/entity/SystemUIHooker.kt @@ -462,7 +462,12 @@ object SystemUIHooker : YukiBaseHooker() { /** 判断风格并开始 Hook */ if (isA12Style) { - background = DrawableBuilder().rounded().solidColor(newApplyColor).build() + /** 通知图标边框圆角大小 */ + background = DrawableBuilder() + .rectangle() + .cornerRadius(prefs.get(DataConst.NOTIFY_ICON_CORNER).dp(context)) + .solidColor(newApplyColor) + .build() setColorFilter(newStyle) setPadding(2.dp(context), 2.dp(context), 2.dp(context), 2.dp(context)) } else { diff --git a/app/src/main/java/com/fankes/coloros/notify/ui/activity/MainActivity.kt b/app/src/main/java/com/fankes/coloros/notify/ui/activity/MainActivity.kt index f35842a..9781244 100644 --- a/app/src/main/java/com/fankes/coloros/notify/ui/activity/MainActivity.kt +++ b/app/src/main/java/com/fankes/coloros/notify/ui/activity/MainActivity.kt @@ -124,6 +124,8 @@ class MainActivity : BaseActivity() { binding.a12StyleConfigItem.isVisible = modulePrefs.get(DataConst.ENABLE_MODULE) binding.notifyIconConfigItem.isVisible = modulePrefs.get(DataConst.ENABLE_MODULE) binding.notifyIconFixButton.isVisible = modulePrefs.get(DataConst.ENABLE_NOTIFY_ICON_FIX) + binding.notifyIconCustomCornerItem.isVisible = modulePrefs.get(DataConst.ENABLE_NOTIFY_ICON_FIX) && + modulePrefs.get(DataConst.ENABLE_NOTIFY_ICON_FORCE_APP_ICON).not() binding.notifyIconForceAppIconItem.isVisible = modulePrefs.get(DataConst.ENABLE_NOTIFY_ICON_FIX) binding.notifyIconFixNotifyItem.isVisible = modulePrefs.get(DataConst.ENABLE_NOTIFY_ICON_FIX) binding.notifyIconAutoSyncItem.isVisible = modulePrefs.get(DataConst.ENABLE_NOTIFY_ICON_FIX) @@ -145,7 +147,9 @@ class MainActivity : BaseActivity() { binding.notifyIconAutoSyncSwitch.isChecked = modulePrefs.get(DataConst.ENABLE_NOTIFY_ICON_FIX_AUTO) binding.notifyPanelConfigSwitch.isChecked = modulePrefs.get(DataConst.ENABLE_NOTIFY_PANEL_ALPHA) binding.notifyPanelConfigSeekbar.progress = modulePrefs.get(DataConst.NOTIFY_PANEL_ALPHA) + binding.notifyIconCustomCornerSeekbar.progress = modulePrefs.get(DataConst.NOTIFY_ICON_CORNER) binding.notifyPanelConfigText.text = "${modulePrefs.get(DataConst.NOTIFY_PANEL_ALPHA)}%" + binding.notifyIconCustomCornerText.text = "${modulePrefs.get(DataConst.NOTIFY_ICON_CORNER)} dp" binding.notifyIconAutoSyncText.text = notifyIconAutoSyncTime /** 媒体通知自动展开仅支持 12.1 - 旧版本适配过于复杂已放弃 */ if (colorOSNumberVersion != "V12.1") { @@ -179,6 +183,7 @@ class MainActivity : BaseActivity() { if (btn.isPressed.not()) return@setOnCheckedChangeListener modulePrefs.put(DataConst.ENABLE_NOTIFY_ICON_FIX, b) binding.notifyIconFixButton.isVisible = b + binding.notifyIconCustomCornerItem.isVisible = b && modulePrefs.get(DataConst.ENABLE_NOTIFY_ICON_FORCE_APP_ICON).not() binding.notifyIconForceAppIconItem.isVisible = b binding.notifyIconFixNotifyItem.isVisible = b binding.notifyIconAutoSyncItem.isVisible = b @@ -187,6 +192,7 @@ class MainActivity : BaseActivity() { binding.notifyIconForceAppIconSwitch.setOnCheckedChangeListener { btn, b -> if (btn.isPressed.not()) return@setOnCheckedChangeListener fun saveState() { + binding.notifyIconCustomCornerItem.isVisible = b.not() modulePrefs.put(DataConst.ENABLE_NOTIFY_ICON_FORCE_APP_ICON, b) SystemUITool.refreshSystemUI(context = this) } @@ -256,6 +262,18 @@ class MainActivity : BaseActivity() { override fun onStartTrackingTouch(seekBar: SeekBar?) {} }) + binding.notifyIconCustomCornerSeekbar.setOnSeekBarChangeListener(object : OnSeekBarChangeListener { + override fun onProgressChanged(seekBar: SeekBar?, progress: Int, fromUser: Boolean) { + binding.notifyIconCustomCornerText.text = "$progress dp" + } + + override fun onStopTrackingTouch(seekBar: SeekBar) { + modulePrefs.put(DataConst.NOTIFY_ICON_CORNER, seekBar.progress) + SystemUITool.refreshSystemUI(context = this@MainActivity) + } + + override fun onStartTrackingTouch(seekBar: SeekBar?) {} + }) /** 通知图标优化名单按钮点击事件 */ binding.notifyIconFixButton.setOnClickListener { navigate() } /** 自动更新在线规则修改时间按钮点击事件 */ diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index bb6fea2..0557002 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -563,15 +563,13 @@ android:elevation="0dp" android:gravity="center" android:orientation="vertical" - android:paddingLeft="10dp" - android:paddingTop="15dp" - android:paddingRight="10dp"> + android:paddingTop="15dp"> @@ -604,8 +602,8 @@ android:id="@+id/notify_icon_fix_button" android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_marginLeft="3dp" - android:layout_marginRight="3dp" + android:layout_marginLeft="13dp" + android:layout_marginRight="13dp" android:layout_marginBottom="10dp" android:background="@drawable/bg_button_round" android:gravity="center" @@ -618,8 +616,8 @@ + + + + + + + + + + + + + + + +