Skip to content

Instantly share code, notes, and snippets.

@hitherejoe
Last active September 27, 2017 08:26
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 hitherejoe/fcbc4317e95041c621478dcf71738c21 to your computer and use it in GitHub Desktop.
Save hitherejoe/fcbc4317e95041c621478dcf71738c21 to your computer and use it in GitHub Desktop.
open class BrowseBufferoosViewModel @Inject internal constructor(
private val getBufferoos: GetBufferoos,
private val bufferooMapper: BufferooMapper) : ViewModel() {
private val bufferoosLiveData: MutableLiveData<Resource<List<BufferooView>>> =
MutableLiveData()
override fun onCleared() {
getBufferoos.dispose()
super.onCleared()
}
fun getBufferoos(): LiveData<Resource<List<BufferooView>>> {
return bufferoosLiveData
}
fun fetchBufferoos() {
bufferoosLiveData.postValue(Resource(ResourceState.LOADING, null, null))
return getBufferoos.execute(BufferooSubscriber())
}
inner class BufferooSubscriber: DisposableSubscriber<List<Bufferoo>>() {
override fun onComplete() { }
override fun onNext(t: List<Bufferoo>) {
bufferoosLiveData.postValue(Resource(ResourceState.SUCCESS,
t.map { bufferooMapper.mapToView(it) }, null))
}
override fun onError(exception: Throwable) {
bufferoosLiveData.postValue(Resource(ResourceState.ERROR, null, exception.message))
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment