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

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 paddingDisplayCutouts = "paddingDisplayCutouts"
const val autoCheckNewBackup = "autoCheckNewBackup" const val autoCheckNewBackup = "autoCheckNewBackup"
const val backupSyncMode = "backupSyncMode" const val backupSyncMode = "backupSyncMode"
const val delayBookLoadEnable = "delayBookLoadEnable"
const val sharedElementEnterTransitionEnable = "sharedElementEnterTransitionEnable"
const val bookshelfLayoutGridLandscape = "bookshelfLayoutGridLandscape" const val bookshelfLayoutGridLandscape = "bookshelfLayoutGridLandscape"
const val bookshelfLayoutGridPortrait = "bookshelfLayoutGridPortrait" const val bookshelfLayoutGridPortrait = "bookshelfLayoutGridPortrait"
const val bookshelfLayoutListLandscape = "bookshelfLayoutListLandscape" const val bookshelfLayoutListLandscape = "bookshelfLayoutListLandscape"
@@ -607,12 +607,6 @@ object AppConfig : SharedPreferences.OnSharedPreferenceChangeListener {
val paddingDisplayCutouts val paddingDisplayCutouts
get() = appCtx.getPrefBoolean(PreferKey.paddingDisplayCutouts, false) 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 var searchScope: String
get() = appCtx.getPrefString("searchScope") ?: "" get() = appCtx.getPrefString("searchScope") ?: ""
set(value) { set(value) {
@@ -4,8 +4,8 @@ package io.legado.app.ui.book.read
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.content.Intent import android.content.Intent
import android.content.res.Configuration import android.content.res.Configuration
import android.graphics.Color
import android.os.Bundle import android.os.Bundle
import android.os.Looper
import android.view.Gravity import android.view.Gravity
import android.view.HapticFeedbackConstants import android.view.HapticFeedbackConstants
import android.view.InputDevice import android.view.InputDevice
@@ -22,8 +22,6 @@ import androidx.core.view.HapticFeedbackConstantsCompat
import androidx.core.view.get import androidx.core.view.get
import androidx.core.view.size import androidx.core.view.size
import androidx.lifecycle.lifecycleScope 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.jaredrummler.android.colorpicker.ColorPickerDialogListener
import com.script.rhino.runScriptWithContext import com.script.rhino.runScriptWithContext
import io.legado.app.BuildConfig 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.FontSelectDialog
import io.legado.app.ui.book.read.config.ReadAloudDialog 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.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
import io.legado.app.ui.book.read.config.RegexColorConfigDialog.Companion.REGEX_RULE_COLOR 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.ToolButtonConfigDialog
import io.legado.app.ui.book.read.config.UnderlineConfigDialog.Companion.U_COLOR import io.legado.app.ui.book.read.config.UnderlineConfigDialog.Companion.U_COLOR
import io.legado.app.ui.book.read.page.ContentTextView 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.PageDirection
import io.legado.app.ui.book.read.page.entities.TextPage 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.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.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.SearchContentActivity
import io.legado.app.ui.book.searchContent.SearchResult import io.legado.app.ui.book.searchContent.SearchResult
import io.legado.app.ui.book.source.edit.BookSourceEditActivity 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.startActivity
import io.legado.app.utils.startActivityForBook import io.legado.app.utils.startActivityForBook
import io.legado.app.utils.sysScreenOffTime import io.legado.app.utils.sysScreenOffTime
import io.legado.app.utils.themeColor
import io.legado.app.utils.throttle import io.legado.app.utils.throttle
import io.legado.app.utils.toastOnUi import io.legado.app.utils.toastOnUi
import io.legado.app.utils.visible import io.legado.app.utils.visible
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.Dispatchers.IO import kotlinx.coroutines.Dispatchers.IO
import kotlinx.coroutines.Dispatchers.Main import kotlinx.coroutines.Dispatchers.Main
import kotlinx.coroutines.Job import kotlinx.coroutines.Job
@@ -295,32 +291,10 @@ class ReadBookActivity : BaseReadBookActivity(),
private var justInitData: Boolean = false private var justInitData: Boolean = false
private var syncDialog: AlertDialog? = null private var syncDialog: AlertDialog? = null
private val delayMillis: Long = 500
private var hasLoadedBook = false
private fun ensureLoadBook() {
if (!hasLoadedBook) {
hasLoadedBook = true
loadBook()
}
}
@SuppressLint("ClickableViewAccessibility") @SuppressLint("ClickableViewAccessibility")
override fun onCreate(savedInstanceState: Bundle?) { 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) super.onCreate(savedInstanceState)
binding.rootView.transitionName = intent.getStringExtra("transitionName")
upScreenTimeOut() upScreenTimeOut()
ReadBook.register(this) ReadBook.register(this)
binding.cursorLeft.setOnTouchListener(this) binding.cursorLeft.setOnTouchListener(this)
@@ -364,13 +338,12 @@ class ReadBookActivity : BaseReadBookActivity(),
override fun onPostCreate(savedInstanceState: Bundle?) { override fun onPostCreate(savedInstanceState: Bundle?) {
super.onPostCreate(savedInstanceState) super.onPostCreate(savedInstanceState)
if (!AppConfig.sharedElementEnterTransitionEnable || !AppConfig.delayBookLoadEnable) { viewModel.initReadBookConfig(intent)
ensureLoadBook() Looper.myQueue().addIdleHandler {
viewModel.initData(intent)
false
} }
//虽然很扯但有用 justInitData = true
binding.rootView.postDelayed({
ensureLoadBook()
}, delayMillis)
} }
override fun onNewIntent(intent: Intent) { override fun onNewIntent(intent: Intent) {
@@ -488,16 +461,6 @@ class ReadBookActivity : BaseReadBookActivity(),
return super.onMenuOpened(featureId, menu) 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 } ?: ReadBook.book
when { when {
book != null -> initBook(book) 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 { }.onSuccess {
success?.invoke() success?.invoke()
@@ -103,16 +103,6 @@ object OtherConfig {
DownloadCacheConfig.cronetEnable = value DownloadCacheConfig.cronetEnable = value
} }
var sharedElementEnterTransitionEnable by prefDelegate(
PreferKey.sharedElementEnterTransitionEnable,
false
)
var delayBookLoadEnable by prefDelegate(
PreferKey.delayBookLoadEnable,
true
)
var webServiceWakeLock by prefDelegate( var webServiceWakeLock by prefDelegate(
PreferKey.webServiceWakeLock, PreferKey.webServiceWakeLock,
false 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.AppTextField
import io.legado.app.ui.widget.components.SplicedColumnGroup import io.legado.app.ui.widget.components.SplicedColumnGroup
import io.legado.app.ui.widget.components.alert.AppAlertDialog 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.filePicker.FilePickerSheet
import io.legado.app.ui.widget.components.settingItem.ClickableSettingItem import io.legado.app.ui.widget.components.settingItem.ClickableSettingItem
import io.legado.app.ui.widget.components.settingItem.DropdownListSettingItem 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.settingItem.SwitchSettingItem
import io.legado.app.ui.widget.components.topbar.GlassMediumFlexibleTopAppBar 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.GlassTopAppBarDefaults
import io.legado.app.ui.widget.components.topbar.TopBarNavigationButton
import io.legado.app.utils.restart import io.legado.app.utils.restart
import io.legado.app.utils.takePersistablePermissionSafely import io.legado.app.utils.takePersistablePermissionSafely
import org.koin.androidx.compose.koinViewModel import org.koin.androidx.compose.koinViewModel
@@ -241,20 +241,6 @@ fun OtherConfigScreen(
SplicedColumnGroup(title = stringResource(R.string.other_setting)) { 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( SwitchSettingItem(
title = stringResource(R.string.web_service_wake_lock), title = stringResource(R.string.web_service_wake_lock),
description = stringResource(R.string.web_service_wake_lock_summary), description = stringResource(R.string.web_service_wake_lock_summary),
@@ -172,18 +172,6 @@
app:iconSpaceReserved="false" app:iconSpaceReserved="false"
app:layout="@layout/view_preference_category"> app:layout="@layout/view_preference_category">
<io.legado.app.lib.prefs.SwitchPreference
android:defaultValue="false"
android:key="sharedElementEnterTransitionEnable"
android:summary="@string/opt_animation"
android:title="@string/use_animation" />
<io.legado.app.lib.prefs.SwitchPreference
android:defaultValue="true"
android:key="delayBookLoadEnable"
android:summary="@string/reduce_stutter"
android:title="@string/delay_book_load" />
<io.legado.app.lib.prefs.Preference <io.legado.app.lib.prefs.Preference
android:key="userAgent" android:key="userAgent"
android:title="@string/user_agent" /> android:title="@string/user_agent" />