From 70ba62a281446dd0722f3655a40484a4e307d6a8 Mon Sep 17 00:00:00 2001 From: olly Date: Tue, 15 Dec 2020 18:15:41 +0000 Subject: [PATCH] StyledPlayerView: Add separate fullscreen button for minimal mode Moving the fullscreen button around depending on modes is quite error prone. There is currently a bug where the order of the settings cog and fullscreen button can end up being swapped around as a result of moving the fullscreen button to the minimal controls and back again. It's less error prone just to have a second fullscreen button that's always part of the minimal controls. PiperOrigin-RevId: 347639484 --- .../exoplayer2/ui/PlayerControlView.java | 12 +-- .../ui/StyledPlayerControlView.java | 80 ++++++++++++------- .../StyledPlayerControlViewLayoutManager.java | 14 ---- .../layout/exo_styled_player_control_view.xml | 19 +++-- 4 files changed, 69 insertions(+), 56 deletions(-) diff --git a/library/ui/src/main/java/com/google/android/exoplayer2/ui/PlayerControlView.java b/library/ui/src/main/java/com/google/android/exoplayer2/ui/PlayerControlView.java index 1cc2422416..7f9259d678 100644 --- a/library/ui/src/main/java/com/google/android/exoplayer2/ui/PlayerControlView.java +++ b/library/ui/src/main/java/com/google/android/exoplayer2/ui/PlayerControlView.java @@ -515,12 +515,6 @@ public class PlayerControlView extends FrameLayout { resources.getString(R.string.exo_controls_shuffle_off_description); } - @SuppressWarnings("ResourceType") - private static @RepeatModeUtil.RepeatToggleModes int getRepeatToggleModes( - TypedArray a, @RepeatModeUtil.RepeatToggleModes int repeatToggleModes) { - return a.getInt(R.styleable.PlayerControlView_repeat_toggle_modes, repeatToggleModes); - } - /** * Returns the {@link Player} currently being controlled by this view, or null if no player is * set. @@ -1318,6 +1312,12 @@ public class PlayerControlView extends FrameLayout { return true; } + @SuppressWarnings("ResourceType") + private static @RepeatModeUtil.RepeatToggleModes int getRepeatToggleModes( + TypedArray a, @RepeatModeUtil.RepeatToggleModes int defaultValue) { + return a.getInt(R.styleable.PlayerControlView_repeat_toggle_modes, defaultValue); + } + private final class ComponentListener implements Player.EventListener, TimeBar.OnScrubListener, OnClickListener { diff --git a/library/ui/src/main/java/com/google/android/exoplayer2/ui/StyledPlayerControlView.java b/library/ui/src/main/java/com/google/android/exoplayer2/ui/StyledPlayerControlView.java index 4dcdb98443..ea9f4508a3 100644 --- a/library/ui/src/main/java/com/google/android/exoplayer2/ui/StyledPlayerControlView.java +++ b/library/ui/src/main/java/com/google/android/exoplayer2/ui/StyledPlayerControlView.java @@ -268,6 +268,10 @@ import java.util.concurrent.CopyOnWriteArrayList; * + *
  • {@code exo_minimal_fullscreen} - The fullscreen button in minimal mode. + * *
  • {@code exo_position} - Text view displaying the current playback position. *