[6.2.4]增加采集类型、长久保存状态

This commit is contained in:
xuxinchao
2023-12-07 20:33:35 +08:00
parent 0c6b9229df
commit 9782bd0045
6 changed files with 83 additions and 12 deletions

View File

@@ -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
}

View File

@@ -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

View File

@@ -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")

View File

@@ -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()
}

View File

@@ -32,11 +32,24 @@ class BagManagerListAdapter: RecyclerView.Adapter<RecyclerView.ViewHolder>() {
private var bagClickListener: BagClickListener ?= null
private val format = DecimalFormat("0.00")
private var initiativeSet: HashSet<String> ?= null //录包来源为主动录包集合
private var aiDataSet: HashSet<String> ?= null //录包来源为AI数据采集集合
private var recordFailSet: HashSet<String> ?= null //录包失败集合
fun setData(data: List<BagInfoEntity>?){
this.data = data
notifyDataSetChanged()
}
/**
* 设置录包缓存信息
*/
fun setRecordSet(initiative: HashSet<String>,aiData: HashSet<String>,recordFail: HashSet<String>){
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<RecyclerView.ViewHolder>() {
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<RecyclerView.ViewHolder>() {
}
}
//录包来源:自动 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 = "自动"

View File

@@ -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<BagInfoEntity> = ArrayList()
//Bag包来源将主动录包的Key保存在该列表中不在该列表中的在录包管理页面的Bag包视为被动录包
@JvmField
var bagResourceList: ArrayList<Long> = ArrayList()
//Bag包录包失败状态列表当Bag录制失败时保存在该列表当Bag包在该列表中不存在时即视为录包成功
@JvmField
var bagRecordFailList: ArrayList<Long> = ArrayList()
private const val resourceInitiative = "RESOURCE_INITIATIVE" //录包来源为主动录包
private const val resourceAiData = "RESOURCE_AI_DATA" //录包来源为AI数据采集
private const val recordFail = "RECORD_FAIL" //录包失败
/**
* 获取主动录包集合
*/
fun getInitiativeRecordSet(): HashSet<String>{
return SPUtils.getInstance().getStringSet(resourceInitiative,HashSet<String>()) as HashSet<String>
}
/**
* 保存主动录包集合
*/
fun setInitiativeRecordSet(initiativeSet: Set<String>){
SPUtils.getInstance().put(resourceInitiative,initiativeSet)
}
/**
* 获取AI数据采集集合
*/
fun getAiDataSet(): HashSet<String>{
return SPUtils.getInstance().getStringSet(resourceAiData,HashSet<String>()) as HashSet<String>
}
/**
* 保存AI数据采集集合
*/
fun setAiDataSet(aiDataSet: Set<String>){
SPUtils.getInstance().put(resourceAiData,aiDataSet)
}
/**
* 获取录包失败集合
*/
fun getRecordFailSet(): HashSet<String>{
return SPUtils.getInstance().getStringSet(recordFail,HashSet<String>()) as HashSet<String>
}
/**
* 保存录包失败集合
*/
fun setRecordFailSet(recordFailSet: Set<String>){
SPUtils.getInstance().put(recordFail,recordFailSet)
}
}