Merge branch 'dev_robotaxi-d_231031_6.2.0_routing_verify' into dev_robotaxi-d_231129_6.2.2_routing_verify

# Conflicts:
#	OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/ui/base/BaseTaxiTabFragment.kt
#	gradle.properties
This commit is contained in:
aibingbing
2023-11-29 16:02:49 +08:00
71 changed files with 3634 additions and 52 deletions

View File

@@ -2,30 +2,32 @@ package com.mogo.eagle.core.function.hmi.ui
import android.content.Context
import android.text.TextUtils
import android.view.*
import android.view.Gravity
import android.view.ViewGroup
import androidx.lifecycle.ProcessLifecycleOwner
import androidx.lifecycle.lifecycleScope
import com.alibaba.android.arouter.facade.annotation.Route
import com.mogo.commons.module.status.MogoStatusManager
import com.mogo.commons.voice.AIAssist
import com.mogo.eagle.core.data.deva.bindingcar.IPCUpgradeStateInfo
import com.mogo.eagle.core.data.biz.dispatch.DispatchAdasAutoPilotLocReceiverBean
import com.mogo.eagle.core.data.biz.notice.NoticeNormalData
import com.mogo.eagle.core.data.biz.notice.NoticeTrafficStylePushData
import com.mogo.eagle.core.data.config.FunctionBuildConfig
import com.mogo.eagle.core.data.config.HmiBuildConfig
import com.mogo.eagle.core.data.constants.MogoServicePaths.PATH_FRAGMENT_HMI
import com.mogo.eagle.core.data.deva.bindingcar.IPCUpgradeStateInfo
import com.mogo.eagle.core.data.deva.bizconfig.FuncBizConfig.Companion.BIZ_RTS
import com.mogo.eagle.core.data.deva.bizconfig.FuncBizConfig.Companion.V2I
import com.mogo.eagle.core.data.biz.dispatch.DispatchAdasAutoPilotLocReceiverBean
import com.mogo.eagle.core.data.enums.EventTypeEnumNew
import com.mogo.eagle.core.data.enums.WarningDirectionEnum
import com.mogo.eagle.core.data.map.Infrastructure
import com.mogo.eagle.core.data.biz.notice.NoticeNormalData
import com.mogo.eagle.core.data.biz.notice.NoticeTrafficStylePushData
import com.mogo.eagle.core.data.config.HmiBuildConfig
import com.mogo.eagle.core.function.api.hmi.warning.IMoGoHmiProvider
import com.mogo.eagle.core.function.api.hmi.warning.IMoGoWarningStatusListener
import com.mogo.eagle.core.function.call.hmi.*
import com.mogo.eagle.core.function.call.hmi.CallerHmiViewControlListenerManager
import com.mogo.eagle.core.function.call.v2x.CallerTrafficLightListenerManager
import com.mogo.eagle.core.function.call.v2x.CallerTurnLightListenerManager
import com.mogo.eagle.core.function.hmi.ui.camera.RoadVideoDialog
import com.mogo.eagle.core.function.hmi.ui.lookaround.*
import com.mogo.eagle.core.function.hmi.ui.lookaround.M1LookAroundView
import com.mogo.eagle.core.function.hmi.ui.notice.DispatchDialogManager
import com.mogo.eagle.core.function.hmi.ui.notice.NoticeCheckDialog
import com.mogo.eagle.core.function.hmi.ui.notice.traffic.NoticeTrafficDialog
@@ -38,15 +40,18 @@ import com.mogo.eagle.core.function.hmi.ui.tools.ToBindingCarDialog
import com.mogo.eagle.core.function.hmi.ui.tools.UpgradeAppDialog
import com.mogo.eagle.core.function.hmi.ui.utils.HmiActionLog
import com.mogo.eagle.core.function.hmi.ui.widget.StatusBarView
import com.mogo.eagle.core.utilcode.floating.*
import com.mogo.eagle.core.utilcode.floating.MoGoPopWindow
import com.mogo.eagle.core.utilcode.kotlin.safeCancel
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_HMI
import com.mogo.eagle.core.utilcode.util.*
import com.mogo.eagle.core.utilcode.util.AppStateManager
import com.mogo.eagle.core.utilcode.util.ThreadUtils
import com.mogo.tts.base.IMogoTTSCallback
import com.zhjt.service_biz.BizConfig
import kotlinx.coroutines.*
import kotlinx.coroutines.Job
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
import java.util.concurrent.atomic.AtomicBoolean
import java.util.concurrent.atomic.AtomicReference
@@ -352,4 +357,24 @@ class MoGoHmiProvider : IMoGoHmiProvider {
CallerTurnLightListenerManager.invokeHideTurnLightView()
}
override fun isTaxiUnmanedDriverPerformTask(): Boolean {
return MogoStatusManager.getInstance().isTaxiUnmanedDriverPerformTask
}
override fun isTaxiUnmanedDriverTakingOrders(): Boolean {
return MogoStatusManager.getInstance().isTaxiUnmanedDriverTakingOrders
}
override fun isTaxiUnmanedDriverLineRoutingPerformTask(): Boolean {
return MogoStatusManager.getInstance().isTaxiUnmanedDriverLineRoutingPerformTask
}
override fun isTaxiUnmanedDriverLineRoutingVerifyMode(): Boolean {
return MogoStatusManager.getInstance().isTaxiUnmanedDriverLineRoutingVerifyMode
}
override fun setTaxiUnmanedDriverLineRoutingVerifyMode(isMode: Boolean) {
MogoStatusManager.getInstance().setTaxiUnmanedDriverLineRoutingVerifyMode(TAG, isMode)
}
}

