diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/BadCaseConfigView.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/BadCaseConfigView.kt index 23af1a9edf..21cc2a280a 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/BadCaseConfigView.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/BadCaseConfigView.kt @@ -1,35 +1,35 @@ - package com.zhjt.mogo_core_function_devatools.badcase.biz +package com.zhjt.mogo_core_function_devatools.badcase.biz import android.content.Context import android.graphics.Color import android.graphics.drawable.ColorDrawable import android.util.AttributeSet import android.view.LayoutInflater -import android.widget.RadioButton -import android.widget.RadioGroup import androidx.constraintlayout.widget.ConstraintLayout +import androidx.recyclerview.widget.GridLayoutManager +import com.mogo.eagle.core.data.badcase.RecordTypeEntity import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotRecordListener import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotManager import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotRecordListenerManager -import com.mogo.eagle.core.utilcode.util.SizeUtils 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.biz.adapter.RecordTemplateAdapter import com.zhjt.mogo_core_function_devatools.badcase.consts.BadCaseConfig import kotlinx.android.synthetic.main.layout_badcase_config.view.* import mogo.telematics.pad.MessagePad import java.lang.Exception - /** +/** * @author XuXinChao * @description BadCase上报信息配置页面 * @since: 2022/7/5 */ internal class BadCaseConfigView @JvmOverloads constructor( -context: Context, -attrs: AttributeSet? = null, -defStyleAttr: Int = 0 + context: Context, + attrs: AttributeSet? = null, + defStyleAttr: Int = 0 ) : ConstraintLayout(context, attrs, defStyleAttr), IMoGoAutopilotRecordListener { companion object { @@ -37,18 +37,21 @@ defStyleAttr: Int = 0 } private var clickListener: ClickListener? = null + private var recordTemplateAdapter: RecordTemplateAdapter? = null private var mIdentity = BadCaseConfig.identity private var mPreviousDuration = BadCaseConfig.previousDuration private var mBackDuration = BadCaseConfig.backDuration private var mType = 1 + private var recordTypesList = ArrayList() + private var caseTopicListDialog: CaseTopicListDialog? = null - init{ + init { LayoutInflater.from(context).inflate(R.layout.layout_badcase_config, this, true) background = ColorDrawable(Color.parseColor("#F0151D41")) initView() } - private fun initView(){ + private fun initView() { //关闭BadCase配置窗口 ivConfigClose.setOnClickListener { clickListener?.onClose() @@ -75,41 +78,42 @@ defStyleAttr: Int = 0 //保存配置按钮 tvConfigSave.setOnClickListener { //判断、保存录制时间信息 - val preTimeStr=etInitiativePreTime.text.toString() - val afterTimeStr=etInitiativeAfterTime.text.toString() + val preTimeStr = etInitiativePreTime.text.toString() + val afterTimeStr = etInitiativeAfterTime.text.toString() try { - if(preTimeStr.isEmpty()){ + if (preTimeStr.isEmpty()) { mPreviousDuration = BadCaseConfig.previousDuration - }else{ + } else { mPreviousDuration = preTimeStr.toInt() } - if(afterTimeStr.isEmpty()){ + if (afterTimeStr.isEmpty()) { mBackDuration = BadCaseConfig.backDuration - }else{ + } else { mBackDuration = afterTimeStr.toInt() } - if(mPreviousDuration<0 || mPreviousDuration>30){ + if (mPreviousDuration < 0 || mPreviousDuration > 30) { ToastUtils.showLong("前溯采集时长最长30S") return@setOnClickListener } - if(mBackDuration<0 || mBackDuration>300){ + if (mBackDuration < 0 || mBackDuration > 300) { ToastUtils.showLong("采集总时长最长300S") return@setOnClickListener } - if((mPreviousDuration+mBackDuration)<5){ + if ((mPreviousDuration + mBackDuration) < 5) { ToastUtils.showLong("采集总时长最短5S") return@setOnClickListener } - if((mPreviousDuration+mBackDuration)>300){ + if ((mPreviousDuration + mBackDuration) > 300) { ToastUtils.showLong("采集总时长最长300S") return@setOnClickListener } BadCaseConfig.previousDuration = mPreviousDuration BadCaseConfig.backDuration = mBackDuration - BadCaseConfig.totalDuration = BadCaseConfig.previousDuration + BadCaseConfig.backDuration - }catch (e: Exception){ + BadCaseConfig.totalDuration = + BadCaseConfig.previousDuration + BadCaseConfig.backDuration + } catch (e: Exception) { ToastUtils.showLong("输入时间格式不合法,请重新输入") etInitiativePreTime.text = null etInitiativeAfterTime.text = null @@ -126,14 +130,14 @@ defStyleAttr: Int = 0 } //现场恢复 - when(BadCaseConfig.identity){ - "安全员"->{ + when (BadCaseConfig.identity) { + "安全员" -> { rbSafetyOfficer.isChecked = true } - "QA、研发"->{ + "QA、研发" -> { rbDeveloper.isChecked = true } - "产品、运营、演示"->{ + "产品、运营、演示" -> { rbProduct.isChecked = true } } @@ -141,128 +145,67 @@ defStyleAttr: Int = 0 etInitiativePreTime.hint = "${BadCaseConfig.previousDuration}S" etInitiativeAfterTime.hint = "${BadCaseConfig.backDuration}S" -// val test1 = TestBean(1,"人工接管自动录制") -// val test2 = TestBean(2,"地图采集") -// val test3 = TestBean(3,"画龙问题排查") -// val test4 = TestBean(4,"误识别问题排查") -// val test5 = TestBean(5,"lidar+planning") -// val test6 = TestBean(6,"camera+planning") -// val test7 = TestBean(7,"bus lidar+planning") -// val test8 = TestBean(8,"bus camera+planning") -// val test99 = TestBean(99,"ai data") -// -// val list = ArrayList() -// list.add(test1) -// list.add(test2) -// list.add(test3) -// list.add(test4) -// list.add(test5) -// list.add(test6) -// list.add(test7) -// list.add(test8) -// list.add(test99) -// list.iterator().forEach { -// if(it.id!=99){ -// val radioButton = RadioButton(context) -// val lp = RadioGroup.LayoutParams( -// RadioGroup.LayoutParams.WRAP_CONTENT, -// RadioGroup.LayoutParams.WRAP_CONTENT -// ) -// //设置RadioButton边距 (int left, int top, int right, int bottom) -// lp.setMargins( -// SizeUtils.dp2px(0f), -// SizeUtils.dp2px(8f), -// SizeUtils.dp2px(10f), -// SizeUtils.dp2px(8f) -// ) -// //设置RadioButton背景 -// radioButton.setTextColor(Color.WHITE) -// -// radioButton.buttonDrawable = resources.getDrawable(R.drawable.badcase_radio_button_style) -// //设置文字距离四周的距离 -// radioButton.setPadding( -// SizeUtils.dp2px(12f), -// SizeUtils.dp2px(5f), -// SizeUtils.dp2px(10f), -// SizeUtils.dp2px(5f) -// ) -// radioButton.textSize = SizeUtils.sp2px(9f).toFloat() -// radioButton.id = it.id -// radioButton.isChecked = it.id == BadCaseConfig.type -// //设置文字 -// radioButton.text = it.src -// //将radioButton添加到radioGroup中 -// rgRecordConfig.addView(radioButton, lp) -// rgRecordConfig.setOnCheckedChangeListener { _, checkedId -> -// mType = checkedId -// } -// } -// } + recordTemplateAdapter = RecordTemplateAdapter() + recordTemplateAdapter?.setListener(object :RecordTemplateAdapter.ClickTemplateListener{ + override fun onClick(recordTypeEntity: RecordTypeEntity) { + //弹窗Topic清单列表 + showCaseTopicListDialog(recordTypeEntity) + } + + }) + val gridLayoutManager = GridLayoutManager(context,2) + rvTemplate.layoutManager = gridLayoutManager + rvTemplate.adapter = recordTemplateAdapter } - fun setClickListener(clickListener: ClickListener) { - this.clickListener = clickListener - } + fun setClickListener(clickListener: ClickListener) { + this.clickListener = clickListener + } - override fun onAutopilotRecordConfig(config: MessagePad.RecordDataConfig) { - super.onAutopilotRecordConfig(config) - ThreadUtils.runOnUiThread{ - config.recordTypesList.iterator().forEach { - if(it.id!=99){ - val radioButton = RadioButton(context) - val lp = RadioGroup.LayoutParams( - RadioGroup.LayoutParams.WRAP_CONTENT, - RadioGroup.LayoutParams.WRAP_CONTENT - ) - //设置RadioButton边距 (int left, int top, int right, int bottom) - lp.setMargins( - SizeUtils.dp2px(0f), - SizeUtils.dp2px(8f), - SizeUtils.dp2px(10f), - SizeUtils.dp2px(8f) - ) - //设置RadioButton背景 - radioButton.setTextColor(Color.WHITE) + private fun showCaseTopicListDialog(recordTypeEntity: RecordTypeEntity){ + if(caseTopicListDialog == null){ + caseTopicListDialog = CaseTopicListDialog(context) + } + caseTopicListDialog?.setData(recordTypeEntity) + caseTopicListDialog?.show() + } - radioButton.buttonDrawable = resources.getDrawable(R.drawable.badcase_radio_button_style) - //设置文字距离四周的距离 - radioButton.setPadding( - SizeUtils.dp2px(12f), - SizeUtils.dp2px(5f), - SizeUtils.dp2px(10f), - SizeUtils.dp2px(5f) - ) - radioButton.textSize = SizeUtils.sp2px(9f).toFloat() - radioButton.id = it.id - radioButton.isChecked = it.id == BadCaseConfig.type - //设置文字 - radioButton.text = it.desc - //将radioButton添加到radioGroup中 - rgRecordConfig.addView(radioButton, lp) - rgRecordConfig.setOnCheckedChangeListener { _, checkedId -> - mType = checkedId - } - } - - } - } - } + override fun onAutopilotRecordConfig(config: MessagePad.RecordDataConfig) { + super.onAutopilotRecordConfig(config) + ThreadUtils.runOnUiThread { + config.recordTypesList.iterator().forEach { + if (it.id != 99){ + val topicList = ArrayList() + it.topicsList.iterator().forEach { + topicList.add(it) + } + recordTypesList.add(RecordTypeEntity(it.id,it.desc,topicList)) + } + } + if(recordTypesList.size>1){ + recordTemplateAdapter?.setData(recordTypesList) + recordTemplateAdapter?.notifyDataSetChanged() + } + } + } - override fun onAttachedToWindow() { - super.onAttachedToWindow() - CallerAutopilotRecordListenerManager.addListener(TAG, this) - //获取数据采集录制模式配置列表 TODO -// CallerAutoPilotManager.getBadCaseConfig() - } + override fun onAttachedToWindow() { + super.onAttachedToWindow() + CallerAutopilotRecordListenerManager.addListener(TAG, this) + //获取数据采集录制模式配置列表 + CallerAutoPilotManager.getBadCaseConfig(0, 0, listOf()) + recordTypesList.add(RecordTypeEntity(0,"自定义", arrayListOf())) + } - override fun onDetachedFromWindow() { - super.onDetachedFromWindow() - CallerAutopilotRecordListenerManager.removeListener(TAG) - } + override fun onDetachedFromWindow() { + super.onDetachedFromWindow() + CallerAutopilotRecordListenerManager.removeListener(TAG) + recordTypesList.clear() + } - interface ClickListener{ - fun onClose() - } + 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/badcase/biz/CaseListDialog.java b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/CaseListDialog.java new file mode 100644 index 0000000000..f0e6f70ad7 --- /dev/null +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/CaseListDialog.java @@ -0,0 +1,63 @@ +package com.zhjt.mogo_core_function_devatools.badcase.biz; + +import android.app.Dialog; +import android.content.Context; +import android.os.Bundle; +import android.view.View; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.GridLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.zhjt.mogo_core_function_devatools.R; +import com.zhjt.mogo_core_function_devatools.badcase.biz.adapter.CaseListAdapter; + +import java.util.ArrayList; + +/** + * @author XuXinChao + * @description BadCase清单选择对话框 + * @since: 2022/10/19 + */ +public class CaseListDialog extends Dialog { + + private TextView tvCancel; + private RecyclerView rvCaseList; + private CaseListAdapter caseListAdapter; + + public CaseListDialog(@NonNull Context context) { + super(context, R.style.bad_case_dialog); + } + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.dialog_case_list); + setCanceledOnTouchOutside(false); + init(); + initEvent(); + } + + private void init() { + tvCancel = findViewById(R.id.tvCancel); + rvCaseList = findViewById(R.id.rvCaseList); + caseListAdapter = new CaseListAdapter(); + GridLayoutManager gridLayoutManager = new GridLayoutManager(getContext(),2); + gridLayoutManager.setOrientation(RecyclerView.VERTICAL); + rvCaseList.setLayoutManager(gridLayoutManager); + rvCaseList.setAdapter(caseListAdapter); + ArrayList list = new ArrayList<>(); + list.add("红绿灯检测错误"); + list.add("接管默认录制"); + list.add("行程冲突"); + list.add("自定义A"); + caseListAdapter.setData(list); + caseListAdapter.notifyDataSetChanged(); + } + + private void initEvent() { + tvCancel.setOnClickListener(v -> dismiss()); + + } +} diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/CaseTopicListDialog.java b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/CaseTopicListDialog.java new file mode 100644 index 0000000000..d8bef0bbcc --- /dev/null +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/CaseTopicListDialog.java @@ -0,0 +1,147 @@ +package com.zhjt.mogo_core_function_devatools.badcase.biz; + +import android.app.Dialog; +import android.content.Context; +import android.os.Bundle; +import android.text.Editable; +import android.text.TextWatcher; +import android.util.Log; +import android.view.KeyEvent; +import android.view.View; +import android.widget.EditText; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.mogo.eagle.core.data.badcase.RecordTypeEntity; +import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotRecordListener; +import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotManager; +import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotRecordListenerManager; +import com.mogo.eagle.core.utilcode.util.ThreadUtils; +import com.zhjt.mogo_core_function_devatools.R; +import com.zhjt.mogo_core_function_devatools.badcase.biz.adapter.TopicListAdapter; + +import java.util.ArrayList; +import java.util.List; + +import mogo.telematics.pad.MessagePad; +import record_cache.RecordPanelOuterClass; + +/** + * @author XuXinChao + * @description BadCase Topic列表选择对话框 + * @since: 2022/10/19 + */ +public class CaseTopicListDialog extends Dialog implements IMoGoAutopilotRecordListener { + + private static final String TAG = "CaseTopicListDialog"; + private TextView tvCaseName; + private TextView tvSave; + private TextView tvCancel; + private ImageView ivSearch; + private EditText etSearch; + private RecyclerView rvTopicList; + private TopicListAdapter topicListAdapter; + private String searchStr; + private List allTopicList = new ArrayList<>(); + + + public CaseTopicListDialog(@NonNull Context context) { + super(context, R.style.bad_case_dialog); + } + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.dialog_case_topic_list); + setCanceledOnTouchOutside(false); + CallerAutopilotRecordListenerManager.INSTANCE.addListener(TAG, this); + init(); + initEvent(); + } + + @Override + public void onDetachedFromWindow() { + super.onDetachedFromWindow(); + CallerAutopilotRecordListenerManager.INSTANCE.removeListener(TAG); + } + + public void setData(RecordTypeEntity recordTypeEntity){ + tvCaseName.setText(recordTypeEntity.getDesc()); + //获取所有Topic + CallerAutoPilotManager.INSTANCE.getBadCaseConfig(1, 0, new ArrayList<>()); + if(recordTypeEntity.getTopicsList().size()>0){ + topicListAdapter.setData(recordTypeEntity.getTopicsList()); + topicListAdapter.notifyDataSetChanged(); + } + } + + private void init() { + tvCaseName = findViewById(R.id.tvCaseName); + tvSave = findViewById(R.id.tvSave); + tvCancel = findViewById(R.id.tvCancel); + ivSearch = findViewById(R.id.ivSearch); + etSearch = findViewById(R.id.etSearch); + rvTopicList = findViewById(R.id.rvTopicList); + LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getContext()); + linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL); + rvTopicList.setLayoutManager(linearLayoutManager); + topicListAdapter = new TopicListAdapter(); + rvTopicList.setAdapter(topicListAdapter); + } + + private void initEvent() { + etSearch.addTextChangedListener(new TextWatcher() { + @Override + public void beforeTextChanged(CharSequence s, int start, int count, int after) { + + } + + @Override + public void onTextChanged(CharSequence s, int start, int before, int count) { + + } + + @Override + public void afterTextChanged(Editable s) { + searchStr = s.toString(); + if(searchStr!=null && searchStr.length()>0){ + ivSearch.setImageDrawable(getContext().getDrawable(R.drawable.icon_bad_case_delect)); + } else { + ivSearch.setImageDrawable(getContext().getDrawable(R.drawable.icon_bad_case_search)); + } + //TODO + } + }); + + ivSearch.setOnClickListener(v -> { + if(searchStr!=null && searchStr.length()>0){ + etSearch.setText(""); + ivSearch.setImageDrawable(getContext().getDrawable(R.drawable.icon_bad_case_search)); + } + }); + + tvCancel.setOnClickListener(v -> { + dismiss(); + }); + + } + + @Override + public void onAutopilotRecordConfig(MessagePad.RecordDataConfig config) { + ThreadUtils.runOnUiThread(() -> { + if(config.getAllTopicsCount()>0){ + for(int index=0;index() { + + private var data:List? = null + + fun setData( data: List?){ + this.data = data + } + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): CaseListHolder { + val view = LayoutInflater.from(parent.context) + .inflate(R.layout.item_case_list, parent, false) + return CaseListHolder(view) + } + + override fun onBindViewHolder(holder: CaseListHolder, position: Int) { + data?.let { + holder.caseName.text = it[position] + holder.caseName.setOnClickListener { + + } + } + } + + override fun getItemCount() = data?.size ?: 0 + + class CaseListHolder(itemView: View) : RecyclerView.ViewHolder(itemView){ + var caseName: TextView = itemView.findViewById(R.id.caseName) + } +} \ 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/adapter/RecordTemplateAdapter.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/adapter/RecordTemplateAdapter.kt new file mode 100644 index 0000000000..b13093d508 --- /dev/null +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/adapter/RecordTemplateAdapter.kt @@ -0,0 +1,55 @@ +package com.zhjt.mogo_core_function_devatools.badcase.biz.adapter + +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.mogo.eagle.core.data.badcase.RecordTypeEntity +import com.zhjt.mogo_core_function_devatools.R +import com.zhjt.mogo_core_function_devatools.badcase.biz.BadCaseConfigView + +/** + * @author XuXinChao + * @description 录制模板清单列表适配器 + * @since: 2022/10/19 + */ +class RecordTemplateAdapter : RecyclerView.Adapter(){ + + private var data:List? = null + private var clickTemplateListener: ClickTemplateListener? = null + + fun setData( data: List?){ + this.data = data + } + + fun setListener(listener: ClickTemplateListener){ + clickTemplateListener = listener + } + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecordTemplateHolder { + val view = LayoutInflater.from(parent.context) + .inflate(R.layout.item_record_template, parent, false) + return RecordTemplateHolder(view) + } + + override fun onBindViewHolder(holder: RecordTemplateHolder, position: Int) { + data?.let {recordTypeEntity-> + holder.caseName.text = recordTypeEntity[position].desc + holder.caseName.setOnClickListener { + clickTemplateListener?.onClick(recordTypeEntity[position]) + } + } + } + + override fun getItemCount() = data?.size ?: 0 + + class RecordTemplateHolder(itemView: View): RecyclerView.ViewHolder(itemView){ + var caseName: TextView = itemView.findViewById(R.id.caseName) + } + + interface ClickTemplateListener{ + fun onClick(recordTypeEntity: RecordTypeEntity) + } + +} \ 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/adapter/TopicListAdapter.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/adapter/TopicListAdapter.kt new file mode 100644 index 0000000000..a804a13897 --- /dev/null +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/adapter/TopicListAdapter.kt @@ -0,0 +1,41 @@ +package com.zhjt.mogo_core_function_devatools.badcase.biz.adapter + +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.CheckBox +import androidx.recyclerview.widget.RecyclerView +import com.zhjt.mogo_core_function_devatools.R + +/** + * @author XuXinChao + * @description Topic列表适配器 + * @since: 2022/10/19 + */ +class TopicListAdapter: RecyclerView.Adapter() { + + private var data:List? = null + + fun setData( data: List?){ + this.data = data + } + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): TopicListHolder { + val view = LayoutInflater.from(parent.context) + .inflate(R.layout.item_topic_list, parent, false) + return TopicListHolder(view) + } + + override fun onBindViewHolder(holder: TopicListHolder, position: Int) { + data?.let{ + holder.topic_check_box.text = it[position] + } + } + + override fun getItemCount() = data?.size ?: 0 + + class TopicListHolder(itemView: View) : RecyclerView.ViewHolder(itemView){ + var topic_check_box: CheckBox = itemView.findViewById(R.id.topic_check_box); + } + +} \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/drawable-xxhdpi/icon_bad_case_delect.png b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable-xxhdpi/icon_bad_case_delect.png new file mode 100644 index 0000000000..29f9d7c92c Binary files /dev/null and b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable-xxhdpi/icon_bad_case_delect.png differ diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/drawable-xxhdpi/icon_bad_case_search.png b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable-xxhdpi/icon_bad_case_search.png new file mode 100644 index 0000000000..ec19975a43 Binary files /dev/null and b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable-xxhdpi/icon_bad_case_search.png differ diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/bad_case_dialog_bg.xml b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/bad_case_dialog_bg.xml new file mode 100644 index 0000000000..4abbac39af --- /dev/null +++ b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/bad_case_dialog_bg.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/bad_case_search_bg.xml b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/bad_case_search_bg.xml new file mode 100644 index 0000000000..8cbcb742a0 --- /dev/null +++ b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/bad_case_search_bg.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/case_list_normal.xml b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/case_list_normal.xml new file mode 100644 index 0000000000..7e45445299 --- /dev/null +++ b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/case_list_normal.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/case_list_select.xml b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/case_list_select.xml new file mode 100644 index 0000000000..0b10444b5c --- /dev/null +++ b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/case_list_select.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/case_list_selector.xml b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/case_list_selector.xml new file mode 100644 index 0000000000..71a6fe9d65 --- /dev/null +++ b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/case_list_selector.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/rv_scroll_bar_thumb.xml b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/rv_scroll_bar_thumb.xml new file mode 100644 index 0000000000..4131aa2ea6 --- /dev/null +++ b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/rv_scroll_bar_thumb.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/rv_scroll_bar_track.xml b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/rv_scroll_bar_track.xml new file mode 100644 index 0000000000..3636f619b4 --- /dev/null +++ b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/rv_scroll_bar_track.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/template_list_bg.xml b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/template_list_bg.xml new file mode 100644 index 0000000000..7aa57b55af --- /dev/null +++ b/core/function-impl/mogo-core-function-devatools/src/main/res/drawable/template_list_bg.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/layout/dialog_case_list.xml b/core/function-impl/mogo-core-function-devatools/src/main/res/layout/dialog_case_list.xml new file mode 100644 index 0000000000..e9b8bf8668 --- /dev/null +++ b/core/function-impl/mogo-core-function-devatools/src/main/res/layout/dialog_case_list.xml @@ -0,0 +1,61 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/layout/dialog_case_topic_list.xml b/core/function-impl/mogo-core-function-devatools/src/main/res/layout/dialog_case_topic_list.xml new file mode 100644 index 0000000000..d1ef0d14ce --- /dev/null +++ b/core/function-impl/mogo-core-function-devatools/src/main/res/layout/dialog_case_topic_list.xml @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/layout/item_case_list.xml b/core/function-impl/mogo-core-function-devatools/src/main/res/layout/item_case_list.xml new file mode 100644 index 0000000000..69ce03fc84 --- /dev/null +++ b/core/function-impl/mogo-core-function-devatools/src/main/res/layout/item_case_list.xml @@ -0,0 +1,15 @@ + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/layout/item_record_template.xml b/core/function-impl/mogo-core-function-devatools/src/main/res/layout/item_record_template.xml new file mode 100644 index 0000000000..67a58891b6 --- /dev/null +++ b/core/function-impl/mogo-core-function-devatools/src/main/res/layout/item_record_template.xml @@ -0,0 +1,17 @@ + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/layout/item_topic_list.xml b/core/function-impl/mogo-core-function-devatools/src/main/res/layout/item_topic_list.xml new file mode 100644 index 0000000000..67737cea33 --- /dev/null +++ b/core/function-impl/mogo-core-function-devatools/src/main/res/layout/item_topic_list.xml @@ -0,0 +1,14 @@ + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-devatools/src/main/res/layout/layout_badcase_config.xml b/core/function-impl/mogo-core-function-devatools/src/main/res/layout/layout_badcase_config.xml index cb1134f4fe..f317a80347 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/res/layout/layout_badcase_config.xml +++ b/core/function-impl/mogo-core-function-devatools/src/main/res/layout/layout_badcase_config.xml @@ -308,6 +308,17 @@ android:layout_marginStart="@dimen/dp_30" /> + + + + + + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/SOPSettingView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/SOPSettingView.kt index ae03721b01..d405d83176 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/SOPSettingView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/SOPSettingView.kt @@ -43,6 +43,10 @@ class SOPSettingView @JvmOverloads constructor( } + if(AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode)){ + tbMarkingObstacles.visibility = View.GONE + } + //引导线动态效果 tbRouteDynamicEffect.isChecked = AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode) && !AppIdentityModeUtils.isBus( @@ -154,6 +158,14 @@ class SOPSettingView @JvmOverloads constructor( } } + if(AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode)){ + tvSpeedThresholdTitle.visibility = View.GONE + ivSpeedReduce.visibility = View.GONE + tvSpeed.visibility = View.GONE + ivSpeedAdd.visibility = View.GONE + btnSpeedSet.visibility = View.GONE + } + } } \ No newline at end of file diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/badcase/RecordTypeEntity.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/badcase/RecordTypeEntity.kt new file mode 100644 index 0000000000..476972c1e4 --- /dev/null +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/badcase/RecordTypeEntity.kt @@ -0,0 +1,8 @@ +package com.mogo.eagle.core.data.badcase + +/** + * @author XuXinChao + * @description BadCase录制模板实体类 + * @since: 2022/10/25 + */ +data class RecordTypeEntity(var id: Int,var desc: String,var topicsList:ArrayList) \ No newline at end of file diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerAutoPilotManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerAutoPilotManager.kt index 044b4931c1..8521f85b31 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerAutoPilotManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerAutoPilotManager.kt @@ -259,10 +259,12 @@ object CallerAutoPilotManager { * @param recordType 0:不需要修改内置类型的topic组合, 1:需要修改内置类型的topic组合 * @param topicsNeedToCache */ - fun getBadCaseConfig(reqType: Int,recordType: Int,topicsNeedToCache: List){ + fun getBadCaseConfig(reqType: Int,recordType: Int,topicsNeedToCache: List): Boolean?{ // 司机屏才能查询数据采集的配置 if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) { - providerApi?.getBadCaseConfig(reqType, recordType, topicsNeedToCache) + return providerApi?.getBadCaseConfig(reqType, recordType, topicsNeedToCache) + }else{ + return false } }