package com.sw.dualscreen.viewmodel import com.sw.dualscreen.GlobalData import com.sw.dualscreen.GlobalKey import com.sw.dualscreen.model.response.EquipmentInfo import com.sw.dualscreen.utils.GsonUtils import com.sw.inbound.utils.SPUtil import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow import timber.log.Timber /** * 初始化的viewmodel */ class DeviceViewModel : BaseViewModel() { private val _deviceInfoResult = MutableStateFlow(null) val deviceInfoResult: StateFlow = _deviceInfoResult /** * 获取token */ fun getDeviceToken(deviceId: String = GlobalData.deviceId) { launchWithLoading { val response = repository.getDeviceToken(deviceId) if (parseResponse(response)) { val response1 = repository.getDeviceInfo(deviceId, response.result!!) if (parseResponse(response1)) { val equipmentInfo = response1.result if (equipmentInfo == null) return@launchWithLoading try { parseEquipmentInfo(equipmentInfo) SPUtil.getInstance() .put(GlobalKey.KEY_EQUIPMENT_INFO, GsonUtils.toJson(equipmentInfo)) _deviceInfoResult.value = true } catch (e: Exception) { Timber.e(e) } } } } } /** * 检查缓存数据 */ fun checkEquipmentInfo(): Boolean { val equipmentInfoStr = SPUtil.getInstance().get(GlobalKey.KEY_EQUIPMENT_INFO, "") if (equipmentInfoStr == null) { Timber.e("获取缓存设备信息失败") return false } val equipmentInfo = GsonUtils.fromJson(equipmentInfoStr, EquipmentInfo::class.java) if (equipmentInfo == null) { Timber.e("解析缓存设备信息失败") return false } try { parseEquipmentInfo(equipmentInfo) return true } catch (e: Exception) { Timber.e(e) return false } } }