This commit is contained in:
Horis
2024-07-22 21:20:45 +08:00
parent 4cf6739556
commit 90b274bbf7
@@ -18,6 +18,7 @@ import io.legado.app.help.coroutine.Coroutine
import io.legado.app.ui.widget.dialog.TextDialog import io.legado.app.ui.widget.dialog.TextDialog
import io.legado.app.ui.widget.dialog.WaitDialog import io.legado.app.ui.widget.dialog.WaitDialog
import io.legado.app.utils.FileDoc import io.legado.app.utils.FileDoc
import io.legado.app.utils.compress.ZipUtils
import io.legado.app.utils.createFileIfNotExist import io.legado.app.utils.createFileIfNotExist
import io.legado.app.utils.createFolderIfNotExist import io.legado.app.utils.createFolderIfNotExist
import io.legado.app.utils.delete import io.legado.app.utils.delete
@@ -31,7 +32,6 @@ import io.legado.app.utils.sendToClip
import io.legado.app.utils.showDialogFragment import io.legado.app.utils.showDialogFragment
import io.legado.app.utils.toastOnUi import io.legado.app.utils.toastOnUi
import kotlinx.coroutines.coroutineScope import kotlinx.coroutines.coroutineScope
import kotlinx.coroutines.launch
import splitties.init.appCtx import splitties.init.appCtx
import java.io.File import java.io.File
@@ -156,21 +156,20 @@ class AboutFragment : PreferenceFragmentCompat() {
} }
private suspend fun copyLogs(doc: FileDoc) = coroutineScope { private suspend fun copyLogs(doc: FileDoc) = coroutineScope {
val files = FileDoc.fromFile(File(appCtx.externalCacheDir, "logs")).list() val files = File(appCtx.externalCacheDir, "logs").listFiles()?.toList()
if (files.isNullOrEmpty()) { if (files.isNullOrEmpty()) {
return@coroutineScope return@coroutineScope
} }
doc.find("logs")?.delete() val zipFile = File(appCtx.externalCacheDir, "logs.zip")
val logsDoc = doc.createFolderIfNotExist("logs") ZipUtils.zipFiles(files.filter { it.name.endsWith(".txt") }, zipFile)
files.forEach { file ->
launch { doc.find("logs.zip")?.delete()
file.openInputStream().getOrNull()?.use { input ->
logsDoc.createFileIfNotExist(file.name).openOutputStream().getOrNull() zipFile.inputStream().use { input ->
?.use { doc.createFileIfNotExist("logs.zip").openOutputStream().getOrNull()
input.copyTo(it) ?.use {
} input.copyTo(it)
} }
}
} }
} }