From ddda41ab1334e331f7bb92ba1041e98fee66015d Mon Sep 17 00:00:00 2001 From: Fankesyooni Date: Wed, 2 Mar 2022 01:07:50 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=BB=A3=E7=A0=81=EF=BC=8C?= =?UTF-8?q?=E5=8A=A0=E5=85=A5=E4=BF=9D=E5=A7=86=E7=BA=A7=E5=88=AB=E7=BD=91?= =?UTF-8?q?=E7=BB=9C=E9=97=AE=E9=A2=98=E8=A7=A3=E7=AD=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/deploymentTargetDropDown.xml | 17 --------- .../coloros/notify/ui/ConfigureActivity.kt | 34 +++++++---------- .../fankes/coloros/notify/ui/MainActivity.kt | 24 +----------- .../coloros/notify/utils/ClientRequestTool.kt | 38 ++++++++++++++++++- .../com/fankes/coloros/notify/utils/Utils.kt | 22 +++++++++++ 5 files changed, 75 insertions(+), 60 deletions(-) delete mode 100644 .idea/deploymentTargetDropDown.xml 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 回调 - 如果异常为空