diff --git a/app/src/main/java/io/legado/app/service/AudioPlayService.kt b/app/src/main/java/io/legado/app/service/AudioPlayService.kt index cad78badf853..2e5c75a6b018 100644 --- a/app/src/main/java/io/legado/app/service/AudioPlayService.kt +++ b/app/src/main/java/io/legado/app/service/AudioPlayService.kt @@ -404,6 +404,8 @@ class AudioPlayService : BaseService(), } if (timeMinute == 0) { AudioPlay.stop() + postEvent(EventBus.AUDIO_DS, timeMinute) + break } } postEvent(EventBus.AUDIO_DS, timeMinute) diff --git a/app/src/main/java/io/legado/app/service/BaseReadAloudService.kt b/app/src/main/java/io/legado/app/service/BaseReadAloudService.kt index ca3286656ec4..09a9332c5b87 100644 --- a/app/src/main/java/io/legado/app/service/BaseReadAloudService.kt +++ b/app/src/main/java/io/legado/app/service/BaseReadAloudService.kt @@ -396,6 +396,8 @@ abstract class BaseReadAloudService : BaseService(), } if (timeMinute == 0) { ReadAloud.stop(this@BaseReadAloudService) + postEvent(EventBus.READ_ALOUD_DS, timeMinute) + break } } postEvent(EventBus.READ_ALOUD_DS, timeMinute) diff --git a/app/src/main/java/io/legado/app/ui/about/AboutFragment.kt b/app/src/main/java/io/legado/app/ui/about/AboutFragment.kt index d0a1917940a6..4df449d808e9 100644 --- a/app/src/main/java/io/legado/app/ui/about/AboutFragment.kt +++ b/app/src/main/java/io/legado/app/ui/about/AboutFragment.kt @@ -164,11 +164,15 @@ class AboutFragment : PreferenceFragmentCompat() { } private fun copyLogs(doc: FileDoc) { - val logFiles = File(appCtx.externalCacheDir, "logs") - val crashFiles = File(appCtx.externalCacheDir, "crash") + val cacheDir = appCtx.externalCacheDir + val logFiles = File(cacheDir, "logs") + val crashFiles = File(cacheDir, "crash") + val logcatFile = File(cacheDir, "logcat.txt") - val zipFile = File(appCtx.externalCacheDir, "logs.zip") - ZipUtils.zipFiles(arrayListOf(logFiles, crashFiles), zipFile) + dumpLogcat(logcatFile) + + val zipFile = File(cacheDir, "logs.zip") + ZipUtils.zipFiles(arrayListOf(logFiles, crashFiles, logcatFile), zipFile) doc.find("logs.zip")?.delete() @@ -195,4 +199,15 @@ class AboutFragment : PreferenceFragmentCompat() { return true } + private fun dumpLogcat(file: File) { + try { + val process = Runtime.getRuntime().exec("logcat -d") + file.outputStream().use { + process.inputStream.copyTo(it) + } + } catch (e: Exception) { + AppLog.put("保存Logcat失败\n$e", e) + } + } + } \ No newline at end of file