diff --git a/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt index d8bd618..3e88675 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt @@ -76,12 +76,12 @@ ActivityStackManager.addActivity(this) //获取报警类型列表 - systemViewModel.dictLiveData.observe(this) { - if (it.code == 200) { - dictModels = it.data - } - } - systemViewModel.getSystemDict(this, "alarmType") + systemViewModel.getSystemDict( + "alarmType", + onLoading = {}, + onSuccess = { dictModels = it.data }, + onFailed = { it.show(this) } + ) getAlarmListByPage() } diff --git a/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt index d8bd618..3e88675 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/AlarmListActivity.kt @@ -76,12 +76,12 @@ ActivityStackManager.addActivity(this) //获取报警类型列表 - systemViewModel.dictLiveData.observe(this) { - if (it.code == 200) { - dictModels = it.data - } - } - systemViewModel.getSystemDict(this, "alarmType") + systemViewModel.getSystemDict( + "alarmType", + onLoading = {}, + onSuccess = { dictModels = it.data }, + onFailed = { it.show(this) } + ) getAlarmListByPage() } diff --git a/app/src/main/java/com/casic/br/operationsite/vm/SystemViewModel.kt b/app/src/main/java/com/casic/br/operationsite/vm/SystemViewModel.kt index 44035e9..3d9dc78 100644 --- a/app/src/main/java/com/casic/br/operationsite/vm/SystemViewModel.kt +++ b/app/src/main/java/com/casic/br/operationsite/vm/SystemViewModel.kt @@ -1,36 +1,28 @@ package com.casic.br.operationsite.vm -import android.content.Context -import androidx.lifecycle.MutableLiveData -import com.casic.br.operationsite.extensions.getResponseCode -import com.casic.br.operationsite.extensions.getResponseMessage +import androidx.lifecycle.ViewModel +import com.casic.br.operationsite.extensions.getResponseHeader import com.casic.br.operationsite.model.SystemDictModel import com.casic.br.operationsite.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 com.pengxh.kt.lite.extensions.unpackingResponse -class SystemViewModel : BaseViewModel() { - - private val gson = Gson() - val dictLiveData = MutableLiveData() - - fun getSystemDict(context: Context, dictCode: String) = launch({ +class SystemViewModel : ViewModel() { + fun getSystemDict( + dictCode: String, + onLoading: () -> Unit, + onSuccess: (SystemDictModel) -> Unit, + onFailed: (String) -> Unit + ) = launch({ + onLoading() val response = RetrofitServiceManager.getSystemDict(dictCode) - when (response.getResponseCode()) { - 200 -> { - dictLiveData.value = gson.fromJson( - response, object : TypeToken() {}.type - ) - } - - else -> { - response.getResponseMessage().show(context) - } + val header = response.getResponseHeader() + if (header.first == 200) { + onSuccess(unpackingResponse(response)) + } else { + onFailed(header.second) } }, { - it.printStackTrace() + onFailed(it.message ?: "Unknown error") }) } \ No newline at end of file