diff --git a/app/src/main/java/io/legado/app/ui/book/read/ReadBookContract.kt b/app/src/main/java/io/legado/app/ui/book/read/ReadBookContract.kt index 445e3a5a0..a9b19830e 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/ReadBookContract.kt +++ b/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 RegisterNetworkListener : ReadBookEffect data object UnregisterNetworkListener : ReadBookEffect + data object SetOrientation : ReadBookEffect data object OpenBooksDirPicker : ReadBookEffect data object BackupNow : ReadBookEffect diff --git a/app/src/main/java/io/legado/app/ui/book/read/ReadBookController.kt b/app/src/main/java/io/legado/app/ui/book/read/ReadBookController.kt index 02ec69b8d..8e86d6218 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/ReadBookController.kt +++ b/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. */ fun onResume() { + setOrientation() upSystemUiVisibility() refs?.readView?.upTime() screenOffTimerStart() @@ -742,6 +743,10 @@ class ReadBookController( networkChangedListener.unRegister() } + is ReadBookEffect.SetOrientation -> { + setOrientation() + } + is ReadBookEffect.BackupNow -> { Backup.autoBack(activity) } 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 b4d650e6e..f624f3a3c 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 @@ -1285,6 +1285,9 @@ class ReadBookViewModel( if (old != null && old.keepLight != preferences.keepLight) { _effects.tryEmit(ReadBookEffect.UpScreenTimeOut) } + if (old != null && old.screenOrientation != preferences.screenOrientation) { + _effects.tryEmit(ReadBookEffect.SetOrientation) + } } } }