Merge branch 'feature/v1.0.3' of http://gitlab.zhidaoauto.com/ecos/yycp-service/Launcher into feature/v1.0.3

This commit is contained in:
unknown
2020-03-25 21:04:21 +08:00
4 changed files with 166 additions and 28 deletions

2
.idea/misc.xml generated
View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="JDK" project-jdk-type="JavaSDK">
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/build/classes" />
</component>
</project>

View File

@@ -51,6 +51,7 @@ dependencies {
api rootProject.ext.dependencies.mogoserviceapi
implementation rootProject.ext.dependencies.modulecommon
implementation rootProject.ext.dependencies.moduleshare
implementation rootProject.ext.dependencies.mogomoduleauth
} else {
api project(":libraries:mogo-map")
api project(":libraries:mogo-map-api")
@@ -59,6 +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')
}
}

View File

@@ -2,6 +2,7 @@ package com.mogo.module.extensions.entrance;
import android.graphics.Color;
import android.os.Bundle;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.widget.TextView;
@@ -28,6 +29,12 @@ import com.mogo.map.overlay.IMogoPolyline;
import com.mogo.map.overlay.MogoPolylineOptions;
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.invoke.AuthorizeInvokerConstant;
import com.mogo.module.authorize.authprovider.invoke.IMogoAuthorizeContentListener;
import com.mogo.module.authorize.authprovider.invoke.IMogoAuthorizeRegister;
import com.mogo.module.authorize.authprovider.module.IMogoAcquireAuthorizeListener;
import com.mogo.module.authorize.authprovider.module.IMogoAuthorizeModuleManager;
import com.mogo.module.common.MogoModulePaths;
import com.mogo.module.extensions.ExtensionsModuleConst;
import com.mogo.module.extensions.R;
@@ -61,7 +68,8 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
implements EntranceView,
IMogoNaviListener,
IMogoMapListener,
IMogoAimlessModeListener {
IMogoAimlessModeListener,
IMogoAcquireAuthorizeListener {
private static final String TAG = "EntranceFragment";
@@ -95,6 +103,8 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
private IMogoRegisterCenter mMogoRegisterCenter;
private IMogoAnalytics mAnalytics;
private IMogoStatusManager mMogoStatusManager;
private EntrancePresenter mEntrancePresenter;
private IMogoAuthorizeModuleManager mIMogoAuthorizeModuleManager;
/**
* 搜索莫模块
@@ -112,9 +122,11 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
@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(AuthorizeInvokerConstant.AUTHORIZE_TYPE_LAUNCHER_SHARE_NOVELTY, this);
mEntrancePresenter = new EntrancePresenter(getContext(), this, mIMogoAuthorizeModuleManager);
mMogoFragmentManager = mApis.getFragmentManagerApi();
mMogoAddressManager = mApis.getAddressManagerApi();
@@ -208,7 +220,7 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
@NonNull
@Override
protected EntrancePresenter createPresenter() {
return new EntrancePresenter( getContext(), this );
return mEntrancePresenter;
}
@Override
@@ -229,6 +241,34 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
mMogoMarkerManager = mService.getMarkerManager( getContext() );
}
@Override
public void onDestroyView() {
super.onDestroyView();
if (mEntrancePresenter != null) {
mEntrancePresenter.unregisterUnWake();
}
mIMogoAuthorizeModuleManager.unregisterAuthorizeListener(AuthorizeInvokerConstant.AUTHORIZE_TYPE_LAUNCHER_SHARE_NOVELTY);
}
@Override
public void authorizeSuccess() {
Log.d(TAG, "authorizeSuccess --------> ");
mEntrancePresenter.handleNeedAuthorizeCmd();
}
@Override
public void authorizeFailed(String errorMsg) {
Log.e(TAG, "authorizeFailed --------> ");
}
@Override
public void forbiddenVoiceWhenAuthorize(String cmd) {
Log.d(TAG, "forbiddenVoiceWhenAuthorize --------> ");
}
@Override
public void onInitNaviFailure() {
}

View File

@@ -10,6 +10,8 @@ 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.invoke.AuthorizeInvokerConstant;
import com.mogo.module.authorize.authprovider.module.IMogoAuthorizeModuleManager;
import com.mogo.module.extensions.ExtensionsModuleConst;
import com.mogo.module.share.ShareControl;
import com.mogo.service.MogoServicePaths;
@@ -35,18 +37,23 @@ public class EntrancePresenter extends Presenter<EntranceView> {
private IMogoAnalytics mAnalytics;
private static final String TAG = "EntrancePresenter";
private IMogoIntentManager mogoIntentManager;
private IMogoAuthorizeModuleManager mIMogoAuthorizeModuleManager;
private String mVoiceCmdType; //一级命令
private String mVoiceCmdShareType; //对某些一级命令里面细分的类型做处理
public EntrancePresenter(Context context, EntranceView view) {
public EntrancePresenter(Context context, EntranceView view, IMogoAuthorizeModuleManager authorizeModuleManager) {
super(view);
mContext = context;
mAnalytics = (IMogoAnalytics) ARouter.getInstance().build(MogoServicePaths.PATH_UTILS_ANALYTICS).navigation(getContext());
mogoIntentManager = (IMogoIntentManager) ARouter.getInstance().build(MogoServicePaths.PATH_INTENT_MANAGER).navigation(getContext());
mIMogoAuthorizeModuleManager = authorizeModuleManager;
registerUnWake();
registerAwakeVoice();
}
private void registerUnWake() {
AIAssist.getInstance(mContext).registerUnWakeupCommand(ExtensionsModuleConst.CLOSE,
ExtensionsModuleConst.CMD_CLOSE, mogoVoiceListener);
@@ -67,15 +74,33 @@ public class EntrancePresenter extends Presenter<EntranceView> {
private IMogoVoiceCmdCallBack mogoVoiceListener = new IMogoVoiceCmdCallBack() {
@Override
public void onCmdSelected(String cmd) {
Log.d(TAG, "免唤醒 mogoVoiceListener needAuthorize = " + mIMogoAuthorizeModuleManager.needAuthorize() + " >>>cmd = " + cmd);
mVoiceCmdType = cmd;
if (cmd.equals(ExtensionsModuleConst.CANCLE_SHARE)
|| cmd.equals(ExtensionsModuleConst.CLOSE)) { //取消分享,关闭页面
ShareControl.getInstance(mContext).dismissDialog();
if (mIMogoAuthorizeModuleManager.needAuthorize()) {
mIMogoAuthorizeModuleManager.invokeAuthorization(AuthorizeInvokerConstant.AUTHORIZE_TYPE_LAUNCHER_SHARE_NOVELTY);
} else {
ShareControl.getInstance(mContext).dismissDialog();
}
} else if (cmd.equals(ExtensionsModuleConst.UPLOAD_ROAD_BLOCK)) { //上报拥堵
uploadRoadCondition();
if (mIMogoAuthorizeModuleManager.needAuthorize()) {
mIMogoAuthorizeModuleManager.invokeAuthorization(AuthorizeInvokerConstant.AUTHORIZE_TYPE_LAUNCHER_SHARE_NOVELTY);
} else {
uploadRoadCondition();
}
} else if (cmd.equals(ExtensionsModuleConst.UPLOAD_TRAFFIC_CHECK)) { //上报交通检查
uploadTrfficCheck();
if (mIMogoAuthorizeModuleManager.needAuthorize()) {
mIMogoAuthorizeModuleManager.invokeAuthorization(AuthorizeInvokerConstant.AUTHORIZE_TYPE_LAUNCHER_SHARE_NOVELTY);
} else {
uploadTrfficCheck();
}
} else if (cmd.equals(ExtensionsModuleConst.UPLOAD_ROAD_CLOSURE)) { //上报封路
uploadRoadClosed();
if (mIMogoAuthorizeModuleManager.needAuthorize()) {
mIMogoAuthorizeModuleManager.invokeAuthorization(AuthorizeInvokerConstant.AUTHORIZE_TYPE_LAUNCHER_SHARE_NOVELTY);
} else {
uploadRoadClosed();
}
}
}
@@ -103,8 +128,7 @@ public class EntrancePresenter extends Presenter<EntranceView> {
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);
mogoIntentManager.registerIntentListener(ExtensionsModuleConst.NO_REPLY_SHARE_DIALOG_CLOSE, mogoIntentListener);
}
/**
@@ -113,8 +137,9 @@ public class EntrancePresenter extends Presenter<EntranceView> {
private IMogoIntentListener mogoIntentListener = new IMogoIntentListener() {
@Override
public void onIntentReceived(String intentStr, Intent intent) {
mVoiceCmdType = intentStr;
String data = intent.getStringExtra("data");
Logger.d(TAG, "唤醒 mogoIntentListener intentStr =" + intentStr + ">>data =" + data);
Log.d(TAG, "唤醒 mogoIntentListener intentStr =" + intentStr + ">>data =" + data + " >>> needAuthorize = " + mIMogoAuthorizeModuleManager.needAuthorize());
if (intentStr.equals(ExtensionsModuleConst.GO_TO_SHARE)) { //我要分享 --ok
String conditionData = intent.getStringExtra("data");
Log.d(TAG, "唤醒 mogoIntentListener intentStr =" + intentStr + ">>conditionData =" + conditionData);
@@ -122,41 +147,112 @@ public class EntrancePresenter extends Presenter<EntranceView> {
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("封路")) {
Log.d(TAG, "mogoIntentListener 封路 -------> ");
uploadRoadClosed();
if (mIMogoAuthorizeModuleManager.needAuthorize()) {
mIMogoAuthorizeModuleManager.invokeAuthorization(AuthorizeInvokerConstant.AUTHORIZE_TYPE_LAUNCHER_SHARE_NOVELTY);
} else {
Log.d(TAG, "mogoIntentListener 封路 -------> ");
uploadRoadClosed();
}
} else if (typeString.equals("油价")) {
Log.d(TAG, "mogoIntentListener 油价 -------> ");
shareOilPrice();
if (mIMogoAuthorizeModuleManager.needAuthorize()) {
mIMogoAuthorizeModuleManager.invokeAuthorization(AuthorizeInvokerConstant.AUTHORIZE_TYPE_LAUNCHER_SHARE_NOVELTY);
} else {
Log.d(TAG, "mogoIntentListener 油价 -------> ");
shareOilPrice();
}
} else if (typeString.equals("交通检查")) {
Log.d(TAG, "mogoIntentListener 交通检查 -------> ");
uploadTrfficCheck();
if (mIMogoAuthorizeModuleManager.needAuthorize()) {
mIMogoAuthorizeModuleManager.invokeAuthorization(AuthorizeInvokerConstant.AUTHORIZE_TYPE_LAUNCHER_SHARE_NOVELTY);
} else {
Log.d(TAG, "mogoIntentListener 交通检查 -------> ");
uploadTrfficCheck();
}
}
} else {
ShareControl.getInstance(mContext).showDialog();
Log.d(TAG, "mogoIntentListener 我要分享 ----> ");
traceData("2");
if (mIMogoAuthorizeModuleManager.needAuthorize()) {
mIMogoAuthorizeModuleManager.invokeAuthorization(AuthorizeInvokerConstant.AUTHORIZE_TYPE_LAUNCHER_SHARE_NOVELTY);
} else {
ShareControl.getInstance(mContext).showDialog();
Log.d(TAG, "mogoIntentListener 我要分享 ----> ");
traceData("2");
}
}
} catch (Exception e) {
e.printStackTrace();
}
} else if (intentStr.equals(ExtensionsModuleConst.UPLOAD_ROAD_CONDITION_AWAKEN)) {
//分享路况/上报路况/上报拥堵 唤醒
Log.d(TAG, "mogoIntentListener 分享路况 唤醒 ----> ");
uploadRoadCondition();
if (mIMogoAuthorizeModuleManager.needAuthorize()) {
mIMogoAuthorizeModuleManager.invokeAuthorization(AuthorizeInvokerConstant.AUTHORIZE_TYPE_LAUNCHER_SHARE_NOVELTY);
} else {
uploadRoadCondition();
Log.d(TAG, "mogoIntentListener 分享路况 唤醒 ----> ");
}
} else if (intentStr.equals(ExtensionsModuleConst.SHARE_DIALOG_CLOSE)) { //关闭分享框 唤醒
ShareControl.getInstance(mContext).dismissDialog();
Log.d(TAG, "mogoIntentListener 关闭分享框 唤醒 ----> ");
if (mIMogoAuthorizeModuleManager.needAuthorize()) {
mIMogoAuthorizeModuleManager.invokeAuthorization(AuthorizeInvokerConstant.AUTHORIZE_TYPE_LAUNCHER_SHARE_NOVELTY);
} else {
ShareControl.getInstance(mContext).dismissDialog();
Log.d(TAG, "mogoIntentListener 关闭分享框 唤醒 ----> ");
}
} else if (intentStr.equals(ExtensionsModuleConst.NO_REPLY_SHARE_DIALOG_CLOSE)) {
// 两次未回复关闭对话框
ShareControl.getInstance(mContext).dismissDialog();
Logger.d(TAG, "mogoIntentListener 两次未回复关闭对话框");
if (mIMogoAuthorizeModuleManager.needAuthorize()) {
mIMogoAuthorizeModuleManager.invokeAuthorization(AuthorizeInvokerConstant.AUTHORIZE_TYPE_LAUNCHER_SHARE_NOVELTY);
} else {
ShareControl.getInstance(mContext).dismissDialog();
Logger.d(TAG, "mogoIntentListener 两次未回复关闭对话框");
}
}
}
};
/**
* 处理需要授权的命令 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)) { //关闭分享弹框
ShareControl.getInstance(mContext).dismissDialog();
} 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 {
ShareControl.getInstance(mContext).showDialog();
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)) { //上报拥堵, 分享路况, 上报路况
Log.d(TAG, "handleNeedAuthorizeCmd 上报路况 ----> ");
uploadRoadCondition();
}
} else {
Log.e(TAG, "handleNeedAuthorizeCmd mVoiceCmdType == null ");
}
}
private void uploadRoadCondition() {
traceTanluData("2");
sendShareReceiver("1");
@@ -235,7 +331,7 @@ public class EntrancePresenter extends Presenter<EntranceView> {
}
private void unregisterUnWake() {
public void unregisterUnWake() {
AIAssist.getInstance(mContext).unregisterUnWakeupCommand(ExtensionsModuleConst.CANCLE_SHARE);
AIAssist.getInstance(mContext).unregisterUnWakeupCommand(ExtensionsModuleConst.CLOSE);