diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/DevaToolsProvider.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/DevaToolsProvider.kt
index 7a6bdf1fcd..d1cc73df59 100644
--- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/DevaToolsProvider.kt
+++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/DevaToolsProvider.kt
@@ -82,6 +82,7 @@ import com.zhjt.mogo_core_function_devatools.tts.TtsManager.Companion.ttsManager
import com.zhjt.mogo_core_function_devatools.upgrade.UpgradeManager.Companion.upgradeManager
import com.zhjt.mogo_core_function_devatools.weaknetwork.DetectResultImpl
import com.zhjt.mogo_core_function_devatools.weaknetwork.WeakNetworkStrategy
+import com.zhjt.mogo_core_function_devatools.workorder.WorkOrderManager
import com.zhjt.service.chain.ChainLog
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.delay
@@ -449,6 +450,13 @@ class DevaToolsProvider : IDevaToolsProvider, IAppStateListener {
BadCaseManager.showBadCaseManagerWindow(context)
}
+ /**
+ * 展示接管记录页面
+ */
+ override fun showTakeOverRecordView(context: Context) {
+ WorkOrderManager.workOrderManager.showTakeOverRecordView(context)
+ }
+
/**
* 启动调用SSM停服命令超时检测
*/
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 030e2fe3ce..ebd9af2845 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
@@ -13,6 +13,7 @@ import androidx.fragment.app.FragmentActivity
import androidx.lifecycle.Lifecycle.Event
import androidx.lifecycle.LifecycleEventObserver
import androidx.lifecycle.LifecycleOwner
+import com.mogo.commons.env.ProjectUtils
import com.mogo.commons.module.status.IMogoStatusChangedListener
import com.mogo.commons.module.status.MogoStatusManager
import com.mogo.commons.module.status.StatusDescriptor
@@ -53,6 +54,7 @@ import com.zhjt.mogo_core_function_devatools.badcase.consts.BadCaseConfig
import com.zhjt.mogo_core_function_devatools.badcase.repository.db.entity.AutoPilotRecord
import com.zhjt.mogo_core_function_devatools.badcase.util.RecordBitmapUtils
import com.zhjt.mogo_core_function_devatools.ext.enqueuePop
+import com.zhjt.mogo_core_function_devatools.workorder.ReportTypeWindow
import com.zhjt.mogo_core_function_devatools.workorder.WorkOrderWindow
import me.jessyan.autosize.utils.AutoSizeUtils
import record_cache.RecordPanelOuterClass
@@ -189,15 +191,28 @@ internal object BadCaseManager : LifecycleEventObserver, IMoGoAutopilotRecordLis
view.setOnClickListener{
if (ClickUtils.isFastClick()){
if (NetworkUtils.isConnected()){
- if (BadCaseConfig.dockerVersion != null){
- //展示工单上报弹窗
- val workOrderWindow = WorkOrderWindow(activity)
- workOrderWindow.setClickListener(object: WorkOrderWindow.ClickListener{
- override fun closeWindow() {
- workOrderWindow.hideFloatWindow()
- }
- })
- workOrderWindow.showFloatWindow()
+ //TODO 更改dockerVersion是否为空
+ if (BadCaseConfig.dockerVersion == null){
+ if(ProjectUtils.isSaas()){
+ //660版本数据闭环增加统一上报问题入口(仅限于saas渠道)
+ //TODO 已存在WIndow再次点击会再次创建WIndow
+ val reportTypeWindow = ReportTypeWindow(activity)
+ reportTypeWindow.setClickListener(object: ReportTypeWindow.ClickListener{
+ override fun closeWindow() {
+ reportTypeWindow.hideFloatWindow()
+ }
+ })
+ reportTypeWindow.showFloatWindow()
+ }else{
+ //展示工单上报弹窗
+ val workOrderWindow = WorkOrderWindow(activity)
+ workOrderWindow.setClickListener(object: WorkOrderWindow.ClickListener{
+ override fun closeWindow() {
+ workOrderWindow.hideFloatWindow()
+ }
+ })
+ workOrderWindow.showFloatWindow()
+ }
}else{
ToastUtils.showShort("工控机连接状态异常")
}
diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/ReportTypeWindow.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/ReportTypeWindow.kt
index 89c1c8e403..76132ee3d0 100644
--- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/ReportTypeWindow.kt
+++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/ReportTypeWindow.kt
@@ -2,11 +2,27 @@ package com.zhjt.mogo_core_function_devatools.workorder
import android.annotation.SuppressLint
import android.app.Activity
+import android.graphics.PixelFormat
+import android.os.CountDownTimer
+import android.os.SystemClock
+import android.util.DisplayMetrics
+import android.view.Gravity
import android.view.LayoutInflater
import android.view.View
import android.view.WindowManager
+import android.widget.ImageView
+import android.widget.TextView
+import androidx.appcompat.widget.AppCompatTextView
+import androidx.constraintlayout.widget.Group
+import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager
+import com.mogo.eagle.core.utilcode.util.BarUtils
+import com.mogo.eagle.core.utilcode.util.ThreadUtils
+import com.mogo.eagle.core.utilcode.util.ToastUtils
import com.zhjt.mogo_core_function_devatools.R
-import com.zhjt.mogo_core_function_devatools.badcase.record.RecordManager
+import com.zhjt.mogo_core_function_devatools.badcase.consts.BadCaseConfig
+import java.util.Random
+import kotlin.math.absoluteValue
+import kotlin.math.round
/**
* 上报类型选择,包括一键上报及上报类型选择:故障类、接管类
@@ -22,6 +38,18 @@ class ReportTypeWindow constructor(activity: Activity) {
private var mWindowParams: WindowManager.LayoutParams? = null
private var mWindowManager: WindowManager? = null
private lateinit var mFloatLayout: View
+ private var clickListener: ClickListener? = null
+
+ private lateinit var tvOneClickReportTitle: TextView
+ private lateinit var ivOneClickReport: ImageView
+ private lateinit var oneClickGroup: Group
+ private lateinit var tvReportTypeFault: AppCompatTextView
+ private lateinit var tvReportTypeTakeOver: AppCompatTextView
+ private lateinit var reportTypeGroup: Group
+ private lateinit var tvReportSuccess: AppCompatTextView
+
+ private var isOneClickType: Boolean = false //是否是一键上报类型
+ private var hasReportOperate: Boolean = false //是否点击了一键上报按钮
init {
initFloatWindow()
@@ -30,13 +58,105 @@ class ReportTypeWindow constructor(activity: Activity) {
@SuppressLint("InflateParams")
private fun initFloatWindow(){
mFloatLayout = LayoutInflater.from(mActivity).inflate(R.layout.view_report_type, null) as View
+ initView()
+ initEvent()
+ mWindowParams = WindowManager.LayoutParams()
+ mWindowManager = mActivity.windowManager
+ mWindowParams?.let {
+ it.format = PixelFormat.RGBA_8888
+ it.flags = WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL
+ it.gravity = Gravity.START or Gravity.TOP
+ it.width = 457
+ it.height = 333
+ it.alpha = 1.0f
+ }
+ }
+ private fun initView(){
+ tvOneClickReportTitle = mFloatLayout.findViewById(R.id.tvOneClickReportTitle)
+ ivOneClickReport = mFloatLayout.findViewById(R.id.ivOneClickReport)
+ oneClickGroup = mFloatLayout.findViewById(R.id.oneClickGroup)
+ tvReportTypeFault = mFloatLayout.findViewById(R.id.tvReportTypeFault)
+ tvReportTypeTakeOver = mFloatLayout.findViewById(R.id.tvReportTypeTakeOver)
+ reportTypeGroup = mFloatLayout.findViewById(R.id.reportTypeGroup)
+ tvReportSuccess = mFloatLayout.findViewById(R.id.tvReportSuccess)
+ }
+ private fun initEvent(){
+ if(isOneClickType){
+ oneClickGroup.visibility = View.VISIBLE
+ reportTypeGroup.visibility = View.GONE
+ tvReportSuccess.visibility = View.GONE
+ tvOneClickReportTitle.text = String.format(mActivity.resources.getString(R.string.identified_vehicle_malfunction),5)
+ val oneClickTimer = object : CountDownTimer(5000, 1000) {
+ override fun onTick(count: Long) {
+ ThreadUtils.runOnUiThread {
+ tvOneClickReportTitle.text = String.format(mActivity.resources.getString(R.string.identified_vehicle_malfunction),round((count.toDouble()/1000)).toInt())
+ }
+ }
+ override fun onFinish() {
+ //如果有页面操作,则不自动关闭窗口
+ if(!hasReportOperate){
+ clickListener?.closeWindow()
+ }
+ }
+ }
+ oneClickTimer.start()
+ }else{
+ oneClickGroup.visibility = View.GONE
+ reportTypeGroup.visibility = View.VISIBLE
+ tvReportSuccess.visibility = View.GONE
+ }
+ //一键上报
+ ivOneClickReport.setOnClickListener {
+ hasReportOperate = true
+ //TODO
+ }
+ //故障类
+ tvReportTypeFault.setOnClickListener {
+ val faultReasonWindow = FaultReasonWindow(mActivity)
+ faultReasonWindow.showFloatWindow()
+ clickListener?.closeWindow()
+ }
+ //主动录包
+ tvReportTypeTakeOver.setOnClickListener {
+ val response = CallerAutoPilotControlManager.recordPackage(
+ BadCaseConfig.type, Random(SystemClock.elapsedRealtime()).nextInt().absoluteValue,
+ BadCaseConfig.totalDuration, BadCaseConfig.previousDuration)
+ if(response){
+ ToastUtils.showShort("主动录包命令下发成功")
+ }else{
+ ToastUtils.showShort("主动录包命令下发失败")
+ }
+ clickListener?.closeWindow()
+ }
}
+ fun showFloatWindow() {
+ if (mFloatLayout.parent == null) {
+ val metrics = DisplayMetrics()
+ // 默认固定位置,靠屏幕右边缘的中间
+ mWindowManager!!.defaultDisplay.getMetrics(metrics)
+ mWindowParams!!.x = metrics.widthPixels-2257
+ mWindowParams!!.y = metrics.heightPixels - BarUtils.getStatusBarHeight()-420
+ mWindowManager!!.addView(mFloatLayout, mWindowParams)
+ }
+ }
+ fun hideFloatWindow() {
+ if (mFloatLayout.parent != null){
+ mWindowManager!!.removeView(mFloatLayout)
+ }
+ }
+ fun setClickListener(clickListener: ClickListener) {
+ this.clickListener = clickListener
+ }
+
+ interface ClickListener {
+ fun closeWindow()
+ }
}
\ 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/workorder/TakeOverReasonWindow.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/TakeOverReasonWindow.kt
index bc28279525..588ed999dd 100644
--- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/TakeOverReasonWindow.kt
+++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/TakeOverReasonWindow.kt
@@ -1,6 +1,5 @@
package com.zhjt.mogo_core_function_devatools.workorder
-
import android.annotation.SuppressLint
import android.app.Activity
import android.graphics.PixelFormat
@@ -21,6 +20,7 @@ import android.widget.EditText
import android.widget.ImageView
import android.widget.TextView
import androidx.appcompat.widget.AppCompatEditText
+import androidx.appcompat.widget.AppCompatTextView
import androidx.constraintlayout.widget.Group
import androidx.recyclerview.widget.RecyclerView
import com.iflytek.cloud.ErrorCode
@@ -43,7 +43,7 @@ import kotlin.math.absoluteValue
/**
* 接管原因编辑窗口
*/
-class TakeOverReasonWindow constructor(activity: Activity) : View.OnTouchListener{
+class TakeOverReasonWindow constructor(activity: Activity) : View.OnTouchListener {
companion object{
const val TAG = "TakeOverReasonWindow"
@@ -71,21 +71,17 @@ class TakeOverReasonWindow constructor(activity: Activity) : View.OnTouchListene
private var clickListener: ClickListener? = null
- private lateinit var tvTakeOverTitle: TextView
private lateinit var tvTakeOverTime: TextView
- private lateinit var tvFaultType: TextView
- private lateinit var ivFaultTypeSelect: ImageView
- private lateinit var tvFaultReason: TextView
- private lateinit var ivFaultReasonSelect: ImageView
- private lateinit var ivTimeReduce: ImageView
- private lateinit var tvOccurrenceTime: TextView
- private lateinit var ivTimeAdd: ImageView
+ private lateinit var tvTakeOverType: TextView
+ private lateinit var ivTakeOverTypeSelect: ImageView
+ private lateinit var tvTakeOverReason: TextView
+ private lateinit var ivTakeOverReasonSelect: ImageView
private lateinit var etNoteInput: AppCompatEditText
private lateinit var ivNoteAudio: ImageView
private lateinit var tvTakeOverReport: TextView
private lateinit var tvTakeOverCancel: TextView
- private lateinit var rvFaultList: RecyclerView
- private lateinit var tvUploadSuccess: TextView
+ private lateinit var rvTakeOverList: RecyclerView
+ private lateinit var tvUploadSuccess: AppCompatTextView
private lateinit var takeOverReasonGroup: Group
init {
@@ -115,44 +111,27 @@ class TakeOverReasonWindow constructor(activity: Activity) : View.OnTouchListene
}
private fun initView(){
- tvTakeOverTitle = mFloatLayout.findViewById(R.id.tvTakeOverTitle)
tvTakeOverTime = mFloatLayout.findViewById(R.id.tvTakeOverTime)
- tvFaultType = mFloatLayout.findViewById(R.id.tvFaultType)
- ivFaultTypeSelect = mFloatLayout.findViewById(R.id.ivFaultTypeSelect)
- tvFaultReason = mFloatLayout.findViewById(R.id.tvFaultReason)
- ivFaultReasonSelect = mFloatLayout.findViewById(R.id.ivFaultReasonSelect)
- ivTimeReduce = mFloatLayout.findViewById(R.id.ivTimeReduce)
- tvOccurrenceTime = mFloatLayout.findViewById(R.id.tvOccurrenceTime)
- ivTimeAdd = mFloatLayout.findViewById(R.id.ivTimeAdd)
+ tvTakeOverType = mFloatLayout.findViewById(R.id.tvTakeOverType)
+ ivTakeOverTypeSelect = mFloatLayout.findViewById(R.id.ivTakeOverTypeSelect)
+ tvTakeOverReason = mFloatLayout.findViewById(R.id.tvTakeOverReason)
+ ivTakeOverReasonSelect = mFloatLayout.findViewById(R.id.ivTakeOverReasonSelect)
etNoteInput = mFloatLayout.findViewById(R.id.etNoteInput)
ivNoteAudio = mFloatLayout.findViewById(R.id.ivNoteAudio)
tvTakeOverReport = mFloatLayout.findViewById(R.id.tvTakeOverReport)
tvTakeOverCancel = mFloatLayout.findViewById(R.id.tvTakeOverCancel)
- rvFaultList = mFloatLayout.findViewById(R.id.rvFaultList)
+ rvTakeOverList = mFloatLayout.findViewById(R.id.rvTakeOverList)
tvUploadSuccess = mFloatLayout.findViewById(R.id.tvUploadSuccess)
takeOverReasonGroup = mFloatLayout.findViewById(R.id.takeOverReasonGroup)
}
+
@OptIn(DelicateCoroutinesApi::class)
@SuppressLint("SetTextI18n")
private fun initEvent(){
//弹窗展示时间
tvTakeOverTime.text = mActivity.resources.getString(R.string.take_over_time) +
millis2String(System.currentTimeMillis(), TimeUtils.getHourMinSecondFormat())
- //发生时间
- tvOccurrenceTime.text = millis2String(workOrderOccurrenceTime, TimeUtils.getHourMinFormat())
- ivTimeReduce.setOnClickListener {
- workOrderOccurrenceTime -= 60000
- tvOccurrenceTime.text = millis2String(workOrderOccurrenceTime, TimeUtils.getHourMinFormat())
- }
- ivTimeAdd.setOnClickListener {
- if(workOrderOccurrenceTime + 60000 > System.currentTimeMillis()){
- ToastUtils.showShort("发生时间应在当前时间之前")
- return@setOnClickListener
- }
- workOrderOccurrenceTime += 60000
- tvOccurrenceTime.text = millis2String(workOrderOccurrenceTime, TimeUtils.getHourMinFormat())
- }
//补充描述
etNoteInput.onFocusChangeListener = OnFocusChangeListener { v, hasFocus ->
val edit = v as EditText
@@ -187,9 +166,8 @@ class TakeOverReasonWindow constructor(activity: Activity) : View.OnTouchListene
}
//取消
tvTakeOverCancel.setOnClickListener {
- clickListener?.closeWindow()
+ hideFloatWindow()
}
-
}
private fun setAudio(status: Boolean){
diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/TakeOverRecordView.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/TakeOverRecordView.kt
index 1033bc99ed..91b665f12e 100644
--- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/TakeOverRecordView.kt
+++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/TakeOverRecordView.kt
@@ -28,6 +28,7 @@ class TakeOverRecordView @JvmOverloads constructor(
}
private var takeOverListAdapter: TakeOverListAdapter ?= null
+ private var clickListener: ClickListener? = null
init {
LayoutInflater.from(context).inflate(R.layout.view_take_over_record, this, true)
@@ -37,7 +38,7 @@ class TakeOverRecordView @JvmOverloads constructor(
private fun initView(){
//关闭窗口
ivTakeOverRecordClose.setOnClickListener {
-
+ clickListener?.onClose()
}
takeOverListAdapter = TakeOverListAdapter()
val linearLayoutManager = LinearLayoutManager(context)
@@ -50,4 +51,12 @@ class TakeOverRecordView @JvmOverloads constructor(
}
+ fun setOnClickListener(clickListener: ClickListener) {
+ this.clickListener = clickListener
+ }
+
+ interface ClickListener {
+ fun onClose()
+ }
+
}
\ 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/workorder/WorkOrderManager.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/WorkOrderManager.kt
index bd871cbb5e..d6d6b012ca 100644
--- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/WorkOrderManager.kt
+++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/WorkOrderManager.kt
@@ -1,8 +1,11 @@
package com.zhjt.mogo_core_function_devatools.workorder
import android.content.Context
+import android.view.WindowManager
import com.mogo.eagle.core.data.deva.report.WorkOrderReportInfo
import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsListenerManager
+import com.zhjt.mogo_core_function_devatools.ext.enqueuePop
+import me.jessyan.autosize.utils.AutoSizeUtils
/**
* @author XuXinChao
@@ -20,11 +23,34 @@ class WorkOrderManager{
private var mContext: Context? = null
private val workOrderNetWorkModel = WorkOrderNetWorkModel()
+ private var hideFloat: (() -> Unit)? = null
fun init(context: Context){
mContext = context
}
+ /**
+ * 展示接管记录页面
+ */
+ fun showTakeOverRecordView(context: Context){
+ val takeOverRecordView = TakeOverRecordView(context)
+ takeOverRecordView.setOnClickListener(object: TakeOverRecordView.ClickListener{
+ override fun onClose() {
+ hideFloat?.invoke()
+ hideFloat = null
+ }
+
+ })
+ context.enqueuePop(
+ takeOverRecordView,
+ AutoSizeUtils.dp2px(context, 960f),
+ WindowManager.LayoutParams.MATCH_PARENT,
+ key = "BadCaseManagerView"
+ ).also {
+ hideFloat = it
+ }
+ }
+
/**
* 工单上报
*/
diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/bg_take_over_reason.png b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/bg_take_over_reason.png
index 778b364988..a54e6efd2f 100644
Binary files a/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/bg_take_over_reason.png and b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/bg_take_over_reason.png differ
diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/layout/view_report_type.xml b/core/function-impl/mogo-core-function-devatools/src/main/res/layout/view_report_type.xml
index e1411f0b3e..52fcdf265a 100644
--- a/core/function-impl/mogo-core-function-devatools/src/main/res/layout/view_report_type.xml
+++ b/core/function-impl/mogo-core-function-devatools/src/main/res/layout/view_report_type.xml
@@ -48,7 +48,7 @@
android:text="@string/report_type"
android:textColor="@color/white"
android:textSize="@dimen/sp_32"
- android:layout_marginTop="@dimen/dp_30"
+ android:layout_marginTop="@dimen/dp_50"
/>
\ No newline at end of file
diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/layout/view_take_over_reason.xml b/core/function-impl/mogo-core-function-devatools/src/main/res/layout/view_take_over_reason.xml
index 078d14811e..8a1a7bb2c9 100644
--- a/core/function-impl/mogo-core-function-devatools/src/main/res/layout/view_take_over_reason.xml
+++ b/core/function-impl/mogo-core-function-devatools/src/main/res/layout/view_take_over_reason.xml
@@ -1,7 +1,7 @@
@@ -41,7 +41,7 @@
/>
-
-
-
-
-
-
-
-
-
-
+
\ No newline at end of file
diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/values/strings.xml b/core/function-impl/mogo-core-function-devatools/src/main/res/values/strings.xml
index 4d4fd6d16f..15a42e6840 100644
--- a/core/function-impl/mogo-core-function-devatools/src/main/res/values/strings.xml
+++ b/core/function-impl/mogo-core-function-devatools/src/main/res/values/strings.xml
@@ -33,11 +33,11 @@
应急停车
关闭考试车辆控制
- 识别到车辆故障%d
+ 识别到车辆故障(%ds)
一键上报
上报类型
故障类
- 接管类
+ 主动录包
已发起上报
已发起录包
接管记录关闭按钮
@@ -45,13 +45,16 @@
一键上传
删除
接管记录状态标签
- 故障原因
+ 接管原因
时间:
+ 接管类型选择
+ 接管类型
故障类型
故障类型选择
故障原因
故障原因选择
发生时间
+ 时间:
发生时间前溯
发生时间后置
补充描述
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/ToolsView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/ToolsView.kt
index cb26d3823b..2d6a9095bb 100644
--- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/ToolsView.kt
+++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/ToolsView.kt
@@ -58,6 +58,14 @@ class ToolsView private constructor() {
dismissToolsFloatView()
CallerDevaToolsManager.showBadCaseManagerView(it)
}
+
+ /**
+ * 展示接管记录页面
+ */
+ override fun showTakeOverRecordView() {
+ dismissToolsFloatView()
+ CallerDevaToolsManager.showTakeOverRecordView(it)
+ }
})
}
toolsViewFloat = WarningFloat.with(it)
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/tools/AutoPilotAndCheckView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/tools/AutoPilotAndCheckView.kt
index 916d6a2d5f..1664812221 100644
--- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/tools/AutoPilotAndCheckView.kt
+++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/tools/AutoPilotAndCheckView.kt
@@ -10,6 +10,7 @@ import android.util.AttributeSet
import android.view.LayoutInflater
import android.view.View
import android.widget.FrameLayout
+import com.mogo.commons.env.ProjectUtils
import com.mogo.eagle.core.data.app.AppConfigInfo
import com.mogo.eagle.core.data.deva.bindingcar.IPCUpgradeStateInfo
import com.mogo.eagle.core.data.deva.bizconfig.FuncBizConfig
@@ -144,7 +145,13 @@ internal class AutoPilotAndCheckView @JvmOverloads constructor(
ivDebugPanel.setOnClickListener {
clickListener?.showDebugPanelView()
}
-
+ //接管记录
+ if(ProjectUtils.isSaas()){
+ takeOverRecordLayout.visibility = View.VISIBLE
+ takeOverRecordLayout.setOnClickListener {
+ clickListener?.showTakeOverRecordView()
+ }
+ }
if (AppConfigInfo.isConnectAutopilot) {
CallerAutoPilotControlManager.getCarConfig()
}
@@ -300,6 +307,7 @@ internal class AutoPilotAndCheckView @JvmOverloads constructor(
fun showFeedbackView()
fun showSOPSettingView()
fun showBadCaseManagerView()
+ fun showTakeOverRecordView()
}
override fun onAutopilotCarConfig(carConfigResp: MessagePad.CarConfigResp) {
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_auto_pilot_check.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_auto_pilot_check.xml
index 30f8565c4c..3b92f5af1b 100644
--- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_auto_pilot_check.xml
+++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_auto_pilot_check.xml
@@ -159,6 +159,7 @@
android:layout_height="150dp"
android:layout_centerHorizontal="true"
android:background="@drawable/debug_icon_bag_manager"
+ android:contentDescription="@string/debug_bad_case"
/>
+
+
+
+
+
+
+
+
录包设置
运营面板
录包
+ 接管记录
录包管理
上报
车速设置
diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/devatools/IDevaToolsProvider.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/devatools/IDevaToolsProvider.kt
index 0a22f55751..12a3cc421f 100644
--- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/devatools/IDevaToolsProvider.kt
+++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/devatools/IDevaToolsProvider.kt
@@ -142,6 +142,11 @@ interface IDevaToolsProvider : IProvider {
*/
fun showBadCaseManagerView(context: Context)
+ /**
+ * 展示接管记录页面
+ */
+ fun showTakeOverRecordView(context: Context)
+
/**
* 启动调用SSM停服命令超时检测
*/
diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerAutoPilotControlManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerAutoPilotControlManager.kt
index 37eac823c6..0b9082de1c 100644
--- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerAutoPilotControlManager.kt
+++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerAutoPilotControlManager.kt
@@ -256,36 +256,26 @@ object CallerAutoPilotControlManager {
}
fun recordPackage(type: Int, id: Int) {
- if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) {
- providerApi?.recordPackage(type, id)
- }
+ providerApi?.recordPackage(type, id)
}
fun recordPackage(type: Int, id: Int, duration: Int) {
- if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) {
- providerApi?.recordPackage(type, id, duration)
- }
+ providerApi?.recordPackage(type, id, duration)
}
- fun recordPackage(type: Int, id: Int, duration: Int, bduration: Int) {
- if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) {
- providerApi?.recordPackage(type, id, duration, bduration)
- }
+ fun recordPackage(type: Int, id: Int, duration: Int, bduration: Int): Boolean{
+ return providerApi?.recordPackage(type, id, duration, bduration) == true
}
fun recordPackage(type: Int, id: Int, duration: Int, bduration: Int, topics: List) {
- if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) {
- providerApi?.recordPackage(type, id, duration, bduration, topics)
- }
+ providerApi?.recordPackage(type, id, duration, bduration, topics)
}
/**
* 停止录制bag包
*/
fun stopRecord(type: Int, id: Int) {
- if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) {
- providerApi?.stopRecord(type, id)
- }
+ providerApi?.stopRecord(type, id)
}
/**
diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/devatools/CallerDevaToolsManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/devatools/CallerDevaToolsManager.kt
index adfc58737c..52c2dd58a8 100644
--- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/devatools/CallerDevaToolsManager.kt
+++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/devatools/CallerDevaToolsManager.kt
@@ -192,6 +192,13 @@ object CallerDevaToolsManager {
devaToolsProviderApi?.showBadCaseManagerView(context)
}
+ /**
+ * 展示接管记录页面
+ */
+ fun showTakeOverRecordView(context: Context){
+ devaToolsProviderApi?.showTakeOverRecordView(context)
+ }
+
/**
* 启动调用SSM停服命令超时检测
*/