
- 移除了不必要的日志库 LogUtil - 添加了高德地图服务并配置了相关权限 - 更新了 API 接口定义,统一添加了前缀 -重构了 AppConfig 类,使用 native代码获取配置信息 - 更新了项目构建配置,支持 native 代码编译 - 优化了部分代码结构,提高了代码的可维护性
226 lines
4.7 KiB
Kotlin
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)
|
|
}
|
|
} |