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">
-
-
-
-