diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/binding/BindingCarManager.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/binding/BindingCarManager.kt index 6d75602abd..fc35aaddcb 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/binding/BindingCarManager.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/binding/BindingCarManager.kt @@ -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 + ) } } }