Skip to content

Commit c358ae1

Browse files
Fix a left scroll focus escape issue on the channel AND chapter display overlay.
1 parent 4b468e9 commit c358ae1

File tree

2 files changed

+8
-9
lines changed

2 files changed

+8
-9
lines changed

app/src/main/java/org/jellyfin/androidtv/ui/playback/CustomPlaybackOverlayFragment.java

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -474,16 +474,8 @@ public void refreshFavorite(UUID channelId) {
474474
private View.OnKeyListener keyListener = new View.OnKeyListener() {
475475
@Override
476476
public boolean onKey(View v, int keyCode, KeyEvent event) {
477-
if (mPopupPanelVisible
478-
&& !mGuideVisible
479-
&& keyCode == KeyEvent.KEYCODE_DPAD_LEFT
480-
&& mPopupRowPresenter.getPosition() <= 0) {
481-
// Keep focus in the quick channel changer when already at the first item.
482-
return true;
483-
}
484-
485477
if (event.getAction() == KeyEvent.ACTION_DOWN) {
486-
if (!mGuideVisible)
478+
if (!mGuideVisible && !mPopupPanelVisible)
487479
leanbackOverlayFragment.setShouldShowOverlay(true);
488480
else {
489481
leanbackOverlayFragment.setShouldShowOverlay(false);

app/src/main/java/org/jellyfin/androidtv/ui/presentation/PositionableListRowPresenter.kt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package org.jellyfin.androidtv.ui.presentation
22

3+
import android.view.KeyEvent
34
import androidx.leanback.widget.RowPresenter
45
import timber.log.Timber
56

@@ -22,6 +23,12 @@ class PositionableListRowPresenter : CustomListRowPresenter {
2223
if (holder !is ViewHolder) return
2324

2425
viewHolder = holder
26+
// Prevent focus from escaping the grid at the left boundary so the user
27+
// stays inside the popup (channel changer / chapter selector).
28+
holder.gridView?.setOnKeyInterceptListener { event ->
29+
event.keyCode == KeyEvent.KEYCODE_DPAD_LEFT &&
30+
(holder.gridView?.selectedPosition ?: -1) <= 0
31+
}
2532
}
2633

2734
var position: Int

0 commit comments

Comments
 (0)