From c712b6f03b73ef26842baeecedde2ae1d96bb472 Mon Sep 17 00:00:00 2001 From: tongchenfei Date: Mon, 8 Jun 2020 15:30:42 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E5=8E=BB=E6=8E=89=E4=BA=86=E8=87=AA?= =?UTF-8?q?=E8=BA=AB=E7=9A=84broadcast=20receiver?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/mogo-module-share/build.gradle | 2 + .../src/main/AndroidManifest.xml | 5 - .../com/mogo/module/share/ShareControl.java | 134 +++++++++++++++++- .../module/share/ShareVoiceCmdReceiver.kt | 75 ---------- 4 files changed, 134 insertions(+), 82 deletions(-) delete mode 100644 modules/mogo-module-share/src/main/java/com/mogo/module/share/ShareVoiceCmdReceiver.kt diff --git a/modules/mogo-module-share/build.gradle b/modules/mogo-module-share/build.gradle index e355181036..5a6e9d9be2 100644 --- a/modules/mogo-module-share/build.gradle +++ b/modules/mogo-module-share/build.gradle @@ -46,10 +46,12 @@ dependencies { implementation rootProject.ext.dependencies.mogoutils implementation rootProject.ext.dependencies.mogocommons implementation rootProject.ext.dependencies.modulecommon + implementation rootProject.ext.dependencies.mogomoduleauth } else { implementation project(":foudations:mogo-utils") api project(":foudations:mogo-commons") implementation project(':modules:mogo-module-common') + implementation project(':modules:mogo-module-authorize') } } diff --git a/modules/mogo-module-share/src/main/AndroidManifest.xml b/modules/mogo-module-share/src/main/AndroidManifest.xml index 8ca40a6422..d170d3f9cd 100644 --- a/modules/mogo-module-share/src/main/AndroidManifest.xml +++ b/modules/mogo-module-share/src/main/AndroidManifest.xml @@ -2,10 +2,5 @@ package="com.mogo.module.share" > - - - - - 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 a5b5aba610..c05b188587 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 @@ -1,31 +1,66 @@ package com.mogo.module.share; import android.content.Context; +import android.content.Intent; +import android.content.ServiceConnection; import com.alibaba.android.arouter.facade.annotation.Route; import com.alibaba.android.arouter.launcher.ARouter; +import com.mogo.module.authorize.authprovider.invoke.AuthorizeConstant; +import com.mogo.module.authorize.authprovider.invoke.AuthorizeInvokerConstant; +import com.mogo.module.authorize.authprovider.invoke.IMogoAuthorizeContentListener; +import com.mogo.module.authorize.authprovider.module.IMogoAcquireAuthorizeListener; +import com.mogo.module.authorize.authprovider.module.IMogoAuthorizeModuleManager; +import com.mogo.module.authorize.model.bean.Agreement; +import com.mogo.module.share.constant.ShareConstants; import com.mogo.module.share.dialog.LaucherShareDialog; import com.mogo.module.share.manager.ServiceApisManager; +import com.mogo.module.share.manager.UploadHelper; import com.mogo.service.IMogoServiceApis; import com.mogo.service.MogoServicePaths; +import com.mogo.service.intent.IMogoIntentListener; +import com.mogo.service.intent.IMogoIntentManager; import com.mogo.service.share.IMogoShareManager; +import com.mogo.utils.TipToast; import com.mogo.utils.logger.Logger; +import org.jetbrains.annotations.NotNull; +import org.json.JSONException; +import org.json.JSONObject; + +import static com.mogo.module.share.constant.ShareConstants.TYPE_ACCIDENT; +import static com.mogo.module.share.constant.ShareConstants.TYPE_DENSE_FOG; +import static com.mogo.module.share.constant.ShareConstants.TYPE_REAL_TIME_TRAFFIC; +import static com.mogo.module.share.constant.ShareConstants.TYPE_ROAD_CONSTRUCTION; +import static com.mogo.module.share.constant.ShareConstants.TYPE_ROAD_ICY; +import static com.mogo.module.share.constant.ShareConstants.TYPE_STAGNANT_WATER; +import static com.mogo.module.share.constant.ShareConstants.VOICE_CMD_GO_TO_SHARE; +import static com.mogo.module.share.constant.ShareConstants.VOICE_CMD_PUB_ROAD_CONDITION; +import static com.mogo.module.share.constant.ShareConstants.VOICE_CMD_PUB_TROUBLE_HELP; + /** + * 分享框的逻辑都放到这里吧 + * * @author lixiaopeng * @description 分享弹框接口 * @since 2020-01-10 */ @Route(path = MogoServicePaths.PATH_SHARE) public class ShareControl implements IMogoShareManager { + private static final String TAG = "ShareControl"; private Context mContext; private LaucherShareDialog mShareDialog; + private IMogoAuthorizeModuleManager authorizeModuleManager; + @Override public void showShareDialog() { - mShareDialog = new LaucherShareDialog(mContext); - mShareDialog.show(); + if (authorizeModuleManager.needAuthorize(AuthorizeInvokerConstant.AUTHORIZE_TYPE_LAUNCHER_SHARE)) { + authorizeModuleManager.invokeAuthorization(AuthorizeInvokerConstant.AUTHORIZE_TYPE_LAUNCHER_SHARE); + }else{ + realShowDialog(); + } } @Override @@ -35,9 +70,104 @@ public class ShareControl implements IMogoShareManager { } } + private void realShowDialog(){ + if (mShareDialog == null) { + mShareDialog = new LaucherShareDialog(mContext); + } + mShareDialog.show(); + } + @Override public void init(Context context) { mContext = context; ServiceApisManager.INSTANCE.init(context); + authorizeModuleManager = + (IMogoAuthorizeModuleManager) ARouter.getInstance().build(AuthorizeConstant.PROVIDER_MODULE).navigation(context); + authorizeModuleManager.registerAuthorizeListener(AuthorizeInvokerConstant.AUTHORIZE_TYPE_LAUNCHER_SHARE, new IMogoAcquireAuthorizeListener() { + @Override + public void authorizeSuccess() { + realShowDialog(); + } + + @Override + public void authorizeFailed(@NotNull String errorMsg) { + TipToast.tip("未授权,无法分享"); + } + + @Override + public void forbiddenVoiceWhenAuthorize(@NotNull String cmd) { + TipToast.tip("未授权,无法分享"); + } + }); + ServiceApisManager.serviceApis.getIntentManagerApi().registerIntentListener("ShareDialog", new IMogoIntentListener() { + @Override + public void onIntentReceived(String intentStr, Intent intent) { + // 此处只接受处理语音相关广播 + String command = intent.getStringExtra("command"); + Logger.d(TAG, "收到唤醒词指令: " + command); + try { + switch (command) { + case VOICE_CMD_PUB_TROUBLE_HELP: { + // 开启服务,准备上报求助 + Intent seekHelp = new Intent(mContext, VoiceCmdService.class); + seekHelp.putExtra(ShareConstants.VOICE_CMD_SERVICE_EVENT_KEY, + ShareConstants.VOICE_CMD_SERVICE_SEEK_HELP); + mContext.startService(seekHelp); + dismissShareDialog(); + break; + } + case VOICE_CMD_GO_TO_SHARE: { + String ob = new JSONObject(intent.getStringExtra("data")).opt("ob").toString(); + Logger.d(TAG, "ob: $ob"); + switch (ob) { + case "积水": { + UploadHelper.INSTANCE.upload(mContext, TYPE_STAGNANT_WATER); + dismissShareDialog(); + break; + } + case "积冰": { + UploadHelper.INSTANCE.upload(mContext, TYPE_ROAD_ICY); + dismissShareDialog(); + break; + } + case "雾": { + UploadHelper.INSTANCE.upload(mContext, TYPE_DENSE_FOG); + dismissShareDialog(); + break; + } + case "交通事故": { + UploadHelper.INSTANCE.upload(mContext, TYPE_ACCIDENT); + dismissShareDialog(); + break; + } + case "施工": { + UploadHelper.INSTANCE.upload(mContext, TYPE_ROAD_CONSTRUCTION); + dismissShareDialog(); + break; + } + default: + break; + } + } + case VOICE_CMD_PUB_ROAD_CONDITION: { + String ob = + new JSONObject(intent.getStringExtra("data")).opt("obj").toString(); + Logger.d(TAG, "ob:" + ob); + if ("路况".equals(ob)) { + // 上报实时路况 + Logger.d(TAG, "分享框准备触发上报实时路况"); + UploadHelper.INSTANCE.upload(mContext, TYPE_REAL_TIME_TRAFFIC); + dismissShareDialog(); + break; + } + } + default: + break; + } + } catch (Exception e) { + Logger.e(TAG, e, "ShareControl exception"); + } + } + }); } } 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 deleted file mode 100644 index b8695ceb5d..0000000000 --- a/modules/mogo-module-share/src/main/java/com/mogo/module/share/ShareVoiceCmdReceiver.kt +++ /dev/null @@ -1,75 +0,0 @@ -package com.mogo.module.share - -import android.content.BroadcastReceiver -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 - -/** - * 用于接收唤醒词指令,现在只接收 com.zhidao.speech.awake.notify 这一条广播 - */ -class ShareVoiceCmdReceiver : BroadcastReceiver() { - private val TAG = "ShareVoiceCmdReceiver" - override fun onReceive(context: Context, intent: Intent) { - // 接收唤醒词指令 - val command = intent.getStringExtra("command")?:"" - Logger.d(TAG, "收到唤醒词指令: $command") - when (command) { - VOICE_CMD_PUB_TROUBLE_HELP -> { - // 开启服务,准备上报求助 - val seekHelp = Intent(context, VoiceCmdService::class.java) - seekHelp.putExtra(ShareConstants.VOICE_CMD_SERVICE_EVENT_KEY, ShareConstants.VOICE_CMD_SERVICE_SEEK_HELP) - context.startService(seekHelp) - ServiceApisManager.serviceApis.shareManager.dismissShareDialog() -// ShareControl.getInstance(context).dismissDialog() - } - VOICE_CMD_GO_TO_SHARE ->{ - val ob = JSONObject(intent.getStringExtra("data") ?: "").opt("ob") - Logger.d(TAG, "ob: $ob") - when (ob) { - "积水"->{ - UploadHelper.upload(context, TYPE_STAGNANT_WATER) - ServiceApisManager.serviceApis.shareManager.dismissShareDialog() -// ShareControl.getInstance(context).dismissDialog() - } - "积冰"->{ - UploadHelper.upload(context, TYPE_ROAD_ICY) - ServiceApisManager.serviceApis.shareManager.dismissShareDialog() -// ShareControl.getInstance(context).dismissDialog() - } - "雾"->{ - UploadHelper.upload(context, TYPE_DENSE_FOG) - ServiceApisManager.serviceApis.shareManager.dismissShareDialog() -// ShareControl.getInstance(context).dismissDialog() - } - "交通事故"->{ - UploadHelper.upload(context, TYPE_ACCIDENT) - ServiceApisManager.serviceApis.shareManager.dismissShareDialog() -// ShareControl.getInstance(context).dismissDialog() - } - "施工"->{ - UploadHelper.upload(context, TYPE_ROAD_CONSTRUCTION) - ServiceApisManager.serviceApis.shareManager.dismissShareDialog() -// ShareControl.getInstance(context).dismissDialog() - } - } - } - VOICE_CMD_PUB_ROAD_CONDITION->{ - val ob = JSONObject(intent.getStringExtra("data") ?: "").opt("obj") - Logger.d(TAG, "ob: $ob") - if(ob == "路况") { - // 上报实时路况 - Logger.d(TAG, "分享框准备触发上报实时路况") - UploadHelper.upload(context, TYPE_REAL_TIME_TRAFFIC) - ServiceApisManager.serviceApis.shareManager.dismissShareDialog() -// ShareControl.getInstance(context).dismissDialog() - } - } - } - } -} \ No newline at end of file From c0dd5d3161d1083151649066f7e42270b1126c02 Mon Sep 17 00:00:00 2001 From: tongchenfei Date: Mon, 8 Jun 2020 17:12:15 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E9=80=BB=E8=BE=91=E8=BF=81=E7=A7=BB?= =?UTF-8?q?=E5=AE=8C=E6=AF=95=EF=BC=8C=E5=BE=85=E6=B5=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/mogo/commons/debug/DebugConfig.java | 23 ++ modules/mogo-module-extensions/build.gradle | 4 +- .../extensions/entrance/EntranceFragment.java | 385 ++++++++---------- .../entrance/EntrancePresenter.java | 373 +---------------- .../net/UserInfoNetApiServices.java | 2 - .../com/mogo/module/share/ShareControl.java | 378 +++++++++++++---- .../mogo/module/share/bean/StepAfterAuth.kt | 10 + .../module/share/constant/ShareConstants.java | 68 +++- 8 files changed, 585 insertions(+), 658 deletions(-) create mode 100644 modules/mogo-module-share/src/main/java/com/mogo/module/share/bean/StepAfterAuth.kt diff --git a/foudations/mogo-commons/src/main/java/com/mogo/commons/debug/DebugConfig.java b/foudations/mogo-commons/src/main/java/com/mogo/commons/debug/DebugConfig.java index 1e404bf945..46fbd55dd2 100644 --- a/foudations/mogo-commons/src/main/java/com/mogo/commons/debug/DebugConfig.java +++ b/foudations/mogo-commons/src/main/java/com/mogo/commons/debug/DebugConfig.java @@ -51,6 +51,17 @@ public class DebugConfig { private static int sNetMode = NET_MODE_RELEASE; + /** + * 语音使用同行者 + */ + public static final int AI_TYPE_TXZ = 1; + /** + * 语音使用思必驰 + */ + public static final int AI_TYPE_SPEECH = 2; + + private static int sAIType = AI_TYPE_TXZ; + /** * 获取网络环境类型 * @@ -99,4 +110,16 @@ public class DebugConfig { public static void setUseCustomNavi( boolean sUseCustomNavi ) { DebugConfig.sUseCustomNavi = sUseCustomNavi; } + + /** + * 设置使用哪个语音助手 + * @param aiType AI_TYPE_TXZ AI_TYPE_SPEECH + */ + public static void setAIType(int aiType){ + sAIType = aiType; + } + + public static int getAIType(){ + return sAIType; + } } diff --git a/modules/mogo-module-extensions/build.gradle b/modules/mogo-module-extensions/build.gradle index 165459ff0d..4ced0877b8 100644 --- a/modules/mogo-module-extensions/build.gradle +++ b/modules/mogo-module-extensions/build.gradle @@ -51,7 +51,7 @@ dependencies { api rootProject.ext.dependencies.mogoserviceapi implementation rootProject.ext.dependencies.modulecommon implementation rootProject.ext.dependencies.moduleshare - implementation rootProject.ext.dependencies.mogomoduleauth +// implementation rootProject.ext.dependencies.mogomoduleauth } else { api project(":libraries:mogo-map") api project(":libraries:mogo-map-api") @@ -60,7 +60,7 @@ dependencies { api project(':services:mogo-service-api') implementation project(':modules:mogo-module-common') implementation project(':modules:mogo-module-share') - implementation project(':modules:mogo-module-authorize') +// implementation project(':modules:mogo-module-authorize') } } 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 341cda917f..43c603bbf7 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 @@ -6,7 +6,6 @@ import android.os.Bundle; import android.os.Handler; import android.os.Looper; import android.os.Message; -import android.util.Log; import android.util.TypedValue; import android.view.View; import android.widget.ImageView; @@ -30,9 +29,6 @@ import com.mogo.map.navi.MogoNaviInfo; import com.mogo.map.navi.MogoTraffic; import com.mogo.map.uicontroller.EnumMapUI; import com.mogo.map.uicontroller.IMogoMapUIController; -import com.mogo.module.authorize.authprovider.invoke.AuthorizeConstant; -import com.mogo.module.authorize.authprovider.module.IMogoAcquireAuthorizeListener; -import com.mogo.module.authorize.authprovider.module.IMogoAuthorizeModuleManager; import com.mogo.module.common.dialog.WMDialog; import com.mogo.module.common.map.CustomNaviInterrupter; import com.mogo.module.common.map.MapCenterPointStrategy; @@ -40,9 +36,7 @@ import com.mogo.module.common.map.Scene; import com.mogo.module.extensions.ExtensionsModuleConst; import com.mogo.module.extensions.R; import com.mogo.module.extensions.navi.NaviInfoView; -import com.mogo.module.extensions.userinfo.UserInfo; import com.mogo.module.extensions.utils.TopViewAnimHelper; -import com.mogo.module.share.ShareControl; import com.mogo.service.IMogoServiceApis; import com.mogo.service.MogoServicePaths; import com.mogo.service.analytics.IMogoAnalytics; @@ -56,14 +50,12 @@ import com.mogo.service.statusmanager.IMogoStatusManager; import com.mogo.service.statusmanager.StatusDescriptor; import com.mogo.utils.ResourcesHelper; import com.mogo.utils.UiThreadHandler; -import com.mogo.utils.logger.Logger; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; -import static com.mogo.module.authorize.authprovider.invoke.AuthorizeInvokerConstant.AUTHORIZE_TYPE_LAUNCHER_SHARE; /** * @author congtaowang @@ -71,12 +63,11 @@ import static com.mogo.module.authorize.authprovider.invoke.AuthorizeInvokerCons *

* 描述 */ -public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresenter > +public class EntranceFragment extends MvpFragment implements EntranceView, IMogoNaviListener, IMogoMapListener, IMogoAimlessModeListener, - IMogoAcquireAuthorizeListener, IMogoStatusChangedListener { private static final String TAG = "EntranceFragment"; @@ -107,7 +98,6 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent private IMogoAnalytics mAnalytics; private IMogoStatusManager mMogoStatusManager; private EntrancePresenter mEntrancePresenter; - private IMogoAuthorizeModuleManager mIMogoAuthorizeModuleManager; private IMogoStatusManager mStatusManager; @@ -176,10 +166,10 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent private Runnable mLockCarRunnable = new Runnable() { @Override public void run() { - if ( !mStatusManager.isDisplayOverview() ) { + if (!mStatusManager.isDisplayOverview()) { return; } - mStatusManager.setDisplayOverview( TAG, false ); + mStatusManager.setDisplayOverview(TAG, false); mMApUIController.recoverLockMode(); } }; @@ -189,23 +179,21 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent return R.layout.module_ext_layout_entrance; } - private List< View > demoCache = new ArrayList<>(); + private List demoCache = new ArrayList<>(); @Override protected void initViews() { - mApis = ( IMogoServiceApis ) ARouter.getInstance().build( MogoServicePaths.PATH_SERVICE_APIS ).navigation( getContext() ); - mIMogoAuthorizeModuleManager = ( IMogoAuthorizeModuleManager ) ARouter.getInstance().build( AuthorizeConstant.PROVIDER_MODULE ).navigation( getContext() ); - mIMogoAuthorizeModuleManager.registerAuthorizeListener( AUTHORIZE_TYPE_LAUNCHER_SHARE, this ); + mApis = (IMogoServiceApis) ARouter.getInstance().build(MogoServicePaths.PATH_SERVICE_APIS).navigation(getContext()); - mEntrancePresenter = new EntrancePresenter( getContext(), this, mIMogoAuthorizeModuleManager ); + mEntrancePresenter = new EntrancePresenter(getContext(), this); mMogoFragmentManager = mApis.getFragmentManagerApi(); mStatusManager = mApis.getStatusManagerApi(); - mUploadRoadCondition = findViewById( R.id.module_entrance_id_upload_road_condition ); - mUpload = findViewById( R.id.module_entrance_id_upload ); - mUploading = findViewById( R.id.module_entrance_id_uploading ); - mUploadRoadCondition.setOnClickListener( view -> { + mUploadRoadCondition = findViewById(R.id.module_entrance_id_upload_road_condition); + mUpload = findViewById(R.id.module_entrance_id_upload); + mUploading = findViewById(R.id.module_entrance_id_uploading); + mUploadRoadCondition.setOnClickListener(view -> { // // todo 测试动画 // View v = LayoutInflater.from(getContext()).inflate(R.layout.demo_top, null); // TextView tv = v.findViewById(R.id.tvIndex); @@ -224,25 +212,25 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent // }); // 原始逻辑 showShareDialog(); - } ); + }); - mDisplayOverview = findViewById( R.id.module_ext_id_display_overview ); - mDisplayOverviewText = findViewById( R.id.module_ext_id_display_overview_text ); - mDisplayOverviewIcon = findViewById( R.id.module_ext_id_display_overview_icon ); - mDisplayOverview.setOnClickListener( view -> { - if ( !mStatusManager.isDisplayOverview() ) { - mMApUIController.displayOverview( mDisplayOverviewBounds ); - UiThreadHandler.removeCallbacks( mLockCarRunnable ); - UiThreadHandler.postDelayed( mLockCarRunnable, 20_000 ); + mDisplayOverview = findViewById(R.id.module_ext_id_display_overview); + mDisplayOverviewText = findViewById(R.id.module_ext_id_display_overview_text); + mDisplayOverviewIcon = findViewById(R.id.module_ext_id_display_overview_icon); + mDisplayOverview.setOnClickListener(view -> { + if (!mStatusManager.isDisplayOverview()) { + mMApUIController.displayOverview(mDisplayOverviewBounds); + UiThreadHandler.removeCallbacks(mLockCarRunnable); + UiThreadHandler.postDelayed(mLockCarRunnable, 20_000); } else { mMApUIController.recoverLockMode(); - UiThreadHandler.removeCallbacks( mLockCarRunnable ); + UiThreadHandler.removeCallbacks(mLockCarRunnable); } - mStatusManager.setDisplayOverview( TAG, !mStatusManager.isDisplayOverview() ); - } ); + mStatusManager.setDisplayOverview(TAG, !mStatusManager.isDisplayOverview()); + }); - mMove2CurrentLocation = findViewById( R.id.module_entrance_id_move2_current_location ); - mMove2CurrentLocation.setOnClickListener( view -> { + mMove2CurrentLocation = findViewById(R.id.module_entrance_id_move2_current_location); + mMove2CurrentLocation.setOnClickListener(view -> { // // todo 测试动画 // if(!toggle) { // TopViewAnimHelper.getInstance().showNaviView(); @@ -258,102 +246,109 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent // } // 原始逻辑 final MogoLocation location = mMogoLocationClient.getLastKnowLocation(); - if ( location != null ) { - if ( !mMogoStatusManager.isV2XShow() ) { - mMogoStatusManager.setUserInteractionStatus( TAG, true, false ); - mMApUIController.setLockZoom( 16 ); - mMApUIController.changeZoom( 16.0f ); + if (location != null) { + if (!mMogoStatusManager.isV2XShow()) { + mMogoStatusManager.setUserInteractionStatus(TAG, true, false); + mMApUIController.setLockZoom(16); + mMApUIController.changeZoom(16.0f); } - if ( mStatusManager.isDisplayOverview() ) { - mMogoStatusManager.setDisplayOverview( TAG, false ); - UiThreadHandler.removeCallbacks( mLockCarRunnable ); + if (mStatusManager.isDisplayOverview()) { + mMogoStatusManager.setDisplayOverview(TAG, false); + UiThreadHandler.removeCallbacks(mLockCarRunnable); } - mMogoStatusManager.setUserInteractionStatus( TAG, true, false ); + mMogoStatusManager.setUserInteractionStatus(TAG, true, false); mMApUIController.recoverLockMode(); } - } ); + }); // mNaviInfo = findViewById( R.id.module_entrance_id_navi_info_panel ); - ConstraintLayout rootView = findViewById( R.id.module_entrance_id_top_motion_layout ); - if ( rootView != null ) { - TopViewAnimHelper.getInstance().init( rootView ); + ConstraintLayout rootView = findViewById(R.id.module_entrance_id_top_motion_layout); + if (rootView != null) { + TopViewAnimHelper.getInstance().init(rootView); } - mExitNavi = findViewById( R.id.module_entrance_id_exit_navi ); - mExitNavi.setOnClickListener( view -> { - if ( mMogoNavi != null ) { - if ( mIsLock ) { - new WMDialog.Builder( getContext() ) - .setOkButton( R.string.module_commons_button_ok, ( dlg, which ) -> { + mExitNavi = findViewById(R.id.module_entrance_id_exit_navi); + mExitNavi.setOnClickListener(view -> { + if (mMogoNavi != null) { + if (mIsLock) { + new WMDialog.Builder(getContext()) + .setOkButton(R.string.module_commons_button_ok, (dlg, which) -> { dlg.dismiss(); mMogoNavi.stopNavi(); - } ) - .setCancelButton( R.string.module_commons_button_cancel, ( dlg, which ) -> { + }) + .setCancelButton(R.string.module_commons_button_cancel, + (dlg, which) -> { dlg.dismiss(); - } ) - .setContent( R.string.module_commons_exit_navi_content ) + }) + .setContent(R.string.module_commons_exit_navi_content) .build() .show(); } else { - MapCenterPointStrategy.setMapCenterPointByScene( mMApUIController, Scene.NAVI ); + MapCenterPointStrategy.setMapCenterPointByScene(mMApUIController, Scene.NAVI); mMApUIController.recoverLockMode(); } } - } ); + }); - mCameraMode = findViewById( R.id.module_ext_id_north ); - mCameraMode.setOnClickListener( view -> { - if ( mCameraMode.isSelected() ) { - mMApUIController.changeMapMode( EnumMapUI.CarUp_2D ); + mCameraMode = findViewById(R.id.module_ext_id_north); + mCameraMode.setOnClickListener(view -> { + if (mCameraMode.isSelected()) { + mMApUIController.changeMapMode(EnumMapUI.CarUp_2D); } else { - mMApUIController.changeMapMode( EnumMapUI.NorthUP_2D ); + mMApUIController.changeMapMode(EnumMapUI.NorthUP_2D); } - mCameraMode.setSelected( !mCameraMode.isSelected() ); - mCameraMode.setText( getString( mCameraMode.isSelected() ? R.string.mode_car_up : R.string.mode_north_up ) ); - } ); + mCameraMode.setSelected(!mCameraMode.isSelected()); + mCameraMode.setText(getString(mCameraMode.isSelected() ? R.string.mode_car_up : + R.string.mode_north_up)); + }); - mApis.getIntentManagerApi().registerIntentListener( AUTONAVI_STANDARD_BROADCAST_RECV, new IMogoIntentListener() { + mApis.getIntentManagerApi().registerIntentListener(AUTONAVI_STANDARD_BROADCAST_RECV, + new IMogoIntentListener() { @Override - public void onIntentReceived( String intentStr, Intent intent ) { - int key_type = intent.getIntExtra( "KEY_TYPE", 0 ); - int type = intent.getIntExtra( "EXTRA_TYPE", -1 ); - int opera_type = intent.getIntExtra( "EXTRA_OPERA", -1 ); - if ( key_type == 10027 ) { - if ( opera_type == 0 ) { - mCameraMode.setSelected( false ); - } else if ( opera_type == 1 ) { - mCameraMode.setSelected( true ); + public void onIntentReceived(String intentStr, Intent intent) { + int key_type = intent.getIntExtra("KEY_TYPE", 0); + int type = intent.getIntExtra("EXTRA_TYPE", -1); + int opera_type = intent.getIntExtra("EXTRA_OPERA", -1); + if (key_type == 10027) { + if (opera_type == 0) { + mCameraMode.setSelected(false); + } else if (opera_type == 1) { + mCameraMode.setSelected(true); } - mCameraMode.setText( getString( mCameraMode.isSelected() ? R.string.mode_car_up : R.string.mode_north_up ) ); + mCameraMode.setText(getString(mCameraMode.isSelected() ? + R.string.mode_car_up : R.string.mode_north_up)); } } - } ); - MogoEntranceButtons.save( ButtonIndex.BUTTON1, findViewById( R.id.module_entrance_id_button1 ) ); - MogoEntranceButtons.save( ButtonIndex.BUTTON2, findViewById( R.id.module_entrance_id_button2 ) ); + }); + MogoEntranceButtons.save(ButtonIndex.BUTTON1, + findViewById(R.id.module_entrance_id_button1)); + MogoEntranceButtons.save(ButtonIndex.BUTTON2, + findViewById(R.id.module_entrance_id_button2)); mDisplayOverviewBounds = new Rect( - ResourcesHelper.getDimensionPixelSize( getContext(), R.dimen.module_map_display_overview_left_margin ), - ResourcesHelper.getDimensionPixelSize( getContext(), R.dimen.module_map_display_overview_top_margin ), - ResourcesHelper.getDimensionPixelSize( getContext(), R.dimen.module_map_display_overview_right_margin ), - ResourcesHelper.getDimensionPixelSize( getContext(), R.dimen.module_map_display_overview_bottom_margin ) + ResourcesHelper.getDimensionPixelSize(getContext(), + R.dimen.module_map_display_overview_left_margin), + ResourcesHelper.getDimensionPixelSize(getContext(), + R.dimen.module_map_display_overview_top_margin), + ResourcesHelper.getDimensionPixelSize(getContext(), + R.dimen.module_map_display_overview_right_margin), + ResourcesHelper.getDimensionPixelSize(getContext(), + R.dimen.module_map_display_overview_bottom_margin) ); mNaviInfo = new NaviInfoView(); - mNaviInfo.inflate( rootView ); + 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" ); - } + mApis.getShareManager().showShareDialog(); + traceData("1"); } - private static final String AUTONAVI_STANDARD_BROADCAST_RECV = "AUTONAVI_STANDARD_BROADCAST_RECV"; + private static final String AUTONAVI_STANDARD_BROADCAST_RECV = + "AUTONAVI_STANDARD_BROADCAST_RECV"; @NonNull @Override @@ -362,165 +357,142 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent } @Override - public void onActivityCreated( @Nullable Bundle savedInstanceState ) { - super.onActivityCreated( savedInstanceState ); + public void onActivityCreated(@Nullable Bundle savedInstanceState) { + super.onActivityCreated(savedInstanceState); mService = mApis.getMapServiceApi(); mMogoRegisterCenter = mApis.getRegisterCenterApi(); mMApUIController = mService.getMapUIController(); - mMogoLocationClient = mService.getSingletonLocationClient( getContext() ); - mMogoNavi = mService.getNavi( getContext() ); + mMogoLocationClient = mService.getSingletonLocationClient(getContext()); + mMogoNavi = mService.getNavi(getContext()); mAnalytics = mApis.getAnalyticsApi(); mMogoStatusManager = mApis.getStatusManagerApi(); - mMogoRegisterCenter.registerMogoNaviListener( ExtensionsModuleConst.TYPE_ENTRANCE, this ); - mMogoRegisterCenter.registerMogoMapListener( ExtensionsModuleConst.TYPE_ENTRANCE, this ); - mMogoRegisterCenter.registerMogoAimlessModeListener( TAG, this ); + mMogoRegisterCenter.registerMogoNaviListener(ExtensionsModuleConst.TYPE_ENTRANCE, this); + mMogoRegisterCenter.registerMogoMapListener(ExtensionsModuleConst.TYPE_ENTRANCE, this); + mMogoRegisterCenter.registerMogoAimlessModeListener(TAG, this); - mMogoMarkerManager = mService.getMarkerManager( getContext() ); + mMogoMarkerManager = mService.getMarkerManager(getContext()); - mMogoStatusManager.registerStatusChangedListener( TAG, StatusDescriptor.UPLOADING, this ); - mMogoStatusManager.registerStatusChangedListener( TAG, StatusDescriptor.DISPLAY_OVERVIEW, this ); + mMogoStatusManager.registerStatusChangedListener(TAG, StatusDescriptor.UPLOADING, this); + mMogoStatusManager.registerStatusChangedListener(TAG, StatusDescriptor.DISPLAY_OVERVIEW, + this); - TopViewAnimHelper.getInstance().setIMogoMapUIController( mMApUIController ); + TopViewAnimHelper.getInstance().setIMogoMapUIController(mMApUIController); } @Override public void onDestroyView() { super.onDestroyView(); - if ( mEntrancePresenter != null ) { - mEntrancePresenter.unregisterUnWake(); - } - isClickShare = false; - mIMogoAuthorizeModuleManager.unregisterAuthorizeListener( AUTHORIZE_TYPE_LAUNCHER_SHARE ); - } - - - @Override - public void authorizeSuccess() { - Log.d( TAG, "authorizeSuccess --------> isClickShare = " + isClickShare ); - if ( isClickShare ) { - mApis.getShareManager().showShareDialog(); - traceData( "1" ); - } else { - mEntrancePresenter.handleNeedAuthorizeCmd(); - } } @Override - public void authorizeFailed( String errorMsg ) { - Log.e( TAG, "authorizeFailed --------> errorMsg = " + errorMsg + " >> isClickShare = " + isClickShare ); - } - - @Override - public void forbiddenVoiceWhenAuthorize( String cmd ) { - Log.d( TAG, "forbiddenVoiceWhenAuthorize --------> cmd = " + cmd ); - - } - - @Override - public void onNaviInfoUpdate( MogoNaviInfo naviinfo ) { - if ( naviinfo == null ) { + public void onNaviInfoUpdate(MogoNaviInfo naviinfo) { + if (naviinfo == null) { return; } - if ( mExitNavi.getVisibility() == View.GONE ) { + if (mExitNavi.getVisibility() == View.GONE) { // 避免先导航,后启动app导致无法显示控件 onStartNavi(); } - mNaviInfo.notifyChanged( naviinfo ); + mNaviInfo.notifyChanged(naviinfo); } @Override public void onStartNavi() { TopViewAnimHelper.getInstance().showNaviView(); - mMApUIController.changeMapMode( mCameraMode.isSelected() ? EnumMapUI.NorthUP_2D : EnumMapUI.CarUp_2D ); - MapCenterPointStrategy.setMapCenterPointBySceneAndDelay( mMApUIController, Scene.NAVI, 500, () -> { + mMApUIController.changeMapMode(mCameraMode.isSelected() ? EnumMapUI.NorthUP_2D : + EnumMapUI.CarUp_2D); + MapCenterPointStrategy.setMapCenterPointBySceneAndDelay(mMApUIController, Scene.NAVI, 500 + , () -> { return !mMogoNavi.isNaviing(); - } ); - if(CustomNaviInterrupter.getInstance().interrupt()){ + }); + if (CustomNaviInterrupter.getInstance().interrupt()) { mDisplayOverview.setVisibility(View.GONE); mCameraMode.setVisibility(View.GONE); - mExitNavi.setVisibility( View.GONE ); - }else { - mExitNavi.setVisibility( View.VISIBLE ); + mExitNavi.setVisibility(View.GONE); + } else { + mExitNavi.setVisibility(View.VISIBLE); mDisplayOverview.setVisibility(View.VISIBLE); - mCameraMode.setVisibility( View.VISIBLE ); + mCameraMode.setVisibility(View.VISIBLE); } - mApis.getAnalyticsApi().track( "Navigation_begin", new HashMap<>() ); + mApis.getAnalyticsApi().track("Navigation_begin", new HashMap<>()); } @Override public void onStopNavi() { TopViewAnimHelper.getInstance().hideNaviView(); - mExitNavi.setVisibility( View.GONE ); - mMApUIController.changeMapMode( EnumMapUI.NorthUP_2D ); - mDisplayOverview.setVisibility( View.GONE ); - mCameraMode.setVisibility( View.GONE ); - MapCenterPointStrategy.setMapCenterPointByScene( mMApUIController, Scene.AIMLESS ); + mExitNavi.setVisibility(View.GONE); + mMApUIController.changeMapMode(EnumMapUI.NorthUP_2D); + mDisplayOverview.setVisibility(View.GONE); + mCameraMode.setVisibility(View.GONE); + MapCenterPointStrategy.setMapCenterPointByScene(mMApUIController, Scene.AIMLESS); } @Override - public void onUpdateTraffic2( MogoTraffic traffic ) { - if ( traffic == null ) { + public void onUpdateTraffic2(MogoTraffic traffic) { + if (traffic == null) { return; } } @Override - public void onLockMap( boolean isLock ) { + public void onLockMap(boolean isLock) { mIsLock = isLock; - if ( isLock ) { - mExitNavi.setText( R.string.module_ext_str_exit_navi ); - if ( mMogoStatusManager.isDisplayOverview() ) { - mMogoStatusManager.setDisplayOverview( TAG, false ); + if (isLock) { + mExitNavi.setText(R.string.module_ext_str_exit_navi); + if (mMogoStatusManager.isDisplayOverview()) { + mMogoStatusManager.setDisplayOverview(TAG, false); } } else { - mExitNavi.setText( R.string.module_ext_str_continue_navi ); + mExitNavi.setText(R.string.module_ext_str_continue_navi); } } - private void traceData( String from ) { - Map< String, Object > properties = new HashMap<>(); - properties.put( "from", from ); - mAnalytics.track( "Launcher_Share_Click", properties ); + private void traceData(String from) { + Map properties = new HashMap<>(); + properties.put("from", from); + mAnalytics.track("Launcher_Share_Click", properties); } @Override - public void onStatusChanged( StatusDescriptor descriptor, boolean isTrue ) { - if ( mUploadRoadCondition == null ) { + public void onStatusChanged(StatusDescriptor descriptor, boolean isTrue) { + if (mUploadRoadCondition == null) { return; } - if ( descriptor == StatusDescriptor.UPLOADING ) { - if ( isTrue ) { - mUploading.setVisibility( View.VISIBLE ); - mUpload.setVisibility( View.GONE ); - if ( mUploadFrameAnimHandler != null ) { - mUploadFrameAnimHandler.removeMessages( MSG_STOP_ANIM ); - mUploadFrameAnimHandler.removeMessages( MSG_FRAME_ANIM ); + if (descriptor == StatusDescriptor.UPLOADING) { + if (isTrue) { + mUploading.setVisibility(View.VISIBLE); + mUpload.setVisibility(View.GONE); + if (mUploadFrameAnimHandler != null) { + mUploadFrameAnimHandler.removeMessages(MSG_STOP_ANIM); + mUploadFrameAnimHandler.removeMessages(MSG_FRAME_ANIM); } doFrameAnimOnUploadButton(); } else { mCurrentUploadFrame = 0; - if ( mUploadFrameAnimHandler != null ) { - mUploadFrameAnimHandler.removeMessages( MSG_FRAME_ANIM ); + if (mUploadFrameAnimHandler != null) { + mUploadFrameAnimHandler.removeMessages(MSG_FRAME_ANIM); } - mUploading.setVisibility( View.GONE ); - mUpload.setVisibility( View.VISIBLE ); + mUploading.setVisibility(View.GONE); + mUpload.setVisibility(View.VISIBLE); } - } else if ( descriptor == StatusDescriptor.DISPLAY_OVERVIEW ) { - if ( !mMogoNavi.isNaviing() ) { + } else if (descriptor == StatusDescriptor.DISPLAY_OVERVIEW) { + if (!mMogoNavi.isNaviing()) { return; } - if ( isTrue ) { - mDisplayOverviewText.setText( "退出全览" ); - mDisplayOverviewText.setTextSize( TypedValue.COMPLEX_UNIT_PX, getResources().getDimensionPixelSize( R.dimen.module_ext_display_overview_textSize ) ); - mCameraMode.setVisibility( View.GONE ); + if (isTrue) { + mDisplayOverviewText.setText("退出全览"); + mDisplayOverviewText.setTextSize(TypedValue.COMPLEX_UNIT_PX, + getResources().getDimensionPixelSize(R.dimen.module_ext_display_overview_textSize)); + mCameraMode.setVisibility(View.GONE); } else { - mDisplayOverviewText.setText( "全览" ); - mDisplayOverviewText.setTextSize( TypedValue.COMPLEX_UNIT_PX, getResources().getDimensionPixelSize( R.dimen.module_ext_display_overview_textSize_large ) ); - if(CustomNaviInterrupter.getInstance().interrupt()){ + mDisplayOverviewText.setText("全览"); + mDisplayOverviewText.setTextSize(TypedValue.COMPLEX_UNIT_PX, + getResources().getDimensionPixelSize(R.dimen.module_ext_display_overview_textSize_large)); + if (CustomNaviInterrupter.getInstance().interrupt()) { mCameraMode.setVisibility(View.GONE); - }else { + } else { mCameraMode.setVisibility(View.VISIBLE); } } @@ -528,40 +500,41 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent } private void doFrameAnimOnUploadButton() { - if ( mUploadFrameAnimHandler == null ) { - mUploadFrameAnimHandler = new Handler( Looper.getMainLooper() ) { + if (mUploadFrameAnimHandler == null) { + mUploadFrameAnimHandler = new Handler(Looper.getMainLooper()) { @Override - public void handleMessage( Message msg ) { - super.handleMessage( msg ); - if ( msg.what == MSG_FRAME_ANIM ) { - if ( mUploadingFrameRes == null || mUploadingFrameRes.length == 0 ) { - if ( mUploading != null ) { - mUploading.setVisibility( View.GONE ); + public void handleMessage(Message msg) { + super.handleMessage(msg); + if (msg.what == MSG_FRAME_ANIM) { + if (mUploadingFrameRes == null || mUploadingFrameRes.length == 0) { + if (mUploading != null) { + mUploading.setVisibility(View.GONE); } - if ( mUpload != null ) { - mUpload.setVisibility( View.VISIBLE ); + if (mUpload != null) { + mUpload.setVisibility(View.VISIBLE); } return; } - if ( !mMogoStatusManager.isUploading() ) { + if (!mMogoStatusManager.isUploading()) { mCurrentUploadFrame = 0; return; } - if ( mUploading != null ) { - if ( mCurrentUploadFrame == mUploadingFrameRes.length ) { + if (mUploading != null) { + if (mCurrentUploadFrame == mUploadingFrameRes.length) { mCurrentUploadFrame = 12; } - mUploading.setImageResource( mUploadingFrameRes[mCurrentUploadFrame++ % mUploadingFrameRes.length] ); + mUploading.setImageResource(mUploadingFrameRes[mCurrentUploadFrame++ % mUploadingFrameRes.length]); } - mUploadFrameAnimHandler.sendEmptyMessageDelayed( MSG_FRAME_ANIM, TIME_FRAME_INTERVAL_TIME ); - } else if ( msg.what == MSG_STOP_ANIM ) { - mStatusManager.setUploadingStatus( TAG, false ); + mUploadFrameAnimHandler.sendEmptyMessageDelayed(MSG_FRAME_ANIM, + TIME_FRAME_INTERVAL_TIME); + } else if (msg.what == MSG_STOP_ANIM) { + mStatusManager.setUploadingStatus(TAG, false); } } }; } - mUploadFrameAnimHandler.sendEmptyMessage( MSG_FRAME_ANIM ); + mUploadFrameAnimHandler.sendEmptyMessage(MSG_FRAME_ANIM); // 30s 后无论成功与否,停止动画 - mUploadFrameAnimHandler.sendEmptyMessageDelayed( MSG_STOP_ANIM, 30_000 ); + mUploadFrameAnimHandler.sendEmptyMessageDelayed(MSG_STOP_ANIM, 30_000); } } 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 80e64a0dd2..e93ab8a7b9 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 @@ -1,51 +1,11 @@ package com.mogo.module.extensions.entrance; import android.content.Context; -import android.content.Intent; -import android.text.TextUtils; -import android.util.ArrayMap; -import android.util.Log; import androidx.annotation.NonNull; import androidx.lifecycle.LifecycleOwner; -import com.alibaba.android.arouter.launcher.ARouter; 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.extensions.ExtensionsModuleConst; -import com.mogo.module.extensions.net.UserInfoNetApiServices; -import com.mogo.module.extensions.userinfo.UserInfo; -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.module.share.manager.UploadHelper; -import com.mogo.service.IMogoServiceApis; -import com.mogo.service.MogoServicePaths; -import com.mogo.service.analytics.IMogoAnalytics; -import com.mogo.service.intent.IMogoIntentListener; -import com.mogo.service.intent.IMogoIntentManager; -import com.mogo.service.network.IMogoNetwork; -import com.mogo.service.statusmanager.IMogoStatusManager; -import com.mogo.utils.digest.DigestUtils; -import com.mogo.utils.logger.Logger; -import com.zhidao.auto.platform.util.DeviceUtil; - -import org.json.JSONException; -import org.json.JSONObject; - -import java.util.HashMap; -import java.util.Map; - -import io.reactivex.SingleObserver; -import io.reactivex.android.schedulers.AndroidSchedulers; -import io.reactivex.disposables.Disposable; -import io.reactivex.schedulers.Schedulers; - -import static com.mogo.module.authorize.authprovider.invoke.AuthorizeInvokerConstant.AUTHORIZE_TYPE_LAUNCHER_SHARE; /** * @author congtaowang @@ -54,353 +14,22 @@ import static com.mogo.module.authorize.authprovider.invoke.AuthorizeInvokerCons * 描述 */ public class EntrancePresenter extends Presenter { - private static final String REPORT_TANLU_BLOCK = "10007"; - private static final String REPORT_TANLU_TRAFFIC_CHECK = "10002"; - private static final String REPORT_TANLU_CLOSURE = "10003"; - private Context mContext; - private IMogoAnalytics mAnalytics; - private static final String TAG = "EntranceFragment"; - private IMogoIntentManager mogoIntentManager; - private IMogoAuthorizeModuleManager mIMogoAuthorizeModuleManager; - private String mVoiceCmdType; //一级命令 - private String mVoiceCmdShareType; //对某些一级命令里面细分的类型做处理 - private IMogoStatusManager mStatusManager; - - public EntrancePresenter(Context context, EntranceView view, - IMogoAuthorizeModuleManager authorizeModuleManager) { + public EntrancePresenter(Context context, EntranceView view) { super(view); - mContext = context; - IMogoServiceApis apis = - (IMogoServiceApis) ARouter.getInstance().build(MogoServicePaths.PATH_SERVICE_APIS).navigation(mContext); - mAnalytics = apis.getAnalyticsApi(); - mogoIntentManager = apis.getIntentManagerApi(); - mIMogoAuthorizeModuleManager = authorizeModuleManager; - mStatusManager = apis.getStatusManagerApi(); - - registerUnWake(); - registerAwakeVoice(); } - private void registerUnWake() { -// AIAssist.getInstance( mContext ).registerUnWakeupCommand( ExtensionsModuleConst.CLOSE, -// ExtensionsModuleConst.CMD_CLOSE, mogoVoiceListener ); - AIAssist.getInstance(mContext).registerUnWakeupCommand(ExtensionsModuleConst.CANCLE_SHARE - , ExtensionsModuleConst.CMD_CANCLE_SHARE, mogoVoiceListener); - //探路相关上报 - AIAssist.getInstance(mContext).registerUnWakeupCommand(ExtensionsModuleConst.UPLOAD_ROAD_BLOCK, ExtensionsModuleConst.CMD_UPLOAD_BLOCK, mogoVoiceListener); - AIAssist.getInstance(mContext).registerUnWakeupCommand(ExtensionsModuleConst.UPLOAD_TRAFFIC_CHECK, ExtensionsModuleConst.CMD_TRAFFIC_CHECK, mogoVoiceListener); - AIAssist.getInstance(mContext).registerUnWakeupCommand(ExtensionsModuleConst.UPLOAD_ROAD_CLOSURE, ExtensionsModuleConst.CMD_ROAD_CLOSURE, mogoVoiceListener); - } @Override public void onResume(@NonNull LifecycleOwner owner) { super.onResume(owner); } - /** - * 免唤醒语音监听 - */ - private IMogoVoiceCmdCallBack mogoVoiceListener = new IMogoVoiceCmdCallBack() { - @Override - public void onCmdSelected(String cmd) { - Log.d(TAG, - "免唤醒 mogoVoiceListener needAuthorize = " + mIMogoAuthorizeModuleManager.needAuthorize(AUTHORIZE_TYPE_LAUNCHER_SHARE) + " >>>cmd = " + cmd); - mVoiceCmdType = cmd; - if (cmd.equals(ExtensionsModuleConst.CANCLE_SHARE) - /*|| cmd.equals( ExtensionsModuleConst.CLOSE ) */) { //取消分享,关闭页面 - if (mIMogoAuthorizeModuleManager.needAuthorize(AUTHORIZE_TYPE_LAUNCHER_SHARE)) { - mIMogoAuthorizeModuleManager.invokeAuthorization(AUTHORIZE_TYPE_LAUNCHER_SHARE); - } else { - ServiceApisManager.serviceApis.getShareManager().dismissShareDialog(); - } - } else if (cmd.equals(ExtensionsModuleConst.UPLOAD_ROAD_BLOCK)) { //上报拥堵 - if (mIMogoAuthorizeModuleManager.needAuthorize(AUTHORIZE_TYPE_LAUNCHER_SHARE)) { - mIMogoAuthorizeModuleManager.invokeAuthorization(AUTHORIZE_TYPE_LAUNCHER_SHARE); - } else { - uploadRoadCondition(); - } - } else if (cmd.equals(ExtensionsModuleConst.UPLOAD_TRAFFIC_CHECK)) { //上报交通检查 - if (mIMogoAuthorizeModuleManager.needAuthorize(AUTHORIZE_TYPE_LAUNCHER_SHARE)) { - mIMogoAuthorizeModuleManager.invokeAuthorization(AUTHORIZE_TYPE_LAUNCHER_SHARE); - } else { - uploadTrfficCheck(); - } - } else if (cmd.equals(ExtensionsModuleConst.UPLOAD_ROAD_CLOSURE)) { //上报封路 - if (mIMogoAuthorizeModuleManager.needAuthorize(AUTHORIZE_TYPE_LAUNCHER_SHARE)) { - mIMogoAuthorizeModuleManager.invokeAuthorization(AUTHORIZE_TYPE_LAUNCHER_SHARE); - } else { - uploadRoadClosed(); - } - } - } - - @Override - public void onCmdAction(String speakText) { - } - - @Override - public void onCmdCancel(String speakText) { - } - - @Override - public void onSpeakEnd(String speakText) { - } - - @Override - public void onSpeakSelectTimeOut(String speakText) { - } - }; @Override public void onCreate(@NonNull LifecycleOwner owner) { super.onCreate(owner); } - /** - * 注册唤醒命令 - */ - private void registerAwakeVoice() { - mogoIntentManager.registerIntentListener(ExtensionsModuleConst.UPLOAD_ROAD_CONDITION, - mogoIntentListener); - mogoIntentManager.registerIntentListener(ExtensionsModuleConst.GO_TO_SHARE, - mogoIntentListener); - mogoIntentManager.registerIntentListener(ExtensionsModuleConst.SHARE_DIALOG_CLOSE, - mogoIntentListener); - mogoIntentManager.registerIntentListener(ExtensionsModuleConst.UPLOAD_ROAD_CONDITION_AWAKEN, mogoIntentListener); - mogoIntentManager.registerIntentListener(ExtensionsModuleConst.NO_REPLY_SHARE_DIALOG_CLOSE, mogoIntentListener); - } - - /** - * 唤醒语音 - */ - private IMogoIntentListener mogoIntentListener = new IMogoIntentListener() { - @Override - public void onIntentReceived(String intentStr, Intent intent) { - mVoiceCmdType = intentStr; - EntranceFragment.isClickShare = false; - - String data = intent.getStringExtra("data"); - Log.d(TAG, "唤醒 mogoIntentListener intentStr =" + intentStr + ">>data =" + data + " " + - ">>> needAuthorize = " + mIMogoAuthorizeModuleManager.needAuthorize(AUTHORIZE_TYPE_LAUNCHER_SHARE)); - if (intentStr.equals(ExtensionsModuleConst.GO_TO_SHARE)) { //我要分享 --ok - String conditionData = intent.getStringExtra("data"); - Log.d(TAG, - "唤醒 mogoIntentListener intentStr =" + intentStr + ">>conditionData =" + conditionData); - try { - JSONObject jsonObject = new JSONObject(data); - String typeString = jsonObject.get("ob").toString(); - Log.d(TAG, "mogoIntentListener specified typeString = " + typeString); - mVoiceCmdShareType = typeString; - if (!TextUtils.isEmpty(typeString)) { - if (typeString.equals("封路")) { - if (mIMogoAuthorizeModuleManager.needAuthorize(AUTHORIZE_TYPE_LAUNCHER_SHARE)) { - mIMogoAuthorizeModuleManager.invokeAuthorization(AUTHORIZE_TYPE_LAUNCHER_SHARE); - } else { - Log.d(TAG, "mogoIntentListener 封路 -------> "); - uploadRoadClosed(); - } - } else if (typeString.equals("油价")) { - if (mIMogoAuthorizeModuleManager.needAuthorize(AUTHORIZE_TYPE_LAUNCHER_SHARE)) { - mIMogoAuthorizeModuleManager.invokeAuthorization(AUTHORIZE_TYPE_LAUNCHER_SHARE); - } else { - Log.d(TAG, "mogoIntentListener 油价 -------> "); - shareOilPrice(); - } - } else if (typeString.equals("交通检查")) { - if (mIMogoAuthorizeModuleManager.needAuthorize(AUTHORIZE_TYPE_LAUNCHER_SHARE)) { - mIMogoAuthorizeModuleManager.invokeAuthorization(AUTHORIZE_TYPE_LAUNCHER_SHARE); - } else { - Log.d(TAG, "mogoIntentListener 交通检查 -------> "); - uploadTrfficCheck(); - } - } - } else { - if (mIMogoAuthorizeModuleManager.needAuthorize(AUTHORIZE_TYPE_LAUNCHER_SHARE)) { - mIMogoAuthorizeModuleManager.invokeAuthorization(AUTHORIZE_TYPE_LAUNCHER_SHARE); - } else { - ServiceApisManager.serviceApis.getShareManager().dismissShareDialog(); - Log.d(TAG, "mogoIntentListener 我要分享 ----> "); - traceData("2"); - } - } - } catch (Exception e) { - e.printStackTrace(); - } - } else if (intentStr.equals(ExtensionsModuleConst.UPLOAD_ROAD_CONDITION_AWAKEN)) { - //分享路况/上报路况/上报拥堵 唤醒 - if (mIMogoAuthorizeModuleManager.needAuthorize(AUTHORIZE_TYPE_LAUNCHER_SHARE)) { - mIMogoAuthorizeModuleManager.invokeAuthorization(AUTHORIZE_TYPE_LAUNCHER_SHARE); - } else { - JSONObject jsonObject = null; - try { - jsonObject = new JSONObject(data); - String typeString = jsonObject.get("obj").toString(); - Logger.d(TAG, "mogiIntentListener 准备上报拥堵: " + typeString); - if ("拥堵".equals(typeString)) { - uploadRoadCondition(); - Log.d(TAG, "mogoIntentListener 上报拥堵 唤醒 ----> "); - } - } catch (JSONException e) { - e.printStackTrace(); - } - - } - } else if (intentStr.equals(ExtensionsModuleConst.SHARE_DIALOG_CLOSE)) { //关闭分享框 唤醒 - if (mIMogoAuthorizeModuleManager.needAuthorize(AUTHORIZE_TYPE_LAUNCHER_SHARE)) { - mIMogoAuthorizeModuleManager.invokeAuthorization(AUTHORIZE_TYPE_LAUNCHER_SHARE); - } else { - ServiceApisManager.serviceApis.getShareManager().dismissShareDialog(); - Log.d(TAG, "mogoIntentListener 关闭分享框 唤醒 ----> "); - } - } else if (intentStr.equals(ExtensionsModuleConst.NO_REPLY_SHARE_DIALOG_CLOSE)) { - // 两次未回复关闭对话框 - if (mIMogoAuthorizeModuleManager.needAuthorize(AUTHORIZE_TYPE_LAUNCHER_SHARE)) { - mIMogoAuthorizeModuleManager.invokeAuthorization(AUTHORIZE_TYPE_LAUNCHER_SHARE); - } else { - ServiceApisManager.serviceApis.getShareManager().dismissShareDialog(); - Logger.d(TAG, "mogoIntentListener 两次未回复关闭对话框"); - } - } else if (intentStr.equals(ExtensionsModuleConst.UPLOAD_ROAD_CONDITION)) { //上报路况 - // 免唤醒 --ok - if (mIMogoAuthorizeModuleManager.needAuthorize(AUTHORIZE_TYPE_LAUNCHER_SHARE)) { - mIMogoAuthorizeModuleManager.invokeAuthorization(AUTHORIZE_TYPE_LAUNCHER_SHARE); - } else { - uploadRoadCondition(); - } - } - } - }; - - - /** - * 处理需要授权的命令 TODO - */ - public void handleNeedAuthorizeCmd() { - Log.e(TAG, "handleNeedAuthorizeCmd mVoiceCmdType = " + mVoiceCmdType + " >>> " + - "mVoiceCmdShareType = " + mVoiceCmdShareType); - 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)) { //关闭分享弹框 - ServiceApisManager.serviceApis.getShareManager().dismissShareDialog(); - } else if (mVoiceCmdType.equals(ExtensionsModuleConst.GO_TO_SHARE)) { //打开分享弹框 - if (!TextUtils.isEmpty(mVoiceCmdShareType)) { - if (mVoiceCmdShareType.equals("封路")) { - Log.d(TAG, "handleNeedAuthorizeCmd 封路 -------> "); - uploadRoadClosed(); - } else if (mVoiceCmdShareType.equals("油价")) { - Log.d(TAG, "handleNeedAuthorizeCmd 油价 -------> "); - shareOilPrice(); - } else if (mVoiceCmdShareType.equals("交通检查")) { - Log.d(TAG, "handleNeedAuthorizeCmd 交通检查 -------> "); - uploadTrfficCheck(); - } - } else { - ServiceApisManager.serviceApis.getShareManager().showShareDialog(); - Log.d(TAG, "handleNeedAuthorizeCmd 我要分享 ----> "); - traceData("2"); - } - } else if (mVoiceCmdType.equals(ExtensionsModuleConst.UPLOAD_TRAFFIC_CHECK)) { //上报交通检查 - Log.d(TAG, "handleNeedAuthorizeCmd 上报交通检查 ----> "); - uploadTrfficCheck(); - } else if (mVoiceCmdType.equals(ExtensionsModuleConst.UPLOAD_ROAD_CLOSURE)) { //上报封路 - Log.d(TAG, "handleNeedAuthorizeCmd 上报封路 ----> "); - uploadRoadClosed(); - } else if (mVoiceCmdType.equals(ExtensionsModuleConst.UPLOAD_ROAD_BLOCK) - || mVoiceCmdType.equals(ExtensionsModuleConst.UPLOAD_ROAD_CONDITION_AWAKEN) - || mVoiceCmdType.equals(ExtensionsModuleConst.UPLOAD_ROAD_CONDITION)) { - //上报拥堵, 分享路况, 上报路况 - Log.d(TAG, "handleNeedAuthorizeCmd 上报路况 ----> "); - uploadRoadCondition(); - } - } else { - Log.e(TAG, "handleNeedAuthorizeCmd mVoiceCmdType == null "); - } - } - - private void uploadRoadCondition() { - mStatusManager.setUploadingStatus("CARD_TYPE_ROAD_CONDITION", true); - - traceTanluData("2"); - sendShareReceiver(REPORT_TANLU_BLOCK); - Logger.d("EntrancePresenter", "mogoIntentListener 上报路况 ----> "); - traceTypeData("1"); - ServiceApisManager.serviceApis.getShareManager().dismissShareDialog(); - } - - private void uploadTrfficCheck() { - mStatusManager.setUploadingStatus("CARD_TYPE_ROAD_CONDITION", true); - sendShareReceiver(REPORT_TANLU_TRAFFIC_CHECK); - Logger.d("EntrancePresenter", "mogoIntentListener 分享交通检查 ----> "); - traceTypeData("3"); - ServiceApisManager.serviceApis.getShareManager().dismissShareDialog(); - } - - private void uploadRoadClosed() { - mStatusManager.setUploadingStatus("CARD_TYPE_ROAD_CONDITION", true); - sendShareReceiver(REPORT_TANLU_CLOSURE); - Logger.d("EntrancePresenter", "mogoIntentListener 分享封路 ----> "); - traceTypeData("4"); - ServiceApisManager.serviceApis.getShareManager().dismissShareDialog(); - } - - /** - * 分享/上报按钮点击 from=1 手动点击 from=2 语音打开 - * - * @param from - */ - private void traceData(String from) { - Map properties = new HashMap<>(); - properties.put("from", from); - mAnalytics.track(ExtensionsModuleConst.LAUNCHER_SHARE_CLICK, properties); - } - - private void shareOilPrice() { -// Intent intent = new Intent(); -// intent.setData(Uri.parse("freshthing://com.zhidao.fresh.things/shareOilPrice")); -// getContext().startActivity(intent); -// traceTypeData("2"); -// ServiceApisManager.serviceApis.getShareManager().dismissShareDialog(); - } - - /** - * 发送广播 上报路况 - */ - private void sendShareReceiver(String type) { - Logger.d("EntrancePresenter", "TanluCardViewFragment sendShareReceiver ---->"); - UploadHelper.INSTANCE.upload(getContext(),type); - } - - /** - * type=1 路况 - *

- * type=2 油价 - *

- * type=3 交通检查 - *

- * type=4 封路 - * - * @param type - */ - private void traceTypeData(String type) { - Map properties = new HashMap<>(); - properties.put("type", type); - mAnalytics.track(ExtensionsModuleConst.LAUNCHER_SHARE_TYPE, properties); - } - - private void traceTanluData(String type) { - Map properties = new HashMap<>(); - properties.put("type", type); - mAnalytics.track(ExtensionsModuleConst.CARNET_USER_UPLOAD, properties); - } - - - public void unregisterUnWake() { - AIAssist.getInstance(mContext).unregisterUnWakeupCommand(ExtensionsModuleConst.CANCLE_SHARE); - AIAssist.getInstance(mContext).unregisterUnWakeupCommand(ExtensionsModuleConst.CLOSE); - AIAssist.getInstance(mContext).unregisterUnWakeupCommand(ExtensionsModuleConst.UPLOAD_ROAD_BLOCK); - AIAssist.getInstance(mContext).unregisterUnWakeupCommand(ExtensionsModuleConst.UPLOAD_TRAFFIC_CHECK); - AIAssist.getInstance(mContext).unregisterUnWakeupCommand(ExtensionsModuleConst.UPLOAD_ROAD_CLOSURE); - } } diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/net/UserInfoNetApiServices.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/net/UserInfoNetApiServices.java index ea1e864391..c551dff37f 100644 --- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/net/UserInfoNetApiServices.java +++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/net/UserInfoNetApiServices.java @@ -1,7 +1,5 @@ package com.mogo.module.extensions.net; -import com.mogo.module.authorize.model.BaseResponse; -import com.mogo.module.extensions.userinfo.UserInfo; import com.mogo.module.extensions.userinfo.UserInfoResponse; import java.util.Map; 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 c05b188587..0b812c91bd 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,21 +2,22 @@ package com.mogo.module.share; import android.content.Context; import android.content.Intent; -import android.content.ServiceConnection; import com.alibaba.android.arouter.facade.annotation.Route; import com.alibaba.android.arouter.launcher.ARouter; +import com.mogo.commons.debug.DebugConfig; +import com.mogo.commons.voice.AIAssist; +import com.mogo.commons.voice.IMogoVoiceCmdCallBack; import com.mogo.module.authorize.authprovider.invoke.AuthorizeConstant; import com.mogo.module.authorize.authprovider.invoke.AuthorizeInvokerConstant; -import com.mogo.module.authorize.authprovider.invoke.IMogoAuthorizeContentListener; import com.mogo.module.authorize.authprovider.module.IMogoAcquireAuthorizeListener; import com.mogo.module.authorize.authprovider.module.IMogoAuthorizeModuleManager; -import com.mogo.module.authorize.model.bean.Agreement; +import com.mogo.module.share.bean.StepAfterAuth; +import com.mogo.module.share.bean.StepAfterAuthKt; import com.mogo.module.share.constant.ShareConstants; import com.mogo.module.share.dialog.LaucherShareDialog; import com.mogo.module.share.manager.ServiceApisManager; import com.mogo.module.share.manager.UploadHelper; -import com.mogo.service.IMogoServiceApis; import com.mogo.service.MogoServicePaths; import com.mogo.service.intent.IMogoIntentListener; import com.mogo.service.intent.IMogoIntentManager; @@ -25,18 +26,48 @@ import com.mogo.utils.TipToast; import com.mogo.utils.logger.Logger; import org.jetbrains.annotations.NotNull; -import org.json.JSONException; import org.json.JSONObject; +import static com.mogo.module.share.bean.StepAfterAuthKt.STEP_AFTER_AUTH_TYPE_SEEK_HELP; +import static com.mogo.module.share.bean.StepAfterAuthKt.STEP_AFTER_AUTH_TYPE_SHOW_DIALOG; +import static com.mogo.module.share.bean.StepAfterAuthKt.STEP_AFTER_AUTH_TYPE_UPLOAD; +import static com.mogo.module.share.constant.ShareConstants.CMD_CANCEL_SHARE; +import static com.mogo.module.share.constant.ShareConstants.CMD_ROAD_CLOSURE; +import static com.mogo.module.share.constant.ShareConstants.CMD_TRAFFIC_CHECK; +import static com.mogo.module.share.constant.ShareConstants.CMD_UPLOAD_ACCIDENT; +import static com.mogo.module.share.constant.ShareConstants.CMD_UPLOAD_BLOCK; import static com.mogo.module.share.constant.ShareConstants.TYPE_ACCIDENT; +import static com.mogo.module.share.constant.ShareConstants.TYPE_BLOCK; +import static com.mogo.module.share.constant.ShareConstants.TYPE_CLOSURE; import static com.mogo.module.share.constant.ShareConstants.TYPE_DENSE_FOG; import static com.mogo.module.share.constant.ShareConstants.TYPE_REAL_TIME_TRAFFIC; import static com.mogo.module.share.constant.ShareConstants.TYPE_ROAD_CONSTRUCTION; import static com.mogo.module.share.constant.ShareConstants.TYPE_ROAD_ICY; import static com.mogo.module.share.constant.ShareConstants.TYPE_STAGNANT_WATER; +import static com.mogo.module.share.constant.ShareConstants.TYPE_TRAFFIC_CHECK; +import static com.mogo.module.share.constant.ShareConstants.UNWAKE_CANCEL_SHARE; +import static com.mogo.module.share.constant.ShareConstants.UNWAKE_UPLOAD_ACCIDENT; +import static com.mogo.module.share.constant.ShareConstants.UNWAKE_UPLOAD_DENSE_FOG; +import static com.mogo.module.share.constant.ShareConstants.UNWAKE_UPLOAD_REAL_TIME_TRAFFIC; +import static com.mogo.module.share.constant.ShareConstants.UNWAKE_UPLOAD_ROAD_BLOCK; +import static com.mogo.module.share.constant.ShareConstants.UNWAKE_UPLOAD_ROAD_CLOSURE; +import static com.mogo.module.share.constant.ShareConstants.UNWAKE_UPLOAD_ROAD_CONDITION; +import static com.mogo.module.share.constant.ShareConstants.UNWAKE_UPLOAD_ROAD_CONSTRUCTION; +import static com.mogo.module.share.constant.ShareConstants.UNWAKE_UPLOAD_ROAD_ICY; +import static com.mogo.module.share.constant.ShareConstants.UNWAKE_UPLOAD_SEEK_HELP; +import static com.mogo.module.share.constant.ShareConstants.UNWAKE_UPLOAD_STAGNANT_WATER; +import static com.mogo.module.share.constant.ShareConstants.UNWAKE_UPLOAD_TRAFFIC_CHECK; +import static com.mogo.module.share.constant.ShareConstants.UPLOAD_DENSE_FOG; +import static com.mogo.module.share.constant.ShareConstants.UPLOAD_REAL_TIME_TRAFFIC; +import static com.mogo.module.share.constant.ShareConstants.UPLOAD_ROAD_CONSTRUCTION; +import static com.mogo.module.share.constant.ShareConstants.UPLOAD_ROAD_ICY; +import static com.mogo.module.share.constant.ShareConstants.UPLOAD_SEEK_HELP; +import static com.mogo.module.share.constant.ShareConstants.UPLOAD_STAGNANT_WATER; import static com.mogo.module.share.constant.ShareConstants.VOICE_CMD_GO_TO_SHARE; +import static com.mogo.module.share.constant.ShareConstants.VOICE_CMD_NO_REPLY_SHARE_DIALOG_CLOSE; import static com.mogo.module.share.constant.ShareConstants.VOICE_CMD_PUB_ROAD_CONDITION; import static com.mogo.module.share.constant.ShareConstants.VOICE_CMD_PUB_TROUBLE_HELP; +import static com.mogo.module.share.constant.ShareConstants.VOICE_CMD_SHARE_DIALOG_CLOSE; /** * 分享框的逻辑都放到这里吧 @@ -46,19 +77,20 @@ import static com.mogo.module.share.constant.ShareConstants.VOICE_CMD_PUB_TROUBL * @since 2020-01-10 */ @Route(path = MogoServicePaths.PATH_SHARE) -public class ShareControl implements IMogoShareManager { +public class ShareControl implements IMogoShareManager, IMogoIntentListener, IMogoVoiceCmdCallBack { private static final String TAG = "ShareControl"; private Context mContext; private LaucherShareDialog mShareDialog; private IMogoAuthorizeModuleManager authorizeModuleManager; + private IMogoIntentManager intentManager; @Override public void showShareDialog() { if (authorizeModuleManager.needAuthorize(AuthorizeInvokerConstant.AUTHORIZE_TYPE_LAUNCHER_SHARE)) { authorizeModuleManager.invokeAuthorization(AuthorizeInvokerConstant.AUTHORIZE_TYPE_LAUNCHER_SHARE); - }else{ + } else { realShowDialog(); } } @@ -70,15 +102,18 @@ public class ShareControl implements IMogoShareManager { } } - private void realShowDialog(){ + private void realShowDialog() { if (mShareDialog == null) { mShareDialog = new LaucherShareDialog(mContext); } mShareDialog.show(); } + private StepAfterAuth stepAfterAuth = new StepAfterAuth(-1, ""); + @Override public void init(Context context) { + Logger.d(TAG,"start init===="); mContext = context; ServiceApisManager.INSTANCE.init(context); authorizeModuleManager = @@ -86,7 +121,21 @@ public class ShareControl implements IMogoShareManager { authorizeModuleManager.registerAuthorizeListener(AuthorizeInvokerConstant.AUTHORIZE_TYPE_LAUNCHER_SHARE, new IMogoAcquireAuthorizeListener() { @Override public void authorizeSuccess() { - realShowDialog(); + switch (stepAfterAuth.getType()) { + case STEP_AFTER_AUTH_TYPE_SHOW_DIALOG: + realShowDialog(); + break; + case STEP_AFTER_AUTH_TYPE_UPLOAD: + UploadHelper.INSTANCE.upload(mContext, stepAfterAuth.getUploadType()); + dismissShareDialog(); + break; + case STEP_AFTER_AUTH_TYPE_SEEK_HELP: + seekHelp(); + dismissShareDialog(); + break; + default: + break; + } } @Override @@ -99,75 +148,264 @@ public class ShareControl implements IMogoShareManager { TipToast.tip("未授权,无法分享"); } }); - ServiceApisManager.serviceApis.getIntentManagerApi().registerIntentListener("ShareDialog", new IMogoIntentListener() { - @Override - public void onIntentReceived(String intentStr, Intent intent) { - // 此处只接受处理语音相关广播 - String command = intent.getStringExtra("command"); - Logger.d(TAG, "收到唤醒词指令: " + command); - try { - switch (command) { - case VOICE_CMD_PUB_TROUBLE_HELP: { - // 开启服务,准备上报求助 - Intent seekHelp = new Intent(mContext, VoiceCmdService.class); - seekHelp.putExtra(ShareConstants.VOICE_CMD_SERVICE_EVENT_KEY, - ShareConstants.VOICE_CMD_SERVICE_SEEK_HELP); - mContext.startService(seekHelp); - dismissShareDialog(); - break; - } - case VOICE_CMD_GO_TO_SHARE: { - String ob = new JSONObject(intent.getStringExtra("data")).opt("ob").toString(); - Logger.d(TAG, "ob: $ob"); - switch (ob) { - case "积水": { - UploadHelper.INSTANCE.upload(mContext, TYPE_STAGNANT_WATER); - dismissShareDialog(); - break; - } - case "积冰": { - UploadHelper.INSTANCE.upload(mContext, TYPE_ROAD_ICY); - dismissShareDialog(); - break; - } - case "雾": { - UploadHelper.INSTANCE.upload(mContext, TYPE_DENSE_FOG); - dismissShareDialog(); - break; - } - case "交通事故": { - UploadHelper.INSTANCE.upload(mContext, TYPE_ACCIDENT); - dismissShareDialog(); - break; - } - case "施工": { - UploadHelper.INSTANCE.upload(mContext, TYPE_ROAD_CONSTRUCTION); - dismissShareDialog(); - break; - } - default: - break; + intentManager = ServiceApisManager.serviceApis.getIntentManagerApi(); + intentManager.registerIntentListener(VOICE_CMD_GO_TO_SHARE, this); + intentManager.registerIntentListener(VOICE_CMD_PUB_TROUBLE_HELP, this); + intentManager.registerIntentListener(VOICE_CMD_PUB_ROAD_CONDITION, this); + intentManager.registerIntentListener(VOICE_CMD_SHARE_DIALOG_CLOSE, this); + intentManager.registerIntentListener(VOICE_CMD_NO_REPLY_SHARE_DIALOG_CLOSE, this); + intentManager.registerIntentListener(UNWAKE_UPLOAD_ROAD_CONDITION, this); + + // 免唤醒词注册 + AIAssist.getInstance(context).registerUnWakeupCommand(UNWAKE_UPLOAD_ROAD_BLOCK, + CMD_UPLOAD_BLOCK, this); + AIAssist.getInstance(context).registerUnWakeupCommand(UNWAKE_UPLOAD_TRAFFIC_CHECK, + CMD_TRAFFIC_CHECK, this); + AIAssist.getInstance(context).registerUnWakeupCommand(UNWAKE_UPLOAD_ROAD_CLOSURE, + CMD_ROAD_CLOSURE, this); + AIAssist.getInstance(context).registerUnWakeupCommand(UNWAKE_CANCEL_SHARE, + CMD_CANCEL_SHARE, this); + if (DebugConfig.getAIType() == DebugConfig.AI_TYPE_TXZ) { + // 使用同行者语义你的话,增加如下免唤醒词 + AIAssist.getInstance(context).registerUnWakeupCommand(UNWAKE_UPLOAD_ACCIDENT, + CMD_UPLOAD_ACCIDENT, this); + AIAssist.getInstance(context).registerUnWakeupCommand(UNWAKE_UPLOAD_REAL_TIME_TRAFFIC, + UPLOAD_REAL_TIME_TRAFFIC, this); + AIAssist.getInstance(context).registerUnWakeupCommand(UNWAKE_UPLOAD_SEEK_HELP, + UPLOAD_SEEK_HELP, this); + AIAssist.getInstance(context).registerUnWakeupCommand(UNWAKE_UPLOAD_STAGNANT_WATER, + UPLOAD_STAGNANT_WATER, this); + AIAssist.getInstance(context).registerUnWakeupCommand(UNWAKE_UPLOAD_ROAD_ICY, + UPLOAD_ROAD_ICY, this); + AIAssist.getInstance(context).registerUnWakeupCommand(UNWAKE_UPLOAD_DENSE_FOG, + UPLOAD_DENSE_FOG, this); + AIAssist.getInstance(context).registerUnWakeupCommand(UNWAKE_UPLOAD_ROAD_CONSTRUCTION, + UPLOAD_ROAD_CONSTRUCTION, this); + } + + Logger.d(TAG,"init over===="); + } + + @Override + public void onCmdSelected(String cmd) { + switch (cmd) { + case UNWAKE_CANCEL_SHARE: + dismissShareDialog(); + break; + case UNWAKE_UPLOAD_ROAD_BLOCK: + if (needAuth()) { + goAuth(STEP_AFTER_AUTH_TYPE_UPLOAD, TYPE_BLOCK); + } else { + UploadHelper.INSTANCE.upload(mContext, TYPE_BLOCK); + } + break; + case UNWAKE_UPLOAD_TRAFFIC_CHECK: + if (needAuth()) { + goAuth(STEP_AFTER_AUTH_TYPE_UPLOAD, TYPE_TRAFFIC_CHECK); + } else { + UploadHelper.INSTANCE.upload(mContext, TYPE_TRAFFIC_CHECK); + } + break; + case UNWAKE_UPLOAD_ROAD_CLOSURE: + if (needAuth()) { + goAuth(STEP_AFTER_AUTH_TYPE_UPLOAD, TYPE_CLOSURE); + } else { + UploadHelper.INSTANCE.upload(mContext, TYPE_CLOSURE); + } + break; + case UNWAKE_UPLOAD_ACCIDENT: + if (needAuth()) { + goAuth(STEP_AFTER_AUTH_TYPE_UPLOAD, TYPE_ACCIDENT); + } else { + UploadHelper.INSTANCE.upload(mContext, TYPE_ACCIDENT); + } + break; + case UNWAKE_UPLOAD_REAL_TIME_TRAFFIC: + if (needAuth()) { + goAuth(STEP_AFTER_AUTH_TYPE_UPLOAD, TYPE_REAL_TIME_TRAFFIC); + } else { + UploadHelper.INSTANCE.upload(mContext, TYPE_REAL_TIME_TRAFFIC); + } + break; + case UNWAKE_UPLOAD_SEEK_HELP: + if (needAuth()) { + goAuth(STEP_AFTER_AUTH_TYPE_SEEK_HELP, TYPE_BLOCK); + } else { + seekHelp(); + } + break; + case UNWAKE_UPLOAD_STAGNANT_WATER: + if (needAuth()) { + goAuth(STEP_AFTER_AUTH_TYPE_UPLOAD, TYPE_STAGNANT_WATER); + } else { + UploadHelper.INSTANCE.upload(mContext, TYPE_STAGNANT_WATER); + } + break; + case UNWAKE_UPLOAD_ROAD_ICY: + if (needAuth()) { + goAuth(STEP_AFTER_AUTH_TYPE_UPLOAD, TYPE_ROAD_ICY); + } else { + UploadHelper.INSTANCE.upload(mContext, TYPE_ROAD_ICY); + } + break; + case UNWAKE_UPLOAD_DENSE_FOG: + if (needAuth()) { + goAuth(STEP_AFTER_AUTH_TYPE_UPLOAD, TYPE_DENSE_FOG); + } else { + UploadHelper.INSTANCE.upload(mContext, TYPE_DENSE_FOG); + } + break; + case UNWAKE_UPLOAD_ROAD_CONSTRUCTION: + if (needAuth()) { + goAuth(STEP_AFTER_AUTH_TYPE_UPLOAD, TYPE_ROAD_CONSTRUCTION); + } else { + UploadHelper.INSTANCE.upload(mContext, TYPE_ROAD_CONSTRUCTION); + } + break; + default: + break; + } + } + + @Override + public void onIntentReceived(String intentStr, Intent intent) { + // 此处只接受处理语音相关广播 + Logger.d(TAG, "收到唤醒词指令: " + intentStr); + try { + switch (intentStr) { + case VOICE_CMD_PUB_TROUBLE_HELP: + if (needAuth()) { + goAuth(STEP_AFTER_AUTH_TYPE_SEEK_HELP, TYPE_DENSE_FOG); + } else { + // 开启服务,准备上报求助 + seekHelp(); + dismissShareDialog(); + } + break; + case VOICE_CMD_GO_TO_SHARE: + String ob = + new JSONObject(intent.getStringExtra("data")).opt("ob").toString(); + Logger.d(TAG, "ob: " + ob); + switch (ob) { + case "积水": + if (needAuth()) { + goAuth(STEP_AFTER_AUTH_TYPE_UPLOAD, TYPE_STAGNANT_WATER); + } else { + UploadHelper.INSTANCE.upload(mContext, TYPE_STAGNANT_WATER); + dismissShareDialog(); } - } - case VOICE_CMD_PUB_ROAD_CONDITION: { - String ob = - new JSONObject(intent.getStringExtra("data")).opt("obj").toString(); - Logger.d(TAG, "ob:" + ob); - if ("路况".equals(ob)) { - // 上报实时路况 + break; + case "积冰": + if (needAuth()) { + goAuth(STEP_AFTER_AUTH_TYPE_UPLOAD, TYPE_ROAD_ICY); + } else { + UploadHelper.INSTANCE.upload(mContext, TYPE_ROAD_ICY); + dismissShareDialog(); + } + break; + case "雾": + if (needAuth()) { + goAuth(STEP_AFTER_AUTH_TYPE_UPLOAD, TYPE_DENSE_FOG); + } else { + UploadHelper.INSTANCE.upload(mContext, TYPE_DENSE_FOG); + dismissShareDialog(); + } + break; + case "交通事故": + if (needAuth()) { + goAuth(STEP_AFTER_AUTH_TYPE_UPLOAD, TYPE_ACCIDENT); + } else { + UploadHelper.INSTANCE.upload(mContext, TYPE_ACCIDENT); + dismissShareDialog(); + } + break; + case "施工": + if (needAuth()) { + goAuth(STEP_AFTER_AUTH_TYPE_UPLOAD, TYPE_ROAD_CONSTRUCTION); + } else { + UploadHelper.INSTANCE.upload(mContext, TYPE_ROAD_CONSTRUCTION); + dismissShareDialog(); + } + break; + case "封路": + if (needAuth()) { + goAuth(STEP_AFTER_AUTH_TYPE_UPLOAD, TYPE_CLOSURE); + } else { + UploadHelper.INSTANCE.upload(mContext, TYPE_CLOSURE); + dismissShareDialog(); + } + break; + case "交通检查": + if (needAuth()) { + goAuth(STEP_AFTER_AUTH_TYPE_UPLOAD, TYPE_TRAFFIC_CHECK); + } else { + UploadHelper.INSTANCE.upload(mContext, TYPE_TRAFFIC_CHECK); + dismissShareDialog(); + } + break; + default: + showShareDialog(); + break; + } + case VOICE_CMD_PUB_ROAD_CONDITION: + String obCondition = + new JSONObject(intent.getStringExtra("data")).opt("obj").toString(); + Logger.d(TAG, "ob:" + obCondition); + switch (obCondition) { + case "路况": + if (needAuth()) { + goAuth(STEP_AFTER_AUTH_TYPE_UPLOAD, TYPE_REAL_TIME_TRAFFIC); + } else { Logger.d(TAG, "分享框准备触发上报实时路况"); UploadHelper.INSTANCE.upload(mContext, TYPE_REAL_TIME_TRAFFIC); dismissShareDialog(); - break; } - } + break; + case "拥堵": + if (needAuth()) { + goAuth(STEP_AFTER_AUTH_TYPE_UPLOAD, TYPE_BLOCK); + } else { + Logger.d(TAG, "分享框准备触发上报拥堵"); + UploadHelper.INSTANCE.upload(mContext, TYPE_BLOCK); + dismissShareDialog(); + } + break; default: break; } - } catch (Exception e) { - Logger.e(TAG, e, "ShareControl exception"); - } + case VOICE_CMD_SHARE_DIALOG_CLOSE: + dismissShareDialog(); + break; + case VOICE_CMD_NO_REPLY_SHARE_DIALOG_CLOSE: + dismissShareDialog(); + break; + case UNWAKE_UPLOAD_ROAD_CONDITION: + Logger.d(TAG, "免唤醒准备触发上报拥堵"); + UploadHelper.INSTANCE.upload(mContext, TYPE_BLOCK); + dismissShareDialog(); + break; + default: + break; } - }); + } catch (Exception e) { + Logger.e(TAG, e, "ShareControl exception"); + } + } + + private void seekHelp() { + Intent seekHelp = new Intent(mContext, VoiceCmdService.class); + seekHelp.putExtra(ShareConstants.VOICE_CMD_SERVICE_EVENT_KEY, + ShareConstants.VOICE_CMD_SERVICE_SEEK_HELP); + mContext.startService(seekHelp); + } + + private boolean needAuth() { + return authorizeModuleManager.needAuthorize(AuthorizeInvokerConstant.AUTHORIZE_TYPE_LAUNCHER_SHARE); + } + + private void goAuth(int type, String uploadType) { + stepAfterAuth.setType(type); + stepAfterAuth.setUploadType(uploadType); + authorizeModuleManager.invokeAuthorization(AuthorizeInvokerConstant.AUTHORIZE_TYPE_LAUNCHER_SHARE); } } diff --git a/modules/mogo-module-share/src/main/java/com/mogo/module/share/bean/StepAfterAuth.kt b/modules/mogo-module-share/src/main/java/com/mogo/module/share/bean/StepAfterAuth.kt new file mode 100644 index 0000000000..d35dbaab2e --- /dev/null +++ b/modules/mogo-module-share/src/main/java/com/mogo/module/share/bean/StepAfterAuth.kt @@ -0,0 +1,10 @@ +package com.mogo.module.share.bean + +/** + * 授权完成后,下一步要做的事情 + */ +class StepAfterAuth(var type:Int,var uploadType:String) + +const val STEP_AFTER_AUTH_TYPE_SHOW_DIALOG = 1 +const val STEP_AFTER_AUTH_TYPE_UPLOAD = 2 +const val STEP_AFTER_AUTH_TYPE_SEEK_HELP = 3 \ No newline at end of file diff --git a/modules/mogo-module-share/src/main/java/com/mogo/module/share/constant/ShareConstants.java b/modules/mogo-module-share/src/main/java/com/mogo/module/share/constant/ShareConstants.java index 30d347f4a6..2e49900c62 100644 --- a/modules/mogo-module-share/src/main/java/com/mogo/module/share/constant/ShareConstants.java +++ b/modules/mogo-module-share/src/main/java/com/mogo/module/share/constant/ShareConstants.java @@ -8,24 +8,80 @@ package com.mogo.module.share.constant; */ public class ShareConstants { - //埋点数据 - //分享分类 + /** + * 分享分类 + */ public static final String LAUNCHER_SHARE_TYPE = "Launcher_Share_type"; - //分享/上报按钮点击 + /** + * 分享/上报按钮点击 + */ public static final String LAUNCHER_SHARE_CLICK = "Launcher_Share_Click"; - // public static final String CARNET_USER_UPLOAD = "CarNet_user_upload"; public static final String VOICE_CMD_SERVICE_EVENT_KEY = "type"; public static final int VOICE_CMD_SERVICE_SEEK_HELP = 1; // 此处只记录了事故、实时路况、道路积水、道路结冰、浓雾,至于拥堵、交通检查和封路是在extention模块里面管理 - public static final String VOICE_CMD_PUB_TROUBLE_HELP = "com.zhidao.auxiliaryDriving.pubTroubleHelp"; + + public static final String VOICE_CMD_PUB_TROUBLE_HELP = "com.zhidao.auxiliaryDriving" + + ".pubTroubleHelp"; public static final String VOICE_CMD_GO_TO_SHARE = "com.zhidao.share"; + + /** + * 免唤醒词上报拥堵 + */ + public static final String UNWAKE_UPLOAD_ROAD_CONDITION = "command_upload_roadcondition"; + + /** + * 关闭分享框 唤醒 + */ + public static final String VOICE_CMD_SHARE_DIALOG_CLOSE = "com.zhidao.share.close"; + /** + * 两次未回复关闭分享对话框 + */ + public static final String VOICE_CMD_NO_REPLY_SHARE_DIALOG_CLOSE = "com.zhidao.share.dialog" + + ".close"; + + /** + * 免唤醒上报拥堵 + */ + public static final String UNWAKE_UPLOAD_ROAD_BLOCK = "command_upload_block"; + /** + * 免唤醒上报交通检查 + */ + public static final String UNWAKE_UPLOAD_TRAFFIC_CHECK = "command_upload_traffic_check"; + /** + * 免唤醒上报封路 + */ + public static final String UNWAKE_UPLOAD_ROAD_CLOSURE = "command_upload_road_closure"; + + public static final String UNWAKE_UPLOAD_ACCIDENT = "command_upload_accident"; + public static final String UNWAKE_UPLOAD_REAL_TIME_TRAFFIC = "command_upload_real_time_traffic"; + public static final String UNWAKE_UPLOAD_SEEK_HELP = "command_upload_seek_help"; + public static final String UNWAKE_UPLOAD_STAGNANT_WATER = "command_upload_stagnant_water"; + public static final String UNWAKE_UPLOAD_ROAD_ICY = "command_upload_road_icy"; + public static final String UNWAKE_UPLOAD_DENSE_FOG = "command_upload_dense_fog"; + public static final String UNWAKE_UPLOAD_ROAD_CONSTRUCTION = "command_upload_road_construction"; + + public static final String[] CMD_UPLOAD_BLOCK = {"上报拥堵"}; + public static final String[] CMD_TRAFFIC_CHECK = {"上报交通检查"}; + public static final String[] CMD_ROAD_CLOSURE = {"上报封路"}; + public static final String[] CMD_UPLOAD_ACCIDENT = {"上报事故", "上报交通事故"}; + public static final String[] UPLOAD_REAL_TIME_TRAFFIC = {"上报实时路况", "上报路况"}; + public static final String[] UPLOAD_SEEK_HELP = {"故障求助","发起故障求助"}; + public static final String[] UPLOAD_STAGNANT_WATER = {"上报积水"}; + public static final String[] UPLOAD_ROAD_ICY = {"上报积冰","上报道路积冰","上报结冰","上报道路结冰"}; + public static final String[] UPLOAD_DENSE_FOG = {"上报大雾", "上报浓雾"}; + public static final String[] UPLOAD_ROAD_CONSTRUCTION = {"上报施工", "上报道路施工"}; + + public static final String[] CMD_CANCEL_SHARE = {"取消分享"}; + public static final String UNWAKE_CANCEL_SHARE = "com.zhidao.launcher.cancle.share"; + /** * 这个是实时路况,不是拥堵,拥堵放在了extention模块里面处理 */ - public static final String VOICE_CMD_PUB_ROAD_CONDITION = "com.zhidao.pathfinder.report.roadCondition"; + public static final String VOICE_CMD_PUB_ROAD_CONDITION = "com.zhidao.pathfinder.report" + + ".roadCondition"; public static final String TYPE_BLOCK = "10007"; public static final String TYPE_TRAFFIC_CHECK = "10002"; From 64c9c61770aec900e1d9f4e6b7dfa9faf53c7ac9 Mon Sep 17 00:00:00 2001 From: tongchenfei Date: Tue, 9 Jun 2020 15:47:07 +0800 Subject: [PATCH 3/3] =?UTF-8?q?1.=20=E5=88=86=E4=BA=AB=E9=80=82=E9=85=8D?= =?UTF-8?q?=E5=90=8C=E8=A1=8C=E8=80=85=E8=AF=AD=E9=9F=B3=E7=9A=84=E5=85=8D?= =?UTF-8?q?=E5=94=A4=E9=86=92=E8=AF=8D=202.=20=E4=BC=98=E5=8C=96=E5=88=86?= =?UTF-8?q?=E4=BA=AB=E6=A1=86ui=203.=20=E4=BC=98=E5=8C=96=E4=B8=AA?= =?UTF-8?q?=E4=BA=BA=E4=BF=A1=E6=81=AF=E5=B1=95=E7=A4=BA=E6=9D=A1=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/misc.xml | 2 +- app/build.gradle | 6 ++ .../com/mogo/launcher/MogoApplication.java | 3 + .../com/mogo/commons/debug/DebugConfig.java | 8 ++- .../java/com/mogo/commons/voice/AIAssist.java | 3 + .../module/extensions/ExtensionsFragment.java | 4 ++ .../com/mogo/module/share/ShareControl.java | 66 ++++++++++++++++++ .../module_share_title_icon_left.png | Bin 0 -> 1545 bytes .../module_share_title_icon_right.png | Bin 0 -> 1553 bytes .../drawable/module_share_title_icon_left.png | Bin 0 -> 765 bytes .../module_share_title_icon_right.png | Bin 0 -> 767 bytes .../res/layout/launcher_dialog_share_2.xml | 4 +- .../mogo/service/share/IMogoShareManager.java | 4 +- 13 files changed, 94 insertions(+), 6 deletions(-) create mode 100644 modules/mogo-module-share/src/main/res/drawable-xhdpi/module_share_title_icon_left.png create mode 100644 modules/mogo-module-share/src/main/res/drawable-xhdpi/module_share_title_icon_right.png create mode 100644 modules/mogo-module-share/src/main/res/drawable/module_share_title_icon_left.png create mode 100644 modules/mogo-module-share/src/main/res/drawable/module_share_title_icon_right.png diff --git a/.idea/misc.xml b/.idea/misc.xml index 2dc54c489f..707ee6e613 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,6 +1,6 @@ - + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index d8ebdb280d..c99236b077 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -93,14 +93,20 @@ android { // f系列-分体机全系列,未细分 f8xx{ dimension "product" + // 使用思必驰语音 + buildConfigField 'int', 'AIType','2' } // e系列 e8xx { dimension "product" + // 使用思必驰语音 + buildConfigField 'int', 'AIType','2' } // d系列 d8xx { dimension "product" + // 使用同行者语音 + buildConfigField 'int', 'AIType','1' } qa { dimension "env" diff --git a/app/src/main/java/com/mogo/launcher/MogoApplication.java b/app/src/main/java/com/mogo/launcher/MogoApplication.java index 5ea39f1189..50d1702b89 100644 --- a/app/src/main/java/com/mogo/launcher/MogoApplication.java +++ b/app/src/main/java/com/mogo/launcher/MogoApplication.java @@ -18,6 +18,7 @@ import com.mogo.module.media.MediaConstants; import com.mogo.module.push.PushUIConstants; import com.mogo.module.tanlu.constant.TanluConstants; import com.mogo.module.v2x.V2XConst; +import com.mogo.service.MogoServicePaths; import com.mogo.service.connection.IMogoSocketManager; import com.mogo.utils.logger.LogLevel; import com.mogo.utils.logger.Logger; @@ -36,6 +37,7 @@ public class MogoApplication extends AbsMogoApplication { public void onCreate() { DebugConfig.setNetMode(BuildConfig.NET_ENV); DebugConfig.setDebug(BuildConfig.DEBUG); + DebugConfig.setAIType(BuildConfig.AIType); super.onCreate(); // Crash 日志收集 final long start = System.currentTimeMillis(); @@ -55,6 +57,7 @@ public class MogoApplication extends AbsMogoApplication { MogoModulePaths.addModule(new MogoModule(TanluConstants.TAG, TanluConstants.MODEL_NAME)); MogoModulePaths.addModule(new MogoModule( V2XConst.PATH_V2X_UI, V2XConst.PATH_V2X_UI)); + MogoModulePaths.addModule(new MogoModule(MogoServicePaths.PATH_SHARE, "ShareControl")); // 暂时去掉推送 // MogoModulePaths.addModule(new MogoModule(PushUIConstants.TAG, PushUIConstants.TAG)); Log.i("timer", "cost " + (System.currentTimeMillis() - start) + "ms"); diff --git a/foudations/mogo-commons/src/main/java/com/mogo/commons/debug/DebugConfig.java b/foudations/mogo-commons/src/main/java/com/mogo/commons/debug/DebugConfig.java index 7feeff35ac..216d52d588 100644 --- a/foudations/mogo-commons/src/main/java/com/mogo/commons/debug/DebugConfig.java +++ b/foudations/mogo-commons/src/main/java/com/mogo/commons/debug/DebugConfig.java @@ -1,5 +1,7 @@ package com.mogo.commons.debug; +import com.mogo.utils.logger.Logger; + /** * @author congtaowang * @since 2019-12-23 @@ -113,12 +115,16 @@ public class DebugConfig { /** * 设置使用哪个语音助手 - * @param aiType AI_TYPE_TXZ AI_TYPE_SPEECH + * @param aiType {@link #AI_TYPE_TXZ} {@link #AI_TYPE_SPEECH} */ public static void setAIType(int aiType){ + Logger.d("DebugConfig", "setAiType: " + aiType); sAIType = aiType; } + /** + * 使用哪个语音助手 {@link #AI_TYPE_TXZ} {@link #AI_TYPE_SPEECH} + */ public static int getAIType(){ return sAIType; } diff --git a/foudations/mogo-commons/src/main/java/com/mogo/commons/voice/AIAssist.java b/foudations/mogo-commons/src/main/java/com/mogo/commons/voice/AIAssist.java index b5ab14af70..655a831c92 100644 --- a/foudations/mogo-commons/src/main/java/com/mogo/commons/voice/AIAssist.java +++ b/foudations/mogo-commons/src/main/java/com/mogo/commons/voice/AIAssist.java @@ -380,6 +380,9 @@ public class AIAssist implements VoiceClient.VoiceCmdCallBack, OnTtsListener { if ( isProcessRunning( context, getPackageUid( context, "com.zhidao.speech" ) ) && isProcessRunning( context, getPackageUid( context, "com.zhidao.speech.adapter" ) ) ) { return true; + } else if (isProcessRunning(context, getPackageUid(context, "com.txznet.txz")) && isProcessRunning(context, getPackageUid(context, "com.txznet.adapter"))) { + Logger.d(TAG, "txz is voiceServiceReady"); + return true; } return false; } diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/ExtensionsFragment.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/ExtensionsFragment.java index e5254a81c6..c5914114d4 100644 --- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/ExtensionsFragment.java +++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/ExtensionsFragment.java @@ -10,6 +10,7 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import com.alibaba.android.arouter.launcher.ARouter; +import com.mogo.commons.debug.DebugConfig; import com.mogo.commons.mvp.MvpFragment; import com.mogo.module.extensions.userinfo.UserInfo; import com.mogo.module.extensions.utils.LaunchUtils; @@ -54,6 +55,7 @@ public class ExtensionsFragment extends MvpFragment< ExtensionsView, ExtensionsP mUserHeadImg = findViewById(R.id.ivUserHeadImg); mMsgContainer = findViewById( R.id.module_ext_id_msg ); + mMsgContainer.setOnClickListener( view -> { ARouter.getInstance().build( "/push/ui/message" ).navigation( getContext() ); } ); @@ -65,6 +67,8 @@ public class ExtensionsFragment extends MvpFragment< ExtensionsView, ExtensionsP Logger.e(TAG, e, "打开个人中心Exception"); } }); + + mUserHeadImg.setVisibility(DebugConfig.isLauncher()?View.VISIBLE:View.GONE); } @NonNull 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 0b812c91bd..33ab9ac337 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,12 +2,21 @@ package com.mogo.module.share; import android.content.Context; import android.content.Intent; +import android.os.Bundle; +import android.view.View; + +import androidx.annotation.NonNull; +import androidx.fragment.app.Fragment; import com.alibaba.android.arouter.facade.annotation.Route; import com.alibaba.android.arouter.launcher.ARouter; import com.mogo.commons.debug.DebugConfig; import com.mogo.commons.voice.AIAssist; import com.mogo.commons.voice.IMogoVoiceCmdCallBack; +import com.mogo.map.listener.IMogoMapListener; +import com.mogo.map.location.IMogoLocationListener; +import com.mogo.map.marker.IMogoMarkerClickListener; +import com.mogo.map.navi.IMogoNaviListener; import com.mogo.module.authorize.authprovider.invoke.AuthorizeConstant; import com.mogo.module.authorize.authprovider.invoke.AuthorizeInvokerConstant; import com.mogo.module.authorize.authprovider.module.IMogoAcquireAuthorizeListener; @@ -21,6 +30,7 @@ import com.mogo.module.share.manager.UploadHelper; import com.mogo.service.MogoServicePaths; import com.mogo.service.intent.IMogoIntentListener; import com.mogo.service.intent.IMogoIntentManager; +import com.mogo.service.module.IMogoModuleLifecycle; import com.mogo.service.share.IMogoShareManager; import com.mogo.utils.TipToast; import com.mogo.utils.logger.Logger; @@ -408,4 +418,60 @@ public class ShareControl implements IMogoShareManager, IMogoIntentListener, IMo stepAfterAuth.setUploadType(uploadType); authorizeModuleManager.invokeAuthorization(AuthorizeInvokerConstant.AUTHORIZE_TYPE_LAUNCHER_SHARE); } + + @Override + public Fragment createFragment(Context context, Bundle data) { + return null; + } + + @Override + public View createView(Context context) { + return null; + } + + @NonNull + @Override + public String getModuleName() { + return "ShareControl"; + } + + @Override + public IMogoModuleLifecycle getCardLifecycle() { + return null; + } + + @Override + public IMogoMapListener getMapListener() { + return null; + } + + @Override + public int getType() { + return 0; + } + + @Override + public IMogoNaviListener getNaviListener() { + return null; + } + + @Override + public IMogoLocationListener getLocationListener() { + return null; + } + + @Override + public IMogoMarkerClickListener getMarkerClickListener() { + return null; + } + + @Override + public String getAppPackage() { + return ""; + } + + @Override + public String getAppName() { + return ""; + } } diff --git a/modules/mogo-module-share/src/main/res/drawable-xhdpi/module_share_title_icon_left.png b/modules/mogo-module-share/src/main/res/drawable-xhdpi/module_share_title_icon_left.png new file mode 100644 index 0000000000000000000000000000000000000000..2285d6206017dfc813960c58e3f6444af6ed3abf GIT binary patch literal 1545 zcmV+k2KM=hP)Px)!%0LzRA>e5n){1YRTRf(v`l+BWu*fRVTxl9X(+*d(V6N8qaT8v5co?FQ4tX( zB$ZLn6CwyfBB);+=xzT&1R_K~MUskHieR8+YN=xnn?9d2XI=I=bMM@_Gjs3MbryW@ z+I#KS+TXMGeO+Zlyae2Vm9@CCRN41wL?H}E6)`5b=iakffy zc6NS_7Lycu9RQog>SmUesGyHWNq=Z%^kA-^$n`3<1zC^id6}W!4;8!fMow_Tl2K}B z^w0}KUy_#EE^s9{fbB(eLozF`eOOJ04<@aB6pOJ<%4<8F4diSin41jnA4=vP4ot?S z;L<7E(KfJ%^g9#nH0vu(fG zrYJ|p^MD*rt7Olm>;aBtdq-|J2n+xz{~Bsf=!;d6n`K96pyWCth%xiQ2*3rKq`EC~ZT z3f1Q&_GQ$4Idzo$O3I%Bf8;ns`Lof6@};EjO3IH?p6(y+FRtKdf3p0zJyuo&#l7Pm zAj>+o5Xh(uo&nk(Wq?!Yrb@xd7>U`Y&N`#}fUFMz9o>L)re~ym7~rw@fCbY%qpC5f zQ#dz}ICqQ~{3gk_G?^XT;BHV69N$XjPY`GCVfw9H zLMY#mmmAmCap(99oeAZ)kVxB~%9zCXi#4dwuSU`fMdY>VXvE{+7F3al-zfSZ61nzi zr1DjoA+3X{913=Hu#Xbo8+685-T=Hr#0A3`^oHUE!#b|^{jl&Hx~URO`l#KkT^u^@ zC1MWEH_*S|J4|9kAr6@ex68@x@A&{$?}Lvj9O&;^@DG5@FNW~GQ&V~7^oSNV+}{RE~0!HNY|a`!7f79#eddG zLqtMgHw^XGVaelQ$Js{cxQMJlpzjqsC5-YbNc+jbDD}IHS1XUJ?O-c)ya=?lj7elY z0%e9eF7MkxAMlnmA83=zSo+_S-UOj>ypnA%sY+x61l|T6D}bbV#q=G`wAasz^1L>o z>;-SOBcTN%A<#o)xie0rvV^te5$G$MOIgyYAxM=_Kerm0lBpI(=<5*L^bdxN(-Nr= z2|+!KxFi|1K%jQ&tU^hkL{%fOmd%$Wmwieo*(^dgLTJsCo-tQa?-AgZVLjjc)RETD zLHhU(JxXZ56ysXpL-n?9`?L@LV7#672hpR1_LpOH?>7))%yfKTb$@bVA?4_}l!D6V zK03USyd74^C+&ffN}7+f^(8))C^PzBN(-u_AH!DhBPowQy0ATv*vrW~Fu2VqwuyF` zfge}Q&5^01ufb*@lqLExcowFl7;&<`0_a?b4R!(R`edyWOV>^!t&WJa&K%$bqFkE~ z&ZsaQb+-@=Q}AB`^f--DATs=@LufDcjHDnabdaj{?L6#~CtMC{%O!Fjcoh=MD*^NW zPpT3b)2KtJ_r>c#M3xcgcA%E9h(Nz8IF7_xcR%ptZVLjLOD1Cy8I|e~>S3@NxR0a+ zdS^@tJV5?!2yDx{Px)%Sl8*RA>e5nMr7!RTRgQ7`3UhagG&Zw8oY~P!~$omTp8>>PCc8iUUGHMReh? zu}%x=Mxm{!2o9hK;!06LC<%%M!Ah*AVhvivT3d|DNY?Q?d30~0)cB2B;Vz#`G;I^tP?Dn%8|NfJyoYODZ{Z<)Efr|%g>+_v{YlTp-$ph2Yze>|AH~F8~g<} z;M_Rn9tIW8HpEE=cb9$<=$tEKAJDmSyin%sIO+a&I`DMu2FE5$Q1B6UA(VGvTnCN; z)-kAMqY%nH67B)few6Y%CQD1duVU$tQtSnjX6ZNbR+IBG@I+7ygZfvZjb|fF=27aO z3-*JflHP;Qd+BAU9C_cdxK`?1vRR=Aw@|+8f8ZvjLf!um@PKHlO_M7Mm z2FWX=Ax=6Hj>@8!V;%f0X&wC-)O3)txsOQ)$%PnoCs+?;bPEWgN-;>@5t+9PxNXf# zN!#}&O#ZZt01v~jSmV31ycwDEj>try-$_oMhM}783Dw%o3nJ6T>{aY4;GDfDegSr< ziNHOHU{93dLlin>Muavsk&xq+@GjuLNzTm{@)iA)6g zLMnmYWh6-g#VC-#Al2y99t0oMOK4LO34seC;{hOnl9v+nONuZn)k@CGWvb}&yeKQB}W?Yqca4o(2kMjf^jc#rm9qbr2=ekE89 z+?%3JKE6xvS=xVst}66l{l~zCsX`E_c6?u^f~e4v>D(e+uD3JhR>})WW0dcqJE^nF z3f_j#1WrK7Ux+4iCJFYMP)n|$;J8|aanV#vER^{LX2_=X?ZKBPj*JB$3oN;BabaCi-fs4~(Fl8DTRJm33#-8Vf| zL|SHF?*j=okaDg@NDmT?_ESh+7Lk$ooKO#<0pMXaYXWIgNYfG-6NFGdH+fiff!ISWb}RT6Y%@_N6?Px%w@E}nR7ef&mQRSyQ547DZ@giKLL(W4)ufc7hZrm-7GgQEk&>qTSxDA4w)TV- zvyg0+QWlETETlA1wibF#i3ZbnGv4$0T=$OW`OV=bwim83(}7pHg)gNYH1{%lJ0hLLLXH0)ZOyovF$tVvc}~S(cq~!JNX%rE>=0 z44G393%VHZ0h8=7lI+duP;Qfg0g`+JHE@vmH89M$X-PGaZ3S!vtH4UI8mt4I;36j} zvzhTdpvwFM+F~191ryk+%q8ra5RCpIIMOC3uy~5+EVvili%T_rP?`HtM_@cTZ&WP_ zC;>0tRdBS`+G8*Bh3F0$wpx+w`YCxM;eb(hKen8~9yojB(BsVoub1Kz@xC6r~h zEN+HxQ}n;(Bt8*~LUM^i*zfD_l6pKcwSkJ@H3xVXZEaJ(5YHhz3dt$#2Vl4l*yY{8 zo_dV$4!SK8h{u*F!5~#Q5%${d0L!8;X@5=#Z=V(^LClIX|!+95X!Ik6&NSV_#dEy5aVm@e#vj_ zrPx%xk*GpR7efgmEVhuQ5eT(*6i%ca$&t=w$>0=XHjNQ+Qfsil-!S<Y4g4fRIH?e&os9vx3WCk)u7(4t>5JcP3q9wvi- zrjCqju+MA-Dt-BU{t4wN{8`uxdx@PVHb#94`l;s%cErh1-n4A6ulQ@=1w3zPOS@!T z3q@P<>E@+JNY>3)F7Z4HC*lm5l9Tidi4MU#m?iOLVlH0MK{{|eGF{;4!KnAZYFJ@_ z(uH=qy_FszHctI0{D7Z8b99dKHFQ%iW>QWPGhVU8JjW)UK=r(VziOG4s}A*UrpsEV zy2HjSM&e<<_llQc0Kc|(nUa%egoJM9MmPX<19%E{5?lpyY{WBsADbPp68}2BOLqzE zbC1{{&7!<6y z87L$44sD&(_dwGLv_&|g&LZdtDA?oh5fm=|W6L8ZP;N2-;|o3-+vwB-UEmp$x<6U^ z93!?N(Qe-v65OElo$+>Ffc4-?#d+N3i}=ClSEAzctXTgV75Euq!EqUjw;Zpw$E*LA zoKwrb;)wUH8-n=a`4B76$F@=UBr$g-bzGKRI3j{E0nhhAa02d_JD~9Q@BqA|DZ#{o xwM}>|fC(I@J_xS-G`s}ONi=;?LhJwf^9w7;Kz@dVc_aV;002ovPDHLkV1l1+YI^_x literal 0 HcmV?d00001 diff --git a/modules/mogo-module-share/src/main/res/layout/launcher_dialog_share_2.xml b/modules/mogo-module-share/src/main/res/layout/launcher_dialog_share_2.xml index c21f932227..290602f73e 100644 --- a/modules/mogo-module-share/src/main/res/layout/launcher_dialog_share_2.xml +++ b/modules/mogo-module-share/src/main/res/layout/launcher_dialog_share_2.xml @@ -25,8 +25,8 @@ android:layout_marginTop="@dimen/share_module_title_margin_top" android:text="我要分享" android:textColor="@color/white" - android:drawableLeft="@drawable/module_share_title_icon" - android:drawableRight="@drawable/module_share_title_icon" + android:drawableLeft="@drawable/module_share_title_icon_left" + android:drawableRight="@drawable/module_share_title_icon_right" android:drawablePadding="@dimen/dp_40" android:textSize="@dimen/share_module_title_content" android:textStyle="bold" 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 index 2ed5841ad8..8d16700dfc 100644 --- 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 @@ -1,12 +1,12 @@ package com.mogo.service.share; -import com.alibaba.android.arouter.facade.template.IProvider; +import com.mogo.service.module.IMogoModuleProvider; /** * 分享框管理接口 * @author tongchenfei */ -public interface IMogoShareManager extends IProvider { +public interface IMogoShareManager extends IMogoModuleProvider { /** * 显示分享框 */