From 3a5a1df270a608b4c58d7afeb6d82bb4e14a2032 Mon Sep 17 00:00:00 2001 From: ZQDesigned <2990918167@QQ.COM> Date: Wed, 21 Jun 2023 00:22:43 +0800 Subject: [PATCH] Fix:deprecated AppErrorInfo when dialog covers AppErrorsDetailActivity --- .../errors/AppErrorsDetailActivity.kt | 49 +++++++++++++------ 1 file changed, 34 insertions(+), 15 deletions(-) diff --git a/app/src/main/java/com/fankes/apperrorstracking/ui/activity/errors/AppErrorsDetailActivity.kt b/app/src/main/java/com/fankes/apperrorstracking/ui/activity/errors/AppErrorsDetailActivity.kt index 719e71d..3e6a22f 100644 --- a/app/src/main/java/com/fankes/apperrorstracking/ui/activity/errors/AppErrorsDetailActivity.kt +++ b/app/src/main/java/com/fankes/apperrorstracking/ui/activity/errors/AppErrorsDetailActivity.kt @@ -62,8 +62,32 @@ class AppErrorsDetailActivity : BaseActivity() { private var stackTrace = "" override fun onCreate() { + if (!parseIntent(intent)) return + + binding.titleBackIcon.setOnClickListener { onBackPressed() } + + binding.disableAutoWrapErrorStackTraceSwitch.bind(ConfigData.DISABLE_AUTO_WRAP_ERROR_STACK_TRACE) { + onInitialize { + binding.errorStackTraceScrollView.isVisible = it + binding.errorStackTraceFixedText.isGone = it + } + onChanged { + reinitialize() + resetScrollView() + } + } + + binding.detailTitleText.setOnClickListener { binding.appPanelScrollView.smoothScrollTo(0, 0) } + + resetScrollView() + } + + private fun parseIntent(intent: Intent?): Boolean { val appErrorsInfo = runCatching { intent?.getSerializableExtraCompat(EXTRA_APP_ERRORS_INFO) }.getOrNull() - ?: return toastAndFinish(name = "AppErrorsInfo") + if (appErrorsInfo == null) { + toastAndFinish(name = "AppErrorsInfo") + return false + } if (appErrorsInfo.isEmpty) { binding.appPanelScrollView.isVisible = false showDialog { @@ -80,10 +104,9 @@ class AppErrorsDetailActivity : BaseActivity() { } noCancelable() } - return + return false } binding.appInfoItem.setOnClickListener { openSelfSetting(appErrorsInfo.packageName) } - binding.titleBackIcon.setOnClickListener { onBackPressed() } binding.printIcon.setOnClickListener { loggerE(msg = appErrorsInfo.stackTrace) toast(LocaleString.printToLogcatSuccess) @@ -122,23 +145,12 @@ class AppErrorsDetailActivity : BaseActivity() { binding.errorRecordTimeText.text = appErrorsInfo.dateTime binding.errorStackTraceMovableText.text = appErrorsInfo.stackTrace binding.errorStackTraceFixedText.text = appErrorsInfo.stackTrace - binding.disableAutoWrapErrorStackTraceSwitch.bind(ConfigData.DISABLE_AUTO_WRAP_ERROR_STACK_TRACE) { - onInitialize { - binding.errorStackTraceScrollView.isVisible = it - binding.errorStackTraceFixedText.isGone = it - } - onChanged { - reinitialize() - resetScrollView() - } - } binding.appPanelScrollView.setOnScrollChangeListener { _, _, y, _, _ -> binding.detailTitleText.text = if (y >= 30.dp(context = this)) appNameOf(appErrorsInfo.packageName).ifBlank { appErrorsInfo.packageName } else LocaleString.appName } - binding.detailTitleText.setOnClickListener { binding.appPanelScrollView.smoothScrollTo(0, 0) } - resetScrollView() + return true } /** 修复在一些小屏设备上设置了 [TextView.setTextIsSelectable] 后布局自动上滑问题 */ @@ -163,4 +175,11 @@ class AppErrorsDetailActivity : BaseActivity() { intent?.removeExtra(EXTRA_APP_ERRORS_INFO) finish() } + override fun onNewIntent(intent: Intent?) { + super.onNewIntent(intent) + if (parseIntent(intent)) { + binding.appPanelScrollView.scrollTo(0, 0) + } + } + } \ No newline at end of file