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 LinearLayout debugRootView;
|
||||||
private Button selectTracksButton;
|
private Button selectTracksButton;
|
||||||
private TextView debugTextView;
|
private TextView debugTextView;
|
||||||
|
private boolean isShowingTrackSelectionDialog;
|
||||||
|
|
||||||
private DataSource.Factory dataSourceFactory;
|
private DataSource.Factory dataSourceFactory;
|
||||||
private SimpleExoPlayer player;
|
private SimpleExoPlayer player;
|
||||||
@ -293,9 +294,13 @@ public class PlayerActivity extends AppCompatActivity
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View view) {
|
public void onClick(View view) {
|
||||||
if (view == selectTracksButton) {
|
if (view == selectTracksButton && !isShowingTrackSelectionDialog) {
|
||||||
TrackSelectionDialog dialog = TrackSelectionDialog.createForTrackSelector(trackSelector);
|
isShowingTrackSelectionDialog = true;
|
||||||
dialog.show(getSupportFragmentManager(), /* tag= */ null);
|
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.
|
* the track selector's parameters when tracks are selected.
|
||||||
*
|
*
|
||||||
* @param trackSelector A {@link DefaultTrackSelector}.
|
* @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 =
|
MappedTrackInfo mappedTrackInfo =
|
||||||
Assertions.checkNotNull(trackSelector.getCurrentMappedTrackInfo());
|
Assertions.checkNotNull(trackSelector.getCurrentMappedTrackInfo());
|
||||||
TrackSelectionDialog trackSelectionDialog = new TrackSelectionDialog();
|
TrackSelectionDialog trackSelectionDialog = new TrackSelectionDialog();
|
||||||
@ -94,7 +97,7 @@ public final class TrackSelectionDialog extends DialogFragment {
|
|||||||
}
|
}
|
||||||
trackSelector.setParameters(builder);
|
trackSelector.setParameters(builder);
|
||||||
},
|
},
|
||||||
/* onDismissListener= */ (dialog) -> {});
|
onDismissListener);
|
||||||
return trackSelectionDialog;
|
return trackSelectionDialog;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user