rifki_cs29

OrganicViewModel

Oct 27th, 2020
291
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Kotlin 2.42 KB | None | 0 0
  1. package com.pupukkaltim.leader.viewmodel
  2.  
  3. import android.util.Log
  4. import androidx.lifecycle.LiveData
  5. import androidx.lifecycle.MutableLiveData
  6. import androidx.lifecycle.ViewModel
  7. import com.androidnetworking.AndroidNetworking
  8. import com.androidnetworking.common.Priority
  9. import com.androidnetworking.error.ANError
  10. import com.androidnetworking.interfaces.JSONObjectRequestListener
  11. import com.pupukkaltim.leader.helper.Event
  12. import com.pupukkaltim.leader.model.Organic
  13. import org.json.JSONObject
  14.  
  15. class OrganicViewModel : ViewModel() {
  16.     val bawahanOrganic = MutableLiveData<ArrayList<Organic>>()
  17.     val errorMessage = MutableLiveData<Event<String>>()
  18.  
  19.     fun setBawahanOrganic() {
  20.         val listBawahanOrganic = ArrayList<Organic>()
  21.  
  22.         AndroidNetworking.get("http://192.168.43.102/leader-api/index.php/leader")
  23.             .setPriority(Priority.LOW)
  24.             .addHeaders("User-Agent", "request")
  25.             .build()
  26.             .getAsJSONObject(object : JSONObjectRequestListener {
  27.                 override fun onResponse(response: JSONObject) {
  28.                     try {
  29.                         val jsonArray = response.getJSONArray("data")
  30.                         if (jsonArray.length() == 0){
  31.                             errorMessage.value = Event("Tidak Ada Bawahan Organic")
  32.                         }
  33.  
  34.                         for(i in 0 until jsonArray.length()){
  35.                             val jsonObject = jsonArray.getJSONObject(i)
  36.                             val organic = Organic()
  37.                             organic.name = jsonObject.getString("nama")
  38.                             organic.npk = jsonObject.getString("npk")
  39.                             organic.grade = jsonObject.getString("grade")
  40.                             organic.avatar = jsonObject.getString("avatar")
  41.                             listBawahanOrganic.add(organic)
  42.                         }
  43.                         bawahanOrganic.postValue(listBawahanOrganic)
  44.                     } catch (e: Exception) {
  45.                         e.printStackTrace()
  46.                     }
  47.                 }
  48.  
  49.                 override fun onError(anError: ANError) {
  50.                     Log.d("onFailure", anError.toString())
  51.  
  52.                     errorMessage.value = Event("Periksa Koneksi Perangkat Anda")
  53.                 }
  54.             })
  55.     }
  56.  
  57.     fun getBawahanOrganic(): LiveData<ArrayList<Organic>> {
  58.         return bawahanOrganic
  59.     }
  60. }
Add Comment
Please, Sign In to add comment