From 7d52eea5d02d2b1ff5261ac934009e3be6a9d5de Mon Sep 17 00:00:00 2001 From: fansan Date: Wed, 1 Jul 2026 23:33:10 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E5=86=B7=E5=8D=B4=E5=88=A4=E6=96=AD?= =?UTF-8?q?=E6=8C=AA=E5=88=B0onResume=E4=BB=A5=E5=87=8F=E5=B0=91=E4=BC=A0?= =?UTF-8?q?=E6=84=9F=E5=99=A8=E6=B3=A8=E5=86=8C=20(#1633)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../io/legado/app/ui/book/read/ReadBookRouteScreen.kt | 2 +- .../java/io/legado/app/ui/book/read/ReadBookViewModel.kt | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) 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) {