From 666f8310534554f33eccc1ba8c45d90088ced676 Mon Sep 17 00:00:00 2001 From: PartyDonut Date: Sun, 19 Oct 2025 10:56:25 +0200 Subject: [PATCH] fix: Add keyEvent handling for devices that don't use back gestures --- .../controls/VideoPlayerControls.kt | 24 ++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/android/app/src/main/kotlin/nl/jknaapen/fladder/composables/controls/VideoPlayerControls.kt b/android/app/src/main/kotlin/nl/jknaapen/fladder/composables/controls/VideoPlayerControls.kt index f344e48..817bba2 100644 --- a/android/app/src/main/kotlin/nl/jknaapen/fladder/composables/controls/VideoPlayerControls.kt +++ b/android/app/src/main/kotlin/nl/jknaapen/fladder/composables/controls/VideoPlayerControls.kt @@ -49,8 +49,11 @@ import androidx.compose.ui.graphics.Brush import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.StrokeCap import androidx.compose.ui.input.key.Key.Companion.Back +import androidx.compose.ui.input.key.Key.Companion.Backspace +import androidx.compose.ui.input.key.Key.Companion.ButtonB import androidx.compose.ui.input.key.Key.Companion.DirectionLeft import androidx.compose.ui.input.key.Key.Companion.DirectionRight +import androidx.compose.ui.input.key.Key.Companion.Escape import androidx.compose.ui.input.key.KeyEvent import androidx.compose.ui.input.key.KeyEventType import androidx.compose.ui.input.key.key @@ -120,9 +123,13 @@ fun CustomVideoControls( } BackHandler( - enabled = showControls + enabled = true ) { - hideControls() + if (showControls) { + hideControls() + } else { + activity?.finish() + } } // Restart the hide timer whenever `lastInteraction` changes. @@ -169,9 +176,20 @@ fun CustomVideoControls( .onKeyEvent { keyEvent: KeyEvent -> if (keyEvent.type != KeyEventType.KeyDown) return@onKeyEvent false + when (keyEvent.key) { + Back, Escape, ButtonB, Backspace -> { + if (showControls) { + hideControls() + return@onKeyEvent true + } else { + activity?.finish() + return@onKeyEvent true + } + } + } + if (!showControls) { when (keyEvent.key) { - Back -> return@onKeyEvent true DirectionLeft -> { currentSkipTime -= backwardSpeed.inWholeMilliseconds updateSeekInteraction()