Skip to content

Commit 759342f

Browse files
authored
Merge pull request #12612 from Profpatsch/rename-fullscreen-buttons
2 parents b6bd87a + 0382cfd commit 759342f

7 files changed

Lines changed: 64 additions & 38 deletions

File tree

app/src/main/java/org/schabi/newpipe/fragments/detail/VideoDetailFragment.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -991,7 +991,7 @@ class VideoDetailFragment :
991991
// restored (i.e. bottomSheetState) to STATE_EXPANDED.
992992
updateBottomSheetState(BottomSheetBehavior.STATE_EXPANDED)
993993
// toggle landscape in order to open directly in fullscreen
994-
onScreenRotationButtonClicked()
994+
onFullscreenToggleButtonClicked()
995995
}
996996

997997
if (PreferenceManager.getDefaultSharedPreferences(activity)
@@ -1726,7 +1726,7 @@ class VideoDetailFragment :
17261726
tryAddVideoPlayerView()
17271727
}
17281728

1729-
override fun onScreenRotationButtonClicked() {
1729+
override fun onFullscreenToggleButtonClicked() {
17301730
// In tablet user experience will be better if screen will not be rotated
17311731
// from landscape to portrait every time.
17321732
// Just turn on fullscreen mode in landscape orientation

app/src/main/java/org/schabi/newpipe/player/event/PlayerServiceEventListener.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ public interface PlayerServiceEventListener extends PlayerEventListener {
1010

1111
void onFullscreenStateChanged(boolean fullscreen);
1212

13-
void onScreenRotationButtonClicked();
13+
void onFullscreenToggleButtonClicked();
1414

1515
void onMoreOptionsLongClicked();
1616

app/src/main/java/org/schabi/newpipe/player/helper/PlayerHolder.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -243,8 +243,8 @@ object PlayerHolder {
243243
listener?.onFullscreenStateChanged(fullscreen)
244244
}
245245

246-
override fun onScreenRotationButtonClicked() {
247-
listener?.onScreenRotationButtonClicked()
246+
override fun onFullscreenToggleButtonClicked() {
247+
listener?.onFullscreenToggleButtonClicked()
248248
}
249249

250250
override fun onMoreOptionsLongClicked() {

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

Lines changed: 50 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ private void directlyOpenFullscreenIfNeeded() {
122122
&& DeviceUtils.isTablet(player.getService())
123123
&& PlayerHelper.globalScreenOrientationLocked(player.getService())) {
124124
player.getFragmentListener().ifPresent(
125-
PlayerServiceEventListener::onScreenRotationButtonClicked);
125+
PlayerServiceEventListener::onFullscreenToggleButtonClicked);
126126
}
127127
}
128128

@@ -154,12 +154,12 @@ BasePlayerGestureListener buildGestureListener() {
154154
protected void initListeners() {
155155
super.initListeners();
156156

157-
binding.screenRotationButton.setOnClickListener(makeOnClickListener(() -> {
157+
binding.fullscreenToggleButton.setOnClickListener(makeOnClickListener(() -> {
158158
// Only if it's not a vertical video or vertical video but in landscape with locked
159159
// orientation a screen orientation can be changed automatically
160160
if (!isVerticalVideo || (isLandscape() && globalScreenOrientationLocked(context))) {
161161
player.getFragmentListener()
162-
.ifPresent(PlayerServiceEventListener::onScreenRotationButtonClicked);
162+
.ifPresent(PlayerServiceEventListener::onFullscreenToggleButtonClicked);
163163
} else {
164164
toggleFullscreen();
165165
}
@@ -233,7 +233,7 @@ public void destroy() {
233233

234234
// Exit from fullscreen when user closes the player via notification
235235
if (isFullscreen) {
236-
toggleFullscreen();
236+
exitFullscreen();
237237
}
238238

239239
removeViewFromParent();
@@ -270,7 +270,7 @@ protected void setupElementsVisibility() {
270270

271271
closeItemsList();
272272
showHideKodiButton();
273-
binding.fullScreenButton.setVisibility(View.GONE);
273+
binding.fullscreenToggleButtonSecondaryMenu.setVisibility(View.GONE);
274274
setupScreenRotationButton();
275275
binding.resizeTextView.setVisibility(View.VISIBLE);
276276
binding.getRoot().findViewById(R.id.metadataView).setVisibility(View.VISIBLE);
@@ -414,7 +414,7 @@ public void onPlaying() {
414414
public void onCompleted() {
415415
super.onCompleted();
416416
if (isFullscreen) {
417-
toggleFullscreen();
417+
exitFullscreen();
418418
}
419419
}
420420
//endregion
@@ -885,10 +885,10 @@ public boolean onKeyDown(final int keyCode) {
885885
//region Video size, orientation, fullscreen
886886

887887
private void setupScreenRotationButton() {
888-
binding.screenRotationButton.setVisibility(globalScreenOrientationLocked(context)
888+
binding.fullscreenToggleButton.setVisibility(globalScreenOrientationLocked(context)
889889
|| isVerticalVideo || DeviceUtils.isTablet(context)
890890
? View.VISIBLE : View.GONE);
891-
binding.screenRotationButton.setImageDrawable(AppCompatResources.getDrawable(context,
891+
binding.fullscreenToggleButton.setImageDrawable(AppCompatResources.getDrawable(context,
892892
isFullscreen ? R.drawable.ic_fullscreen_exit
893893
: R.drawable.ic_fullscreen));
894894
}
@@ -905,7 +905,7 @@ && isLandscape() == isVerticalVideo
905905
&& !DeviceUtils.isTablet(context)) {
906906
// set correct orientation
907907
player.getFragmentListener().ifPresent(
908-
PlayerServiceEventListener::onScreenRotationButtonClicked);
908+
PlayerServiceEventListener::onFullscreenToggleButtonClicked);
909909
}
910910

911911
setupScreenRotationButton();
@@ -915,28 +915,54 @@ public void toggleFullscreen() {
915915
if (DEBUG) {
916916
Log.d(TAG, "toggleFullscreen() called");
917917
}
918+
919+
if (isFullscreen) {
920+
exitFullscreen();
921+
} else {
922+
enterFullscreen();
923+
}
924+
925+
}
926+
927+
public void enterFullscreen() {
928+
if (DEBUG) {
929+
Log.d(TAG, "enterFullscreen() called");
930+
}
918931
final PlayerServiceEventListener fragmentListener = player.getFragmentListener()
919932
.orElse(null);
920933
if (fragmentListener == null || player.exoPlayerIsNull()) {
921934
return;
922935
}
936+
isFullscreen = true;
937+
// Android needs tens milliseconds to send new insets but a user is able to see
938+
// how controls changes it's position from `0` to `nav bar height` padding.
939+
// So just hide the controls to hide this visual inconsistency
940+
hideControls(0, 0);
941+
fragmentListener.onFullscreenStateChanged(true);
942+
setupFullscreenButtons(true);
943+
}
923944

924-
isFullscreen = !isFullscreen;
925-
if (isFullscreen) {
926-
// Android needs tens milliseconds to send new insets but a user is able to see
927-
// how controls changes it's position from `0` to `nav bar height` padding.
928-
// So just hide the controls to hide this visual inconsistency
929-
hideControls(0, 0);
930-
} else {
931-
// Apply window insets because Android will not do it when orientation changes
932-
// from landscape to portrait (open vertical video to reproduce)
933-
binding.playbackControlRoot.setPadding(0, 0, 0, 0);
945+
public void exitFullscreen() {
946+
if (DEBUG) {
947+
Log.d(TAG, "exitFullscreen() called");
934948
}
935-
fragmentListener.onFullscreenStateChanged(isFullscreen);
949+
final PlayerServiceEventListener fragmentListener = player.getFragmentListener()
950+
.orElse(null);
951+
if (fragmentListener == null || player.exoPlayerIsNull()) {
952+
return;
953+
}
954+
isFullscreen = false;
955+
// Apply window insets because Android will not do it when orientation changes
956+
// from landscape to portrait (open vertical video to reproduce)
957+
binding.playbackControlRoot.setPadding(0, 0, 0, 0);
958+
fragmentListener.onFullscreenStateChanged(false);
959+
setupFullscreenButtons(false);
960+
}
936961

937-
binding.titleTextView.setVisibility(isFullscreen ? View.VISIBLE : View.GONE);
938-
binding.channelTextView.setVisibility(isFullscreen ? View.VISIBLE : View.GONE);
939-
binding.playerCloseButton.setVisibility(isFullscreen ? View.GONE : View.VISIBLE);
962+
private void setupFullscreenButtons(final boolean fullscreen) {
963+
binding.titleTextView.setVisibility(fullscreen ? View.VISIBLE : View.GONE);
964+
binding.channelTextView.setVisibility(fullscreen ? View.VISIBLE : View.GONE);
965+
binding.playerCloseButton.setVisibility(fullscreen ? View.GONE : View.VISIBLE);
940966
setupScreenRotationButton();
941967
}
942968

@@ -951,7 +977,7 @@ public void checkLandscape() {
951977
if (videoInLandscapeButNotInFullscreen
952978
&& notPaused
953979
&& !DeviceUtils.isTablet(context)) {
954-
toggleFullscreen();
980+
enterFullscreen();
955981
}
956982
}
957983
//endregion

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -153,8 +153,8 @@ private void initPopupCloseOverlay() {
153153

154154
@Override
155155
protected void setupElementsVisibility() {
156-
binding.fullScreenButton.setVisibility(View.VISIBLE);
157-
binding.screenRotationButton.setVisibility(View.GONE);
156+
binding.fullscreenToggleButtonSecondaryMenu.setVisibility(View.VISIBLE);
157+
binding.fullscreenToggleButton.setVisibility(View.GONE);
158158
binding.resizeTextView.setVisibility(View.GONE);
159159
binding.getRoot().findViewById(R.id.metadataView).setVisibility(View.GONE);
160160
binding.queueButton.setVisibility(View.GONE);

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -234,7 +234,7 @@ protected void initListeners() {
234234
ShareUtils.copyToClipboard(context, player.getVideoUrlAtCurrentTime());
235235
return true;
236236
});
237-
binding.fullScreenButton.setOnClickListener(makeOnClickListener(() -> {
237+
binding.fullscreenToggleButtonSecondaryMenu.setOnClickListener(makeOnClickListener(() -> {
238238
player.setRecovery();
239239
NavigationHelper.playOnMainPlayer(context,
240240
Objects.requireNonNull(player.getPlayQueue()), true);
@@ -301,8 +301,8 @@ protected void deinitListeners() {
301301
binding.moreOptionsButton.setOnLongClickListener(null);
302302
binding.share.setOnClickListener(null);
303303
binding.share.setOnLongClickListener(null);
304-
binding.fullScreenButton.setOnClickListener(null);
305-
binding.screenRotationButton.setOnClickListener(null);
304+
binding.fullscreenToggleButtonSecondaryMenu.setOnClickListener(null);
305+
binding.fullscreenToggleButton.setOnClickListener(null);
306306
binding.playWithKodi.setOnClickListener(null);
307307
binding.openInBrowser.setOnClickListener(null);
308308
binding.playerCloseButton.setOnClickListener(null);
@@ -1455,7 +1455,7 @@ protected View.OnClickListener makeOnClickListener(@NonNull final Runnable runna
14551455
if (player.getCurrentState() == STATE_PLAYING && !isSomePopupMenuVisible) {
14561456
if (v == binding.playPauseButton
14571457
// Hide controls in fullscreen immediately
1458-
|| (v == binding.screenRotationButton && isFullscreen())) {
1458+
|| (v == binding.fullscreenToggleButton && isFullscreen())) {
14591459
hideControls(0, 0);
14601460
} else {
14611461
hideControls(DEFAULT_CONTROLS_DURATION, DEFAULT_CONTROLS_HIDE_TIME);

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -363,7 +363,7 @@
363363
tools:ignore="RtlHardcoded" />
364364

365365
<androidx.appcompat.widget.AppCompatImageButton
366-
android:id="@+id/fullScreenButton"
366+
android:id="@+id/fullscreenToggleButtonSecondaryMenu"
367367
android:layout_width="40dp"
368368
android:layout_height="40dp"
369369
android:background="?attr/selectableItemBackgroundBorderless"
@@ -457,7 +457,7 @@
457457
android:layout_gravity="center"
458458
android:layout_marginTop="2dp"
459459
android:layout_weight="1"
460-
android:nextFocusDown="@id/screenRotationButton"
460+
android:nextFocusDown="@id/fullscreenToggleButton"
461461
tools:progress="25"
462462
tools:secondaryProgress="50" />
463463

@@ -486,7 +486,7 @@
486486
tools:ignore="HardcodedText,RtlHardcoded,RtlSymmetry" />
487487

488488
<androidx.appcompat.widget.AppCompatImageButton
489-
android:id="@+id/screenRotationButton"
489+
android:id="@+id/fullscreenToggleButton"
490490
android:layout_width="40dp"
491491
android:layout_height="40dp"
492492
android:layout_marginStart="4dp"

0 commit comments

Comments
 (0)