去掉了共享元素动画的相关设置

This commit is contained in:
HapeLee
2026-05-17 02:40:42 +08:00
parent 1e8365ec47
commit 81f898d7b8
7 changed files with 24 additions and 96 deletions
@@ -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"
@@ -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) {
@@ -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
}
}
}
/**
* 更新菜单
*/
@@ -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()
@@ -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
@@ -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),