From 9782bd0045bf0fc128933701c6b7e6a65f101659 Mon Sep 17 00:00:00 2001 From: xuxinchao Date: Thu, 7 Dec 2023 20:33:35 +0800 Subject: [PATCH] =?UTF-8?q?[6.2.4]=E5=A2=9E=E5=8A=A0=E9=87=87=E9=9B=86?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B=E3=80=81=E9=95=BF=E4=B9=85=E4=BF=9D=E5=AD=98?= =?UTF-8?q?=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../badcase/BadCaseManager.kt | 5 +- .../badcase/biz/AIDataCollectWindow.kt | 4 +- .../badcase/biz/BadCaseManagerView.kt | 4 ++ .../badcase/biz/InitiativeBadCaseWindow.kt | 5 +- .../biz/adapter/BagManagerListAdapter.kt | 25 +++++++-- .../badcase/consts/BadCaseConfig.kt | 52 ++++++++++++++++--- 6 files changed, 83 insertions(+), 12 deletions(-) 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 0651537b66..4c3ffe9e2e 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 @@ -272,8 +272,11 @@ internal object BadCaseManager : LifecycleEventObserver, IMoGoAutopilotRecordLis ) } bag录制失败" ) + //获取录包失败集合 + val recordFail = BadCaseConfig.getRecordFailSet() //录包失败时,保存录包失败状态 - BadCaseConfig.bagRecordFailList.add(recordPanel.key) + recordFail.add(recordPanel.key.toString()) + BadCaseConfig.setRecordFailSet(recordFail) } return } diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/AIDataCollectWindow.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/AIDataCollectWindow.kt index 322f0f9d63..11891d2e42 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/AIDataCollectWindow.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/AIDataCollectWindow.kt @@ -201,8 +201,10 @@ class AIDataCollectWindow constructor(activity: Activity) : View.OnTouchListener //开始录制 if(recordPanel.stat == 300){ BadCaseConfig.recordKeyList.add(recordPanel.key) + val aiDataSet = BadCaseConfig.getAiDataSet() //保存录包状态 - BadCaseConfig.bagResourceList.add(recordPanel.key) + aiDataSet.add(recordPanel.key.toString()) + BadCaseConfig.setAiDataSet(aiDataSet) } if (recordFileName == null) { recordFileName = recordPanel.filename diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/BadCaseManagerView.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/BadCaseManagerView.kt index de4836a97d..ae9c652dfa 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/BadCaseManagerView.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/BadCaseManagerView.kt @@ -27,6 +27,7 @@ import com.mogo.eagle.core.utilcode.util.UiThreadHandler import com.zhidao.loglib.download.DownloadManager import com.zhjt.mogo_core_function_devatools.R import com.zhjt.mogo_core_function_devatools.badcase.biz.adapter.BagManagerListAdapter +import com.zhjt.mogo_core_function_devatools.badcase.consts.BadCaseConfig import com.zhjt.mogo_core_function_devatools.badcase.consts.BadCaseConfig.bagManagerList import com.zhjt.mogo_core_function_devatools.badcase.record.Audition import kotlinx.android.synthetic.main.layout_badcase_manager.view.* @@ -237,6 +238,9 @@ class BadCaseManagerView @JvmOverloads constructor( val linearLayoutManager = LinearLayoutManager(context) rvBagList.layoutManager = linearLayoutManager rvBagList.adapter = bagManagerListAdapter + bagManagerListAdapter?.setRecordSet(BadCaseConfig.getInitiativeRecordSet(), + BadCaseConfig.getAiDataSet(),BadCaseConfig.getRecordFailSet()) + //音频文件播放 // Audition.getInstance().playOrStop("/mnt/sdcard/mogo/test.wav") 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 e803341c6e..7371773efb 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 @@ -574,8 +574,11 @@ class InitiativeBadCaseWindow constructor(activity: Activity) : View.OnTouchList //开始录制 if(recordPanel.stat == 300){ BadCaseConfig.recordKeyList.add(recordPanel.key) + //获取当前主动录包集合 + val recordSet = BadCaseConfig.getInitiativeRecordSet() //保存录包状态 - BadCaseConfig.bagResourceList.add(recordPanel.key) + recordSet.add(recordPanel.key.toString()) + BadCaseConfig.setInitiativeRecordSet(recordSet) //开启高精地图截图 CallerMapUIServiceManager.getMapUIController()?.getMapScreenShot() } diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/adapter/BagManagerListAdapter.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/adapter/BagManagerListAdapter.kt index 72d4174393..8c8d421184 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/adapter/BagManagerListAdapter.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/adapter/BagManagerListAdapter.kt @@ -32,11 +32,24 @@ class BagManagerListAdapter: RecyclerView.Adapter() { private var bagClickListener: BagClickListener ?= null private val format = DecimalFormat("0.00") + private var initiativeSet: HashSet ?= null //录包来源为主动录包集合 + private var aiDataSet: HashSet ?= null //录包来源为AI数据采集集合 + private var recordFailSet: HashSet ?= null //录包失败集合 + fun setData(data: List?){ this.data = data notifyDataSetChanged() } + /** + * 设置录包缓存信息 + */ + fun setRecordSet(initiative: HashSet,aiData: HashSet,recordFail: HashSet){ + initiativeSet = initiative + aiDataSet = aiData + recordFailSet = recordFail + } + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder { return if(viewType == 1){ val view = LayoutInflater.from(parent.context) @@ -98,7 +111,7 @@ class BagManagerListAdapter: RecyclerView.Adapter() { bagInfoEntity.description?.let { des-> - if(BadCaseConfig.bagRecordFailList.contains(bagInfoEntity.key)){ + if(!recordFailSet.isNullOrEmpty() && recordFailSet!!.contains(bagInfoEntity.key.toString())){ //如果在录包失败列表中找到该Bag包,则该包为录包失败状态 holder.tvBagReportStatus.text = "录包失败" holder.tvBagReportStatus.setBackgroundResource(R.drawable.bag_reported_button_bg) @@ -142,11 +155,17 @@ class BagManagerListAdapter: RecyclerView.Adapter() { } } - //录包来源:自动 or 人工 - if(BadCaseConfig.bagResourceList.contains(bagInfoEntity.key)){ + //录包来源:自动 or 人工 or 采集 + if(!initiativeSet.isNullOrEmpty() && initiativeSet!!.contains(bagInfoEntity.key.toString())){ //在该列表中找到Bag包的Key则代表该Bag为人工录包 holder.tvBagResource.text = "人工" holder.tvBagResource.setBackgroundResource(R.drawable.bag_artificial_button_bg) + }else if(!aiDataSet.isNullOrEmpty() && aiDataSet!!.contains(bagInfoEntity.key.toString())){ + //AI数据采集 + holder.tvBagResource.text = "采集" + holder.tvBagResource.setBackgroundResource(R.drawable.bag_artificial_button_bg) + //AI数据采集不显示截图播放按钮 + holder.ivMapScreen.visibility = View.INVISIBLE }else{ //自动录包 holder.tvBagResource.text = "自动" diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/consts/BadCaseConfig.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/consts/BadCaseConfig.kt index 26f9fc5f96..ec26cca0c7 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/consts/BadCaseConfig.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/consts/BadCaseConfig.kt @@ -3,6 +3,7 @@ package com.zhjt.mogo_core_function_devatools.badcase.consts import com.mogo.eagle.core.data.deva.badcase.BagInfoEntity import com.mogo.eagle.core.data.deva.report.ReportEntity import com.mogo.eagle.core.data.msgbox.FMInfoMsg +import com.mogo.eagle.core.utilcode.util.SPUtils /** * @author XuXinChao @@ -56,11 +57,50 @@ object BadCaseConfig { //Bag包管理列表 @JvmField var bagManagerList: ArrayList = ArrayList() - //Bag包来源,将主动录包的Key保存在该列表中,不在该列表中的在录包管理页面的Bag包视为被动录包 - @JvmField - var bagResourceList: ArrayList = ArrayList() - //Bag包录包失败状态列表,当Bag录制失败时保存在该列表,当Bag包在该列表中不存在时即视为录包成功 - @JvmField - var bagRecordFailList: ArrayList = ArrayList() + private const val resourceInitiative = "RESOURCE_INITIATIVE" //录包来源为主动录包 + private const val resourceAiData = "RESOURCE_AI_DATA" //录包来源为AI数据采集 + private const val recordFail = "RECORD_FAIL" //录包失败 + + /** + * 获取主动录包集合 + */ + fun getInitiativeRecordSet(): HashSet{ + return SPUtils.getInstance().getStringSet(resourceInitiative,HashSet()) as HashSet + } + + /** + * 保存主动录包集合 + */ + fun setInitiativeRecordSet(initiativeSet: Set){ + SPUtils.getInstance().put(resourceInitiative,initiativeSet) + } + + /** + * 获取AI数据采集集合 + */ + fun getAiDataSet(): HashSet{ + return SPUtils.getInstance().getStringSet(resourceAiData,HashSet()) as HashSet + } + + /** + * 保存AI数据采集集合 + */ + fun setAiDataSet(aiDataSet: Set){ + SPUtils.getInstance().put(resourceAiData,aiDataSet) + } + + /** + * 获取录包失败集合 + */ + fun getRecordFailSet(): HashSet{ + return SPUtils.getInstance().getStringSet(recordFail,HashSet()) as HashSet + } + + /** + * 保存录包失败集合 + */ + fun setRecordFailSet(recordFailSet: Set){ + SPUtils.getInstance().put(recordFail,recordFailSet) + } } \ No newline at end of file