public fun interface SceneStrategy<T extends Object>

Known direct subclasses
DialogSceneStrategy

A SceneStrategy that displays entries that have added dialog to their NavEntry.metadata within a Dialog instance.

SinglePaneSceneStrategy

A SceneStrategy that always creates a 1-entry Scene simply displaying the last entry in the list.


A strategy that tries to calculate a Scene given a list of NavEntry.

If the list of NavEntry does not result in a Scene for this strategy, null will be returned instead to delegate to another strategy.

Summary

Public methods

abstract Scene<@NonNull T>
@Composable
calculateScene(
    @NonNull List<@NonNull NavEntry<@NonNull T>> entries,
    @NonNull Function1<@NonNull IntegerUnit> onBack
)

Given a back stack of entries, calculate whether this SceneStrategy should take on the task of rendering one or more of those entries.

default @NonNull SceneStrategy<@NonNull T>
then(@NonNull SceneStrategy<@NonNull T> sceneStrategy)

Chains this SceneStrategy with another sceneStrategy to return a combined SceneStrategy.

Public methods

calculateScene

@Composable
abstract Scene<@NonNull T> calculateScene(
    @NonNull List<@NonNull NavEntry<@NonNull T>> entries,
    @NonNull Function1<@NonNull IntegerUnit> onBack
)

Given a back stack of entries, calculate whether this SceneStrategy should take on the task of rendering one or more of those entries.

By returning a non-null Scene, your Scene takes on the responsibility of rendering the set of entries you declare in Scene.entries. If you return null, the next available SceneStrategy will be called.

Parameters
@NonNull List<@NonNull NavEntry<@NonNull T>> entries

The entries on the back stack that should be considered valid to render via a returned Scene.

@NonNull Function1<@NonNull IntegerUnit> onBack

a callback that should be connected to any internal handling of system back done by the returned Scene. The passed Int should be the number of entries were popped.

then

Added in 1.0.0-alpha02
default @NonNull SceneStrategy<@NonNull T> then(@NonNull SceneStrategy<@NonNull T> sceneStrategy)

Chains this SceneStrategy with another sceneStrategy to return a combined SceneStrategy.