From 2b8e701202d3be0c9a045cf66b6640f04d1eeeb7 Mon Sep 17 00:00:00 2001 From: jianing liu Date: Thu, 16 Oct 2025 22:44:32 +0800 Subject: [PATCH 1/2] delete binding.metadataView.setVisibility(isFullscreen ? View.VISIBLE : View.GONE);and changed layout_weight of audioTrackTextView to 2 --- .../main/java/org/schabi/newpipe/player/ui/MainPlayerUi.java | 2 -- app/src/main/res/layout/player.xml | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/player/ui/MainPlayerUi.java b/app/src/main/java/org/schabi/newpipe/player/ui/MainPlayerUi.java index b79ef92357e..d8efb30df7d 100644 --- a/app/src/main/java/org/schabi/newpipe/player/ui/MainPlayerUi.java +++ b/app/src/main/java/org/schabi/newpipe/player/ui/MainPlayerUi.java @@ -289,7 +289,6 @@ protected void setupElementsVisibility() { binding.topControls.setClickable(true); binding.topControls.setFocusable(true); - binding.metadataView.setVisibility(isFullscreen ? View.VISIBLE : View.GONE); binding.titleTextView.setVisibility(isFullscreen ? View.VISIBLE : View.GONE); binding.channelTextView.setVisibility(isFullscreen ? View.VISIBLE : View.GONE); } @@ -935,7 +934,6 @@ public void toggleFullscreen() { } fragmentListener.onFullscreenStateChanged(isFullscreen); - binding.metadataView.setVisibility(isFullscreen ? View.VISIBLE : View.GONE); binding.titleTextView.setVisibility(isFullscreen ? View.VISIBLE : View.GONE); binding.channelTextView.setVisibility(isFullscreen ? View.VISIBLE : View.GONE); binding.playerCloseButton.setVisibility(isFullscreen ? View.GONE : View.VISIBLE); diff --git a/app/src/main/res/layout/player.xml b/app/src/main/res/layout/player.xml index 4e5cd8533f8..60a9d914abf 100644 --- a/app/src/main/res/layout/player.xml +++ b/app/src/main/res/layout/player.xml @@ -163,7 +163,7 @@ android:layout_width="0dp" android:layout_height="35dp" android:layout_marginEnd="8dp" - android:layout_weight="1" + android:layout_weight="2" android:background="?attr/selectableItemBackground" android:gravity="center" android:minWidth="0dp" From 8683817f8cd1d31cad5bb849bf5618d7dc80afc2 Mon Sep 17 00:00:00 2001 From: jianing liu Date: Fri, 17 Oct 2025 15:22:06 +0800 Subject: [PATCH 2/2] feat(ui): add dynamic right spacer for top bar alignment --- .../schabi/newpipe/player/ui/MainPlayerUi.java | 17 +++++++++++++++++ .../schabi/newpipe/player/ui/VideoPlayerUi.java | 6 ++++++ app/src/main/res/layout/player.xml | 7 +++++++ 3 files changed, 30 insertions(+) diff --git a/app/src/main/java/org/schabi/newpipe/player/ui/MainPlayerUi.java b/app/src/main/java/org/schabi/newpipe/player/ui/MainPlayerUi.java index d8efb30df7d..72b95dc39a9 100644 --- a/app/src/main/java/org/schabi/newpipe/player/ui/MainPlayerUi.java +++ b/app/src/main/java/org/schabi/newpipe/player/ui/MainPlayerUi.java @@ -289,8 +289,10 @@ protected void setupElementsVisibility() { binding.topControls.setClickable(true); binding.topControls.setFocusable(true); + binding.metadataView.setVisibility(isFullscreen ? View.VISIBLE : View.GONE); binding.titleTextView.setVisibility(isFullscreen ? View.VISIBLE : View.GONE); binding.channelTextView.setVisibility(isFullscreen ? View.VISIBLE : View.GONE); + updateRightSpacerVisibility(); } @Override @@ -511,6 +513,19 @@ private void showHideKodiButton() { && KoreUtils.shouldShowPlayWithKodi(context, playQueue.getItem().getServiceId()) ? View.VISIBLE : View.GONE); } + + private void updateRightSpacerVisibility() { + final boolean hasAudio = binding.audioTrackTextView.getVisibility() != View.GONE; + final boolean hasMeta = binding.metadataView.getVisibility() != View.GONE; + binding.rightSpacer.setVisibility(!hasAudio && !hasMeta + ? View.VISIBLE : View.GONE); + } + + @Override + protected void onTopBarContentChanged() { + updateRightSpacerVisibility(); + } + //endregion @@ -934,9 +949,11 @@ public void toggleFullscreen() { } fragmentListener.onFullscreenStateChanged(isFullscreen); + binding.metadataView.setVisibility(isFullscreen ? View.VISIBLE : View.GONE); binding.titleTextView.setVisibility(isFullscreen ? View.VISIBLE : View.GONE); binding.channelTextView.setVisibility(isFullscreen ? View.VISIBLE : View.GONE); binding.playerCloseButton.setVisibility(isFullscreen ? View.GONE : View.VISIBLE); + updateRightSpacerVisibility(); setupScreenRotationButton(); } diff --git a/app/src/main/java/org/schabi/newpipe/player/ui/VideoPlayerUi.java b/app/src/main/java/org/schabi/newpipe/player/ui/VideoPlayerUi.java index 7157d6af22f..c6bc1049d93 100644 --- a/app/src/main/java/org/schabi/newpipe/player/ui/VideoPlayerUi.java +++ b/app/src/main/java/org/schabi/newpipe/player/ui/VideoPlayerUi.java @@ -1029,6 +1029,8 @@ private void updateStreamRelatedViews() { binding.audioTrackTextView.setVisibility(View.GONE); binding.playbackSpeed.setVisibility(View.GONE); + onTopBarContentChanged(); + binding.playbackEndTime.setVisibility(View.GONE); binding.playbackLiveSync.setVisibility(View.GONE); @@ -1135,6 +1137,7 @@ private void buildAudioTrackMenu() { .ifPresent(s -> binding.audioTrackTextView.setText( Localization.audioTrackName(context, s))); binding.audioTrackTextView.setVisibility(View.VISIBLE); + onTopBarContentChanged(); audioTrackPopupMenu.setOnMenuItemClickListener(this); audioTrackPopupMenu.setOnDismissListener(this); } @@ -1238,6 +1241,9 @@ private void buildCaptionMenu(@NonNull final List availableLanguages) { protected abstract void onPlaybackSpeedClicked(); + protected void onTopBarContentChanged() { + } + private void onQualityClicked() { qualityPopupMenu.show(); isSomePopupMenuVisible = true; diff --git a/app/src/main/res/layout/player.xml b/app/src/main/res/layout/player.xml index 60a9d914abf..ea9c3a30241 100644 --- a/app/src/main/res/layout/player.xml +++ b/app/src/main/res/layout/player.xml @@ -177,6 +177,13 @@ tools:visibility="visible" tools:text="English (Original)" /> + +