Files
zd_servicing/servicing/src/main/java/com/za/common/GlobalData.kt
songzhiling 96a61fe09f refactor(sdk): 重构项目并添加 native 代码支持
- 移除了不必要的日志库 LogUtil
- 添加了高德地图服务并配置了相关权限
- 更新了 API 接口定义,统一添加了前缀
-重构了 AppConfig 类,使用 native代码获取配置信息
- 更新了项目构建配置,支持 native 代码编译
- 优化了部分代码结构,提高了代码的可维护性
2025-07-17 11:35:38 +08:00

226 lines
4.7 KiB
Kotlin

package com.za.common
import android.app.Application
import com.amap.api.location.AMapLocation
import com.blankj.utilcode.util.AppUtils
import com.tencent.mmkv.MMKV
import com.za.base.AppConfig
import com.za.base.Const
import com.za.bean.db.order.OrderInfo
import com.za.common.log.LogUtil
import com.za.room.RoomHelper
import com.za.room.db.user.DriverInfoBean
import com.za.service.location.ZdLocationManager
internal object GlobalData : GlobalLocalData() {
lateinit var application : Application
private val mmkv : MMKV by lazy { MMKV.defaultMMKV() }
var activityCount : Int = 0
var isMaster = AppUtils.getAppPackageName() == "com.za.rescue.dealer"
var token : String? = null
get() {
return mmkv.decodeString("TOKEN", null)
}
set(value) {
mmkv.encode("TOKEN", value)
field = value
}
var regid : String? = null
get() {
return mmkv.decodeString("regid", null)
}
set(value) {
mmkv.encode("regid", value)
field = value
}
var aesKey : String? = null
get() {
return mmkv.decodeString("AES_KEY", null)
}
set(value) {
mmkv.encode("AES_KEY", value)
field = value
}
//新订单是否已经被处理
var isHandlerNewOrder : Boolean? = false
var driverInfoBean : DriverInfoBean? = null
get() {
return try {
val driverInfo = MMKV.defaultMMKV()
.decodeParcelable("driverInfoBean", DriverInfoBean::class.java)
field = driverInfo
field
} catch (e : Exception) {
LogUtil.print("local_driverInfoBean", "获取司机信息失败: ${e.message}")
null
}
}
set(value) {
try {
MMKV.defaultMMKV().encode("driverInfoBean", value)
if (value != null) {
lastLoginBean = value
}
field = value
} catch (e : Exception) {
LogUtil.print("set local_driverInfoBean", "保存司机信息失败: ${e.message}")
}
}
var lastLoginBean : DriverInfoBean? = null
get() {
val driverInfoBean = mmkv.decodeParcelable("lastLoginBean", DriverInfoBean::class.java)
field = driverInfoBean
return driverInfoBean
}
set(value) {
mmkv.encode("lastLoginBean", value)
}
//是否已经完成登录后的人脸识别
var isLoginRecognition : Boolean? = null
get() {
return mmkv.decodeBool("isLoginRecognition", false)
}
set(value) {
mmkv.encode("isLoginRecognition", value == true)
field = value
}
var currentOrder : OrderInfo? = null
get() {
if (field == null) {
field = localCurrentOrder
}
return field
}
set(value) {
localCurrentOrder = value
field = value
}
var currentLocation : AMapLocation? = null
get() {
val location = mmkv.decodeParcelable("currentLocation", AMapLocation::class.java)
if (location != null && (System.currentTimeMillis()
.minus(location.time) < 5 * 60 * 1000)
) {
return location
} else {
ZdLocationManager.init(application)
return null
}
}
set(value) {
mmkv.encode("currentLocation", value)
field = value
}
var loginTime : Long? = null
get() {
return mmkv.decodeLong("loginTime", System.currentTimeMillis())
}
set(value) {
mmkv.encode("loginTime", value ?: System.currentTimeMillis())
field = value
}
var networkEnv : Int
get() {
return if (AppConfig.isRelease) {
mmkv.decodeInt("isReviewEnv", Const.NetEnv.Main)
} else {
mmkv.decodeInt("isReviewEnv", Const.NetEnv.CRM1)
}
}
set(value) {
mmkv.encode("isReviewEnv", value)
}
var isHasShowKeepAlive : Boolean
get() {
return mmkv.decodeBool("isShowKeepAlive", false)
}
set(value) {
mmkv.encode("isShowKeepAlive", value)
}
var lastUploadLogTime : Long
get() {
return mmkv.decodeLong("lastUploadLogTime", 0)
}
set(value) {
mmkv.encode("lastUploadLogTime", value)
}
var vehicleId : Int? = null
get() {
field = mmkv.decodeInt("vehicleId")
return field
}
set(value) {
mmkv.encode("vehicleId", value ?: 0)
field = value
}
var driverId : Int? = null
get() {
field = mmkv.decodeInt("driverId")
return field
}
set(value) {
mmkv.encode("driverId", value ?: 0)
field = value
}
var deviceId : String? = null
get() {
field = mmkv.decodeString("deviceId")
return field
}
set(value) {
mmkv.encode("deviceId", value)
field = value
}
fun clearUserCache() {
token = null
aesKey = null
currentLocation = null
driverInfoBean = null
loginTime = null
isLoginRecognition = null
isHasShowKeepAlive = false
lastUploadLogTime = 0
deviceId = null
vehicleId = null
driverId = null
if (AppConfig.isRelease) {
networkEnv = if (AppConfig.isRelease) {
Const.NetEnv.Main
} else {
Const.NetEnv.CRM1
}
}
}
fun clearAllOrderCache() {
currentOrder = null
RoomHelper.clearAll()
}
fun clearOrderCache(taskId : Int) {
RoomHelper.clearOrderFromTaskCode(taskId = taskId)
}
}