[6.2.0] fix binding car null problem

This commit is contained in:
zhongchao
2023-11-29 11:44:26 +08:00
parent 31feb6799e
commit 11f91bfd0c

View File

@@ -1,23 +1,26 @@
package com.zhjt.mogo_core_function_devatools.binding
import android.annotation.*
import android.annotation.SuppressLint
import android.content.Context
import android.text.TextUtils
import com.mogo.cloud.passport.MoGoAiCloudClientConfig
import com.mogo.commons.constants.SharedPrefsConstants
import com.mogo.eagle.core.data.app.AppConfigInfo.role
import com.mogo.eagle.core.data.deva.bindingcar.ModifyBindingcarInfo
import com.mogo.eagle.core.data.config.FunctionBuildConfig
import com.mogo.eagle.core.data.config.HmiBuildConfig
import com.mogo.eagle.core.data.deva.bindingcar.ModifyBindingcarInfo
import com.mogo.eagle.core.data.obu.MogoObuConst
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotCarConfigListener
import com.mogo.eagle.core.function.api.cloud.IMoGoCloudListener
import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotCarConfigListenerManager
import com.mogo.eagle.core.function.call.cloud.CallerCloudListenerManager
import com.mogo.eagle.core.function.call.obu.CallerObuApiManager
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils.isDriver
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils.isPassenger
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_DEVA
import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr
import com.zhjt.mogo_core_function_devatools.trace.TraceManager
import com.zhjt.mogo_core_function_devatools.upgrade.IPCUpgradeManager.Companion.ipcUpgradeManager
import com.zhjt.mogo_core_function_devatools.upgrade.ObuUpgradeAppNetWorkManager
import com.zhjt.mogo_core_function_devatools.upgrade.UpgradeAppNetWorkManager
@@ -27,7 +30,7 @@ import mogo.telematics.pad.MessagePad
* 车辆绑定
*/
@SuppressLint("StaticFieldLeak")
object BindingCarManager : IMoGoAutopilotCarConfigListener {
object BindingCarManager : IMoGoAutopilotCarConfigListener, IMoGoCloudListener {
private const val TAG = "BindingCarManager"
@@ -43,11 +46,18 @@ object BindingCarManager : IMoGoAutopilotCarConfigListener {
private var mWidevineIDWithMd5 //google 数字版权
: String? = null
@Volatile
private var bind = false
@Volatile
private var carConfigResp: MessagePad.CarConfigResp? = null
fun init(context: Context) {
mContext = context
SharedPrefsMgr.getInstance(mContext!!).putLong("typeDriver", 0)
SharedPrefsMgr.getInstance(mContext!!).putLong("typePassenger", 0)
CallerAutopilotCarConfigListenerManager.addListener(TAG, this)
CallerCloudListenerManager.addListener(TraceManager.TAG, this)
ipcUpgradeManager.init(context)
}
@@ -59,12 +69,28 @@ object BindingCarManager : IMoGoAutopilotCarConfigListener {
override fun onAutopilotCarConfig(carConfigResp: MessagePad.CarConfigResp) {
CallerLogger.d("${M_DEVA}${TAG}", "onAutopilotCarConfig ----------> ")
if (!TextUtils.isEmpty(carConfigResp.macAddress)) {
CallerLogger.d("${M_DEVA}${TAG}",
"onAutopilotCarConfig carConfigResp.macAddress = ${carConfigResp.macAddress} ")
CallerLogger.d(
"${M_DEVA}${TAG}",
"onAutopilotCarConfig carConfigResp.macAddress = ${carConfigResp.macAddress} "
)
if (MoGoAiCloudClientConfig.getInstance().sn.isNullOrEmpty()) {
return
}
this.carConfigResp = carConfigResp
getBindingCarInfo(carConfigResp.macAddress, MoGoAiCloudClientConfig.getInstance().sn)
}
}
override fun tokenGot(token: String, sn: String) {
super.tokenGot(token, sn)
if (bind) {
return
}
this.carConfigResp?.let {
getBindingCarInfo(it.macAddress, sn)
}
}
/**
* 获取macaddress,每次连接请求一次
*
@@ -85,7 +111,8 @@ object BindingCarManager : IMoGoAutopilotCarConfigListener {
queryObuUpgrade(obuVersion)
}
}
CallerLogger.d("${M_DEVA}${TAG}",
CallerLogger.d(
"${M_DEVA}${TAG}",
"getBindingcarInfo macAddress = $macAddress--widevineIDWithMd5 = $widevineIDWithMd5 ---screenType = $screenType"
)
SharedPrefsMgr.getInstance(mContext!!).putString(SharedPrefsConstants.APP_MAC, macAddress)
@@ -95,6 +122,7 @@ object BindingCarManager : IMoGoAutopilotCarConfigListener {
} else if (screenType == 2) { //乘客屏
passengerScreen(macAddress, widevineIDWithMd5)
}
bind = true
}
/**
@@ -119,7 +147,12 @@ object BindingCarManager : IMoGoAutopilotCarConfigListener {
}
fun modifyCarInfo(callBack: (ModifyBindingcarInfo) -> Unit) {
BindingCarNetWorkManager.instance.modifyBindingCar(mAddress, mWidevineIDWithMd5, callBack, screenType)
BindingCarNetWorkManager.instance.modifyBindingCar(
mAddress,
mWidevineIDWithMd5,
callBack,
screenType
)
}
private fun driverScreen(macAddress: String, widevineIDWithMd5: String) {
@@ -175,10 +208,10 @@ object BindingCarManager : IMoGoAutopilotCarConfigListener {
* 查询app是否需要升级
*/
fun queryAppUpgrade() {
CallerLogger.d(M_DEVA+"UPGRADE", "---- 1 ----")
CallerLogger.d(M_DEVA + "UPGRADE", "---- 1 ----")
var macAddress = mAddress
if (TextUtils.isEmpty(macAddress)) {
CallerLogger.d(M_DEVA+"UPGRADE", "---- 2 ----")
CallerLogger.d(M_DEVA + "UPGRADE", "---- 2 ----")
macAddress = SharedPrefsMgr.getInstance(mContext!!)
.getString(SharedPrefsConstants.APP_MAC)
}
@@ -186,7 +219,7 @@ object BindingCarManager : IMoGoAutopilotCarConfigListener {
if (!TextUtils.equals(macAddress, mAddress)) {
mAddress = macAddress
}
CallerLogger.d(M_DEVA+"UPGRADE", "---- 3 ----[mac: $macAddress]")
CallerLogger.d(M_DEVA + "UPGRADE", "---- 3 ----[mac: $macAddress]")
UpgradeAppNetWorkManager.instance
?.getAppUpgradeInfo(mContext, macAddress, role.toString() + "")
}
@@ -198,10 +231,20 @@ object BindingCarManager : IMoGoAutopilotCarConfigListener {
*/
fun queryObuUpgrade(obuVersionName: String) {
mObuVersion = obuVersionName
CallerLogger.d("${M_DEVA}${MogoObuConst.TAG_UPGRADE_OBU}", "screenType = $screenType ----role = $role")
CallerLogger.d(
"${M_DEVA}${MogoObuConst.TAG_UPGRADE_OBU}",
"screenType = $screenType ----role = $role"
)
if (screenType == 1) {
CallerLogger.d("${M_DEVA}${MogoObuConst.TAG_UPGRADE_OBU}","queryObuUpgrade isConnected = ${CallerObuApiManager.isConnected()} --- mAddress = $mAddress")
ObuUpgradeAppNetWorkManager.instance?.getObuUpgradeInfo(if(!mAddress.isNullOrEmpty()) mAddress else SharedPrefsMgr.getInstance(mContext!!).getString(SharedPrefsConstants.APP_MAC), obuVersionName)
CallerLogger.d(
"${M_DEVA}${MogoObuConst.TAG_UPGRADE_OBU}",
"queryObuUpgrade isConnected = ${CallerObuApiManager.isConnected()} --- mAddress = $mAddress"
)
ObuUpgradeAppNetWorkManager.instance?.getObuUpgradeInfo(
if (!mAddress.isNullOrEmpty()) mAddress else SharedPrefsMgr.getInstance(
mContext!!
).getString(SharedPrefsConstants.APP_MAC), obuVersionName
)
}
}
}