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 01a06696a9..e8e6ad1a86 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 @@ -287,7 +287,7 @@ public class MapPresenter extends Presenter implements case VoiceConstants.CMD_MAP_DISPLAY_OVERVIEW_MODE_UN_WAKEUP: AIAssist.getInstance(getContext()).speakTTSVoice("已切换", null); case VoiceConstants.CMD_MAP_DISPLAY_OVERVIEW_MODE: - mView.getUIController().displayOverview(); + //mView.getUIController().displayOverview(); break; case VoiceConstants.CMD_MAP_CONTINUE_NAVI_MODE_UN_WAKEUP: AIAssist.getInstance(getContext()).speakTTSVoice("已切换", null); 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 2d2718653b..4be59aa3a1 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 @@ -56,14 +56,18 @@ class CategorySearchFragment : BaseFragment(), CategoryView, IMogoVoiceCmdCallBa private val TAG: String = "CategorySearchFragment" private var addMarkers: List? = null + var arrayList = ArrayList() private lateinit var cmds: ArrayList override fun renderSearchPoiResult(datums: List?) { mAdapter.setDatas(datums) cv_search_result.visibility = View.VISIBLE pb_path.visibility = View.GONE - var arrayList = ArrayList() - AIAssist.getInstance(context).speakTTSVoice(String.format("搜索到%d个位置,请选择",datums?.size)) + AIAssist.getInstance(context) + .speakTTSVoice(String.format("搜索到%d个位置,请选择", datums?.size)) + + arrayList.clear() + for (index in 0 until datums!!.size) { var decodeResource = BitmapFactory.decodeResource( @@ -83,18 +87,42 @@ class CategorySearchFragment : BaseFragment(), CategoryView, IMogoVoiceCmdCallBa .longitude(datums[index].point?.lng ?: 0.0) arrayList.add(options) - var int2String = StringUtils.int2String(index) + var int2String = StringUtils.int2String(index+1) AIAssist.getInstance(context) .registerUnWakeupCommand( "position" + index, arrayOf("第" + int2String + "个", "第" + int2String + "条"), this ) cmds.add("position" + index) + } addMarkers = SearchServiceHolder.getMarkerManger() .addMarkers(TAG, arrayList, true) moveMapToRight() } + private fun registerVoice() { + + for (index in 0 until cmds.size) { + var int2String = StringUtils.int2String(index+1) + AIAssist.getInstance(context) + .registerUnWakeupCommand( + "position" + index, arrayOf("第" + int2String + "个", "第" + int2String + "条"), this + ) + } + + } + + override fun onHiddenChanged(hidden: Boolean) { + super.onHiddenChanged(hidden) + if (!hidden) { + addMarkers = SearchServiceHolder.getMarkerManger() + .addMarkers(TAG, arrayList, true) + registerVoice() + } else { + unRegisterVoice() + } + } + private lateinit var mAdapter: SearchCategoryAdapter private lateinit var mSearchPresenter: CategoryPresenter @@ -107,7 +135,7 @@ class CategorySearchFragment : BaseFragment(), CategoryView, IMogoVoiceCmdCallBa ) mSearchPresenter = CategoryPresenter(this) lifecycle.addObserver(mSearchPresenter) - cmds=ArrayList() + cmds = ArrayList() } override fun getLayoutId(): Int { @@ -159,6 +187,10 @@ class CategorySearchFragment : BaseFragment(), CategoryView, IMogoVoiceCmdCallBa ?.setIcon(getMarkerIcon(mAdapter.lastPosition)) addMarkers?.get(mAdapter.current) ?.setIcon(getMarkerIcon(mAdapter.current)) + arrayList.get(mAdapter.lastPosition) + .icon(getMarkerIcon(mAdapter.lastPosition)) + arrayList.get(mAdapter.current) + .icon(getMarkerIcon(mAdapter.current)) } private fun getMarkerIcon(index: Int): Bitmap { @@ -187,8 +219,13 @@ class CategorySearchFragment : BaseFragment(), CategoryView, IMogoVoiceCmdCallBa SearchServiceHolder.getMarkerManger() .removeMarkers(TAG) + unRegisterVoice() + } + + private fun unRegisterVoice() { cmds.forEach { - AIAssist.getInstance(context).unregisterUnWakeupCommand(it) + AIAssist.getInstance(context) + .unregisterUnWakeupCommand(it) } } diff --git a/services/mogo-service/src/main/java/com/mogo/service/impl/fragmentmanager/FragmentStack.java b/services/mogo-service/src/main/java/com/mogo/service/impl/fragmentmanager/FragmentStack.java index 11b116dec0..0c602eea1d 100644 --- a/services/mogo-service/src/main/java/com/mogo/service/impl/fragmentmanager/FragmentStack.java +++ b/services/mogo-service/src/main/java/com/mogo/service/impl/fragmentmanager/FragmentStack.java @@ -78,7 +78,7 @@ public class FragmentStack { if ( descriptor.hasTransition() ) { mFragmentTransaction.setTransition( FragmentTransaction.TRANSIT_FRAGMENT_OPEN ); } - mFragmentTransaction.addToBackStack( null ); + //mFragmentTransaction.addToBackStack( null ); mFragmentTransaction.commitAllowingStateLoss(); if ( descriptor.hasTransition() ) { mFragmentManager.executePendingTransactions();