mirror of
https://github.com/KitsunePie/AppErrorsTracking.git
synced 2025-09-01 16:55:18 +08:00
Added don't screenshots in AppErrorsDetailActivity
This commit is contained in:
@@ -232,4 +232,22 @@ object LocaleString {
|
||||
|
||||
/** @string Automatic generated */
|
||||
fun areYouSureRemoveRecord(vararg objArrs: Any) = R.string.are_you_sure_remove_record.bind(*objArrs)
|
||||
|
||||
/** @string Automatic generated */
|
||||
val gotIt get() = gotIt()
|
||||
|
||||
/** @string Automatic generated */
|
||||
fun gotIt(vararg objArrs: Any) = R.string.got_it.bind(*objArrs)
|
||||
|
||||
/** @string Automatic generated */
|
||||
val dontScreenshot get() = dontScreenshot()
|
||||
|
||||
/** @string Automatic generated */
|
||||
fun dontScreenshot(vararg objArrs: Any) = R.string.dont_screenshot.bind(*objArrs)
|
||||
|
||||
/** @string Automatic generated */
|
||||
val dontScreenshotTip get() = dontScreenshotTip()
|
||||
|
||||
/** @string Automatic generated */
|
||||
fun dontScreenshotTip(vararg objArrs: Any) = R.string.dont_screenshot_tip.bind(*objArrs)
|
||||
}
|
@@ -26,6 +26,11 @@ package com.fankes.apperrorstracking.ui.activity
|
||||
import android.app.Activity
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.database.ContentObserver
|
||||
import android.net.Uri
|
||||
import android.os.Handler
|
||||
import android.provider.MediaStore
|
||||
import android.view.WindowManager
|
||||
import androidx.core.view.isGone
|
||||
import com.fankes.apperrorstracking.R
|
||||
import com.fankes.apperrorstracking.bean.AppErrorsInfoBean
|
||||
@@ -56,6 +61,30 @@ class AppErrorsDetailActivity : BaseActivity<ActivityAppErrorsDetailBinding>() {
|
||||
/** 预导出的异常堆栈 */
|
||||
private var stackTrace = ""
|
||||
|
||||
/** 已经显示的截图对话框 */
|
||||
private var observerDialog: DialogBuilder? = null
|
||||
|
||||
/** 已截图的路径数组 */
|
||||
private val observerPaths = hashSetOf<String>()
|
||||
|
||||
/** 截图监听注册 */
|
||||
private val observer = object : ContentObserver(Handler()) {
|
||||
override fun onChange(selfChange: Boolean, uri: Uri?) {
|
||||
if (observerPaths.contains(uri?.path ?: "")) return
|
||||
observerDialog?.cancel()
|
||||
showDialog {
|
||||
observerDialog = this
|
||||
title = LocaleString.dontScreenshot
|
||||
msg = LocaleString.dontScreenshotTip
|
||||
confirmButton(LocaleString.gotIt)
|
||||
noCancelable()
|
||||
}
|
||||
uri?.path?.let { observerPaths.add(it) }
|
||||
/** 截图一次后就禁止再次截图 */
|
||||
window?.addFlags(WindowManager.LayoutParams.FLAG_SECURE)
|
||||
}
|
||||
}
|
||||
|
||||
override fun onCreate() {
|
||||
val appErrorsInfo = runCatching { intent?.getSerializableExtra(Const.EXTRA_APP_ERRORS_INFO) as? AppErrorsInfoBean }.getOrNull()
|
||||
?: return toastAndFinish()
|
||||
@@ -94,6 +123,8 @@ class AppErrorsDetailActivity : BaseActivity<ActivityAppErrorsDetailBinding>() {
|
||||
binding.detailTitleText.text = if (y >= 30.dp(context = this)) appName(appErrorsInfo.packageName) else LocaleString.appName
|
||||
}
|
||||
binding.detailTitleText.setOnClickListener { binding.appPanelScrollView.smoothScrollTo(0, 0) }
|
||||
/** 注册截图监听 */
|
||||
contentResolver?.registerContentObserver(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, true, observer)
|
||||
}
|
||||
|
||||
/** 弹出提示并退出 */
|
||||
@@ -116,4 +147,10 @@ class AppErrorsDetailActivity : BaseActivity<ActivityAppErrorsDetailBinding>() {
|
||||
intent?.removeExtra(Const.EXTRA_APP_ERRORS_INFO)
|
||||
finish()
|
||||
}
|
||||
|
||||
override fun onDestroy() {
|
||||
super.onDestroy()
|
||||
/** 解除注册截图监听 */
|
||||
contentResolver?.unregisterContentObserver(observer)
|
||||
}
|
||||
}
|
@@ -45,4 +45,7 @@
|
||||
<string name="no_cpu_abi">アビなし</string>
|
||||
<string name="remove_record">レコードを削除</string>
|
||||
<string name="are_you_sure_remove_record">このレコードを削除してもよろしいですか</string>
|
||||
<string name="got_it">分かります</string>
|
||||
<string name="dont_screenshot">スクリーンショットを撮らないでください</string>
|
||||
<string name="dont_screenshot_tip">エラーログのスクリーンショットを撮ることはお勧めできません。このインターフェイスの右上隅にあるボタンをクリックして、ログの内容を抽出またはコピーする必要があります。</string>
|
||||
</resources>
|
@@ -45,4 +45,7 @@
|
||||
<string name="no_cpu_abi">无原生库</string>
|
||||
<string name="remove_record">移除记录</string>
|
||||
<string name="are_you_sure_remove_record">你确定要移除这条记录吗?</string>
|
||||
<string name="got_it">我知道了</string>
|
||||
<string name="dont_screenshot">请不要截屏</string>
|
||||
<string name="dont_screenshot_tip">在错误日志中截屏是不明智的做法,你应当点击此界面右上角的按钮提取或复制日志内容。</string>
|
||||
</resources>
|
@@ -45,4 +45,7 @@
|
||||
<string name="no_cpu_abi">無原生庫</string>
|
||||
<string name="remove_record">移除紀錄</string>
|
||||
<string name="are_you_sure_remove_record">你確認要移除這條紀錄嗎?</string>
|
||||
<string name="got_it">我懂了</string>
|
||||
<string name="dont_screenshot">請不要捕獲熒屏</string>
|
||||
<string name="dont_screenshot_tip">在錯誤日誌中捕獲熒屏是不明理的做法,你應當點擊此界面右上角的按鈕提取或複制日誌內容。</string>
|
||||
</resources>
|
@@ -45,4 +45,7 @@
|
||||
<string name="no_cpu_abi">無原生庫</string>
|
||||
<string name="remove_record">移除紀錄</string>
|
||||
<string name="are_you_sure_remove_record">你確認要移除這條紀錄嗎?</string>
|
||||
<string name="got_it">我懂了</string>
|
||||
<string name="dont_screenshot">請不要捕獲熒屏</string>
|
||||
<string name="dont_screenshot_tip">在錯誤日誌中捕獲熒屏是不明理的做法,你應當點擊此界面右上角的按鈕提取或複制日誌內容。</string>
|
||||
</resources>
|
@@ -45,4 +45,7 @@
|
||||
<string name="no_cpu_abi">無原生庫</string>
|
||||
<string name="remove_record">移除紀錄</string>
|
||||
<string name="are_you_sure_remove_record">你確認要移除這條紀錄嗎?</string>
|
||||
<string name="got_it">我懂了</string>
|
||||
<string name="dont_screenshot">請不要捕獲熒屏</string>
|
||||
<string name="dont_screenshot_tip">在錯誤日誌中捕獲熒屏是不明理的做法,你應當點擊此界面右上角的按鈕提取或複制日誌內容。</string>
|
||||
</resources>
|
@@ -44,4 +44,7 @@
|
||||
<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>
|
||||
<string name="got_it">Got it</string>
|
||||
<string name="dont_screenshot">Do not take screenshots</string>
|
||||
<string name="dont_screenshot_tip">It is not advisable to take a screenshot of the error log, you should extract or copy the log content by clicking the button in the upper right corner of this interface.</string>
|
||||
</resources>
|
Reference in New Issue
Block a user