Skip to content

Commit 8683817

Browse files
committed
feat(ui): add dynamic right spacer for top bar alignment
1 parent 2b8e701 commit 8683817

3 files changed

Lines changed: 30 additions & 0 deletions

File tree

app/src/main/java/org/schabi/newpipe/player/ui/MainPlayerUi.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -289,8 +289,10 @@ protected void setupElementsVisibility() {
289289
binding.topControls.setClickable(true);
290290
binding.topControls.setFocusable(true);
291291

292+
binding.metadataView.setVisibility(isFullscreen ? View.VISIBLE : View.GONE);
292293
binding.titleTextView.setVisibility(isFullscreen ? View.VISIBLE : View.GONE);
293294
binding.channelTextView.setVisibility(isFullscreen ? View.VISIBLE : View.GONE);
295+
updateRightSpacerVisibility();
294296
}
295297

296298
@Override
@@ -511,6 +513,19 @@ private void showHideKodiButton() {
511513
&& KoreUtils.shouldShowPlayWithKodi(context, playQueue.getItem().getServiceId())
512514
? View.VISIBLE : View.GONE);
513515
}
516+
517+
private void updateRightSpacerVisibility() {
518+
final boolean hasAudio = binding.audioTrackTextView.getVisibility() != View.GONE;
519+
final boolean hasMeta = binding.metadataView.getVisibility() != View.GONE;
520+
binding.rightSpacer.setVisibility(!hasAudio && !hasMeta
521+
? View.VISIBLE : View.GONE);
522+
}
523+
524+
@Override
525+
protected void onTopBarContentChanged() {
526+
updateRightSpacerVisibility();
527+
}
528+
514529
//endregion
515530

516531

@@ -934,9 +949,11 @@ public void toggleFullscreen() {
934949
}
935950
fragmentListener.onFullscreenStateChanged(isFullscreen);
936951

952+
binding.metadataView.setVisibility(isFullscreen ? View.VISIBLE : View.GONE);
937953
binding.titleTextView.setVisibility(isFullscreen ? View.VISIBLE : View.GONE);
938954
binding.channelTextView.setVisibility(isFullscreen ? View.VISIBLE : View.GONE);
939955
binding.playerCloseButton.setVisibility(isFullscreen ? View.GONE : View.VISIBLE);
956+
updateRightSpacerVisibility();
940957
setupScreenRotationButton();
941958
}
942959

app/src/main/java/org/schabi/newpipe/player/ui/VideoPlayerUi.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1029,6 +1029,8 @@ private void updateStreamRelatedViews() {
10291029
binding.audioTrackTextView.setVisibility(View.GONE);
10301030
binding.playbackSpeed.setVisibility(View.GONE);
10311031

1032+
onTopBarContentChanged();
1033+
10321034
binding.playbackEndTime.setVisibility(View.GONE);
10331035
binding.playbackLiveSync.setVisibility(View.GONE);
10341036

@@ -1135,6 +1137,7 @@ private void buildAudioTrackMenu() {
11351137
.ifPresent(s -> binding.audioTrackTextView.setText(
11361138
Localization.audioTrackName(context, s)));
11371139
binding.audioTrackTextView.setVisibility(View.VISIBLE);
1140+
onTopBarContentChanged();
11381141
audioTrackPopupMenu.setOnMenuItemClickListener(this);
11391142
audioTrackPopupMenu.setOnDismissListener(this);
11401143
}
@@ -1238,6 +1241,9 @@ private void buildCaptionMenu(@NonNull final List<String> availableLanguages) {
12381241

12391242
protected abstract void onPlaybackSpeedClicked();
12401243

1244+
protected void onTopBarContentChanged() {
1245+
}
1246+
12411247
private void onQualityClicked() {
12421248
qualityPopupMenu.show();
12431249
isSomePopupMenuVisible = true;

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

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -177,6 +177,13 @@
177177
tools:visibility="visible"
178178
tools:text="English (Original)" />
179179

180+
<View
181+
android:id="@+id/rightSpacer"
182+
android:layout_width="0dp"
183+
android:layout_height="0dp"
184+
android:layout_weight="1"
185+
android:visibility="gone"/>
186+
180187
<org.schabi.newpipe.views.NewPipeTextView
181188
android:id="@+id/qualityTextView"
182189
android:layout_width="wrap_content"

0 commit comments

Comments
 (0)