diff --git a/app/src/main/java/io/legado/app/ui/book/read/ReadBookRouteScreen.kt b/app/src/main/java/io/legado/app/ui/book/read/ReadBookRouteScreen.kt index 59be73732..3d409ff8d 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/ReadBookRouteScreen.kt +++ b/app/src/main/java/io/legado/app/ui/book/read/ReadBookRouteScreen.kt @@ -249,7 +249,7 @@ fun ReadBookRouteScreen( val observer = LifecycleEventObserver { _, event -> if (event == Lifecycle.Event.ON_RESUME) { - if (!ReadConfig.autoSuggestDayNight) return@LifecycleEventObserver + if (!ReadConfig.autoSuggestDayNight || viewModel.isDayNightSwitchCoolingDown()) return@LifecycleEventObserver if (lightSensor != null) { listener = object : SensorEventListener { override fun onSensorChanged(sensorEvent: SensorEvent?) { 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 eaa4ae769..8e414a0ce 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 @@ -4023,6 +4023,10 @@ class ReadBookViewModel( private var lastSwitchDayNightReminderTime: Long = 0L private val reminderQueue = ArrayDeque() + fun isDayNightSwitchCoolingDown(): Boolean { + return System.currentTimeMillis() - lastSwitchDayNightReminderTime < REMINDER_COOLDOWN_MS + } + private fun showReminder(reminder: ReminderUiState) { if (_uiState.value.activeReminder == null && reminderQueue.isEmpty()) { _uiState.update { it.copy(activeReminder = reminder) } @@ -4038,9 +4042,7 @@ class ReadBookViewModel( } private fun checkSwitchDayNight(lux: Float) { - if (!ReadConfig.autoSuggestDayNight) return - if (System.currentTimeMillis() - lastSwitchDayNightReminderTime < REMINDER_COOLDOWN_MS) return - + if (!ReadConfig.autoSuggestDayNight || isDayNightSwitchCoolingDown()) return val isNight = ReadConfig.isNightTheme val styleConfig = _uiState.value.styleConfig if (!isNight && lux <= DARK_LUX_THRESHOLD) {