Ofir Bar
03/11/2020, 11:22 AMclass MyPublishedAdvertisementsViewModel(private val advertisementRepository : AdvertisementRepository) : ViewModel(){
var _myPublishedAdvertisements : MutableLiveData<NetworkCall<MyPublishedAdvertisementsResponse>> = MutableLiveData()
val myPublishedAdvertisements : LiveData< NetworkCall<MyPublishedAdvertisementsResponse> > = _myPublishedAdvertisements
// Called every time our UI is #onStarted
fun getFreshData(){
_myPublishedAdvertisements.value = liveData {
emit(NetworkCall<MyPublishedAdvertisementsResponse>(NetworkStatus.LOADING, null, ""))
val publishedAdvertisements = advertisementRepository.getMyPublishedAdvertisements()
emit(publishedAdvertisements)
}
}
}
Kirill Prybylsky
03/11/2020, 11:24 AMOfir Bar
03/11/2020, 11:26 AMdata class NetworkCall<out T>(val status: NetworkStatus, val data: T?, val message: String?) {
companion object {
fun <T> success(data: T?): NetworkCall<T> {
return NetworkCall(NetworkStatus.SUCCESS, data, null)
}
fun <T> error(msg: String, data: T?): NetworkCall<T> {
return NetworkCall(NetworkStatus.ERROR, data, msg)
}
fun <T> loading(data: T?): NetworkCall<T> {
return NetworkCall(NetworkStatus.LOADING, data, null)
}
}
}
Kirill Prybylsky
03/11/2020, 11:27 AMOfir Bar
03/11/2020, 11:29 AMKirill Prybylsky
03/11/2020, 11:32 AMOfir Bar
03/11/2020, 11:35 AMKirill Prybylsky
03/11/2020, 11:40 AMOfir Bar
03/11/2020, 11:54 AM