BaseViewModel

abstract class BaseViewModel<VS : ViewState> : ViewModel, DefaultLifecycleObserver

Base class representing ViewModel. It allows to observe LiveDatas, which is useful for observing ViewState. Observers are automatically removed when ViewModel is no longer used and will be destroyed. Beside that, it handles one-shot Events send from ViewModel to Activity/Fragment.

Constructors

Link copied to clipboard
fun BaseViewModel()

Functions

Link copied to clipboard
fun clear()
Link copied to clipboard
open fun <T : Any> getTag(p0: String): T
Link copied to clipboard
fun observeEvent(lifecycleOwner: LifecycleOwner, eventClass: KClass<out Event<VS>>, observer: (Event<VS>) -> Unit)

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.

Link copied to clipboard
fun <T> LiveData<T>.observeWithoutOwner(callback: (T) -> Unit)

Observe LiveData without particular owner (Activity eg.). Observer is removed when ViewModel is destroyed.

fun <T : Any> DefaultValueLiveData<T>.observeWithoutOwner(callback: (T) -> Unit)

Observe DefaultValueLiveData without particular owner (Activity eg.). Observer is removed when ViewModel is destroyed.

fun <T : Any> DefaultValueMediatorLiveData<T>.observeWithoutOwner(callback: (T) -> Unit)

Observe DefaultValueMediatorLiveData without particular owner (Activity eg.). Observer is removed when ViewModel is destroyed.

Link copied to clipboard
open override fun onCreate(@NonNull p0: LifecycleOwner)
Link copied to clipboard
open override fun onDestroy(@NonNull p0: LifecycleOwner)
Link copied to clipboard
open override fun onPause(@NonNull p0: LifecycleOwner)
Link copied to clipboard
open override fun onResume(@NonNull p0: LifecycleOwner)
Link copied to clipboard
open fun onStart()

Activity's onStart() method companion. Method is executed only once.

open override fun onStart(owner: LifecycleOwner)
Link copied to clipboard
open override fun onStop(@NonNull p0: LifecycleOwner)
Link copied to clipboard
fun sendEvent(event: Event<VS>)

Send one-shot event to internal bus and notify all of its observers

Link copied to clipboard
open fun <T : Any> setTagIfAbsent(p0: String, p1: T): T

Properties

Link copied to clipboard
var internalSavedStateHandle: SavedStateHandle? = null
Link copied to clipboard
val requireSavedStateHandle: SavedStateHandle
Link copied to clipboard
abstract val viewState: VS