From 1afadc8d5a35761167cba84dcd2329435c08d0dc Mon Sep 17 00:00:00 2001 From: Horis <821938089@qq.com> Date: Tue, 6 Feb 2024 13:08:12 +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 | 3 ++ .../java/io/legado/app/help/LifecycleHelp.kt | 13 +++++++- .../app/ui/config/OtherConfigFragment.kt | 33 +++++++++++++++++-- 3 files changed, 46 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/io/legado/app/App.kt b/app/src/main/java/io/legado/app/App.kt index 1da6a4774..921563c21 100644 --- a/app/src/main/java/io/legado/app/App.kt +++ b/app/src/main/java/io/legado/app/App.kt @@ -31,6 +31,7 @@ import io.legado.app.help.source.SourceHelp import io.legado.app.help.storage.Backup import io.legado.app.model.BookCover import io.legado.app.utils.ChineseUtils +import io.legado.app.utils.LogUtils import io.legado.app.utils.defaultSharedPreferences import io.legado.app.utils.getPrefBoolean import kotlinx.coroutines.launch @@ -45,6 +46,7 @@ class App : Application() { override fun onCreate() { super.onCreate() + LogUtils.d("App", "onCreate") oldConfig = Configuration(resources.configuration) CrashHandler(this) //预下载Cronet so @@ -53,6 +55,7 @@ class App : Application() { LiveEventBus.config() .lifecycleObserverAlwaysActive(true) .autoClear(false) + .enableLogger(BuildConfig.DEBUG || AppConfig.recordLog) applyDayNight(this) registerActivityLifecycleCallbacks(LifecycleHelp) defaultSharedPreferences.registerOnSharedPreferenceChangeListener(AppConfig) diff --git a/app/src/main/java/io/legado/app/help/LifecycleHelp.kt b/app/src/main/java/io/legado/app/help/LifecycleHelp.kt index 9836cfaf5..f05cb6567 100644 --- a/app/src/main/java/io/legado/app/help/LifecycleHelp.kt +++ b/app/src/main/java/io/legado/app/help/LifecycleHelp.kt @@ -4,6 +4,7 @@ import android.app.Activity import android.app.Application import android.os.Bundle import io.legado.app.base.BaseService +import io.legado.app.utils.LogUtils import java.lang.ref.WeakReference /** @@ -12,6 +13,8 @@ import java.lang.ref.WeakReference @Suppress("unused") object LifecycleHelp : Application.ActivityLifecycleCallbacks { + private const val TAG = "LifecycleHelp" + private val activities: MutableList> = arrayListOf() private val services: MutableList> = arrayListOf() private var appFinishedListener: (() -> Unit)? = null @@ -55,16 +58,19 @@ object LifecycleHelp : Application.ActivityLifecycleCallbacks { } override fun onActivityPaused(activity: Activity) { + LogUtils.d(TAG, "${activity::class.simpleName} onPause") } override fun onActivityResumed(activity: Activity) { + LogUtils.d(TAG, "${activity::class.simpleName} onResume") } override fun onActivityStarted(activity: Activity) { - + LogUtils.d(TAG, "${activity::class.simpleName} onStart") } override fun onActivityDestroyed(activity: Activity) { + LogUtils.d(TAG, "${activity::class.simpleName} onDestroy") for (temp in activities) { if (temp.get() != null && temp.get() === activity) { activities.remove(temp) @@ -77,22 +83,27 @@ object LifecycleHelp : Application.ActivityLifecycleCallbacks { } override fun onActivitySaveInstanceState(activity: Activity, outState: Bundle) { + LogUtils.d(TAG, "${activity::class.simpleName} onSaveInstanceState") } override fun onActivityStopped(activity: Activity) { + LogUtils.d(TAG, "${activity::class.simpleName} onStop") } override fun onActivityCreated(activity: Activity, savedInstanceState: Bundle?) { + LogUtils.d(TAG, "${activity::class.simpleName} onCreate") activities.add(WeakReference(activity)) } @Synchronized fun onServiceCreate(service: BaseService) { + LogUtils.d(TAG, "${service::class.simpleName} onCreate") services.add(WeakReference(service)) } @Synchronized fun onServiceDestroy(service: BaseService) { + LogUtils.d(TAG, "${service::class.simpleName} onDestroy") for (temp in services) { if (temp.get() != null && temp.get() === service) { services.remove(temp) diff --git a/app/src/main/java/io/legado/app/ui/config/OtherConfigFragment.kt b/app/src/main/java/io/legado/app/ui/config/OtherConfigFragment.kt index ec88dd14e..a1445c73d 100644 --- a/app/src/main/java/io/legado/app/ui/config/OtherConfigFragment.kt +++ b/app/src/main/java/io/legado/app/ui/config/OtherConfigFragment.kt @@ -10,6 +10,7 @@ import androidx.core.view.postDelayed import androidx.fragment.app.activityViewModels import androidx.preference.ListPreference import androidx.preference.Preference +import com.jeremyliao.liveeventbus.LiveEventBus import io.legado.app.R import io.legado.app.constant.EventBus import io.legado.app.constant.PreferKey @@ -25,7 +26,14 @@ import io.legado.app.receiver.SharedReceiverActivity import io.legado.app.service.WebService import io.legado.app.ui.file.HandleFileContract import io.legado.app.ui.widget.number.NumberPickerDialog -import io.legado.app.utils.* +import io.legado.app.utils.LogUtils +import io.legado.app.utils.postEvent +import io.legado.app.utils.putPrefBoolean +import io.legado.app.utils.putPrefString +import io.legado.app.utils.removePref +import io.legado.app.utils.restart +import io.legado.app.utils.setEdgeEffectColor +import io.legado.app.utils.showDialogFragment import splitties.init.appCtx /** @@ -80,6 +88,7 @@ class OtherConfigFragment : PreferenceFragment(), title = getString(R.string.select_book_folder) mode = HandleFileContract.DIR_SYS } + PreferKey.preDownloadNum -> NumberPickerDialog(requireContext()) .setTitle(getString(R.string.pre_download)) .setMaxValue(9999) @@ -88,6 +97,7 @@ class OtherConfigFragment : PreferenceFragment(), .show { AppConfig.preDownloadNum = it } + PreferKey.threadCount -> NumberPickerDialog(requireContext()) .setTitle(getString(R.string.threads_num_title)) .setMaxValue(999) @@ -96,6 +106,7 @@ class OtherConfigFragment : PreferenceFragment(), .show { AppConfig.threadCount = it } + PreferKey.webPort -> NumberPickerDialog(requireContext()) .setTitle(getString(R.string.web_port_title)) .setMaxValue(60000) @@ -104,6 +115,7 @@ class OtherConfigFragment : PreferenceFragment(), .show { AppConfig.webPort = it } + PreferKey.cleanCache -> clearCache() PreferKey.uploadRule -> showDialogFragment() PreferKey.checkSource -> showDialogFragment() @@ -118,6 +130,7 @@ class OtherConfigFragment : PreferenceFragment(), ImageProvider.bitmapLruCache.resize(ImageProvider.cacheSize) } } + PreferKey.sourceEditMaxLine -> { NumberPickerDialog(requireContext()) .setTitle(getString(R.string.source_edit_text_max_line)) @@ -141,10 +154,12 @@ class OtherConfigFragment : PreferenceFragment(), PreferKey.preDownloadNum -> { upPreferenceSummary(key, AppConfig.preDownloadNum.toString()) } + PreferKey.threadCount -> { upPreferenceSummary(key, AppConfig.threadCount.toString()) postEvent(PreferKey.threadCount, "") } + PreferKey.webPort -> { upPreferenceSummary(key, AppConfig.webPort.toString()) if (WebService.isRun) { @@ -152,26 +167,37 @@ class OtherConfigFragment : PreferenceFragment(), WebService.start(requireContext()) } } + PreferKey.defaultBookTreeUri -> { upPreferenceSummary(key, AppConfig.defaultBookTreeUri) } - PreferKey.recordLog -> LogUtils.upLevel() + + PreferKey.recordLog -> { + LogUtils.upLevel() + LiveEventBus.config().enableLogger(AppConfig.recordLog) + } + PreferKey.processText -> sharedPreferences?.let { setProcessTextEnable(it.getBoolean(key, true)) } + PreferKey.showDiscovery, PreferKey.showRss -> postEvent(EventBus.NOTIFY_MAIN, true) PreferKey.language -> listView.postDelayed(1000) { appCtx.restart() } + PreferKey.userAgent -> listView.post { upPreferenceSummary(PreferKey.userAgent, AppConfig.userAgent) } + PreferKey.checkSource -> listView.post { upPreferenceSummary(PreferKey.checkSource, CheckSource.summary) } + PreferKey.bitmapCacheSize -> { upPreferenceSummary(key, AppConfig.bitmapCacheSize.toString()) } + PreferKey.sourceEditMaxLine -> { upPreferenceSummary(key, AppConfig.sourceEditMaxLine.toString()) } @@ -183,12 +209,15 @@ class OtherConfigFragment : PreferenceFragment(), when (preferenceKey) { PreferKey.preDownloadNum -> preference.summary = getString(R.string.pre_download_s, value) + PreferKey.threadCount -> preference.summary = getString(R.string.threads_num, value) PreferKey.webPort -> preference.summary = getString(R.string.web_port_summary, value) PreferKey.bitmapCacheSize -> preference.summary = getString(R.string.bitmap_cache_size_summary, value) + PreferKey.sourceEditMaxLine -> preference.summary = getString(R.string.source_edit_max_line_summary, value) + else -> if (preference is ListPreference) { val index = preference.findIndexOfValue(value) // Set the summary to reflect the new value.