diff --git a/app/src/main/java/com/fankes/miui/notify/ui/activity/ConfigureActivity.kt b/app/src/main/java/com/fankes/miui/notify/ui/activity/ConfigureActivity.kt index c8cc854..6ff5bd4 100644 --- a/app/src/main/java/com/fankes/miui/notify/ui/activity/ConfigureActivity.kt +++ b/app/src/main/java/com/fankes/miui/notify/ui/activity/ConfigureActivity.kt @@ -196,11 +196,13 @@ class ConfigureActivity : BaseActivity() { neutralButton(text = "取消") noCancelable() } + intent?.getBooleanExtra("isDirectUpdate", false) == true -> onStartRefresh(isByHand = false) intent?.getBooleanExtra("isShowUpdDialog", true) == true -> onStartRefresh() } /** 清除数据 */ intent?.apply { removeExtra("isNewAppSupport") + removeExtra("isDirectUpdate") removeExtra("isShowUpdDialog") } /** 设置返回监听事件 */ @@ -219,12 +221,22 @@ class ConfigureActivity : BaseActivity() { } } - /** 开始手动同步 */ - private fun onStartRefresh() = - IconRuleManagerTool.syncByHand(context = this) { - filterText = "" - mockLocalData() - } + /** + * 开始同步 + * @param isByHand 是否手动同步 - 默认是 + */ + private fun onStartRefresh(isByHand: Boolean = true) { + if (isByHand) + IconRuleManagerTool.syncByHand(context = this) { + filterText = "" + mockLocalData() + } + else + IconRuleManagerTool.sync(context = this) { + filterText = "" + mockLocalData() + } + } /** 装载或刷新本地数据 */ private fun mockLocalData() { 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 601e9d1..4470be7 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 @@ -310,7 +310,7 @@ object IconRuleManagerTool { } } } else baseCheckingInternetConnect(context) { isDone -> - if (isDone) callback() else pushNotify(context, title = "网络不可用", msg = "无法连接到互联网,无法更新通知图标规则") + if (isDone) callback() else pushNotify(context, title = "网络不可用", msg = "网络连接失败,无法更新通知图标规则,点击重试", isRetry = true) } /** @@ -372,8 +372,9 @@ object IconRuleManagerTool { * @param context 实例 - 类型为 [AppCompatActivity] 时将不会推送通知 * @param title 通知标题 * @param msg 通知消息 + * @param isRetry 是否发送重试动作 - 默认否 */ - private fun pushNotify(context: Context, title: String, msg: String) { + private fun pushNotify(context: Context, title: String, msg: String, isRetry: Boolean = false) { if (context !is AppCompatActivity) context.getSystemService()?.apply { createNotificationChannel( @@ -393,7 +394,9 @@ object IconRuleManagerTool { setContentIntent( PendingIntent.getActivity( context, msg.hashCode(), - Intent(context, ConfigureActivity::class.java).apply { putExtra("isShowUpdDialog", false) }, + Intent(context, ConfigureActivity::class.java).apply { + if (isRetry) putExtra("isDirectUpdate", true) else putExtra("isShowUpdDialog", false) + }, if (Build.VERSION.SDK_INT < 31) PendingIntent.FLAG_UPDATE_CURRENT else PendingIntent.FLAG_IMMUTABLE ) )