From 6b5c32a3dbb1518630b868613ee170cddd4c2247 Mon Sep 17 00:00:00 2001 From: Horis <821938089@qq.com> Date: Sat, 2 Mar 2024 18:10:06 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/java/io/legado/app/App.kt | 20 +++++++++++++++++++ .../java/io/legado/app/base/BaseService.kt | 4 +++- .../main/java/io/legado/app/model/ReadBook.kt | 3 ++- .../ui/book/read/page/entities/TextChapter.kt | 4 ++-- .../main/java/io/legado/app/utils/LogUtils.kt | 8 +++++++- 5 files changed, 34 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/io/legado/app/App.kt b/app/src/main/java/io/legado/app/App.kt index 23f6798ed..450c7a9f5 100644 --- a/app/src/main/java/io/legado/app/App.kt +++ b/app/src/main/java/io/legado/app/App.kt @@ -10,6 +10,7 @@ import android.content.res.Configuration import android.os.Build import com.github.liuyueyi.quick.transfer.constants.TransType import com.jeremyliao.liveeventbus.LiveEventBus +import com.jeremyliao.liveeventbus.logger.DefaultLogger import io.legado.app.base.AppContextWrapper import io.legado.app.constant.AppConst.channelIdDownload import io.legado.app.constant.AppConst.channelIdReadAloud @@ -40,6 +41,7 @@ import splitties.init.appCtx import splitties.systemservices.notificationManager import java.net.URL import java.util.concurrent.TimeUnit +import java.util.logging.Level class App : Application() { @@ -57,6 +59,7 @@ class App : Application() { .lifecycleObserverAlwaysActive(true) .autoClear(false) .enableLogger(BuildConfig.DEBUG || AppConfig.recordLog) + .setLogger(EventLogger()) applyDayNight(this) registerActivityLifecycleCallbacks(LifecycleHelp) defaultSharedPreferences.registerOnSharedPreferenceChangeListener(AppConfig) @@ -178,4 +181,21 @@ class App : Application() { ) } + class EventLogger : DefaultLogger() { + + override fun log(level: Level, msg: String) { + super.log(level, msg) + LogUtils.d(TAG, msg) + } + + override fun log(level: Level, msg: String, th: Throwable?) { + super.log(level, msg, th) + LogUtils.d(TAG, "$msg\n${th?.stackTraceToString()}") + } + + companion object { + private const val TAG = "[LiveEventBus]" + } + } + } diff --git a/app/src/main/java/io/legado/app/base/BaseService.kt b/app/src/main/java/io/legado/app/base/BaseService.kt index fac10c67d..b97bf219b 100644 --- a/app/src/main/java/io/legado/app/base/BaseService.kt +++ b/app/src/main/java/io/legado/app/base/BaseService.kt @@ -38,7 +38,9 @@ abstract class BaseService : LifecycleService() { @CallSuper override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int { - LogUtils.d(simpleName, "onStartCommand $intent") + LogUtils.d(simpleName) { + "onStartCommand $intent ${intent?.toUri(0)}" + } startForegroundNotification() return super.onStartCommand(intent, flags, startId) } diff --git a/app/src/main/java/io/legado/app/model/ReadBook.kt b/app/src/main/java/io/legado/app/model/ReadBook.kt index 1873abc2f..5af74cecb 100644 --- a/app/src/main/java/io/legado/app/model/ReadBook.kt +++ b/app/src/main/java/io/legado/app/model/ReadBook.kt @@ -342,7 +342,8 @@ object ReadBook : CoroutineScope by MainScope() { * 朗读 */ fun readAloud(play: Boolean = true, startPos: Int = 0) { - book?.let { + book ?: return + if (isLayoutAvailable) { ReadAloud.play(appCtx, play, startPos = startPos) } } diff --git a/app/src/main/java/io/legado/app/ui/book/read/page/entities/TextChapter.kt b/app/src/main/java/io/legado/app/ui/book/read/page/entities/TextChapter.kt index b86c846dd..e4911c542 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/page/entities/TextChapter.kt +++ b/app/src/main/java/io/legado/app/ui/book/read/page/entities/TextChapter.kt @@ -188,9 +188,9 @@ data class TextChapter( pageSplit: Boolean, ): Int { val paragraphs = if (pageSplit) { - pageParagraphs + if (isCompleted) pageParagraphs else pageParagraphsInternal } else { - paragraphs + if (isCompleted) paragraphs else pageParagraphsInternal } paragraphs.forEach { paragraph -> if (position in paragraph.chapterIndices) { diff --git a/app/src/main/java/io/legado/app/utils/LogUtils.kt b/app/src/main/java/io/legado/app/utils/LogUtils.kt index f9db13dd3..2d3473588 100644 --- a/app/src/main/java/io/legado/app/utils/LogUtils.kt +++ b/app/src/main/java/io/legado/app/utils/LogUtils.kt @@ -25,12 +25,18 @@ object LogUtils { logger.log(Level.INFO, "$tag $msg") } + inline fun d(tag: String, lazyMsg: () -> String) { + if (logger.isLoggable(Level.INFO)) { + logger.log(Level.INFO, "$tag ${lazyMsg()}") + } + } + @JvmStatic fun e(tag: String, msg: String) { logger.log(Level.WARNING, "$tag $msg") } - private val logger: Logger by lazy { + val logger: Logger by lazy { Logger.getGlobal().apply { fileHandler?.let { addHandler(it)