vector / com.haroldadmin.vector / SavedStateVectorViewModel
SavedStateVectorViewModel¶
abstract class SavedStateVectorViewModel<S :VectorState> :VectorViewModel<S>
A Subclass of VectorViewModel that has access to a SavedStateHandle to easily persist state properties in case of process death
Parameters¶
initialState - The initial state for this ViewModel
stateStoreContext - The CoroutineContext to be used with the contained State Store
savedStateHandle - The SavedStateHandle to be used for persisting state across process deaths
Constructors¶
| Name | Summary |
|---|---|
| <init> | SavedStateVectorViewModel(initialState:S, stateStoreContext:CoroutineContext= Dispatchers.Default + Job(), savedStateHandle:SavedStateHandle)A Subclass of VectorViewModel that has access to a SavedStateHandle to easily persist state properties in case of process death |
Properties¶
| Name | Summary |
|---|---|
| savedStateHandle | val savedStateHandle:SavedStateHandleThe SavedStateHandle to be used for persisting state across process deaths |
Inherited Properties¶
| Name | Summary |
|---|---|
| currentState | val currentState:SAccess the current value of state stored in the stateStore. |
| logger | val logger:Logger |
| state | val state: Flow<S>A kotlinx.coroutines.flow.Flow of VectorState which can be observed by external classes to respond to changes in state. |
| stateStore | open val stateStore:StateStore<S>The state store associated with this ViewModel |
Functions¶
| Name | Summary |
|---|---|
| persistState | open fun persistState():UnitSaves the current state into savedStateHandle using KEY_SAVED_STATE Subclasses can override this method for custom behaviour. |
| setStateAndPersist | fun setStateAndPersist(reducer: suspendS.() ->S):UnitA convenience wrapper around the setState function which runs the given reducer, and then persists the newly created state |
Inherited Functions¶
| Name | Summary |
|---|---|
| onCleared | open fun onCleared():UnitClears this ViewModel as well as its stateStore. |
| setState | fun setState(action: suspendS.() ->S):UnitThe only method through which state mutation is allowed in subclasses. |
| withState | fun withState(action: suspend (S) ->Unit):UnitDispatch the given action the stateStore. This action shall be processed as soon as all existing state reducers have been processed. The state parameter supplied to this action should be the latest value at the time of processing of this action. |
Companion Object Properties¶
| Name | Summary |
|---|---|
| KEY_SAVED_STATE | const val KEY_SAVED_STATE:StringA predefined key which can be used to persist a valid VectorState class into the savedStateHandle |