View File

@@ -553,6 +553,41 @@ internal class SOPSettingView @JvmOverloads constructor(
}
}
// Taxi无人化司机端自主算路验证模式
scLineRoutingVerify?.also {
if (AppIdentityModeUtils.isTaxiDriver(FunctionBuildConfig.appIdentityMode)) {
it.isEnabled = true
it.visibility = View.VISIBLE
it.setOnCheckedChangeListener { buttonView, isChecked ->
if(!buttonView.isPressed) return@setOnCheckedChangeListener
if (isChecked) {
if (CallerHmiManager.isTaxiUnmanedDriverPerformTask()) {
ToastUtils.showLong("请先结束当前任务")
buttonView.isChecked = !isChecked
return@setOnCheckedChangeListener
}
if (CallerHmiManager.isTaxiUnmanedDriverTakingOrders()) {
ToastUtils.showLong("请先结束接单状态")
buttonView.isChecked = !isChecked
return@setOnCheckedChangeListener
}
CallerHmiManager.setTaxiUnmanedDriverLineRoutingVerifyMode(true)
} else {
if (CallerHmiManager.isTaxiUnmanedDriverLineRoutingPerformTask()) {
ToastUtils.showLong("请先结束当前任务")
buttonView.isChecked = !isChecked
return@setOnCheckedChangeListener
}
CallerHmiManager.setTaxiUnmanedDriverLineRoutingVerifyMode(false)
}
}
it.isChecked = CallerHmiManager.isTaxiUnmanedDriverLineRoutingVerifyMode()
} else {
it.isEnabled = false
it.visibility = View.GONE
}
}
//是否展示被动触发的录包弹窗(自动驾驶下出现问题触发的录包)
scShowBagRecordWindow.isChecked = FunctionBuildConfig.isShowBagRecordWindow
scShowBagRecordWindow.setOnCheckedChangeListener { _, isChecked ->

View File

@@ -548,6 +548,19 @@
app:layout_constraintRight_toRightOf="@id/otherGuideLine"
app:layout_constraintTop_toBottomOf="@id/scIPCReport" />
<!--自主算路验证模式-->
<androidx.appcompat.widget.SwitchCompat
android:id="@+id/scLineRoutingVerify"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_25"
android:scaleX="1.2"
android:scaleY="1.2"
android:text="自主算路验证模式"
app:layout_constraintLeft_toRightOf="@id/scShowBagRecordWindow"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/scIPCReport" />
<TextView
android:id="@+id/tvPullTimeTitle"
android:layout_width="wrap_content"
@@ -558,7 +571,7 @@
android:textColor="@color/black"
android:textSize="32dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/scShowBagRecordWindow" />
app:layout_constraintTop_toBottomOf="@id/scLineRoutingVerify" />
<RadioGroup
android:id="@+id/rgPullTime"