Explorar o código

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

HapeLee hai 5 meses
pai
achega
81f898d7b8

+ 0 - 2
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"

+ 0 - 6
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) {

+ 11 - 48
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.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_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.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.RegexColorConfigDialog
-import io.legado.app.ui.book.read.config.RegexColorConfigDialog.Companion.REGEX_RULE_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
-            }
-        }
-    }
-
     /**
      * 更新菜单
      */

+ 10 - 1
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()

+ 0 - 10
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

+ 1 - 15
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),

+ 0 - 12
app/src/main/res/xml/pref_config_other.xml

@@ -172,18 +172,6 @@
         app:iconSpaceReserved="false"
         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
             android:key="userAgent"
             android:title="@string/user_agent" />