mirror of
https://github.com/KitsunePie/AppErrorsTracking.git
synced 2025-09-01 16:55:18 +08:00
Added remove designated errors record function
This commit is contained in:
@@ -46,6 +46,12 @@ object Const {
|
||||
/** 清空 [AppErrorsInfoBean] 数据 */
|
||||
const val TYPE_APP_ERRORS_DATA_CLEAR = "app_errors_data_clear_type"
|
||||
|
||||
/** 删除指定 [AppErrorsInfoBean] 数据 */
|
||||
const val TYPE_APP_ERRORS_DATA_REMOVE = "app_errors_data_remove_type"
|
||||
|
||||
/** 获取到的 [AppErrorsInfoBean] 数据内容 */
|
||||
const val TAG_APP_ERRORS_DATA_CONTENT = "app_errors_data_content_tag"
|
||||
const val TAG_APP_ERRORS_DATA_GET_CONTENT = "app_errors_data_get_content_tag"
|
||||
|
||||
/** 指定删除的 [AppErrorsInfoBean] 数据内容 */
|
||||
const val TAG_APP_ERRORS_DATA_REMOVE_CONTENT = "app_errors_data_remove_content_tag"
|
||||
}
|
@@ -120,9 +120,14 @@ object FrameworkHooker : YukiBaseHooker() {
|
||||
action = Const.ACTION_MODULE_HANDLER_RECEIVER
|
||||
when (it) {
|
||||
Const.TYPE_APP_ERRORS_DATA_GET -> {
|
||||
putExtra(Const.TAG_APP_ERRORS_DATA_CONTENT, appErrorsRecords)
|
||||
putExtra(Const.TAG_APP_ERRORS_DATA_GET_CONTENT, appErrorsRecords)
|
||||
putExtra(Const.KEY_MODULE_HOST_FETCH, Const.TYPE_APP_ERRORS_DATA_GET)
|
||||
}
|
||||
Const.TYPE_APP_ERRORS_DATA_REMOVE -> {
|
||||
runCatching { intent.getSerializableExtra(Const.TAG_APP_ERRORS_DATA_REMOVE_CONTENT) as? AppErrorsInfoBean? }
|
||||
.getOrNull()?.also { e -> appErrorsRecords.remove(e) }
|
||||
putExtra(Const.KEY_MODULE_HOST_FETCH, Const.TYPE_APP_ERRORS_DATA_REMOVE)
|
||||
}
|
||||
Const.TYPE_APP_ERRORS_DATA_CLEAR -> {
|
||||
appErrorsRecords.clear()
|
||||
putExtra(Const.KEY_MODULE_HOST_FETCH, Const.TYPE_APP_ERRORS_DATA_CLEAR)
|
||||
|
@@ -220,4 +220,10 @@ object LocaleString {
|
||||
|
||||
/** @string Automatic generated */
|
||||
fun noCpuAbi(vararg objArrs: Any) = R.string.no_cpu_abi.bind(*objArrs)
|
||||
|
||||
/** @string Automatic generated */
|
||||
val areYouSureRemoveRecord get() = areYouSureRemoveRecord()
|
||||
|
||||
/** @string Automatic generated */
|
||||
fun areYouSureRemoveRecord(vararg objArrs: Any) = R.string.are_you_sure_remove_record.bind(*objArrs)
|
||||
}
|
@@ -167,6 +167,13 @@ class AppErrorsRecordActivity : BaseActivity<ActivityAppErrorsRecordBinding>() {
|
||||
when (item.itemId) {
|
||||
R.id.aerrors_view_detail -> AppErrorsDetailActivity.start(context = this, listData[it.position])
|
||||
R.id.aerrors_app_info -> openSelfSetting(listData[it.position].packageName)
|
||||
R.id.aerrors_remove_record ->
|
||||
showDialog {
|
||||
title = LocaleString.notice
|
||||
msg = LocaleString.areYouSureRemoveRecord
|
||||
confirmButton { FrameworkTool.removeAppErrorsInfoData(context, listData[it.position]) { refreshData() } }
|
||||
cancelButton()
|
||||
}
|
||||
}
|
||||
}
|
||||
return super.onContextItemSelected(item)
|
||||
|
@@ -30,6 +30,7 @@ import android.content.IntentFilter
|
||||
import com.fankes.apperrorstracking.bean.AppErrorsInfoBean
|
||||
import com.fankes.apperrorstracking.const.Const
|
||||
import com.highcapable.yukihookapi.hook.log.loggerE
|
||||
import java.io.Serializable
|
||||
|
||||
/**
|
||||
* 系统框架控制工具
|
||||
@@ -39,6 +40,9 @@ object FrameworkTool {
|
||||
/** 回调获取的 APP 异常信息 */
|
||||
private var onAppErrorsInfoDataCallback: ((ArrayList<AppErrorsInfoBean>) -> Unit)? = null
|
||||
|
||||
/** 回调 APP 异常信息是否移除 */
|
||||
private var onRemoveAppErrorsInfoDataCallback: (() -> Unit)? = null
|
||||
|
||||
/** 回调 APP 异常信息是否清空 */
|
||||
private var onClearAppErrorsInfoDataCallback: (() -> Unit)? = null
|
||||
|
||||
@@ -52,9 +56,10 @@ object FrameworkTool {
|
||||
if (it.isNotBlank()) when (it) {
|
||||
Const.TYPE_APP_ERRORS_DATA_GET -> runCatching {
|
||||
onAppErrorsInfoDataCallback?.invoke(
|
||||
intent.getSerializableExtra(Const.TAG_APP_ERRORS_DATA_CONTENT) as ArrayList<AppErrorsInfoBean>
|
||||
intent.getSerializableExtra(Const.TAG_APP_ERRORS_DATA_GET_CONTENT) as ArrayList<AppErrorsInfoBean>
|
||||
)
|
||||
}.onFailure { onAppErrorsInfoDataCallback?.invoke(arrayListOf()) }
|
||||
Const.TYPE_APP_ERRORS_DATA_REMOVE -> onRemoveAppErrorsInfoDataCallback?.invoke()
|
||||
Const.TYPE_APP_ERRORS_DATA_CLEAR -> onClearAppErrorsInfoDataCallback?.invoke()
|
||||
else -> {}
|
||||
}
|
||||
@@ -68,11 +73,22 @@ object FrameworkTool {
|
||||
* 发送广播
|
||||
* @param context 实例
|
||||
* @param type 类型
|
||||
* @param key 可选传值
|
||||
* @param value 可选传值
|
||||
*/
|
||||
private fun pushReceiver(context: Context, type: String) {
|
||||
private fun pushReceiver(context: Context, type: String, key: String = "", value: Any = "") {
|
||||
context.sendBroadcast(Intent().apply {
|
||||
action = Const.ACTION_HOST_HANDLER_RECEIVER
|
||||
putExtra(Const.KEY_MODULE_HOST_FETCH, type)
|
||||
if (key.isNotBlank()) putExtra(
|
||||
key, when (value) {
|
||||
is String -> value
|
||||
is Int -> value
|
||||
is Boolean -> value
|
||||
is Serializable -> value
|
||||
else -> error("value is not allowed")
|
||||
}
|
||||
)
|
||||
})
|
||||
}
|
||||
|
||||
@@ -86,6 +102,17 @@ object FrameworkTool {
|
||||
pushReceiver(context, Const.TYPE_APP_ERRORS_DATA_GET)
|
||||
}
|
||||
|
||||
/**
|
||||
* 移除指定 APP 异常信息
|
||||
* @param context 实例
|
||||
* @param appErrorsInfo 指定 APP 异常信息
|
||||
* @param it 成功后回调
|
||||
*/
|
||||
fun removeAppErrorsInfoData(context: Context, appErrorsInfo: AppErrorsInfoBean, it: () -> Unit) {
|
||||
onRemoveAppErrorsInfoDataCallback = it
|
||||
pushReceiver(context, Const.TYPE_APP_ERRORS_DATA_REMOVE, Const.TAG_APP_ERRORS_DATA_REMOVE_CONTENT, appErrorsInfo)
|
||||
}
|
||||
|
||||
/**
|
||||
* 清空 APP 异常信息数组
|
||||
* @param context 实例
|
||||
|
@@ -6,4 +6,7 @@
|
||||
<item
|
||||
android:id="@+id/aerrors_app_info"
|
||||
android:title="@string/app_info" />
|
||||
<item
|
||||
android:id="@+id/aerrors_remove_record"
|
||||
android:title="@string/remove_record" />
|
||||
</menu>
|
@@ -43,4 +43,6 @@
|
||||
<string name="export_all_errors_success">すべてのエラーレコードがエクスポートされました</string>
|
||||
<string name="export_all_errors_fail">すべてのエラーレコードのエクスポートに失敗しました</string>
|
||||
<string name="no_cpu_abi">アビなし</string>
|
||||
<string name="remove_record">レコードを削除</string>
|
||||
<string name="are_you_sure_remove_record">このレコードを削除してもよろしいですか</string>
|
||||
</resources>
|
@@ -43,4 +43,6 @@
|
||||
<string name="export_all_errors_success">已导出全部异常记录</string>
|
||||
<string name="export_all_errors_fail">导出全部异常记录失败</string>
|
||||
<string name="no_cpu_abi">无原生库</string>
|
||||
<string name="remove_record">移除记录</string>
|
||||
<string name="are_you_sure_remove_record">你确定要移除这条记录吗</string>
|
||||
</resources>
|
@@ -43,4 +43,6 @@
|
||||
<string name="export_all_errors_success">已導出全部異常紀錄</string>
|
||||
<string name="export_all_errors_fail">導出全部異常紀錄失敗</string>
|
||||
<string name="no_cpu_abi">無原生庫</string>
|
||||
<string name="remove_record">移除紀錄</string>
|
||||
<string name="are_you_sure_remove_record">你確認要移除這條紀錄嗎</string>
|
||||
</resources>
|
@@ -43,4 +43,6 @@
|
||||
<string name="export_all_errors_success">已導出全部異常紀錄</string>
|
||||
<string name="export_all_errors_fail">導出全部異常紀錄失敗</string>
|
||||
<string name="no_cpu_abi">無原生庫</string>
|
||||
<string name="remove_record">移除紀錄</string>
|
||||
<string name="are_you_sure_remove_record">你確認要移除這條紀錄嗎</string>
|
||||
</resources>
|
@@ -43,4 +43,6 @@
|
||||
<string name="export_all_errors_success">已導出全部異常紀錄</string>
|
||||
<string name="export_all_errors_fail">導出全部異常紀錄失敗</string>
|
||||
<string name="no_cpu_abi">無原生庫</string>
|
||||
<string name="remove_record">移除紀錄</string>
|
||||
<string name="are_you_sure_remove_record">你確認要移除這條紀錄嗎</string>
|
||||
</resources>
|
@@ -42,4 +42,6 @@
|
||||
<string name="export_all_errors_success">All errors record exported</string>
|
||||
<string name="export_all_errors_fail">Failed to exported all errors record</string>
|
||||
<string name="no_cpu_abi">No ABI</string>
|
||||
<string name="remove_record">Remove record</string>
|
||||
<string name="are_you_sure_remove_record">Are you sure you want to remove this record?</string>
|
||||
</resources>
|
Reference in New Issue
Block a user