Skip to content

Instantly share code, notes, and snippets.

@jpvs0101
Forked from ivanalvarado/UserListViewModel.kt
Created July 24, 2021 16:25
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jpvs0101/f37d22b0e22bc85aefe4a2b3aa4240db to your computer and use it in GitHub Desktop.
Save jpvs0101/f37d22b0e22bc85aefe4a2b3aa4240db to your computer and use it in GitHub Desktop.
Correct implementation of Swipe-to-Refresh with LiveData.
class UserListViewModel @Inject constructor(private val userRepository: UserRepository) : ViewModel() {
private val reloadTrigger = MutableLiveData<Boolean>()
private val users: LiveData<List<UserModel>> = Transformations.switchMap(reloadTrigger) {
userRepository.getUsers()
}
init {
refreshUsers()
}
fun getUsers(): LiveData<List<UserModel>> = users
fun refreshUsers() {
reloadTrigger.value = true
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment