From 81f898d7b844dd2b8bb70b3d0ec3cf9f5269883b Mon Sep 17 00:00:00 2001 From: HapeLee <63206378+HapeLee@users.noreply.github.com> Date: Sun, 17 May 2026 02:40:42 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8E=BB=E6=8E=89=E4=BA=86=E5=85=B1=E4=BA=AB?= =?UTF-8?q?=E5=85=83=E7=B4=A0=E5=8A=A8=E7=94=BB=E7=9A=84=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/io/legado/app/constant/PreferKey.kt | 2 - .../io/legado/app/help/config/AppConfig.kt | 6 -- .../app/ui/book/read/ReadBookActivity.kt | 63 ++++--------------- .../app/ui/book/read/ReadBookViewModel.kt | 11 +++- .../app/ui/config/otherConfig/OtherConfig.kt | 10 --- .../config/otherConfig/OtherConfigScreen.kt | 16 +---- app/src/main/res/xml/pref_config_other.xml | 12 ---- 7 files changed, 24 insertions(+), 96 deletions(-) diff --git a/app/src/main/java/io/legado/app/constant/PreferKey.kt b/app/src/main/java/io/legado/app/constant/PreferKey.kt index df889d915..86ce8abfb 100644 --- a/app/src/main/java/io/legado/app/constant/PreferKey.kt +++ b/app/src/main/java/io/legado/app/constant/PreferKey.kt @@ -253,8 +253,6 @@ object PreferKey { const val paddingDisplayCutouts = "paddingDisplayCutouts" const val autoCheckNewBackup = "autoCheckNewBackup" const val backupSyncMode = "backupSyncMode" - const val delayBookLoadEnable = "delayBookLoadEnable" - const val sharedElementEnterTransitionEnable = "sharedElementEnterTransitionEnable" const val bookshelfLayoutGridLandscape = "bookshelfLayoutGridLandscape" const val bookshelfLayoutGridPortrait = "bookshelfLayoutGridPortrait" const val bookshelfLayoutListLandscape = "bookshelfLayoutListLandscape" diff --git a/app/src/main/java/io/legado/app/help/config/AppConfig.kt b/app/src/main/java/io/legado/app/help/config/AppConfig.kt index f5a78fdb9..8476d4395 100644 --- a/app/src/main/java/io/legado/app/help/config/AppConfig.kt +++ b/app/src/main/java/io/legado/app/help/config/AppConfig.kt @@ -607,12 +607,6 @@ object AppConfig : SharedPreferences.OnSharedPreferenceChangeListener { val paddingDisplayCutouts get() = appCtx.getPrefBoolean(PreferKey.paddingDisplayCutouts, false) - val delayBookLoadEnable - get() = appCtx.getPrefBoolean(PreferKey.delayBookLoadEnable, true) - - val sharedElementEnterTransitionEnable - get() = appCtx.getPrefBoolean(PreferKey.sharedElementEnterTransitionEnable, false) - var searchScope: String get() = appCtx.getPrefString("searchScope") ?: "" set(value) { diff --git a/app/src/main/java/io/legado/app/ui/book/read/ReadBookActivity.kt b/app/src/main/java/io/legado/app/ui/book/read/ReadBookActivity.kt index 02461dee8..db62d85de 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/ReadBookActivity.kt +++ b/app/src/main/java/io/legado/app/ui/book/read/ReadBookActivity.kt @@ -4,8 +4,8 @@ package io.legado.app.ui.book.read import android.annotation.SuppressLint import android.content.Intent import android.content.res.Configuration -import android.graphics.Color import android.os.Bundle +import android.os.Looper import android.view.Gravity import android.view.HapticFeedbackConstants import android.view.InputDevice @@ -22,8 +22,6 @@ import androidx.core.view.HapticFeedbackConstantsCompat import androidx.core.view.get import androidx.core.view.size import androidx.lifecycle.lifecycleScope -import com.google.android.material.transition.platform.MaterialContainerTransform -import com.google.android.material.transition.platform.MaterialContainerTransformSharedElementCallback import com.jaredrummler.android.colorpicker.ColorPickerDialogListener import com.script.rhino.runScriptWithContext import io.legado.app.BuildConfig @@ -84,14 +82,14 @@ import io.legado.app.ui.book.read.config.FontConfigDialog.Companion.TEXT_COLOR import io.legado.app.ui.book.read.config.FontSelectDialog import io.legado.app.ui.book.read.config.ReadAloudDialog import io.legado.app.ui.book.read.config.ReadStyleDialog -import io.legado.app.ui.book.read.config.TipConfigDialog.Companion.A_COLOR -import io.legado.app.ui.book.read.config.TipConfigDialog.Companion.B_COLOR -import io.legado.app.ui.book.read.config.TipConfigDialog.Companion.TIP_HEADER_COLOR -import io.legado.app.ui.book.read.config.TipConfigDialog.Companion.TIP_FOOTER_COLOR -import io.legado.app.ui.book.read.config.TipConfigDialog.Companion.TIP_DIVIDER_COLOR -import io.legado.app.ui.book.read.config.TipConfigDialog.Companion.TITLE_COLOR import io.legado.app.ui.book.read.config.RegexColorConfigDialog import io.legado.app.ui.book.read.config.RegexColorConfigDialog.Companion.REGEX_RULE_COLOR +import io.legado.app.ui.book.read.config.TipConfigDialog.Companion.A_COLOR +import io.legado.app.ui.book.read.config.TipConfigDialog.Companion.B_COLOR +import io.legado.app.ui.book.read.config.TipConfigDialog.Companion.TIP_DIVIDER_COLOR +import io.legado.app.ui.book.read.config.TipConfigDialog.Companion.TIP_FOOTER_COLOR +import io.legado.app.ui.book.read.config.TipConfigDialog.Companion.TIP_HEADER_COLOR +import io.legado.app.ui.book.read.config.TipConfigDialog.Companion.TITLE_COLOR import io.legado.app.ui.book.read.config.ToolButtonConfigDialog import io.legado.app.ui.book.read.config.UnderlineConfigDialog.Companion.U_COLOR import io.legado.app.ui.book.read.page.ContentTextView @@ -99,8 +97,8 @@ import io.legado.app.ui.book.read.page.ReadView import io.legado.app.ui.book.read.page.entities.PageDirection import io.legado.app.ui.book.read.page.entities.TextPage import io.legado.app.ui.book.read.page.provider.ChapterProvider -import io.legado.app.ui.book.read.page.provider.TextChapterLayout import io.legado.app.ui.book.read.page.provider.LayoutProgressListener +import io.legado.app.ui.book.read.page.provider.TextChapterLayout import io.legado.app.ui.book.searchContent.SearchContentActivity import io.legado.app.ui.book.searchContent.SearchResult import io.legado.app.ui.book.source.edit.BookSourceEditActivity @@ -139,11 +137,9 @@ import io.legado.app.utils.showHelp import io.legado.app.utils.startActivity import io.legado.app.utils.startActivityForBook import io.legado.app.utils.sysScreenOffTime -import io.legado.app.utils.themeColor import io.legado.app.utils.throttle import io.legado.app.utils.toastOnUi import io.legado.app.utils.visible -import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers.IO import kotlinx.coroutines.Dispatchers.Main import kotlinx.coroutines.Job @@ -295,32 +291,10 @@ class ReadBookActivity : BaseReadBookActivity(), private var justInitData: Boolean = false private var syncDialog: AlertDialog? = null - private val delayMillis: Long = 500 - private var hasLoadedBook = false - - private fun ensureLoadBook() { - if (!hasLoadedBook) { - hasLoadedBook = true - loadBook() - } - } - @SuppressLint("ClickableViewAccessibility") override fun onCreate(savedInstanceState: Bundle?) { - setEnterSharedElementCallback(MaterialContainerTransformSharedElementCallback()) - setExitSharedElementCallback(MaterialContainerTransformSharedElementCallback()) - val transform = MaterialContainerTransform().apply { - addTarget(binding.root) - scrimColor = Color.TRANSPARENT - duration = delayMillis - } - window.sharedElementEnterTransition = transform - window.sharedElementReturnTransition = transform - super.onCreate(savedInstanceState) - binding.rootView.transitionName = intent.getStringExtra("transitionName") - upScreenTimeOut() ReadBook.register(this) binding.cursorLeft.setOnTouchListener(this) @@ -364,13 +338,12 @@ class ReadBookActivity : BaseReadBookActivity(), override fun onPostCreate(savedInstanceState: Bundle?) { super.onPostCreate(savedInstanceState) - if (!AppConfig.sharedElementEnterTransitionEnable || !AppConfig.delayBookLoadEnable) { - ensureLoadBook() + viewModel.initReadBookConfig(intent) + Looper.myQueue().addIdleHandler { + viewModel.initData(intent) + false } - //虽然很扯但有用 - binding.rootView.postDelayed({ - ensureLoadBook() - }, delayMillis) + justInitData = true } override fun onNewIntent(intent: Intent) { @@ -488,16 +461,6 @@ class ReadBookActivity : BaseReadBookActivity(), return super.onMenuOpened(featureId, menu) } - private fun loadBook() { - lifecycleScope.launch(Dispatchers.Default) { - viewModel.initReadBookConfig(intent) - viewModel.initData(intent) - withContext(Main) { - justInitData = true - } - } - } - /** * 更新菜单 */ diff --git a/app/src/main/java/io/legado/app/ui/book/read/ReadBookViewModel.kt b/app/src/main/java/io/legado/app/ui/book/read/ReadBookViewModel.kt index 6336f5c62..94a7322a2 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/ReadBookViewModel.kt +++ b/app/src/main/java/io/legado/app/ui/book/read/ReadBookViewModel.kt @@ -93,7 +93,16 @@ class ReadBookViewModel( } ?: ReadBook.book when { book != null -> initBook(book) - else -> ReadBook.upMsg(context.getString(R.string.no_book)) + else -> { + ReadBook.upMsg(context.getString(R.string.no_book)) + AppLog.put("未找到书籍\nbookUrl:$bookUrl") + } + } + val index = intent.getIntExtra("index", -1) + val chapterPos = intent.getIntExtra("chapterPos", -1) + if (index >= 0 && chapterPos >= 0) { //从书签打开的正文,有进度传递 + ReadBook.saveCurrentBookProgress() //启用恢复进度提示 + openChapter(index, chapterPos) } }.onSuccess { success?.invoke() diff --git a/app/src/main/java/io/legado/app/ui/config/otherConfig/OtherConfig.kt b/app/src/main/java/io/legado/app/ui/config/otherConfig/OtherConfig.kt index c1a36d1c0..538b8bf64 100644 --- a/app/src/main/java/io/legado/app/ui/config/otherConfig/OtherConfig.kt +++ b/app/src/main/java/io/legado/app/ui/config/otherConfig/OtherConfig.kt @@ -103,16 +103,6 @@ object OtherConfig { DownloadCacheConfig.cronetEnable = value } - var sharedElementEnterTransitionEnable by prefDelegate( - PreferKey.sharedElementEnterTransitionEnable, - false - ) - - var delayBookLoadEnable by prefDelegate( - PreferKey.delayBookLoadEnable, - true - ) - var webServiceWakeLock by prefDelegate( PreferKey.webServiceWakeLock, false diff --git a/app/src/main/java/io/legado/app/ui/config/otherConfig/OtherConfigScreen.kt b/app/src/main/java/io/legado/app/ui/config/otherConfig/OtherConfigScreen.kt index 5c083a460..301f6bf5a 100644 --- a/app/src/main/java/io/legado/app/ui/config/otherConfig/OtherConfigScreen.kt +++ b/app/src/main/java/io/legado/app/ui/config/otherConfig/OtherConfigScreen.kt @@ -28,7 +28,6 @@ import io.legado.app.ui.widget.components.AppScaffold import io.legado.app.ui.widget.components.AppTextField import io.legado.app.ui.widget.components.SplicedColumnGroup import io.legado.app.ui.widget.components.alert.AppAlertDialog -import io.legado.app.ui.widget.components.topbar.TopBarNavigationButton import io.legado.app.ui.widget.components.filePicker.FilePickerSheet import io.legado.app.ui.widget.components.settingItem.ClickableSettingItem import io.legado.app.ui.widget.components.settingItem.DropdownListSettingItem @@ -36,6 +35,7 @@ import io.legado.app.ui.widget.components.settingItem.InputSettingItem import io.legado.app.ui.widget.components.settingItem.SwitchSettingItem import io.legado.app.ui.widget.components.topbar.GlassMediumFlexibleTopAppBar import io.legado.app.ui.widget.components.topbar.GlassTopAppBarDefaults +import io.legado.app.ui.widget.components.topbar.TopBarNavigationButton import io.legado.app.utils.restart import io.legado.app.utils.takePersistablePermissionSafely import org.koin.androidx.compose.koinViewModel @@ -241,20 +241,6 @@ fun OtherConfigScreen( SplicedColumnGroup(title = stringResource(R.string.other_setting)) { - SwitchSettingItem( - title = stringResource(R.string.use_animation), - description = stringResource(R.string.opt_animation), - checked = OtherConfig.sharedElementEnterTransitionEnable, - onCheckedChange = { OtherConfig.sharedElementEnterTransitionEnable = it } - ) - - SwitchSettingItem( - title = stringResource(R.string.delay_book_load), - description = stringResource(R.string.reduce_stutter), - checked = OtherConfig.delayBookLoadEnable, - onCheckedChange = { OtherConfig.delayBookLoadEnable = it } - ) - SwitchSettingItem( title = stringResource(R.string.web_service_wake_lock), description = stringResource(R.string.web_service_wake_lock_summary), diff --git a/app/src/main/res/xml/pref_config_other.xml b/app/src/main/res/xml/pref_config_other.xml index 735a0a5dd..368d74090 100644 --- a/app/src/main/res/xml/pref_config_other.xml +++ b/app/src/main/res/xml/pref_config_other.xml @@ -172,18 +172,6 @@ app:iconSpaceReserved="false" app:layout="@layout/view_preference_category"> - - - -