# MediaRouteProvider.DynamicGroupRouteController

# MediaRouteProvider.DynamicGroupRouteController

Artifact:[androidx.mediarouter:mediarouter](https://developer.android.com/jetpack/androidx/releases/mediarouter)  
[View Source](https://cs.android.com/search?q=file:androidx/mediarouter/media/MediaRouteProvider.java+class:androidx.mediarouter.media.MediaRouteProvider.DynamicGroupRouteController)  
Added in[1.1.0](https://developer.android.com/jetpack/androidx/releases/mediarouter#1.1.0)

*** ** * ** ***

Kotlin\|[Java](https://developer.android.com/reference/androidx/mediarouter/media/MediaRouteProvider.DynamicGroupRouteController "View this page in Java")

<br />

```
abstract class MediaRouteProvider.DynamicGroupRouteController : MediaRouteProvider.RouteController
```

<br />

|---|---|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [kotlin.Any](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html)                                                                                                                          |||
| ↳ | [androidx.mediarouter.media.MediaRouteProvider.RouteController](https://developer.android.com/reference/kotlin/androidx/mediarouter/media/MediaRouteProvider.RouteController)                            ||
|   | ↳ | [androidx.mediarouter.media.MediaRouteProvider.DynamicGroupRouteController](https://developer.android.com/reference/kotlin/androidx/mediarouter/media/MediaRouteProvider.DynamicGroupRouteController) |

*** ** * ** ***

Provides control over a dynamic group route. A dynamic group route is a group of routes such that a route can be added or removed from the group by the user dynamically.

## Summary

|                                                                                                                                                                                                           ### Nested types                                                                                                                                                                                                            |
|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `class `[MediaRouteProvider.DynamicGroupRouteController.DynamicRouteDescriptor](https://developer.android.com/reference/kotlin/androidx/mediarouter/media/MediaRouteProvider.DynamicGroupRouteController.DynamicRouteDescriptor) Contains a route, its selection state and its capabilities.                                                                                                                                          |
| `class `[MediaRouteProvider.DynamicGroupRouteController.DynamicRouteDescriptor.Builder](https://developer.android.com/reference/kotlin/androidx/mediarouter/media/MediaRouteProvider.DynamicGroupRouteController.DynamicRouteDescriptor.Builder) Builder for[DynamicRouteDescriptor](https://developer.android.com/reference/kotlin/androidx/mediarouter/media/MediaRouteProvider.DynamicGroupRouteController.DynamicRouteDescriptor) |

|                                                                                  ### Public constructors                                                                                  |
|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [DynamicGroupRouteController](https://developer.android.com/reference/kotlin/androidx/mediarouter/media/MediaRouteProvider.DynamicGroupRouteController#DynamicGroupRouteController())`()` |

|                                   ### Public functions                                   |
|------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)`?`     | [getGroupableSelectionTitle](https://developer.android.com/reference/kotlin/androidx/mediarouter/media/MediaRouteProvider.DynamicGroupRouteController#getGroupableSelectionTitle())`()` Gets the title of the groupable routes section which will be shown to the user.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| [String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)`?`     | [getTransferableSectionTitle](https://developer.android.com/reference/kotlin/androidx/mediarouter/media/MediaRouteProvider.DynamicGroupRouteController#getTransferableSectionTitle())`()` Gets the title of the transferable routes section which will be shown to the user.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| [Unit](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)            | ~~[notifyDynamicRoutesChanged](https://developer.android.com/reference/kotlin/androidx/mediarouter/media/MediaRouteProvider.DynamicGroupRouteController#notifyDynamicRoutesChanged(java.util.Collection<androidx.mediarouter.media.MediaRouteProvider.DynamicGroupRouteController.DynamicRouteDescriptor>))~~`(` ` routes: (`[Mutable](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-mutable-collection/index.html)`)`[Collection](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-collection/index.html)`<`[MediaRouteProvider.DynamicGroupRouteController.DynamicRouteDescriptor](https://developer.android.com/reference/kotlin/androidx/mediarouter/media/MediaRouteProvider.DynamicGroupRouteController.DynamicRouteDescriptor)`!>` `)` **This function is deprecated.** Use[notifyDynamicRoutesChanged](https://developer.android.com/reference/kotlin/androidx/mediarouter/media/MediaRouteProvider.DynamicGroupRouteController#notifyDynamicRoutesChanged(androidx.mediarouter.media.MediaRouteDescriptor,java.util.Collection<androidx.mediarouter.media.MediaRouteProvider.DynamicGroupRouteController.DynamicRouteDescriptor>))instead to notify information of the group. <br /> |
| [Unit](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)            | [notifyDynamicRoutesChanged](https://developer.android.com/reference/kotlin/androidx/mediarouter/media/MediaRouteProvider.DynamicGroupRouteController#notifyDynamicRoutesChanged(androidx.mediarouter.media.MediaRouteDescriptor,java.util.Collection<androidx.mediarouter.media.MediaRouteProvider.DynamicGroupRouteController.DynamicRouteDescriptor>))`(` ` groupRoute: `[MediaRouteDescriptor](https://developer.android.com/reference/kotlin/androidx/mediarouter/media/MediaRouteDescriptor)`,` ` dynamicRoutes: (`[Mutable](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-mutable-collection/index.html)`)`[Collection](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-collection/index.html)`<`[MediaRouteProvider.DynamicGroupRouteController.DynamicRouteDescriptor](https://developer.android.com/reference/kotlin/androidx/mediarouter/media/MediaRouteProvider.DynamicGroupRouteController.DynamicRouteDescriptor)`!>` `)` Sets the group route descriptor and the dynamic route descriptors for the dynamic group.                                                                                                                                                            |
| `abstract `[Unit](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html) | [onAddMemberRoute](https://developer.android.com/reference/kotlin/androidx/mediarouter/media/MediaRouteProvider.DynamicGroupRouteController#onAddMemberRoute(java.lang.String))`(routeId: `[String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)`)` Called when a user adds a route into the casting session.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| `abstract `[Unit](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html) | [onRemoveMemberRoute](https://developer.android.com/reference/kotlin/androidx/mediarouter/media/MediaRouteProvider.DynamicGroupRouteController#onRemoveMemberRoute(java.lang.String))`(routeId: `[String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)`)` Called when a user removes a route from casting session.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| `abstract `[Unit](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html) | [onUpdateMemberRoutes](https://developer.android.com/reference/kotlin/androidx/mediarouter/media/MediaRouteProvider.DynamicGroupRouteController#onUpdateMemberRoutes(java.util.List<java.lang.String>))`(routeIds: (`[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)`<`[String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)`!>?)` Called when a user selects a new set of routes s/he wants the session to be played.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |

|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      ### Inherited functions                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| From[androidx.mediarouter.media.MediaRouteProvider.RouteController](https://developer.android.com/reference/kotlin/androidx/mediarouter/media/MediaRouteProvider.RouteController) |-------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | [Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html) | [onControlRequest](https://developer.android.com/reference/kotlin/androidx/mediarouter/media/MediaRouteProvider.RouteController#onControlRequest(android.content.Intent,androidx.mediarouter.media.MediaRouter.ControlRequestCallback))`(` ` intent: `[Intent](https://developer.android.com/reference/android/content/Intent.html)`,` ` callback: `[MediaRouter.ControlRequestCallback](https://developer.android.com/reference/kotlin/androidx/mediarouter/media/MediaRouter.ControlRequestCallback)`?` `)` Performs a[media control](https://developer.android.com/reference/kotlin/androidx/mediarouter/media/MediaControlIntent)request asynchronously on behalf of the route. | | [Unit](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)       | [onRelease](https://developer.android.com/reference/kotlin/androidx/mediarouter/media/MediaRouteProvider.RouteController#onRelease())`()` Releases the route controller, allowing it to free its resources.                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | | [Unit](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)       | [onSelect](https://developer.android.com/reference/kotlin/androidx/mediarouter/media/MediaRouteProvider.RouteController#onSelect())`()` Selects the route.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          | | [Unit](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)       | [onSetVolume](https://developer.android.com/reference/kotlin/androidx/mediarouter/media/MediaRouteProvider.RouteController#onSetVolume(int))`(volume: `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)`)` Requests to set the volume of the route.                                                                                                                                                                                                                                                                                                                                                                                                      | | [Unit](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)       | ~~[onUnselect](https://developer.android.com/reference/kotlin/androidx/mediarouter/media/MediaRouteProvider.RouteController#onUnselect())~~`()` **This function is deprecated.** Use[onUnselect](https://developer.android.com/reference/kotlin/androidx/mediarouter/media/MediaRouteProvider.RouteController#onUnselect(int))instead. <br />                                                                                                                                                                                                                                                                                                                                       | | [Unit](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)       | [onUnselect](https://developer.android.com/reference/kotlin/androidx/mediarouter/media/MediaRouteProvider.RouteController#onUnselect(int))`(reason: `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)`)` Unselects the route and provides a reason.                                                                                                                                                                                                                                                                                                                                                                                                      | | [Unit](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)       | [onUpdateVolume](https://developer.android.com/reference/kotlin/androidx/mediarouter/media/MediaRouteProvider.RouteController#onUpdateVolume(int))`(delta: `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)`)` Requests an incremental volume update for the route.                                                                                                                                                                                                                                                                                                                                                                                     | |

## Public constructors

### DynamicGroupRouteController

Added in 1.1.0  

```
DynamicGroupRouteController()
```  

## Public functions

### getGroupableSelectionTitle

Added in[1.1.0](https://developer.android.com/jetpack/androidx/releases/mediarouter#1.1.0)  

```
fun getGroupableSelectionTitle(): String?
```

Gets the title of the groupable routes section which will be shown to the user. It is provided by[MediaRouteProvider](https://developer.android.com/reference/kotlin/androidx/mediarouter/media/MediaRouteProvider). e.g. "Add a device."  

### getTransferableSectionTitle

Added in[1.1.0](https://developer.android.com/jetpack/androidx/releases/mediarouter#1.1.0)  

```
fun getTransferableSectionTitle(): String?
```

Gets the title of the transferable routes section which will be shown to the user. It is provided by[MediaRouteProvider](https://developer.android.com/reference/kotlin/androidx/mediarouter/media/MediaRouteProvider).[MediaRouteProvider](https://developer.android.com/reference/kotlin/androidx/mediarouter/media/MediaRouteProvider). e.g. "Play on group."  

### notifyDynamicRoutesChanged

Added in[1.1.0](https://developer.android.com/jetpack/androidx/releases/mediarouter#1.1.0)  
Deprecated in[1.2.0](https://developer.android.com/jetpack/androidx/releases/mediarouter#1.2.0)  

```
fun [notifyDynamicRoutesChanged](https://developer.android.com/reference/kotlin/androidx/mediarouter/media/MediaRouteProvider.DynamicGroupRouteController#notifyDynamicRoutesChanged(java.util.Collection<androidx.mediarouter.media.MediaRouteProvider.DynamicGroupRouteController.DynamicRouteDescriptor>))(
    routes: (Mutable)Collection<MediaRouteProvider.DynamicGroupRouteController.DynamicRouteDescriptor!>
): Unit
```
| **This function is deprecated.**   
|
| Use[notifyDynamicRoutesChanged](https://developer.android.com/reference/kotlin/androidx/mediarouter/media/MediaRouteProvider.DynamicGroupRouteController#notifyDynamicRoutesChanged(androidx.mediarouter.media.MediaRouteDescriptor,java.util.Collection<androidx.mediarouter.media.MediaRouteProvider.DynamicGroupRouteController.DynamicRouteDescriptor>))instead to notify information of the group.

Sets the dynamic route descriptors for the dynamic group.

The dynamic group controller should call this method to notify the current dynamic group state.  

|                                                                                                                                                                                                                          Parameters                                                                                                                                                                                                                          |
|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------|
| `routes: (`[Mutable](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-mutable-collection/index.html)`)`[Collection](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-collection/index.html)`<`[MediaRouteProvider.DynamicGroupRouteController.DynamicRouteDescriptor](https://developer.android.com/reference/kotlin/androidx/mediarouter/media/MediaRouteProvider.DynamicGroupRouteController.DynamicRouteDescriptor)`!>` | The dynamic route descriptors for published routes. At least a selected or selecting route must be included. |

### notifyDynamicRoutesChanged

Added in[1.2.0](https://developer.android.com/jetpack/androidx/releases/mediarouter#1.2.0)  

```
fun notifyDynamicRoutesChanged(
    groupRoute: MediaRouteDescriptor,
    dynamicRoutes: (Mutable)Collection<MediaRouteProvider.DynamicGroupRouteController.DynamicRouteDescriptor!>
): Unit
```

Sets the group route descriptor and the dynamic route descriptors for the dynamic group.

The dynamic group controller should call this method to notify the current dynamic group state.  

|                                                                                                                                                                                                                             Parameters                                                                                                                                                                                                                              |
|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `groupRoute: `[MediaRouteDescriptor](https://developer.android.com/reference/kotlin/androidx/mediarouter/media/MediaRouteDescriptor)                                                                                                                                                                                                                                                                                                                                | The media route descriptor describing the dynamic group. The[selected route](https://developer.android.com/reference/kotlin/androidx/mediarouter/media/MediaRouter#getSelectedRoute())of the media router will contain this information. If it is[disabled](https://developer.android.com/reference/kotlin/androidx/mediarouter/media/MediaRouteDescriptor#isEnabled()), the media router will unselect the dynamic group and release the route controller. |
| `dynamicRoutes: (`[Mutable](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-mutable-collection/index.html)`)`[Collection](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-collection/index.html)`<`[MediaRouteProvider.DynamicGroupRouteController.DynamicRouteDescriptor](https://developer.android.com/reference/kotlin/androidx/mediarouter/media/MediaRouteProvider.DynamicGroupRouteController.DynamicRouteDescriptor)`!>` | The dynamic route descriptors for published routes. At least a selected or selecting route should be included.                                                                                                                                                                                                                                                                                                                                              |

### onAddMemberRoute

Added in[1.1.0](https://developer.android.com/jetpack/androidx/releases/mediarouter#1.1.0)  

```
abstract fun onAddMemberRoute(routeId: String): Unit
```

Called when a user adds a route into the casting session.  

### onRemoveMemberRoute

Added in[1.1.0](https://developer.android.com/jetpack/androidx/releases/mediarouter#1.1.0)  

```
abstract fun onRemoveMemberRoute(routeId: String): Unit
```

Called when a user removes a route from casting session.  

### onUpdateMemberRoutes

Added in[1.1.0](https://developer.android.com/jetpack/androidx/releases/mediarouter#1.1.0)  

```
abstract fun onUpdateMemberRoutes(routeIds: (Mutable)List<String!>?): Unit
```

Called when a user selects a new set of routes s/he wants the session to be played.