From 106e9011b329ecc92c71163ea30e6e8c677ac70f Mon Sep 17 00:00:00 2001 From: tongchenfei Date: Mon, 8 Jun 2020 10:25:40 +0800 Subject: [PATCH] bug fix --- .../module/back/BackToMainHomeManager.java | 5 ++++- .../entrance/EntrancePresenter.java | 22 +++++++++---------- .../com/mogo/module/share/ShareControl.java | 2 ++ .../module/share/ShareVoiceCmdReceiver.kt | 22 +++++++++++++------ .../module/share/manager/SeekHelpManager.kt | 14 +++++------- .../share/manager/ServiceApisManager.kt | 17 ++++++++++++++ .../mogo/module/share/manager/UploadHelper.kt | 2 +- 7 files changed, 56 insertions(+), 28 deletions(-) create mode 100644 modules/mogo-module-share/src/main/java/com/mogo/module/share/manager/ServiceApisManager.kt diff --git a/modules/mogo-module-back/src/main/java/com/mogo/module/back/BackToMainHomeManager.java b/modules/mogo-module-back/src/main/java/com/mogo/module/back/BackToMainHomeManager.java index 20818c844d..4ded331a36 100644 --- a/modules/mogo-module-back/src/main/java/com/mogo/module/back/BackToMainHomeManager.java +++ b/modules/mogo-module-back/src/main/java/com/mogo/module/back/BackToMainHomeManager.java @@ -34,7 +34,10 @@ public class BackToMainHomeManager { } public static void backToLauncher() { - + if (mStatusManager == null) { + Logger.e(TAG,"未初始化完成"); + return; + } if ( mStatusManager.isMainPageOnResume() ) { if ( mStatusManager.isSearchUIShow() ) { mFragmentManager.clearAll(); diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntrancePresenter.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntrancePresenter.java index 5a921c613f..eab934bfcf 100644 --- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntrancePresenter.java +++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntrancePresenter.java @@ -14,7 +14,6 @@ import com.mogo.commons.mvp.Presenter; import com.mogo.commons.voice.AIAssist; import com.mogo.commons.voice.IMogoVoiceCmdCallBack; import com.mogo.module.authorize.authprovider.module.IMogoAuthorizeModuleManager; -import com.mogo.module.authorize.model.BaseResponse; import com.mogo.module.extensions.ExtensionsModuleConst; import com.mogo.module.extensions.net.UserInfoNetApiServices; import com.mogo.module.extensions.userinfo.UserInfo; @@ -22,6 +21,7 @@ import com.mogo.module.extensions.userinfo.UserInfoConstant; import com.mogo.module.extensions.userinfo.UserInfoResponse; import com.mogo.module.extensions.utils.ExtensionsConfig; import com.mogo.module.share.ShareControl; +import com.mogo.module.share.manager.ServiceApisManager; import com.mogo.service.IMogoServiceApis; import com.mogo.service.MogoServicePaths; import com.mogo.service.analytics.IMogoAnalytics; @@ -119,7 +119,7 @@ public class EntrancePresenter extends Presenter { if (mIMogoAuthorizeModuleManager.needAuthorize(AUTHORIZE_TYPE_LAUNCHER_SHARE)) { mIMogoAuthorizeModuleManager.invokeAuthorization(AUTHORIZE_TYPE_LAUNCHER_SHARE); } else { - ShareControl.getInstance(mContext).dismissDialog(); + ServiceApisManager.serviceApis.getShareManager().dismissShareDialog(); } } else if (cmd.equals(ExtensionsModuleConst.UPLOAD_ROAD_BLOCK)) { //上报拥堵 if (mIMogoAuthorizeModuleManager.needAuthorize(AUTHORIZE_TYPE_LAUNCHER_SHARE)) { @@ -227,7 +227,7 @@ public class EntrancePresenter extends Presenter { if (mIMogoAuthorizeModuleManager.needAuthorize(AUTHORIZE_TYPE_LAUNCHER_SHARE)) { mIMogoAuthorizeModuleManager.invokeAuthorization(AUTHORIZE_TYPE_LAUNCHER_SHARE); } else { - ShareControl.getInstance(mContext).showDialog(); + ServiceApisManager.serviceApis.getShareManager().dismissShareDialog(); Log.d(TAG, "mogoIntentListener 我要分享 ----> "); traceData("2"); } @@ -258,7 +258,7 @@ public class EntrancePresenter extends Presenter { if (mIMogoAuthorizeModuleManager.needAuthorize(AUTHORIZE_TYPE_LAUNCHER_SHARE)) { mIMogoAuthorizeModuleManager.invokeAuthorization(AUTHORIZE_TYPE_LAUNCHER_SHARE); } else { - ShareControl.getInstance(mContext).dismissDialog(); + ServiceApisManager.serviceApis.getShareManager().dismissShareDialog(); Log.d(TAG, "mogoIntentListener 关闭分享框 唤醒 ----> "); } } else if (intentStr.equals(ExtensionsModuleConst.NO_REPLY_SHARE_DIALOG_CLOSE)) { @@ -266,7 +266,7 @@ public class EntrancePresenter extends Presenter { if (mIMogoAuthorizeModuleManager.needAuthorize(AUTHORIZE_TYPE_LAUNCHER_SHARE)) { mIMogoAuthorizeModuleManager.invokeAuthorization(AUTHORIZE_TYPE_LAUNCHER_SHARE); } else { - ShareControl.getInstance(mContext).dismissDialog(); + ServiceApisManager.serviceApis.getShareManager().dismissShareDialog(); Logger.d(TAG, "mogoIntentListener 两次未回复关闭对话框"); } } else if (intentStr.equals(ExtensionsModuleConst.UPLOAD_ROAD_CONDITION)) { //上报路况 @@ -290,7 +290,7 @@ public class EntrancePresenter extends Presenter { if (!TextUtils.isEmpty(mVoiceCmdType)) { if (mVoiceCmdType.equals(ExtensionsModuleConst.CANCLE_SHARE) || mVoiceCmdType.equals(ExtensionsModuleConst.CLOSE) || mVoiceCmdType.equals(ExtensionsModuleConst.SHARE_DIALOG_CLOSE) || mVoiceCmdType.equals(ExtensionsModuleConst.NO_REPLY_SHARE_DIALOG_CLOSE)) { //关闭分享弹框 - ShareControl.getInstance(mContext).dismissDialog(); + ServiceApisManager.serviceApis.getShareManager().dismissShareDialog(); } else if (mVoiceCmdType.equals(ExtensionsModuleConst.GO_TO_SHARE)) { //打开分享弹框 if (!TextUtils.isEmpty(mVoiceCmdShareType)) { if (mVoiceCmdShareType.equals("封路")) { @@ -304,7 +304,7 @@ public class EntrancePresenter extends Presenter { uploadTrfficCheck(); } } else { - ShareControl.getInstance(mContext).showDialog(); + ServiceApisManager.serviceApis.getShareManager().showShareDialog(); Log.d(TAG, "handleNeedAuthorizeCmd 我要分享 ----> "); traceData("2"); } @@ -333,7 +333,7 @@ public class EntrancePresenter extends Presenter { sendShareReceiver(REPORT_TANLU_BLOCK); Logger.d("EntrancePresenter", "mogoIntentListener 上报路况 ----> "); traceTypeData("1"); - ShareControl.getInstance(mContext).dismissDialog(); + ServiceApisManager.serviceApis.getShareManager().dismissShareDialog(); } private void uploadTrfficCheck() { @@ -341,7 +341,7 @@ public class EntrancePresenter extends Presenter { sendShareReceiver(REPORT_TANLU_TRAFFIC_CHECK); Logger.d("EntrancePresenter", "mogoIntentListener 分享交通检查 ----> "); traceTypeData("3"); - ShareControl.getInstance(mContext).dismissDialog(); + ServiceApisManager.serviceApis.getShareManager().dismissShareDialog(); } private void uploadRoadClosed() { @@ -349,7 +349,7 @@ public class EntrancePresenter extends Presenter { sendShareReceiver(REPORT_TANLU_CLOSURE); Logger.d("EntrancePresenter", "mogoIntentListener 分享封路 ----> "); traceTypeData("4"); - ShareControl.getInstance(mContext).dismissDialog(); + ServiceApisManager.serviceApis.getShareManager().dismissShareDialog(); } /** @@ -368,7 +368,7 @@ public class EntrancePresenter extends Presenter { // intent.setData(Uri.parse("freshthing://com.zhidao.fresh.things/shareOilPrice")); // getContext().startActivity(intent); // traceTypeData("2"); -// ShareControl.getInstance(mContext).dismissDialog(); +// ServiceApisManager.serviceApis.getShareManager().dismissShareDialog(); } /** diff --git a/modules/mogo-module-share/src/main/java/com/mogo/module/share/ShareControl.java b/modules/mogo-module-share/src/main/java/com/mogo/module/share/ShareControl.java index c20c764113..a5b5aba610 100644 --- a/modules/mogo-module-share/src/main/java/com/mogo/module/share/ShareControl.java +++ b/modules/mogo-module-share/src/main/java/com/mogo/module/share/ShareControl.java @@ -5,6 +5,7 @@ import android.content.Context; import com.alibaba.android.arouter.facade.annotation.Route; import com.alibaba.android.arouter.launcher.ARouter; import com.mogo.module.share.dialog.LaucherShareDialog; +import com.mogo.module.share.manager.ServiceApisManager; import com.mogo.service.IMogoServiceApis; import com.mogo.service.MogoServicePaths; import com.mogo.service.share.IMogoShareManager; @@ -37,5 +38,6 @@ public class ShareControl implements IMogoShareManager { @Override public void init(Context context) { mContext = context; + ServiceApisManager.INSTANCE.init(context); } } diff --git a/modules/mogo-module-share/src/main/java/com/mogo/module/share/ShareVoiceCmdReceiver.kt b/modules/mogo-module-share/src/main/java/com/mogo/module/share/ShareVoiceCmdReceiver.kt index 0d99d1655b..b8695ceb5d 100644 --- a/modules/mogo-module-share/src/main/java/com/mogo/module/share/ShareVoiceCmdReceiver.kt +++ b/modules/mogo-module-share/src/main/java/com/mogo/module/share/ShareVoiceCmdReceiver.kt @@ -5,6 +5,7 @@ import android.content.Context import android.content.Intent import com.mogo.module.share.constant.ShareConstants import com.mogo.module.share.constant.ShareConstants.* +import com.mogo.module.share.manager.ServiceApisManager import com.mogo.module.share.manager.UploadHelper import com.mogo.utils.logger.Logger import org.json.JSONObject @@ -24,7 +25,8 @@ class ShareVoiceCmdReceiver : BroadcastReceiver() { val seekHelp = Intent(context, VoiceCmdService::class.java) seekHelp.putExtra(ShareConstants.VOICE_CMD_SERVICE_EVENT_KEY, ShareConstants.VOICE_CMD_SERVICE_SEEK_HELP) context.startService(seekHelp) - ShareControl.getInstance(context).dismissDialog() + ServiceApisManager.serviceApis.shareManager.dismissShareDialog() +// ShareControl.getInstance(context).dismissDialog() } VOICE_CMD_GO_TO_SHARE ->{ val ob = JSONObject(intent.getStringExtra("data") ?: "").opt("ob") @@ -32,23 +34,28 @@ class ShareVoiceCmdReceiver : BroadcastReceiver() { when (ob) { "积水"->{ UploadHelper.upload(context, TYPE_STAGNANT_WATER) - ShareControl.getInstance(context).dismissDialog() + ServiceApisManager.serviceApis.shareManager.dismissShareDialog() +// ShareControl.getInstance(context).dismissDialog() } "积冰"->{ UploadHelper.upload(context, TYPE_ROAD_ICY) - ShareControl.getInstance(context).dismissDialog() + ServiceApisManager.serviceApis.shareManager.dismissShareDialog() +// ShareControl.getInstance(context).dismissDialog() } "雾"->{ UploadHelper.upload(context, TYPE_DENSE_FOG) - ShareControl.getInstance(context).dismissDialog() + ServiceApisManager.serviceApis.shareManager.dismissShareDialog() +// ShareControl.getInstance(context).dismissDialog() } "交通事故"->{ UploadHelper.upload(context, TYPE_ACCIDENT) - ShareControl.getInstance(context).dismissDialog() + ServiceApisManager.serviceApis.shareManager.dismissShareDialog() +// ShareControl.getInstance(context).dismissDialog() } "施工"->{ UploadHelper.upload(context, TYPE_ROAD_CONSTRUCTION) - ShareControl.getInstance(context).dismissDialog() + ServiceApisManager.serviceApis.shareManager.dismissShareDialog() +// ShareControl.getInstance(context).dismissDialog() } } } @@ -59,7 +66,8 @@ class ShareVoiceCmdReceiver : BroadcastReceiver() { // 上报实时路况 Logger.d(TAG, "分享框准备触发上报实时路况") UploadHelper.upload(context, TYPE_REAL_TIME_TRAFFIC) - ShareControl.getInstance(context).dismissDialog() + ServiceApisManager.serviceApis.shareManager.dismissShareDialog() +// ShareControl.getInstance(context).dismissDialog() } } } diff --git a/modules/mogo-module-share/src/main/java/com/mogo/module/share/manager/SeekHelpManager.kt b/modules/mogo-module-share/src/main/java/com/mogo/module/share/manager/SeekHelpManager.kt index 70050fb729..9a9c1d949f 100644 --- a/modules/mogo-module-share/src/main/java/com/mogo/module/share/manager/SeekHelpManager.kt +++ b/modules/mogo-module-share/src/main/java/com/mogo/module/share/manager/SeekHelpManager.kt @@ -7,7 +7,6 @@ import com.mogo.commons.data.BaseData import com.mogo.commons.network.SubscribeImpl import com.mogo.commons.voice.AIAssist import com.mogo.commons.voice.IMogoVoiceCmdCallBack -import com.mogo.module.share.ShareControl import com.mogo.module.share.bean.SeekRecord import com.mogo.module.share.bean.SeekRequest import com.mogo.module.share.bean.getJson @@ -20,7 +19,6 @@ import com.mogo.utils.storage.SharedPrefsMgr import com.zhidao.auto.platform.util.DeviceUtil import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.schedulers.Schedulers -import java.util.* /** * 故障求助管理类,相关故障求助操作的具体实现类 @@ -73,7 +71,6 @@ object SeekHelpManager { } - /** * 寻求帮助,是开始故障求助的入口 * 由于当前需求仅需要提供这一个方法,所以context的初始化放到了此方法,后面如果有增加,需要把这部分提出去 @@ -88,7 +85,8 @@ object SeekHelpManager { this.context = context } aiAssist = AIAssist.getInstance(context) - isSeekHelp = ShareControl.getInstance(SeekHelpManager.context).mogoServiceApis.statusManagerApi.isSeekHelping + + isSeekHelp = ServiceApisManager.serviceApis.statusManagerApi.isSeekHelping Logger.d(TAG, "开始故障求助上报---${isSeekHelp}") seekListenerList.add(seekHelpListener) when { @@ -157,11 +155,11 @@ object SeekHelpManager { val seekRequest = SeekRequest(DeviceUtil.getSn()) val param = mutableMapOf("data" to seekRequest.getJson()) - ShareControl.getInstance(context).mogoServiceApis.networkApi.create(ShareApiService::class.java, HttpConstant.getNetHost()).sendHelpSignal(param).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(object : SubscribeImpl(RequestOptions.create(context)) { + ServiceApisManager.serviceApis.networkApi.create(ShareApiService::class.java, HttpConstant.getNetHost()).sendHelpSignal(param).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(object : SubscribeImpl(RequestOptions.create(context)) { override fun onSuccess(o: BaseData?) { super.onSuccess(o) // 接口请求成功,内部同步v2x状态,通知adas,改变自车图标 - ShareControl.getInstance(context).mogoServiceApis.statusManagerApi.setSeekHelping("ShareDialog", true) + ServiceApisManager.serviceApis.statusManagerApi.setSeekHelping("ShareDialog", true) SharedPrefsMgr.getInstance(context!!).putLong("seek_help_time", System.currentTimeMillis()) isSeekHelp = true aiAssist?.speakTTSVoice("已发布求助信息,将为你通知其他车主") @@ -213,11 +211,11 @@ object SeekHelpManager { fun debugCancelSeek() { val seekRequest = SeekRequest(DeviceUtil.getSn(), 0) val param = mutableMapOf("data" to seekRequest.getJson()) - ShareControl.getInstance(context).mogoServiceApis.networkApi.create(ShareApiService::class.java, HttpConstant.getNetHost()).sendHelpSignal(param).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(object : SubscribeImpl(RequestOptions.create(context)) { + ServiceApisManager.serviceApis.networkApi.create(ShareApiService::class.java, HttpConstant.getNetHost()).sendHelpSignal(param).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(object : SubscribeImpl(RequestOptions.create(context)) { override fun onSuccess(o: BaseData?) { super.onSuccess(o) // 接口请求成功,内部同步v2x状态,通知adas,改变自车图标 - ShareControl.getInstance(context).mogoServiceApis.statusManagerApi.setSeekHelping("ShareDialog", false) + ServiceApisManager.serviceApis.statusManagerApi.setSeekHelping("ShareDialog", false) isSeekHelp = false } diff --git a/modules/mogo-module-share/src/main/java/com/mogo/module/share/manager/ServiceApisManager.kt b/modules/mogo-module-share/src/main/java/com/mogo/module/share/manager/ServiceApisManager.kt new file mode 100644 index 0000000000..74c0ab300d --- /dev/null +++ b/modules/mogo-module-share/src/main/java/com/mogo/module/share/manager/ServiceApisManager.kt @@ -0,0 +1,17 @@ +package com.mogo.module.share.manager + +import android.content.Context +import com.alibaba.android.arouter.launcher.ARouter +import com.mogo.service.IMogoServiceApis +import com.mogo.service.MogoServicePaths + +/** + * 全局管理IMogoServiceApis + */ +object ServiceApisManager { + lateinit var serviceApis: IMogoServiceApis + + fun init(context: Context) { + serviceApis = ARouter.getInstance().build(MogoServicePaths.PATH_SERVICE_APIS).navigation(context) as IMogoServiceApis + } +} \ No newline at end of file diff --git a/modules/mogo-module-share/src/main/java/com/mogo/module/share/manager/UploadHelper.kt b/modules/mogo-module-share/src/main/java/com/mogo/module/share/manager/UploadHelper.kt index 906c291da8..e53473bacd 100644 --- a/modules/mogo-module-share/src/main/java/com/mogo/module/share/manager/UploadHelper.kt +++ b/modules/mogo-module-share/src/main/java/com/mogo/module/share/manager/UploadHelper.kt @@ -11,7 +11,7 @@ import com.mogo.utils.logger.Logger */ object UploadHelper { fun upload(context:Context, type: String) { - ShareControl.getInstance(context).mogoServiceApis.statusManagerApi.setUploadingStatus("CARD_TYPE_ROAD_CONDITION", true) + ServiceApisManager.serviceApis.statusManagerApi.setUploadingStatus("CARD_TYPE_ROAD_CONDITION", true) Logger.d("UploadHelper", "upload ----> $type") val intent = Intent() intent.action = "com.zhidao.roadcondition.share"