Merge remote-tracking branch 'origin/dev_minibus-d_230425_3.2.0' into dev_minibus-d_230425_3.2.0

This commit is contained in:
wangmingjun
2023-05-15 10:16:13 +08:00
15 changed files with 175 additions and 62 deletions

View File

@@ -1,20 +0,0 @@
package com.mogo.och.bus.passenger.callback;
/**
* Created on 2022/3/31
*
* Model->Presenter回调ADAS相关自动驾驶状态回调到达终点等等
*/
public interface IBusPassengerADASStatusCallback {
// 自动驾驶触发的已到达目的地:暂未用到
void onAutopilotArriveEnd();
// 自动驾驶可用状态
void onAutopilotEnable();
// 自动驾驶不可用状态
void onAutopilotDisable();
// 自动驾驶运行中
void onAutopilotRunning();
}

View File

@@ -0,0 +1,11 @@
package com.mogo.och.bus.passenger.callback
/**
* Created on 2022/3/31
*
* Model->Presenter回调ADAS相关自动驾驶状态回调到达终点等等
*/
interface ICharterPassengerAutoStatusChangeCallback {
// 自动驾驶状态发生改变
fun onAutoStatusChange(newState: Int)
}

View File

@@ -23,6 +23,7 @@ class CharterPassengerConst {
// 到达起始点围栏
const val ARRIVE_AT_START_STATION_DISTANCE = 15 //围栏由20m改为50m 再次改为15m
const val ARRIVE_SOON_AT_START_STATION_DISTANCE = 100 //100米提示
const val MIN_DISTANCE_STATION = 30 //站点选择小于30m 不能选
}

View File

