diff --git a/OCH/mogo-och-bus/src/main/res/layout/bus_base_fragment.xml b/OCH/mogo-och-bus/src/main/res/layout/bus_base_fragment.xml
index 5536384f8a..6186719077 100644
--- a/OCH/mogo-och-bus/src/main/res/layout/bus_base_fragment.xml
+++ b/OCH/mogo-och-bus/src/main/res/layout/bus_base_fragment.xml
@@ -32,6 +32,27 @@
app:marginStart="@dimen/dp_640"
app:marginTop="@dimen/dp_80" />
+
+
+
+
+
+
+ package="com.mogo.och.noop">
- /
\ No newline at end of file
diff --git a/OCH/mogo-och-noop/src/main/java/com/mogo/och/noop/MoGoOCHNoopProvider.kt b/OCH/mogo-och-noop/src/main/java/com/mogo/och/noop/MoGoOCHNoopProvider.kt
index 9d04c6c036..1abf670a2e 100644
--- a/OCH/mogo-och-noop/src/main/java/com/mogo/och/noop/MoGoOCHNoopProvider.kt
+++ b/OCH/mogo-och-noop/src/main/java/com/mogo/och/noop/MoGoOCHNoopProvider.kt
@@ -4,6 +4,10 @@ import android.content.Context
import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentActivity
import com.alibaba.android.arouter.facade.annotation.Route
+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.mogo.logger.CallerLogger.d
/**
* @author congtaowang
@@ -15,15 +19,70 @@ import com.alibaba.android.arouter.facade.annotation.Route
@Route(path = OCHConstants.PATH)
class MoGoOCHNoopProvider : IMogoOCH {
+ companion object {
+ private const val TAG = "MogoOCHNoopProvider"
+ }
+
override val functionName: String
- get() = "MogoOCHNoopProvider"
+ get() = TAG
+
+ private var fragment: OchNoopFragment? = null
+ private var containerId = 0
+ private var activity: FragmentActivity? = null
override fun init(context: Context) {
+ MogoStatusManager.getInstance().registerStatusChangedListener(
+ TAG, StatusDescriptor.VR_MODE, statusChangedListener
+ )
+ }
+ private val statusChangedListener =
+ IMogoStatusChangedListener { descriptor: StatusDescriptor, isTrue: Boolean ->
+ if (descriptor == StatusDescriptor.VR_MODE) {
+ // 进入vr模式默认显示网约车小巴fragment
+ if (isTrue) {
+ showFragment()
+ } else {
+ hideFragment()
+ }
+ }
+ }
+
+ private fun showFragment() {
+ activity?.let {
+ if (fragment == null) {
+ d(TAG, "准备add fragment======")
+ val fragmentByTag = it.supportFragmentManager.findFragmentByTag(TAG)
+ fragment = if (fragmentByTag is OchNoopFragment) {
+ fragmentByTag
+ } else {
+ OchNoopFragment()
+ }
+ if (!fragment!!.isAdded) {
+ it.supportFragmentManager.beginTransaction()
+ .add(containerId, fragment!!, TAG).commitAllowingStateLoss()
+ }
+ return
+ }
+ d(TAG, "准备show fragment")
+ fragment?.let { noopFragment ->
+ it.supportFragmentManager.beginTransaction().show(noopFragment)
+ .commitAllowingStateLoss()
+ }
+ }
+ }
+
+ private fun hideFragment() {
+ if (fragment != null) {
+ d(TAG, "准备hide fragment")
+ activity?.supportFragmentManager?.beginTransaction()?.hide(fragment!!)
+ ?.commitAllowingStateLoss()
+ }
}
override fun createCoverage(activity: FragmentActivity?, containerId: Int?): Fragment? {
-
+ this.containerId = containerId!!
+ this.activity = activity
return null
}
diff --git a/OCH/mogo-och-noop/src/main/java/com/mogo/och/noop/OchNoopFragment.kt b/OCH/mogo-och-noop/src/main/java/com/mogo/och/noop/OchNoopFragment.kt
index ac540cf7e9..3dcf55be4f 100644
--- a/OCH/mogo-och-noop/src/main/java/com/mogo/och/noop/OchNoopFragment.kt
+++ b/OCH/mogo-och-noop/src/main/java/com/mogo/och/noop/OchNoopFragment.kt
@@ -3,12 +3,9 @@ package com.mogo.och.noop
import android.view.View
import com.mogo.commons.mvp.MvpFragment
import com.mogo.eagle.core.data.config.FunctionBuildConfig
-import com.mogo.eagle.core.function.call.biz.CallerFuncBizManager
import com.mogo.eagle.core.function.call.hmi.CallerHmiManager
import com.mogo.eagle.core.function.call.hmi.CallerHmiViewControlListenerManager
-import com.mogo.eagle.core.function.hmi.ui.setting.CameraLiveView.Companion.cameraLiveView
import com.mogo.eagle.core.function.hmi.ui.setting.ToggleDebugView
-import com.mogo.eagle.core.function.hmi.ui.setting.ToolsView.Companion.toolsView
import com.mogo.eagle.core.function.hmi.ui.widget.DemoModeView
import com.mogo.eagle.core.function.hmi.ui.widget.StatusBarView
import com.mogo.och.bus.R
@@ -33,7 +30,6 @@ class OchNoopFragment : MvpFragment(),
return OchNoopPresenter(this)
}
-
override fun initViews() {
//设置StatusBar初始状态
@@ -44,23 +40,6 @@ class OchNoopFragment : MvpFragment(),
DemoModeView(requireContext())
)
- ivCameraIcon?.setOnClickListener {
- cameraLiveView.showCameraList(
- context,
- CallerFuncBizManager.bizProvider.getCameraList
- ) { liveStatus ->
- if (liveStatus) {
- ivCameraIcon.setBackgroundResource(R.drawable.icon_camera_selected)
- } else {
- ivCameraIcon.setBackgroundResource(R.drawable.icon_camera_nor)
- }
- }
- }
-
- ivToolsView?.setOnClickListener {
- toolsView.showToolsFloat(context)
- }
-
viewShowDebugView.setOnLongClickListener {
ToggleDebugView.toggleDebugView.toggle(requireContext())
true
diff --git a/OCH/mogo-och-taxi/src/main/res/layout/taxi_base_fragment.xml b/OCH/mogo-och-taxi/src/main/res/layout/taxi_base_fragment.xml
index abd64b352c..18d4ade230 100644
--- a/OCH/mogo-och-taxi/src/main/res/layout/taxi_base_fragment.xml
+++ b/OCH/mogo-och-taxi/src/main/res/layout/taxi_base_fragment.xml
@@ -90,6 +90,27 @@
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent"/>
+
+
+
+
+
+
() {
}
override fun dependenciesByName(): List {
- return listOf("com.mogo.launcher.stageone.ARouterStartUp", "com.mogo.launcher.stageone.ThreadOptStartup")
+ return listOf("com.mogo.launcher.stageone.ARouterStartUp")
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/mogo/launcher/stageone/ARouterStartUp.kt b/app/src/main/java/com/mogo/launcher/stageone/ARouterStartUp.kt
index 15c913da9b..c539080df1 100644
--- a/app/src/main/java/com/mogo/launcher/stageone/ARouterStartUp.kt
+++ b/app/src/main/java/com/mogo/launcher/stageone/ARouterStartUp.kt
@@ -33,6 +33,6 @@ class ARouterStartUp : AndroidStartup() {
override fun waitOnMainThread() = false
override fun dependenciesByName(): List? {
- return listOf("com.mogo.launcher.stageone.ThreadOptStartup")
+ return null
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/mogo/launcher/stageone/ConfigStartUp.kt b/app/src/main/java/com/mogo/launcher/stageone/ConfigStartUp.kt
index 9c5c13cc30..d2093e3b5c 100644
--- a/app/src/main/java/com/mogo/launcher/stageone/ConfigStartUp.kt
+++ b/app/src/main/java/com/mogo/launcher/stageone/ConfigStartUp.kt
@@ -93,13 +93,6 @@ class ConfigStartUp : AndroidStartup() {
// 配置BuglyAppID:MoGoEagleEye
CrashReportConstants.buglyAppID = "ac71228f85"
- if (AppIdentityModeUtils.isTaxi(FunctionBuildConfig.appIdentityMode) ||
- AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode)) {
- //控制HMI展示元素 将不用手动调用setXXXXXViewVisibility
- HmiBuildConfig.isShowAutopilotStatusView = false
- HmiBuildConfig.isShowPerspectiveSwitchView = false
- }
-
if (AppIdentityModeUtils.isTaxi(FunctionBuildConfig.appIdentityMode)) {
HdMapBuildConfig.currentCarVrIconRes = R.raw.chuzuche
} else if (AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode)) {
@@ -112,21 +105,13 @@ class ConfigStartUp : AndroidStartup() {
if (AppIdentityModeUtils.isPassenger(FunctionBuildConfig.appIdentityMode)) {
if (AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode)) {
- //是否显示 红绿等
- HmiBuildConfig.isShowTrafficLightView = false
//是否显示 限速UI
HmiBuildConfig.isShowLimitingVelocityView = false
- //是否显示 路侧监控
- HmiBuildConfig.isShowCameraView = false
//白天模式
FunctionBuildConfig.skinMode = 1
} else if (AppIdentityModeUtils.isTaxi(FunctionBuildConfig.appIdentityMode)) {
- //是否显示 红绿等
- HmiBuildConfig.isShowTrafficLightView = false
//是否显示 限速UI
HmiBuildConfig.isShowLimitingVelocityView = false
- //是否显示 路侧监控
- HmiBuildConfig.isShowCameraView = false
}
}
@@ -169,7 +154,7 @@ class ConfigStartUp : AndroidStartup() {
}
- override fun dependenciesByName(): List {
- return listOf("com.mogo.launcher.stageone.ThreadOptStartup")
+ override fun dependenciesByName(): List? {
+ return null
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/mogo/launcher/stageone/HttpDnsStartUp.kt b/app/src/main/java/com/mogo/launcher/stageone/HttpDnsStartUp.kt
index a189438325..8c4aa9dc6c 100644
--- a/app/src/main/java/com/mogo/launcher/stageone/HttpDnsStartUp.kt
+++ b/app/src/main/java/com/mogo/launcher/stageone/HttpDnsStartUp.kt
@@ -70,8 +70,7 @@ class HttpDnsStartUp : AndroidStartup() {
override fun dependenciesByName(): List {
return listOf(
- "com.mogo.launcher.stageone.APMStartup",
- "com.mogo.launcher.stageone.ThreadOptStartup"
+ "com.mogo.launcher.stageone.APMStartup"
)
}
diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/BadCaseManager.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/BadCaseManager.kt
index 6888a1fde6..62501383b7 100644
--- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/BadCaseManager.kt
+++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/BadCaseManager.kt
@@ -11,10 +11,19 @@ import androidx.lifecycle.LifecycleCoroutineScope
import androidx.lifecycle.LifecycleEventObserver
import androidx.lifecycle.LifecycleOwner
import androidx.lifecycle.lifecycleScope
+import com.mogo.eagle.core.data.config.FunctionBuildConfig
import com.mogo.eagle.core.data.msgbox.MsgBoxBean
+import com.mogo.eagle.core.data.msgbox.MsgBoxType
+import com.mogo.eagle.core.data.msgbox.RecordBagMsg
+import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotRecordListener
+import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotRecordListenerManager
+import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxManager
import com.mogo.eagle.core.utilcode.kotlin.lifecycleOwner
+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
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_DEVA
+import com.mogo.eagle.core.utilcode.mogo.toast.TipToast
import com.mogo.eagle.core.utilcode.util.*
import com.zhjt.mogo_core_function_devatools.badcase.biz.*
import com.zhjt.mogo_core_function_devatools.badcase.consts.BadCaseConfig
@@ -27,7 +36,7 @@ import record_cache.RecordPanelOuterClass
import java.lang.ref.WeakReference
import java.util.concurrent.TimeUnit
-internal object BadCaseManager : LifecycleEventObserver {
+internal object BadCaseManager : LifecycleEventObserver, IMoGoAutopilotRecordListener {
const val TAG = "BadCase"
@@ -96,6 +105,8 @@ internal object BadCaseManager : LifecycleEventObserver {
* 主动采集BadCase
*/
fun initBadCase(view: View) {
+ CallerAutopilotRecordListenerManager.addListener(TAG, this)
+
val activity = view.context as? FragmentActivity
?: throw IllegalStateException("please ensure context is FragmentActivity.")
view.setOnClickListener {
@@ -193,24 +204,62 @@ internal object BadCaseManager : LifecycleEventObserver {
}
}
+ override fun onAutopilotRecordResult(recordPanel: RecordPanelOuterClass.RecordPanel) {
+ super.onAutopilotRecordResult(recordPanel)
+ CallerLogger.d("$M_DEVA$TAG", "recordKey=${recordPanel.key},stat=${recordPanel.stat}")
+ if (BadCaseConfig.recordKeyList.contains(recordPanel.key)) {
+ if (recordPanel.stat == 100 || recordPanel.stat == 101) {
+ //成功结束录制
+ TipToast.shortTip(
+ "${
+ TimeUtils.millis2String(
+ System.currentTimeMillis(),
+ TimeUtils.getHourMinSecondFormat()
+ )
+ } bag录制成功"
+ )
+ }
+ if (recordPanel.stat == 200) {
+ //录制失败
+ TipToast.shortTip(
+ "${
+ TimeUtils.millis2String(
+ System.currentTimeMillis(),
+ TimeUtils.getHourMinSecondFormat()
+ )
+ } bag录制失败"
+ )
+ }
+ return
+ }
+ //在工控机taxi2.3.0版本和Bus2.4.0版本上不支持被动录包,不进行被动录包的弹窗
+ BadCaseConfig.dockerVersion?.let {
+ if (it.contains("taxi") && it.contains("2.3.0")) {
+ return
+ }
+ if (it.contains("bus") && it.contains("2.4.0")) {
+ return
+ }
+ }
+ //处于非美化模式下弹窗;是地图数据采集任务时即type=2时,不弹窗
+ if (!FunctionBuildConfig.isDemoMode && (recordPanel.stat == 100 || recordPanel.stat == 101) && recordPanel.type != 2) {
+ //只在司机屏生效,乘客屏不生效
+ if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) {
+ CallerMsgBoxManager.saveMsgBox(
+ MsgBoxBean(
+ MsgBoxType.RECORD, RecordBagMsg(
+ recordPanel.key, recordPanel.stat, recordPanel.id,
+ recordPanel.type, recordPanel.filename, recordPanel.note
+ )
+ )
+ )
+ }
+ }
+ }
+
override fun onStateChanged(source: LifecycleOwner, event: Event) {
}
}
-
-
-internal fun RecordPanelOuterClass.RecordPanel.toRecord(): AutoPilotRecord =
- AutoPilotRecord().also {
- it.id = this.id
- it.stat = this.stat
- it.key = this.key.toString()
- it.note = this.note
- it.type = this.type
- it.total = this.totalSize
- it.fileName = this.filename
- it.duration = this.duration.toDouble()
- it.diskFree = this.diskFree
- it.consumed = false
- }
\ No newline at end of file
diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/InitiativeBadCaseWindow.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/InitiativeBadCaseWindow.kt
index 4ab9e49463..ed8dc2da88 100644
--- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/InitiativeBadCaseWindow.kt
+++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/InitiativeBadCaseWindow.kt
@@ -373,6 +373,7 @@ class InitiativeBadCaseWindow constructor(activity: Activity) : View.OnTouchList
override fun onAutopilotRecordResult(recordPanel: RecordPanelOuterClass.RecordPanel) {
CallerLogger.d("${M_DEVA}${TAG}", "-- 收到工控机录制任务回调 -- $recordPanel")
+
ThreadUtils.runOnUiThread {
if (recordKey == null) {
recordKey = recordPanel.key.toString()
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiFragment.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiFragment.kt
index 05b6ab8ac8..a0ac521b3a 100644
--- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiFragment.kt
+++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiFragment.kt
@@ -40,6 +40,7 @@ import com.mogo.eagle.core.function.api.hmi.view.IViewControlListener.Companion.
import com.mogo.eagle.core.function.api.hmi.view.IViewControlListener.Companion.PerspectiveSwitchView_TAG
import com.mogo.eagle.core.function.api.hmi.view.IViewControlListener.Companion.SpeedPanelView_TAG
import com.mogo.eagle.core.function.api.hmi.view.IViewControlListener.Companion.ToolsView_TAG
+import com.mogo.eagle.core.function.api.hmi.view.IViewControlListener.Companion.TrafficLightView_TAG
import com.mogo.eagle.core.function.api.hmi.view.IViewLimitingVelocity
import com.mogo.eagle.core.function.api.hmi.view.IViewTrafficLight
import com.mogo.eagle.core.function.api.hmi.warning.IMoGoHmiProvider
@@ -99,8 +100,7 @@ import java.util.concurrent.atomic.AtomicReference
class MoGoHmiFragment : MvpFragment(),
IMoGoHmiProvider,
IMoGoHmiViewProxy,
- MoGoHmiContract.View,
- IMoGoAutopilotRecordListener {
+ MoGoHmiContract.View{
companion object {
private const val TAG = "MoGoHmiFragment"
@@ -119,29 +119,10 @@ class MoGoHmiFragment : MvpFragment(),
private var showingV2XTip: IReminder? = null
override fun initViews() {
- initViewShowWithConfig()
//设置StatusBar初始状态
CallerHmiViewControlListenerManager.updateStatusBarRightView(StatusBarView.TAG,FunctionBuildConfig.isDemoMode, "demoMode", DemoModeView(requireContext()))
- ivCameraIcon?.setOnClickListener {
- cameraLiveView.showCameraList(
- context,
- CallerFuncBizManager.bizProvider.getCameraList
- ) { liveStatus ->
- if (liveStatus) {
- ivCameraIcon.setBackgroundResource(R.drawable.icon_camera_selected)
- } else {
- ivCameraIcon.setBackgroundResource(R.drawable.icon_camera_nor)
- }
- }
- }
-
- viewShowDebugView.setOnLongClickListener {
- toggleDebugView.toggle(requireContext())
- true
- }
-
//todo 新超,封装至消息盒子
cbMsgBoxDriver.setOnCheckedChangeListener { _, isChecked ->
if (isChecked) {
@@ -204,14 +185,10 @@ class MoGoHmiFragment : MvpFragment(),
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
- CallerAutopilotRecordListenerManager.addListener(TAG, this)
-
- // 首次初始化使用默认视图
- setProxyTrafficLightView(viewTrafficLightVr)
+ //todo 确认使用方 taxi bus 乘客/司机
setProxyLimitingSpeedView(viewLimitingVelocity)
}
-
/** todo ----------------------------------------------**/
/**
* 设置 红绿灯 代理View
@@ -227,109 +204,6 @@ class MoGoHmiFragment : MvpFragment(),
mViewLimitingVelocity = view
}
- /**
- * 根据配置文件初始化视图显示
- */
- private fun initViewShowWithConfig() {
- // 控制 自动驾驶状态 展示
- if (HmiBuildConfig.isShowAutopilotStatusView) {
- setAutopilotStatusViewVisibility(View.VISIBLE)
- } else {
- setAutopilotStatusViewVisibility(View.GONE)
- }
-
- // 控制 切换视角 展示
- if (HmiBuildConfig.isShowPerspectiveSwitchView) {
- setPerspectiveSwitchViewVisibility(View.VISIBLE)
- } else {
- setPerspectiveSwitchViewVisibility(View.GONE)
- }
-
- // 控制 红绿灯 展示
- if (HmiBuildConfig.isShowTrafficLightView) {
- setTrafficLightVrVisibility(View.VISIBLE)
- } else {
- setTrafficLightVrVisibility(View.GONE)
- }
-
- // 控制 远程摄像头图标 展示
- if (HmiBuildConfig.isShowCameraView) {
- setCameraViewVisibility(View.VISIBLE)
- } else {
- setCameraViewVisibility(View.GONE)
- }
- }
-
- /** todo----------------------------------------------- **/
-
- override fun onAutopilotRecordResult(recordPanel: RecordPanelOuterClass.RecordPanel) {
- CallerLogger.d("$M_HMI$TAG", "recordKey=${recordPanel.key},stat=${recordPanel.stat}")
- if (BadCaseConfig.recordKeyList.contains(recordPanel.key)) { //todo InitiativeBadCaseWindow
- if (recordPanel.stat == 100 || recordPanel.stat == 101) {
- //成功结束录制
- TipToast.shortTip(
- "${
- millis2String(
- System.currentTimeMillis(),
- TimeUtils.getHourMinSecondFormat()
- )
- } bag录制成功"
- )
- }
- if (recordPanel.stat == 200) {
- //录制失败
- TipToast.shortTip(
- "${
- millis2String(
- System.currentTimeMillis(),
- TimeUtils.getHourMinSecondFormat()
- )
- } bag录制失败"
- )
- }
- return
- }
- //在工控机taxi2.3.0版本和Bus2.4.0版本上不支持被动录包,不进行被动录包的弹窗
- BadCaseConfig.dockerVersion?.let {
- if (it.contains("taxi") && it.contains("2.3.0")) {
- return
- }
- if (it.contains("bus") && it.contains("2.4.0")) {
- return
- }
- }
- //处于非美化模式下弹窗;是地图数据采集任务时即type=2时,不弹窗
- if (!FunctionBuildConfig.isDemoMode && (recordPanel.stat == 100 || recordPanel.stat == 101) && recordPanel.type != 2) {
- //只在司机屏生效,乘客屏不生效
- if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) { //todo 数据中心控制来源
- CallerMsgBoxManager.saveMsgBox(
- MsgBoxBean(
- MsgBoxType.RECORD, RecordBagMsg(
- recordPanel.key, recordPanel.stat, recordPanel.id,
- recordPanel.type, recordPanel.filename, recordPanel.note
- )
- )
- )
- }
- }
- if (!FunctionBuildConfig.isDemoMode && recordPanel.type == 2 && ( //todo CallerMapDataCollectorManager
- recordPanel.stat == 101 || //工控机采集完成-被动完成
- recordPanel.stat == 100 || //工控机采集完成-主动完成
- recordPanel.stat == 102 || //工控机达到最大采集时长
- recordPanel.stat == 103) //工控机磁盘满了
- ) {
- CallerMapDataCollectorManager.finish(
- recordPanel.id, recordPanel.stat, "", recordPanel.filename
- ?: "", recordPanel.note ?: ""
- )
- }
- }
-
- override fun onDestroyView() {
- super.onDestroyView()
- CallerAutopilotRecordListenerManager.removeListener(TAG)
- }
-
/**
* ok
* 工控机重启返回结果
@@ -410,9 +284,8 @@ class MoGoHmiFragment : MvpFragment(),
DisplayEffectsHelper.getInstance().display()
}
- /** todo----------------------------------------------- **/
override fun setTrafficLightVrVisibility(visibility: Int) {
- mViewTrafficLight?.visibility = visibility
+ CallerHmiViewControlListenerManager.invokeVisible(TrafficLightView_TAG,visibility)
}
override fun setToolsViewVisibility(visibility: Int) {
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/tools/ToolsImageView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/tools/ToolsImageView.kt
index 6d89368329..84400ca732 100644
--- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/tools/ToolsImageView.kt
+++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/tools/ToolsImageView.kt
@@ -6,6 +6,7 @@ import com.mogo.eagle.core.function.api.hmi.view.IViewControlListener
import com.mogo.eagle.core.function.api.hmi.view.IViewControlListener.Companion.ToolsView_TAG
import com.mogo.eagle.core.function.call.hmi.CallerHmiViewControlListenerManager
import com.mogo.eagle.core.function.hmi.R
+import com.mogo.eagle.core.function.hmi.ui.setting.ToolsView.Companion.toolsView
class ToolsImageView(context: Context, attrs: AttributeSet?) :
androidx.appcompat.widget.AppCompatImageView(context, attrs), IViewControlListener {
@@ -15,6 +16,9 @@ class ToolsImageView(context: Context, attrs: AttributeSet?) :
setBackgroundResource(R.drawable.module_ext_check)
setImageResource(R.drawable.icon_tools_nor)
scaleType = ScaleType.CENTER
+ setOnClickListener{
+ toolsView.showToolsFloat(context)
+ }
CallerHmiViewControlListenerManager.addListener(ToolsView_TAG, this)
}
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/CameraView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/CameraView.kt
index 8e90c54e8c..70e5ae0f35 100644
--- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/CameraView.kt
+++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/CameraView.kt
@@ -4,8 +4,10 @@ import android.content.Context
import android.util.AttributeSet
import com.mogo.eagle.core.function.api.hmi.view.IViewControlListener
import com.mogo.eagle.core.function.api.hmi.view.IViewControlListener.Companion.CameraView_TAG
+import com.mogo.eagle.core.function.call.biz.CallerFuncBizManager
import com.mogo.eagle.core.function.call.hmi.CallerHmiViewControlListenerManager
import com.mogo.eagle.core.function.hmi.R
+import com.mogo.eagle.core.function.hmi.ui.setting.CameraLiveView.Companion.cameraLiveView
class CameraView(context: Context, attrs: AttributeSet?) :
androidx.appcompat.widget.AppCompatImageView(context, attrs), IViewControlListener {
@@ -13,6 +15,19 @@ class CameraView(context: Context, attrs: AttributeSet?) :
override fun onAttachedToWindow() {
super.onAttachedToWindow()
setBackgroundResource(R.drawable.icon_camera_nor)
+ setOnClickListener {
+ cameraLiveView.showCameraList(
+ context,
+ CallerFuncBizManager.bizProvider.getCameraList
+ ) { liveStatus ->
+ if (liveStatus) {
+ setBackgroundResource(R.drawable.icon_camera_selected)
+ } else {
+ setBackgroundResource(R.drawable.icon_camera_nor)
+ }
+ }
+ }
+
CallerHmiViewControlListenerManager.addListener(CameraView_TAG, this)
}
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/SingleTrafficLightView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/SingleTrafficLightView.kt
index 12842094df..36af0aad3d 100644
--- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/SingleTrafficLightView.kt
+++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/SingleTrafficLightView.kt
@@ -8,7 +8,10 @@ import android.widget.ImageView
import android.widget.TextView
import com.mogo.eagle.core.data.config.FunctionBuildConfig
import com.mogo.eagle.core.data.config.HmiBuildConfig
+import com.mogo.eagle.core.function.api.hmi.view.IViewControlListener
+import com.mogo.eagle.core.function.api.hmi.view.IViewControlListener.Companion.TrafficLightView_TAG
import com.mogo.eagle.core.function.api.hmi.view.IViewTrafficLight
+import com.mogo.eagle.core.function.call.hmi.CallerHmiViewControlListenerManager
import com.mogo.eagle.core.function.hmi.R
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
@@ -20,7 +23,7 @@ class SingleTrafficLightView @JvmOverloads constructor(
context: Context?,
attrs: AttributeSet? = null,
defStyleAttr: Int = 0
-) : IViewTrafficLight(context, attrs, defStyleAttr) {
+) : IViewTrafficLight(context, attrs, defStyleAttr), IViewControlListener {
private var mLightIconIV: ImageView? = null
private var mLightIconBG: ImageView? = null
private var mLightTimeTV: GradientTextView? = null
@@ -28,17 +31,26 @@ class SingleTrafficLightView @JvmOverloads constructor(
private var mLightSourceDivider: View? = null
private var mCurrentLightId = 0
- init {
- init(context)
- }
-
- private fun init(context: Context?) {
+ override fun onAttachedToWindow() {
+ super.onAttachedToWindow()
LayoutInflater.from(context).inflate(R.layout.hmi_view_traffic_light, this, true)
mLightIconIV = findViewById(R.id.hmi_traffic_light_iv)
mLightIconBG = findViewById(R.id.hmi_traffic_light_bg)
mLightTimeTV = findViewById(R.id.hmi_traffic_light_time_tv)
mLightSourceTV = findViewById(R.id.hmi_traffic_light_source)
mLightSourceDivider = findViewById(R.id.hmi_traffic_light_divider)
+
+ CallerHmiViewControlListenerManager.addListener(TrafficLightView_TAG, this)
+ }
+
+ override fun visible(v: Int) {
+ super.visible(v)
+ visibility = v
+ }
+
+ override fun onDetachedFromWindow() {
+ super.onDetachedFromWindow()
+ CallerHmiViewControlListenerManager.removeListener(TrafficLightView_TAG)
}
/**
@@ -47,11 +59,11 @@ class SingleTrafficLightView @JvmOverloads constructor(
* @param checkLightId 0-都是默认,1-红,2-黄,3-绿
* @param lightSource 1:云端下发;2:自车感知
*/
- override fun showWarningTrafficLight(checkLightId: Int,lightSource: Int) {
- super.showWarningTrafficLight(checkLightId,lightSource)
+ override fun showWarningTrafficLight(checkLightId: Int, lightSource: Int) {
+ super.showWarningTrafficLight(checkLightId, lightSource)
mCurrentLightId = checkLightId
- if(!HmiBuildConfig.isShowTrafficLightView){
- updateTrafficLightIcon(checkLightId,lightSource)
+ if (!HmiBuildConfig.isShowTrafficLightView) {
+ updateTrafficLightIcon(checkLightId, lightSource)
}
}
@@ -70,24 +82,28 @@ class SingleTrafficLightView @JvmOverloads constructor(
super.disableCountdown()
UiThreadHandler.post {
// 小巴车的司机端需要展示红绿灯信号来源
- if(AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)
- && AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode)){
+ if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)
+ && AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode)
+ ) {
val lp = this.layoutParams as MarginLayoutParams
lp.width = context.resources.getDimension(R.dimen.dp_325).toInt()
this.layoutParams = lp
mLightSourceTV!!.visibility = VISIBLE
mLightSourceDivider!!.visibility = VISIBLE
mLightTimeTV!!.visibility = GONE
- mLightSourceTV!!.setPadding(0,0,75,0)
- mLightIconBG!!.layoutParams.width = context.resources.getDimension(R.dimen.dp_310).toInt()
- }else{
+ mLightSourceTV!!.setPadding(0, 0, 75, 0)
+ mLightIconBG!!.layoutParams.width =
+ context.resources.getDimension(R.dimen.dp_310).toInt()
+ } else {
val lp = this.layoutParams as MarginLayoutParams
- lp.width = context.resources.getDimension(R.dimen.hmi_traffic_light_icon_size).toInt()
+ lp.width =
+ context.resources.getDimension(R.dimen.hmi_traffic_light_icon_size).toInt()
this.layoutParams = lp
mLightTimeTV!!.visibility = GONE
mLightSourceDivider!!.visibility = View.GONE
mLightSourceTV!!.visibility = View.GONE
- mLightIconBG!!.layoutParams.width = context.resources.getDimension(R.dimen.dp_124).toInt()
+ mLightIconBG!!.layoutParams.width =
+ context.resources.getDimension(R.dimen.dp_124).toInt()
}
}
}
@@ -176,7 +192,7 @@ class SingleTrafficLightView @JvmOverloads constructor(
* @param lightId 0-都是默认,1-红,2-黄,3-绿
* @param lightSource 1:云端下发;2:自车感知
*/
- private fun updateTrafficLightIcon(lightId: Int,lightSource: Int) {
+ private fun updateTrafficLightIcon(lightId: Int, lightSource: Int) {
UiThreadHandler.post {
when (lightId) {
1 -> {
@@ -193,7 +209,7 @@ class SingleTrafficLightView @JvmOverloads constructor(
}
else -> this@SingleTrafficLightView.visibility = GONE
}
- when(lightSource){
+ when (lightSource) {
1 -> {
mLightSourceTV!!.text = "云端下发"
}
@@ -207,26 +223,31 @@ class SingleTrafficLightView @JvmOverloads constructor(
}
}
- private fun resetView(){
+ private fun resetView() {
// 小巴车的司机端需要展示红绿灯信号来源
- if(AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)
- && AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode)){
+ if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)
+ && AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode)
+ ) {
val lp = this.layoutParams as MarginLayoutParams
- lp.width = context.resources.getDimension(R.dimen.hmi_traffic_light_bus_layout_width).toInt()
+ lp.width =
+ context.resources.getDimension(R.dimen.hmi_traffic_light_bus_layout_width).toInt()
this.layoutParams = lp
mLightTimeTV!!.visibility = View.VISIBLE
mLightSourceDivider!!.visibility = View.VISIBLE
mLightSourceTV!!.visibility = View.VISIBLE
- mLightSourceTV!!.setPadding(0,0,0,0)
- mLightIconBG!!.layoutParams.width = context.resources.getDimension(R.dimen.hmi_traffic_light_bus_bg_width).toInt()
- }else{
+ mLightSourceTV!!.setPadding(0, 0, 0, 0)
+ mLightIconBG!!.layoutParams.width =
+ context.resources.getDimension(R.dimen.hmi_traffic_light_bus_bg_width).toInt()
+ } else {
val lp = this.layoutParams as MarginLayoutParams
- lp.width = context.resources.getDimension(R.dimen.hmi_traffic_light_layout_width).toInt()
+ lp.width =
+ context.resources.getDimension(R.dimen.hmi_traffic_light_layout_width).toInt()
this.layoutParams = lp
mLightTimeTV!!.visibility = View.VISIBLE
mLightSourceDivider!!.visibility = View.GONE
mLightSourceTV!!.visibility = View.GONE
- mLightIconBG!!.layoutParams.width = context.resources.getDimension(R.dimen.hmi_traffic_light_bg_width).toInt()
+ mLightIconBG!!.layoutParams.width =
+ context.resources.getDimension(R.dimen.hmi_traffic_light_bg_width).toInt()
}
}
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/fragment_hmi.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/fragment_hmi.xml
index 4755ef046f..b2dd4a6f0a 100644
--- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/fragment_hmi.xml
+++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/fragment_hmi.xml
@@ -6,14 +6,6 @@
android:layout_width="match_parent"
android:layout_height="match_parent">
-
-
-
-
-
-
-
-
+
+
+ app:layout_constraintTop_toTopOf="parent"/>
+
+
itx.init(it,
@@ -64,13 +73,27 @@ class MoGoMapDataCollectProvider : IMoGoMapDataCollectProvider, OnTaskListener,
}
override fun onDestroy() {
- CallerMapLocationListenerManager.removeListener("$M_MAP$TAG", false)
CallerLogger.d("$M_MAP$TAG", "--------- onDestroy --------")
+ CallerMapLocationListenerManager.removeListener(TAG, false)
+ CallerAutopilotRecordListenerManager.removeListener(TAG)
executor.get()?.setOnTaskListener(null)
listeners.clear()
map.clear()
}
+ override fun onAutopilotRecordResult(recordPanel: RecordPanelOuterClass.RecordPanel) {
+ super.onAutopilotRecordResult(recordPanel)
+ CallerLogger.d("$M_MAP$TAG", "recordKey=${recordPanel.key},stat=${recordPanel.stat}")
+ if (!FunctionBuildConfig.isDemoMode && recordPanel.type == 2 && (
+ recordPanel.stat == 101 || //工控机采集完成-被动完成
+ recordPanel.stat == 100 || //工控机采集完成-主动完成
+ recordPanel.stat == 102 || //工控机达到最大采集时长
+ recordPanel.stat == 103) //工控机磁盘满了
+ ) {
+ finish(recordPanel.id, recordPanel.stat, "", recordPanel.filename ?: "", recordPanel.note ?: "")
+ }
+ }
+
override fun registerOnMapCollectTaskListener(listener: IMoGoMapDataCollectProvider.OnMapCollectCmdListener?) {
CallerLogger.d("$M_MAP$TAG", "--------- registerOnMapCollectTaskListener --------")
listener ?: return
diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/config/HmiBuildConfig.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/config/HmiBuildConfig.kt
index 1f4090e56a..24fd2fe73e 100644
--- a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/config/HmiBuildConfig.kt
+++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/config/HmiBuildConfig.kt
@@ -7,18 +7,6 @@ package com.mogo.eagle.core.data.config
*/
object HmiBuildConfig {
- /**
- * 是否展示 自动驾驶 按钮
- */
- @JvmField
- var isShowAutopilotStatusView = true
-
- /**
- * 是否展示 切换视角 按钮
- */
- @JvmField
- var isShowPerspectiveSwitchView = true
-
/**
* 是否展示 转向灯ui
*/
@@ -43,12 +31,6 @@ object HmiBuildConfig {
@JvmField
var isShowTrafficLightView = false
- /**
- * 是否显示摄像头图标
- */
- @JvmField
- var isShowCameraView = true
-
/**
* 是否展示 sn绑定的弹框
*/
diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/enums/EventTypeEnumNew.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/enums/EventTypeEnumNew.kt
index 920e2203c0..6de86e6a02 100644
--- a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/enums/EventTypeEnumNew.kt
+++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/enums/EventTypeEnumNew.kt
@@ -454,9 +454,6 @@ enum class EventTypeEnumNew(
),
//------------车内标牌 obu end -------------->
- //------------车内标牌 end -------------->
-
-
TYPE_SOCKET_ROAD_CONGESTION(
"100071",
"交通拥堵",
diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/hmi/view/IViewControlListener.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/hmi/view/IViewControlListener.kt
index 5e426155bc..4a1c67310f 100644
--- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/hmi/view/IViewControlListener.kt
+++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/hmi/view/IViewControlListener.kt
@@ -10,6 +10,7 @@ interface IViewControlListener {
const val PerspectiveSwitchView_TAG = "PerspectiveSwitchView_TAG"
const val CameraView_TAG = "CameraView_TAG"
const val ToolsView_TAG = "ToolsView_TAG"
+ const val TrafficLightView_TAG = "TrafficLightView_TAG"
}
/** --------- View --------- **/