From 2bb22181450119192633b72c5cca8ab327538efa Mon Sep 17 00:00:00 2001 From: fankesyooni Date: Mon, 30 May 2022 02:09:45 +0800 Subject: [PATCH] Merge code --- .../utils/factory/DialogBuilderFactory.kt | 36 +++++----- .../notify/utils/factory/FunctionFactory.kt | 6 +- .../notify/utils/tool/GithubReleaseTool.kt | 12 ++-- .../notify/utils/tool/IconRuleManagerTool.kt | 68 +++++++++---------- 4 files changed, 61 insertions(+), 61 deletions(-) diff --git a/app/src/main/java/com/fankes/coloros/notify/utils/factory/DialogBuilderFactory.kt b/app/src/main/java/com/fankes/coloros/notify/utils/factory/DialogBuilderFactory.kt index 4e42f6c..39f2e33 100644 --- a/app/src/main/java/com/fankes/coloros/notify/utils/factory/DialogBuilderFactory.kt +++ b/app/src/main/java/com/fankes/coloros/notify/utils/factory/DialogBuilderFactory.kt @@ -46,18 +46,18 @@ import com.highcapable.yukihookapi.hook.type.android.LayoutInflaterClass /** * 构造对话框 * @param isUseBlackTheme 是否使用深色主题 - * @param it 对话框方法体 + * @param initiate 对话框方法体 */ -fun Context.showDialog(isUseBlackTheme: Boolean = false, it: DialogBuilder.() -> Unit) = - DialogBuilder(this, isUseBlackTheme).apply(it).show() +fun Context.showDialog(isUseBlackTheme: Boolean = false, initiate: DialogBuilder.() -> Unit) = + DialogBuilder(context = this, isUseBlackTheme).apply(initiate).show() /** * 显示时间选择对话框 * @param timeSet 当前时间 - 不写将使用当前时间格式:HH:mm - * @param it 回调 - 小时与分钟 HH:mm + * @param result 回调 - 小时与分钟 HH:mm */ -fun Context.showTimePicker(timeSet: String = "", it: (String) -> Unit) = - TimePickerDialog(this, { _, h, m -> it("${h.autoZero}:${m.autoZero}") }, timeSet.hour, timeSet.minute, true).show() +fun Context.showTimePicker(timeSet: String = "", result: (String) -> Unit) = + TimePickerDialog(this, { _, h, m -> result("${h.autoZero}:${m.autoZero}") }, timeSet.hour, timeSet.minute, true).show() /** * 对话框构造器 @@ -150,34 +150,34 @@ class DialogBuilder(val context: Context, private val isUseBlackTheme: Boolean) /** * 设置对话框确定按钮 * @param text 按钮文本内容 - * @param it 点击事件 + * @param callback 点击事件 */ - fun confirmButton(text: String = "确定", it: () -> Unit = {}) { + fun confirmButton(text: String = "确定", callback: () -> Unit = {}) { if (isUsingAndroidX) - runInSafe { instanceAndroidX?.setPositiveButton(text) { _, _ -> it() } } - else runInSafe { instanceAndroid?.setPositiveButton(text) { _, _ -> it() } } + runInSafe { instanceAndroidX?.setPositiveButton(text) { _, _ -> callback() } } + else runInSafe { instanceAndroid?.setPositiveButton(text) { _, _ -> callback() } } } /** * 设置对话框取消按钮 * @param text 按钮文本内容 - * @param it 点击事件 + * @param callback 点击事件 */ - fun cancelButton(text: String = "取消", it: () -> Unit = {}) { + fun cancelButton(text: String = "取消", callback: () -> Unit = {}) { if (isUsingAndroidX) - runInSafe { instanceAndroidX?.setNegativeButton(text) { _, _ -> it() } } - else runInSafe { instanceAndroid?.setNegativeButton(text) { _, _ -> it() } } + runInSafe { instanceAndroidX?.setNegativeButton(text) { _, _ -> callback() } } + else runInSafe { instanceAndroid?.setNegativeButton(text) { _, _ -> callback() } } } /** * 设置对话框第三个按钮 * @param text 按钮文本内容 - * @param it 点击事件 + * @param callback 点击事件 */ - fun neutralButton(text: String = "更多", it: () -> Unit = {}) { + fun neutralButton(text: String = "更多", callback: () -> Unit = {}) { if (isUsingAndroidX) - runInSafe { instanceAndroidX?.setNeutralButton(text) { _, _ -> it() } } - else runInSafe { instanceAndroid?.setNeutralButton(text) { _, _ -> it() } } + runInSafe { instanceAndroidX?.setNeutralButton(text) { _, _ -> callback() } } + else runInSafe { instanceAndroid?.setNeutralButton(text) { _, _ -> callback() } } } /** 取消对话框 */ diff --git a/app/src/main/java/com/fankes/coloros/notify/utils/factory/FunctionFactory.kt b/app/src/main/java/com/fankes/coloros/notify/utils/factory/FunctionFactory.kt index e75fdec..46fe698 100644 --- a/app/src/main/java/com/fankes/coloros/notify/utils/factory/FunctionFactory.kt +++ b/app/src/main/java/com/fankes/coloros/notify/utils/factory/FunctionFactory.kt @@ -380,13 +380,13 @@ inline fun Context.navigate() = runInSafe { * 弹出 [Snackbar] * @param msg 提示内容 * @param actionText 按钮文本 - 不写默认取消按钮 - * @param it 按钮事件回调 + * @param callback 按钮事件回调 */ -fun Context.snake(msg: String, actionText: String = "", it: () -> Unit = {}) = +fun Context.snake(msg: String, actionText: String = "", callback: () -> Unit = {}) = Snackbar.make((this as Activity).findViewById(android.R.id.content), msg, Snackbar.LENGTH_LONG).apply { if (actionText.isBlank()) return@apply setActionTextColor(if (isSystemInDarkMode) Color.BLACK else Color.WHITE) - setAction(actionText) { it() } + setAction(actionText) { callback() } }.show() /** diff --git a/app/src/main/java/com/fankes/coloros/notify/utils/tool/GithubReleaseTool.kt b/app/src/main/java/com/fankes/coloros/notify/utils/tool/GithubReleaseTool.kt index 9f798ca..32f0b16 100644 --- a/app/src/main/java/com/fankes/coloros/notify/utils/tool/GithubReleaseTool.kt +++ b/app/src/main/java/com/fankes/coloros/notify/utils/tool/GithubReleaseTool.kt @@ -45,9 +45,9 @@ object GithubReleaseTool { * 获取最新版本信息 * @param context 实例 * @param version 当前版本 - * @param it 成功后回调 - ([String] 最新版本,[Function] 更新对话框方法体) + * @param result 成功后回调 - ([String] 最新版本,[Function] 更新对话框方法体) */ - fun checkingForUpdate(context: Context, version: String, it: (String, () -> Unit) -> Unit) = checkingInternetConnect(context) { + fun checkingForUpdate(context: Context, version: String, result: (String, () -> Unit) -> Unit) = checkingInternetConnect(context) { OkHttpClient().newBuilder().build().newCall( Request.Builder() .url("https://api.github.com/repos/$REPO_AUTHOR/$REPO_NAME/releases/latest") @@ -73,7 +73,7 @@ object GithubReleaseTool { } if (name != version) (context as? Activity?)?.runOnUiThread { showUpdate() - it(name) { showUpdate() } + result(name) { showUpdate() } } } } @@ -84,9 +84,9 @@ object GithubReleaseTool { /** * 检查网络连接情况 * @param context 实例 - * @param it 已连接回调 + * @param result 已连接回调 */ - private fun checkingInternetConnect(context: Context, it: () -> Unit) = runInSafe { + private fun checkingInternetConnect(context: Context, result: () -> Unit) = runInSafe { if (isNetWorkSuccess) OkHttpClient().newBuilder().build().newCall( Request.Builder() @@ -107,7 +107,7 @@ object GithubReleaseTool { } override fun onResponse(call: Call, response: Response) = runInSafe { - (context as? Activity?)?.runOnUiThread { runInSafe { it() } } + (context as? Activity?)?.runOnUiThread { runInSafe { result() } } } }) } 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 e8275ff..0ba2449 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 @@ -75,9 +75,9 @@ object IconRuleManagerTool { /** * 从在线地址手动同步规则 * @param context 实例 - * @param it 成功后回调 + * @param callback 成功后回调 */ - fun syncByHand(context: Context, it: () -> Unit) = + fun syncByHand(context: Context, callback: () -> Unit) = context.showDialog { title = "同步列表" var sourceType = context.modulePrefs.get(DataConst.SOURCE_SYNC_WAY) @@ -116,7 +116,7 @@ object IconRuleManagerTool { confirmButton { context.modulePrefs.put(DataConst.SOURCE_SYNC_WAY, sourceType) context.modulePrefs.put(DataConst.SOURCE_SYNC_WAY_CUSTOM_URL, customUrl) - sync(context, sourceType, customUrl, it) + sync(context, sourceType, customUrl, callback) } cancelButton() neutralButton(text = "自定义规则") { @@ -139,7 +139,7 @@ object IconRuleManagerTool { ) ) notifyRefresh(context) - it() + callback() } else -> context.snake(msg = "请输入有效内容") } @@ -152,7 +152,7 @@ object IconRuleManagerTool { jsonString.isNotBlank() -> { params.save(dataJson = jsonString.takeIf { params.isJsonArray(it) } ?: "[$jsonString]") notifyRefresh(context) - it() + callback() } else -> context.snake(msg = "请输入有效内容") } @@ -169,23 +169,23 @@ object IconRuleManagerTool { * @param context 实例 * @param sourceType 同步地址类型 - 默认自动获取已存储的键值 * @param customUrl 自定义同步地址 - 默认自动获取已存储的键值 - * @param it 成功后回调 + * @param callback 成功后回调 */ fun sync( context: Context, sourceType: Int = context.modulePrefs.get(DataConst.SOURCE_SYNC_WAY), customUrl: String = context.modulePrefs.get(DataConst.SOURCE_SYNC_WAY_CUSTOM_URL), - it: () -> Unit + callback: () -> Unit ) { when (sourceType) { TYPE_SOURCE_SYNC_WAY_1 -> - onRefreshing(context, url = "https://raw.fastgit.org/fankes/AndroidNotifyIconAdapt/main", it) + onRefreshing(context, url = "https://raw.fastgit.org/fankes/AndroidNotifyIconAdapt/main", callback) TYPE_SOURCE_SYNC_WAY_2 -> - onRefreshing(context, url = "https://raw.githubusercontent.com/fankes/AndroidNotifyIconAdapt/main", it) + onRefreshing(context, url = "https://raw.githubusercontent.com/fankes/AndroidNotifyIconAdapt/main", callback) TYPE_SOURCE_SYNC_WAY_3 -> if (customUrl.isNotBlank()) if (customUrl.startsWith("http://") || customUrl.startsWith("https://")) - onRefreshingCustom(context, customUrl, it) + onRefreshingCustom(context, customUrl, callback) else context.snakeOrNotify(title = "同步失败", msg = "同步地址不是一个合法的 URL") else context.snakeOrNotify(title = "同步失败", msg = "同步地址不能为空") else -> context.snakeOrNotify(title = "同步异常", msg = "同步类型错误") @@ -196,14 +196,14 @@ object IconRuleManagerTool { * 开始更新数据 * @param context 实例 * @param url - * @param it 成功后回调 + * @param callback 成功后回调 */ - private fun onRefreshing(context: Context, url: String, it: () -> Unit) = checkingInternetConnect(context) { - fun doParse(callback: (Boolean) -> Unit = {}) { + private fun onRefreshing(context: Context, url: String, callback: () -> Unit) = checkingInternetConnect(context) { + fun doParse(result: (Boolean) -> Unit = {}) { wait(context, url = "$url/OS/$OS_TAG/NotifyIconsSupportConfig.json") { isDone1, ctOS -> - callback(true) + result(true) wait(context, url = "$url/APP/NotifyIconsSupportConfig.json") { isDone2, ctAPP -> - callback(false) + result(false) IconPackParams(context).also { params -> when { isDone1 && isDone2 -> params.splicingJsonArray(ctOS, ctAPP).also { @@ -216,7 +216,7 @@ object IconRuleManagerTool { params.save(it) pushNotify(context, title = "同步完成", msg = "已更新通知图标优化名单,点击查看") notifyRefresh(context) - it() + callback() } else -> (if (context is AppCompatActivity) context.snake(msg = "列表数据已是最新")) } @@ -225,7 +225,7 @@ object IconRuleManagerTool { context.showDialog { title = "连接失败" msg = "连接失败,错误如下:\n${if (isDone1.not()) ctOS else ctAPP}" - confirmButton(text = "再试一次") { syncByHand(context, it) } + confirmButton(text = "再试一次") { syncByHand(context, callback) } cancelButton() } else -> pushNotify(context, title = "同步地址不可用", msg = if (isDone1.not()) ctOS else ctAPP) @@ -248,12 +248,12 @@ object IconRuleManagerTool { * 开始更新数据 * @param context 实例 * @param url - * @param it 成功后回调 + * @param callback 成功后回调 */ - private fun onRefreshingCustom(context: Context, url: String, it: () -> Unit) = checkingInternetConnect(context) { - fun doParse(callback: () -> Unit = {}) { + private fun onRefreshingCustom(context: Context, url: String, callback: () -> Unit) = checkingInternetConnect(context) { + fun doParse(result: () -> Unit = {}) { wait(context, url) { isDone, content -> - callback() + result() IconPackParams(context).also { params -> when { isDone -> when { @@ -265,7 +265,7 @@ object IconRuleManagerTool { params.save(content) pushNotify(context, title = "同步完成", msg = "已更新通知图标优化名单,点击查看") notifyRefresh(context) - it() + callback() } else -> (if (context is AppCompatActivity) context.snake(msg = "列表数据已是最新")) } @@ -293,16 +293,16 @@ object IconRuleManagerTool { /** * 检查网络连接情况 * @param context 实例 - * @param it 已连接回调 + * @param callback 已连接回调 */ - private fun checkingInternetConnect(context: Context, it: () -> Unit) = + private fun checkingInternetConnect(context: Context, callback: () -> Unit) = if (context is AppCompatActivity) context.showDialog { title = "准备中" progressContent = "正在检查网络连接情况" noCancelable() baseCheckingInternetConnect(context) { isDone -> cancel() - if (isDone) it() else + if (isDone) callback() else context.showDialog { title = "网络不可用" msg = "无法连接到互联网,请检查你当前的设备是否可以上网,且没有在手机管家中禁用本模块的联网权限。" @@ -319,24 +319,24 @@ object IconRuleManagerTool { } } } else baseCheckingInternetConnect(context) { isDone -> - if (isDone) it() else pushNotify(context, title = "网络不可用", msg = "无法连接到互联网,无法更新通知图标规则") + if (isDone) callback() else pushNotify(context, title = "网络不可用", msg = "无法连接到互联网,无法更新通知图标规则") } /** * 检查网络连接情况 * @param context 实例 - * @param it 已连接回调 + * @param result 已连接回调 */ - private fun baseCheckingInternetConnect(context: Context, it: (Boolean) -> Unit) = - wait(context, url = "https://www.baidu.com") { isDone, _ -> it(isDone) } + private fun baseCheckingInternetConnect(context: Context, result: (Boolean) -> Unit) = + wait(context, url = "https://www.baidu.com") { isDone, _ -> result(isDone) } /** * 发送 GET 请求内容并等待 * @param context 实例 * @param url 请求地址 - * @param it 回调 - ([Boolean] 是否成功,[String] 成功的内容或失败消息) + * @param result 回调 - ([Boolean] 是否成功,[String] 成功的内容或失败消息) */ - private fun wait(context: Context, url: String, it: (Boolean, String) -> Unit) = runCatching { + private fun wait(context: Context, url: String, result: (Boolean, String) -> Unit) = runCatching { OkHttpClient().newBuilder().apply { SSLSocketClient.sSLSocketFactory?.let { sslSocketFactory(it, SSLSocketClient.trustManager) } hostnameVerifier(SSLSocketClient.hostnameVerifier) @@ -347,15 +347,15 @@ object IconRuleManagerTool { .build() ).enqueue(object : Callback { override fun onFailure(call: Call, e: IOException) { - (context as? Activity?)?.runOnUiThread { it(false, e.toString()) } ?: it(false, e.toString()) + (context as? Activity?)?.runOnUiThread { result(false, e.toString()) } ?: result(false, e.toString()) } override fun onResponse(call: Call, response: Response) { val bodyString = response.body?.string() ?: "" - (context as? Activity?)?.runOnUiThread { it(true, bodyString) } ?: it(true, bodyString) + (context as? Activity?)?.runOnUiThread { result(true, bodyString) } ?: result(true, bodyString) } }) - }.onFailure { it(false, "URL 无效") } + }.onFailure { result(false, "URL 无效") } /** * 推送通知图标更新通知