From 264e68da17bb5bcdaf4ef1aef8ad0655208bdcfb Mon Sep 17 00:00:00 2001 From: xuxinchao Date: Mon, 4 Dec 2023 11:03:39 +0800 Subject: [PATCH] =?UTF-8?q?[6.2.4]=E9=AD=94=E6=96=B9=E8=A7=A6=E5=8F=91?= =?UTF-8?q?=E4=B8=BB=E5=8A=A8=E5=BD=95=E5=8C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DevaToolsProvider.kt | 7 ++ .../badcase/BadCaseManager.kt | 75 +++++++++++++++++++ .../badcase/biz/CaseListDialog.java | 10 +-- .../data/deva/badcase/RecordCaseEntity.kt | 8 +- .../api/devatools/IDevaToolsProvider.kt | 5 ++ .../call/devatools/CallerDevaToolsManager.kt | 7 ++ 6 files changed, 104 insertions(+), 8 deletions(-) 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 000169af02..6926e45bec 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 @@ -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) } 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 efa0e4a5f8..e6448ca428 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 @@ -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 + } + } + } + } + } + } + } 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 index a8fdeab7f5..7cadeb932d 100644 --- 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 @@ -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 topicList = new ArrayList<>(); -// TODO java.lang.IndexOutOfBoundsException: Index: 38, Size: 38 -// for(int position=0;index0){ - recordTypeEntityArrayList.add(new RecordCaseEntity(0,"自定义A",BadCaseConfig.customTopicList)); + recordTypeEntityArrayList.add(new RecordCaseEntity(0,"自定义A", (ProtocolStringList) BadCaseConfig.customTopicList)); } caseListAdapter.setData(recordTypeEntityArrayList); caseListAdapter.notifyDataSetChanged(); diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/deva/badcase/RecordCaseEntity.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/deva/badcase/RecordCaseEntity.kt index dc4146fbbc..3fabcc1373 100644 --- a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/deva/badcase/RecordCaseEntity.kt +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/deva/badcase/RecordCaseEntity.kt @@ -1,3 +1,9 @@ package com.mogo.eagle.core.data.deva.badcase -data class RecordCaseEntity(var caseId: Int,var caseName: String,var topicList: ArrayList) \ No newline at end of file +import com.google.protobuf.ProtocolStringList + +data class RecordCaseEntity( + var caseId: Int, + var caseName: String, + var topicList: ProtocolStringList +) \ No newline at end of file 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 750ae690c2..8a4a6c716b 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 @@ -113,6 +113,11 @@ interface IDevaToolsProvider : IProvider { */ fun onReceiveBadCaseRecord(msgBoxBean: MsgBoxBean,activity: Activity,countdown: Boolean) + /** + * 魔方开启主动录包 + */ + fun startRecordByMoFang() + /** * 展示录包配置 */ 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 f8accbd915..faab951939 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 @@ -149,6 +149,13 @@ object CallerDevaToolsManager { devaToolsProviderApi?.onReceiveBadCaseRecord(msgBoxBean, activity,countdown) } + /** + * 魔方开启主动录包 + */ + fun startRecordByMoFang(){ + devaToolsProviderApi?.startRecordByMoFang() + } + /** * 展示录包配置页面 */