diff --git a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/constants/AMapConstants.java b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/constants/AMapConstants.java index 6092bc523d..738d2ad4bc 100644 --- a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/constants/AMapConstants.java +++ b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/constants/AMapConstants.java @@ -41,4 +41,10 @@ public class AMapConstants { public static final String PATH_FRAGMENT_SETTING = "PATH_FRAGMENT_SETTING"; public static final String PATH_FRAGMENT_NAVI_SETTING = "PATH_FRAGMENT_NAVI_SETTING"; public static final String PATH_FRAGMENT_SETTING_HOME = "PATH_FRAGMENT_SETTING_HOME"; + + /** + * 开始导航 + */ + public static final String COMMAND_START_NAVI = "com.ileja.navi.route.confirm"; + } diff --git a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/constants/SearchServiceHolder.kt b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/constants/SearchServiceHolder.kt index 49e7b50d4b..a74f3e6118 100644 --- a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/constants/SearchServiceHolder.kt +++ b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/constants/SearchServiceHolder.kt @@ -18,6 +18,7 @@ import com.mogo.service.MogoServicePaths import com.mogo.service.analytics.IMogoAnalytics import com.mogo.service.fragmentmanager.FragmentDescriptor import com.mogo.service.fragmentmanager.IMogoFragmentManager +import com.mogo.service.intent.IMogoIntentManager import com.mogo.service.launcher.IMogoLauncher import com.mogo.service.map.IMogoMapService import com.mogo.service.module.IMogoRegisterCenter @@ -40,6 +41,7 @@ object SearchServiceHolder { val guideShowProvider: IGuideShowProvider = ARouter.getInstance().build(GuideShowProviderConstant.GUIDE_SHOW_PROVIDER).navigation() as IGuideShowProvider val mogoLauncher: IMogoLauncher = ARouter.getInstance().build(MogoServicePaths.PATH_LAUNCHER_API).navigation() as IMogoLauncher val gpsSimulator = ARouter.getInstance().build(GpsSimulatorConstants.API_PATH).navigation() as IMogoGpsSimulatorManager + val intentManager = ARouter.getInstance().build(MogoServicePaths.PATH_INTENT_MANAGER).navigation() as IMogoIntentManager var geoSearch: IMogoGeoSearch? = null fun init(context: Context) { 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 6664d5429e..f715aa8428 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 @@ -1,5 +1,6 @@ package com.mogo.module.navi.ui.search +import android.content.Intent import android.os.Bundle import android.text.TextUtils import android.view.View @@ -21,6 +22,7 @@ import com.mogo.module.navi.constants.SearchServiceHolder import com.mogo.module.navi.manager.SettingManager import com.mogo.module.navi.ui.adapter.CalculatePathAdapter import com.mogo.module.navi.ui.base.BaseFragment +import com.mogo.service.intent.IMogoIntentListener import com.mogo.utils.UiThreadHandler import kotlinx.android.synthetic.main.fragment_search_category.group_path import kotlinx.android.synthetic.main.fragment_search_category.pb_path @@ -33,7 +35,7 @@ import kotlinx.android.synthetic.main.include_search_bar.iv_navi_back * @author zyz * 2020-01-09. */ -class ChoosePathFragment : BaseFragment(), IMogoNaviListener, IMogoVoiceCmdCallBack { +class ChoosePathFragment : BaseFragment(), IMogoNaviListener, IMogoVoiceCmdCallBack, IMogoIntentListener { override fun onCmdSelected(cmd: String?) { when (cmd) { @@ -202,6 +204,8 @@ class ChoosePathFragment : BaseFragment(), IMogoNaviListener, IMogoVoiceCmdCallB AIAssist.getInstance(context).registerUnWakeupCommand("thirdPath", arrayOf(thirdPath), this) AIAssist.getInstance(context).registerUnWakeupCommand("startNavi", arrayOf(startNavi, "开始"), this) + SearchServiceHolder.intentManager.registerIntentListener(AMapConstants.COMMAND_START_NAVI, this) + } private fun registerRetryVoice() { @@ -254,6 +258,13 @@ class ChoosePathFragment : BaseFragment(), IMogoNaviListener, IMogoVoiceCmdCallB AIAssist.getInstance(context).unregisterUnWakeupCommand("thirdPath") AIAssist.getInstance(context).unregisterUnWakeupCommand("startNavi") + SearchServiceHolder.intentManager.unregisterIntentListener(AMapConstants.COMMAND_START_NAVI, this) + } + + override fun onIntentReceived(intentStr: String?, intent: Intent?) { + if (TextUtils.equals(AMapConstants.COMMAND_START_NAVI, intentStr)) { + startNavi() + } } companion object {