فهرست منبع

fix: 阅读界面屏幕方向设置无效

HapeLee 5 ماه پیش
والد
کامیت
88dd01e0be

+ 1 - 0
app/src/main/java/io/legado/app/ui/book/read/ReadBookContract.kt

@@ -573,6 +573,7 @@ sealed interface ReadBookEffect {
     data object UnregisterTimeBatteryReceiver : ReadBookEffect
     data object UnregisterTimeBatteryReceiver : ReadBookEffect
     data object RegisterNetworkListener : ReadBookEffect
     data object RegisterNetworkListener : ReadBookEffect
     data object UnregisterNetworkListener : ReadBookEffect
     data object UnregisterNetworkListener : ReadBookEffect
+    data object SetOrientation : ReadBookEffect
     data object OpenBooksDirPicker : ReadBookEffect
     data object OpenBooksDirPicker : ReadBookEffect
     data object BackupNow : ReadBookEffect
     data object BackupNow : ReadBookEffect
 
 

+ 5 - 0
app/src/main/java/io/legado/app/ui/book/read/ReadBookController.kt

@@ -176,6 +176,7 @@ class ReadBookController(
      * View/Window-only resume — business logic handled by ViewModel via OnResume intent.
      * View/Window-only resume — business logic handled by ViewModel via OnResume intent.
      */
      */
     fun onResume() {
     fun onResume() {
+        setOrientation()
         upSystemUiVisibility()
         upSystemUiVisibility()
         refs?.readView?.upTime()
         refs?.readView?.upTime()
         screenOffTimerStart()
         screenOffTimerStart()
@@ -742,6 +743,10 @@ class ReadBookController(
                 networkChangedListener.unRegister()
                 networkChangedListener.unRegister()
             }
             }
 
 
+            is ReadBookEffect.SetOrientation -> {
+                setOrientation()
+            }
+
             is ReadBookEffect.BackupNow -> {
             is ReadBookEffect.BackupNow -> {
                 Backup.autoBack(activity)
                 Backup.autoBack(activity)
             }
             }

+ 3 - 0
app/src/main/java/io/legado/app/ui/book/read/ReadBookViewModel.kt

@@ -1285,6 +1285,9 @@ class ReadBookViewModel(
                 if (old != null && old.keepLight != preferences.keepLight) {
                 if (old != null && old.keepLight != preferences.keepLight) {
                     _effects.tryEmit(ReadBookEffect.UpScreenTimeOut)
                     _effects.tryEmit(ReadBookEffect.UpScreenTimeOut)
                 }
                 }
+                if (old != null && old.screenOrientation != preferences.screenOrientation) {
+                    _effects.tryEmit(ReadBookEffect.SetOrientation)
+                }
             }
             }
         }
         }
     }
     }