diff --git a/.idea/deploymentTargetDropDown.xml b/.idea/deploymentTargetDropDown.xml deleted file mode 100644 index 60595b9..0000000 --- a/.idea/deploymentTargetDropDown.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/java/com/fankes/coloros/notify/ui/ConfigureActivity.kt b/app/src/main/java/com/fankes/coloros/notify/ui/ConfigureActivity.kt index da03b4e..974b5fc 100644 --- a/app/src/main/java/com/fankes/coloros/notify/ui/ConfigureActivity.kt +++ b/app/src/main/java/com/fankes/coloros/notify/ui/ConfigureActivity.kt @@ -25,8 +25,6 @@ package com.fankes.coloros.notify.ui import android.app.ProgressDialog -import android.content.Intent -import android.net.Uri import android.os.Bundle import android.view.LayoutInflater import android.view.View @@ -51,6 +49,9 @@ import com.highcapable.yukihookapi.hook.xposed.YukiHookModuleStatus class ConfigureActivity : BaseActivity() { + /** 访问请求链接 */ + private var rawGithubUrl = "https://raw.githubusercontent.com/fankes/AndroidNotifyIconAdapt/main" + /** 当前筛选条件 */ private var filterText = "" @@ -192,16 +193,7 @@ class ConfigureActivity : BaseActivity() { } /** 设置点击事件 */ findViewById(R.id.config_cbr_button).setOnClickListener { - runCatching { - startActivity(Intent().apply { - action = "android.intent.action.VIEW" - data = Uri.parse("https://github.com/fankes/AndroidNotifyIconAdapt/blob/main/CONTRIBUTING.md") - /** 防止顶栈一样重叠在自己的 APP 中 */ - flags = Intent.FLAG_ACTIVITY_NEW_TASK - }) - }.onFailure { - toast(msg = "无法启动系统默认浏览器") - } + openBrowser(url = "https://github.com/fankes/AndroidNotifyIconAdapt/blob/main/CONTRIBUTING.md") } /** 装载数据 */ mockLocalData() @@ -227,7 +219,7 @@ class ConfigureActivity : BaseActivity() { } /** 开始更新数据 */ - private fun onRefreshing() { + private fun onRefreshing() = ClientRequestTool.checkingInternetConnect(context = this) { ProgressDialog(this).apply { setDefaultStyle(context = this@ConfigureActivity) setCancelable(false) @@ -237,12 +229,12 @@ class ConfigureActivity : BaseActivity() { }.also { ClientRequestTool.wait( context = this, - url = "https://raw.githubusercontent.com/fankes/AndroidNotifyIconAdapt/main/OS/ColorOS/NotifyIconsSupportConfig.json" + url = "$rawGithubUrl/OS/ColorOS/NotifyIconsSupportConfig.json" ) { isDone1, ctOS -> it.setMessage("正在同步 APP 数据") ClientRequestTool.wait( context = this, - url = "https://raw.githubusercontent.com/fankes/AndroidNotifyIconAdapt/main/APP/NotifyIconsSupportConfig.json" + url = "$rawGithubUrl/APP/NotifyIconsSupportConfig.json" ) { isDone2, ctAPP -> it.cancel() IconPackParams(context = this).also { params -> @@ -253,12 +245,14 @@ class ConfigureActivity : BaseActivity() { mockLocalData() SystemUITool.showNeedUpdateApplySnake(context = this) } else snake(msg = "列表数据已是最新") - } else - showDialog { - title = "连接失败" - msg = "连接失败,错误如下:\n${if (!isDone1) ctOS else ctAPP}" - confirmButton(text = "我知道了") + } else showDialog { + title = "连接失败" + msg = "连接失败,错误如下:\n${if (!isDone1) ctOS else ctAPP}" + confirmButton(text = "解决方案") { + openBrowser(url = "https://www.baidu.com/s?wd=github%2Braw%2B%E6%97%A0%E6%B3%95%E8%AE%BF%E9%97%AE") } + cancelButton() + } } } } diff --git a/app/src/main/java/com/fankes/coloros/notify/ui/MainActivity.kt b/app/src/main/java/com/fankes/coloros/notify/ui/MainActivity.kt index 472cb8a..5119b60 100644 --- a/app/src/main/java/com/fankes/coloros/notify/ui/MainActivity.kt +++ b/app/src/main/java/com/fankes/coloros/notify/ui/MainActivity.kt @@ -27,7 +27,6 @@ package com.fankes.coloros.notify.ui import android.content.ComponentName import android.content.Intent import android.content.pm.PackageManager -import android.net.Uri import android.os.Bundle import android.view.View import android.widget.LinearLayout @@ -165,30 +164,11 @@ class MainActivity : BaseActivity() { findViewById(R.id.title_restart_icon).setOnClickListener { SystemUITool.restartSystemUI(context = this) } /** 恰饭! */ findViewById(R.id.link_with_follow_me).setOnClickListener { - runCatching { - startActivity(Intent().apply { - setPackage("com.coolapk.market") - action = "android.intent.action.VIEW" - data = Uri.parse("https://www.coolapk.com/u/876977") - /** 防止顶栈一样重叠在自己的 APP 中 */ - flags = Intent.FLAG_ACTIVITY_NEW_TASK - }) - }.onFailure { - toast(msg = "你可能没有安装酷安") - } + openBrowser(url = "https://www.coolapk.com/u/876977", packageName = "com.coolapk.market") } /** 项目地址点击事件 */ findViewById(R.id.link_with_project_address).setOnClickListener { - runCatching { - startActivity(Intent().apply { - action = "android.intent.action.VIEW" - data = Uri.parse("https://github.com/fankes/ColorOSNotifyIcon") - /** 防止顶栈一样重叠在自己的 APP 中 */ - flags = Intent.FLAG_ACTIVITY_NEW_TASK - }) - }.onFailure { - toast(msg = "无法启动系统默认浏览器") - } + openBrowser(url = "https://github.com/fankes/ColorOSNotifyIcon") } } } \ No newline at end of file diff --git a/app/src/main/java/com/fankes/coloros/notify/utils/ClientRequestTool.kt b/app/src/main/java/com/fankes/coloros/notify/utils/ClientRequestTool.kt index 968c695..ae090b9 100644 --- a/app/src/main/java/com/fankes/coloros/notify/utils/ClientRequestTool.kt +++ b/app/src/main/java/com/fankes/coloros/notify/utils/ClientRequestTool.kt @@ -20,11 +20,15 @@ * * This file is Created by fankes on 2022/2/25. */ -@file:Suppress("TrustAllX509TrustManager", "CustomX509TrustManager") +@file:Suppress("TrustAllX509TrustManager", "CustomX509TrustManager", "DEPRECATION") package com.fankes.coloros.notify.utils import android.app.Activity +import android.app.ProgressDialog +import android.content.Intent +import android.net.Uri +import android.provider.Settings import com.highcapable.yukihookapi.hook.log.loggerD import okhttp3.* import java.io.IOException @@ -37,6 +41,38 @@ import javax.net.ssl.* */ object ClientRequestTool { + /** + * 检查网络连接情况 + * @param context 实例 + * @param it 已连接回调 + */ + fun checkingInternetConnect(context: Activity, it: () -> Unit) = + ProgressDialog(context).apply { + setDefaultStyle(context) + setCancelable(false) + setTitle("准备中") + setMessage("正在检查网络连接情况") + }.apply { + wait(context, url = "https://www.baidu.com") { isDone, _ -> + cancel() + if (isDone) it() else + context.showDialog { + title = "网络不可用" + msg = "无法连接到互联网,请检查你当前的设备是否可以上网,且没有在手机管家中禁用本模块的联网权限。" + confirmButton(text = "检查设置") { + runCatching { + context.startActivity(Intent().apply { + flags = Intent.FLAG_ACTIVITY_NEW_TASK + action = Settings.ACTION_APPLICATION_DETAILS_SETTINGS + data = Uri.fromParts("package", context.packageName, null) + }) + }.onFailure { context.snake(msg = "启动应用信息页面失败") } + } + cancelButton() + } + } + }.show() + /** * 发送 GET 请求内容并等待 * @param context 实例 diff --git a/app/src/main/java/com/fankes/coloros/notify/utils/Utils.kt b/app/src/main/java/com/fankes/coloros/notify/utils/Utils.kt index b12e801..20bc524 100644 --- a/app/src/main/java/com/fankes/coloros/notify/utils/Utils.kt +++ b/app/src/main/java/com/fankes/coloros/notify/utils/Utils.kt @@ -27,6 +27,7 @@ package com.fankes.coloros.notify.utils import android.app.Activity import android.app.AlertDialog import android.content.Context +import android.content.Intent import android.content.pm.PackageInfo import android.content.pm.PackageManager import android.content.res.Configuration @@ -34,6 +35,7 @@ import android.graphics.Bitmap import android.graphics.BitmapFactory import android.graphics.Color import android.graphics.drawable.GradientDrawable +import android.net.Uri import android.os.Build import android.util.Base64 import android.widget.Toast @@ -233,6 +235,26 @@ fun Context.snake(msg: String, actionText: String = "", it: () -> Unit = {}) = setAction(actionText) { it() } }.show() +/** + * 启动系统浏览器 + * @param url 网址 + * @param packageName 指定包名 - 可不填 + */ +fun Context.openBrowser(url: String, packageName: String = "") = + runCatching { + startActivity(Intent().apply { + if (packageName.isNotBlank()) setPackage(packageName) + action = Intent.ACTION_VIEW + data = Uri.parse(url) + /** 防止顶栈一样重叠在自己的 APP 中 */ + flags = Intent.FLAG_ACTIVITY_NEW_TASK + }) + }.onFailure { + if (packageName.isNotBlank()) + snake(msg = "启动 $packageName 失败") + else snake(msg = "启动系统浏览器失败") + } + /** * 忽略异常返回值 * @param it 回调 - 如果异常为空