- 注释掉全部 Compose UI 代码(ui/、theme/、NavController、MainActivity、InitActivity 等) - BorderExt、TextExt、ToastUtils、LoadingState 中的 Compose 逻辑全部注释 - LoadingState 保留 show()/hide() 空方法避免编译报错 - 注释 SensorScaleUtils、BaseViewModel、DeviceViewModel 中的 ToastUtils 调用 - BootReceiver、CrashHandler 中 MainActivity 替换为 HomeActivity - UserViewModel、PurchaseOrderActivity 删除残余 Compose import - build.gradle.kts 替换为非 Compose 的 activity-ktx 和 coil 依赖 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
81 lines
2.6 KiB
Kotlin
81 lines
2.6 KiB
Kotlin
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<Boolean?>(null)
|
|
val deviceInfoResult: StateFlow<Boolean?> = _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<EquipmentInfo>(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")
|
|
}
|
|
} |