# TrackSelectionDialogBuilder

# 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)

*** ** * ** ***

Kotlin\|[Java](https://developer.android.com/reference/androidx/media3/ui/TrackSelectionDialogBuilder "View this page in Java")

<br />

```
@UnstableApi
class TrackSelectionDialogBuilder
```

<br />

*** ** * ** ***

Builder for a dialog with a[TrackSelectionView](https://developer.android.com/reference/kotlin/androidx/media3/ui/TrackSelectionView).

## Summary

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

|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        ### Public constructors                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [TrackSelectionDialogBuilder](https://developer.android.com/reference/kotlin/androidx/media3/ui/TrackSelectionDialogBuilder#TrackSelectionDialogBuilder(android.content.Context,java.lang.CharSequence,androidx.media3.common.Player,int))`(` ` context: `[Context](https://developer.android.com/reference/android/content/Context.html)`!,` ` title: `[CharSequence](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-char-sequence/index.html)`!,` ` player: `[Player](https://developer.android.com/reference/kotlin/androidx/media3/common/Player)`!,` ` @`[C.TrackType](https://developer.android.com/reference/kotlin/androidx/media3/common/C.TrackType)` trackType: `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html) `)` Creates a builder for a track selection dialog.                                                                                                                                                                                                                                                                                     |
| [TrackSelectionDialogBuilder](https://developer.android.com/reference/kotlin/androidx/media3/ui/TrackSelectionDialogBuilder#TrackSelectionDialogBuilder(android.content.Context,java.lang.CharSequence,java.util.List<androidx.media3.common.Tracks.Group>,androidx.media3.ui.TrackSelectionDialogBuilder.DialogCallback))`(` ` context: `[Context](https://developer.android.com/reference/android/content/Context.html)`!,` ` title: `[CharSequence](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-char-sequence/index.html)`!,` ` trackGroups: (`[Mutable](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-mutable-list/index.html)`)`[List](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html)`<`[Tracks.Group](https://developer.android.com/reference/kotlin/androidx/media3/common/Tracks.Group)`!>!,` ` callback: `[TrackSelectionDialogBuilder.DialogCallback](https://developer.android.com/reference/kotlin/androidx/media3/ui/TrackSelectionDialogBuilder.DialogCallback)`!` `)` Creates a builder for a track selection dialog. |

|                                                      ### Public functions                                                       |
|---------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [Dialog](https://developer.android.com/reference/android/app/Dialog.html)`!`                                                    | [build](https://developer.android.com/reference/kotlin/androidx/media3/ui/TrackSelectionDialogBuilder#build())`()` Builds the dialog.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| [TrackSelectionDialogBuilder](https://developer.android.com/reference/kotlin/androidx/media3/ui/TrackSelectionDialogBuilder)`!` | [setAllowAdaptiveSelections](https://developer.android.com/reference/kotlin/androidx/media3/ui/TrackSelectionDialogBuilder#setAllowAdaptiveSelections(boolean))`(allowAdaptiveSelections: `[Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)`)` Sets whether adaptive selections (consisting of more than one track) can be made.                                                                                                                                                                                                                                                                                                                                               |
| [TrackSelectionDialogBuilder](https://developer.android.com/reference/kotlin/androidx/media3/ui/TrackSelectionDialogBuilder)`!` | [setAllowMultipleOverrides](https://developer.android.com/reference/kotlin/androidx/media3/ui/TrackSelectionDialogBuilder#setAllowMultipleOverrides(boolean))`(allowMultipleOverrides: `[Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)`)` Sets whether multiple overrides can be set and selected, i.e. tracks from multiple track groups can be selected.                                                                                                                                                                                                                                                                                                                   |
| [TrackSelectionDialogBuilder](https://developer.android.com/reference/kotlin/androidx/media3/ui/TrackSelectionDialogBuilder)`!` | [setIsDisabled](https://developer.android.com/reference/kotlin/androidx/media3/ui/TrackSelectionDialogBuilder#setIsDisabled(boolean))`(isDisabled: `[Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)`)` Sets whether the selection is initially shown as disabled.                                                                                                                                                                                                                                                                                                                                                                                                             |
| [TrackSelectionDialogBuilder](https://developer.android.com/reference/kotlin/androidx/media3/ui/TrackSelectionDialogBuilder)`!` | [setOverride](https://developer.android.com/reference/kotlin/androidx/media3/ui/TrackSelectionDialogBuilder#setOverride(androidx.media3.common.TrackSelectionOverride))`(override: `[TrackSelectionOverride](https://developer.android.com/reference/kotlin/androidx/media3/common/TrackSelectionOverride)`?)` Sets the single initial override.                                                                                                                                                                                                                                                                                                                                                                  |
| [TrackSelectionDialogBuilder](https://developer.android.com/reference/kotlin/androidx/media3/ui/TrackSelectionDialogBuilder)`!` | [setOverrides](https://developer.android.com/reference/kotlin/androidx/media3/ui/TrackSelectionDialogBuilder#setOverrides(java.util.Map<androidx.media3.common.TrackGroup,androidx.media3.common.TrackSelectionOverride>))`(` ` overrides: (`[Mutable](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-mutable-map/index.html)`)`[Map](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-map/index.html)`<`[TrackGroup](https://developer.android.com/reference/kotlin/androidx/media3/common/TrackGroup)`!, `[TrackSelectionOverride](https://developer.android.com/reference/kotlin/androidx/media3/common/TrackSelectionOverride)`!>!` `)` Sets the initial track overrides. |
| [TrackSelectionDialogBuilder](https://developer.android.com/reference/kotlin/androidx/media3/ui/TrackSelectionDialogBuilder)`!` | [setShowDisableOption](https://developer.android.com/reference/kotlin/androidx/media3/ui/TrackSelectionDialogBuilder#setShowDisableOption(boolean))`(showDisableOption: `[Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)`)` Sets whether an option is available for disabling the renderer.                                                                                                                                                                                                                                                                                                                                                                                   |
| [TrackSelectionDialogBuilder](https://developer.android.com/reference/kotlin/androidx/media3/ui/TrackSelectionDialogBuilder)`!` | [setTheme](https://developer.android.com/reference/kotlin/androidx/media3/ui/TrackSelectionDialogBuilder#setTheme(int))`(themeResId: @`[StyleRes](https://developer.android.com/reference/kotlin/androidx/annotation/StyleRes)` `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)`)` Sets the resource ID of the theme used to inflate this dialog.                                                                                                                                                                                                                                                                                                                                    |
| [Unit](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)                                                   | [setTrackFormatComparator](https://developer.android.com/reference/kotlin/androidx/media3/ui/TrackSelectionDialogBuilder#setTrackFormatComparator(java.util.Comparator<androidx.media3.common.Format>))`(trackFormatComparator: `[Comparator](https://developer.android.com/reference/java/util/Comparator.html)`<`[Format](https://developer.android.com/reference/kotlin/androidx/media3/common/Format)`!>?)` Sets a[Comparator](https://developer.android.com/reference/java/util/Comparator.html)used to determine the display order of the tracks within each track group.                                                                                                                                   |
| [TrackSelectionDialogBuilder](https://developer.android.com/reference/kotlin/androidx/media3/ui/TrackSelectionDialogBuilder)`!` | [setTrackNameProvider](https://developer.android.com/reference/kotlin/androidx/media3/ui/TrackSelectionDialogBuilder#setTrackNameProvider(androidx.media3.ui.TrackNameProvider))`(trackNameProvider: `[TrackNameProvider](https://developer.android.com/reference/kotlin/androidx/media3/ui/TrackNameProvider)`?)` Sets the[TrackNameProvider](https://developer.android.com/reference/kotlin/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

```
TrackSelectionDialogBuilder(
    context: Context!,
    title: CharSequence!,
    player: Player!,
    @C.TrackType trackType: Int
)
```

Creates a builder for a track selection dialog.  

|                                                                                          Parameters                                                                                          |
|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------|
| `context: `[Context](https://developer.android.com/reference/android/content/Context.html)`!`                                                                                                | The context of the dialog.                                                                                                |
| `title: `[CharSequence](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-char-sequence/index.html)`!`                                                                                   | The title of the dialog.                                                                                                  |
| `player: `[Player](https://developer.android.com/reference/kotlin/androidx/media3/common/Player)`!`                                                                                          | The[Player](https://developer.android.com/reference/kotlin/androidx/media3/common/Player)whose tracks should be selected. |
| `@`[C.TrackType](https://developer.android.com/reference/kotlin/androidx/media3/common/C.TrackType)` trackType: `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html) | The type of tracks to show for selection.                                                                                 |

### TrackSelectionDialogBuilder

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

Creates a builder for a track selection dialog.  

|                                                                                                                                                         Parameters                                                                                                                                                         |
|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `context: `[Context](https://developer.android.com/reference/android/content/Context.html)`!`                                                                                                                                                                                                                              | The context of the dialog.                                                                                                                                                     |
| `title: `[CharSequence](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-char-sequence/index.html)`!`                                                                                                                                                                                                                 | The title of the dialog.                                                                                                                                                       |
| `trackGroups: (`[Mutable](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-mutable-list/index.html)`)`[List](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html)`<`[Tracks.Group](https://developer.android.com/reference/kotlin/androidx/media3/common/Tracks.Group)`!>!` | The[track groups](https://developer.android.com/reference/kotlin/androidx/media3/common/Tracks.Group).                                                                         |
| `callback: `[TrackSelectionDialogBuilder.DialogCallback](https://developer.android.com/reference/kotlin/androidx/media3/ui/TrackSelectionDialogBuilder.DialogCallback)`!`                                                                                                                                                  | The[DialogCallback](https://developer.android.com/reference/kotlin/androidx/media3/ui/TrackSelectionDialogBuilder.DialogCallback)invoked when a track selection has been made. |

## Public functions

### build

```
fun build(): Dialog!
```

Builds the dialog.  

### setAllowAdaptiveSelections

```
fun setAllowAdaptiveSelections(allowAdaptiveSelections: Boolean): TrackSelectionDialogBuilder!
```

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                                                   |
|----------------------------------------------------------------------------------------------------------------|----------------------------------------|
| `allowAdaptiveSelections: `[Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html) | Whether adaptive selection is enabled. |

|                                                             Returns                                                             |
|---------------------------------------------------------------------------------------------------------------------------------|--------------------------------|
| [TrackSelectionDialogBuilder](https://developer.android.com/reference/kotlin/androidx/media3/ui/TrackSelectionDialogBuilder)`!` | This builder, for convenience. |

### setAllowMultipleOverrides

```
fun setAllowMultipleOverrides(allowMultipleOverrides: Boolean): TrackSelectionDialogBuilder!
```

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

|                                                  Parameters                                                   |
|---------------------------------------------------------------------------------------------------------------|---------------------------------------------------------|
| `allowMultipleOverrides: `[Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html) | Whether multiple track selection overrides are allowed. |

|                                                             Returns                                                             |
|---------------------------------------------------------------------------------------------------------------------------------|--------------------------------|
| [TrackSelectionDialogBuilder](https://developer.android.com/reference/kotlin/androidx/media3/ui/TrackSelectionDialogBuilder)`!` | This builder, for convenience. |

### setIsDisabled

```
fun setIsDisabled(isDisabled: Boolean): TrackSelectionDialogBuilder!
```

Sets whether the selection is initially shown as disabled.  

|                                            Parameters                                             |
|---------------------------------------------------------------------------------------------------|-------------------------------------------------------|
| `isDisabled: `[Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html) | Whether the selection is initially shown as disabled. |

|                                                             Returns                                                             |
|---------------------------------------------------------------------------------------------------------------------------------|--------------------------------|
| [TrackSelectionDialogBuilder](https://developer.android.com/reference/kotlin/androidx/media3/ui/TrackSelectionDialogBuilder)`!` | This builder, for convenience. |

### setOverride

```
fun setOverride(override: TrackSelectionOverride?): TrackSelectionDialogBuilder!
```

Sets the single initial override.  

|                                                              Parameters                                                               |
|---------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------|
| `override: `[TrackSelectionOverride](https://developer.android.com/reference/kotlin/androidx/media3/common/TrackSelectionOverride)`?` | The initial override, or`null`for no override. |

|                                                             Returns                                                             |
|---------------------------------------------------------------------------------------------------------------------------------|--------------------------------|
| [TrackSelectionDialogBuilder](https://developer.android.com/reference/kotlin/androidx/media3/ui/TrackSelectionDialogBuilder)`!` | This builder, for convenience. |

### setOverrides

```
fun setOverrides(
    overrides: (Mutable)Map<TrackGroup!, TrackSelectionOverride!>!
): TrackSelectionDialogBuilder!
```

Sets the initial track overrides. Any overrides that do not correspond to track groups that were passed to the constructor will be ignored. If[setAllowMultipleOverrides](https://developer.android.com/reference/kotlin/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                                                                                                                                                                                                                  |
|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------|
| `overrides: (`[Mutable](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-mutable-map/index.html)`)`[Map](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-map/index.html)`<`[TrackGroup](https://developer.android.com/reference/kotlin/androidx/media3/common/TrackGroup)`!, `[TrackSelectionOverride](https://developer.android.com/reference/kotlin/androidx/media3/common/TrackSelectionOverride)`!>!` | The initially selected track overrides. |

|                                                             Returns                                                             |
|---------------------------------------------------------------------------------------------------------------------------------|--------------------------------|
| [TrackSelectionDialogBuilder](https://developer.android.com/reference/kotlin/androidx/media3/ui/TrackSelectionDialogBuilder)`!` | This builder, for convenience. |

### setShowDisableOption

```
fun setShowDisableOption(showDisableOption: Boolean): TrackSelectionDialogBuilder!
```

Sets whether an option is available for disabling the renderer.  

|                                                Parameters                                                |
|----------------------------------------------------------------------------------------------------------|--------------------------------------|
| `showDisableOption: `[Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html) | Whether the disable option is shown. |

|                                                             Returns                                                             |
|---------------------------------------------------------------------------------------------------------------------------------|--------------------------------|
| [TrackSelectionDialogBuilder](https://developer.android.com/reference/kotlin/androidx/media3/ui/TrackSelectionDialogBuilder)`!` | This builder, for convenience. |

### setTheme

```
fun setTheme(themeResId: @StyleRes Int): TrackSelectionDialogBuilder!
```

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

|                                                                                      Parameters                                                                                      |
|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------|
| `themeResId: @`[StyleRes](https://developer.android.com/reference/kotlin/androidx/annotation/StyleRes)` `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html) | The resource ID of the theme. |

|                                                             Returns                                                             |
|---------------------------------------------------------------------------------------------------------------------------------|--------------------------------|
| [TrackSelectionDialogBuilder](https://developer.android.com/reference/kotlin/androidx/media3/ui/TrackSelectionDialogBuilder)`!` | This builder, for convenience. |

### setTrackFormatComparator

```
fun setTrackFormatComparator(trackFormatComparator: Comparator<Format!>?): Unit
```

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

|                                                                                               Parameters                                                                                               |
|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------|
| `trackFormatComparator: `[Comparator](https://developer.android.com/reference/java/util/Comparator.html)`<`[Format](https://developer.android.com/reference/kotlin/androidx/media3/common/Format)`!>?` | The comparator, or`null`to use the original order. |

### setTrackNameProvider

```
fun setTrackNameProvider(trackNameProvider: TrackNameProvider?): TrackSelectionDialogBuilder!
```

Sets the[TrackNameProvider](https://developer.android.com/reference/kotlin/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                                                            |
|----------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------|
| `trackNameProvider: `[TrackNameProvider](https://developer.android.com/reference/kotlin/androidx/media3/ui/TrackNameProvider)`?` | The[TrackNameProvider](https://developer.android.com/reference/kotlin/androidx/media3/ui/TrackNameProvider)to use, or null to use the default. |