Skip to content

Commit 00e4631

Browse files
authored
Merge pull request #7963 from Stypox/android-tv-player
Improve player UI and navigability for Android TV
2 parents 02fa5aa + 146062d commit 00e4631

3 files changed

Lines changed: 14 additions & 17 deletions

File tree

app/src/main/java/org/schabi/newpipe/player/Player.java

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,6 @@
7373
import android.util.DisplayMetrics;
7474
import android.util.Log;
7575
import android.util.TypedValue;
76-
import android.view.ContextThemeWrapper;
7776
import android.view.Gravity;
7877
import android.view.KeyEvent;
7978
import android.view.LayoutInflater;
@@ -89,7 +88,6 @@
8988
import android.widget.ImageButton;
9089
import android.widget.ImageView;
9190
import android.widget.LinearLayout;
92-
import android.widget.PopupMenu;
9391
import android.widget.ProgressBar;
9492
import android.widget.RelativeLayout;
9593
import android.widget.SeekBar;
@@ -99,7 +97,9 @@
9997
import androidx.annotation.Nullable;
10098
import androidx.appcompat.app.AppCompatActivity;
10199
import androidx.appcompat.content.res.AppCompatResources;
100+
import androidx.appcompat.view.ContextThemeWrapper;
102101
import androidx.appcompat.widget.AppCompatImageButton;
102+
import androidx.appcompat.widget.PopupMenu;
103103
import androidx.core.content.ContextCompat;
104104
import androidx.core.graphics.Insets;
105105
import androidx.core.view.GestureDetectorCompat;
@@ -3249,6 +3249,9 @@ public void closeItemsList() {
32493249
binding.itemsListPanel.setTranslationY(
32503250
-binding.itemsListPanel.getHeight() * 5);
32513251
});
3252+
3253+
// clear focus, otherwise a white rectangle remains on top of the player
3254+
binding.itemsListClose.clearFocus();
32523255
binding.playPauseButton.requestFocus();
32533256
}
32543257
}
@@ -3855,24 +3858,23 @@ public boolean onKeyDown(final int keyCode) {
38553858
case KeyEvent.KEYCODE_DPAD_DOWN:
38563859
case KeyEvent.KEYCODE_DPAD_RIGHT:
38573860
case KeyEvent.KEYCODE_DPAD_CENTER:
3858-
if (binding.getRoot().hasFocus() && !binding.playbackControlRoot.hasFocus()) {
3859-
// do not interfere with focus in playlist etc.
3861+
if ((binding.getRoot().hasFocus() && !binding.playbackControlRoot.hasFocus())
3862+
|| isQueueVisible) {
3863+
// do not interfere with focus in playlist and play queue etc.
38603864
return false;
38613865
}
38623866

38633867
if (currentState == Player.STATE_BLOCKED) {
38643868
return true;
38653869
}
38663870

3867-
if (!isControlsVisible()) {
3868-
if (!isQueueVisible) {
3869-
binding.playPauseButton.requestFocus();
3870-
}
3871+
if (isControlsVisible()) {
3872+
hideControls(DEFAULT_CONTROLS_DURATION, DPAD_CONTROLS_HIDE_TIME);
3873+
} else {
3874+
binding.playPauseButton.requestFocus();
38713875
showControlsThenHide();
38723876
showSystemUIPartially();
38733877
return true;
3874-
} else {
3875-
hideControls(DEFAULT_CONTROLS_DURATION, DPAD_CONTROLS_HIDE_TIME);
38763878
}
38773879
break;
38783880
}

app/src/main/res/layout/player.xml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -545,9 +545,7 @@
545545
<RelativeLayout
546546
android:id="@+id/itemsListControl"
547547
android:layout_width="match_parent"
548-
android:layout_height="60dp"
549-
android:clickable="true"
550-
android:focusable="true">
548+
android:layout_height="60dp">
551549

552550
<androidx.appcompat.widget.AppCompatTextView
553551
android:id="@+id/itemsListHeaderTitle"

app/src/main/res/values/styles_misc.xml

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -66,10 +66,7 @@
6666
<item name="tint">?attr/actionColor</item>
6767
</style>
6868

69-
<style name="DarkPopupMenu" parent="Widget.AppCompat.PopupMenu">
70-
<item name="android:itemBackground">#2E2E2E</item>
71-
<item name="android:textColor">@color/white</item>
72-
</style>
69+
<style name="DarkPopupMenu" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />
7370

7471
<style name="ToolbarTheme" parent="ThemeOverlay.AppCompat.Dark.ActionBar">
7572
<item name="popupTheme">@style/ThemeOverlay.AppCompat.DayNight.ActionBar</item>

0 commit comments

Comments
 (0)