Skip to content

Commit 774c85e

Browse files
ionjsepulvedaBnyro
authored andcommitted
fix: Fix keyboard hotkeys not being binded
1 parent 18e5a40 commit 774c85e

3 files changed

Lines changed: 16 additions & 5 deletions

File tree

app/src/main/java/com/github/libretube/ui/activities/MainActivity.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -639,7 +639,7 @@ class MainActivity : BaseActivity() {
639639
}
640640

641641
override fun onKeyUp(keyCode: Int, event: KeyEvent?): Boolean {
642-
if (runOnPlayerFragment { onKeyUp(keyCode) }) {
642+
if (runOnPlayerFragment { this@runOnPlayerFragment.onKeyUp(keyCode, event) }) {
643643
return true
644644
}
645645

app/src/main/java/com/github/libretube/ui/fragments/PlayerFragment.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1566,7 +1566,7 @@ class PlayerFragment : Fragment(R.layout.fragment_player), OnlinePlayerOptions {
15661566

15671567
viewModel.isOrientationChangeInProgress = true
15681568

1569-
// detatch player view from player to stop surface rendering
1569+
// detach player view from player to stop surface rendering
15701570
binding.player.player = null
15711571

15721572
if (::playerController.isInitialized) playerController.release()
@@ -1602,8 +1602,8 @@ class PlayerFragment : Fragment(R.layout.fragment_player), OnlinePlayerOptions {
16021602
binding.player.hideController()
16031603
}
16041604

1605-
fun onKeyUp(keyCode: Int): Boolean {
1606-
return _binding?.player?.onKeyBoardAction(keyCode) ?: false
1605+
fun onKeyUp(keyCode: Int, event: KeyEvent?): Boolean {
1606+
return _binding?.player?.onKeyUp(keyCode, event) ?: false
16071607
}
16081608

16091609
override fun onDestroyView() {

app/src/main/java/com/github/libretube/ui/views/CustomExoPlayerView.kt

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,8 @@ abstract class CustomExoPlayerView(
168168
applyCaptionsStyle()
169169
initializeAdvancedOptions()
170170

171+
setupKeyboardFocus()
172+
171173
// don't let the player view hide its controls automatically
172174
controllerShowTimeoutMs = -1
173175
// don't let the player view show its controls automatically
@@ -346,6 +348,15 @@ abstract class CustomExoPlayerView(
346348
}
347349
}
348350

351+
/**
352+
* focus the player view so that all keyboard events will be moved here
353+
*/
354+
private fun setupKeyboardFocus() {
355+
isFocusable = true
356+
isFocusableInTouchMode = true
357+
requestFocus()
358+
}
359+
349360
fun toggleSystemBars(showBars: Boolean) {
350361
getWindow().toggleSystemBars(
351362
types = if (showBars) {
@@ -961,7 +972,7 @@ abstract class CustomExoPlayerView(
961972
return playerGestureController.onTouchEvent(event)
962973
}
963974

964-
fun onKeyBoardAction(keyCode: Int): Boolean {
975+
override fun onKeyUp(keyCode: Int, event: KeyEvent?): Boolean {
965976
when (keyCode) {
966977
KeyEvent.KEYCODE_SPACE, KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE -> {
967978
player?.togglePlayPauseState()

0 commit comments

Comments
 (0)