抽离分享模块中的唤醒词和免唤醒指令,取消分享模块的baseModule

This commit is contained in:
tongchenfei
2020-10-20 20:21:06 +08:00
parent d0b0cc1236
commit d158ab5ba2
8 changed files with 150 additions and 94 deletions

View File

@@ -78,7 +78,7 @@ public class MogoApplication extends AbsMogoApplication {
MogoModulePaths.addModule( new MogoModule( TanluApiConst.MODULE_PATH, TanluApiConst.MODULE_NAME ) );
MogoModulePaths.addBaseModule( new MogoModule( TanluConstants.TAG, TanluConstants.MODEL_NAME ) );
MogoModulePaths.addBaseModule( new MogoModule( MogoServicePaths.PATH_SHARE, "ShareControl" ) );
MogoModulePaths.addModule( new MogoModule( MogoServicePaths.PATH_SHARE, "ShareControl" ) );
MogoModulePaths.addModule( new MogoModule( LeftPanelConst.PATH_NAME, LeftPanelConst.MODULE_NAME ) );
@@ -88,6 +88,8 @@ public class MogoApplication extends AbsMogoApplication {
MogoModulePaths.addBaseModule( new MogoModule( MogoServicePaths.PATH_MOGO_MONITOR, "MogoMonitor" ) );
MogoModulePaths.addModule( new MogoModule( PushUIConstants.PATH, PushUIConstants.NAME ) );
MogoModulePaths.addBaseModule(new MogoModule(MogoServicePaths.PATH_GLOBAL_UNWAKE,"GlobalUnwake"));
if ( !DebugConfig.isLauncher() ) {
PersistentManager.getInstance().initManager( this );
Intent intent = new Intent( this, MogoMainService.class );

View File

@@ -37,6 +37,8 @@ public class SchemeIntent implements IMogoStatusChangedListener {
public static final String TYPE_SHOW_ONLINE_CAR_PANEL = "showOnlineCarPanel";
public static final String TYPE_SHOW_SHARE_PANEL = "showSharePanel";
private IMogoServiceApis mApis;
private Context mContext;
@@ -150,6 +152,9 @@ public class SchemeIntent implements IMogoStatusChangedListener {
break;
case TYPE_SHOW_ONLINE_CAR_PANEL:
handleShowOnlineCarPanel( target );
case TYPE_SHOW_SHARE_PANEL:
handleShowSharePanel();
break;
default:
break;
@@ -199,6 +204,11 @@ public class SchemeIntent implements IMogoStatusChangedListener {
mApis.getOnlineCarPanelApi().showPanel();
}
private void handleShowSharePanel() {
Logger.d(TAG, "handleShowSharePanel");
// todo 跳转到热心指数
}
@Override
public void onStatusChanged( StatusDescriptor descriptor, boolean isTrue ) {
if ( descriptor == StatusDescriptor.MAIN_PAGE_RESUME ) {

View File

@@ -7,7 +7,6 @@ package com.mogo.module.service.unwake;
*/
public class GlobalUnwakeConst {
public static final String MODULE_NAME = "GlobalUnwakeManager";
public static final String PATH_NAME = "/global/unwake";
// command
public static final String VOICE_CMD_GO_TO_SHARE = "com.zhidao.share";
@@ -38,6 +37,10 @@ public class GlobalUnwakeConst {
*/
public static final String UNWAKE_UPLOAD_REAL_TIME_TRAFFIC = "command_upload_real_time_traffic";
/**
* 唤醒词查询热心指数
*/
public static final String VOICE_QUERY_HEART_INDEX = "com.zhidao.query.myshare.index";
// 词
public static final String[] UPLOAD_REAL_TIME_TRAFFIC = {"上报实时路况", "上报路况"};

View File

@@ -2,11 +2,14 @@ package com.mogo.module.service.unwake;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.alibaba.android.arouter.facade.template.IProvider;
import com.mogo.commons.voice.AIAssist;
import com.mogo.commons.voice.IMogoVoiceCmdCallBack;
import com.mogo.module.common.MogoApisHandler;
import com.mogo.service.MogoServicePaths;
import com.mogo.service.intent.IMogoIntentListener;
import com.mogo.service.intent.IMogoIntentManager;
import com.mogo.utils.logger.Logger;
@@ -19,18 +22,23 @@ import static com.mogo.module.service.unwake.GlobalUnwakeConst.VOICE_CMD_NO_REPL
import static com.mogo.module.service.unwake.GlobalUnwakeConst.VOICE_CMD_PUB_ROAD_CONDITION;
import static com.mogo.module.service.unwake.GlobalUnwakeConst.VOICE_CMD_PUB_TROUBLE_HELP;
import static com.mogo.module.service.unwake.GlobalUnwakeConst.VOICE_CMD_SHARE_DIALOG_CLOSE;
import static com.mogo.module.service.unwake.GlobalUnwakeConst.VOICE_QUERY_HEART_INDEX;
/**
* 全局免唤醒管理
* 包括唤醒词指令和全局免唤醒词指令
* 有几个Module仅仅是因为要注册全局免唤醒词加到了BaseModule中为了将这部分Module从BaseModule中去掉特抽离全局免唤醒词注册监听逻辑
*
* @author tongchenfei
*/
@Route(path = MogoServicePaths.PATH_GLOBAL_UNWAKE)
public class GlobalUnwakeManager implements IProvider, IMogoIntentListener, IMogoVoiceCmdCallBack {
private IMogoIntentManager intentManager;
private Context context;
private static final String TAG = "GlobalUnwakeManager";
@Override
public void init(Context context) {
Logger.d(TAG, "全局免唤醒模块初始化====");
intentManager = MogoApisHandler.getInstance().getApis().getIntentManagerApi();
intentManager.registerIntentListener(VOICE_CMD_GO_TO_SHARE, this);
intentManager.registerIntentListener(VOICE_CMD_PUB_TROUBLE_HELP, this);
@@ -49,9 +57,31 @@ public class GlobalUnwakeManager implements IProvider, IMogoIntentListener, IMog
// 此处只接受处理语音相关广播
Logger.d(TAG, "收到唤醒词指令: " + intentStr);
switch (intentStr) {
// 分享相关唤醒词
case VOICE_CMD_GO_TO_SHARE:
case VOICE_CMD_PUB_TROUBLE_HELP:
case VOICE_CMD_PUB_ROAD_CONDITION:
case VOICE_CMD_SHARE_DIALOG_CLOSE:
case VOICE_CMD_NO_REPLY_SHARE_DIALOG_CLOSE:
case UNWAKE_UPLOAD_ROAD_CONDITION:
MogoApisHandler.getInstance().getApis().getShareManager().onGlobalUnwake(intentStr, intent);
break;
case VOICE_QUERY_HEART_INDEX:
Intent start = new Intent( Intent.ACTION_VIEW );
start.addFlags( Intent.FLAG_ACTIVITY_NEW_TASK );
start.setData( Uri.parse( "mogo://launcher/main/switch2?type=showSharePanel" ) );
context.startActivity( start );
break;
default:
break;
}
}
@Override
public void onCmdSelected(String cmd) {
Logger.d(TAG, "收到免唤醒词指令: " + cmd);
if (UNWAKE_UPLOAD_REAL_TIME_TRAFFIC.equals(cmd)) {
MogoApisHandler.getInstance().getApis().getShareManager().onGlobalUnwake(cmd, null);
}
}
}

View File

@@ -97,8 +97,7 @@ import static com.mogo.service.share.IMogoTanluProvider.TYPE_TRAFFIC_CHECK;
* @since 2020-01-10
*/
@Route(path = MogoServicePaths.PATH_SHARE)
public class ShareControl implements IMogoShareManager, IMogoIntentListener,
IMogoVoiceCmdCallBack, Handler.Callback {
public class ShareControl implements IMogoShareManager, Handler.Callback {
private static final String TAG = "ShareControl";
private Context mContext;
@@ -228,94 +227,83 @@ public class ShareControl implements IMogoShareManager, IMogoIntentListener,
}
@Override
public void onCmdSelected(String cmd) {
Logger.d(TAG, "收到免唤醒词指令: " + cmd);
switch (cmd) {
case UNWAKE_CANCEL_SHARE:
dismissShareDialog();
break;
case UNWAKE_UPLOAD_ROAD_BLOCK:
if (needAuth()) {
goAuth(STEP_AFTER_AUTH_TYPE_UPLOAD, TYPE_BLOCK, false);
} else {
uploadFromVoice(TYPE_BLOCK);
}
break;
case UNWAKE_UPLOAD_TRAFFIC_CHECK:
if (needAuth()) {
goAuth(STEP_AFTER_AUTH_TYPE_UPLOAD, TYPE_TRAFFIC_CHECK, false);
} else {
uploadFromVoice(TYPE_TRAFFIC_CHECK);
}
break;
case UNWAKE_UPLOAD_ROAD_CLOSURE:
if (needAuth()) {
goAuth(STEP_AFTER_AUTH_TYPE_UPLOAD, TYPE_CLOSURE, false);
} else {
uploadFromVoice(TYPE_CLOSURE);
}
break;
case UNWAKE_UPLOAD_ACCIDENT:
if (needAuth()) {
goAuth(STEP_AFTER_AUTH_TYPE_UPLOAD, TYPE_ACCIDENT, false);
} else {
uploadFromVoice(TYPE_ACCIDENT);
}
break;
case UNWAKE_UPLOAD_REAL_TIME_TRAFFIC:
if (needAuth()) {
goAuth(STEP_AFTER_AUTH_TYPE_UPLOAD, TYPE_REAL_TIME_TRAFFIC, false);
} else {
uploadFromVoice(TYPE_REAL_TIME_TRAFFIC);
}
break;
case UNWAKE_UPLOAD_SEEK_HELP:
if (needAuth()) {
goAuth(STEP_AFTER_AUTH_TYPE_SEEK_HELP, TYPE_BLOCK, false);
} else {
seekHelp();
}
break;
case UNWAKE_UPLOAD_STAGNANT_WATER:
if (needAuth()) {
goAuth(STEP_AFTER_AUTH_TYPE_UPLOAD, TYPE_STAGNANT_WATER, false);
} else {
uploadFromVoice(TYPE_STAGNANT_WATER);
}
break;
case UNWAKE_UPLOAD_ROAD_ICY:
if (needAuth()) {
goAuth(STEP_AFTER_AUTH_TYPE_UPLOAD, TYPE_ROAD_ICY, false);
} else {
uploadFromVoice(TYPE_ROAD_ICY);
}
break;
case UNWAKE_UPLOAD_DENSE_FOG:
if (needAuth()) {
goAuth(STEP_AFTER_AUTH_TYPE_UPLOAD, TYPE_DENSE_FOG, false);
} else {
uploadFromVoice(TYPE_DENSE_FOG);
}
break;
case UNWAKE_UPLOAD_ROAD_CONSTRUCTION:
if (needAuth()) {
goAuth(STEP_AFTER_AUTH_TYPE_UPLOAD, TYPE_ROAD_CONSTRUCTION, false);
} else {
uploadFromVoice(TYPE_ROAD_CONSTRUCTION);
}
break;
default:
break;
}
}
@Override
public void onIntentReceived(String intentStr, Intent intent) {
// 此处只接受处理语音相关广播
Logger.d(TAG, "收到唤醒词指令: " + intentStr);
public void onGlobalUnwake(String cmd, Intent intent) {
try {
switch (intentStr) {
switch (cmd) {
case UNWAKE_CANCEL_SHARE:
dismissShareDialog();
break;
case UNWAKE_UPLOAD_ROAD_BLOCK:
if (needAuth()) {
goAuth(STEP_AFTER_AUTH_TYPE_UPLOAD, TYPE_BLOCK, false);
} else {
uploadFromVoice(TYPE_BLOCK);
}
break;
case UNWAKE_UPLOAD_TRAFFIC_CHECK:
if (needAuth()) {
goAuth(STEP_AFTER_AUTH_TYPE_UPLOAD, TYPE_TRAFFIC_CHECK, false);
} else {
uploadFromVoice(TYPE_TRAFFIC_CHECK);
}
break;
case UNWAKE_UPLOAD_ROAD_CLOSURE:
if (needAuth()) {
goAuth(STEP_AFTER_AUTH_TYPE_UPLOAD, TYPE_CLOSURE, false);
} else {
uploadFromVoice(TYPE_CLOSURE);
}
break;
case UNWAKE_UPLOAD_ACCIDENT:
if (needAuth()) {
goAuth(STEP_AFTER_AUTH_TYPE_UPLOAD, TYPE_ACCIDENT, false);
} else {
uploadFromVoice(TYPE_ACCIDENT);
}
break;
case UNWAKE_UPLOAD_REAL_TIME_TRAFFIC:
if (needAuth()) {
goAuth(STEP_AFTER_AUTH_TYPE_UPLOAD, TYPE_REAL_TIME_TRAFFIC, false);
} else {
uploadFromVoice(TYPE_REAL_TIME_TRAFFIC);
}
break;
case UNWAKE_UPLOAD_SEEK_HELP:
if (needAuth()) {
goAuth(STEP_AFTER_AUTH_TYPE_SEEK_HELP, TYPE_BLOCK, false);
} else {
seekHelp();
}
break;
case UNWAKE_UPLOAD_STAGNANT_WATER:
if (needAuth()) {
goAuth(STEP_AFTER_AUTH_TYPE_UPLOAD, TYPE_STAGNANT_WATER, false);
} else {
uploadFromVoice(TYPE_STAGNANT_WATER);
}
break;
case UNWAKE_UPLOAD_ROAD_ICY:
if (needAuth()) {
goAuth(STEP_AFTER_AUTH_TYPE_UPLOAD, TYPE_ROAD_ICY, false);
} else {
uploadFromVoice(TYPE_ROAD_ICY);
}
break;
case UNWAKE_UPLOAD_DENSE_FOG:
if (needAuth()) {
goAuth(STEP_AFTER_AUTH_TYPE_UPLOAD, TYPE_DENSE_FOG, false);
} else {
uploadFromVoice(TYPE_DENSE_FOG);
}
break;
case UNWAKE_UPLOAD_ROAD_CONSTRUCTION:
if (needAuth()) {
goAuth(STEP_AFTER_AUTH_TYPE_UPLOAD, TYPE_ROAD_CONSTRUCTION, false);
} else {
uploadFromVoice(TYPE_ROAD_CONSTRUCTION);
}
break;
case VOICE_CMD_PUB_TROUBLE_HELP:
if (needAuth()) {
goAuth(STEP_AFTER_AUTH_TYPE_SEEK_HELP, TYPE_DENSE_FOG, false);
@@ -431,7 +419,8 @@ public class ShareControl implements IMogoShareManager, IMogoIntentListener,
break;
}
} catch (Exception e) {
Logger.e(TAG, e, "ShareControl exception");
Logger.e(TAG, e, "onGlobalUnwake exception");
e.printStackTrace();
}
}

View File

@@ -260,4 +260,9 @@ public class MogoServicePaths {
* 在线好友面板
*/
public static final String PATH_ONLINE_CAR_PANEL = "/onlinecar/panel";
/**
* 全局免唤醒
*/
public static final String PATH_GLOBAL_UNWAKE = "/global/unwake";
}

View File

@@ -4,12 +4,13 @@ import android.content.Context;
import com.alibaba.android.arouter.facade.template.IProvider;
import com.mogo.service.module.IMogoModuleProvider;
import com.mogo.service.voice.IMogoGlobalVoiceManager;
/**
* 分享框管理接口
* @author tongchenfei
*/
public interface IMogoShareManager extends IProvider {
public interface IMogoShareManager extends IProvider, IMogoGlobalVoiceManager {
/**
* 显示分享框
*/

View File

@@ -0,0 +1,16 @@
package com.mogo.service.voice;
import android.content.Intent;
/**
* 全局免唤醒指令处理监听
*
* @author tongchenfei
*/
public interface IMogoGlobalVoiceManager {
/**
* 收到全局免唤醒指令和唤醒词指令
* @param cmd 具体指令
*/
void onGlobalUnwake(String cmd, Intent intent);
}