Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.ahmadrd.githubuser.viewmodel
- import android.util.Log
- import androidx.lifecycle.LiveData
- import androidx.lifecycle.MutableLiveData
- import androidx.lifecycle.ViewModel
- import com.ahmadrd.githubuser.data.response.DetailUserResponse
- import com.ahmadrd.githubuser.data.response.ItemsItem
- import com.ahmadrd.githubuser.data.retrofit.ApiConfig
- import retrofit2.Call
- import retrofit2.Callback
- import retrofit2.Response
- class DetailViewModel: ViewModel() {
- private val _detailUser= MutableLiveData<DetailUserResponse>()
- val detailUser: LiveData<DetailUserResponse> = _detailUser
- private val _isLoading = MutableLiveData<Boolean>()
- val isLoading: LiveData<Boolean> = _isLoading
- private val _followers = MutableLiveData<List<ItemsItem>>()
- val followers : LiveData<List<ItemsItem>> = _followers
- private val _following = MutableLiveData<List<ItemsItem>>()
- val following : LiveData<List<ItemsItem>> = _following
- private val _error = MutableLiveData<Boolean>()
- val error : LiveData<Boolean> = _error
- companion object {
- private const val TAG = "DetailViewModel"
- }
- fun setDetailUser(username: String){
- _isLoading.value = true
- val client = ApiConfig.getApiService().getDetailUsers(username)
- client.enqueue(object : Callback<DetailUserResponse>{
- override fun onResponse(call: Call<DetailUserResponse>, response: Response<DetailUserResponse>) {
- _isLoading.value = false
- if(response.isSuccessful){
- _detailUser.value = response.body()
- }
- }
- override fun onFailure(call: Call<DetailUserResponse>, t: Throwable) {
- _isLoading.value = false
- Log.d(TAG, "onFailure setDetailUser : " + t.message.toString())
- }
- })
- }
- fun getFollowers(username: String) {
- _isLoading.value = true
- val client = ApiConfig.getApiService().getUserFollowers(username)
- client.enqueue(object : Callback<List<ItemsItem>>{
- override fun onResponse(call: Call<List<ItemsItem>>, response: Response<List<ItemsItem>>) {
- _isLoading.value = false
- if (response.isSuccessful) {
- _followers.value = response.body()
- }else {
- Log.e(TAG, "onFailure Pertama getFollowers: ${response.message()}")
- }
- }
- override fun onFailure(call: Call<List<ItemsItem>>, t: Throwable) {
- _isLoading.value = false
- Log.e(TAG, "onFailure Kedua getFollowers: ${t.message}")
- }
- })
- }
- fun getFollowing(username: String) {
- _isLoading.value = true
- val client = ApiConfig.getApiService().getUserFollowing(username)
- client.enqueue(object : Callback<List<ItemsItem>>{
- override fun onResponse(call: Call<List<ItemsItem>>, response: Response<List<ItemsItem>>) {
- _isLoading.value = false
- if (response.isSuccessful) {
- val responseBody = response.body()
- if (responseBody != null) {
- _following.postValue(responseBody)
- }
- }else {
- Log.e(TAG, "onFailure Pertama getFollowing: ${response.message()}")
- }
- }
- override fun onFailure(call: Call<List<ItemsItem>>, t: Throwable) {
- _isLoading.value = false
- Log.e(TAG, "onFailure Kedua getFollowing: ${t.message}")
- }
- })
- }
- fun doneToastError(){
- _error.value = false
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement