diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/TakeOverReasonWindow.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/TakeOverReasonWindow.kt index 519d0316bd..7d5cea2ea8 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/TakeOverReasonWindow.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/TakeOverReasonWindow.kt @@ -35,10 +35,12 @@ import com.iflytek.cloud.SpeechError import com.iflytek.cloud.SpeechRecognizer import com.mogo.eagle.core.data.deva.report.CategoryInfo import com.mogo.eagle.core.data.deva.report.TakeOverRecordInfo +import com.mogo.eagle.core.function.api.datacenter.takeover.ITakeOverRecordEventListener import com.mogo.eagle.core.function.api.devatools.IMoGoDevaToolsListener import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsListenerManager import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager import com.mogo.eagle.core.function.call.takeover.CallerTakeOverManager +import com.mogo.eagle.core.function.call.takeover.CallerTakeOverRecordEventManager import com.mogo.eagle.core.utilcode.util.BarUtils import com.mogo.eagle.core.utilcode.util.JsonParser import com.mogo.eagle.core.utilcode.util.ThreadUtils @@ -57,7 +59,7 @@ import java.io.File * 接管原因编辑窗口 */ class TakeOverReasonWindow constructor(activity: Activity) : View.OnTouchListener, - IMoGoDevaToolsListener { + IMoGoDevaToolsListener, ITakeOverRecordEventListener { companion object{ const val TAG = "TakeOverReasonWindow" @@ -193,6 +195,7 @@ class TakeOverReasonWindow constructor(activity: Activity) : View.OnTouchListene @SuppressLint("SetTextI18n") private fun initEvent(){ CallerDevaToolsListenerManager.addListener(this.hashCode().toString(), this) + CallerTakeOverRecordEventManager.addListener(this.hashCode().toString(), this) val iconDown = ContextCompat.getDrawable(mActivity, R.drawable.icon_fault_expand) iconDown?.setBounds(0, 0, iconDown.minimumWidth, iconDown.minimumHeight) val iconUp = ContextCompat.getDrawable(mActivity, R.drawable.icon_fault_retract) @@ -563,4 +566,38 @@ class TakeOverReasonWindow constructor(activity: Activity) : View.OnTouchListene ToastUtils.showShort("接管列表获取失败:$msg") } + /** + * 上传接管记录监听 + * @param uploadRecordList 上传接管记录列表 + */ + override fun onUploadRecord(uploadRecordList: ArrayList) { + //如果上传列表中包含当前编辑接管,则关闭接管原因窗口 + uploadRecordList.forEach { + if(it.faultStartTime == mTakeOverRecordInfo.faultStartTime){ + ThreadUtils.runOnUiThread { + clickListener?.closeWindow() + hideFloatWindow() + } + return@forEach + } + } + } + + /** + * 删除接管记录监听 + * @param removeRecordList 删除接管记录列表 + */ + override fun onRemoveRecord(removeRecordList: ArrayList) { + //如果删除列表中包含当前编辑接管,则关闭接管原因窗口 + removeRecordList.forEach { + if(it.faultStartTime == mTakeOverRecordInfo.faultStartTime){ + ThreadUtils.runOnUiThread { + clickListener?.closeWindow() + hideFloatWindow() + } + return@forEach + } + } + } + } \ 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/workorder/TakeOverRecordView.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/TakeOverRecordView.kt index 44a3e8de69..5659b7e68b 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/TakeOverRecordView.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/workorder/TakeOverRecordView.kt @@ -18,6 +18,7 @@ import com.mogo.eagle.core.function.api.devatools.IMoGoDevaToolsListener import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsListenerManager import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager import com.mogo.eagle.core.function.call.takeover.CallerTakeOverManager +import com.mogo.eagle.core.function.call.takeover.CallerTakeOverRecordEventManager import com.mogo.eagle.core.utilcode.kotlin.lifeCycleScope import com.mogo.eagle.core.utilcode.util.ThreadUtils import com.mogo.eagle.core.utilcode.util.TimeUtils @@ -160,6 +161,7 @@ class TakeOverRecordView @JvmOverloads constructor( ToastUtils.showShort("请选择需要删除的接管记录") }else{ scope.launch(Dispatchers.IO){ + CallerTakeOverRecordEventManager.invokeRemoveRecord(selectedUploadRecord) val iterator = selectedUploadRecord.iterator() while (iterator.hasNext()){ val removeRecord = iterator.next() @@ -228,6 +230,7 @@ class TakeOverRecordView @JvmOverloads constructor( CallerTakeOverManager.updateRecord(context,it) takeOverListAdapter?.notifyRecordItemChanged(it) } + CallerTakeOverRecordEventManager.invokeUploadRecord(selectedUploadRecord) selectedUploadRecord.clear() } } diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/bone/tab/CarInfoTabView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/bone/tab/CarInfoTabView.kt index a9fba7e79d..f6d0297c58 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/bone/tab/CarInfoTabView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/bone/tab/CarInfoTabView.kt @@ -148,7 +148,7 @@ class CarInfoTabView @JvmOverloads constructor( OTAUpgradeConfig.promptedUpgrade.remove(OTAUpgradeConfig.otaToken) CallerAutoPilotControlManager.sendSsmFuncOtaStatusQuery(OTAUpgradeConfig.otaToken) }else{ - ToastUtils.showLong("当前域控版本不支持OTA升级") + ToastUtils.showLong("当前SSM节点未成功启动或当前版本不支持OTA升级") } } tvHDMapVersion.text = tvHDMapVersion.text.toString() + DebugConfig.getMapVersion() diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/datacenter/takeover/ITakeOverRecordEventListener.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/datacenter/takeover/ITakeOverRecordEventListener.kt new file mode 100644 index 0000000000..27fad21460 --- /dev/null +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/datacenter/takeover/ITakeOverRecordEventListener.kt @@ -0,0 +1,22 @@ +package com.mogo.eagle.core.function.api.datacenter.takeover + +import com.mogo.eagle.core.data.deva.report.TakeOverRecordInfo + +/** + * 接管记录事件监听回调 + */ +interface ITakeOverRecordEventListener { + + /** + * 上传接管记录监听 + * @param uploadRecordList 上传接管记录列表 + */ + fun onUploadRecord(uploadRecordList: ArrayList) + + /** + * 删除接管记录监听 + * @param removeRecordList 删除接管记录列表 + */ + fun onRemoveRecord(removeRecordList:ArrayList) + +} \ No newline at end of file diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/takeover/CallerTakeOverRecordEventManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/takeover/CallerTakeOverRecordEventManager.kt new file mode 100644 index 0000000000..15c5b9c5c4 --- /dev/null +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/takeover/CallerTakeOverRecordEventManager.kt @@ -0,0 +1,35 @@ +package com.mogo.eagle.core.function.call.takeover + +import android.util.Log +import com.mogo.eagle.core.data.deva.report.TakeOverRecordInfo +import com.mogo.eagle.core.function.api.datacenter.takeover.ITakeOverRecordEventListener +import com.mogo.eagle.core.function.call.base.CallerBase + +/** + * 接管记录事件监听管理 + */ +object CallerTakeOverRecordEventManager: CallerBase() { + + /** + * 上传接管记录监听 + * @param uploadRecordList 上传接管记录列表 + */ + fun invokeUploadRecord(uploadRecordList: ArrayList){ + M_LISTENERS.forEach{ + val listener = it.value + listener.onUploadRecord(uploadRecordList) + } + } + + /** + * 删除接管记录监听 + * @param removeRecordList 删除接管记录列表 + */ + fun invokeRemoveRecord(removeRecordList:ArrayList){ + M_LISTENERS.forEach{ + val listener = it.value + listener.onRemoveRecord(removeRecordList) + } + } + +} \ No newline at end of file