Skip to content

Instantly share code, notes, and snippets.

View SaurabhSandav's full-sized avatar

Saurabh Sandav SaurabhSandav

  • Mumbai, India
View GitHub Profile
@SaurabhSandav
SaurabhSandav / ComposeHiltViewModels.kt
Last active November 6, 2020 16:10
Using Hilt injected ViewModels with Compose Navigation
// AppSavedStateViewModelFactory
typealias ViewModelAssistedFactoryMap = Map<String, @JvmSuppressWildcards Provider<ViewModelAssistedFactory<out ViewModel>>>
class AppSavedStateViewModelFactory(
owner: SavedStateRegistryOwner,
private val viewModelAssistedFactoryMap: ViewModelAssistedFactoryMap,
) : AbstractSavedStateViewModelFactory(owner, null) {
@Suppress("UNCHECKED_CAST")
@SaurabhSandav
SaurabhSandav / SwapSourceLiveData.kt
Created September 8, 2019 13:28
Similar to MediatorLiveData but limited to a single LiveData source at a time.
import androidx.lifecycle.LiveData
import androidx.lifecycle.Observer
class SwapSourceLiveData<T> : LiveData<T>() {
private var currentSource: LiveData<T>? = null
private var currentObserver: Observer<T>? = null
fun swapSource(newSource: LiveData<T>, newObserver: Observer<T> = Observer { value = it }) {
unPlug()