mirror of
https://github.com/androidx/media.git
synced 2025-05-09 16:40:55 +08:00
Prevent multiple track selection dialogs in PlayerActivity.
PiperOrigin-RevId: 236119640
This commit is contained in:
parent
3eeb3acb3b
commit
84c8842dfa
@ -126,6 +126,7 @@ public class PlayerActivity extends AppCompatActivity
|
||||
private LinearLayout debugRootView;
|
||||
private Button selectTracksButton;
|
||||
private TextView debugTextView;
|
||||
private boolean isShowingTrackSelectionDialog;
|
||||
|
||||
private DataSource.Factory dataSourceFactory;
|
||||
private SimpleExoPlayer player;
|
||||
@ -293,9 +294,13 @@ public class PlayerActivity extends AppCompatActivity
|
||||
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
if (view == selectTracksButton) {
|
||||
TrackSelectionDialog dialog = TrackSelectionDialog.createForTrackSelector(trackSelector);
|
||||
dialog.show(getSupportFragmentManager(), /* tag= */ null);
|
||||
if (view == selectTracksButton && !isShowingTrackSelectionDialog) {
|
||||
isShowingTrackSelectionDialog = true;
|
||||
TrackSelectionDialog newDialog =
|
||||
TrackSelectionDialog.createForTrackSelector(
|
||||
trackSelector,
|
||||
/* onDismissListener= */ dialog -> isShowingTrackSelectionDialog = false);
|
||||
newDialog.show(getSupportFragmentManager(), /* tag= */ null);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -63,8 +63,11 @@ public final class TrackSelectionDialog extends DialogFragment {
|
||||
* the track selector's parameters when tracks are selected.
|
||||
*
|
||||
* @param trackSelector A {@link DefaultTrackSelector}.
|
||||
* @param onDismissListener {@link DialogInterface.OnDismissListener} called when the dialog is
|
||||
* dismissed.
|
||||
*/
|
||||
public static TrackSelectionDialog createForTrackSelector(DefaultTrackSelector trackSelector) {
|
||||
public static TrackSelectionDialog createForTrackSelector(
|
||||
DefaultTrackSelector trackSelector, DialogInterface.OnDismissListener onDismissListener) {
|
||||
MappedTrackInfo mappedTrackInfo =
|
||||
Assertions.checkNotNull(trackSelector.getCurrentMappedTrackInfo());
|
||||
TrackSelectionDialog trackSelectionDialog = new TrackSelectionDialog();
|
||||
@ -94,7 +97,7 @@ public final class TrackSelectionDialog extends DialogFragment {
|
||||
}
|
||||
trackSelector.setParameters(builder);
|
||||
},
|
||||
/* onDismissListener= */ (dialog) -> {});
|
||||
onDismissListener);
|
||||
return trackSelectionDialog;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user