diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ShuttleDriverProvider.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ShuttleDriverProvider.kt
index e6446e10db..8f62cb2fca 100644
--- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ShuttleDriverProvider.kt
+++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ShuttleDriverProvider.kt
@@ -22,6 +22,7 @@ import com.mogo.och.weaknet.model.LineModel
import com.mogo.och.weaknet.repository.RepositoryManager
import com.mogo.och.weaknet.repository.db.repository.WriteOffDb
import com.mogo.och.weaknet.ui.bizswitch.SwitchBizView
+import com.mogo.och.weaknet.ui.modeswitch.TopSwitchBizView
import com.mogo.och.weaknet.ui.qr.QrOpenView
import com.mogo.och.weaknet.util.BusAnalyticsManager
import com.mogo.och.weaknet.util.BusTrajectoryManager
@@ -73,7 +74,7 @@ class ShuttleDriverProvider : CommonServiceImpl() {
override fun createOchBusinessView(context: Context?): View? {
d(TAG, "createOchBusinessView")
return context?.let {
- SwitchBizView(it)
+ TopSwitchBizView(it)
}
}
diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/OrderModel.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/OrderModel.kt
index eee80c62d5..864621ab6f 100644
--- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/OrderModel.kt
+++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/OrderModel.kt
@@ -3,6 +3,7 @@ package com.mogo.och.weaknet.model
import android.annotation.SuppressLint
import android.content.Context
import com.mogo.commons.AbsMogoApplication
+import com.mogo.commons.module.status.MogoStatusManager
import com.mogo.eagle.core.data.config.FunctionBuildConfig
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager
@@ -189,9 +190,11 @@ object OrderModel {
override fun onNext(data: Boolean) {
if(data){
+ MogoStatusManager.getInstance().setShuttleDriverPerformTask(TAG, true)
LineModel.haveRunningTask()
updateBusStatus()
}else{
+ MogoStatusManager.getInstance().setShuttleDriverPerformTask(TAG, false)
LineModel.haveNoRunningTask()
d(TAG, "queryBusRoutes 获取到小巴路线数据:空 ")
LineManager.setLineInfo(null)
@@ -517,6 +520,7 @@ object OrderModel {
}catch (e:Exception){
OchChainLogManager.writeChainLog("错误","${e.message}")
}
+ MogoStatusManager.getInstance().setShuttleDriverPerformTask(TAG, false)
MapMakerManager.removeAllMapMarkerByOwner(TAG)
BusTrajectoryManager.stopTrajReqLoop()
LoginStatusManager.loginOut()
diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/bizswitch/SwitchBizView.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/bizswitch/SwitchBizView.kt
index b0d32ee51a..4441b498ce 100644
--- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/bizswitch/SwitchBizView.kt
+++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/bizswitch/SwitchBizView.kt
@@ -3,6 +3,7 @@ package com.mogo.och.weaknet.ui.bizswitch
import android.content.Context
import android.util.AttributeSet
import android.view.LayoutInflater
+import androidx.constraintlayout.widget.ConstraintLayout
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.findViewTreeViewModelStoreOwner
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
@@ -20,16 +21,16 @@ import kotlinx.android.synthetic.main.shuttle_weak_switch_biz.view.swtichLine
import kotlinx.android.synthetic.main.shuttle_weak_switch_biz.view.swtichTask
import kotlinx.android.synthetic.main.shuttle_weak_switch_biz.view.taskRunning
-class SwitchBizView: WindowRelativeLayout, SwtichBizModel.SwtichLineViewCallback {
+class SwitchBizView: ConstraintLayout, SwtichBizModel.SwtichLineViewCallback {
- constructor(context: Context?) : super(context)
+ constructor(context: Context) : super(context)
- constructor(context: Context?, attributeSet: AttributeSet) : super(context, attributeSet)
+ constructor(context: Context, attributeSet: AttributeSet) : super(context, attributeSet)
- constructor(context: Context?, attributeSet: AttributeSet, defStyleAttr: Int) : super(context, attributeSet, defStyleAttr)
+ constructor(context: Context, attributeSet: AttributeSet, defStyleAttr: Int) : super(context, attributeSet, defStyleAttr)
- constructor(context: Context?, attributeSet: AttributeSet, defStyleAttr: Int, defStyleRes: Int) : super(context, attributeSet, defStyleAttr, defStyleRes)
+ constructor(context: Context, attributeSet: AttributeSet, defStyleAttr: Int, defStyleRes: Int) : super(context, attributeSet, defStyleAttr, defStyleRes)
companion object {
diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/modeswitch/SwtichBizeModel.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/modeswitch/SwtichBizeModel.kt
new file mode 100644
index 0000000000..1b650b2961
--- /dev/null
+++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/modeswitch/SwtichBizeModel.kt
@@ -0,0 +1,54 @@
+package com.mogo.och.weaknet.ui.modeswitch
+
+import androidx.lifecycle.ViewModel
+import com.mogo.commons.module.status.IMogoStatusChangedListener
+import com.mogo.commons.module.status.MogoStatusManager
+import com.mogo.commons.module.status.StatusDescriptor
+import com.mogo.eagle.core.utilcode.util.UiThreadHandler
+
+/**
+ * @author XuXinChao
+ * @description BadCase录包管理页面
+ * @since: 2022/12/15
+ */
+class SwtichBizeModel : ViewModel() {
+
+ private val TAG = SwtichBizeModel::class.java.simpleName
+
+ private var viewCallback: SwtichLineViewCallback? = null
+
+
+ override fun onCleared() {
+
+ }
+
+ fun setDistanceCallback(viewCallback: SwtichLineViewCallback) {
+ this.viewCallback = viewCallback
+ this.viewCallback?.showTaskView()
+ MogoStatusManager.getInstance()
+ .registerStatusChangedListener(
+ TAG, StatusDescriptor.TAXI_UNMANED_DRIVER_LINE_ROUTING_VERIFY_MODE, moFanglistener
+ )
+ }
+
+ private var moFanglistener: IMogoStatusChangedListener? = object : IMogoStatusChangedListener {
+ override fun onStatusChanged(descriptor: StatusDescriptor?, isTrue: Boolean) {
+ if (StatusDescriptor.TAXI_UNMANED_DRIVER_LINE_ROUTING_VERIFY_MODE == descriptor) {
+ UiThreadHandler.post {
+ if (isTrue) {// 展示算路
+ viewCallback?.showRoutingView()
+ } else {// 展示任务
+ viewCallback?.showTaskView()
+ }
+ }
+ }
+ }
+
+ }
+
+ interface SwtichLineViewCallback {
+ fun showTaskView()
+ fun showRoutingView()
+ }
+}
+
diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/modeswitch/TopSwitchBizView.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/modeswitch/TopSwitchBizView.kt
new file mode 100644
index 0000000000..f1c2cd07e8
--- /dev/null
+++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/modeswitch/TopSwitchBizView.kt
@@ -0,0 +1,62 @@
+package com.mogo.och.weaknet.ui.modeswitch
+
+import android.content.Context
+import android.util.AttributeSet
+import android.view.LayoutInflater
+import androidx.lifecycle.ViewModelProvider
+import androidx.lifecycle.findViewTreeViewModelStoreOwner
+import com.mogo.och.common.module.biz.routing.RoutingManager
+import com.mogo.och.common.module.wigets.WindowRelativeLayout
+import com.mogo.och.shuttle.weaknet.R
+import kotlinx.android.synthetic.main.shuttle_weak_biz.view.routingSwitchView
+import kotlinx.android.synthetic.main.shuttle_weak_biz.view.switchOchBiz
+
+class TopSwitchBizView: WindowRelativeLayout, SwtichBizeModel.SwtichLineViewCallback {
+
+
+ constructor(context: Context?) : super(context)
+
+ constructor(context: Context?, attributeSet: AttributeSet) : super(context, attributeSet)
+
+ constructor(context: Context?, attributeSet: AttributeSet, defStyleAttr: Int) : super(context, attributeSet, defStyleAttr)
+
+ constructor(context: Context?, attributeSet: AttributeSet, defStyleAttr: Int, defStyleRes: Int) : super(context, attributeSet, defStyleAttr, defStyleRes)
+
+
+ companion object {
+ const val TAG = "SwitchBizView"
+ }
+
+ private var viewModel: SwtichBizeModel?=null
+
+
+
+ init {
+ LayoutInflater.from(context).inflate(R.layout.shuttle_weak_biz, this, true)
+ }
+
+ override fun onAttachedToWindow() {
+ super.onAttachedToWindow()
+ viewModel = findViewTreeViewModelStoreOwner()?.let {
+ ViewModelProvider(it).get(SwtichBizeModel::class.java)
+ }
+ viewModel?.setDistanceCallback(this)
+ }
+
+ override fun showTaskView() {
+ switchOchBiz.visibility = VISIBLE
+ routingSwitchView.visibility = GONE
+ RoutingManager.getRoutingView()?.let {
+ routingSwitchView.removeView(it)
+ }
+ }
+
+ override fun showRoutingView() {
+ switchOchBiz.visibility = GONE
+ routingSwitchView.visibility = VISIBLE
+ RoutingManager.getRoutingView()?.let {
+ routingSwitchView.addView(it)
+ }
+ }
+
+}
diff --git a/OCH/shuttle/driver_weaknet/src/main/res/layout/shuttle_weak_biz.xml b/OCH/shuttle/driver_weaknet/src/main/res/layout/shuttle_weak_biz.xml
new file mode 100644
index 0000000000..68d921d9a9
--- /dev/null
+++ b/OCH/shuttle/driver_weaknet/src/main/res/layout/shuttle_weak_biz.xml
@@ -0,0 +1,53 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/OCH/shuttle/driver_weaknet/src/main/res/layout/shuttle_weak_switch_biz.xml b/OCH/shuttle/driver_weaknet/src/main/res/layout/shuttle_weak_switch_biz.xml
index f5b1760fd2..f3b78920e9 100644
--- a/OCH/shuttle/driver_weaknet/src/main/res/layout/shuttle_weak_switch_biz.xml
+++ b/OCH/shuttle/driver_weaknet/src/main/res/layout/shuttle_weak_switch_biz.xml
@@ -1,37 +1,18 @@
-
-
-
-
-
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiProvider.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiProvider.kt
index ba66a8430a..9adc751b36 100644
--- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiProvider.kt
+++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiProvider.kt
@@ -37,7 +37,6 @@ import com.mogo.eagle.core.function.api.hmi.warning.IMoGoWarningStatusListener
import com.mogo.eagle.core.function.api.hmi.xiaozhi.event.Event
import com.mogo.eagle.core.function.api.hmi.xiaozhi.listener.OnXiaoZhiStateChangeListener
import com.mogo.eagle.core.function.api.hmi.xiaozhi.state.State
-import com.mogo.eagle.core.function.api.map.angle.Scene
import com.mogo.eagle.core.function.api.och.toolkit.IToolKitItemClickListener
import com.mogo.eagle.core.function.api.och.toolkit.ToolKitCustomItemAddParam
import com.mogo.eagle.core.function.api.och.toolkit.ToolKitDefaultItemAddParam
@@ -429,6 +428,10 @@ class MoGoHmiProvider : IMoGoHmiProvider {
CallerTurnLightListenerManager.invokeHideTurnLightView()
}
+ override fun isShuttleDriverPerformTask(): Boolean {
+ return MogoStatusManager.getInstance().isShuttleDriverPerformTask
+ }
+
override fun isTaxiUnmanedDriverPerformTask(): Boolean {
return MogoStatusManager.getInstance().isTaxiUnmanedDriverPerformTask
}
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/operate/OperatePanelLayout.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/operate/OperatePanelLayout.kt
index 4a0af9ae10..e067259afa 100644
--- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/operate/OperatePanelLayout.kt
+++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/operate/OperatePanelLayout.kt
@@ -752,6 +752,9 @@ class OperatePanelLayout : LinearLayout {
return when (pref.key) {
KEY_SELF_ROUTING_VERIFY_MODE -> {
AppIdentityModeUtils.isTaxiDriver(FunctionBuildConfig.appIdentityMode)
+ ||AppIdentityModeUtils.isBusDriver(FunctionBuildConfig.appIdentityMode)
+ ||AppIdentityModeUtils.isShuttleDriver(FunctionBuildConfig.appIdentityMode)
+ ||AppIdentityModeUtils.isScheduled(FunctionBuildConfig.appIdentityMode)
}
KEY_LOOK_AROUND_360 -> {
AppIdentityModeUtils.isM1(FunctionBuildConfig.appIdentityMode)
@@ -864,7 +867,9 @@ class OperatePanelLayout : LinearLayout {
KEY_SELF_ROUTING_VERIFY_MODE -> {
val isChecked = newValue as? Boolean ?: false
if (isChecked) {
- if (CallerHmiManager.isTaxiUnmanedDriverPerformTask()) {
+ if (CallerHmiManager.isTaxiUnmanedDriverPerformTask()||
+ CallerHmiManager.isShuttleDriverPerformTask()
+ ) {
ToastUtils.showLong("请先结束当前任务")
return false
}
diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/hmi/warning/IMoGoHmiProvider.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/hmi/warning/IMoGoHmiProvider.kt
index 1a2a59ded4..60e564edc7 100644
--- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/hmi/warning/IMoGoHmiProvider.kt
+++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/hmi/warning/IMoGoHmiProvider.kt
@@ -196,6 +196,12 @@ interface IMoGoHmiProvider :IProvider{
*/
fun hideTurnLightView()
+ /**
+ * 小巴、接驳、包车 是否在执行任务中
+ */
+ fun isShuttleDriverPerformTask(): Boolean
+
+
/**
* taxi无人化 是否在执行任务中(无人化模式和算路验证模式 都复用此变量)
*/
diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/hmi/CallerHmiManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/hmi/CallerHmiManager.kt
index 15376239ce..da365bfba0 100644
--- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/hmi/CallerHmiManager.kt
+++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/hmi/CallerHmiManager.kt
@@ -299,6 +299,13 @@ object CallerHmiManager {
hmiProviderApi?.hideTurnLightView()
}
+ /**
+ * taxi无人化司机端 是否在执行任务中(无人化模式和算路验证模式 都复用此变量)
+ */
+ fun isShuttleDriverPerformTask(): Boolean {
+ return hmiProviderApi?.isShuttleDriverPerformTask() ?: false
+ }
+
/**
* taxi无人化司机端 是否在执行任务中(无人化模式和算路验证模式 都复用此变量)
*/
diff --git a/foudations/mogo-commons/src/main/java/com/mogo/commons/module/status/IMogoStatusManager.java b/foudations/mogo-commons/src/main/java/com/mogo/commons/module/status/IMogoStatusManager.java
index 5e9fac930b..78b23fba3e 100644
--- a/foudations/mogo-commons/src/main/java/com/mogo/commons/module/status/IMogoStatusManager.java
+++ b/foudations/mogo-commons/src/main/java/com/mogo/commons/module/status/IMogoStatusManager.java
@@ -110,6 +110,16 @@ public interface IMogoStatusManager extends IProvider {
*/
void setSeekHelping( String tag, boolean seekHelping );
+ /**
+ * 小巴、接驳、包车 是否在执行任务中
+ *
+ * @param tag
+ * @param isPerformingTask
+ */
+ void setShuttleDriverPerformTask( String tag, boolean isPerformingTask );
+
+ boolean isShuttleDriverPerformTask();
+
/**
* taxi无人化司机端 是否在执行任务中
*
diff --git a/foudations/mogo-commons/src/main/java/com/mogo/commons/module/status/MogoStatusManager.java b/foudations/mogo-commons/src/main/java/com/mogo/commons/module/status/MogoStatusManager.java
index ec2922542f..2119fced98 100644
--- a/foudations/mogo-commons/src/main/java/com/mogo/commons/module/status/MogoStatusManager.java
+++ b/foudations/mogo-commons/src/main/java/com/mogo/commons/module/status/MogoStatusManager.java
@@ -117,6 +117,16 @@ public class MogoStatusManager implements IMogoStatusManager {
doSetStatus(tag, StatusDescriptor.SEEK_HELPING, seekHelping);
}
+ @Override
+ public void setShuttleDriverPerformTask(String tag, boolean isPerformingTask) {
+ doSetStatus(tag, StatusDescriptor.Shuttle_DRIVER_PERFORM_TASK, isPerformingTask);
+ }
+
+ @Override
+ public boolean isShuttleDriverPerformTask() {
+ return get_bool_val(StatusDescriptor.Shuttle_DRIVER_PERFORM_TASK);
+ }
+
@Override
public void setTaxiUnmanedDriverPerformTask(String tag, boolean isPerformingTask) {
doSetStatus(tag, StatusDescriptor.TAXI_UNMANED_DRIVER_PERFORM_TASK, isPerformingTask);
diff --git a/foudations/mogo-commons/src/main/java/com/mogo/commons/module/status/StatusDescriptor.java b/foudations/mogo-commons/src/main/java/com/mogo/commons/module/status/StatusDescriptor.java
index 8d3d52cf61..4ece2d7e36 100644
--- a/foudations/mogo-commons/src/main/java/com/mogo/commons/module/status/StatusDescriptor.java
+++ b/foudations/mogo-commons/src/main/java/com/mogo/commons/module/status/StatusDescriptor.java
@@ -48,6 +48,12 @@ public enum StatusDescriptor {
*/
SCREEN_COVER,
+ /**
+ * 小巴、接驳、班车 是否执行任务中
+ */
+ Shuttle_DRIVER_PERFORM_TASK,
+
+
/**
* taxi无人化 是否执行任务中
*/