From 94e745872daba1a87f844e1ef5577089451c84cb Mon Sep 17 00:00:00 2001 From: olly Date: Fri, 11 Dec 2020 17:09:26 +0000 Subject: [PATCH] Fix UI menu not dismissing on API level 22 and earlier Issue: #8272 #minor-release PiperOrigin-RevId: 347010412 --- RELEASENOTES.md | 4 ++++ .../android/exoplayer2/ui/StyledPlayerControlView.java | 7 +++++++ 2 files changed, 11 insertions(+) diff --git a/RELEASENOTES.md b/RELEASENOTES.md index d44fd31078..7c091be56b 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -28,6 +28,10 @@ * Forward `Timeline` and `MediaPeriodId` to `TrackSelection.Factory`. * UI: * Miscellaneous fixes for `StyledPlayerControlView` in minimal mode. + * Fix issue where pop-up menus belonging to `StyledPlayerControlView` + would not be dismissed when tapping outside of the menu area or pressing + the back button, on API level 22 and earlier + ([#8272](https://github.com/google/ExoPlayer/issues/8272)). * Show overflow button in `StyledPlayerControlView` only when there is not enough space. * Update StyledPlayer's control overlay scrim from 30% opacity to 60% 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 d9f3dc9757..4dcdb98443 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 @@ -30,7 +30,9 @@ import android.annotation.SuppressLint; import android.content.Context; import android.content.res.Resources; import android.content.res.TypedArray; +import android.graphics.Color; import android.graphics.Typeface; +import android.graphics.drawable.ColorDrawable; import android.graphics.drawable.Drawable; import android.os.Looper; import android.util.AttributeSet; @@ -671,6 +673,11 @@ public class StyledPlayerControlView extends FrameLayout { settingsView.setLayoutManager(new LinearLayoutManager(getContext())); settingsWindow = new PopupWindow(settingsView, LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, true); + if (Util.SDK_INT < 23) { + // Work around issue where tapping outside of the menu area or pressing the back button + // doesn't dismiss the menu as expected. See: https://github.com/google/ExoPlayer/issues/8272. + settingsWindow.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); + } settingsWindow.setOnDismissListener(componentListener); needToHideBars = true;