This commit is contained in:
wangcongtao
2020-01-14 16:29:46 +08:00
parent d75a37dd41
commit 810fa89a01
35 changed files with 691 additions and 457 deletions

View File

@@ -14,6 +14,8 @@ import com.mogo.commons.voice.IMogoVoiceCmdCallBack;
import com.mogo.map.navi.IMogoNavi;
import com.mogo.map.uicontroller.EnumMapUI;
import com.mogo.service.MogoServicePaths;
import com.mogo.service.intent.IMogoIntentListener;
import com.mogo.service.intent.IMogoIntentManager;
import com.mogo.service.map.IMogoMapService;
import com.mogo.service.module.IMogoSearchManager;
import com.mogo.service.voice.IMogoVoiceListener;
@@ -30,159 +32,176 @@ import java.util.Map;
* <p>
* 描述
*/
public class MapPresenter extends Presenter<MapView>
implements IMogoVoiceListener, IMogoVoiceCmdCallBack {
public class MapPresenter extends Presenter< MapView >
implements IMogoIntentListener, IMogoVoiceCmdCallBack {
private static final String TAG = "MapPresenter";
private IMogoMapService mMogoMapService;
private IMogoVoiceManager mMogoVoiceManager;
private IMogoIntentManager mMogoIntentManager;
private IMogoSearchManager mSearchManager;
public MapPresenter(MapView view) {
super(view);
public MapPresenter( MapView view ) {
super( view );
}
@Override
public void onCreate(@NonNull LifecycleOwner owner) {
super.onCreate(owner);
mMogoMapService = (IMogoMapService) ARouter.getInstance()
.build(MogoServicePaths.PATH_SERVICES_MAP)
.navigation(getContext());
mMogoVoiceManager = (IMogoVoiceManager) ARouter.getInstance()
.build(MogoServicePaths.PATH_VOICE_MANAGER)
.navigation(getContext());
mSearchManager = (IMogoSearchManager) ARouter.getInstance()
.build(MogoServicePaths.PATH_SEARCH_MANAGER)
.navigation(getContext());
public void onCreate( @NonNull LifecycleOwner owner ) {
super.onCreate( owner );
mMogoMapService = ( IMogoMapService ) ARouter.getInstance()
.build( MogoServicePaths.PATH_SERVICES_MAP )
.navigation( getContext() );
mMogoIntentManager = ( IMogoIntentManager ) ARouter.getInstance()
.build( MogoServicePaths.PATH_INTENT_MANAGER )
.navigation( getContext() );
mSearchManager = ( IMogoSearchManager ) ARouter.getInstance()
.build( MogoServicePaths.PATH_SEARCH_MANAGER )
.navigation( getContext() );
registerVoiceCmd();
IMogoNavi mogoNavi = mMogoMapService.getNavi(getContext());
mogoNavi.setCalculatePathDisplayBounds(new Rect(
ResourcesHelper.getDimensionPixelSize(getContext(), R.dimen.dp_730)
+ WindowUtils.dip2px(getContext(), 80),
ResourcesHelper.getDimensionPixelSize(getContext(), R.dimen.dp_120)
+ WindowUtils.dip2px(getContext(), 80),
WindowUtils.dip2px(getContext(), 80),
WindowUtils.dip2px(getContext(), 80)
));
IMogoNavi mogoNavi = mMogoMapService.getNavi( getContext() );
mogoNavi.setCalculatePathDisplayBounds( new Rect(
ResourcesHelper.getDimensionPixelSize( getContext(), R.dimen.dp_730 )
+ WindowUtils.dip2px( getContext(), 80 ),
ResourcesHelper.getDimensionPixelSize( getContext(), R.dimen.dp_120 )
+ WindowUtils.dip2px( getContext(), 80 ),
WindowUtils.dip2px( getContext(), 80 ),
WindowUtils.dip2px( getContext(), 80 )
) );
}
@Override
public void onResume(@NonNull LifecycleOwner owner) {
super.onResume(owner);
public void onResume( @NonNull LifecycleOwner owner ) {
super.onResume( owner );
registerVoiceCmd();
}
@Override
public void onPause(@NonNull LifecycleOwner owner) {
super.onPause(owner);
public void onPause( @NonNull LifecycleOwner owner ) {
super.onPause( owner );
unregisterVoiceCmd();
}
private void registerVoiceCmd() {
if (VoiceConstants.sVoiceCmds.isEmpty()) {
Logger.w(TAG, "no unwakeup words");
if ( VoiceConstants.sVoiceCmds.isEmpty() ) {
Logger.w( TAG, "no unwakeup words" );
return;
}
for ( Map.Entry< String, String[] > entry : VoiceConstants.sVoiceCmds.entrySet() ) {
mMogoVoiceManager.registerIntentListener( entry.getKey(), this );
mMogoIntentManager.registerIntentListener( entry.getKey(), this );
// AIAssist.getInstance( getContext() ).registerUnWakeupCommand( entry.getKey(), entry.getValue(), this );
}
}
private void unregisterVoiceCmd() {
if (VoiceConstants.sVoiceCmds.isEmpty()) {
Logger.w(TAG, "no unwakeup words");
if ( VoiceConstants.sVoiceCmds.isEmpty() ) {
Logger.w( TAG, "no unwakeup words" );
return;
}
for ( Map.Entry< String, String[] > entry : VoiceConstants.sVoiceCmds.entrySet() ) {
mMogoVoiceManager.unregisterIntentListener( entry.getKey() );
mMogoIntentManager.unregisterIntentListener( entry.getKey() );
// AIAssist.getInstance( getContext() ).unregisterUnWakeupCommand( entry.getKey(), this );
}
}
@Override
public void onIntentReceived(String command, Intent intent) {
if (TextUtils.isEmpty(command)) {
public void onIntentReceived( String command, Intent intent ) {
if ( TextUtils.isEmpty( command ) ) {
return;
}
onCmdSelected(command);
onCmdSelected( command );
}
@Override
public void onCmdSelected(String cmd) {
switch (cmd) {
public void onCmdSelected( String cmd ) {
switch ( cmd ) {
case VoiceConstants.CMD_MAP_TRAFFIC_MODE:
mView.getUIController().setTrafficEnabled(true);
case VoiceConstants.CMD_MAP_TRAFFIC_MODE_UN_WAKEUP:
mView.getUIController().setTrafficEnabled( true );
mSearchManager.showSearch();
AIAssist.getInstance(getContext()).speakTTSVoice("已打开", null);
AIAssist.getInstance( getContext() ).speakTTSVoice( "已打开", null );
break;
case VoiceConstants.CMD_MAP_UN_TRAFFIC_MODE:
mView.getUIController().setTrafficEnabled(false);
case VoiceConstants.CMD_MAP_UN_TRAFFIC_MODE_UN_WAKEUP:
mView.getUIController().setTrafficEnabled( false );
mSearchManager.showMain();
AIAssist.getInstance(getContext()).speakTTSVoice("已关闭", null);
AIAssist.getInstance( getContext() ).speakTTSVoice( "已关闭", null );
break;
case VoiceConstants.CMD_MAP_ZOOM_IN:
case VoiceConstants.CMD_MAP_ZOOM_IN_UN_WAKEUP:
mView.getUIController().changeZoom( true );
AIAssist.getInstance( getContext() ).speakTTSVoice( "已放大", null );
break;
case VoiceConstants.CMD_MAP_ZOOM_OUT:
case VoiceConstants.CMD_MAP_ZOOM_OUT_UN_WAKEUP:
AIAssist.getInstance( getContext() ).speakTTSVoice( "已缩小", null );
mView.getUIController().changeZoom( false );
break;
case VoiceConstants.CMD_MAP_2D:
case VoiceConstants.CMD_MAP_2D_UN_WAKEUP:
case VoiceConstants.CMD_MAP_NORTH_UP_MODE:
mView.getUIController().changeMapMode(EnumMapUI.NorthUP_2D);
AIAssist.getInstance(getContext()).speakTTSVoice("已切换", null);
case VoiceConstants.CMD_MAP_NORTH_UP_MODE_UN_WAKEUP:
mView.getUIController().changeMapMode( EnumMapUI.NorthUP_2D );
AIAssist.getInstance( getContext() ).speakTTSVoice( "已切换", null );
break;
case VoiceConstants.CMD_MAP_3D:
mView.getUIController().changeMapMode(EnumMapUI.CarUp_3D);
AIAssist.getInstance(getContext()).speakTTSVoice("已切换", null);
case VoiceConstants.CMD_MAP_3D_UN_WAKEUP:
mView.getUIController().changeMapMode( EnumMapUI.CarUp_3D );
AIAssist.getInstance( getContext() ).speakTTSVoice( "已切换", null );
break;
case VoiceConstants.CMD_MAP_DAY_TIME_MODE:
mView.getUIController().changeMapMode(EnumMapUI.Type_Light);
AIAssist.getInstance(getContext()).speakTTSVoice("已切换", null);
case VoiceConstants.CMD_MAP_DAY_TIME_MODE_UN_WAKEUP:
mView.getUIController().changeMapMode( EnumMapUI.Type_Light );
AIAssist.getInstance( getContext() ).speakTTSVoice( "已切换", null );
break;
case VoiceConstants.CMD_MAP_GO_COMPANY:
case VoiceConstants.CMD_MAP_GO_COMPANY_UN_WAKEUP:
mSearchManager.goCompany();
break;
case VoiceConstants.CMD_MAP_GO_HOME:
case VoiceConstants.CMD_MAP_GO_HOME_UN_WAKEUP:
mSearchManager.goHome();
break;
case VoiceConstants.CMD_MAP_HISTORY:
case VoiceConstants.CMD_MAP_HISTORY_UN_WAKEUP:
mSearchManager.showSearch();
break;
case VoiceConstants.CMD_MAP_STOP_NAVI_MODE:
case VoiceConstants.CMD_MAP_STOP_NAVI_MODE_UN_WAKEUP:
mSearchManager.showMain();
break;
case VoiceConstants.CMD_MAP_NIGHT_MODE:
mView.getUIController().changeMapMode(EnumMapUI.Type_Night);
AIAssist.getInstance(getContext()).speakTTSVoice("已切换", null);
case VoiceConstants.CMD_MAP_NIGHT_MODE_UN_WAKEUP:
mView.getUIController().changeMapMode( EnumMapUI.Type_Night );
AIAssist.getInstance( getContext() ).speakTTSVoice( "已切换", null );
break;
case VoiceConstants.CMD_MAP_AUTO_LIGHT_NIGHT_MODE:
mView.getUIController().changeMapMode(EnumMapUI.Type_AUTO_LIGHT_Night);
AIAssist.getInstance(getContext()).speakTTSVoice("已切换", null);
case VoiceConstants.CMD_MAP_AUTO_LIGHT_NIGHT_MODE_UN_WAKEUP:
mView.getUIController().changeMapMode( EnumMapUI.Type_AUTO_LIGHT_Night );
AIAssist.getInstance( getContext() ).speakTTSVoice( "已切换", null );
break;
case VoiceConstants.CMD_MAP_DISPLAY_OVERVIEW_MODE:
case VoiceConstants.CMD_MAP_DISPLAY_OVERVIEW_MODE_UN_WAKEUP:
mView.getUIController().displayOverview();
AIAssist.getInstance(getContext()).speakTTSVoice("已切换", null);
AIAssist.getInstance( getContext() ).speakTTSVoice( "已切换", null );
break;
case VoiceConstants.CMD_MAP_CONTINUE_NAVI_MODE:
case VoiceConstants.CMD_MAP_CONTINUE_NAVI_MODE_UN_WAKEUP:
mView.getUIController().recoverLockMode();
AIAssist.getInstance(getContext()).speakTTSVoice("已切换", null);
AIAssist.getInstance( getContext() ).speakTTSVoice( "已切换", null );
break;
case VoiceConstants.CMD_MAP_CAR_UP_MODE:
mView.getUIController().changeMapMode(EnumMapUI.CarUp_2D);
AIAssist.getInstance(getContext()).speakTTSVoice("已切换", null);
case VoiceConstants.CMD_MAP_CAR_UP_MODE_UN_WAKEUP:
mView.getUIController().changeMapMode( EnumMapUI.CarUp_2D );
AIAssist.getInstance( getContext() ).speakTTSVoice( "已切换", null );
break;
default:
break;
@@ -190,22 +209,22 @@ public class MapPresenter extends Presenter<MapView>
}
@Override
public void onCmdAction(String speakText) {
public void onCmdAction( String speakText ) {
}
@Override
public void onCmdCancel(String speakText) {
public void onCmdCancel( String speakText ) {
}
@Override
public void onSpeakEnd(String speakText) {
public void onSpeakEnd( String speakText ) {
}
@Override
public void onSpeakSelectTimeOut(String speakText) {
public void onSpeakSelectTimeOut( String speakText ) {
}
}