mirror of
https://github.com/fankes/TSBattery.git
synced 2025-09-06 10:45:53 +08:00
Merge code
This commit is contained in:
@@ -72,8 +72,8 @@ class DialogBuilder(val context: Context, private val isUseBlackTheme: Boolean)
|
|||||||
|
|
||||||
init {
|
init {
|
||||||
if (isUsingAndroidX)
|
if (isUsingAndroidX)
|
||||||
runCatching { instanceAndroidX = MaterialAlertDialogBuilder(context) }
|
runInSafe { instanceAndroidX = MaterialAlertDialogBuilder(context) }
|
||||||
else runCatching {
|
else runInSafe {
|
||||||
instanceAndroid = android.app.AlertDialog.Builder(
|
instanceAndroid = android.app.AlertDialog.Builder(
|
||||||
context,
|
context,
|
||||||
if (isUseBlackTheme) android.R.style.Theme_Material_Dialog else android.R.style.Theme_Material_Light_Dialog
|
if (isUseBlackTheme) android.R.style.Theme_Material_Dialog else android.R.style.Theme_Material_Light_Dialog
|
||||||
@@ -84,8 +84,8 @@ class DialogBuilder(val context: Context, private val isUseBlackTheme: Boolean)
|
|||||||
/** 设置对话框不可关闭 */
|
/** 设置对话框不可关闭 */
|
||||||
fun noCancelable() {
|
fun noCancelable() {
|
||||||
if (isUsingAndroidX)
|
if (isUsingAndroidX)
|
||||||
runCatching { instanceAndroidX?.setCancelable(false) }
|
runInSafe { instanceAndroidX?.setCancelable(false) }
|
||||||
else runCatching { instanceAndroid?.setCancelable(false) }
|
else runInSafe { instanceAndroid?.setCancelable(false) }
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 设置对话框标题 */
|
/** 设置对话框标题 */
|
||||||
@@ -93,8 +93,8 @@ class DialogBuilder(val context: Context, private val isUseBlackTheme: Boolean)
|
|||||||
get() = ""
|
get() = ""
|
||||||
set(value) {
|
set(value) {
|
||||||
if (isUsingAndroidX)
|
if (isUsingAndroidX)
|
||||||
runCatching { instanceAndroidX?.setTitle(value) }
|
runInSafe { instanceAndroidX?.setTitle(value) }
|
||||||
else runCatching { instanceAndroid?.setTitle(value) }
|
else runInSafe { instanceAndroid?.setTitle(value) }
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 设置对话框消息内容 */
|
/** 设置对话框消息内容 */
|
||||||
@@ -102,8 +102,8 @@ class DialogBuilder(val context: Context, private val isUseBlackTheme: Boolean)
|
|||||||
get() = ""
|
get() = ""
|
||||||
set(value) {
|
set(value) {
|
||||||
if (isUsingAndroidX)
|
if (isUsingAndroidX)
|
||||||
runCatching { instanceAndroidX?.setMessage(value) }
|
runInSafe { instanceAndroidX?.setMessage(value) }
|
||||||
else runCatching { instanceAndroid?.setMessage(value) }
|
else runInSafe { instanceAndroid?.setMessage(value) }
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 设置进度条对话框消息内容 */
|
/** 设置进度条对话框消息内容 */
|
||||||
@@ -144,8 +144,8 @@ class DialogBuilder(val context: Context, private val isUseBlackTheme: Boolean)
|
|||||||
*/
|
*/
|
||||||
fun confirmButton(text: String = "确定", it: () -> Unit = {}) {
|
fun confirmButton(text: String = "确定", it: () -> Unit = {}) {
|
||||||
if (isUsingAndroidX)
|
if (isUsingAndroidX)
|
||||||
runCatching { instanceAndroidX?.setPositiveButton(text) { _, _ -> it() } }
|
runInSafe { instanceAndroidX?.setPositiveButton(text) { _, _ -> it() } }
|
||||||
else runCatching { instanceAndroid?.setPositiveButton(text) { _, _ -> it() } }
|
else runInSafe { instanceAndroid?.setPositiveButton(text) { _, _ -> it() } }
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -155,8 +155,8 @@ class DialogBuilder(val context: Context, private val isUseBlackTheme: Boolean)
|
|||||||
*/
|
*/
|
||||||
fun cancelButton(text: String = "取消", it: () -> Unit = {}) {
|
fun cancelButton(text: String = "取消", it: () -> Unit = {}) {
|
||||||
if (isUsingAndroidX)
|
if (isUsingAndroidX)
|
||||||
runCatching { instanceAndroidX?.setNegativeButton(text) { _, _ -> it() } }
|
runInSafe { instanceAndroidX?.setNegativeButton(text) { _, _ -> it() } }
|
||||||
else runCatching { instanceAndroid?.setNegativeButton(text) { _, _ -> it() } }
|
else runInSafe { instanceAndroid?.setNegativeButton(text) { _, _ -> it() } }
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -166,21 +166,21 @@ class DialogBuilder(val context: Context, private val isUseBlackTheme: Boolean)
|
|||||||
*/
|
*/
|
||||||
fun neutralButton(text: String = "更多", it: () -> Unit = {}) {
|
fun neutralButton(text: String = "更多", it: () -> Unit = {}) {
|
||||||
if (isUsingAndroidX)
|
if (isUsingAndroidX)
|
||||||
runCatching { instanceAndroidX?.setNeutralButton(text) { _, _ -> it() } }
|
runInSafe { instanceAndroidX?.setNeutralButton(text) { _, _ -> it() } }
|
||||||
else runCatching { instanceAndroid?.setNeutralButton(text) { _, _ -> it() } }
|
else runInSafe { instanceAndroid?.setNeutralButton(text) { _, _ -> it() } }
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 取消对话框 */
|
/** 取消对话框 */
|
||||||
fun cancel() = dialogInstance?.cancel()
|
fun cancel() = dialogInstance?.cancel()
|
||||||
|
|
||||||
/** 显示对话框 */
|
/** 显示对话框 */
|
||||||
internal fun show() {
|
internal fun show() =
|
||||||
if (isUsingAndroidX) runCatching {
|
if (isUsingAndroidX) runInSafe {
|
||||||
instanceAndroidX?.create()?.apply {
|
instanceAndroidX?.create()?.apply {
|
||||||
customLayoutView?.let { setView(it) }
|
customLayoutView?.let { setView(it) }
|
||||||
dialogInstance = this
|
dialogInstance = this
|
||||||
}?.show()
|
}?.show()
|
||||||
} else runCatching {
|
} else runInSafe {
|
||||||
instanceAndroid?.create()?.apply {
|
instanceAndroid?.create()?.apply {
|
||||||
customLayoutView?.let { setView(it) }
|
customLayoutView?.let { setView(it) }
|
||||||
window?.setBackgroundDrawable(
|
window?.setBackgroundDrawable(
|
||||||
@@ -196,5 +196,4 @@ class DialogBuilder(val context: Context, private val isUseBlackTheme: Boolean)
|
|||||||
dialogInstance = this
|
dialogInstance = this
|
||||||
}?.show()
|
}?.show()
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
}
|
@@ -0,0 +1,82 @@
|
|||||||
|
/*
|
||||||
|
* TSBattery - A new way to save your battery avoid cancer apps hacker it.
|
||||||
|
* Copyright (C) 2019-2022 Fankes Studio(qzmmcn@163.com)
|
||||||
|
* https://github.com/fankes/TSBattery
|
||||||
|
*
|
||||||
|
* This software is non-free but opensource software: you can redistribute it
|
||||||
|
* and/or modify it under the terms of the GNU Affero General Public License
|
||||||
|
* as published by the Free Software Foundation; either
|
||||||
|
* version 3 of the License, or any later version.
|
||||||
|
*
|
||||||
|
* This software is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* Affero General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Affero General Public License
|
||||||
|
* and eula along with this software. If not, see
|
||||||
|
* <https://www.gnu.org/licenses/>
|
||||||
|
*
|
||||||
|
* This file is Created by fankes on 2022/3/13.
|
||||||
|
*/
|
||||||
|
@file:Suppress("unused")
|
||||||
|
|
||||||
|
package com.fankes.tsbattery.utils.factory
|
||||||
|
|
||||||
|
import com.highcapable.yukihookapi.hook.log.loggerE
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 忽略异常返回值
|
||||||
|
* @param result 回调 - 如果异常为空
|
||||||
|
* @return [T] 发生异常时返回设定值否则返回正常值
|
||||||
|
*/
|
||||||
|
inline fun <T> safeOfNull(result: () -> T): T? = safeOf(default = null, result)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 忽略异常返回值
|
||||||
|
* @param result 回调 - 如果异常为 false
|
||||||
|
* @return [Boolean] 发生异常时返回设定值否则返回正常值
|
||||||
|
*/
|
||||||
|
inline fun safeOfFalse(result: () -> Boolean) = safeOf(default = false, result)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 忽略异常返回值
|
||||||
|
* @param result 回调 - 如果异常为 true
|
||||||
|
* @return [Boolean] 发生异常时返回设定值否则返回正常值
|
||||||
|
*/
|
||||||
|
inline fun safeOfTrue(result: () -> Boolean) = safeOf(default = true, result)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 忽略异常返回值
|
||||||
|
* @param result 回调 - 如果异常为 false
|
||||||
|
* @return [String] 发生异常时返回设定值否则返回正常值
|
||||||
|
*/
|
||||||
|
inline fun safeOfNothing(result: () -> String) = safeOf(default = "", result)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 忽略异常返回值
|
||||||
|
* @param result 回调 - 如果异常为 false
|
||||||
|
* @return [Int] 发生异常时返回设定值否则返回正常值
|
||||||
|
*/
|
||||||
|
inline fun safeOfNan(result: () -> Int) = safeOf(default = 0, result)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 忽略异常返回值
|
||||||
|
* @param default 异常返回值
|
||||||
|
* @param result 正常回调值
|
||||||
|
* @return [T] 发生异常时返回设定值否则返回正常值
|
||||||
|
*/
|
||||||
|
inline fun <T> safeOf(default: T, result: () -> T) = try {
|
||||||
|
result()
|
||||||
|
} catch (_: Throwable) {
|
||||||
|
default
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 忽略异常运行
|
||||||
|
* @param msg 出错输出的消息 - 默认为空
|
||||||
|
* @param block 正常回调
|
||||||
|
*/
|
||||||
|
inline fun <T> T.runInSafe(msg: String = "", block: () -> Unit) {
|
||||||
|
runCatching(block).onFailure { if (msg.isNotBlank()) loggerE(msg = msg, e = it) }
|
||||||
|
}
|
Reference in New Issue
Block a user