Newer
Older
CasicSmartTube / app / src / main / java / com / casic / smarttube / vm / AlarmViewModel.kt
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()
    })
}