[charter]

[3.2.0]
[引导页面搭建业务逻辑]
This commit is contained in:
yangyakun
2023-05-11 18:25:05 +08:00
parent 0639e93870
commit 44d9c22172
9 changed files with 296 additions and 113 deletions

View File

@@ -394,6 +394,7 @@ object CharterPassengerModel {
}
}
if (order.lineId == null || order.lineId == 0L || order.siteId == null || order.siteId == 0L) {
this.orderInfo = orderData
// 去选线路和站点
setOrderStatus(OrderStatusEnum.OrderNoLine)
} else {
@@ -401,7 +402,10 @@ object CharterPassengerModel {
if (this.orderInfo?.lineId != orderData.lineId) {// 线路变更
// 查询自动驾驶轨迹
queryLocusByLineId(order.lineId)
this.orderInfo = orderData
setOrderStatus(OrderStatusEnum.OrdersWithLine)
}else{
this.orderInfo = orderData
}
//计算终点距离
mLocationGCJ02?.let { currentInfo ->
@@ -425,8 +429,6 @@ object CharterPassengerModel {
}
}
}
// 设置id
this.orderInfo = orderData
// 启动时间校准
startCalibrationLoop()
}

View File

@@ -8,14 +8,13 @@ import androidx.lifecycle.LifecycleOwner
import com.amap.api.maps.model.LatLng
import com.mogo.commons.voice.AIAssist
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener
import com.mogo.eagle.core.function.api.telematic.IReceivedMsgListener
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager
import com.mogo.eagle.core.function.call.telematic.CallerTelematicListenerManager
import com.mogo.eagle.core.function.view.SiteMarkerBean
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS_P
import com.mogo.eagle.core.utilcode.util.GsonUtils
import com.mogo.eagle.core.utilcode.util.SharedPrefs
import com.mogo.eagle.core.utilcode.util.ToastUtils
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
import com.mogo.och.bus.passenger.R
@@ -28,23 +27,16 @@ import com.mogo.och.bus.passenger.callback.IOrderChangeCallback
import com.mogo.och.bus.passenger.model.CharterPassengerModel
import com.mogo.och.bus.passenger.model.IOrderStatusChangeListener
import com.mogo.och.bus.passenger.model.OrderStatusEnum
import com.mogo.och.bus.passenger.receive.DriverMessage
import com.mogo.och.bus.passenger.ui.MainFragment
import com.mogo.och.bus.passenger.view.MakerWithSiteName
import com.mogo.och.bus.passenger.view.MakerWithSiteNamewithCheck
import com.mogo.och.common.module.bean.dpmsg.BaseDPMsg
import com.mogo.och.common.module.bean.dpmsg.DPCommonOperationMsg
import com.mogo.och.common.module.bean.dpmsg.DPMsgType
import com.mogo.och.common.module.biz.common.socketmessage.OCHSocketMessageManager
import com.mogo.och.common.module.biz.constant.OchCommonConst
import com.mogo.och.common.module.biz.network.OchCommonServiceCallback
import com.mogo.och.common.module.manager.OCHPlanningStopSideStatusManager
import com.mogo.och.common.module.manager.devicemanage.LightAirconditionDoorCallback
import com.mogo.och.common.module.manager.devicemanage.LightAirconditionDoorManager
import com.mogo.och.common.module.manager.devicemanage.LightAirconditionDoorStatusManager
import com.mogo.och.common.module.utils.CoordinateCalculateRouteUtil
import com.mogo.och.common.module.utils.DateTimeUtil
import com.mogo.och.common.module.utils.NumberFormatUtil
import com.mogo.och.common.module.utils.SoundPoolHelper
import com.mogo.och.common.module.voice.VoiceNotice
import me.jessyan.autosize.utils.AutoSizeUtils
import java.util.concurrent.ConcurrentHashMap
@@ -57,6 +49,11 @@ class BusPassengerPresenter(view: MainFragment?) :
private val lindIdAndView = ConcurrentHashMap<Long, MakerWithSiteNamewithCheck?>()
companion object {
private const val TAG = "BusPassengerPresenter"
private const val KEY4SHOWNOVICEGUIDANCE = "showNoviceGuidanceOrderNor"
}
override fun onCreate(owner: LifecycleOwner) {
super.onCreate(owner)
CharterPassengerModel.init()
@@ -64,7 +61,7 @@ class BusPassengerPresenter(view: MainFragment?) :
CharterPassengerModel.setStationDistanceListener(TAG, this)
CharterPassengerModel.setCarTypeChangeListener(this)
CharterPassengerModel.setStatusChangeListener(TAG, this)
CallerTelematicListenerManager.addListener(TAG, msgReceived)
CallerTelematicListenerManager.addListener(TAG, DriverMessage)
OCHPlanningStopSideStatusManager.addListener(TAG, this)
setCarChangeListener(R.raw.m1)
@@ -96,48 +93,6 @@ class BusPassengerPresenter(view: MainFragment?) :
}
}
val msgReceived = object : IReceivedMsgListener {
override fun onReceivedMsg(type: Int, byteArray: ByteArray) {
UiThreadHandler.post {
if (type == OchCommonConst.BUSINESS_STRING) {
val msg = GsonUtils.fromJson(
String(byteArray),
BaseDPMsg::class.java
) as BaseDPMsg
when (msg.type) {
DPMsgType.TYPE_OPEN_CLOSE_DOOR.type -> {
CallerLogger.d(M_BUS_P + BaseDPMsg.TAG, "收到数据:开关门")
val doorStatus = LightAirconditionDoorStatusManager.doorStatus
if (doorStatus.isOpen) {
LightAirconditionDoorManager.go2OpenDoor(false)
} else {
LightAirconditionDoorManager.go2OpenDoor(true)
}
}
DPMsgType.TYPE_COMMON.type -> {
CallerLogger.d(M_BUS_P + BaseDPMsg.TAG, "收到数据:常规数据")
val msg = GsonUtils.fromJson(
String(byteArray),
DPCommonOperationMsg::class.java
) as DPCommonOperationMsg
pushOperationalToMsgBox(DateTimeUtil.getCurrentTimeStamp(), msg.msg)
}
else -> {}
}
}
}
}
}
fun pushOperationalToMsgBox(time: Long, content: String, type: Int = -1) {
playDI()
OCHSocketMessageManager.pushAppOperationalMsgBox(time, content, type)
}
private fun playDI() {
SoundPoolHelper.getSoundPoolHelper().playSoundWithRedId(context, R.raw.m1_voice_di)
}
/**
* 计算剩余距离和剩余时间
*/
@@ -161,10 +116,6 @@ class BusPassengerPresenter(view: MainFragment?) :
setDistanceAndTime(dis.toString(), disUnit, time.toString(), arriveTime)
}
companion object {
private const val TAG = "BusPassengerPresenter"
}
override fun setCarChangeListener(productType: Int?) {
when (productType) {
OrderInfoResponse.M1_LOVE -> {
@@ -191,8 +142,11 @@ class BusPassengerPresenter(view: MainFragment?) :
OrderStatusEnum.Nothing -> {}
OrderStatusEnum.NoOrderUnuse -> {
mView?.closeOpenAndCloseDoor()
clearShowNoviceGuidanceSharedPrefs()
}
OrderStatusEnum.OrderNoLine -> {
showNoviceGuidance()
}
OrderStatusEnum.OrderNoLine -> {}
OrderStatusEnum.OrdersWithLine -> {}
OrderStatusEnum.NoOrderUse -> {
when (CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo().state) {
@@ -220,6 +174,35 @@ class BusPassengerPresenter(view: MainFragment?) :
}
}
private fun clearShowNoviceGuidanceSharedPrefs() {
SharedPrefs.getInstance(context).remove(KEY4SHOWNOVICEGUIDANCE)
}
private fun showNoviceGuidance() {
CallerLogger.d(M_BUS_P + TAG, "showNoviceGuidance")
val currentOrderInfo = CharterPassengerModel.getCurrentOrderInfo()
currentOrderInfo?.orderNo?.let {order->
val stringSet = SharedPrefs.getInstance(context).getStringSet(KEY4SHOWNOVICEGUIDANCE)
fun setData2SP(){
val orderNoSet = mutableSetOf(order)
SharedPrefs.getInstance(context).putStringSet(KEY4SHOWNOVICEGUIDANCE, orderNoSet)
}
if(stringSet==null){
setData2SP()
}else{
if (stringSet.contains(order)) {
return
}else{
setData2SP()
}
}
UiThreadHandler.post({
mView?.showNoviceGuidanceFragment()
},UiThreadHandler.MODE.QUEUE)
}
}
override fun setEndStationCallBack(
siteId: Long?,
siteName: String?,

View File

@@ -0,0 +1,87 @@
package com.mogo.och.bus.passenger.receive
import com.mogo.commons.AbsMogoApplication
import com.mogo.commons.voice.AIAssist
import com.mogo.eagle.core.function.api.telematic.IReceivedMsgListener
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
import com.mogo.eagle.core.utilcode.util.GsonUtils
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
import com.mogo.och.bus.passenger.R
import com.mogo.och.common.module.bean.dpmsg.AppConnectMsg
import com.mogo.och.common.module.bean.dpmsg.BaseDPMsg
import com.mogo.och.common.module.bean.dpmsg.DPCommonOperationMsg
import com.mogo.och.common.module.bean.dpmsg.DPMsgType
import com.mogo.och.common.module.biz.common.socketmessage.OCHSocketMessageManager
import com.mogo.och.common.module.biz.constant.OchCommonConst
import com.mogo.och.common.module.manager.devicemanage.LightAirconditionDoorManager
import com.mogo.och.common.module.manager.devicemanage.LightAirconditionDoorStatusManager
import com.mogo.och.common.module.utils.DateTimeUtil
import com.mogo.och.common.module.utils.RxUtils
import com.mogo.och.common.module.utils.SoundPoolHelper
object DriverMessage: IReceivedMsgListener {
override fun onReceivedMsg(type: Int, byteArray: ByteArray) {
UiThreadHandler.post {
if (type == OchCommonConst.BUSINESS_STRING) {
val msg = GsonUtils.fromJson(
String(byteArray),
BaseDPMsg::class.java
) as BaseDPMsg
when (msg.type) {
DPMsgType.TYPE_OPEN_CLOSE_DOOR.type -> {
CallerLogger.d(SceneConstant.M_BUS_P + BaseDPMsg.TAG, "收到数据:开关门")
val doorStatus = LightAirconditionDoorStatusManager.doorStatus
if (doorStatus.isOpen) {
LightAirconditionDoorManager.go2OpenDoor(false)
} else {
LightAirconditionDoorManager.go2OpenDoor(true)
}
}
DPMsgType.TYPE_COMMON.type -> {
CallerLogger.d(SceneConstant.M_BUS_P + BaseDPMsg.TAG, "收到数据:常规数据")
val msg = GsonUtils.fromJson(
String(byteArray),
DPCommonOperationMsg::class.java
) as DPCommonOperationMsg
pushOperationalToMsgBox(DateTimeUtil.getCurrentTimeStamp(), msg.msg)
}
DPMsgType.TYPE_COMMON.type -> {
CallerLogger.d(SceneConstant.M_BUS_P + BaseDPMsg.TAG, "收到数据:常规数据")
val msg = GsonUtils.fromJson(
String(byteArray),
AppConnectMsg::class.java
) as AppConnectMsg
if (msg.isViewShow) { //消息盒子显示内容
OCHSocketMessageManager.pushAppOperationalMsgBox(
DateTimeUtil.getCurrentTimeStamp(), msg.msg,
OCHSocketMessageManager.OPERATION_SYSTEM
)
}
if(msg.isPlay){
AIAssist.getInstance(AbsMogoApplication.getApp()).speakTTSVoiceWithLevel(msg.msg, AIAssist.LEVEL1)
if(msg.msg.contains("核销成功")){
RxUtils.createSubscribe(15_000) {
val string = AbsMogoApplication.getApp().getString(R.string.m1_welcome_tts)
AIAssist.getInstance(AbsMogoApplication.getApp()).speakTTSVoiceWithLevel(string, AIAssist.LEVEL1)
}
}
}
}
else -> {}
}
}
}
}
private fun pushOperationalToMsgBox(time: Long, content: String, type: Int = -1) {
playDI()
OCHSocketMessageManager.pushAppOperationalMsgBox(time, content, type)
}
private fun playDI() {
SoundPoolHelper.getSoundPoolHelper().playSoundWithRedId(AbsMogoApplication.getApp(), R.raw.m1_voice_di)
}
}

View File

@@ -9,31 +9,22 @@ import androidx.fragment.app.DialogFragment
import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentManager
import androidx.fragment.app.FragmentTransaction
import com.mogo.commons.AbsMogoApplication
import com.mogo.commons.mvp.MvpDialogFragment
import com.mogo.commons.voice.AIAssist
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS_P
import com.mogo.eagle.core.utilcode.util.*
import com.mogo.och.bus.passenger.R
import com.mogo.och.bus.passenger.bean.event.EventLineSites
import com.mogo.och.bus.passenger.presenter.BusPassengerFunctionPresenter
import com.mogo.och.bus.passenger.presenter.CharterPassengerNoviceGuidancePresenter
import com.mogo.och.bus.passenger.ui.MainFragment
import com.mogo.och.bus.passenger.ui.dialogfragment.fragment.M1OrderLineFragment
import com.mogo.och.bus.passenger.ui.dialogfragment.fragment.M1SoftFragment
import com.mogo.och.bus.passenger.ui.dialogfragment.fragment.M1VideoFragment
import com.mogo.och.bus.passenger.ui.dialogfragment.fragment.OrderInfoFragment
import com.mogo.och.bus.passenger.ui.view.bottom.BottomBar
import com.mogo.och.bus.passenger.ui.view.bottom.BottomClickView
import kotlinx.android.synthetic.main.m1_contain_fragment.*
import kotlinx.android.synthetic.main.m1_contain_fragment.cl_container
import kotlinx.android.synthetic.main.m1_devices_fragment.*
import com.mogo.och.common.module.voice.VoiceNotice
import kotlinx.android.synthetic.main.m1_novice_guidance_fragment.*
import kotlinx.android.synthetic.main.m1_novice_guidance_welcome_1_fragment.*
import kotlinx.android.synthetic.main.m1_novice_guidance_welcome_2_fragment.*
import kotlinx.android.synthetic.main.m1_novice_guidance_welcome_3_fragment.*
import kotlinx.android.synthetic.main.m1_novice_guidance_welcome_4_fragment.*
import kotlinx.android.synthetic.main.m1_novice_guidance_welcome_fragment.*
import org.greenrobot.eventbus.EventBus
/**
* 新手引导
@@ -42,14 +33,23 @@ class NoviceGuidanceFragment :
MvpDialogFragment<NoviceGuidanceFragment?, CharterPassengerNoviceGuidancePresenter?>(),
View.OnClickListener {
var closeThis:ContainDismiss = object :ContainDismiss{
private var m1_novice_guidance_tts = true
private var m1_novice_guidance_door_tts = true
private var m1_novice_guidance_stop_site_tts = true
private var m1_novice_guidance_notice_tts = true
private var m1_novice_guidance_complier_tts = true
private var pageStatus: PageStatus = PageStatus.Startpage
var closeThis: ContainDismiss = object : ContainDismiss {
override fun closeDialog() {
dismissAllowingStateLoss()
}
}
override fun onCreate(savedInstanceState: Bundle?) {
CallerLogger.d(M_BUS_P+ TAG, "onCreate")
CallerLogger.d(M_BUS_P + TAG, "onCreate")
super.onCreate(savedInstanceState)
arguments?.let {
//tab = it.getString(SELECTTAB, VIDEOTAB)
@@ -65,21 +65,69 @@ class NoviceGuidanceFragment :
override fun getTagName(): String = TAG
override fun initViews() {
CallerLogger.d(M_BUS_P+ TAG, "initViews")
CallerLogger.d(M_BUS_P + TAG, "initViews")
setTargetVisable(startGuidance = true)
v_clikc_go_explore_bg.setOnClickListener { setTargetVisable(welcome01 = true)}
v_next_page_01.setOnClickListener { setTargetVisable(welcome02 = true) }
v_clikc_go_explore_bg.setOnClickListener {
if (pageStatus == PageStatus.Startpage) {
setTargetVisable(welcome01 = true)
if (m1_novice_guidance_tts) {
val m1NoviceGuidanceTts =
AbsMogoApplication.getApp().getString(R.string.m1_novice_guidance_tts)
VoiceNotice.showNotice(m1NoviceGuidanceTts, AIAssist.LEVEL1)
m1_novice_guidance_tts = false
}
}else if(pageStatus == PageStatus.EndPage){
dismissAllowingStateLoss()
}
}
v_next_page_select_line.setOnClickListener {
setTargetVisable(welcome02 = true)
if (m1_novice_guidance_door_tts) {
val m1NoviceGuidanceDoorTts =
AbsMogoApplication.getApp().getString(R.string.m1_novice_guidance_door_tts)
VoiceNotice.showNotice(m1NoviceGuidanceDoorTts, AIAssist.LEVEL1)
m1_novice_guidance_door_tts = false
}
}
v_pre_page_02.setOnClickListener { setTargetVisable(welcome01 = true) }
v_next_page_02.setOnClickListener { setTargetVisable(welcome03 = true) }
v_pre_page_go_auto.setOnClickListener {
setTargetVisable(welcome01 = true)
}
v_next_page_go_auto.setOnClickListener {
setTargetVisable(welcome03 = true)
if (m1_novice_guidance_stop_site_tts) {
val m1NoviceGuidanceStopSiteTts =
AbsMogoApplication.getApp().getString(R.string.m1_novice_guidance_stop_site_tts)
VoiceNotice.showNotice(m1NoviceGuidanceStopSiteTts, AIAssist.LEVEL1)
m1_novice_guidance_stop_site_tts = false
}
}
v_pre_page_03.setOnClickListener { setTargetVisable(welcome02 = true) }
v_next_page_03.setOnClickListener { setTargetVisable(welcome04 = true) }
v_pre_page_stop_site.setOnClickListener {
setTargetVisable(welcome02 = true)
}
v_next_page_stop_site.setOnClickListener {
setTargetVisable(welcome04 = true)
if (m1_novice_guidance_notice_tts) {
val m1NoviceGuidanceStopSiteTts =
AbsMogoApplication.getApp().getString(R.string.m1_novice_guidance_notice_tts)
VoiceNotice.showNotice(m1NoviceGuidanceStopSiteTts, AIAssist.LEVEL1)
m1_novice_guidance_notice_tts = false
}
}
v_pre_page_04.setOnClickListener { setTargetVisable(welcome03 = true) }
v_next_page_04.setOnClickListener {
v_pre_page_notice.setOnClickListener {
setTargetVisable(welcome03 = true)
}
v_next_page_notice.setOnClickListener {
setTargetVisable(complierGuidance = true)
if (m1_novice_guidance_complier_tts) {
val m1NoviceGuidanceStopSiteTts =
AbsMogoApplication.getApp().getString(R.string.m1_novice_guidance_complier_tts)
VoiceNotice.showNotice(m1NoviceGuidanceStopSiteTts, AIAssist.LEVEL1)
m1_novice_guidance_complier_tts = false
}
}
v_welcome_close_01.setOnClickListener(this)
@@ -96,7 +144,7 @@ class NoviceGuidanceFragment :
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
CallerLogger.d(M_BUS_P+ TAG, "onViewCreated")
CallerLogger.d(M_BUS_P + TAG, "onViewCreated")
dialog?.window?.let {
BarUtils.hideStatusBarAndSticky(it)
it.addFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE)
@@ -107,19 +155,19 @@ class NoviceGuidanceFragment :
}
}
fun setUserPhoneInfo(phone:String){
if(phone.length>8) {
fun setUserPhoneInfo(phone: String) {
if (phone.length > 8) {
//截取电话号码前三位
val phoneNumPre = phone.substring(0, 3);
//截取电话号码后四位
val phoneNumFix = phone.substring(7);
actv_userinfo.text = "$phoneNumPre****$phoneNumFix"
}else{
} else {
actv_userinfo.text = phone
}
}
fun setStartTimeAndEndTime(startTime:String,endTime:String){
fun setStartTimeAndEndTime(startTime: String, endTime: String) {
actv_order_time.text = "$startTime-$endTime"
}
@@ -129,20 +177,22 @@ class NoviceGuidanceFragment :
welcome02: Boolean = false,
welcome03: Boolean = false,
welcome04: Boolean = false,
complierGuidance:Boolean = false
complierGuidance: Boolean = false
) {
if (startGuidance||complierGuidance) {
if(startGuidance){
if (startGuidance || complierGuidance) {
if (startGuidance) {
include_welcome.visibility = View.VISIBLE
actv_start_guildance.visibility = View.VISIBLE
group_complete_guidance.visibility = View.GONE
actv_click_go_explore.text = "点击开始探索"
pageStatus = PageStatus.Startpage
}
if(complierGuidance){
if (complierGuidance) {
include_welcome.visibility = View.VISIBLE
actv_start_guildance.visibility = View.GONE
group_complete_guidance.visibility = View.VISIBLE
actv_click_go_explore.text = "点我进入主页"
pageStatus = PageStatus.EndPage
}
} else {
@@ -150,20 +200,46 @@ class NoviceGuidanceFragment :
actv_start_guildance.visibility = View.GONE
group_complete_guidance.visibility = View.GONE
}
if (welcome01) { include_welcome_01.visibility = View.VISIBLE } else { include_welcome_01.visibility = View.GONE }
if (welcome02) { include_welcome_02.visibility = View.VISIBLE } else { include_welcome_02.visibility = View.GONE }
if (welcome03) { include_welcome_03.visibility = View.VISIBLE } else { include_welcome_03.visibility = View.GONE }
if (welcome04) { include_welcome_04.visibility = View.VISIBLE } else { include_welcome_04.visibility = View.GONE }
if (welcome01) {
include_welcome_01.visibility = View.VISIBLE
pageStatus = PageStatus.NoviceGuidanceSelectLine
} else {
include_welcome_01.visibility = View.GONE
}
if (welcome02) {
include_welcome_02.visibility = View.VISIBLE
pageStatus = PageStatus.NoviceGuidanceDoorAndGo
} else {
include_welcome_02.visibility = View.GONE
}
if (welcome03) {
include_welcome_03.visibility = View.VISIBLE
pageStatus = PageStatus.NoviceGuidanceStopSite
} else {
include_welcome_03.visibility = View.GONE
}
if (welcome04) {
include_welcome_04.visibility = View.VISIBLE
pageStatus = PageStatus.NoviceGuidanceNotice
} else {
include_welcome_04.visibility = View.GONE
}
}
override fun onDismiss(dialog: DialogInterface) {
super.onDismiss(dialog)
m1_novice_guidance_tts = true
m1_novice_guidance_door_tts = true
m1_novice_guidance_stop_site_tts = true
m1_novice_guidance_notice_tts = true
m1_novice_guidance_complier_tts = true
pageStatus = PageStatus.Startpage
}
override fun onSaveInstanceState(outState: Bundle) {
super.onSaveInstanceState(outState)
CallerLogger.d(M_BUS_P+ TAG, "onSaveInstanceState")
CallerLogger.d(M_BUS_P + TAG, "onSaveInstanceState")
}
override fun createPresenter(): CharterPassengerNoviceGuidancePresenter =
@@ -203,7 +279,7 @@ class NoviceGuidanceFragment :
}
override fun onViewStateRestored(savedInstanceState: Bundle?) {
CallerLogger.d(M_BUS_P+ TAG, "onViewStateRestored")
CallerLogger.d(M_BUS_P + TAG, "onViewStateRestored")
super.onViewStateRestored(savedInstanceState)
}
@@ -224,7 +300,8 @@ class NoviceGuidanceFragment :
parentFragmentManager: FragmentManager,
bpFunctionGroup: NoviceGuidanceFragment?,
) {
val fragmentByTag: Fragment? = childFragmentManager.findFragmentByTag(NoviceGuidanceFragment.TAG)
val fragmentByTag: Fragment? =
childFragmentManager.findFragmentByTag(NoviceGuidanceFragment.TAG)
if (fragmentByTag is DialogFragment) {
if (fragmentByTag.dialog != null && fragmentByTag.dialog!!.isShowing) {
CallerLogger.d(M_BUS_P + MainFragment.TAG, "正在展示")
@@ -256,7 +333,16 @@ class NoviceGuidanceFragment :
}
}
interface ContainDismiss{
interface ContainDismiss {
fun closeDialog()
}
enum class PageStatus {
Startpage,
NoviceGuidanceSelectLine,
NoviceGuidanceDoorAndGo,
NoviceGuidanceStopSite,
NoviceGuidanceNotice,
EndPage
}
}

View File

@@ -7,7 +7,7 @@
xmlns:app="http://schemas.android.com/apk/res-auto">
<View
android:id="@+id/v_next_page_01"
android:id="@+id/v_next_page_select_line"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintBottom_toBottomOf="parent"

View File

@@ -18,10 +18,10 @@
<View
android:id="@+id/v_pre_page_02"
android:id="@+id/v_pre_page_go_auto"
app:layout_constraintHorizontal_chainStyle="packed"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@+id/v_next_page_02"
app:layout_constraintEnd_toStartOf="@+id/v_next_page_go_auto"
app:layout_constraintBottom_toBottomOf="parent"
android:layout_marginBottom="@dimen/dp_41"
android:layout_marginEnd="@dimen/dp_54"
@@ -29,8 +29,8 @@
android:layout_height="@dimen/dp_108"/>
<View
android:id="@+id/v_next_page_02"
app:layout_constraintStart_toEndOf="@+id/v_pre_page_02"
android:id="@+id/v_next_page_go_auto"
app:layout_constraintStart_toEndOf="@+id/v_pre_page_go_auto"
app:layout_constraintEnd_toEndOf="parent"
android:layout_marginStart="@dimen/dp_54"
app:layout_constraintBottom_toBottomOf="parent"

View File

@@ -16,10 +16,10 @@
android:layout_height="@dimen/dp_100"/>
<View
android:id="@+id/v_pre_page_03"
android:id="@+id/v_pre_page_stop_site"
app:layout_constraintHorizontal_chainStyle="packed"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@+id/v_next_page_03"
app:layout_constraintEnd_toStartOf="@+id/v_next_page_stop_site"
app:layout_constraintBottom_toBottomOf="parent"
android:layout_marginBottom="@dimen/dp_41"
android:layout_marginEnd="@dimen/dp_54"
@@ -27,8 +27,8 @@
android:layout_height="@dimen/dp_108"/>
<View
android:id="@+id/v_next_page_03"
app:layout_constraintStart_toEndOf="@+id/v_pre_page_03"
android:id="@+id/v_next_page_stop_site"
app:layout_constraintStart_toEndOf="@+id/v_pre_page_stop_site"
app:layout_constraintEnd_toEndOf="parent"
android:layout_marginStart="@dimen/dp_54"
app:layout_constraintBottom_toBottomOf="parent"

View File

@@ -17,10 +17,10 @@
<View
android:id="@+id/v_pre_page_04"
android:id="@+id/v_pre_page_notice"
app:layout_constraintHorizontal_chainStyle="packed"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@+id/v_next_page_04"
app:layout_constraintEnd_toStartOf="@+id/v_next_page_notice"
app:layout_constraintBottom_toBottomOf="parent"
android:layout_marginBottom="@dimen/dp_41"
android:layout_marginEnd="@dimen/dp_54"
@@ -28,8 +28,8 @@
android:layout_height="@dimen/dp_108"/>
<View
android:id="@+id/v_next_page_04"
app:layout_constraintStart_toEndOf="@+id/v_pre_page_04"
android:id="@+id/v_next_page_notice"
app:layout_constraintStart_toEndOf="@+id/v_pre_page_notice"
app:layout_constraintEnd_toEndOf="parent"
android:layout_marginStart="@dimen/dp_54"
app:layout_constraintBottom_toBottomOf="parent"

View File

@@ -37,6 +37,31 @@
<string name="m1_bottom_reach_time">--:--</string>
<string name="m1_stop_site">靠边停车</string>
<string name="m1_welcome_tts">欢迎乘坐蘑菇车联自动驾驶小巴车,按照桌面屏幕的指引,开始探索吧!小蘑菇预祝您旅途愉快</string>
<string name="m1_novice_guidance_tts">铛铛~接下来由蘑菇小助手为您\'指引方向\'</string>
<string name="m1_novice_guidance_door_tts">关闭车门后,点击‘出发’按钮启程,车辆自动判断开始自动驾驶啦!咻~</string>
<string name="m1_novice_guidance_stop_site_tts">点击‘停车’按钮后,车辆自动靠边停车,车辆停稳后就可以下车游玩啦!</string>
<string name="m1_novice_guidance_notice_tts">最后,蘑菇小助手为您送上乘车小贴士~</string>
<string name="m1_novice_guidance_complier_tts">太棒了!您已完成乘车指南,更多功能欢迎探索~蘑菇小助手预祝您旅途愉快</string>
<!-- <string name="m1_novice_guidance_tts">先关闭车门再启动吧~</string>-->
<!-- <string name="m1_novice_guidance_tts">车辆起步扶稳坐好哟前方到站XXX</string>-->
<!-- <string name="m1_novice_guidance_tts">自驾系统繁忙,稍后再试试吧~</string>-->
<!-- <string name="m1_novice_guidance_tts">正在为您靠边停车,扶稳坐好哟</string>-->
<!-- <string name="m1_novice_guidance_tts">靠边停车成功</string>-->
<!-- <string name="m1_novice_guidance_tts">车辆系统繁忙,请稍后再试</string>-->
<!-- <string name="m1_novice_guidance_tts">车辆行驶中不可以开门哦~</string>-->
<!-- <string name="m1_novice_guidance_tts">车辆系统繁忙,稍后再试试吧~</string>-->
<!-- <string name="m1_novice_guidance_tts">车辆即将到达xxxx请乘客带好随身物品有序下车欢迎下次乘坐哦</string>-->
<!-- <string name="m1_novice_guidance_tts">5分钟后包车就要结束了稍后小助手会自动为您寻找停车点</string>-->
<!-- <string name="m1_novice_guidance_tts">感谢您体验蘑菇车联自动驾驶小巴车,本次旅程已结束,期待下次再见</string>-->