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 7c50450..f51c37e 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 @@ -73,8 +73,8 @@ class DialogBuilder(val context: Context, private val isUseBlackTheme: Boolean) init { if (isUsingAndroidX) - runCatching { instanceAndroidX = MaterialAlertDialogBuilder(context) } - else runCatching { + runInSafe { instanceAndroidX = MaterialAlertDialogBuilder(context) } + else runInSafe { instanceAndroid = android.app.AlertDialog.Builder( context, if (isUseBlackTheme) android.R.style.Theme_Material_Dialog else android.R.style.Theme_Material_Light_Dialog @@ -85,8 +85,8 @@ class DialogBuilder(val context: Context, private val isUseBlackTheme: Boolean) /** 设置对话框不可关闭 */ fun noCancelable() { if (isUsingAndroidX) - runCatching { instanceAndroidX?.setCancelable(false) } - else runCatching { instanceAndroid?.setCancelable(false) } + runInSafe { instanceAndroidX?.setCancelable(false) } + else runInSafe { instanceAndroid?.setCancelable(false) } } /** 设置对话框标题 */ @@ -94,8 +94,8 @@ class DialogBuilder(val context: Context, private val isUseBlackTheme: Boolean) get() = "" set(value) { if (isUsingAndroidX) - runCatching { instanceAndroidX?.setTitle(value) } - else runCatching { instanceAndroid?.setTitle(value) } + runInSafe { instanceAndroidX?.setTitle(value) } + else runInSafe { instanceAndroid?.setTitle(value) } } /** 设置对话框消息内容 */ @@ -103,8 +103,8 @@ class DialogBuilder(val context: Context, private val isUseBlackTheme: Boolean) get() = "" set(value) { if (isUsingAndroidX) - runCatching { instanceAndroidX?.setMessage(value) } - else runCatching { instanceAndroid?.setMessage(value) } + runInSafe { instanceAndroidX?.setMessage(value) } + else runInSafe { instanceAndroid?.setMessage(value) } } /** 设置进度条对话框消息内容 */ @@ -145,8 +145,8 @@ class DialogBuilder(val context: Context, private val isUseBlackTheme: Boolean) */ fun confirmButton(text: String = "确定", it: () -> Unit = {}) { if (isUsingAndroidX) - runCatching { instanceAndroidX?.setPositiveButton(text) { _, _ -> it() } } - else runCatching { instanceAndroid?.setPositiveButton(text) { _, _ -> it() } } + runInSafe { instanceAndroidX?.setPositiveButton(text) { _, _ -> it() } } + else runInSafe { instanceAndroid?.setPositiveButton(text) { _, _ -> it() } } } /** @@ -156,8 +156,8 @@ class DialogBuilder(val context: Context, private val isUseBlackTheme: Boolean) */ fun cancelButton(text: String = "取消", it: () -> Unit = {}) { if (isUsingAndroidX) - runCatching { instanceAndroidX?.setNegativeButton(text) { _, _ -> it() } } - else runCatching { instanceAndroid?.setNegativeButton(text) { _, _ -> it() } } + runInSafe { instanceAndroidX?.setNegativeButton(text) { _, _ -> it() } } + else runInSafe { instanceAndroid?.setNegativeButton(text) { _, _ -> it() } } } /** @@ -167,21 +167,21 @@ class DialogBuilder(val context: Context, private val isUseBlackTheme: Boolean) */ fun neutralButton(text: String = "更多", it: () -> Unit = {}) { if (isUsingAndroidX) - runCatching { instanceAndroidX?.setNeutralButton(text) { _, _ -> it() } } - else runCatching { instanceAndroid?.setNeutralButton(text) { _, _ -> it() } } + runInSafe { instanceAndroidX?.setNeutralButton(text) { _, _ -> it() } } + else runInSafe { instanceAndroid?.setNeutralButton(text) { _, _ -> it() } } } /** 取消对话框 */ fun cancel() = dialogInstance?.cancel() /** 显示对话框 */ - internal fun show() { - if (isUsingAndroidX) runCatching { + internal fun show() = + if (isUsingAndroidX) runInSafe { instanceAndroidX?.create()?.apply { customLayoutView?.let { setView(it) } dialogInstance = this }?.show() - } else runCatching { + } else runInSafe { instanceAndroid?.create()?.apply { customLayoutView?.let { setView(it) } window?.setBackgroundDrawable( @@ -197,5 +197,4 @@ class DialogBuilder(val context: Context, private val isUseBlackTheme: Boolean) dialogInstance = this }?.show() } - } } \ No newline at end of file diff --git a/app/src/main/java/com/fankes/coloros/notify/utils/factory/ExceptionFactory.kt b/app/src/main/java/com/fankes/coloros/notify/utils/factory/ExceptionFactory.kt index 57e88fd..96f62af 100644 --- a/app/src/main/java/com/fankes/coloros/notify/utils/factory/ExceptionFactory.kt +++ b/app/src/main/java/com/fankes/coloros/notify/utils/factory/ExceptionFactory.kt @@ -78,6 +78,6 @@ inline fun safeOf(default: T, result: () -> T) = try { * @param msg 出错输出的消息 - 默认为空 * @param block 正常回调 */ -inline fun T.runSafe(msg: String = "", block: () -> Unit) { +inline fun T.runInSafe(msg: String = "", block: () -> Unit) { runCatching(block).onFailure { if (msg.isNotBlank()) loggerE(msg = msg, e = it) } } \ No newline at end of file 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 ced8b35..f5d5494 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 @@ -282,7 +282,7 @@ fun Context.openBrowser(url: String, packageName: String = "") = runCatching { * 复制到剪贴板 * @param content 要复制的文本 */ -fun Context.copyToClipboard(content: String) = runSafe { +fun Context.copyToClipboard(content: String) = runInSafe { (getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager).apply { setPrimaryClip(ClipData.newPlainText(null, content)) (primaryClip?.getItemAt(0)?.text ?: "").also {