优化
This commit is contained in:
@@ -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)
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user