This commit is contained in:
Horis
2024-01-26 22:17:46 +08:00
parent 11ad213057
commit 4264af6653
2 changed files with 14 additions and 15 deletions
@@ -62,7 +62,7 @@ class AboutFragment : PreferenceFragmentCompat() {
"gzGzh" -> requireContext().sendToClip(getString(R.string.legado_gzh)) "gzGzh" -> requireContext().sendToClip(getString(R.string.legado_gzh))
"crashLog" -> showDialogFragment<CrashLogsDialog>() "crashLog" -> showDialogFragment<CrashLogsDialog>()
"saveLog" -> saveLog() "saveLog" -> saveLog()
"saveHeapDump" -> saveHeapDump() "createHeapDump" -> createHeapDump()
} }
return super.onPreferenceTreeClick(preference) return super.onPreferenceTreeClick(preference)
} }
@@ -124,18 +124,17 @@ class AboutFragment : PreferenceFragmentCompat() {
toastOnUi("未设置备份目录") toastOnUi("未设置备份目录")
return@async return@async
} }
val files = FileDoc.fromFile(File(appCtx.externalCacheDir, "logs")).list()
if (files.isNullOrEmpty()) {
toastOnUi("没有日志")
return@async
}
val doc = FileDoc.fromUri(Uri.parse(backupPath), true) val doc = FileDoc.fromUri(Uri.parse(backupPath), true)
doc.find("logs")?.delete() val files = FileDoc.fromFile(File(appCtx.externalCacheDir, "logs")).list()
val logsDoc = doc.createFolderIfNotExist("logs") if (!files.isNullOrEmpty()) {
files.forEach { file -> doc.find("logs")?.delete()
file.openInputStream().getOrNull()?.use { input -> val logsDoc = doc.createFolderIfNotExist("logs")
logsDoc.createFileIfNotExist(file.name).openOutputStream().getOrNull()?.use { files.forEach { file ->
input.copyTo(it) file.openInputStream().getOrNull()?.use { input ->
logsDoc.createFileIfNotExist(file.name).openOutputStream().getOrNull()
?.use {
input.copyTo(it)
}
} }
} }
} }
@@ -157,13 +156,13 @@ class AboutFragment : PreferenceFragmentCompat() {
} }
} }
private fun saveHeapDump() { private fun createHeapDump() {
Coroutine.async { Coroutine.async {
val backupPath = AppConfig.backupPath ?: let { val backupPath = AppConfig.backupPath ?: let {
toastOnUi("未设置备份目录") toastOnUi("未设置备份目录")
return@async return@async
} }
toastOnUi("开始保存堆转储") toastOnUi("开始创建堆转储")
CrashHandler.doHeapDump() CrashHandler.doHeapDump()
val heapFile = FileDoc.fromFile(File(appCtx.externalCacheDir, "heapDump")).list() val heapFile = FileDoc.fromFile(File(appCtx.externalCacheDir, "heapDump")).list()
?.firstOrNull() ?: let { ?.firstOrNull() ?: let {
+1 -1
View File
@@ -40,7 +40,7 @@
app:iconSpaceReserved="false" /> app:iconSpaceReserved="false" />
<io.legado.app.lib.prefs.Preference <io.legado.app.lib.prefs.Preference
android:key="saveHeapDump" android:key="createHeapDump"
android:title="@string/create_heap_dump" android:title="@string/create_heap_dump"
app:iconSpaceReserved="false" /> app:iconSpaceReserved="false" />