Fix OS screensaver starting during playback with dim enabled (#1956)
## Description Fixes some devices activating the OS screensaver during playback when the in-app dim was enabled. I was not able to reproduce this on Shield 2017/2019, but could easily on a Fire TV Stick. #1834 added the dim feature and, when enabled, would not pass the keep screen on flag to the OS during playback. It seems maybe regular Android TV's screensaver also listened to active media session to prevent starting but maybe Fire TV OS doesn't. I'm not 100% sure. This PR changes the logic slightly so that the keep screen on flag is always set during playback. ### Related issues Fixes #1894 Related to dim feature from https://github.com/damontecres/Wholphin/pull/1834 ### Testing Emulator, shield 2019, & fire tv stick 4k ## Screenshots N/A ## AI or LLM usage None
This commit is contained in:
parent
074eab22f3
commit
98fba1340f
1 changed files with 6 additions and 3 deletions
|
|
@ -173,9 +173,10 @@ class ScreensaverService
|
|||
*/
|
||||
fun keepScreenOn(keep: Boolean) {
|
||||
scope.launchDefault {
|
||||
val screensaverEnabled = _state.value.run { enabled || dimEnabled }
|
||||
val screensaverEnabled = state.value.enabled
|
||||
val dimEnabled = state.value.dimEnabled
|
||||
Timber.d("Keep screen on: %s, screensaverEnabled=%s", keep, screensaverEnabled)
|
||||
if (screensaverEnabled) {
|
||||
if (screensaverEnabled || dimEnabled) {
|
||||
// Page is requesting to keep screen on, so we don't wait to show the screensaver
|
||||
_state.update {
|
||||
it.copy(
|
||||
|
|
@ -187,7 +188,9 @@ class ScreensaverService
|
|||
if (!keep) {
|
||||
pulse()
|
||||
}
|
||||
} else {
|
||||
}
|
||||
if (!screensaverEnabled) {
|
||||
// If in-app screensaver is not enabled, send keep screen on to the OS
|
||||
keepScreenOnInternal(keep)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue