package com.sw.inbound.viewmodel import com.sw.inbound.GlobalData import com.sw.inbound.GlobalKey import com.sw.inbound.model.response.EquipmentInfo import com.sw.inbound.repository.RemoteRepository import com.sw.inbound.utils.GsonUtils import com.sw.inbound.utils.SPUtil //import com.sw.inbound.utils.ToastUtils import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow import timber.log.Timber import javax.inject.Inject import kotlin.jvm.java /** * 初始化的viewmodel */ @HiltViewModel class DeviceViewModel @Inject constructor( private val repository: RemoteRepository ) : BaseViewModel(repository) { 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) } } else { //ToastUtils.showToast("获取设备信息失败") } } } } /** * 检查缓存数据 */ 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 } } override fun handleSensorScale(weight: Double) { TODO("Not yet implemented") } }