|
|
|
|
@@ -2,9 +2,12 @@ package com.mogo.module.navi.ui.search
|
|
|
|
|
|
|
|
|
|
import android.app.Service
|
|
|
|
|
import android.os.Bundle
|
|
|
|
|
import android.text.TextUtils
|
|
|
|
|
import android.view.View
|
|
|
|
|
import androidx.fragment.app.Fragment
|
|
|
|
|
import androidx.recyclerview.widget.LinearLayoutManager
|
|
|
|
|
import com.mogo.commons.voice.AIAssist
|
|
|
|
|
import com.mogo.commons.voice.IMogoVoiceCmdCallBack
|
|
|
|
|
import com.mogo.map.MogoLatLng
|
|
|
|
|
import com.mogo.map.navi.IMogoNaviListener
|
|
|
|
|
import com.mogo.map.navi.MogoCalculatePath
|
|
|
|
|
@@ -26,7 +29,52 @@ import kotlinx.android.synthetic.main.include_search_bar.iv_navi_back
|
|
|
|
|
* @author zyz
|
|
|
|
|
* 2020-01-09.
|
|
|
|
|
*/
|
|
|
|
|
class ChoosePathFragment : BaseFragment(), IMogoNaviListener {
|
|
|
|
|
class ChoosePathFragment : BaseFragment(), IMogoNaviListener, IMogoVoiceCmdCallBack {
|
|
|
|
|
override fun onCmdSelected(cmd: String?) {
|
|
|
|
|
|
|
|
|
|
when (cmd) {
|
|
|
|
|
"firstPath" -> {
|
|
|
|
|
selectItem(0)
|
|
|
|
|
startNavi()
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
"secondPath" -> {
|
|
|
|
|
selectItem(1)
|
|
|
|
|
startNavi()
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
"thirdPath" -> {
|
|
|
|
|
selectItem(2)
|
|
|
|
|
startNavi()
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
"startNavi" -> {
|
|
|
|
|
startNavi()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private fun selectItem(index: Int) {
|
|
|
|
|
|
|
|
|
|
if (mAdapter.list.size > index) {
|
|
|
|
|
selectPath(mAdapter.list[index])
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
override fun onCmdAction(speakText: String?) {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
override fun onCmdCancel(speakText: String?) {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
override fun onSpeakEnd(speakText: String?) {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
override fun onSpeakSelectTimeOut(speakText: String?) {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
override fun onInitNaviFailure() {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -54,14 +102,19 @@ class ChoosePathFragment : BaseFragment(), IMogoNaviListener {
|
|
|
|
|
override fun onoCalculateFailed() {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
override fun onUpdateTraffic(traffic: MogoTraffic?) {
|
|
|
|
|
}
|
|
|
|
|
override fun onUpdateTraffic(traffic: MogoTraffic?) {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private lateinit var mAdapter: CalculatePathAdapter
|
|
|
|
|
private lateinit var mAdapter: CalculatePathAdapter
|
|
|
|
|
override fun getLayoutId(): Int {
|
|
|
|
|
return R.layout.fragment_search_category
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
val firstPath: String = "第一个"
|
|
|
|
|
val secondPath: String = "第二个"
|
|
|
|
|
val thirdPath: String = "第三个"
|
|
|
|
|
val startNavi: String = "开始导航"
|
|
|
|
|
|
|
|
|
|
var mogoTip: MogoLatLng? = null
|
|
|
|
|
override fun onCreate(savedInstanceState: Bundle?) {
|
|
|
|
|
super.onCreate(savedInstanceState)
|
|
|
|
|
@@ -69,6 +122,16 @@ class ChoosePathFragment : BaseFragment(), IMogoNaviListener {
|
|
|
|
|
SearchServiceHolder.statusManager.setSearchUIShow(
|
|
|
|
|
MogoModulePaths.PATH_FRAGMENT_CHOOSE_PAHT, true
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
AIAssist.getInstance(context)
|
|
|
|
|
.registerUnWakeupCommand("firstPath", arrayOf<String>(firstPath), this)
|
|
|
|
|
AIAssist.getInstance(context)
|
|
|
|
|
.registerUnWakeupCommand("secondPath", arrayOf<String>(secondPath), this)
|
|
|
|
|
AIAssist.getInstance(context)
|
|
|
|
|
.registerUnWakeupCommand("thirdPath", arrayOf<String>(thirdPath), this)
|
|
|
|
|
AIAssist.getInstance(context)
|
|
|
|
|
.registerUnWakeupCommand("startNavi", arrayOf<String>(startNavi), this)
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 是否开启导航
|
|
|
|
|
@@ -101,11 +164,7 @@ class ChoosePathFragment : BaseFragment(), IMogoNaviListener {
|
|
|
|
|
|
|
|
|
|
rv_search_result.adapter = mAdapter
|
|
|
|
|
tv_navi_navi.setOnClickListener {
|
|
|
|
|
SearchServiceHolder.getNavi()
|
|
|
|
|
.startNavi(false)
|
|
|
|
|
SearchServiceHolder.getMapUIController().recoverLockMode()
|
|
|
|
|
isStartedNavi = true
|
|
|
|
|
SearchServiceHolder.fragmentManager.clearAll()
|
|
|
|
|
startNavi()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
SearchServiceHolder.getNavi()
|
|
|
|
|
@@ -115,28 +174,55 @@ class ChoosePathFragment : BaseFragment(), IMogoNaviListener {
|
|
|
|
|
|
|
|
|
|
mAdapter.setOnClickListener {
|
|
|
|
|
var item = it.getTag(R.id.tag_item) as MogoCalculatePath
|
|
|
|
|
selectPath(item)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
SearchServiceHolder.getMarkerManger()
|
|
|
|
|
.removeMarkers()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private fun startNavi() {
|
|
|
|
|
SearchServiceHolder.getNavi()
|
|
|
|
|
.startNavi(false)
|
|
|
|
|
SearchServiceHolder.getMapUIController()
|
|
|
|
|
.recoverLockMode()
|
|
|
|
|
isStartedNavi = true
|
|
|
|
|
SearchServiceHolder.fragmentManager.clearAll()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private fun selectPath(item: MogoCalculatePath?) {
|
|
|
|
|
item?.let {
|
|
|
|
|
mAdapter.setSelectTag(item.tagId)
|
|
|
|
|
SearchServiceHolder.getNavi()
|
|
|
|
|
.itemClickInteraction.onItemClicked(item.tagId)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
SearchServiceHolder.getMarkerManger().removeMarkers()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
)
|
|
|
|
|
if (!isStartedNavi) {
|
|
|
|
|
SearchServiceHolder.getNavi().clearCalculatePaths()
|
|
|
|
|
SearchServiceHolder.getNavi()
|
|
|
|
|
.clearCalculatePaths()
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
AIAssist.getInstance(context)
|
|
|
|
|
.unregisterUnWakeupCommand("firstPath")
|
|
|
|
|
AIAssist.getInstance(context)
|
|
|
|
|
.unregisterUnWakeupCommand("secondPath")
|
|
|
|
|
AIAssist.getInstance(context)
|
|
|
|
|
.unregisterUnWakeupCommand("thirdPath")
|
|
|
|
|
AIAssist.getInstance(context)
|
|
|
|
|
.unregisterUnWakeupCommand("startNavi")
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
companion object {
|
|
|
|
|
fun newInstance(searchPoi: MogoLatLng): Fragment {
|
|
|
|
|
var bundle = Bundle()
|
|
|
|
|
|