package com.casic.smarttube.vm import androidx.lifecycle.MutableLiveData import com.casic.smarttube.base.BaseApplication import com.casic.smarttube.extensions.separateResponseCode import com.casic.smarttube.extensions.toErrorMessage import com.casic.smarttube.model.AlarmListModel import com.casic.smarttube.utils.retrofit.RetrofitServiceManager import com.google.gson.Gson import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.extensions.launch import com.pengxh.kt.lite.extensions.show import com.pengxh.kt.lite.vm.BaseViewModel class AlarmViewModel : BaseViewModel() { private val gson = Gson() val listModel = MutableLiveData<AlarmListModel>() fun obtainAlarmListByPage( keywords: String, alarmType: String, areaId: String, alarmContentType: String, beginTime: String, endTime: String, status: String, page: Int ) = launch({ val response = RetrofitServiceManager.obtainAlarmListByPage( keywords, alarmType, areaId, alarmContentType, beginTime, endTime, status, page ) val responseCode = response.separateResponseCode() if (responseCode == 200) { listModel.value = gson.fromJson<AlarmListModel>( response, object : TypeToken<AlarmListModel>() {}.type ) } else { response.toErrorMessage().show(BaseApplication.obtainInstance()) } }, { it.printStackTrace() }) }