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停服命令超时检测 */