mirror of
https://github.com/KitsunePie/AppErrorsTracking.git
synced 2025-09-01 08:45:16 +08:00
Modify allowed multi-user app errors dialog's "Reopen App" option to start Activity with correct user id
This commit is contained in:
@@ -26,6 +26,7 @@ import java.io.Serializable
|
||||
|
||||
/**
|
||||
* 应用异常信息显示 bean
|
||||
* @param userId APP 用户 ID
|
||||
* @param packageName APP 包名
|
||||
* @param processName APP 进程名
|
||||
* @param appName APP 名称
|
||||
@@ -35,6 +36,7 @@ import java.io.Serializable
|
||||
* @param isShowReopenButton 是否显示重新打开按钮
|
||||
*/
|
||||
data class AppErrorsDisplayBean(
|
||||
@Keep var userId: Int,
|
||||
@Keep var packageName: String,
|
||||
@Keep var processName: String,
|
||||
@Keep var appName: String,
|
||||
|
@@ -98,7 +98,7 @@ object FrameworkHooker : YukiBaseHooker() {
|
||||
onCreate { appErrorsRecords = ConfigData.getResolverString(ConfigData.APP_ERRORS_DATA).toEntity() ?: arrayListOf() }
|
||||
}
|
||||
FrameworkTool.Host.with(instance = this) {
|
||||
onOpenAppUsedFramework { appContext?.openApp(it) }
|
||||
onOpenAppUsedFramework { appContext?.openApp(it.first, it.second) }
|
||||
onPushAppErrorsInfoData { appErrorsRecords }
|
||||
onRemoveAppErrorsInfoData {
|
||||
appErrorsRecords.remove(it)
|
||||
@@ -295,6 +295,7 @@ object FrameworkHooker : YukiBaseHooker() {
|
||||
/** 启动错误对话框显示窗口 */
|
||||
AppErrorsDisplayActivity.start(
|
||||
context, AppErrorsDisplayBean(
|
||||
userId = userId,
|
||||
packageName = packageName,
|
||||
processName = processName,
|
||||
appName = appName,
|
||||
|
@@ -80,7 +80,7 @@ class AppErrorsDisplayActivity : BaseActivity<ActivityAppErrorsDisplayBinding>()
|
||||
}
|
||||
binding.closeAppItem.setOnClickListener { cancel() }
|
||||
binding.reopenAppItem.setOnClickListener {
|
||||
FrameworkTool.openAppUsedFramework(context, appErrorsDisplay.packageName)
|
||||
FrameworkTool.openAppUsedFramework(context, appErrorsDisplay.packageName, appErrorsDisplay.userId)
|
||||
cancel()
|
||||
}
|
||||
binding.errorDetailItem.setOnClickListener {
|
||||
|
@@ -56,7 +56,7 @@ object FrameworkTool {
|
||||
private const val CALL_UNMUTE_ERRORS_APP_DATA_RESULT = "call_unmute_errors_app_data_result"
|
||||
private const val CALL_UNMUTE_ALL_ERRORS_APPS_DATA_RESULT = "call_unmute_all_errors_apps_data_result"
|
||||
|
||||
private val CALL_OPEN_SPECIFY_APP = ChannelData<String>("call_open_specify_app")
|
||||
private val CALL_OPEN_SPECIFY_APP = ChannelData<Pair<String, Int>>("call_open_specify_app")
|
||||
private val CALL_APP_LIST_DATA_GET = ChannelData<AppFiltersBean>("call_app_info_list_data_get")
|
||||
private val CALL_APP_ERRORS_DATA_REMOVE = ChannelData<AppErrorsInfoBean>("call_app_errors_data_remove")
|
||||
private val CALL_APP_LIST_DATA_GET_RESULT = ChannelData<ArrayList<AppInfoBean>>("call_app_info_list_data_get_result")
|
||||
@@ -84,9 +84,9 @@ object FrameworkTool {
|
||||
|
||||
/**
|
||||
* 监听使用系统框架打开 APP
|
||||
* @param result 回调包名
|
||||
* @param result 回调包名和用户 ID
|
||||
*/
|
||||
fun onOpenAppUsedFramework(result: (String) -> Unit) = instance?.dataChannel?.wait(CALL_OPEN_SPECIFY_APP) { result(it) }
|
||||
fun onOpenAppUsedFramework(result: (Pair<String, Int>) -> Unit) = instance?.dataChannel?.wait(CALL_OPEN_SPECIFY_APP) { result(it) }
|
||||
|
||||
/**
|
||||
* 监听发送 APP 异常信息数组
|
||||
@@ -230,9 +230,10 @@ object FrameworkTool {
|
||||
* 使用系统框架打开 [packageName]
|
||||
* @param context 实例
|
||||
* @param packageName APP 包名
|
||||
* @param userId APP 用户 ID
|
||||
*/
|
||||
fun openAppUsedFramework(context: Context, packageName: String) =
|
||||
context.dataChannel(SYSTEM_FRAMEWORK_NAME).put(CALL_OPEN_SPECIFY_APP, packageName)
|
||||
fun openAppUsedFramework(context: Context, packageName: String, userId: Int) =
|
||||
context.dataChannel(SYSTEM_FRAMEWORK_NAME).put(CALL_OPEN_SPECIFY_APP, Pair(packageName, userId))
|
||||
|
||||
/**
|
||||
* 获取 APP 异常信息数组
|
||||
|
Reference in New Issue
Block a user