ViewModelStoreNavEntryDecoratorKt

Added in 1.0.0-alpha01

public final class ViewModelStoreNavEntryDecoratorKt


Summary

Public methods

static final @NonNull NavEntryDecorator<@NonNull Object>
ViewModelStoreNavEntryDecorator(
    @NonNull ViewModelStore viewModelStore,
    @NonNull Function0<@NonNull Boolean> shouldRemoveStoreOwner
)

Provides the content of a NavEntry with a ViewModelStoreOwner and provides that ViewModelStoreOwner as a LocalViewModelStoreOwner so that it is available within the content.

static final @NonNull NavEntryDecorator<@NonNull Object>
@Composable
rememberViewModelStoreNavEntryDecorator(
    @NonNull ViewModelStoreOwner viewModelStoreOwner,
    @NonNull Function0<@NonNull Boolean> shouldRemoveStoreOwner
)

Returns a ViewModelStoreNavEntryDecorator that is remembered across recompositions.

Public methods

ViewModelStoreNavEntryDecorator

public static final @NonNull NavEntryDecorator<@NonNull ObjectViewModelStoreNavEntryDecorator(
    @NonNull ViewModelStore viewModelStore,
    @NonNull Function0<@NonNull Boolean> shouldRemoveStoreOwner
)

Provides the content of a NavEntry with a ViewModelStoreOwner and provides that ViewModelStoreOwner as a LocalViewModelStoreOwner so that it is available within the content.

This requires the usage of androidx.navigation3.runtime.SavedStateNavEntryDecorator to ensure that the NavEntry scoped ViewModels can properly provide access to androidx.lifecycle.SavedStateHandles

Parameters
@NonNull ViewModelStore viewModelStore

The ViewModelStore that provides to NavEntries

@NonNull Function0<@NonNull Boolean> shouldRemoveStoreOwner

A lambda that returns a Boolean for whether the store owner for a NavEntry should be cleared when the NavEntry is popped from the backStack. If true, the entry's ViewModelStoreOwner will be removed.

rememberViewModelStoreNavEntryDecorator

@Composable
public static final @NonNull NavEntryDecorator<@NonNull ObjectrememberViewModelStoreNavEntryDecorator(
    @NonNull ViewModelStoreOwner viewModelStoreOwner,
    @NonNull Function0<@NonNull Boolean> shouldRemoveStoreOwner
)

Returns a ViewModelStoreNavEntryDecorator that is remembered across recompositions.

Parameters
@NonNull ViewModelStoreOwner viewModelStoreOwner

The ViewModelStoreOwner that provides the ViewModelStore to NavEntries

@NonNull Function0<@NonNull Boolean> shouldRemoveStoreOwner

A lambda that returns a Boolean for whether the store owner for a NavEntry should be cleared when the NavEntry is popped from the backStack. If true, the entry's ViewModelStoreOwner will be removed.