diff --git a/OCH/common/biz/src/main/java/com/mogo/och/biz/login/model/LoginModel.kt b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/model/LoginModel.kt index 0aa0f0470d..bc0d11533b 100644 --- a/OCH/common/biz/src/main/java/com/mogo/och/biz/login/model/LoginModel.kt +++ b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/model/LoginModel.kt @@ -30,6 +30,7 @@ import com.mogo.och.bridge.autopilot.location.OchLocationManager import com.mogo.och.common.module.biz.login.LoginStatusEnum import com.mogo.och.common.module.biz.login.LoginStatusEnum.Companion.valueOf import com.mogo.och.common.module.biz.login.LoginStatusManager +import com.mogo.och.common.module.manager.cache.ISpCallback import com.mogo.och.common.module.manager.cache.OchSPManager import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager import com.mogo.och.common.module.manager.socket.lan.bean.BusCacheKey @@ -70,6 +71,13 @@ object LoginModel { } } + private val snChangeListener = object :ISpCallback{ + override fun snChange() { + d(TAG, "sn 发生变化${OchSPManager.getSn()}") + queryCarStatus(false) + } + } + init { mContext = AbsMogoApplication.getApp() IntentManager.getInstance() @@ -89,10 +97,14 @@ object LoginModel { } fun setiTaxiLoginCallback(iTaxiLoginCallback: ITaxiLoginCallback?) { + d(TAG,"setiTaxiLoginCallback") + OchSPManager.addListener(TAG,snChangeListener) LoginModel.iTaxiLoginCallback = iTaxiLoginCallback } fun release() { + d(TAG,"release") + OchSPManager.remove(TAG) iTaxiLoginCallback = null } diff --git a/OCH/common/biz/src/main/java/com/mogo/och/biz/login/net/OchCommonServiceManager.kt b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/net/OchCommonServiceManager.kt index 520b89c17b..254316f008 100644 --- a/OCH/common/biz/src/main/java/com/mogo/och/biz/login/net/OchCommonServiceManager.kt +++ b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/net/OchCommonServiceManager.kt @@ -136,7 +136,6 @@ object OchCommonServiceManager { context: Context, callback: OchCommonServiceCallback? ) { - CallerLogger.d(TAG, "queryDriverServiceStatus:查询登录状态"); val sn = if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) { OchSPManager.getSn() @@ -148,8 +147,10 @@ object OchCommonServiceManager { return } if(FunctionBuildConfig.ochdebug){ + CallerLogger.d(TAG, "queryDriverServiceStatus:查询登录状态 ochdebug模式"); return } + CallerLogger.d(TAG, "queryDriverServiceStatus:查询登录状态${sn}"); if (ProjectUtils.isMogo()) { ochLoginServiceMogo.queryDriverServiceStatusAndLoginStatus( MoGoAiCloudClientConfig.getInstance().serviceAppId, diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/cache/ISpCallback.java b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/cache/ISpCallback.java new file mode 100644 index 0000000000..079c8c9490 --- /dev/null +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/cache/ISpCallback.java @@ -0,0 +1,6 @@ +package com.mogo.och.common.module.manager.cache; + + +public interface ISpCallback { + default void snChange(){} +} diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/cache/OchSPManager.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/cache/OchSPManager.kt index 75316bb287..000c7fcc7a 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/cache/OchSPManager.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/manager/cache/OchSPManager.kt @@ -1,8 +1,32 @@ package com.mogo.och.common.module.manager.cache import com.mogo.commons.storage.SharedPrefsMgr +import com.mogo.eagle.core.function.api.cloud.IMoGoCloudListener +import com.mogo.eagle.core.function.call.cloud.CallerCloudListenerManager +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger +import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_OCHCOMMON +import com.mogo.och.common.module.utils.CallerBase +import kotlin.properties.Delegates -object OchSPManager { +object OchSPManager : IMoGoCloudListener, CallerBase() { + + const val TAG = "${M_OCHCOMMON}OchSPManager" + + private var ochSN: String by Delegates.observable("") { _, oldValue, newValue -> + if (oldValue != newValue) { + M_LISTENERS.forEach { + it.value.snChange() + } + } + } + private var ochToken:String by Delegates.observable("") { _, oldValue, newValue -> + if (oldValue != newValue) { + } + } + + init { + CallerCloudListenerManager.addListener(TAG,this) + } @JvmStatic fun getSn(): String? { @@ -22,4 +46,18 @@ object OchSPManager { return SharedPrefsMgr.getInstance().getString(key,default) } + override fun tokenGot(token: String, sn: String) { + CallerLogger.d(TAG,"获取token和sn:$sn") + this.ochSN = sn + this.ochToken = token + } + + override fun doSomeAfterAddListener(tag: String, listener: ISpCallback) { + super.doSomeAfterAddListener(tag, listener) + if(ochSN.isNotEmpty()){ + M_LISTENERS.forEach { + it.value.snChange() + } + } + } } \ No newline at end of file