@@ -6,6 +6,7 @@ import android.net.ConnectivityManager
import com.mogo.commons.AbsMogoApplication
import com.mogo.commons.module.intent.IMogoIntentListener
import com.mogo.commons.module.intent.IntentManager
import com.mogo.commons.voice.AIAssist
import com.mogo.eagle.core.data.BaseData
import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters
import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters.AutoPilotLine
@@ -46,12 +47,13 @@ import com.mogo.och.common.module.utils.CoordinateCalculateRouteUtil
import com.mogo.och.common.module.utils.DateTimeUtil
import com.mogo.och.common.module.utils.PinYinUtil
import com.mogo.och.common.module.voice.VoiceManager
import com.mogo.och.common.module.voice.VoiceNotice
import com.mogo.tts.base.LangTtsEntity
import com.mogo.tts.base.LanguageType
import io.reactivex.Observable
import io.reactivex.disposables.Disposable
import io.reactivex.schedulers.Schedulers
import mogo.telematics.pad.MessagePad
import mogo_msg.MogoReportMsg
import system_master.SystemStatusInfo
import java.util.*
import java.util.concurrent.ConcurrentHashMap
import java.util.concurrent.TimeUnit
@@ -74,7 +76,7 @@ object CharterPassengerModel {
private var mContext: Context = AbsMogoApplication.getApp()
//Model->Presenter自动驾驶状态相关
var mADASStatusCallback: IBusPassengerADASStatusCallback? = null
var mAutoStatusChnageListener = ConcurrentHashMap<String, ICharterPassengerAutoStatusChangeCallback>()
// 定位监听
private val mControllerStatusCallbackMap =
@@ -109,6 +111,7 @@ object CharterPassengerModel {
private var broadcastList : MutableMap<String,Boolean> = HashMap()
// 到站仅一次
private val endKey = "arrivedLine"
private val ending100Key = "arrivingLine"
private val min5Speak = "min5Speak"
private var carTypeChageListener: IOrderChangeCallback?=null
@@ -156,6 +159,14 @@ object CharterPassengerModel {
}
mControllerStatusCallbackMap[tag] = callback
}
fun setAutoStatusCallback(tag: String, callback: ICharterPassengerAutoStatusChangeCallback?) {
if (tag.isBlank()) return
if (callback == null) {
mAutoStatusChnageListener.remove(tag)
return
}
mAutoStatusChnageListener[tag] = callback
}
/**
* 启动轮询查询司机登录状态
@@ -210,8 +221,6 @@ object CharterPassengerModel {
// 自动驾驶状态监听
private val mGoAutopilotStatusListener: IMoGoAutopilotStatusListener =
object : IMoGoAutopilotStatusListener {
override fun onAutopilotIpcConnectStatusChanged(status: Int, reason: String?) {}
override fun onAutopilotGuardian(guardianInfo: MogoReportMsg.MogoReportMessage?) {}
override fun onAutopilotStatusResponse(autoPilotStatusInfo: AutopilotStatusInfo) {
val state = autoPilotStatusInfo.state
when (state) {
@@ -221,17 +230,17 @@ object CharterPassengerModel {
IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING -> {}
else -> {}
}
mPreAutoStatus = state
if(mPreAutoStatus!=state){
mPreAutoStatus = state
mAutoStatusChnageListener.forEach {
it.value.onAutoStatusChange(state)
}
}
}
override fun onAutopilotSNRequest() {}
override fun onAutopilotArriveAtStation(arrivalNotification: MessagePad.ArrivalNotification?) {
mADASStatusCallback?.onAutopilotArriveEnd()
CallerLogger.d(SceneConstant.M_BUS_P + TAG,"底盘给到站信息")
arriveDest()
}
override fun onAutopilotStatusRespByQuery(status: SystemStatusInfo.StatusInfo) {}
}
/**
@@ -428,6 +437,10 @@ object CharterPassengerModel {
CallerLogger.d(SceneConstant.M_BUS_P + TAG,"小于15米到站1")
arriveDest()
}
if (calculateLineDistance < CharterPassengerConst.ARRIVE_SOON_AT_START_STATION_DISTANCE) {
CallerLogger.d(SceneConstant.M_BUS_P + TAG,"小于100米到站")
arriveDestSoon()
}
}
}
// 启动时间校准
@@ -677,6 +690,10 @@ object CharterPassengerModel {
"---lastSumLength: " + lastSumLength + "----lastTime : " + lastTime
+ " thread = " + Thread.currentThread().name
)
if (lastSumLength < CharterPassengerConst.ARRIVE_SOON_AT_START_STATION_DISTANCE) {
CallerLogger.d(M_BUS_P + TAG,"小于100米到站2")
arriveDestSoon()
}
if (lastSumLength < CharterPassengerConst.ARRIVE_AT_START_STATION_DISTANCE) {
CallerLogger.d(M_BUS_P + TAG,"小于15米到站2")
arriveDest()
@@ -895,6 +912,20 @@ object CharterPassengerModel {
}
@Synchronized
fun arriveDestSoon() {
orderInfo?.let { order ->
order.siteId?.let { siteId ->
if (order.arriveStatus == OrderInfoResponse.ARRIVING) {
if (broadcastList["${siteId}$ending100Key"] == null || broadcastList["${siteId}$ending100Key"] == false) {
val string = mContext.getString(com.mogo.och.common.module.R.string.arrived_station_zh)
VoiceNotice.showNotice(string,)
}
}
}
}
}
fun cleanbroadcastListInfo(){
broadcastList.clear()
}

View File

@@ -12,6 +12,7 @@ import com.mogo.och.common.module.manager.devicemanage.LightAirconditionDoorStat
import com.mogo.och.common.module.manager.devicemanage.data.AirconditionStatus
import com.mogo.och.common.module.manager.devicemanage.data.HeaterStatue
import com.mogo.och.common.module.manager.devicemanage.data.LightStatus
import com.mogo.och.common.module.voice.VoiceNotice
import io.reactivex.disposables.Disposable
class BusPassengerFunctionSoftPresenter(view: M1SoftFragment?) :
@@ -145,7 +146,7 @@ class BusPassengerFunctionSoftPresenter(view: M1SoftFragment?) :
LightAirconditionDoorStatusManager.airconditionStatus.windSpeed!=windSpeedCmd&&
LightAirconditionDoorStatusManager.airconditionStatus.temperature!=temperatureCmd&&
LightAirconditionDoorStatusManager.airconditionStatus.pattert!=modeCmd) {
ToastUtils.showShort("空调操作未生效,请稍后重试吧~")
ToastUtils.showShort("控制系统繁忙,请稍后再试")
}
}
}
@@ -155,7 +156,7 @@ class BusPassengerFunctionSoftPresenter(view: M1SoftFragment?) :
disposeSubscribe(airconditionDisposable)
airconditionDisposable = createSubscribe(10000){
if (LightAirconditionDoorStatusManager.airconditionStatus.isOpen) {
ToastUtils.showShort("空调操作未生效,请稍后重试吧~")
ToastUtils.showShort("控制系统繁忙,请稍后再试")
}
}
}
@@ -192,14 +193,14 @@ class BusPassengerFunctionSoftPresenter(view: M1SoftFragment?) :
CallerAutoPilotControlManager.sendRoboBusJinlvM1MainLamp1Cmd(1)
subscribeLightTop1 = createSubscribe{
if (!LightAirconditionDoorStatusManager.lightStatus.isOpenLight1) {
ToastUtils.showShort("操作未生效,请稍后重试吧~")
ToastUtils.showShort("控制系统繁忙,请稍后再试")
}
}
}else{
CallerAutoPilotControlManager.sendRoboBusJinlvM1MainLamp1Cmd(2)
subscribeLightTop1 = createSubscribe{
if (LightAirconditionDoorStatusManager.lightStatus.isOpenLight1) {
ToastUtils.showShort("操作未生效,请稍后重试吧~")
ToastUtils.showShort("控制系统繁忙,请稍后再试")
}
}
}
@@ -211,14 +212,14 @@ class BusPassengerFunctionSoftPresenter(view: M1SoftFragment?) :
CallerAutoPilotControlManager.sendRoboBusJinlvM1MainLamp2Cmd(1)
subscribeLightTop2 = createSubscribe{
if (!LightAirconditionDoorStatusManager.lightStatus.isOpenLight2) {
ToastUtils.showShort("操作未生效,请稍后重试吧~")
ToastUtils.showShort("控制系统繁忙,请稍后再试")
}
}
}else{
CallerAutoPilotControlManager.sendRoboBusJinlvM1MainLamp2Cmd(2)
subscribeLightTop2 = createSubscribe{
if (LightAirconditionDoorStatusManager.lightStatus.isOpenLight2) {
ToastUtils.showShort("操作未生效,请稍后重试吧~")
ToastUtils.showShort("控制系统繁忙,请稍后再试")
}
}
}
@@ -230,14 +231,14 @@ class BusPassengerFunctionSoftPresenter(view: M1SoftFragment?) :
CallerAutoPilotControlManager.sendRoboBusJinlvM1SmallLampCmd(1)
subscribeLightAtmosphere = createSubscribe{
if (!LightAirconditionDoorStatusManager.lightStatus.isOpenatmosphere) {
ToastUtils.showShort("操作未生效,请稍后重试吧~")
ToastUtils.showShort("控制系统繁忙,请稍后再试")
}
}
} else {
CallerAutoPilotControlManager.sendRoboBusJinlvM1SmallLampCmd(2)
subscribeLightAtmosphere = createSubscribe{
if (LightAirconditionDoorStatusManager.lightStatus.isOpenatmosphere) {
ToastUtils.showShort("操作未生效,请稍后重试吧~")
ToastUtils.showShort("控制系统繁忙,请稍后再试")
}
}
}

View File

@@ -10,6 +10,7 @@ import com.mogo.commons.voice.AIAssist
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener
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.order.CallerOrderListenerManager
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
@@ -51,7 +52,7 @@ class BusPassengerPresenter(view: MainFragment?) :
companion object {
private const val TAG = "BusPassengerPresenter"
private const val KEY4SHOWNOVICEGUIDANCE = "showNoviceGuidanceOrderNor"
const val KEY4SHOWNOVICEGUIDANCE = "showNoviceGuidanceOrderNor"
}
override fun onCreate(owner: LifecycleOwner) {
@@ -145,6 +146,7 @@ class BusPassengerPresenter(view: MainFragment?) :
clearShowNoviceGuidanceSharedPrefs()
}
OrderStatusEnum.OrderNoLine -> {
CallerOrderListenerManager.invokeOrderRemoval();
showNoviceGuidance()
}
OrderStatusEnum.OrdersWithLine -> {}
@@ -183,17 +185,14 @@ class BusPassengerPresenter(view: MainFragment?) :
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({

View File

@@ -5,12 +5,16 @@ import com.mogo.och.bus.passenger.model.CharterPassengerModel
import com.mogo.och.bus.passenger.ui.dialogfragment.M1ContainFragment
import com.mogo.och.bus.passenger.ui.dialogfragment.NoviceGuidanceFragment
import com.mogo.och.common.module.utils.DateTimeUtil
import com.mogo.och.common.module.utils.RxUtils
import io.reactivex.disposables.Disposable
class CharterPassengerNoviceGuidancePresenter(view: NoviceGuidanceFragment?) :
BusBasePassengerFunctionDevicePresenter<NoviceGuidanceFragment?>(view) {
companion object{
private const val TAG = "BusPassengerFunctionPresenter"
}
var createSubscribe: Disposable?=null
override fun onCreate(owner: LifecycleOwner) {
super.onCreate(owner)
}
@@ -33,5 +37,16 @@ class CharterPassengerNoviceGuidancePresenter(view: NoviceGuidanceFragment?) :
override fun onDestroy(owner: LifecycleOwner) {
super.onDestroy(owner)
createSubscribe?.let {
if (!it.isDisposed) {
it.dispose()
}
}
}
fun exitDialogFragment() {
createSubscribe = RxUtils.createSubscribe(15_000) {
mView?.dismissAllowingStateLoss()
}
}
}

View File

@@ -16,6 +16,8 @@ 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.model.CharterPassengerModel
import com.mogo.och.bus.passenger.presenter.BusPassengerPresenter
import com.mogo.och.bus.passenger.presenter.CharterPassengerNoviceGuidancePresenter
import com.mogo.och.bus.passenger.ui.MainFragment
import com.mogo.och.common.module.voice.VoiceNotice
@@ -122,6 +124,11 @@ class NoviceGuidanceFragment :
}
v_next_page_notice.setOnClickListener {
setTargetVisable(complierGuidance = true)
val currentOrderInfo = CharterPassengerModel.getCurrentOrderInfo()
currentOrderInfo?.orderNo?.let { order ->
val orderNoSet = mutableSetOf(order)
SharedPrefs.getInstance(requireContext()).putStringSet(BusPassengerPresenter.KEY4SHOWNOVICEGUIDANCE, orderNoSet)
}
if (m1_novice_guidance_complier_tts) {
val m1NoviceGuidanceStopSiteTts =
AbsMogoApplication.getApp().getString(R.string.m1_novice_guidance_complier_tts)
@@ -193,6 +200,7 @@ class NoviceGuidanceFragment :
group_complete_guidance.visibility = View.VISIBLE
actv_click_go_explore.text = "点我进入主页"
pageStatus = PageStatus.EndPage
mPresenter?.exitDialogFragment()
}
} else {

View File

@@ -145,7 +145,7 @@ class M1OrderLineFragment :
aciv_driver_refuse_group.visibility = View.GONE
g_loading_group.visibility = View.GONE
g_lines_sites_data.visibility = View.GONE
RxUtils.createSubscribe {
RxUtils.createSubscribe(3_000) {
dismiss?.closeDialog()
}
}
@@ -154,7 +154,7 @@ class M1OrderLineFragment :
aciv_driver_refuse_group.visibility = View.VISIBLE
g_loading_group.visibility = View.GONE
g_lines_sites_data.visibility = View.GONE
RxUtils.createSubscribe {
RxUtils.createSubscribe(3_000) {
showSelectData()
}
}

View File

@@ -15,10 +15,13 @@ import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_
import com.mogo.eagle.core.utilcode.util.ActivityUtils
import com.mogo.eagle.core.utilcode.util.ToastUtils
import com.mogo.och.bus.passenger.R
import com.mogo.och.bus.passenger.callback.ICharterPassengerAutoStatusChangeCallback
import com.mogo.och.bus.passenger.model.CharterPassengerModel
import com.mogo.och.bus.passenger.ui.view.bottom.BottomClickView
import com.mogo.och.common.module.manager.devicemanage.LightAirconditionDoorStatusManager
import com.mogo.och.common.module.utils.RxUtils
import com.mogo.och.common.module.utils.SoundPoolHelper
import io.reactivex.disposables.Disposable
import kotlinx.android.synthetic.main.m1_bottom_bar.view.*
class GoView @JvmOverloads constructor(
@@ -29,6 +32,8 @@ class GoView @JvmOverloads constructor(
var applyClickListener: BottomClickView.ApplyClickLintener?=null
var startAutoTimeOut: Disposable?=null
companion object{
private const val TAG = "GoView"
}
@@ -77,7 +82,7 @@ class GoView @JvmOverloads constructor(
ToastUtils.showShort("启动自动驾驶中")
CallerAutoPilotControlManager.sendPlanningCmd(2)
CharterPassengerModel.startAutopilot()
CharterPassengerModel.leaveStation()
onceRegisterAutoStatus()
CharterPassengerModel.sendTripInfo()
}
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING -> {
@@ -92,4 +97,35 @@ class GoView @JvmOverloads constructor(
}
SoundPoolHelper.getSoundPoolHelper().playSoundWithRedId(ActivityUtils.getActivityByContext(context), R.raw.bus_di)
}
override fun onDetachedFromWindow() {
super.onDetachedFromWindow()
startAutoTimeOut?.let {
if (!it.isDisposed) {
it.dispose()
}
}
}
private fun onceRegisterAutoStatus() {
CharterPassengerModel.setAutoStatusCallback(TAG,null)
CharterPassengerModel.setAutoStatusCallback(TAG,object :ICharterPassengerAutoStatusChangeCallback{
override fun onAutoStatusChange(newState: Int) {
if(newState==IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING){
CharterPassengerModel.leaveStation()
}
CharterPassengerModel.setAutoStatusCallback(TAG,null)
}
})
startAutoTimeOut?.let {
if (!it.isDisposed) {
it.dispose()
}
}
startAutoTimeOut = RxUtils.createSubscribe(20_000) {
val string = AbsMogoApplication.getApp().getString(R.string.m1_start_auto_fail)
ToastUtils.showLong(string)
CharterPassengerModel.setAutoStatusCallback(TAG,null)
}
}
}

View File

@@ -9,10 +9,13 @@ import android.view.ViewGroup
import androidx.constraintlayout.widget.ConstraintLayout
import androidx.core.content.ContextCompat
import chassis.ChassisStatesOuterClass
import com.mogo.eagle.core.data.autopilot.AutopilotStatusInfo
import com.mogo.eagle.core.data.config.FunctionBuildConfig
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener
import com.mogo.eagle.core.function.api.autopilot.IMoGoBatteryManagementSystemListener
import com.mogo.eagle.core.function.api.hmi.view.IViewControlListener
import com.mogo.eagle.core.function.api.setting.IMoGoSkinModeChangeListener
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager
import com.mogo.eagle.core.function.call.autopilot.CallerBatteryManagementSystemListenerManager
import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager
import com.mogo.eagle.core.function.call.hmi.CallerHmiViewControlListenerManager
@@ -22,6 +25,7 @@ import com.mogo.eagle.core.utilcode.util.ClickUtils
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
import com.mogo.och.bus.passenger.R
import com.mogo.och.bus.passenger.bean.event.DebugView
import com.mogo.och.bus.passenger.model.CharterPassengerModel
import kotlinx.android.synthetic.main.m1_statusview_datetime.view.*
import me.jessyan.autosize.utils.AutoSizeUtils
import org.greenrobot.eventbus.EventBus
@@ -31,7 +35,7 @@ class StatusBarView @JvmOverloads constructor(
context: Context,
attrs: AttributeSet? = null,
defStyleAttr: Int = 0
) : ConstraintLayout(context, attrs, defStyleAttr), IMoGoSkinModeChangeListener, IViewControlListener, IMoGoBatteryManagementSystemListener {
) : ConstraintLayout(context, attrs, defStyleAttr), IMoGoSkinModeChangeListener, IViewControlListener, IMoGoBatteryManagementSystemListener, IMoGoAutopilotStatusListener {
companion object {
const val TAG = "StatusBarView"
@@ -76,6 +80,8 @@ class StatusBarView @JvmOverloads constructor(
CallerBatteryManagementSystemListenerManager.addListener(TAG,this)
CallerAutoPilotStatusListenerManager.addListener(TAG, this)
updateStatusBarRightView(FunctionBuildConfig.isDemoMode, "demoMode", DemoModeView(this.context))
bizz_view.setOnClickListener { continuousClick(bizz) }
@@ -84,6 +90,27 @@ class StatusBarView @JvmOverloads constructor(
progress.progress = 50
tv_power_cos.text = "50%"
val state = CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo().state
setAutoPilotSatusInfo(state)
}
private fun setAutoPilotSatusInfo(state: Int) {
when (state) {
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE -> {
actv_auto_status.text = "安全接管中"
}
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE -> {
actv_auto_status.text = "安全接管中"
}
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING -> {
actv_auto_status.text = "自动驾驶中"
}
IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING -> {
actv_auto_status.text = "远程代驾中"
}
else -> {}
}
}
override fun onSkinModeChange(skinMode: Int) {
@@ -93,6 +120,10 @@ class StatusBarView @JvmOverloads constructor(
}
}
override fun onAutopilotStatusResponse(autoPilotStatusInfo: AutopilotStatusInfo) {
setAutoPilotSatusInfo(autoPilotStatusInfo.state)
}
override fun updateStatusBarLeftView(insert: Boolean, tag: String, viewGroup: ViewGroup) {
}

View File

@@ -39,14 +39,6 @@
android:layout_width="@dimen/dp_148"
android:layout_height="@dimen/dp_150"/>
<com.mogo.eagle.core.function.hmi.ui.setting.ToggleDebugViewTrigger
android:layout_height="@dimen/dp_400"
android:layout_width="@dimen/dp_100"
android:longClickable="true"
app:layout_constraintStart_toStartOf="@+id/mapBizView"
app:layout_constraintTop_toTopOf="@+id/mapBizView"
app:layout_constraintBottom_toBottomOf="@+id/mapBizView" />
<!--浓雾预警动画-->
<com.mogo.eagle.core.function.hmi.ui.widget.V2XFogEventView
android:layout_width="match_parent"
@@ -276,6 +268,7 @@
<androidx.constraintlayout.widget.Group
android:id="@+id/group_debug"
app:constraint_referenced_ids="debug_arrive_dest,debug_show_noviceGuidance"
android:visibility="gone"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>

View File

@@ -7,10 +7,18 @@
tools:parentTag="androidx.constraintlayout.widget.ConstraintLayout"
tools:ignore="MissingDefaultResource">
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/actv_auto_status"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/viewTextClock"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_47"/>
<TextClock
android:id="@+id/viewTextClock"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_64"
android:layout_height="@dimen/dp_47"
android:format12Hour="HH:mm MM月dd日 EEEE"
android:format24Hour="HH:mm MM月dd日 EEEE"
android:gravity="center"

View File

@@ -47,8 +47,7 @@
<string name="m1_novice_guidance_complier_tts">太棒了!您已完成乘车指南,更多功能欢迎探索~蘑菇小助手预祝您旅途愉快</string>
<string name="m1_close_door_and_startauto">先关闭车门再启动吧~</string>
<!-- <string name="m1_novice_guidance_tts">车辆起步扶稳坐好哟前方到站XXX</string>-->
<!-- <string name="m1_novice_guidance_tts">自驾系统繁忙,稍后再试试吧~</string>-->
<string name="m1_start_auto_fail">自驾系统繁忙,稍后再试试吧~</string>
<!-- <string name="m1_novice_guidance_tts">正在为您靠边停车,扶稳坐好哟</string>-->
<!-- <string name="m1_novice_guidance_tts">靠边停车成功</string>-->

View File

@@ -23,7 +23,7 @@
<string name="leave_station_en">The next station is %1$s</string>
<string name="leave_station_ko">전방에서 역에 도착하는 %1$s</string>
<string name="surplus5_order_zh">距离包车结束剩余5分钟请您合理安排游玩时间</string>
<string name="surplus5_order_zh">5分钟后包车就要结束了稍后小助手会自动为您寻找停车点</string>
<string name="surplus5_order_en">There are 5 minutes left from the end of chartering. Please arrange your time reasonably</string>
<string name="surplus5_order_ko">전세버스 종료 후 5분 남았습니다. 여행 시간을 합리적으로 안배해 주십시오</string>