package com.casic.smarttube.vm import android.content.Context import androidx.lifecycle.MutableLiveData import com.casic.smarttube.extensions.separateResponseCode import com.casic.smarttube.extensions.toErrorMessage import com.casic.smarttube.model.CommonResultModel import com.casic.smarttube.retrofit.RetrofitServiceManager import com.google.gson.Gson import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.base.BaseViewModel import com.pengxh.kt.lite.extensions.launch import com.pengxh.kt.lite.extensions.show import java.io.File class UploadImageViewModel : BaseViewModel() { private val gson = Gson() val commonResultData = MutableLiveData<CommonResultModel>() fun uploadImage(context: Context, image: File) = launch({ val response = RetrofitServiceManager.uploadImage(image) val responseCode = response.separateResponseCode() if (responseCode == 200) { commonResultData.value = gson.fromJson<CommonResultModel>( response, object : TypeToken<CommonResultModel>() {}.type ) } else { response.toErrorMessage().show(context) } }, { it.printStackTrace() }) }