From de9c0903e3f0997ba5a5ef87d998ff045f91a313 Mon Sep 17 00:00:00 2001 From: olly Date: Tue, 6 Apr 2021 10:39:51 +0100 Subject: [PATCH] StyledPlayerView: Fix layout issues - Take centerControls padding into account to prevent switching to minimal mode too soon - Disable clipping to padding to avoid the edges of controls from being clipped as the view gets smaller Issue: #8763 PiperOrigin-RevId: 366966298 --- RELEASENOTES.md | 3 +++ .../ui/StyledPlayerControlViewLayoutManager.java | 8 ++++++-- .../main/res/layout/exo_styled_player_control_view.xml | 3 ++- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/RELEASENOTES.md b/RELEASENOTES.md index 82594aed642..cbbfc213e5d 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -10,6 +10,9 @@ * Fix measurement of `StyledPlayerView` and `StyledPlayerControlView` when `wrap_content` is used ([#8726](https://github.com/google/ExoPlayer/issues/8726)). + * Fix `StyledPlayerControlView` to stay in full mode (rather than minimal + mode) when possible + ([#8763](https://github.com/google/ExoPlayer/issues/8763)). * Audio: * Report unexpected discontinuities in `AnalyticsListener.onAudioSinkError` diff --git a/library/ui/src/main/java/com/google/android/exoplayer2/ui/StyledPlayerControlViewLayoutManager.java b/library/ui/src/main/java/com/google/android/exoplayer2/ui/StyledPlayerControlViewLayoutManager.java index 00599314ec3..6fbf7593051 100644 --- a/library/ui/src/main/java/com/google/android/exoplayer2/ui/StyledPlayerControlViewLayoutManager.java +++ b/library/ui/src/main/java/com/google/android/exoplayer2/ui/StyledPlayerControlViewLayoutManager.java @@ -587,13 +587,17 @@ private boolean useMinimalMode() { - (centerControls != null ? (centerControls.getPaddingLeft() + centerControls.getPaddingRight()) : 0); + int centerControlHeight = + getHeightWithMargins(centerControls) + - (centerControls != null + ? (centerControls.getPaddingTop() + centerControls.getPaddingBottom()) + : 0); int defaultModeMinimumWidth = Math.max( centerControlWidth, getWidthWithMargins(timeView) + getWidthWithMargins(overflowShowButton)); - int defaultModeMinimumHeight = - getHeightWithMargins(centerControls) + 2 * getHeightWithMargins(bottomBar); + int defaultModeMinimumHeight = centerControlHeight + (2 * getHeightWithMargins(bottomBar)); return width <= defaultModeMinimumWidth || height <= defaultModeMinimumHeight; } diff --git a/library/ui/src/main/res/layout/exo_styled_player_control_view.xml b/library/ui/src/main/res/layout/exo_styled_player_control_view.xml index 5c8153bf179..a83bb1c72c7 100644 --- a/library/ui/src/main/res/layout/exo_styled_player_control_view.xml +++ b/library/ui/src/main/res/layout/exo_styled_player_control_view.xml @@ -130,7 +130,8 @@ android:layout_gravity="center" android:background="@android:color/transparent" android:gravity="center" - android:padding="@dimen/exo_styled_controls_padding"> + android:padding="@dimen/exo_styled_controls_padding" + android:clipToPadding="false">