From 30847d81bf962cc1b96622138a05a4ac2b6d49b3 Mon Sep 17 00:00:00 2001 From: tongchenfei Date: Sat, 6 Jun 2020 18:05:40 +0800 Subject: [PATCH 1/2] =?UTF-8?q?1.=20=E6=B7=BB=E5=8A=A0=E6=89=93=E5=BC=80?= =?UTF-8?q?=E5=88=86=E4=BA=AB=E6=A1=86=E7=9A=84scheme=202.=20=E6=94=B9?= =?UTF-8?q?=E5=8F=98=E5=88=86=E4=BA=AB=E6=A1=86=E6=98=BE=E7=A4=BA=E8=A7=A6?= =?UTF-8?q?=E5=8F=91=E5=AE=9E=E7=8E=B0=E6=96=B9=E5=BC=8F=EF=BC=8C=E6=94=B9?= =?UTF-8?q?=E7=94=A8IProvider=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/AndroidManifest.xml | 9 ++++ .../independent/MainIndependentActivity.java | 2 + .../extensions/entrance/EntranceFragment.java | 20 ++++---- .../com/mogo/module/main/SchemeIntent.java | 6 +++ .../com/mogo/module/share/ShareControl.java | 46 ++++--------------- .../share/dialog/LaucherShareDialog.java | 2 +- .../com/mogo/service/IMogoServiceApis.java | 7 +++ .../com/mogo/service/MogoServicePaths.java | 7 +++ .../mogo/service/share/IMogoShareManager.java | 19 ++++++++ .../mogo/service/impl/MogoServiceApis.java | 8 +++- 10 files changed, 80 insertions(+), 46 deletions(-) create mode 100644 services/mogo-service-api/src/main/java/com/mogo/service/share/IMogoShareManager.java diff --git a/main-extensions/mogo-module-main-independent/src/main/AndroidManifest.xml b/main-extensions/mogo-module-main-independent/src/main/AndroidManifest.xml index fcfddb2b4a..0d4d401316 100644 --- a/main-extensions/mogo-module-main-independent/src/main/AndroidManifest.xml +++ b/main-extensions/mogo-module-main-independent/src/main/AndroidManifest.xml @@ -29,6 +29,15 @@ + + + + + + \ No newline at end of file diff --git a/main-extensions/mogo-module-main-independent/src/main/java/com/zhidao/mogo/module/main/independent/MainIndependentActivity.java b/main-extensions/mogo-module-main-independent/src/main/java/com/zhidao/mogo/module/main/independent/MainIndependentActivity.java index 52bf70be04..63c9099486 100644 --- a/main-extensions/mogo-module-main-independent/src/main/java/com/zhidao/mogo/module/main/independent/MainIndependentActivity.java +++ b/main-extensions/mogo-module-main-independent/src/main/java/com/zhidao/mogo/module/main/independent/MainIndependentActivity.java @@ -17,6 +17,8 @@ public class MainIndependentActivity extends MainActivity { @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); + // 独立app需要在onCreate里面增加处理scheme的情况 + mPresenter.handleSchemeIntent(getIntent()); } @Override diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java index 9520ef3000..8240544ce2 100644 --- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java +++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java @@ -222,13 +222,7 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent // } // }); // 原始逻辑 - isClickShare = true; - if ( mIMogoAuthorizeModuleManager.needAuthorize( AUTHORIZE_TYPE_LAUNCHER_SHARE ) ) { - mIMogoAuthorizeModuleManager.invokeAuthorization( AUTHORIZE_TYPE_LAUNCHER_SHARE ); - } else { - ShareControl.getInstance( getActivity() ).showDialog(); - traceData( "1" ); - } + showShareDialog(); } ); mDisplayOverview = findViewById( R.id.module_ext_id_display_overview ); @@ -348,6 +342,16 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent mNaviInfo.inflate( rootView ); } + public void showShareDialog() { + isClickShare = true; + if ( mIMogoAuthorizeModuleManager.needAuthorize( AUTHORIZE_TYPE_LAUNCHER_SHARE ) ) { + mIMogoAuthorizeModuleManager.invokeAuthorization( AUTHORIZE_TYPE_LAUNCHER_SHARE ); + } else { + mApis.getShareManager().showShareDialog(); + traceData( "1" ); + } + } + private static final String AUTONAVI_STANDARD_BROADCAST_RECV = "AUTONAVI_STANDARD_BROADCAST_RECV"; @NonNull @@ -395,7 +399,7 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent public void authorizeSuccess() { Log.d( TAG, "authorizeSuccess --------> isClickShare = " + isClickShare ); if ( isClickShare ) { - ShareControl.getInstance( getActivity() ).showDialog(); + mApis.getShareManager().showShareDialog(); traceData( "1" ); } else { mEntrancePresenter.handleNeedAuthorizeCmd(); diff --git a/modules/mogo-module-main/src/main/java/com/mogo/module/main/SchemeIntent.java b/modules/mogo-module-main/src/main/java/com/mogo/module/main/SchemeIntent.java index 14ec2be9ab..b477536dcf 100644 --- a/modules/mogo-module-main/src/main/java/com/mogo/module/main/SchemeIntent.java +++ b/modules/mogo-module-main/src/main/java/com/mogo/module/main/SchemeIntent.java @@ -80,6 +80,12 @@ public class SchemeIntent implements IMogoStatusChangedListener { case "/main/switch2": handleSwitch2Action( target ); break; + case "/main/share": + Logger.d(TAG,"收到打开分享框的scheme,准备打开分享框"); + mApis.getShareManager().showShareDialog(); + break; + default: + break; } 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 5307736cd1..c20c764113 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 @@ -2,10 +2,12 @@ package com.mogo.module.share; 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.service.IMogoServiceApis; import com.mogo.service.MogoServicePaths; +import com.mogo.service.share.IMogoShareManager; import com.mogo.utils.logger.Logger; /** @@ -13,55 +15,27 @@ import com.mogo.utils.logger.Logger; * @description 分享弹框接口 * @since 2020-01-10 */ -public class ShareControl implements IShareControl { +@Route(path = MogoServicePaths.PATH_SHARE) +public class ShareControl implements IMogoShareManager { - private static volatile ShareControl sInstance; private Context mContext; private LaucherShareDialog mShareDialog; - private IMogoServiceApis mogoServiceApis; - - private ShareControl(Context context) { - mContext = context; - mogoServiceApis = - (IMogoServiceApis) ARouter.getInstance().build(MogoServicePaths.PATH_SERVICE_APIS).navigation(context); - } - - public IMogoServiceApis getMogoServiceApis(){ - return mogoServiceApis; - } - - public static ShareControl getInstance(Context context) { - if (sInstance == null) { - synchronized (ShareControl.class) { - if (sInstance == null) { - sInstance = new ShareControl(context); - } - } - } - return sInstance; - } - - @Override - public void showDialog() { - - boolean isAdasShow = mogoServiceApis.getStatusManagerApi().isADASShow(); - Logger.d("ShareControl", "showDialog 判断adas是否展示: " + isAdasShow); -// if (isAdasShow) { -// mogoServiceApis.getAdasControllerApi().closeADAS(); -// } - + public void showShareDialog() { mShareDialog = new LaucherShareDialog(mContext); -// mShareDialog.setCanceledOnTouchOutside(true); mShareDialog.show(); } @Override - public void dismissDialog() { + public void dismissShareDialog() { if (mShareDialog != null) { mShareDialog.dismiss(); } } + @Override + public void init(Context context) { + mContext = context; + } } diff --git a/modules/mogo-module-share/src/main/java/com/mogo/module/share/dialog/LaucherShareDialog.java b/modules/mogo-module-share/src/main/java/com/mogo/module/share/dialog/LaucherShareDialog.java index 056450ac89..519f098dea 100644 --- a/modules/mogo-module-share/src/main/java/com/mogo/module/share/dialog/LaucherShareDialog.java +++ b/modules/mogo-module-share/src/main/java/com/mogo/module/share/dialog/LaucherShareDialog.java @@ -66,8 +66,8 @@ public class LaucherShareDialog implements View.OnClickListener { public LaucherShareDialog(@NonNull Context context) { this.mContext = context; - mAnalytics = ShareControl.getInstance(context).getMogoServiceApis().getAnalyticsApi(); mApis = (IMogoServiceApis) ARouter.getInstance().build( MogoServicePaths.PATH_SERVICE_APIS ).navigation(context); + mAnalytics = mApis.getAnalyticsApi(); mStatusManager = mApis.getStatusManagerApi(); } diff --git a/services/mogo-service-api/src/main/java/com/mogo/service/IMogoServiceApis.java b/services/mogo-service-api/src/main/java/com/mogo/service/IMogoServiceApis.java index 647a236561..73ba95f5a2 100644 --- a/services/mogo-service-api/src/main/java/com/mogo/service/IMogoServiceApis.java +++ b/services/mogo-service-api/src/main/java/com/mogo/service/IMogoServiceApis.java @@ -21,6 +21,7 @@ import com.mogo.service.module.IMogoRegisterCenter; import com.mogo.service.module.IMogoSearchManager; import com.mogo.service.module.IMogoSettingManager; import com.mogo.service.network.IMogoNetwork; +import com.mogo.service.share.IMogoShareManager; import com.mogo.service.statusmanager.IMogoMsgCenter; import com.mogo.service.statusmanager.IMogoStatusManager; import com.mogo.service.strategy.IMogoRefreshStrategyController; @@ -194,4 +195,10 @@ public interface IMogoServiceApis extends IProvider { * @return */ IMogoMarkerService getMarkerService(); + + /** + * 其他模块调用分享框的显示和隐藏 + * @return + */ + IMogoShareManager getShareManager(); } diff --git a/services/mogo-service-api/src/main/java/com/mogo/service/MogoServicePaths.java b/services/mogo-service-api/src/main/java/com/mogo/service/MogoServicePaths.java index 93986037c7..d511aaf799 100644 --- a/services/mogo-service-api/src/main/java/com/mogo/service/MogoServicePaths.java +++ b/services/mogo-service-api/src/main/java/com/mogo/service/MogoServicePaths.java @@ -170,6 +170,7 @@ public class MogoServicePaths { /** * 顶部1/2屏管理 */ + @Deprecated public static final String PATH_EXTENSIONS_TOP_VIEW_MANAGER = "/topview/api"; /** @@ -177,4 +178,10 @@ public class MogoServicePaths { */ @Deprecated public static final String PATH_MARKER_SERVICE = "/mogomarker/api"; + + /** + * 其他模块调用分享框 + */ + @Deprecated + public static final String PATH_SHARE = "/extensions/share"; } diff --git a/services/mogo-service-api/src/main/java/com/mogo/service/share/IMogoShareManager.java b/services/mogo-service-api/src/main/java/com/mogo/service/share/IMogoShareManager.java new file mode 100644 index 0000000000..2ed5841ad8 --- /dev/null +++ b/services/mogo-service-api/src/main/java/com/mogo/service/share/IMogoShareManager.java @@ -0,0 +1,19 @@ +package com.mogo.service.share; + +import com.alibaba.android.arouter.facade.template.IProvider; + +/** + * 分享框管理接口 + * @author tongchenfei + */ +public interface IMogoShareManager extends IProvider { + /** + * 显示分享框 + */ + void showShareDialog(); + + /** + * 隐藏分享框 + */ + void dismissShareDialog(); +} diff --git a/services/mogo-service/src/main/java/com/mogo/service/impl/MogoServiceApis.java b/services/mogo-service/src/main/java/com/mogo/service/impl/MogoServiceApis.java index 534de90589..30f5a47ab1 100644 --- a/services/mogo-service/src/main/java/com/mogo/service/impl/MogoServiceApis.java +++ b/services/mogo-service/src/main/java/com/mogo/service/impl/MogoServiceApis.java @@ -30,6 +30,7 @@ import com.mogo.service.module.IMogoRegisterCenter; import com.mogo.service.module.IMogoSearchManager; import com.mogo.service.module.IMogoSettingManager; import com.mogo.service.network.IMogoNetwork; +import com.mogo.service.share.IMogoShareManager; import com.mogo.service.statusmanager.IMogoMsgCenter; import com.mogo.service.statusmanager.IMogoStatusManager; import com.mogo.service.strategy.IMogoRefreshStrategyController; @@ -171,7 +172,12 @@ public class MogoServiceApis implements IMogoServiceApis { return getApiInstance( IMogoMarkerService.class, MogoServicePaths.PATH_MARKER_SERVICE ); } - private static < T extends IProvider > T getApiInstance( Class< T > clazz, String path ) { + @Override + public IMogoShareManager getShareManager() { + return getApiInstance(IMogoShareManager.class,MogoServicePaths.PATH_SHARE); + } + + private static < T extends IProvider > T getApiInstance(Class< T > clazz, String path ) { T inst = SingletonsHolder.get( clazz ); if ( inst == null ) { synchronized ( sLock ) { From 106e9011b329ecc92c71163ea30e6e8c677ac70f Mon Sep 17 00:00:00 2001 From: tongchenfei Date: Mon, 8 Jun 2020 10:25:40 +0800 Subject: [PATCH 2/2] 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"