[6.2.4]魔方触发主动录包
This commit is contained in:
@@ -288,6 +288,13 @@ class DevaToolsProvider : IDevaToolsProvider {
|
||||
BadCaseManager.onReceiveBadCaseRecord(msgBoxBean, activity, countdown)
|
||||
}
|
||||
|
||||
/**
|
||||
* 魔方开启主动录包
|
||||
*/
|
||||
override fun startRecordByMoFang() {
|
||||
BadCaseManager.startRecordByMoFang()
|
||||
}
|
||||
|
||||
override fun showFeedbackWindow(ctx: Context) {
|
||||
BadCaseManager.showBadCaseConfigWindow(ctx)
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@ import android.app.Activity
|
||||
import android.content.Context
|
||||
import android.view.View
|
||||
import android.view.WindowManager
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.fragment.app.FragmentActivity
|
||||
import androidx.lifecycle.Lifecycle.Event
|
||||
import androidx.lifecycle.LifecycleEventObserver
|
||||
@@ -12,10 +13,12 @@ import androidx.lifecycle.LifecycleOwner
|
||||
import com.mogo.cloud.passport.MoGoAiCloudClientConfig
|
||||
import com.mogo.eagle.core.data.app.AppConfigInfo
|
||||
import com.mogo.eagle.core.data.config.FunctionBuildConfig
|
||||
import com.mogo.eagle.core.data.deva.badcase.RecordCaseEntity
|
||||
import com.mogo.eagle.core.data.msgbox.MsgBoxBean
|
||||
import com.mogo.eagle.core.data.msgbox.MsgBoxType
|
||||
import com.mogo.eagle.core.data.msgbox.RecordBagMsg
|
||||
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotRecordListener
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotRecordListenerManager
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationWGS84ListenerManager
|
||||
import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxManager
|
||||
@@ -30,6 +33,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.ext.enqueuePop
|
||||
import me.jessyan.autosize.utils.AutoSizeUtils
|
||||
import mogo.telematics.pad.MessagePad
|
||||
import record_cache.RecordPanelOuterClass
|
||||
|
||||
internal object BadCaseManager : LifecycleEventObserver, IMoGoAutopilotRecordListener {
|
||||
@@ -41,11 +45,53 @@ internal object BadCaseManager : LifecycleEventObserver, IMoGoAutopilotRecordLis
|
||||
@Volatile
|
||||
private var record: AutoPilotRecord? = null
|
||||
|
||||
//是否处理录包配置回调数据
|
||||
private var receiveRecordConfig: Boolean = false
|
||||
|
||||
fun init(context: Context) {
|
||||
CallerAutopilotRecordListenerManager.addListener(TAG, this)
|
||||
SpeechUtils.init(context)
|
||||
}
|
||||
|
||||
/**
|
||||
* 魔方开启主动录包
|
||||
*/
|
||||
fun startRecordByMoFang(){
|
||||
if (NetworkUtils.isConnected()){
|
||||
if (BadCaseConfig.dockerVersion != null){
|
||||
val activity = AppStateManager.currentActivity()
|
||||
if (activity !is AppCompatActivity) {
|
||||
return
|
||||
}
|
||||
//兼容老MAP版本
|
||||
if (BadCaseConfig.dockerVersion!!.contains("2.3.0")
|
||||
|| BadCaseConfig.dockerVersion!!.contains("2.4.0")
|
||||
|| BadCaseConfig.dockerVersion!!.contains("2.5.0")
|
||||
|| BadCaseConfig.dockerVersion!!.contains("2.6.0")
|
||||
|| BadCaseConfig.dockerVersion!!.contains("2.8.0")
|
||||
){
|
||||
val initiativeBadCaseWindow = InitiativeBadCaseWindow(activity)
|
||||
initiativeBadCaseWindow.setClickListener(object :
|
||||
InitiativeBadCaseWindow.ClickListener {
|
||||
override fun closeWindow() {
|
||||
initiativeBadCaseWindow.hideFloatWindow()
|
||||
}
|
||||
|
||||
})
|
||||
initiativeBadCaseWindow.showFloatWindow(null)
|
||||
}else{
|
||||
receiveRecordConfig = true
|
||||
//获取数据采集录制模式配置列表
|
||||
CallerAutoPilotControlManager.getBadCaseConfig(0, 0, ArrayList())
|
||||
}
|
||||
}else {
|
||||
ToastUtils.showShort("工控机连接状态异常")
|
||||
}
|
||||
}else {
|
||||
ToastUtils.showShort("网络异常,请检查网络")
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 展示BadCase配置页面
|
||||
*/
|
||||
@@ -269,4 +315,33 @@ internal object BadCaseManager : LifecycleEventObserver, IMoGoAutopilotRecordLis
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 数据采集配置应答
|
||||
*/
|
||||
override fun onAutopilotRecordConfig(config: MessagePad.RecordDataConfig) {
|
||||
if(receiveRecordConfig){
|
||||
ThreadUtils.runOnUiThread {
|
||||
if(config.recordTypesCount >0){
|
||||
config.recordTypesList.forEach {
|
||||
//TODO 需要确认具体是哪个ID
|
||||
if(it.id == 1){
|
||||
val recordCaseEntity = RecordCaseEntity(it.id,it.desc,it.topicsList)
|
||||
val initiativeBadCaseWindow = AppStateManager.currentActivity()
|
||||
?.let { it1 -> InitiativeBadCaseWindow(it1) }
|
||||
initiativeBadCaseWindow?.setClickListener(object :
|
||||
InitiativeBadCaseWindow.ClickListener {
|
||||
override fun closeWindow() {
|
||||
initiativeBadCaseWindow.hideFloatWindow()
|
||||
}
|
||||
|
||||
})
|
||||
initiativeBadCaseWindow?.showFloatWindow(recordCaseEntity)
|
||||
receiveRecordConfig = false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -9,6 +9,7 @@ import androidx.annotation.NonNull;
|
||||
import androidx.recyclerview.widget.GridLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.google.protobuf.ProtocolStringList;
|
||||
import com.mogo.eagle.core.data.deva.badcase.RecordCaseEntity;
|
||||
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotRecordListener;
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager;
|
||||
@@ -99,19 +100,14 @@ public class CaseListDialog extends Dialog implements IMoGoAutopilotRecordListen
|
||||
if(config.getRecordTypesCount()>0){
|
||||
for(int index=0;index<config.getRecordTypesCount();index++){
|
||||
if(config.getRecordTypes(index).getId() != 99){
|
||||
ArrayList<String> topicList = new ArrayList<>();
|
||||
// TODO java.lang.IndexOutOfBoundsException: Index: 38, Size: 38
|
||||
// for(int position=0;index<config.getRecordTypes(index).getTopicsCount();position++){
|
||||
// topicList.add(config.getRecordTypes(index).getTopicsList().get(position));
|
||||
// }
|
||||
recordTypeEntityArrayList.add(new RecordCaseEntity(
|
||||
config.getRecordTypes(index).getId(),config.getRecordTypes(index).getDesc(),
|
||||
topicList));
|
||||
config.getAllTopicsList()));
|
||||
}
|
||||
}
|
||||
}
|
||||
if(BadCaseConfig.customTopicList.size()>0){
|
||||
recordTypeEntityArrayList.add(new RecordCaseEntity(0,"自定义A",BadCaseConfig.customTopicList));
|
||||
recordTypeEntityArrayList.add(new RecordCaseEntity(0,"自定义A", (ProtocolStringList) BadCaseConfig.customTopicList));
|
||||
}
|
||||
caseListAdapter.setData(recordTypeEntityArrayList);
|
||||
caseListAdapter.notifyDataSetChanged();
|
||||
|
||||
Reference in New Issue
Block a user