-
- All Implemented Interfaces:
-
androidx.lifecycle.DefaultLifecycleObserver,androidx.lifecycle.LifecycleObserver
public abstract class BaseViewModel<VS extends ViewState> extends ViewModel implements DefaultLifecycleObserver
-
-
Field Summary
Fields Modifier and Type Field Description private final VSviewStateprivate final SavedStateHandlerequireSavedStateHandleprivate SavedStateHandleinternalSavedStateHandle
-
Constructor Summary
Constructors Constructor Description BaseViewModel()
-
Method Summary
Modifier and Type Method Description abstract VSgetViewState()final SavedStateHandlegetRequireSavedStateHandle()final SavedStateHandlegetInternalSavedStateHandle()final UnitsetInternalSavedStateHandle(SavedStateHandle internalSavedStateHandle)UnitonStart(LifecycleOwner owner)UnitonStart()Activity's onStart() method companion. final UnitsendEvent(Event<VS> event)Send one-shot event to internal bus and notify all of its observers final <T extends Any> UnitobserveWithoutOwner(LiveData<T> $self, Function1<T, Unit> callback)Observe LiveData without particular owner (Activity eg.). final <T extends Any> UnitobserveWithoutOwner(DefaultValueLiveData<T> $self, Function1<T, Unit> callback)Observe DefaultValueLiveData without particular owner (Activity eg.). final <T extends Any> UnitobserveWithoutOwner(DefaultValueMediatorLiveData<T> $self, Function1<T, Unit> callback)Observe DefaultValueMediatorLiveData without particular owner (Activity eg.). final UnitobserveEvent(LifecycleOwner lifecycleOwner, KClass<out Event<VS>> eventClass, Function1<Event<VS>, Unit> observer)Observe one-shot Event defined by event class and run observer lambda whenever event is received. -
-
Method Detail
-
getViewState
abstract VS getViewState()
-
getRequireSavedStateHandle
final SavedStateHandle getRequireSavedStateHandle()
-
getInternalSavedStateHandle
final SavedStateHandle getInternalSavedStateHandle()
-
setInternalSavedStateHandle
final Unit setInternalSavedStateHandle(SavedStateHandle internalSavedStateHandle)
-
onStart
Unit onStart(LifecycleOwner owner)
-
sendEvent
final Unit sendEvent(Event<VS> event)
Send one-shot event to internal bus and notify all of its observers
- Parameters:
event- event to be sent
-
observeWithoutOwner
final <T extends Any> Unit observeWithoutOwner(LiveData<T> $self, Function1<T, Unit> callback)
Observe LiveData without particular owner (Activity eg.). Observer is removed when ViewModel is destroyed.
- Parameters:
callback- Lambda called when new value is dispatched to LiveData
-
observeWithoutOwner
final <T extends Any> Unit observeWithoutOwner(DefaultValueLiveData<T> $self, Function1<T, Unit> callback)
Observe DefaultValueLiveData without particular owner (Activity eg.). Observer is removed when ViewModel is destroyed.
- Parameters:
callback- Lambda called when new value is dispatched to LiveData
-
observeWithoutOwner
final <T extends Any> Unit observeWithoutOwner(DefaultValueMediatorLiveData<T> $self, Function1<T, Unit> callback)
Observe DefaultValueMediatorLiveData without particular owner (Activity eg.). Observer is removed when ViewModel is destroyed.
- Parameters:
callback- Lambda called when new value is dispatched to LiveData
-
observeEvent
final Unit observeEvent(LifecycleOwner lifecycleOwner, KClass<out Event<VS>> eventClass, Function1<Event<VS>, Unit> observer)
Observe one-shot Event defined by event class and run observer lambda whenever event is received. This event class must be associated with current Activity/Fragment ViewState.
- Parameters:
lifecycleOwner- Particular lifecycle owner that should be used for observing eventseventClass- Observed event classobserver- Lambda called when one-shot event is received
-
-
-
-