Package com.google.android.exoplayer2.ui

## Class TrackSelectionDialogBuilder

- java.lang.Object
- - com.google.android.exoplayer2.ui.TrackSelectionDialogBuilder

-     public final class TrackSelectionDialogBuilder
      extends Object

  Builder for a dialog with a `TrackSelectionView`.

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class | Description
    --- | --- | ---
    `static interface` | `TrackSelectionDialogBuilder.DialogCallback` | Callback which is invoked when a track selection has been made.

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `TrackSelectionDialogBuilder​(Context context, CharSequence title, Player player, @com.google.android.exoplayer2.C.TrackType int trackType)` | Creates a builder for a track selection dialog.
    `TrackSelectionDialogBuilder​(Context context, CharSequence title, List<Tracks.Group> trackGroups, TrackSelectionDialogBuilder.DialogCallback callback)` | Creates a builder for a track selection dialog.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `Dialog` | `build()` | Builds the dialog.
    `TrackSelectionDialogBuilder` | `setAllowAdaptiveSelections​(boolean allowAdaptiveSelections)` | Sets whether adaptive selections (consisting of more than one track) can be made.
    `TrackSelectionDialogBuilder` | `setAllowMultipleOverrides​(boolean allowMultipleOverrides)` | Sets whether multiple overrides can be set and selected, i.e.
    `TrackSelectionDialogBuilder` | `setIsDisabled​(boolean isDisabled)` | Sets whether the selection is initially shown as disabled.
    `TrackSelectionDialogBuilder` | `setOverride​(TrackSelectionOverride override)` | Sets the single initial override.
    `TrackSelectionDialogBuilder` | `setOverrides​(Map<TrackGroup,​TrackSelectionOverride> overrides)` | Sets the initial track overrides.
    `TrackSelectionDialogBuilder` | `setShowDisableOption​(boolean showDisableOption)` | Sets whether an option is available for disabling the renderer.
    `TrackSelectionDialogBuilder` | `setTheme​(int themeResId)` | Sets the resource ID of the theme used to inflate this dialog.
    `void` | `setTrackFormatComparator​(Comparator<Format> trackFormatComparator)` | Sets a `Comparator` used to determine the display order of the tracks within each track group.
    `TrackSelectionDialogBuilder` | `setTrackNameProvider​(TrackNameProvider trackNameProvider)` | Sets the `TrackNameProvider` used to generate the user visible name of each track and updates the view with track names queried from the specified provider.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### TrackSelectionDialogBuilder

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

      Creates a builder for a track selection dialog.
      Parameters:
        `context` - The context of the dialog.
        `title` - The title of the dialog.
        `trackGroups` - The `track groups`.
        `callback` - The `TrackSelectionDialogBuilder.DialogCallback` invoked when a track selection has been made.

    - #### TrackSelectionDialogBuilder

          public TrackSelectionDialogBuilder​(Context context,
                                             CharSequence title,
                                             Player player,
                                             @com.google.android.exoplayer2.C.TrackType int trackType)

      Creates a builder for a track selection dialog.
      Parameters:
        `context` - The context of the dialog.
        `title` - The title of the dialog.
        `player` - The `Player` whose tracks should be selected.
        `trackType` - The type of tracks to show for selection.

  - ### Method Detail

    - #### setTheme

          public TrackSelectionDialogBuilder setTheme​(@StyleRes
                                                      int themeResId)

      Sets the resource ID of the theme used to inflate this dialog.
      Parameters:
        `themeResId` - The resource ID of the theme.
      Returns:
        This builder, for convenience.

    - #### setIsDisabled

          public TrackSelectionDialogBuilder setIsDisabled​(boolean isDisabled)

      Sets whether the selection is initially shown as disabled.
      Parameters:
        `isDisabled` - Whether the selection is initially shown as disabled.
      Returns:
        This builder, for convenience.

    - #### setOverride

          public TrackSelectionDialogBuilder setOverride​(@Nullable
                                                         TrackSelectionOverride override)

      Sets the single initial override.
      Parameters:
        `override` - The initial override, or `null` for no override.
      Returns:
        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 `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` - The initially selected track overrides.
      Returns:
        This builder, for convenience.

    - #### 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:
        `allowAdaptiveSelections` - Whether adaptive selection is enabled.
      Returns:
        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:
        `allowMultipleOverrides` - Whether multiple track selection overrides are allowed.
      Returns:
        This builder, for convenience.

    - #### setShowDisableOption

          public TrackSelectionDialogBuilder setShowDisableOption​(boolean showDisableOption)

      Sets whether an option is available for disabling the renderer.
      Parameters:
        `showDisableOption` - Whether the disable option is shown.
      Returns:
        This builder, for convenience.

    - #### setTrackFormatComparator

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

      Sets a `Comparator` used to determine the display order of the tracks within each track group.
      Parameters:
        `trackFormatComparator` - The comparator, or `null` to use the original order.

    - #### setTrackNameProvider

          public TrackSelectionDialogBuilder setTrackNameProvider​(@Nullable
                                                                  TrackNameProvider trackNameProvider)

      Sets the `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` - The `TrackNameProvider` to use, or null to use the default.

    - #### build

          public Dialog build()

      Builds the dialog.