From 890923d9bb6794f3529884bb2956d2aed1f1653d Mon Sep 17 00:00:00 2001 From: Fankesyooni Date: Thu, 24 Mar 2022 01:51:59 +0800 Subject: [PATCH] Merge code --- .../coloros/notify/ui/activity/MainActivity.kt | 14 +------------- .../notify/utils/factory/FunctionFactory.kt | 11 +++++++++++ .../notify/utils/tool/IconRuleManagerTool.kt | 12 ++++++++---- .../coloros/notify/utils/tool/SystemUITool.kt | 10 +++++----- 4 files changed, 25 insertions(+), 22 deletions(-) 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 4540314..7b12acd 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 @@ -24,11 +24,8 @@ package com.fankes.coloros.notify.ui.activity -import android.app.Notification import android.content.ComponentName -import android.content.Intent import android.content.pm.PackageManager -import android.provider.Settings import androidx.core.view.isVisible import com.fankes.coloros.notify.BuildConfig import com.fankes.coloros.notify.R @@ -102,16 +99,7 @@ class MainActivity : BaseActivity() { showDialog { title = "模块的通知权限已关闭" msg = "请开启通知权限,以确保你能收到通知优化图标在线规则的更新。" - confirmButton { - runCatching { - Intent().also { intent -> - intent.action = Settings.ACTION_APP_NOTIFICATION_SETTINGS - intent.putExtra(Settings.EXTRA_APP_PACKAGE, packageName) - intent.putExtra(Notification.EXTRA_CHANNEL_ID, applicationInfo.uid) - startActivity(intent) - } - }.onFailure { snake(msg = "跳转通知设置失败") } - } + confirmButton { openNotifySetting() } cancelButton() noCancelable() } diff --git a/app/src/main/java/com/fankes/coloros/notify/utils/factory/FunctionFactory.kt b/app/src/main/java/com/fankes/coloros/notify/utils/factory/FunctionFactory.kt index bf65583..9d207ef 100644 --- a/app/src/main/java/com/fankes/coloros/notify/utils/factory/FunctionFactory.kt +++ b/app/src/main/java/com/fankes/coloros/notify/utils/factory/FunctionFactory.kt @@ -25,6 +25,7 @@ package com.fankes.coloros.notify.utils.factory import android.app.Activity +import android.app.Notification import android.app.WallpaperManager import android.app.WallpaperManager.FLAG_SYSTEM import android.content.ClipData @@ -355,6 +356,16 @@ fun Context.openSelfSetting(packageName: String = appContext.packageName) = runC else toast(msg = "你没有安装此应用") }.onFailure { toast(msg = "启动 $packageName 应用信息失败") } +/** 跳转通知设置界面 */ +fun Context.openNotifySetting() = runCatching { + Intent().also { intent -> + intent.action = Settings.ACTION_APP_NOTIFICATION_SETTINGS + intent.putExtra(Settings.EXTRA_APP_PACKAGE, packageName) + intent.putExtra(Notification.EXTRA_CHANNEL_ID, applicationInfo.uid) + startActivity(intent) + } +}.onFailure { snake(msg = "跳转通知设置失败") } + /** * 复制到剪贴板 * @param content 要复制的文本 diff --git a/app/src/main/java/com/fankes/coloros/notify/utils/tool/IconRuleManagerTool.kt b/app/src/main/java/com/fankes/coloros/notify/utils/tool/IconRuleManagerTool.kt index e6b9413..7d9f20d 100644 --- a/app/src/main/java/com/fankes/coloros/notify/utils/tool/IconRuleManagerTool.kt +++ b/app/src/main/java/com/fankes/coloros/notify/utils/tool/IconRuleManagerTool.kt @@ -50,9 +50,7 @@ import com.fankes.coloros.notify.hook.HookConst.TYPE_SOURCE_SYNC_WAY_2 import com.fankes.coloros.notify.hook.HookConst.TYPE_SOURCE_SYNC_WAY_3 import com.fankes.coloros.notify.param.IconPackParams import com.fankes.coloros.notify.ui.activity.ConfigureActivity -import com.fankes.coloros.notify.utils.factory.safeOfNull -import com.fankes.coloros.notify.utils.factory.showDialog -import com.fankes.coloros.notify.utils.factory.snake +import com.fankes.coloros.notify.utils.factory.* import com.highcapable.yukihookapi.hook.factory.modulePrefs import com.highcapable.yukihookapi.hook.log.loggerD import okhttp3.* @@ -366,7 +364,13 @@ object IconRuleManagerTool { */ fun refreshSystemUI(context: Context) { if (context !is AppCompatActivity) return - context.showDialog { + if (isNotNoificationEnabled) context.showDialog { + title = "模块的通知权限已关闭" + msg = "请开启通知权限然后重启系统界面,否则无法动态刷新系统界面使更改生效。" + confirmButton { context.openNotifySetting() } + cancelButton() + noCancelable() + } else context.showDialog { title = "请稍后" progressContent = "正在刷新系统界面改变" /** 发送通知提醒宿主更新图标缓存 */ diff --git a/app/src/main/java/com/fankes/coloros/notify/utils/tool/SystemUITool.kt b/app/src/main/java/com/fankes/coloros/notify/utils/tool/SystemUITool.kt index 36826de..412bafb 100644 --- a/app/src/main/java/com/fankes/coloros/notify/utils/tool/SystemUITool.kt +++ b/app/src/main/java/com/fankes/coloros/notify/utils/tool/SystemUITool.kt @@ -23,7 +23,10 @@ package com.fankes.coloros.notify.utils.tool import android.content.Context -import com.fankes.coloros.notify.utils.factory.* +import com.fankes.coloros.notify.utils.factory.execShellSu +import com.fankes.coloros.notify.utils.factory.showDialog +import com.fankes.coloros.notify.utils.factory.snake +import com.fankes.coloros.notify.utils.factory.toast import com.google.android.material.snackbar.Snackbar import com.highcapable.yukihookapi.hook.factory.isXposedModuleActive @@ -71,9 +74,6 @@ object SystemUITool { * @param context 实例 */ fun showNeedUpdateApplySnake(context: Context) = - if (isXposedModuleActive) - if (isNotNoificationEnabled) - context.snake(msg = "无通知权限,请重启系统界面使更改生效", actionText = "立即重启") { restartSystemUI(context) } - else context.snake(msg = "通知图标优化名单已完成同步") + if (isXposedModuleActive) context.snake(msg = "通知图标优化名单已完成同步") else context.snake(msg = "模块没有激活,更改不会生效") } \ No newline at end of file