From e3d0ee990d2519ca94a66d9bc621a5e0c210e497 Mon Sep 17 00:00:00 2001 From: Googler Date: Fri, 14 Oct 2022 20:07:09 +0000 Subject: [PATCH] Fix display settings window UI bug for foldable devices. PiperOrigin-RevId: 481215581 (cherry picked from commit 6cdaf2c031258221939eead3b11075a90e2c742c) --- .../exoplayer2/ui/StyledPlayerControlView.java | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) 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 6c52cd542e..4ef733d039 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 @@ -1298,7 +1298,7 @@ public class StyledPlayerControlView extends FrameLayout { settingsWindow.setHeight(height); } - private void displaySettingsWindow(RecyclerView.Adapter adapter) { + private void displaySettingsWindow(RecyclerView.Adapter adapter, View anchorView) { settingsView.setAdapter(adapter); updateSettingsWindowSize(); @@ -1310,7 +1310,7 @@ public class StyledPlayerControlView extends FrameLayout { int xoff = getWidth() - settingsWindow.getWidth() - settingsWindowMargin; int yoff = -settingsWindow.getHeight() - settingsWindowMargin; - settingsWindow.showAsDropDown(this, xoff, yoff); + settingsWindow.showAsDropDown(anchorView, xoff, yoff); } private void setPlaybackSpeed(float speed) { @@ -1392,9 +1392,9 @@ public class StyledPlayerControlView extends FrameLayout { private void onSettingViewClicked(int position) { if (position == SETTINGS_PLAYBACK_SPEED_POSITION) { - displaySettingsWindow(playbackSpeedAdapter); + displaySettingsWindow(playbackSpeedAdapter, checkNotNull(settingsButton)); } else if (position == SETTINGS_AUDIO_TRACK_SELECTION_POSITION) { - displaySettingsWindow(audioTrackSelectionAdapter); + displaySettingsWindow(audioTrackSelectionAdapter, checkNotNull(settingsButton)); } else { settingsWindow.dismiss(); } @@ -1688,16 +1688,16 @@ public class StyledPlayerControlView extends FrameLayout { player.setShuffleModeEnabled(!player.getShuffleModeEnabled()); } else if (settingsButton == view) { controlViewLayoutManager.removeHideCallbacks(); - displaySettingsWindow(settingsAdapter); + displaySettingsWindow(settingsAdapter, settingsButton); } else if (playbackSpeedButton == view) { controlViewLayoutManager.removeHideCallbacks(); - displaySettingsWindow(playbackSpeedAdapter); + displaySettingsWindow(playbackSpeedAdapter, playbackSpeedButton); } else if (audioTrackButton == view) { controlViewLayoutManager.removeHideCallbacks(); - displaySettingsWindow(audioTrackSelectionAdapter); + displaySettingsWindow(audioTrackSelectionAdapter, audioTrackButton); } else if (subtitleButton == view) { controlViewLayoutManager.removeHideCallbacks(); - displaySettingsWindow(textTrackSelectionAdapter); + displaySettingsWindow(textTrackSelectionAdapter, subtitleButton); } } }