diff --git a/app/src/main/java/com/fankes/miui/notify/ui/activity/MainActivity.kt b/app/src/main/java/com/fankes/miui/notify/ui/activity/MainActivity.kt index 2c18ce2..e777b47 100644 --- a/app/src/main/java/com/fankes/miui/notify/ui/activity/MainActivity.kt +++ b/app/src/main/java/com/fankes/miui/notify/ui/activity/MainActivity.kt @@ -24,11 +24,9 @@ package com.fankes.miui.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.isGone import androidx.core.view.isVisible import com.fankes.miui.notify.BuildConfig @@ -121,16 +119,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/miui/notify/utils/factory/FunctionFactory.kt b/app/src/main/java/com/fankes/miui/notify/utils/factory/FunctionFactory.kt index 53afe8b..dc6d509 100644 --- a/app/src/main/java/com/fankes/miui/notify/utils/factory/FunctionFactory.kt +++ b/app/src/main/java/com/fankes/miui/notify/utils/factory/FunctionFactory.kt @@ -25,6 +25,7 @@ package com.fankes.miui.notify.utils.factory import android.app.Activity +import android.app.Notification import android.content.ClipData import android.content.ClipboardManager import android.content.Context @@ -422,6 +423,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/miui/notify/utils/tool/IconRuleManagerTool.kt b/app/src/main/java/com/fankes/miui/notify/utils/tool/IconRuleManagerTool.kt index 47c22da..e353854 100644 --- a/app/src/main/java/com/fankes/miui/notify/utils/tool/IconRuleManagerTool.kt +++ b/app/src/main/java/com/fankes/miui/notify/utils/tool/IconRuleManagerTool.kt @@ -50,9 +50,7 @@ import com.fankes.miui.notify.hook.HookConst.TYPE_SOURCE_SYNC_WAY_2 import com.fankes.miui.notify.hook.HookConst.TYPE_SOURCE_SYNC_WAY_3 import com.fankes.miui.notify.params.IconPackParams import com.fankes.miui.notify.ui.activity.ConfigureActivity -import com.fankes.miui.notify.utils.factory.safeOfNull -import com.fankes.miui.notify.utils.factory.showDialog -import com.fankes.miui.notify.utils.factory.snake +import com.fankes.miui.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/miui/notify/utils/tool/SystemUITool.kt b/app/src/main/java/com/fankes/miui/notify/utils/tool/SystemUITool.kt index 122cb79..77d461d 100644 --- a/app/src/main/java/com/fankes/miui/notify/utils/tool/SystemUITool.kt +++ b/app/src/main/java/com/fankes/miui/notify/utils/tool/SystemUITool.kt @@ -23,7 +23,10 @@ package com.fankes.miui.notify.utils.tool import android.content.Context -import com.fankes.miui.notify.utils.factory.* +import com.fankes.miui.notify.utils.factory.execShellSu +import com.fankes.miui.notify.utils.factory.showDialog +import com.fankes.miui.notify.utils.factory.snake +import com.fankes.miui.notify.utils.factory.toast import com.google.android.material.snackbar.Snackbar import com.highcapable.yukihookapi.hook.factory.isXposedModuleActive @@ -72,9 +75,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