diff --git a/app/src/main/java/com/fankes/coloros/notify/ui/activity/ConfigureActivity.kt b/app/src/main/java/com/fankes/coloros/notify/ui/activity/ConfigureActivity.kt index 54a584a..e1bb705 100644 --- a/app/src/main/java/com/fankes/coloros/notify/ui/activity/ConfigureActivity.kt +++ b/app/src/main/java/com/fankes/coloros/notify/ui/activity/ConfigureActivity.kt @@ -30,11 +30,11 @@ import com.fankes.coloros.notify.bean.IconDataBean import com.fankes.coloros.notify.databinding.ActivityConfigBinding import com.fankes.coloros.notify.databinding.AdapterConfigBinding import com.fankes.coloros.notify.databinding.DiaIconFilterBinding +import com.fankes.coloros.notify.param.IconPackParams import com.fankes.coloros.notify.param.factory.isAppNotifyHookAllOf import com.fankes.coloros.notify.param.factory.isAppNotifyHookOf import com.fankes.coloros.notify.param.factory.putAppNotifyHookAllOf import com.fankes.coloros.notify.param.factory.putAppNotifyHookOf -import com.fankes.coloros.notify.param.IconPackParams import com.fankes.coloros.notify.ui.activity.base.BaseActivity import com.fankes.coloros.notify.utils.factory.* import com.fankes.coloros.notify.utils.tool.IconRuleManagerTool @@ -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/coloros/notify/utils/tool/IconRuleManagerTool.kt b/app/src/main/java/com/fankes/coloros/notify/utils/tool/IconRuleManagerTool.kt index e366466..83b1efb 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 @@ -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 ) )