diff --git a/app/src/main/java/io/legado/app/App.kt b/app/src/main/java/io/legado/app/App.kt index 02d5cf63d..8c2ca84a5 100644 --- a/app/src/main/java/io/legado/app/App.kt +++ b/app/src/main/java/io/legado/app/App.kt @@ -28,6 +28,7 @@ import io.legado.app.help.RuleBigDataHelp import io.legado.app.help.book.BookHelp import io.legado.app.help.config.AppConfig import io.legado.app.help.config.ThemeConfig.applyDayNight +import io.legado.app.help.config.ThemeConfig.initNightMode import io.legado.app.help.coroutine.Coroutine import io.legado.app.help.http.Cronet import io.legado.app.help.http.ObsoleteUrlFactory @@ -55,27 +56,27 @@ class App : Application() { override fun onCreate() { super.onCreate() CrashHandler(this) - LogUtils.init(this) - LogUtils.d("App", "onCreate") if (isDebuggable) { ThreadUtils.setThreadAssertsDisabledForTesting(true) } oldConfig = Configuration(resources.configuration) - //预下载Cronet so - Cronet.preDownload() - createNotificationChannels() - LiveEventBus.config() - .lifecycleObserverAlwaysActive(true) - .autoClear(false) - .enableLogger(BuildConfig.DEBUG || AppConfig.recordLog) - .setLogger(EventLogger()) - applyDayNight(this) + initNightMode() registerActivityLifecycleCallbacks(LifecycleHelp) defaultSharedPreferences.registerOnSharedPreferenceChangeListener(AppConfig) - DefaultData.upVersion() - AppFreezeMonitor.init(this) Coroutine.async { + LogUtils.init(this@App) + LogUtils.d("App", "onCreate") LogUtils.logDeviceInfo() + //预下载Cronet so + Cronet.preDownload() + createNotificationChannels() + LiveEventBus.config() + .lifecycleObserverAlwaysActive(true) + .autoClear(false) + .enableLogger(BuildConfig.DEBUG || AppConfig.recordLog) + .setLogger(EventLogger()) + DefaultData.upVersion() + AppFreezeMonitor.init(this@App) URL.setURLStreamHandlerFactory(ObsoleteUrlFactory(okHttpClient)) launch { installGmsTlsProvider(appCtx) } RhinoScriptEngine diff --git a/app/src/main/java/io/legado/app/help/config/ThemeConfig.kt b/app/src/main/java/io/legado/app/help/config/ThemeConfig.kt index 2296d30a6..21d9b9926 100644 --- a/app/src/main/java/io/legado/app/help/config/ThemeConfig.kt +++ b/app/src/main/java/io/legado/app/help/config/ThemeConfig.kt @@ -57,7 +57,7 @@ object ThemeConfig { postEvent(EventBus.RECREATE, "") } - private fun initNightMode() { + fun initNightMode() { val targetMode = if (AppConfig.isNightTheme) { AppCompatDelegate.MODE_NIGHT_YES 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 ac742b672..cf1a1ca88 100644 --- a/app/src/main/java/io/legado/app/utils/LogUtils.kt +++ b/app/src/main/java/io/legado/app/utils/LogUtils.kt @@ -10,6 +10,7 @@ import io.legado.app.BuildConfig import io.legado.app.constant.AppConst import io.legado.app.constant.AppLog import io.legado.app.help.config.AppConfig +import io.legado.app.help.globalExecutor import splitties.init.appCtx import java.text.SimpleDateFormat import java.util.Date @@ -26,7 +27,9 @@ object LogUtils { val logTimeFormat by lazy { SimpleDateFormat(TIME_PATTERN) } fun init(context: Context) { - fileHandler = createFileHandler(context) + fileHandler = createFileHandler(context)?.also { + logger.addHandler(it) + } } @JvmStatic @@ -46,11 +49,7 @@ object LogUtils { } val logger: Logger by lazy { - Logger.getLogger("Legado").apply { - fileHandler?.let { - addHandler(it) - } - } + Logger.getLogger("Legado") } private var fileHandler: FileHandler? = null @@ -59,10 +58,12 @@ object LogUtils { try { val root = context.externalCacheDir ?: return null val logFolder = FileUtils.createFolderIfNotExist(root, "logs") - val expiredTime = System.currentTimeMillis() - 7.days.inWholeMilliseconds - logFolder.listFiles()?.forEach { - if (it.lastModified() < expiredTime || it.name.endsWith(".lck")) { - it.delete() + globalExecutor.execute { + val expiredTime = System.currentTimeMillis() - 7.days.inWholeMilliseconds + logFolder.listFiles()?.forEach { + if (it.lastModified() < expiredTime || it.name.endsWith(".lck")) { + it.delete() + } } } val date = getCurrentDateStr(TIME_PATTERN)