@null
- @null
- @null
- - #EE0C0C0C
+ - #1F000000
- false
- @style/MainAnimation
diff --git a/modules/mogo-module-map/src/main/java/com/mogo/module/map/MapPresenter.java b/modules/mogo-module-map/src/main/java/com/mogo/module/map/MapPresenter.java
index 92a17f6cdc..01d71bc90c 100644
--- a/modules/mogo-module-map/src/main/java/com/mogo/module/map/MapPresenter.java
+++ b/modules/mogo-module-map/src/main/java/com/mogo/module/map/MapPresenter.java
@@ -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;
*
* 描述
*/
-public class MapPresenter extends Presenter
- 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
}
@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 ) {
}
}
diff --git a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/CategorySearchFragment.kt b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/CategorySearchFragment.kt
index e09c725af4..e3b17c22ca 100644
--- a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/CategorySearchFragment.kt
+++ b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/CategorySearchFragment.kt
@@ -68,7 +68,7 @@ class CategorySearchFragment : BaseFragment(), CategoryView {
super.onCreate(savedInstanceState)
category = arguments?.getString("category")
SearchServiceHolder.statusManager.setSearchUIShow(
- MogoModulePaths.PATH_FRAGMENT_SEARCH_CATEGORY, false
+ MogoModulePaths.PATH_FRAGMENT_SEARCH_CATEGORY, true
)
mSearchPresenter = CategoryPresenter(this)
lifecycle.addObserver(mSearchPresenter)
diff --git a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/ChoosePathFragment.kt b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/ChoosePathFragment.kt
index df5bcd88e6..73b4798ea3 100644
--- a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/ChoosePathFragment.kt
+++ b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/ChoosePathFragment.kt
@@ -74,8 +74,6 @@ class ChoosePathFragment : BaseFragment(), IMogoNaviListener {
super.onViewCreated(view, savedInstanceState)
iv_navi_back.setOnClickListener {
SearchServiceHolder.fragmentManager.pop()
- SearchServiceHolder.getNavi()
- .clearCalculatePaths()
}
tv_navi_navi.text = getString(R.string.start_navi)
@@ -112,16 +110,20 @@ class ChoosePathFragment : BaseFragment(), IMogoNaviListener {
SearchServiceHolder.getNavi()
.itemClickInteraction.onItemClicked(item.tagId)
}
+
+ SearchServiceHolder.getMarkerManger().removeMarkers()
}
- override fun onDestroy() {
- super.onDestroy()
+ override fun onDestroyView() {
+ super.onDestroyView()
SearchServiceHolder.listenerCenter.unregisterMogoNaviListener(
- MogoModulePaths.PATH_FRAGMENT_CHOOSE_PAHT
+ MogoModulePaths.PATH_FRAGMENT_CHOOSE_PAHT
)
SearchServiceHolder.statusManager.setSearchUIShow(
- MogoModulePaths.PATH_FRAGMENT_CHOOSE_PAHT, false
+ MogoModulePaths.PATH_FRAGMENT_CHOOSE_PAHT, false
)
+ SearchServiceHolder.getNavi()
+ .clearCalculatePaths()
}
companion object {
diff --git a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/setting/SettingAddressFragment.kt b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/setting/SettingAddressFragment.kt
index d46d26f80e..f2e674802d 100644
--- a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/setting/SettingAddressFragment.kt
+++ b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/setting/SettingAddressFragment.kt
@@ -25,6 +25,7 @@ import com.mogo.module.navi.constants.DataConstants
import com.mogo.module.navi.constants.SearchServiceHolder
import com.mogo.module.navi.database.AppDataBase
import com.mogo.module.navi.ui.base.BaseFragment
+import com.mogo.utils.UiThreadHandler
import io.reactivex.Observable
import io.reactivex.ObservableOnSubscribe
import io.reactivex.schedulers.Schedulers
@@ -86,15 +87,14 @@ class SettingAddressFragment : BaseFragment(), IMogoGeoSearchListener {
)
SearchServiceHolder.getMapUIController()
.showMyLocation(false)
- moveMapToCenter()
SearchServiceHolder.getGeoSearcher()
.setGeoSearchListener(this)
SearchServiceHolder.statusManager.setSearchUIShow(
- MogoModulePaths.PATH_FRAGMENT_SETTING_HOME, false)
-
+ MogoModulePaths.PATH_FRAGMENT_SETTING_HOME, true)
+ SearchServiceHolder.getMarkerManger().removeMarkers()
}
override fun getLayoutId(): Int {
@@ -137,7 +137,8 @@ class SettingAddressFragment : BaseFragment(), IMogoGeoSearchListener {
et_navi_search.setText(getString(string.drag_map_to_choose))
var location = SearchServiceHolder.getMapUIController()
.windowCenterLocation
- if (addMarker == null) {
+ moveMapToCenter()
+ UiThreadHandler.postDelayed({
var decodeResource = BitmapFactory.decodeResource(resources, R.mipmap.icon_choose_position2)
val options = MogoMarkerOptions()
.icon(decodeResource)
@@ -146,13 +147,12 @@ class SettingAddressFragment : BaseFragment(), IMogoGeoSearchListener {
.anchor(0.5f, 1f)
.longitude(location?.lng ?: 0.0)
addMarker = SearchServiceHolder.getMarkerManger()
- .addMarker(MogoModulePaths.PATH_FRAGMENT_SETTING_HOME, options)
+ .addMarker(MogoModulePaths.PATH_FRAGMENT_SETTING_HOME, options)
var locationPointInScreen = SearchServiceHolder.getMapUIController()
- .getLocationPointInScreen(location)
+ .getLocationPointInScreen(location)
addMarker?.setPositionByPixels(locationPointInScreen)
- }
-
+ }, 500L)
}
fun insert(searchPoi: SearchPoi) {
@@ -179,7 +179,12 @@ class SettingAddressFragment : BaseFragment(), IMogoGeoSearchListener {
addMarker?.destroy()
SearchServiceHolder.statusManager.setSearchUIShow(
- MogoModulePaths.PATH_FRAGMENT_SETTING_HOME, true)
+ MogoModulePaths.PATH_FRAGMENT_SETTING_HOME, false)
+
+ if (SearchServiceHolder.fragmentManager.stackSize == 0) {
+ moveMapToRight()
+ SearchServiceHolder.getMapUIController().showMyLocation(true)
+ }
// moveMapToRight()
}
diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServiceProvider.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServiceProvider.java
index 38485f4c3f..cb76e39465 100644
--- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServiceProvider.java
+++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServiceProvider.java
@@ -2,6 +2,7 @@ package com.mogo.module.service;
import android.content.Context;
+import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.os.Handler;
@@ -31,10 +32,12 @@ import com.mogo.module.common.MogoModule;
import com.mogo.module.common.MogoModulePaths;
import com.mogo.module.service.network.RefreshCallback;
import com.mogo.module.service.network.RefreshModel;
-import com.mogo.module.service.receiver.AIAssistReceiver;
+import com.mogo.module.service.receiver.MogoReceiver;
import com.mogo.module.service.refresh.AutoRefreshStrategy;
import com.mogo.module.service.refresh.CustomRefreshStrategy;
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.IMogoModuleLifecycle;
import com.mogo.service.module.IMogoModuleProvider;
@@ -43,6 +46,8 @@ import com.mogo.service.module.ModuleType;
import com.mogo.service.statusmanager.IMogoStatusChangedListener;
import com.mogo.service.statusmanager.IMogoStatusManager;
import com.mogo.service.statusmanager.StatusDescriptor;
+import com.mogo.service.voice.IMogoVoiceListener;
+import com.mogo.service.voice.IMogoVoiceManager;
import com.mogo.utils.logger.Logger;
import java.util.List;
@@ -58,7 +63,8 @@ public class MogoServiceProvider implements IMogoModuleProvider,
IMogoMapListener,
IMogoLocationListener,
IMogoNaviListener,
- IMogoStatusChangedListener {
+ IMogoStatusChangedListener,
+ IMogoIntentListener {
private static final String TAG = "MogoRefreshStrategyProvider";
@@ -81,7 +87,7 @@ public class MogoServiceProvider implements IMogoModuleProvider,
*/
boolean mIsVertical = false;
- private AIAssistReceiver mAIAssistReceiver;
+ private MogoReceiver mAIAssistReceiver;
/**
* 手动刷新策略
@@ -95,6 +101,7 @@ public class MogoServiceProvider implements IMogoModuleProvider,
private IMogoMapService mMogoMapService;
private IMogoStatusManager mStatusManager;
+ private IMogoIntentManager mIntentManager;
/**
* 地图视图初始化
@@ -230,6 +237,10 @@ public class MogoServiceProvider implements IMogoModuleProvider,
registerCenter.registerMogoLocationListener( getModuleName(), this );
registerCenter.registerMogoNaviListener( getModuleName(), this );
registerCenter.registerMogoMapListener( getModuleName(), this );
+
+ mIntentManager = ( IMogoIntentManager ) ARouter.getInstance().build( MogoServicePaths.PATH_INTENT_MANAGER ).navigation( context );
+ mIntentManager.registerIntentListener( MogoReceiver.ADAS_ACTION, this );
+
}
private void registerAIReceiver( Context context ) {
@@ -240,9 +251,18 @@ public class MogoServiceProvider implements IMogoModuleProvider,
if ( modules.isEmpty() || modules == null ) {
return;
}
- mAIAssistReceiver = new AIAssistReceiver( context );
+ mAIAssistReceiver = new MogoReceiver( context );
IntentFilter filter = new IntentFilter();
- filter.addAction( AIAssistReceiver.ACTION );
+ if ( modules != null && !modules.isEmpty() ) {
+ for ( MogoModule module : modules ) {
+ if ( TextUtils.isEmpty( module.getBroadcastAction() ) ) {
+ continue;
+ }
+ filter.addAction( module.getBroadcastAction() );
+ }
+ }
+ filter.addAction( MogoReceiver.VOICE_ACTION );
+ filter.addAction( MogoReceiver.ADAS_ACTION );
try {
context.getApplicationContext().registerReceiver( mAIAssistReceiver, filter );
Logger.i( TAG, "register voice receiver." );
@@ -371,6 +391,8 @@ public class MogoServiceProvider implements IMogoModuleProvider,
notifyRefreshData( latLng, getQueryRadius(), mCustomRefreshCallback );
mLastCustomRefreshCenterLocation = latLng;
}
+ } else {
+ mLastZoomLevel = zoom;
}
}
@@ -494,4 +516,15 @@ public class MogoServiceProvider implements IMogoModuleProvider,
public IMogoMarkerClickListener getMarkerClickListener() {
return null;
}
+
+ @Override
+ public void onIntentReceived( String command, Intent intent ) {
+ if ( MogoReceiver.ADAS_ACTION.equals( command ) ) {
+ if ( intent == null ) {
+ return;
+ }
+ int status = intent.getIntExtra( MogoReceiver.PARAM_ADAS_STATUS, 0 );
+ mStatusManager.setADASUIShow( getModuleName(), status == 1 );
+ }
+ }
}
diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/ServiceConst.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/ServiceConst.java
index 46f1cff8a6..dc6877a773 100644
--- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/ServiceConst.java
+++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/ServiceConst.java
@@ -27,7 +27,6 @@ public class ServiceConst {
*/
public static final int DECREASE_INTERVAL = 1_000;
-
/**
* 卡片 车聊聊
*/
diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/network/RefreshModel.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/network/RefreshModel.java
index a30ca0e83b..f2f2200a00 100644
--- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/network/RefreshModel.java
+++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/network/RefreshModel.java
@@ -57,7 +57,7 @@ public class RefreshModel {
if ( mRefreshApiService != null ) {
final Map< String, Object > query = new ParamsProvider.Builder( mContext ).build();
final RefreshBody refreshBody = new RefreshBody();
- refreshBody.limit = 5;
+ refreshBody.limit = 20;
refreshBody.location = new RefreshBody.LatLon( latLng.lat, latLng.lng );
refreshBody.radius = radius;
query.put( "data", GsonUtil.jsonFromObject( refreshBody ) );
diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/receiver/AIAssistReceiver.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/receiver/AIAssistReceiver.java
deleted file mode 100644
index 2f757c975d..0000000000
--- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/receiver/AIAssistReceiver.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package com.mogo.module.service.receiver;
-
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import android.text.TextUtils;
-
-import com.alibaba.android.arouter.launcher.ARouter;
-import com.mogo.service.MogoServicePaths;
-import com.mogo.service.voice.IMogoVoiceManager;
-import com.mogo.utils.logger.Logger;
-
-/**
- * @author congtaowang
- * @since 2019-10-03
- *
- * 语音助手广播接收者
- */
-public class AIAssistReceiver extends BroadcastReceiver {
-
- public static final String ACTION = "com.zhidao.speech.awake.notify";
- public static final String PARAM_COMMAND = "command";
-
- private static final String TAG = "AIAssistReceiver";
-
-
- private IMogoVoiceManager mMogoVoiceManager;
-
- public AIAssistReceiver( Context context ) {
- mMogoVoiceManager = ( IMogoVoiceManager ) ARouter.getInstance().build( MogoServicePaths.PATH_VOICE_MANAGER ).navigation( context );
- }
-
- @Override
- public void onReceive( Context context, Intent intent ) {
- Logger.i( TAG, "receive ai assist intent" );
- final String action = intent.getAction();
- if ( TextUtils.equals( ACTION, action ) ) {
- String cmd = intent.getStringExtra( PARAM_COMMAND );
- if ( !TextUtils.isEmpty( cmd ) ) {
- mMogoVoiceManager.invoke( cmd, intent );
- }
- }
- }
-}
diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/receiver/MogoReceiver.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/receiver/MogoReceiver.java
new file mode 100644
index 0000000000..f6a67463f8
--- /dev/null
+++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/receiver/MogoReceiver.java
@@ -0,0 +1,56 @@
+package com.mogo.module.service.receiver;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.text.TextUtils;
+
+import com.alibaba.android.arouter.launcher.ARouter;
+import com.mogo.service.MogoServicePaths;
+import com.mogo.service.intent.IMogoIntentManager;
+import com.mogo.service.voice.IMogoVoiceManager;
+import com.mogo.utils.logger.Logger;
+
+/**
+ * @author congtaowang
+ * @since 2019-10-03
+ *
+ * 广播接收者
+ */
+public class MogoReceiver extends BroadcastReceiver {
+
+ private static final String TAG = "MogoReceiver";
+
+ /**
+ * 语音
+ */
+ public static final String VOICE_ACTION = "com.zhidao.speech.awake.notify";
+ public static final String PARAM_COMMAND = "command";
+
+ /**
+ * ADAS
+ */
+ public static final String ADAS_ACTION = "com.mogo.launcher.adas";
+ // ADAS 状态 0 - 关闭 1 - 打开
+ public static final String PARAM_ADAS_STATUS = "adas_drawer_status";
+
+ private IMogoIntentManager mMogoIntentManager;
+
+ public MogoReceiver( Context context ) {
+ mMogoIntentManager = ( IMogoIntentManager ) ARouter.getInstance().build( MogoServicePaths.PATH_INTENT_MANAGER ).navigation( context );
+ }
+
+ @Override
+ public void onReceive( Context context, Intent intent ) {
+ final String action = intent.getAction();
+ Logger.i( TAG, "receive intent action: %s", action );
+ if ( TextUtils.equals( VOICE_ACTION, action ) ) {
+ String cmd = intent.getStringExtra( PARAM_COMMAND );
+ if ( !TextUtils.isEmpty( cmd ) ) {
+ mMogoIntentManager.invoke( cmd, intent );
+ }
+ } else {
+ mMogoIntentManager.invoke( action, intent );
+ }
+ }
+}
diff --git a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/constant/TanluConstants.java b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/constant/TanluConstants.java
index 0073b170dc..97cc3f9be1 100644
--- a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/constant/TanluConstants.java
+++ b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/constant/TanluConstants.java
@@ -10,5 +10,5 @@ public class TanluConstants {
public static final String TAG = "/tanlu/ui";
public static final String NAVI_INFO = "navi_info";
- public static final String MODEL_NAME = "mogo-module-tanlu";
+ public static final String MODEL_NAME = "CARD_TYPE_ROAD_CONDITION";
}
diff --git a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/fragment/TanluCardViewFragment.java b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/fragment/TanluCardViewFragment.java
index 50edeb1eb5..818fe19ed8 100644
--- a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/fragment/TanluCardViewFragment.java
+++ b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/fragment/TanluCardViewFragment.java
@@ -37,6 +37,7 @@ import com.mogo.map.search.poisearch.MogoPoiResult;
import com.mogo.map.uicontroller.EnumMapUI;
import com.mogo.module.common.entity.MarkerExploreWay;
import com.mogo.module.common.entity.MarkerResponse;
+import com.mogo.module.common.entity.MarkerShowEntity;
import com.mogo.module.tanlu.callback.AlongTheWayCallback;
import com.mogo.module.tanlu.callback.RoadLineCallback;
import com.mogo.module.tanlu.callback.VoiceSearchCallback;
@@ -83,7 +84,7 @@ import static com.mogo.module.tanlu.video.VideoInitKt.initVideo;
* @description 探路卡片
* @since 2020-01-02
*/
-public class TanluCardViewFragment extends MvpFragment>
+public class TanluCardViewFragment extends MvpFragment< IView, Presenter< IView > >
implements IView,
IMogoMarkerClickListener,
IMogoModuleLifecycle,
@@ -112,6 +113,8 @@ public class TanluCardViewFragment extends MvpFragment>
private GSYVideoOptionBuilder gsyVideoOptionBuilder = new GSYVideoOptionBuilder();
private String mVideoUrl = "http://ivi.bupt.edu.cn/hls/cctv1hd.m3u8";
private String mImageUrl = "https://oimagec4.ydstatic.com/image?id=-5397300958976572132&product=adpublish&w=520&h=347";
+ private String mTitle = "";
+ private long mGenerateTime = 0;
private IMogoImageloader mogoImageloader;
private TextView mPreviousTv;
private TextView mNextTv;
@@ -122,11 +125,11 @@ public class TanluCardViewFragment extends MvpFragment>
private TextView mDistanceTv;
private TextView mTimeTv;
- private List markerExploreWayList = new ArrayList<>();
+ private List< MarkerExploreWay > markerExploreWayList = new ArrayList<>();
private int currentPosition = 0; //卡片媒体当前位置
private Bitmap mMarkerIcon;
private TanluModelData mTanluModelData;
- private List passedByPoints;
+ private List< MogoLatLng > passedByPoints;
private IMogoRegisterCenter mMogoRegisterCenter;
@@ -138,54 +141,57 @@ public class TanluCardViewFragment extends MvpFragment>
@Override
protected void initViews() {
initVideo();
- simpleCoverVideoPlayer = findViewById(R.id.video_player_main);
- autoZoomInImageView = findViewById(R.id.tanlu_photo_imageView);
- mPreviousTv = findViewById(R.id.tv_previous_res);
- mNextTv = findViewById(R.id.tv_next_res);
- mRootLayout = findViewById(R.id.layout_data_show);
- mEmptyLayout = findViewById(R.id.layout_empty_data_show);
- mEmptyTv = findViewById(R.id.tv_main_empty);
- mAddressTv = findViewById(R.id.tv_information_media_content);
- mDistanceTv = findViewById(R.id.tv_distance_video);
- mTimeTv = findViewById(R.id.tv_information_media_time);
+ simpleCoverVideoPlayer = findViewById( R.id.video_player_main );
+ autoZoomInImageView = findViewById( R.id.tanlu_photo_imageView );
+ mPreviousTv = findViewById( R.id.tv_previous_res );
+ mNextTv = findViewById( R.id.tv_next_res );
+ mRootLayout = findViewById( R.id.layout_data_show );
+ mEmptyLayout = findViewById( R.id.layout_empty_data_show );
+ mEmptyTv = findViewById( R.id.tv_main_empty );
+ mAddressTv = findViewById( R.id.tv_information_media_content );
+ mDistanceTv = findViewById( R.id.tv_distance_video );
+ mTimeTv = findViewById( R.id.tv_information_media_time );
- mPreviousTv.setOnClickListener(this);
- mNextTv.setOnClickListener(this);
- mEmptyTv.setOnClickListener(this);
+ mPreviousTv.setOnClickListener( this );
+ mNextTv.setOnClickListener( this );
+ mEmptyTv.setOnClickListener( this );
- simpleCoverVideoPlayer.setVisibility(View.VISIBLE);
- autoZoomInImageView.setVisibility(View.GONE);
+ simpleCoverVideoPlayer.setVisibility( View.VISIBLE );
+ autoZoomInImageView.setVisibility( View.GONE );
//视频配置 TODO 需要去掉
- gsyVideoOptionBuilder.setUrl(mVideoUrl).setCacheWithPlay(false).setPlayTag(TAG)
- .build(simpleCoverVideoPlayer);
- simpleCoverVideoPlayer.getStartButton().setOnClickListener(new View.OnClickListener() {
+// gsyVideoOptionBuilder.setUrl(mVideoUrl).setCacheWithPlay(false).setPlayTag(TAG)
+// .build(simpleCoverVideoPlayer);
+ simpleCoverVideoPlayer.getStartButton().setOnClickListener( new View.OnClickListener() {
@Override
- public void onClick(View view) {
- Logger.d(TAG, "simpleCoverVideoPlayer onClick -------> ");
- FullMediaActivity.Companion.launch(getActivity(), mVideoUrl, mImageUrl, "东城区环球贸易中心", 1300000300);
+ public void onClick( View view ) {
+ Logger.d( TAG, "simpleCoverVideoPlayer onClick -------> " );
+ FullMediaActivity.Companion.launch( getActivity(), mVideoUrl, mImageUrl, mTitle, mGenerateTime );
}
- });
+ } );
}
private void initInterface() {
//图片配置
- mogoImageloader = (IMogoImageloader) ARouter.getInstance().build(MogoServicePaths.PATH_UTILS_IMAGE_LOADER).navigation();
+ mogoImageloader = ( IMogoImageloader ) ARouter.getInstance().build( MogoServicePaths.PATH_UTILS_IMAGE_LOADER ).navigation();
//地图marker
- mMogoMapService = (IMogoMapService) ARouter.getInstance().build(MogoServicePaths.PATH_SERVICES_MAP).navigation(getActivity());
+ mMogoMapService = ( IMogoMapService ) ARouter.getInstance().build( MogoServicePaths.PATH_SERVICES_MAP ).navigation( getActivity() );
//切换卡片操作
- iMogoCardManager = (IMogoCardManager) ARouter.getInstance().build(MogoServicePaths.PATH_CARD_MANAGER).navigation(getActivity());
+ iMogoCardManager = ( IMogoCardManager ) ARouter.getInstance().build( MogoServicePaths.PATH_CARD_MANAGER ).navigation( getActivity() );
- mMogoRegisterCenter = (IMogoRegisterCenter) ARouter.getInstance().build(MogoServicePaths.PATH_REGISTER_CENTER).navigation(getContext());
+ mMogoRegisterCenter = ( IMogoRegisterCenter ) ARouter.getInstance().build( MogoServicePaths.PATH_REGISTER_CENTER ).navigation( getContext() );
+
+
+ mMogoRegisterCenter.registerMogoModuleLifecycle( TanluConstants.MODEL_NAME, this );
}
@Override
- public void onActivityCreated(@Nullable Bundle savedInstanceState) {
- super.onActivityCreated(savedInstanceState);
- getViewLifecycleOwner().getLifecycle().addObserver(mPresenter);
- EventBus.getDefault().register(this);
+ public void onActivityCreated( @Nullable Bundle savedInstanceState ) {
+ super.onActivityCreated( savedInstanceState );
+ getViewLifecycleOwner().getLifecycle().addObserver( mPresenter );
+ EventBus.getDefault().register( this );
initInterface();
initModelData();
handleRoadLineMessage();
@@ -197,8 +203,8 @@ public class TanluCardViewFragment extends MvpFragment>
}
private void initModelData() {
- if (mTanluModelData == null) {
- mTanluModelData = new TanluModelData(getContext());
+ if ( mTanluModelData == null ) {
+ mTanluModelData = new TanluModelData( getContext() );
}
}
@@ -206,7 +212,7 @@ public class TanluCardViewFragment extends MvpFragment>
* 初始化导航 TODO
*/
private void initMap() {
- mMogoRegisterCenter.registerMogoNaviListener(TanluConstants.MODEL_NAME, new IMogoNaviListener() {
+ mMogoRegisterCenter.registerMogoNaviListener( TanluConstants.MODEL_NAME, new IMogoNaviListener() {
@Override
public void onInitNaviFailure() {
@@ -218,7 +224,7 @@ public class TanluCardViewFragment extends MvpFragment>
}
@Override
- public void onNaviInfoUpdate(MogoNaviInfo naviinfo) {
+ public void onNaviInfoUpdate( MogoNaviInfo naviinfo ) {
}
@@ -242,31 +248,52 @@ public class TanluCardViewFragment extends MvpFragment>
public void onoCalculateFailed() {
}
- });
+ } );
//监听marker点击
- mMogoRegisterCenter.registerMogoMarkerClickListener(TanluConstants.MODEL_NAME, new IMogoMarkerClickListener() {
+ mMogoRegisterCenter.registerMogoMarkerClickListener( TanluConstants.MODEL_NAME, new IMogoMarkerClickListener() {
@Override
- public boolean onMarkerClicked(IMogoMarker marker) {
+ public boolean onMarkerClicked( IMogoMarker marker ) {
//点击marker以后,确认他的位置?然后点击下一个操作 TODO
- MarkerExploreWay exploreWay = (MarkerExploreWay) marker.getObject();
- handleData(exploreWay);
+ MarkerExploreWay exploreWay = extractFromMarker(marker);
+ if ( exploreWay == null ) {
+ return false;
+ }
+
+ if ( exploreWay.getFileType() == 0 ) { //图片
+ refreshPhotoData( exploreWay );
+ } else if ( exploreWay.getFileType() == 1 ) { //视频
+ handleData( exploreWay );
+ }
//更新位置currentPosition
- for (int i = 0; i < markerExploreWayList.size(); i++) {
- if (markerExploreWayList.get(i).getAddr().equals(exploreWay.getAddr())) {
+ for ( int i = 0; i < markerExploreWayList.size(); i++ ) {
+ if ( markerExploreWayList.get( i ) == exploreWay ) {
currentPosition = i;
break;
}
- Logger.d(TAG, "onMarkerClicked currentPosition = " + currentPosition);
+ Logger.d( TAG, "onMarkerClicked currentPosition = " + currentPosition );
}
return false;
}
- });
+ } );
}
+ private MarkerExploreWay extractFromMarker( IMogoMarker marker ) {
+ if ( marker == null ) {
+ return null;
+ }
+ if ( marker.getObject() instanceof MarkerShowEntity ) {
+ MarkerShowEntity showEntity = ( ( MarkerShowEntity ) marker.getObject() );
+ if ( showEntity.getBindObj() instanceof MarkerExploreWay ) {
+ return ( ( MarkerExploreWay ) showEntity.getBindObj() );
+ }
+ }
+ return null;
+ }
+
/**
* 处理路线数据信息,msgType
@@ -296,66 +323,66 @@ public class TanluCardViewFragment extends MvpFragment>
* @param view
*/
@Override
- public void onClick(View view) {
+ public void onClick( View view ) {
int id = view.getId();
- if (id == R.id.tv_previous_res) { //上一个
- //判断是图片还是视频,第一个时,上一个不可点击
-// Logger.d(TAG, " tv_previous_res --1-> currentPosition =" + currentPosition + ">> size= " + markerExploreWayList.size());
-// if (currentPosition < 0) {
-// return;
-// }
-// currentPosition--;
-// Logger.d(TAG, " tv_previous_res --2-> currentPosition =" + currentPosition + ">> size= " + markerExploreWayList.size());
-// if (markerExploreWayList.size() > currentPosition && currentPosition >= 0) {
-// handleData(markerExploreWayList.get(currentPosition));
-// }
+ if ( id == R.id.tv_previous_res ) { //上一个
+// 判断是图片还是视频,第一个时,上一个不可点击
+ Logger.d(TAG, " tv_previous_res --1-> currentPosition =" + currentPosition + ">> size= " + markerExploreWayList.size());
+ if (currentPosition < 0) {
+ return;
+ }
+ currentPosition--;
+ Logger.d(TAG, " tv_previous_res --2-> currentPosition =" + currentPosition + ">> size= " + markerExploreWayList.size());
+ if (markerExploreWayList.size() > currentPosition && currentPosition >= 0) {
+ handleData(markerExploreWayList.get(currentPosition));
+ }
// getRoadLineData();
// getVoiceControlRoadData("中关村");
// getNavigationLineData();
- getNaviRoadLineInfo();
+// getNaviRoadLineInfo();
- } else if (id == R.id.tv_next_res) { //下一个
+ } else if ( id == R.id.tv_next_res ) { //下一个
//判断是图片还是视频,最后一个时,下一个不可点击
- Logger.d(TAG, " tv_next_res --1-> currentPosition =" + currentPosition + ">> size= " + markerExploreWayList.size());
- if (currentPosition > markerExploreWayList.size()) {
+ Logger.d( TAG, " tv_next_res --1-> currentPosition =" + currentPosition + ">> size= " + markerExploreWayList.size() );
+ if ( currentPosition > markerExploreWayList.size() ) {
return;
}
currentPosition++;
- Logger.d(TAG, " tv_next_res --2-> currentPosition =" + currentPosition + ">> size= " + markerExploreWayList.size());
- if (markerExploreWayList.size() > currentPosition) {
- handleData(markerExploreWayList.get(currentPosition));
+ Logger.d( TAG, " tv_next_res --2-> currentPosition =" + currentPosition + ">> size= " + markerExploreWayList.size() );
+ if ( markerExploreWayList.size() > currentPosition ) {
+ handleData( markerExploreWayList.get( currentPosition ) );
}
- } else if (id == R.id.tv_main_empty) { //TODO上报路况,逻辑
- Logger.d(TAG, "tv_main_empty click -----> ");
- sendShareReceiver("1");
+ } else if ( id == R.id.tv_main_empty ) { //TODO上报路况,逻辑
+ Logger.d( TAG, "tv_main_empty click -----> " );
+ sendShareReceiver( "1" );
}
}
/**
* 发送广播
*/
- private void sendShareReceiver(String type) {
- Logger.d("liyz", "LaucherShareDialog sendShareReceiver ---->");
+ private void sendShareReceiver( String type ) {
+ Logger.d( "liyz", "LaucherShareDialog sendShareReceiver ---->" );
Intent intent = new Intent();
- intent.setAction("com.zhidao.roadcondition.share");
- intent.putExtra("type", type);
- getContext().sendBroadcast(intent);
+ intent.setAction( "com.zhidao.roadcondition.share" );
+ intent.putExtra( "type", type );
+ getContext().sendBroadcast( intent );
}
/**
* 执行图片动画
*/
private void handleImageAnimation() {
- autoZoomInImageView.post(new Runnable() {
+ autoZoomInImageView.post( new Runnable() {
@Override
public void run() {
//放大增量是0.3,放大时间是1000毫秒,放大开始时间是600毫秒以后
autoZoomInImageView.init()
- .startZoomInByScaleDeltaAndDuration(0.2f, 1000, 500);
+ .startZoomInByScaleDeltaAndDuration( 0.2f, 1000, 500 );
}
- });
+ } );
}
/**
@@ -365,7 +392,7 @@ public class TanluCardViewFragment extends MvpFragment>
* @return
*/
@Override
- public boolean onMarkerClicked(IMogoMarker marker) {
+ public boolean onMarkerClicked( IMogoMarker marker ) {
return true;
}
@@ -374,85 +401,90 @@ public class TanluCardViewFragment extends MvpFragment>
*
* @param exploreWay
*/
- private void handleData(MarkerExploreWay exploreWay) {
- if (exploreWay != null ) {
- if (exploreWay.getFileType()==0) { //图片
- refreshPhotoData(exploreWay);
- } else if (exploreWay.getFileType()==1) { //视频
- refreshVideoData(exploreWay);
+ private void handleData( MarkerExploreWay exploreWay ) {
+ if ( exploreWay != null ) {
+ if ( exploreWay.getFileType() == 0 ) { //图片
+ refreshPhotoData( exploreWay );
+ } else if ( exploreWay.getFileType() == 1 ) { //视频
+ refreshVideoData( exploreWay );
}
} else {
- Logger.e(TAG, "handleData exploreWay == null ");
+ Logger.e( TAG, "handleData exploreWay == null " );
}
}
/**
* 刷新单个视频数据,更新位置positon
*/
- private void refreshVideoData(MarkerExploreWay markerExploreWay) {
- if (markerExploreWay.getItems() == null) {
+ private void refreshVideoData( MarkerExploreWay markerExploreWay ) {
+ if ( markerExploreWay.getItems() == null ) {
return;
}
- if (markerExploreWay.getItems().size() == 0) {
+ if ( markerExploreWay.getItems().size() == 0 ) {
return;
}
- String videoUrl = markerExploreWay.getItems().get(0).getUrl();
- mAddressTv.setText(markerExploreWay.getAddr());
- mDistanceTv.setText(handleDistance(markerExploreWay.getDistance()));
- mTimeTv.setText(formatDate(markerExploreWay.getGenerateTime()));
+ String videoUrl = markerExploreWay.getItems().get( 0 ).getUrl();
+ mImageUrl = markerExploreWay.getItems().get( 0 ).getThumbnail();
+ mGenerateTime = markerExploreWay.getGenerateTime();
+ mTitle = markerExploreWay.getAddr();
+ mAddressTv.setText( markerExploreWay.getAddr() );
+ mDistanceTv.setText( handleDistance( markerExploreWay.getDistance() ) );
+ mTimeTv.setText( formatDate( markerExploreWay.getGenerateTime() ) );
//判断是图片还是视频,第一个时,上一个不可点击
- simpleCoverVideoPlayer.setVisibility(View.VISIBLE);
- autoZoomInImageView.setVisibility(View.GONE);
+ simpleCoverVideoPlayer.setVisibility( View.VISIBLE );
//视频配置
- gsyVideoOptionBuilder.setUrl(videoUrl).setCacheWithPlay(false).setPlayTag(TAG)
- .build(simpleCoverVideoPlayer);
-
+ mVideoUrl = videoUrl;
+ gsyVideoOptionBuilder.setUrl( videoUrl ).setCacheWithPlay( false ).setPlayTag( TAG )
+ .build( simpleCoverVideoPlayer );
+ if ( mImageUrl == null ) {
+ return;
+ }
}
/**
* 刷新单个图片数据
*/
- private void refreshPhotoData(MarkerExploreWay markerExploreWay) {
- if (markerExploreWay.getItems() == null) {
+ private void refreshPhotoData( MarkerExploreWay markerExploreWay ) {
+ if ( markerExploreWay.getItems() == null ) {
return;
}
- if (markerExploreWay.getItems().size() == 0) {
+ if ( markerExploreWay.getItems().size() == 0 ) {
return;
}
- mAddressTv.setText(markerExploreWay.getAddr());
- mDistanceTv.setText(handleDistance(markerExploreWay.getDistance()));
- mTimeTv.setText(formatDate(markerExploreWay.getGenerateTime()));
- String thumbnailUrl = markerExploreWay.getItems().get(0).getThumbnail();
- Logger.d(TAG, "refreshPhotoData thumbnailUrl ------>" + thumbnailUrl);
- autoZoomInImageView.setVisibility(View.VISIBLE);
- simpleCoverVideoPlayer.setVisibility(View.GONE);
- mogoImageloader.downloadImage(getActivity(), thumbnailUrl, new IMogoImageLoaderListener() {
+ mAddressTv.setText( markerExploreWay.getAddr() );
+ mDistanceTv.setText( handleDistance( markerExploreWay.getDistance() ) );
+ mTimeTv.setText( formatDate( markerExploreWay.getGenerateTime() ) );
+ String thumbnailUrl = markerExploreWay.getItems().get( 0 ).getUrl();
+ Logger.d( TAG, "refreshPhotoData thumbnailUrl ------>" + thumbnailUrl );
+ autoZoomInImageView.setVisibility( View.VISIBLE );
+ simpleCoverVideoPlayer.setVisibility( View.GONE );
+ mogoImageloader.downloadImage( getActivity(), thumbnailUrl, new IMogoImageLoaderListener() {
@Override
public void onStart() {
}
@Override
- public void onCompleted(Bitmap bitmap) {
- autoZoomInImageView.setImageBitmap(bitmap);
+ public void onCompleted( Bitmap bitmap ) {
+ autoZoomInImageView.setImageBitmap( bitmap );
//动画
- handleImageAnimation();
+// handleImageAnimation();
}
@Override
- public void onFailure(Exception e) {
- Logger.e(TAG, "onFailure ------>" + e);
+ public void onFailure( Exception e ) {
+ Logger.e( TAG, "onFailure ------>" + e );
}
- });
+ } );
}
@NonNull
@Override
protected Presenter createPresenter() {
- return new Presenter(this) {
+ return new Presenter( this ) {
};
}
@@ -462,38 +494,42 @@ public class TanluCardViewFragment extends MvpFragment>
*/
@Override
public void onPerform() {
- Logger.d(TAG, "tanlu卡片 有效 ---->");
- mMarkerManager = mMogoMapService.getMarkerManager(getActivity());
- List markers = mMarkerManager.getMarkers("CARD_TYPE_ROAD_CONDITION");
- if (markers != null && markers.size() > 0) {
- mEmptyLayout.setVisibility(View.GONE);
- mRootLayout.setVisibility(View.VISIBLE);
- Logger.d(TAG, "onPerform markers.size() =" + markers.size());
- for (int i = 0; i < markers.size(); i++) {
- markerExploreWayList.add((MarkerExploreWay) markers.get(i).getObject());
+ Logger.d( TAG, "tanlu卡片 有效 ---->" );
+ mMarkerManager = mMogoMapService.getMarkerManager( getActivity() );
+ List< IMogoMarker > markers = mMarkerManager.getMarkers( TanluConstants.MODEL_NAME );
+ if ( markers != null && markers.size() > 0 ) {
+ mEmptyLayout.setVisibility( View.GONE );
+ mRootLayout.setVisibility( View.VISIBLE );
+ Logger.d( TAG, "onPerform markers.size() =" + markers.size() );
+ for ( int i = 0; i < markers.size(); i++ ) {
+ MarkerExploreWay exploreWay = extractFromMarker(markers.get( i ));
+ if ( exploreWay == null ) {
+ break;
+ }
+ markerExploreWayList.add(exploreWay );
}
- if (markers.size() == 1) {
- mPreviousTv.setVisibility(View.GONE);
- mNextTv.setVisibility(View.GONE);
+ if ( markers.size() == 1 ) {
+ mPreviousTv.setVisibility( View.GONE );
+ mNextTv.setVisibility( View.GONE );
} else {
- mPreviousTv.setVisibility(View.VISIBLE);
- mNextTv.setVisibility(View.VISIBLE);
+ mPreviousTv.setVisibility( View.VISIBLE );
+ mNextTv.setVisibility( View.VISIBLE );
}
//展示第一个数据
- MarkerExploreWay markerExploreWay = markerExploreWayList.get(0);
- if (markerExploreWay != null) {
- if (markerExploreWay.getFileType()==0) { //图片
- refreshPhotoData(markerExploreWay);
- } else if (markerExploreWay.getFileType()==1) { //视频
- refreshVideoData(markerExploreWay);
+ MarkerExploreWay markerExploreWay = markerExploreWayList.get( 0 );
+ if ( markerExploreWay != null ) {
+ if ( markerExploreWay.getFileType() == 0 ) { //图片
+ refreshPhotoData( markerExploreWay );
+ } else if ( markerExploreWay.getFileType() == 1 ) { //视频
+ refreshVideoData( markerExploreWay );
}
}
} else {
- mEmptyLayout.setVisibility(View.VISIBLE);
- mRootLayout.setVisibility(View.GONE);
- mEmptyTv.setText(Html.fromHtml(getContext().getString(R.string.main_empty_content)));
+ mEmptyLayout.setVisibility( View.VISIBLE );
+ mRootLayout.setVisibility( View.GONE );
+ mEmptyTv.setText( Html.fromHtml( getContext().getString( R.string.main_empty_content ) ) );
}
}
@@ -502,7 +538,7 @@ public class TanluCardViewFragment extends MvpFragment>
*/
@Override
public void onDisable() {
- Logger.d(TAG, "tanlu卡片 无效 ----->");
+ Logger.d( TAG, "tanlu卡片 无效 ----->" );
}
@Override
@@ -516,32 +552,32 @@ public class TanluCardViewFragment extends MvpFragment>
}
@Override
- public void onTouch(MotionEvent motionEvent) {
+ public void onTouch( MotionEvent motionEvent ) {
// Logger.d( TAG, "地图触摸事件" );
}
@Override
- public void onPOIClick(MogoPoi poi) {
- if (poi != null) {
- TipToast.shortTip(poi.getName());
+ public void onPOIClick( MogoPoi poi ) {
+ if ( poi != null ) {
+ TipToast.shortTip( poi.getName() );
}
- TanluServiceHandler.getPoiSearch().searchPOIIdAsyn(poi.getPoiId());
+ TanluServiceHandler.getPoiSearch().searchPOIIdAsyn( poi.getPoiId() );
}
@Override
- public void onPoiSearched(MogoPoiResult result, int errorCode) {
+ public void onPoiSearched( MogoPoiResult result, int errorCode ) {
}
@Override
- public void onPoiItemSearched(MogoPoiItem item, int errorCode) {
- if (item == null) {
+ public void onPoiItemSearched( MogoPoiItem item, int errorCode ) {
+ if ( item == null ) {
return;
}
}
@Override
- public void onLocationChanged(MogoLocation location) {
+ public void onLocationChanged( MogoLocation location ) {
// if (location.getErrCode() == 0) {
// Logger.d(TAG, "onLocationChanged 当前位置 -->" + location.getAddress());
// } else {
@@ -550,32 +586,32 @@ public class TanluCardViewFragment extends MvpFragment>
}
@Override
- public void onMapClick(MogoLatLng latLng) {
+ public void onMapClick( MogoLatLng latLng ) {
}
@Override
- public void onLockMap(boolean isLock) {
+ public void onLockMap( boolean isLock ) {
}
@Override
- public void onMapModeChanged(EnumMapUI ui) {
- Logger.d(TAG, ui.name());
+ public void onMapModeChanged( EnumMapUI ui ) {
+ Logger.d( TAG, ui.name() );
}
@Override
- public void onMapChanged(MogoLatLng location, float zoom, float tilt, float bearing) {
+ public void onMapChanged( MogoLatLng location, float zoom, float tilt, float bearing ) {
}
@Override
public void onDestroyView() {
super.onDestroyView();
- EventBus.getDefault().unregister(this);
- getViewLifecycleOwner().getLifecycle().removeObserver(mPresenter);
- TanluServiceHandler.getLocationClient().removeLocationListener(this);
- mMogoRegisterCenter.unregisterMogoNaviListener(TanluConstants.MODEL_NAME);
+ EventBus.getDefault().unregister( this );
+ getViewLifecycleOwner().getLifecycle().removeObserver( mPresenter );
+ TanluServiceHandler.getLocationClient().removeLocationListener( this );
+ mMogoRegisterCenter.unregisterMogoNaviListener( TanluConstants.MODEL_NAME );
}
/**
@@ -583,35 +619,35 @@ public class TanluCardViewFragment extends MvpFragment>
*
* @param event
*/
- @Subscribe(threadMode = ThreadMode.MAIN)
- public void onMarkerInfo(final MarkerInfo event) {
- Logger.d(TAG, "onMarkerInfo ------>");
- mMarkerIcon = BitmapFactory.decodeResource(getResources(), R.drawable.ic_search_poi_location);
- mogoImageloader.downloadImage(getActivity(), event.imageUrl, new IMogoImageLoaderListener() {
+ @Subscribe( threadMode = ThreadMode.MAIN )
+ public void onMarkerInfo( final MarkerInfo event ) {
+ Logger.d( TAG, "onMarkerInfo ------>" );
+ mMarkerIcon = BitmapFactory.decodeResource( getResources(), R.drawable.ic_search_poi_location );
+ mogoImageloader.downloadImage( getActivity(), event.imageUrl, new IMogoImageLoaderListener() {
@Override
public void onStart() {
- Logger.d(TAG, "onMarkerInfo onStart ------>");
+ Logger.d( TAG, "onMarkerInfo onStart ------>" );
}
@Override
- public void onCompleted(Bitmap bitmap) {
- Logger.d(TAG, "onMarkerInfo onCompleted ------>");
+ public void onCompleted( Bitmap bitmap ) {
+ Logger.d( TAG, "onMarkerInfo onCompleted ------>" );
MogoMarkerOptions options = new MogoMarkerOptions()
- .icon(mMarkerIcon)
- .latitude(event.lat)
- .owner(TanluConstants.MODEL_NAME)
- .longitude(event.lon);
+ .icon( mMarkerIcon )
+ .latitude( event.lat )
+ .owner( TanluConstants.MODEL_NAME )
+ .longitude( event.lon );
- mMogoMapService = (IMogoMapService) ARouter.getInstance().build(MogoServicePaths.PATH_SERVICES_MAP).navigation(getContext());
- mMarkerManager = mMogoMapService.getMarkerManager(getContext());
- IMogoMarker marker = mMarkerManager.addMarker(TanluConstants.MODEL_NAME, options);
+ mMogoMapService = ( IMogoMapService ) ARouter.getInstance().build( MogoServicePaths.PATH_SERVICES_MAP ).navigation( getContext() );
+ mMarkerManager = mMogoMapService.getMarkerManager( getContext() );
+ IMogoMarker marker = mMarkerManager.addMarker( TanluConstants.MODEL_NAME, options );
}
@Override
- public void onFailure(Exception e) {
- Logger.e(TAG, "onMarkerInfo onFailure -----e =" + e);
+ public void onFailure( Exception e ) {
+ Logger.e( TAG, "onMarkerInfo onFailure -----e =" + e );
}
- });
+ } );
}
/**
@@ -620,107 +656,107 @@ public class TanluCardViewFragment extends MvpFragment>
public void getNavigationLineData() {
Double lat = TanluServiceHandler.getLocationClient().getLastKnowLocation().getLatitude();
Double lon = TanluServiceHandler.getLocationClient().getLastKnowLocation().getLongitude();
- Logger.e(TAG, "getNavigationLineData lon = " + lon + ">>>>> lat= " + lat);
- mTanluModelData.getNavigationLineData(lon, lat, new AlongTheWayCallback() {
+ Logger.e( TAG, "getNavigationLineData lon = " + lon + ">>>>> lat= " + lat );
+ mTanluModelData.getNavigationLineData( lon, lat, new AlongTheWayCallback() {
@Override
- public void onSuccess(InformationAndLiveCarResult data) {
- Logger.d(TAG, "getNavigationLineData onSuccess ");
+ public void onSuccess( InformationAndLiveCarResult data ) {
+ Logger.d( TAG, "getNavigationLineData onSuccess " );
//不做任何处理,直接出发推送,重新请求接口,划线
}
@Override
- public void onFail(String message, int code) {
- Logger.e(TAG, "getNavigationLineData onFail message = " + message + ">>>code= " + code);
+ public void onFail( String message, int code ) {
+ Logger.e( TAG, "getNavigationLineData onFail message = " + message + ">>>code= " + code );
}
- });
+ } );
}
/**
* 通勤族 事件,监听消息自己请求路线数据
*/
public void getRoadLineData() {
- mTanluModelData.getRoadLineData(new RoadLineCallback() {
+ mTanluModelData.getRoadLineData( new RoadLineCallback() {
@Override
- public void onSuccess(PathLineResult o) {
+ public void onSuccess( PathLineResult o ) {
//绘制线路线
- if (o != null && o.getPointList() != null && o.getPointList().size() > 0) {
- drawMapLine(o.getPointList());
+ if ( o != null && o.getPointList() != null && o.getPointList().size() > 0 ) {
+ drawMapLine( o.getPointList() );
} else {
- Logger.e(TAG, "getRoadLineData onSuccess o.getPointList() == null");
+ Logger.e( TAG, "getRoadLineData onSuccess o.getPointList() == null" );
}
}
@Override
- public void onFail(String message, int code) {
- Logger.d(TAG, "getRoadLineData onFail message =" + message + ">>>code =" + code);
+ public void onFail( String message, int code ) {
+ Logger.d( TAG, "getRoadLineData onFail message =" + message + ">>>code =" + code );
}
- });
+ } );
}
/**
* 导航路线,监听消息自己请求路线数据
*/
public void getNaviRoadLineInfo() {
- mTanluModelData.getNaviRoadLineInfo(new RoadLineCallback() {
+ mTanluModelData.getNaviRoadLineInfo( new RoadLineCallback() {
@Override
- public void onSuccess(PathLineResult o) {
+ public void onSuccess( PathLineResult o ) {
//绘制线路线
- if (o != null && o.getPointList() != null && o.getPointList().size() > 0) {
- drawMapLine(o.getPointList());
+ if ( o != null && o.getPointList() != null && o.getPointList().size() > 0 ) {
+ drawMapLine( o.getPointList() );
} else {
- Logger.e(TAG, "getNaviRoadLineInfo onSuccess o.getPointList() == null");
+ Logger.e( TAG, "getNaviRoadLineInfo onSuccess o.getPointList() == null" );
}
}
@Override
- public void onFail(String message, int code) {
- Logger.d(TAG, "getNaviRoadLineInfo onFail message =" + message + ">>>code =" + code);
+ public void onFail( String message, int code ) {
+ Logger.d( TAG, "getNaviRoadLineInfo onFail message =" + message + ">>>code =" + code );
}
- });
+ } );
}
/**
* 绘制线路
*/
- private void drawMapLine(List pointList) {
- int intervalNum = Utils.getIntervalValue(pointList.size());
- Logger.d(TAG, "drawMapLine intervalNum = $intervalNum -- pointList.size = ${pointList.size}");
+ private void drawMapLine( List< Center > pointList ) {
+ int intervalNum = Utils.getIntervalValue( pointList.size() );
+ Logger.d( TAG, "drawMapLine intervalNum = $intervalNum -- pointList.size = ${pointList.size}" );
int listSize = pointList.size();
//沿途最多15个点
- for (int i = 0; i < listSize; i += intervalNum) {
- passedByPoints.add(new MogoLatLng(pointList.get(i).getLat(), (pointList.get(i).getLon())));
+ for ( int i = 0; i < listSize; i += intervalNum ) {
+ passedByPoints.add( new MogoLatLng( pointList.get( i ).getLat(), ( pointList.get( i ).getLon() ) ) );
}
- Logger.d(TAG, "drawMapLine passedByPoints.size() ----> " + passedByPoints.size());
- MogoLatLng startLatLng = new MogoLatLng(pointList.get(0).getLat(), pointList.get(0).getLon());
- MogoLatLng endLatLng = new MogoLatLng(pointList.get(listSize - 1).getLat(), pointList.get(listSize - 1).getLon());
- mMarkerManager.addRouteWay(getContext(), startLatLng, endLatLng, passedByPoints);
+ Logger.d( TAG, "drawMapLine passedByPoints.size() ----> " + passedByPoints.size() );
+ MogoLatLng startLatLng = new MogoLatLng( pointList.get( 0 ).getLat(), pointList.get( 0 ).getLon() );
+ MogoLatLng endLatLng = new MogoLatLng( pointList.get( listSize - 1 ).getLat(), pointList.get( listSize - 1 ).getLon() );
+ mMarkerManager.addRouteWay( getContext(), startLatLng, endLatLng, passedByPoints );
}
/**
* 声音控制道路数据
*/
- public void getVoiceControlRoadData(String keywords) {
+ public void getVoiceControlRoadData( String keywords ) {
Double lat = TanluServiceHandler.getLocationClient().getLastKnowLocation().getLatitude();
Double lon = TanluServiceHandler.getLocationClient().getLastKnowLocation().getLongitude();
String cityCode = TanluServiceHandler.getLocationClient().getLastKnowLocation().getCityCode();
String adCode = TanluServiceHandler.getLocationClient().getLastKnowLocation().getAdCode();
- Logger.d(TAG, "getVoiceControlRoadData lat =" + lat + ">>>lon =" + lon + ">>>cityCode=" + cityCode + ">>>adCode =" + adCode);
- mTanluModelData.getVoiceControlRoadData(keywords, cityCode, lon, lat, adCode, new VoiceSearchCallback() {
+ Logger.d( TAG, "getVoiceControlRoadData lat =" + lat + ">>>lon =" + lon + ">>>cityCode=" + cityCode + ">>>adCode =" + adCode );
+ mTanluModelData.getVoiceControlRoadData( keywords, cityCode, lon, lat, adCode, new VoiceSearchCallback() {
@Override
- public void onSuccess(VoiceSearchResult o) {
+ public void onSuccess( VoiceSearchResult o ) {
String discription = o.getDescription();
- Logger.d(TAG, "getVoiceControlRoadData discription = " + discription);
- if (o.getInformations() != null && o.getInformations().size() > 0) {
- speakSuccessVoice(o.getInformations(), discription == null ? "" : discription);
+ Logger.d( TAG, "getVoiceControlRoadData discription = " + discription );
+ if ( o.getInformations() != null && o.getInformations().size() > 0 ) {
+ speakSuccessVoice( o.getInformations(), discription == null ? "" : discription );
} else {
- if (!TextUtils.isEmpty(discription)) {
- AIAssist.getInstance(getContext()).speakTTSVoice(discription, null);
+ if ( !TextUtils.isEmpty( discription ) ) {
+ AIAssist.getInstance( getContext() ).speakTTSVoice( discription, null );
} else {
- AIAssist.getInstance(getContext()).speakTTSVoice("未找到其他车主分享的路况信息", null);
+ AIAssist.getInstance( getContext() ).speakTTSVoice( "未找到其他车主分享的路况信息", null );
}
}
@@ -732,70 +768,70 @@ public class TanluCardViewFragment extends MvpFragment>
}
@Override
- public void onFail(String message, int code) {
- Logger.e(TAG, "getVoiceControlRoadData onFail message = " + message + ">>>code= " + code);
- speakFailVoice(searchfaileVoiceStrings[2]);
+ public void onFail( String message, int code ) {
+ Logger.e( TAG, "getVoiceControlRoadData onFail message = " + message + ">>>code= " + code );
+ speakFailVoice( searchfaileVoiceStrings[2] );
}
- });
+ } );
}
Random random = new Random();
- private void speakSuccessVoice(List informations, String trafficStatus) {
- switch (informations.size()) {
+ private void speakSuccessVoice( List< Information > informations, String trafficStatus ) {
+ switch ( informations.size() ) {
case 0:
- Logger.d(TAG, "speakSuccessVoice ----> " + random.nextInt(3));
- speakFailVoice(searchfaileVoiceStrings[random.nextInt(3)]);
+ Logger.d( TAG, "speakSuccessVoice ----> " + random.nextInt( 3 ) );
+ speakFailVoice( searchfaileVoiceStrings[random.nextInt( 3 )] );
break;
case 1:
- trackVoiceSearch(1);
- AIAssist.getInstance(getContext()).speakTTSVoice((
- String.format(voiceGetInfoMationTts, "1") + trafficStatus), null);
+ trackVoiceSearch( 1 );
+ AIAssist.getInstance( getContext() ).speakTTSVoice( (
+ String.format( voiceGetInfoMationTts, "1" ) + trafficStatus ), null );
case 2:
- trackVoiceSearch(1);
- AIAssist.getInstance(getContext()).speakTTSVoice((
+ trackVoiceSearch( 1 );
+ AIAssist.getInstance( getContext() ).speakTTSVoice( (
String.format(
voiceGetInfoMationTts,
"2"
- ) + trafficStatus), null);
+ ) + trafficStatus ), null );
case 3:
- trackVoiceSearch(1);
- AIAssist.getInstance(getContext()).speakTTSVoice((
+ trackVoiceSearch( 1 );
+ AIAssist.getInstance( getContext() ).speakTTSVoice( (
String.format(
voiceGetInfoMationTts,
"3"
- ) + trafficStatus), null);
+ ) + trafficStatus ), null );
default:
- trackVoiceSearch(1);
- AIAssist.getInstance(getContext()).speakTTSVoice((
+ trackVoiceSearch( 1 );
+ AIAssist.getInstance( getContext() ).speakTTSVoice( (
String.format(
voiceGetInfoMationTts,
"多"
- ) + trafficStatus), null);
+ ) + trafficStatus ), null );
}
}
private void initStrings() {
voiceGetInfoMationTts =
- getContext().getResources().getString(R.string.voice_get_informations_tts);
+ getContext().getResources().getString( R.string.voice_get_informations_tts );
searchingVoiceStrings =
- getContext().getResources().getStringArray(R.array.searching_voice_string_array);
+ getContext().getResources().getStringArray( R.array.searching_voice_string_array );
searchfaileVoiceStrings =
- getContext().getResources().getStringArray(R.array.search_fail_voice_array);
+ getContext().getResources().getStringArray( R.array.search_fail_voice_array );
}
- private void speakFailVoice(String string) {
- AIAssist.getInstance(getContext()).speakTTSVoice(string, null);
+ private void speakFailVoice( String string ) {
+ AIAssist.getInstance( getContext() ).speakTTSVoice( string, null );
}
//上报语音搜索
- private void trackVoiceSearch(int type) {
+ private void trackVoiceSearch( int type ) {
}
diff --git a/services/mogo-service-api/src/main/java/com/mogo/service/MogoServicePaths.java b/services/mogo-service-api/src/main/java/com/mogo/service/MogoServicePaths.java
index 549adb10bb..e7d2a80761 100644
--- a/services/mogo-service-api/src/main/java/com/mogo/service/MogoServicePaths.java
+++ b/services/mogo-service-api/src/main/java/com/mogo/service/MogoServicePaths.java
@@ -73,9 +73,16 @@ public class MogoServicePaths {
/**
* 免唤醒语音控制
+ *
+ * @deprecated use {@link #PATH_INTENT_MANAGER} instead.
*/
public static final String PATH_VOICE_MANAGER = "/voicemanager/api";
+ /**
+ * 意图控制接口
+ */
+ public static final String PATH_INTENT_MANAGER = "/intentmanager/api";
+
/**
* 基础功能监听回调注册
*/
diff --git a/services/mogo-service-api/src/main/java/com/mogo/service/fragmentmanager/IMogoFragmentManager.java b/services/mogo-service-api/src/main/java/com/mogo/service/fragmentmanager/IMogoFragmentManager.java
index 083d32b333..e0087416d4 100644
--- a/services/mogo-service-api/src/main/java/com/mogo/service/fragmentmanager/IMogoFragmentManager.java
+++ b/services/mogo-service-api/src/main/java/com/mogo/service/fragmentmanager/IMogoFragmentManager.java
@@ -22,6 +22,13 @@ public interface IMogoFragmentManager extends IProvider {
*/
void pop();
+ /**
+ * 栈大小
+ *
+ * @return 栈内的 fragment 数量
+ */
+ int getStackSize();
+
/**
* 退出栈中所有fragment
*/
diff --git a/services/mogo-service-api/src/main/java/com/mogo/service/intent/IMogoIntentListener.java b/services/mogo-service-api/src/main/java/com/mogo/service/intent/IMogoIntentListener.java
new file mode 100644
index 0000000000..0767fcb4ed
--- /dev/null
+++ b/services/mogo-service-api/src/main/java/com/mogo/service/intent/IMogoIntentListener.java
@@ -0,0 +1,18 @@
+package com.mogo.service.intent;
+
+import android.content.Intent;
+
+/**
+ * @author congtaowang
+ * @since 2020-01-09
+ *
+ * 免唤醒语音监听
+ */
+public interface IMogoIntentListener {
+
+ /**
+ * @param intentStr 广播action、语音 command
+ * @param intent 意图
+ */
+ void onIntentReceived( String intentStr, Intent intent );
+}
diff --git a/services/mogo-service-api/src/main/java/com/mogo/service/intent/IMogoIntentManager.java b/services/mogo-service-api/src/main/java/com/mogo/service/intent/IMogoIntentManager.java
new file mode 100644
index 0000000000..1a978d1b25
--- /dev/null
+++ b/services/mogo-service-api/src/main/java/com/mogo/service/intent/IMogoIntentManager.java
@@ -0,0 +1,36 @@
+package com.mogo.service.intent;
+
+import android.content.Intent;
+
+import com.alibaba.android.arouter.facade.template.IProvider;
+
+/**
+ * @author congtaowang
+ * @since 2020-01-09
+ *
+ * 免唤醒语音控制
+ */
+public interface IMogoIntentManager extends IProvider {
+
+ /**
+ * 注册意图接收者
+ *
+ * @param intent
+ */
+ public void registerIntentListener( String intent, IMogoIntentListener listener );
+
+ /**
+ * 注册意图接收者
+ *
+ * @param intent
+ */
+ public void unregisterIntentListener( String intent );
+
+ /**
+ * 触发意图回调,各业务不用关心
+ *
+ * @param intentStr
+ * @param intent
+ */
+ public void invoke( String intentStr, Intent intent );
+}
diff --git a/services/mogo-service-api/src/main/java/com/mogo/service/voice/IMogoVoiceListener.java b/services/mogo-service-api/src/main/java/com/mogo/service/voice/IMogoVoiceListener.java
index 8c750a12b8..1bb1ae30c8 100644
--- a/services/mogo-service-api/src/main/java/com/mogo/service/voice/IMogoVoiceListener.java
+++ b/services/mogo-service-api/src/main/java/com/mogo/service/voice/IMogoVoiceListener.java
@@ -2,19 +2,15 @@ package com.mogo.service.voice;
import android.content.Intent;
+import com.mogo.service.intent.IMogoIntentListener;
+
/**
* @author congtaowang
* @since 2020-01-09
*
* 免唤醒语音监听
+ * use {@link IMogoIntentListener} instead.
*/
-public interface IMogoVoiceListener {
-
- /**
- * 回调语音意图
- *
- * @param command 广播 command
- * @param intent 意图
- */
- void onIntentReceived( String command, Intent intent );
+@Deprecated
+public interface IMogoVoiceListener extends IMogoIntentListener {
}
diff --git a/services/mogo-service-api/src/main/java/com/mogo/service/voice/IMogoVoiceManager.java b/services/mogo-service-api/src/main/java/com/mogo/service/voice/IMogoVoiceManager.java
index 05661fce9b..6fc50fc84e 100644
--- a/services/mogo-service-api/src/main/java/com/mogo/service/voice/IMogoVoiceManager.java
+++ b/services/mogo-service-api/src/main/java/com/mogo/service/voice/IMogoVoiceManager.java
@@ -2,35 +2,17 @@ package com.mogo.service.voice;
import android.content.Intent;
-import com.alibaba.android.arouter.facade.template.IProvider;
+import com.mogo.service.intent.IMogoIntentListener;
+import com.mogo.service.intent.IMogoIntentManager;
/**
* @author congtaowang
* @since 2020-01-09
*
* 免唤醒语音控制
+ *
+ * use {@link IMogoIntentManager} instead.
*/
-public interface IMogoVoiceManager extends IProvider {
-
- /**
- * 注册意图接收者
- *
- * @param command
- */
- void registerIntentListener( String command, IMogoVoiceListener listener );
-
- /**
- * 注册意图接收者
- *
- * @param command
- */
- void unregisterIntentListener( String command );
-
- /**
- * 触发意图回调,各业务不用关心
- *
- * @param command
- * @param intent
- */
- void invoke( String command, Intent intent );
+@Deprecated
+public interface IMogoVoiceManager extends IMogoIntentManager {
}
diff --git a/services/mogo-service/src/main/java/com/mogo/service/impl/voice/VoiceManager.java b/services/mogo-service/src/main/java/com/mogo/service/impl/intent/IntentManager.java
similarity index 62%
rename from services/mogo-service/src/main/java/com/mogo/service/impl/voice/VoiceManager.java
rename to services/mogo-service/src/main/java/com/mogo/service/impl/intent/IntentManager.java
index 29e6f56f93..9010b1bcbe 100644
--- a/services/mogo-service/src/main/java/com/mogo/service/impl/voice/VoiceManager.java
+++ b/services/mogo-service/src/main/java/com/mogo/service/impl/intent/IntentManager.java
@@ -1,4 +1,4 @@
-package com.mogo.service.impl.voice;
+package com.mogo.service.impl.intent;
import android.content.Context;
import android.content.Intent;
@@ -8,11 +8,10 @@ import android.os.Message;
import androidx.annotation.NonNull;
-import com.mogo.service.voice.IMogoVoiceListener;
-import com.mogo.service.voice.IMogoVoiceManager;
+import com.mogo.service.intent.IMogoIntentListener;
+import com.mogo.service.intent.IMogoIntentManager;
import java.util.ArrayList;
-import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
@@ -23,9 +22,9 @@ import java.util.concurrent.ConcurrentHashMap;
*
* 描述
*/
-public class VoiceManager implements IMogoVoiceManager {
+public class IntentManager implements IMogoIntentManager {
- private static volatile VoiceManager sInstance;
+ private static volatile IntentManager sInstance;
public static final int MSG_COMMAND_RECEIVED = 2000;
@@ -36,9 +35,9 @@ public class VoiceManager implements IMogoVoiceManager {
super.handleMessage( msg );
if ( msg.what == MSG_COMMAND_RECEIVED ) {
MsgObject object = ( ( MsgObject ) msg.obj );
- List< IMogoVoiceListener > listeners = mListeners.get( object.getCommand() );
+ List< IMogoIntentListener > listeners = mListeners.get( object.getCommand() );
if ( listeners != null && !listeners.isEmpty() ) {
- for ( IMogoVoiceListener listener : listeners ) {
+ for ( IMogoIntentListener listener : listeners ) {
listener.onIntentReceived( object.getCommand(), object.getIntent() );
}
}
@@ -46,14 +45,14 @@ public class VoiceManager implements IMogoVoiceManager {
}
};
- private VoiceManager() {
+ private IntentManager() {
}
- public static VoiceManager getInstance() {
+ public static IntentManager getInstance() {
if ( sInstance == null ) {
- synchronized ( VoiceManager.class ) {
+ synchronized ( IntentManager.class ) {
if ( sInstance == null ) {
- sInstance = new VoiceManager();
+ sInstance = new IntentManager();
}
}
}
@@ -65,18 +64,17 @@ public class VoiceManager implements IMogoVoiceManager {
}
- private Map< String, List< IMogoVoiceListener > > mListeners = new ConcurrentHashMap<>();
+ private Map< String, List< IMogoIntentListener > > mListeners = new ConcurrentHashMap<>();
@Override
- public void registerIntentListener( String command, IMogoVoiceListener listener ) {
- if ( listener == null || command == null ) {
+ public void registerIntentListener( String intent, IMogoIntentListener listener ) {
+ if ( listener == null || intent == null ) {
return;
}
- if ( !mListeners.containsKey( command ) ) {
- mListeners.put( command, new ArrayList<>() );
+ if ( !mListeners.containsKey( intent ) ) {
+ mListeners.put( intent, new ArrayList<>() );
}
- mListeners.get( command ).add( listener );
-
+ mListeners.get( intent ).add( listener );
}
@Override
diff --git a/services/mogo-service/src/main/java/com/mogo/service/impl/intent/MogoIntentManager.java b/services/mogo-service/src/main/java/com/mogo/service/impl/intent/MogoIntentManager.java
new file mode 100644
index 0000000000..e3eeb2e673
--- /dev/null
+++ b/services/mogo-service/src/main/java/com/mogo/service/impl/intent/MogoIntentManager.java
@@ -0,0 +1,39 @@
+package com.mogo.service.impl.intent;
+
+import android.content.Context;
+import android.content.Intent;
+
+import com.alibaba.android.arouter.facade.annotation.Route;
+import com.mogo.service.MogoServicePaths;
+import com.mogo.service.intent.IMogoIntentListener;
+import com.mogo.service.intent.IMogoIntentManager;
+
+/**
+ * @author congtaowang
+ * @since 2020-01-09
+ *
+ * 描述
+ */
+@Route( path = MogoServicePaths.PATH_INTENT_MANAGER )
+public class MogoIntentManager implements IMogoIntentManager {
+
+ @Override
+ public void unregisterIntentListener( String command ) {
+ IntentManager.getInstance().unregisterIntentListener( command );
+ }
+
+ @Override
+ public void invoke( String command, Intent intent ) {
+ IntentManager.getInstance().invoke( command, intent );
+ }
+
+ @Override
+ public void registerIntentListener( String intent, IMogoIntentListener listener ) {
+ IntentManager.getInstance().registerIntentListener( intent, listener );
+ }
+
+ @Override
+ public void init( Context context ) {
+ IntentManager.getInstance().init( context );
+ }
+}
diff --git a/services/mogo-service/src/main/java/com/mogo/service/impl/voice/MogoVoiceManager.java b/services/mogo-service/src/main/java/com/mogo/service/impl/intent/MogoVoiceManager.java
similarity index 54%
rename from services/mogo-service/src/main/java/com/mogo/service/impl/voice/MogoVoiceManager.java
rename to services/mogo-service/src/main/java/com/mogo/service/impl/intent/MogoVoiceManager.java
index d7f30da74c..1115692e91 100644
--- a/services/mogo-service/src/main/java/com/mogo/service/impl/voice/MogoVoiceManager.java
+++ b/services/mogo-service/src/main/java/com/mogo/service/impl/intent/MogoVoiceManager.java
@@ -1,15 +1,13 @@
-package com.mogo.service.impl.voice;
+package com.mogo.service.impl.intent;
import android.content.Context;
import android.content.Intent;
-
-import androidx.viewpager.widget.ViewPager;
+import android.view.animation.Interpolator;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.mogo.service.MogoServicePaths;
-import com.mogo.service.voice.IMogoVoiceListener;
+import com.mogo.service.intent.IMogoIntentListener;
import com.mogo.service.voice.IMogoVoiceManager;
-import com.zhidao.auto.platform.voice.VoiceClient;
/**
* @author congtaowang
@@ -20,23 +18,23 @@ import com.zhidao.auto.platform.voice.VoiceClient;
@Route( path = MogoServicePaths.PATH_VOICE_MANAGER )
public class MogoVoiceManager implements IMogoVoiceManager {
- @Override
- public void registerIntentListener( String command, IMogoVoiceListener listener ) {
- VoiceManager.getInstance().registerIntentListener( command, listener );
- }
-
@Override
public void unregisterIntentListener( String command ) {
- VoiceManager.getInstance().unregisterIntentListener( command );
+ IntentManager.getInstance().unregisterIntentListener( command );
}
@Override
public void invoke( String command, Intent intent ) {
- VoiceManager.getInstance().invoke( command, intent );
+ IntentManager.getInstance().invoke( command, intent );
+ }
+
+ @Override
+ public void registerIntentListener( String intent, IMogoIntentListener listener ) {
+ IntentManager.getInstance().registerIntentListener( intent, listener );
}
@Override
public void init( Context context ) {
- VoiceManager.getInstance().init( context );
+ IntentManager.getInstance().init( context );
}
}
diff --git a/services/mogo-service/src/main/java/com/mogo/service/impl/voice/MsgObject.java b/services/mogo-service/src/main/java/com/mogo/service/impl/intent/MsgObject.java
similarity index 92%
rename from services/mogo-service/src/main/java/com/mogo/service/impl/voice/MsgObject.java
rename to services/mogo-service/src/main/java/com/mogo/service/impl/intent/MsgObject.java
index 1f7a044934..e6e286e97c 100644
--- a/services/mogo-service/src/main/java/com/mogo/service/impl/voice/MsgObject.java
+++ b/services/mogo-service/src/main/java/com/mogo/service/impl/intent/MsgObject.java
@@ -1,4 +1,4 @@
-package com.mogo.service.impl.voice;
+package com.mogo.service.impl.intent;
import android.content.Intent;