# DialogSceneStrategy

Artifact: [androidx.navigation3:navigation3-ui](https://developer.android.com/jetpack/androidx/releases/navigation3) [View Source](https://cs.android.com/search?q=file:androidx/navigation3/scene/DialogScene.kt+class:androidx.navigation3.scene.DialogSceneStrategy) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/navigation3#1.0.0) Common/All
- Cmn

  ```
  class DialogSceneStrategy<T : Any> : SceneStrategy<T>
  ```

*** ** * ** ***

A `https://developer.android.com/reference/kotlin/androidx/navigation3/scene/SceneStrategy` that displays entries that have added `https://developer.android.com/reference/kotlin/androidx/navigation3/scene/DialogSceneStrategy#dialog(androidx.compose.ui.window.DialogProperties)` to their `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/NavEntry#metadata()` within a `https://developer.android.com/reference/kotlin/androidx/compose/ui/window/Dialog.composable#Dialog(kotlin.Function0,androidx.compose.ui.window.DialogProperties,kotlin.Function0)` instance.

This strategy should always be added before any non-overlay scene strategies.

## Summary

| ### Nested types |
|---|
| `object https://developer.android.com/reference/kotlin/androidx/navigation3/scene/DialogSceneStrategy.Companion` |
| `object https://developer.android.com/reference/kotlin/androidx/navigation3/scene/DialogSceneStrategy.Companion.DialogKey : https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/NavMetadataKey<https://developer.android.com/reference/kotlin/androidx/compose/ui/window/DialogProperties>` The key for `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/NavEntry#metadata()` or `https://developer.android.com/reference/kotlin/androidx/navigation3/scene/Scene#metadata()` to indicate that an entry should be displayed within a `https://developer.android.com/reference/kotlin/androidx/compose/ui/window/Dialog.composable#Dialog(kotlin.Function0,androidx.compose.ui.window.DialogProperties,kotlin.Function0)`. |

| ### Public companion functions |
|---|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-map/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html, https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html>` | `https://developer.android.com/reference/kotlin/androidx/navigation3/scene/DialogSceneStrategy#dialog(androidx.compose.ui.window.DialogProperties)(dialogProperties: https://developer.android.com/reference/kotlin/androidx/compose/ui/window/DialogProperties)` Function to be called on the `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/NavEntry#metadata()` to mark this entry as something that should be displayed within a `https://developer.android.com/reference/kotlin/androidx/compose/ui/window/Dialog.composable#Dialog(kotlin.Function0,androidx.compose.ui.window.DialogProperties,kotlin.Function0)`. | Cmn |

| ### Public constructors |
|---|---|
| `<T : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html> https://developer.android.com/reference/kotlin/androidx/navigation3/scene/DialogSceneStrategy#DialogSceneStrategy()()` | Cmn |

| ### Public functions |
|---|---|---|
| `open https://developer.android.com/reference/kotlin/androidx/navigation3/scene/Scene<T>?` | `https://developer.android.com/reference/kotlin/androidx/navigation3/scene/SceneStrategyScope<T>.https://developer.android.com/reference/kotlin/androidx/navigation3/scene/DialogSceneStrategy#(androidx.navigation3.scene.SceneStrategyScope).calculateScene(kotlin.collections.List)(entries: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html<https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/NavEntry<T>>)` Given a `https://developer.android.com/reference/kotlin/androidx/navigation3/scene/SceneStrategyScope`, calculate whether this `https://developer.android.com/reference/kotlin/androidx/navigation3/scene/SceneStrategy` should take on the task of rendering one or more of the entries in the scope. | Cmn |

### Inherited functions

From [androidx.navigation3.scene.SceneStrategy](https://developer.android.com/reference/kotlin/androidx/navigation3/scene/SceneStrategy) `open infix https://developer.android.com/reference/kotlin/androidx/navigation3/scene/SceneStrategy<T>` `[then](https://developer.android.com/reference/kotlin/androidx/navigation3/scene/SceneStrategy#then(androidx.navigation3.scene.SceneStrategy))(sceneStrategy: https://developer.android.com/reference/kotlin/androidx/navigation3/scene/SceneStrategy<T>)`

**This function is deprecated.** Deprecated in favor of List\<SceneStrategy\> APIs that take the output of this operator has been refactored to take a list of strategies instead.
Cmn

## Public companion functions

### dialog

Cmn Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/navigation3#1.0.0)

```
fun dialog(dialogProperties: DialogProperties = DialogProperties()): Map<String, Any>
```

Function to be called on the `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/NavEntry#metadata()` to mark this entry as something that should be displayed within a `https://developer.android.com/reference/kotlin/androidx/compose/ui/window/Dialog.composable#Dialog(kotlin.Function0,androidx.compose.ui.window.DialogProperties,kotlin.Function0)`.

| Parameters |
|---|---|
| `dialogProperties: https://developer.android.com/reference/kotlin/androidx/compose/ui/window/DialogProperties = DialogProperties()` | properties that should be passed to the containing `https://developer.android.com/reference/kotlin/androidx/compose/ui/window/Dialog.composable#Dialog(kotlin.Function0,androidx.compose.ui.window.DialogProperties,kotlin.Function0)`. |

## Public constructors

### DialogSceneStrategy

Cmn

```
<T : Any> DialogSceneStrategy()
```

## Public functions

### SceneStrategyScope.calculateScene

Cmn Artifact: [androidx.navigation3:navigation3-ui](https://developer.android.com/jetpack/androidx/releases/navigation3) [View Source](https://cs.android.com/search?q=file:androidx/navigation3/scene/DialogScene.kt+function:calculateScene)

```
open fun SceneStrategyScope<T>.calculateScene(entries: List<NavEntry<T>>): Scene<T>?
```

Given a `https://developer.android.com/reference/kotlin/androidx/navigation3/scene/SceneStrategyScope`, calculate whether this `https://developer.android.com/reference/kotlin/androidx/navigation3/scene/SceneStrategy` should take on the task of rendering one or more of the entries in the scope.

By returning a non-null `https://developer.android.com/reference/kotlin/androidx/navigation3/scene/Scene`, your `https://developer.android.com/reference/kotlin/androidx/navigation3/scene/Scene` takes on the responsibility of rendering the set of entries you declare in `https://developer.android.com/reference/kotlin/androidx/navigation3/scene/Scene#entries()`. If you return `null`, the next available `https://developer.android.com/reference/kotlin/androidx/navigation3/scene/SceneStrategy` will be called.

| Parameters |
|---|---|
| `entries: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html<https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/NavEntry<T>>` | The entries on the back stack that should be considered valid to render via a returned Scene. |