# TrackSelectionDialogBuilder

Artifact: [androidx.media3:media3-ui](https://developer.android.com/jetpack/androidx/releases/media3) [View Source](https://cs.android.com/search?q=file:androidx/media3/ui/TrackSelectionDialogBuilder.java+class:androidx.media3.ui.TrackSelectionDialogBuilder)

*** ** * ** ***


```
@UnstableApi
public final class TrackSelectionDialogBuilder
```

<br />

*** ** * ** ***

Builder for a dialog with a `https://developer.android.com/reference/androidx/media3/ui/TrackSelectionView`.

## Summary

| ### Nested types |
|---|
| `public interface https://developer.android.com/reference/androidx/media3/ui/TrackSelectionDialogBuilder.DialogCallback` Callback which is invoked when a track selection has been made. |

| ### Public constructors |
|---|
| `https://developer.android.com/reference/androidx/media3/ui/TrackSelectionDialogBuilder#TrackSelectionDialogBuilder(android.content.Context,java.lang.CharSequence,androidx.media3.common.Player,int)( https://developer.android.com/reference/android/content/Context.html context, https://developer.android.com/reference/java/lang/CharSequence.html title, https://developer.android.com/reference/androidx/media3/common/Player player, @https://developer.android.com/reference/androidx/media3/common/C.TrackType int trackType )` Creates a builder for a track selection dialog. |
| `https://developer.android.com/reference/androidx/media3/ui/TrackSelectionDialogBuilder#TrackSelectionDialogBuilder(android.content.Context,java.lang.CharSequence,java.util.List<androidx.media3.common.Tracks.Group>,androidx.media3.ui.TrackSelectionDialogBuilder.DialogCallback)( https://developer.android.com/reference/android/content/Context.html context, https://developer.android.com/reference/java/lang/CharSequence.html title, https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/common/Tracks.Group> trackGroups, https://developer.android.com/reference/androidx/media3/ui/TrackSelectionDialogBuilder.DialogCallback callback )` Creates a builder for a track selection dialog. |

| ### Public methods |
|---|---|
| `https://developer.android.com/reference/android/app/Dialog.html` | `https://developer.android.com/reference/androidx/media3/ui/TrackSelectionDialogBuilder#build()()` Builds the dialog. |
| `https://developer.android.com/reference/androidx/media3/ui/TrackSelectionDialogBuilder` | `https://developer.android.com/reference/androidx/media3/ui/TrackSelectionDialogBuilder#setAllowAdaptiveSelections(boolean)(boolean allowAdaptiveSelections)` Sets whether adaptive selections (consisting of more than one track) can be made. |
| `https://developer.android.com/reference/androidx/media3/ui/TrackSelectionDialogBuilder` | `https://developer.android.com/reference/androidx/media3/ui/TrackSelectionDialogBuilder#setAllowMultipleOverrides(boolean)(boolean allowMultipleOverrides)` Sets whether multiple overrides can be set and selected, i.e. tracks from multiple track groups can be selected. |
| `https://developer.android.com/reference/androidx/media3/ui/TrackSelectionDialogBuilder` | `https://developer.android.com/reference/androidx/media3/ui/TrackSelectionDialogBuilder#setIsDisabled(boolean)(boolean isDisabled)` Sets whether the selection is initially shown as disabled. |
| `https://developer.android.com/reference/androidx/media3/ui/TrackSelectionDialogBuilder` | `https://developer.android.com/reference/androidx/media3/ui/TrackSelectionDialogBuilder#setOverride(androidx.media3.common.TrackSelectionOverride)(@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/common/TrackSelectionOverride override)` Sets the single initial override. |
| `https://developer.android.com/reference/androidx/media3/ui/TrackSelectionDialogBuilder` | `https://developer.android.com/reference/androidx/media3/ui/TrackSelectionDialogBuilder#setOverrides(java.util.Map<androidx.media3.common.TrackGroup,androidx.media3.common.TrackSelectionOverride>)(https://developer.android.com/reference/java/util/Map.html<https://developer.android.com/reference/androidx/media3/common/TrackGroup, https://developer.android.com/reference/androidx/media3/common/TrackSelectionOverride> overrides)` Sets the initial track overrides. |
| `https://developer.android.com/reference/androidx/media3/ui/TrackSelectionDialogBuilder` | `https://developer.android.com/reference/androidx/media3/ui/TrackSelectionDialogBuilder#setShowDisableOption(boolean)(boolean showDisableOption)` Sets whether an option is available for disabling the renderer. |
| `https://developer.android.com/reference/androidx/media3/ui/TrackSelectionDialogBuilder` | `https://developer.android.com/reference/androidx/media3/ui/TrackSelectionDialogBuilder#setTheme(int)(@https://developer.android.com/reference/androidx/annotation/StyleRes int themeResId)` Sets the resource ID of the theme used to inflate this dialog. |
| `void` | `https://developer.android.com/reference/androidx/media3/ui/TrackSelectionDialogBuilder#setTrackFormatComparator(java.util.Comparator<androidx.media3.common.Format>)( @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/util/Comparator.html<https://developer.android.com/reference/androidx/media3/common/Format> trackFormatComparator )` Sets a `https://developer.android.com/reference/java/util/Comparator.html` used to determine the display order of the tracks within each track group. |
| `https://developer.android.com/reference/androidx/media3/ui/TrackSelectionDialogBuilder` | `https://developer.android.com/reference/androidx/media3/ui/TrackSelectionDialogBuilder#setTrackNameProvider(androidx.media3.ui.TrackNameProvider)(@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/ui/TrackNameProvider trackNameProvider)` Sets the `https://developer.android.com/reference/androidx/media3/ui/TrackNameProvider` used to generate the user visible name of each track and updates the view with track names queried from the specified provider. |

## Public constructors

### TrackSelectionDialogBuilder

```
public TrackSelectionDialogBuilder(
    Context context,
    CharSequence title,
    Player player,
    @C.TrackType int trackType
)
```

Creates a builder for a track selection dialog.

| Parameters |
|---|---|
| `https://developer.android.com/reference/android/content/Context.html context` | The context of the dialog. |
| `https://developer.android.com/reference/java/lang/CharSequence.html title` | The title of the dialog. |
| `https://developer.android.com/reference/androidx/media3/common/Player player` | The `https://developer.android.com/reference/androidx/media3/common/Player` whose tracks should be selected. |
| `@https://developer.android.com/reference/androidx/media3/common/C.TrackType int trackType` | The type of tracks to show for selection. |

### TrackSelectionDialogBuilder

```
public TrackSelectionDialogBuilder(
    Context context,
    CharSequence title,
    List<Tracks.Group> trackGroups,
    TrackSelectionDialogBuilder.DialogCallback callback
)
```

Creates a builder for a track selection dialog.

| Parameters |
|---|---|
| `https://developer.android.com/reference/android/content/Context.html context` | The context of the dialog. |
| `https://developer.android.com/reference/java/lang/CharSequence.html title` | The title of the dialog. |
| `https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/common/Tracks.Group> trackGroups` | The `https://developer.android.com/reference/androidx/media3/common/Tracks.Group`. |
| `https://developer.android.com/reference/androidx/media3/ui/TrackSelectionDialogBuilder.DialogCallback callback` | The `https://developer.android.com/reference/androidx/media3/ui/TrackSelectionDialogBuilder.DialogCallback` invoked when a track selection has been made. |

## Public methods

### build

```
public Dialog build()
```

Builds the dialog.

### setAllowAdaptiveSelections

```
public TrackSelectionDialogBuilder setAllowAdaptiveSelections(boolean allowAdaptiveSelections)
```

Sets whether adaptive selections (consisting of more than one track) can be made.

For the selection view to enable adaptive selection it is necessary both for this feature to be enabled, and for the target renderer to support adaptation between the available tracks.

| Parameters |
|---|---|
| `boolean allowAdaptiveSelections` | Whether adaptive selection is enabled. |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/media3/ui/TrackSelectionDialogBuilder` | This builder, for convenience. |

### setAllowMultipleOverrides

```
public TrackSelectionDialogBuilder setAllowMultipleOverrides(boolean allowMultipleOverrides)
```

Sets whether multiple overrides can be set and selected, i.e. tracks from multiple track groups can be selected.

| Parameters |
|---|---|
| `boolean allowMultipleOverrides` | Whether multiple track selection overrides are allowed. |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/media3/ui/TrackSelectionDialogBuilder` | This builder, for convenience. |

### setIsDisabled

```
public TrackSelectionDialogBuilder setIsDisabled(boolean isDisabled)
```

Sets whether the selection is initially shown as disabled.

| Parameters |
|---|---|
| `boolean isDisabled` | Whether the selection is initially shown as disabled. |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/media3/ui/TrackSelectionDialogBuilder` | This builder, for convenience. |

### setOverride

```
public TrackSelectionDialogBuilder setOverride(@Nullable TrackSelectionOverride override)
```

Sets the single initial override.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/common/TrackSelectionOverride override` | The initial override, or `null` for no override. |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/media3/ui/TrackSelectionDialogBuilder` | This builder, for convenience. |

### setOverrides

```
public TrackSelectionDialogBuilder setOverrides(Map<TrackGroup, TrackSelectionOverride> overrides)
```

Sets the initial track overrides. Any overrides that do not correspond to track groups that were passed to the constructor will be ignored. If `https://developer.android.com/reference/androidx/media3/ui/TrackSelectionDialogBuilder#setAllowMultipleOverrides(boolean)` hasn't been set to `true` then all but one override will be ignored. The retained override will be the one whose track group was first in the list of track groups passed to the constructor.

| Parameters |
|---|---|
| `https://developer.android.com/reference/java/util/Map.html<https://developer.android.com/reference/androidx/media3/common/TrackGroup, https://developer.android.com/reference/androidx/media3/common/TrackSelectionOverride> overrides` | The initially selected track overrides. |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/media3/ui/TrackSelectionDialogBuilder` | This builder, for convenience. |

### setShowDisableOption

```
public TrackSelectionDialogBuilder setShowDisableOption(boolean showDisableOption)
```

Sets whether an option is available for disabling the renderer.

| Parameters |
|---|---|
| `boolean showDisableOption` | Whether the disable option is shown. |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/media3/ui/TrackSelectionDialogBuilder` | This builder, for convenience. |

### setTheme

```
public TrackSelectionDialogBuilder setTheme(@StyleRes int themeResId)
```

Sets the resource ID of the theme used to inflate this dialog.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/StyleRes int themeResId` | The resource ID of the theme. |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/media3/ui/TrackSelectionDialogBuilder` | This builder, for convenience. |

### setTrackFormatComparator

```
public void setTrackFormatComparator(
    @Nullable Comparator<Format> trackFormatComparator
)
```

Sets a `https://developer.android.com/reference/java/util/Comparator.html` used to determine the display order of the tracks within each track group.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/util/Comparator.html<https://developer.android.com/reference/androidx/media3/common/Format> trackFormatComparator` | The comparator, or `null` to use the original order. |

### setTrackNameProvider

```
public TrackSelectionDialogBuilder setTrackNameProvider(@Nullable TrackNameProvider trackNameProvider)
```

Sets the `https://developer.android.com/reference/androidx/media3/ui/TrackNameProvider` used to generate the user visible name of each track and updates the view with track names queried from the specified provider.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/ui/TrackNameProvider trackNameProvider` | The `https://developer.android.com/reference/androidx/media3/ui/TrackNameProvider` to use, or null to use the default. |