Added public-facing calls to set whether to show [fullScreenButton] or [minimalFullScreenButton] in PlayerView calling PlayerControlView

This commit is contained in:
theskyblockman 2024-08-24 20:53:02 +02:00 committed by oceanjules
parent 47d45a82ca
commit 49af9228db
2 changed files with 24 additions and 3 deletions

View File

@ -1575,14 +1575,25 @@ public class PlayerControlView extends FrameLayout {
} }
private void onFullScreenButtonClicked(View v) { private void onFullScreenButtonClicked(View v) {
if (onFullScreenModeChangedListener == null) { updateIsFullScreen(!isFullScreen);
}
/**
* Updates whether the controller is in full screen to its icon
* and reports it to to the listener.
* @param isFullScreen If the view is in full screen.
*/
public void updateIsFullScreen(boolean isFullScreen) {
boolean fullScreenModeChanged = this.isFullScreen != isFullScreen;
if(fullScreenModeChanged && onFullScreenModeChangedListener == null) {
return; return;
} }
isFullScreen = !isFullScreen; this.isFullScreen = isFullScreen;
updateFullScreenButtonForState(fullScreenButton, isFullScreen); updateFullScreenButtonForState(fullScreenButton, isFullScreen);
updateFullScreenButtonForState(minimalFullScreenButton, isFullScreen); updateFullScreenButtonForState(minimalFullScreenButton, isFullScreen);
if (onFullScreenModeChangedListener != null) { if(fullScreenModeChanged && onFullScreenModeChangedListener != null) {
onFullScreenModeChangedListener.onFullScreenModeChanged(isFullScreen); onFullScreenModeChangedListener.onFullScreenModeChanged(isFullScreen);
} }
} }

View File

@ -1139,6 +1139,16 @@ public class PlayerView extends FrameLayout implements AdViewProvider {
controller.setOnFullScreenModeChangedListener(componentListener); controller.setOnFullScreenModeChangedListener(componentListener);
} }
/**
* Sets whether the fullscreen button is fullScreenButton or minimalFullScreenButton.
*
* @param isFullscreen Whether the player is currently in fullscreen.
*/
public void setFullscreenButtonState(boolean isFullscreen) {
Assertions.checkStateNotNull(controller);
controller.updateIsFullScreen(isFullscreen);
}
/** /**
* Sets the {@link PlayerControlView.OnFullScreenModeChangedListener}. * Sets the {@link PlayerControlView.OnFullScreenModeChangedListener}.
* *