From 79e4767cc0619d6242386c4e842c389cc0993430 Mon Sep 17 00:00:00 2001 From: chenfufeng Date: Thu, 1 Dec 2022 11:52:52 +0800 Subject: [PATCH] =?UTF-8?q?[2.13.0][fix]=E6=B7=BB=E5=8A=A0=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E6=B6=88=E6=81=AF=E7=9B=92=E5=AD=90=E5=8E=86=E5=8F=B2?= =?UTF-8?q?=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/function/main/MainMoGoApplication.java | 2 ++ .../core/function/overview/vm/OverViewModel.kt | 2 +- .../mogo/eagle/core/function/msgbox/DataManager.kt | 13 +++++++++++++ .../eagle/core/function/msgbox/MsgBoxProvider.kt | 4 ++++ .../core/function/notice/NoticeSocketManager.java | 7 +++++-- .../com/mogo/eagle/core/data/msgbox/MsgBoxType.kt | 1 + .../com/mogo/eagle/core/data/msgbox/MsgCategory.kt | 1 + .../mogo/eagle/core/data/msgbox/NoticeFrCloudMsg.kt | 11 +++++++++++ .../core/function/api/msgbox/IMsgBoxProvider.kt | 3 +++ .../function/call/msgbox/CallerMsgBoxManager.kt | 4 ++++ 10 files changed, 45 insertions(+), 3 deletions(-) create mode 100644 core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/msgbox/NoticeFrCloudMsg.kt diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/MainMoGoApplication.java b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/MainMoGoApplication.java index d4645449a7..5bd509e41d 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/MainMoGoApplication.java +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/MainMoGoApplication.java @@ -26,6 +26,7 @@ import com.mogo.eagle.core.function.api.devatools.IMogoDevaToolsUpgradeListener; import com.mogo.eagle.core.function.call.bindingcar.CallerBindingcarManager; import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager; import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsUpgradeListenerManager; +import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxManager; import com.mogo.eagle.core.function.hmi.R; import com.mogo.eagle.core.function.msgbox.db.MsgBoxDb; import com.mogo.eagle.core.function.overview.OverviewDb; @@ -76,6 +77,7 @@ public abstract class MainMoGoApplication extends AbsMogoApplication { clearMessageBoxTable(); checkMonitorDb(); upgradeProgressListener(); + CallerMsgBoxManager.INSTANCE.queryAllMessages(this); } @Override diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/overview/vm/OverViewModel.kt b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/overview/vm/OverViewModel.kt index 74e24d0cac..8de6cf1fcc 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/overview/vm/OverViewModel.kt +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/overview/vm/OverViewModel.kt @@ -79,7 +79,7 @@ class OverViewModel( disposable!!.dispose() } // 1分钟查询一次 - disposable = Observable.interval(0, 60000, TimeUnit.SECONDS) + disposable = Observable.interval(0, 60000, TimeUnit.MILLISECONDS) .flatMap { MoGoRetrofitFactory.getInstance(HostConst.getHost()) .create(OverViewServiceApi::class.java) diff --git a/core/function-impl/mogo-core-function-msgbox/src/main/java/com/mogo/eagle/core/function/msgbox/DataManager.kt b/core/function-impl/mogo-core-function-msgbox/src/main/java/com/mogo/eagle/core/function/msgbox/DataManager.kt index 967608f8d8..ad45a7adcf 100644 --- a/core/function-impl/mogo-core-function-msgbox/src/main/java/com/mogo/eagle/core/function/msgbox/DataManager.kt +++ b/core/function-impl/mogo-core-function-msgbox/src/main/java/com/mogo/eagle/core/function/msgbox/DataManager.kt @@ -138,10 +138,23 @@ object DataManager { */ fun queryAllMessages(context: Context) { scope.launch { + initCache() getCacheMessages(context) } } + private fun initCache() { + if (cacheNotifyList.isNotEmpty()) { + cacheNotifyList.clear() + } + if (cacheRecordList.isNotEmpty()) { + cacheRecordList.clear() + } + if (cacheSysInfoList.isNotEmpty()) { + cacheSysInfoList.clear() + } + } + private suspend fun getCacheMessages(context: Context): List = withContext(Dispatchers.IO) { return@withContext MsgBoxDb.getDb(context) .monitorDao() diff --git a/core/function-impl/mogo-core-function-msgbox/src/main/java/com/mogo/eagle/core/function/msgbox/MsgBoxProvider.kt b/core/function-impl/mogo-core-function-msgbox/src/main/java/com/mogo/eagle/core/function/msgbox/MsgBoxProvider.kt index cafb85c7b0..d3c4d49cd4 100644 --- a/core/function-impl/mogo-core-function-msgbox/src/main/java/com/mogo/eagle/core/function/msgbox/MsgBoxProvider.kt +++ b/core/function-impl/mogo-core-function-msgbox/src/main/java/com/mogo/eagle/core/function/msgbox/MsgBoxProvider.kt @@ -26,6 +26,10 @@ class MsgBoxProvider : IMsgBoxProvider { }.start() } + override fun queryAllMessages(context: Context) { + DataManager.queryAllMessages(context) + } + override fun saveMsg(bean: MsgBoxBean) { DataManager.saveMsg(bean) } diff --git a/core/function-impl/mogo-core-function-notice/src/main/java/com/mogo/eagle/core/function/notice/NoticeSocketManager.java b/core/function-impl/mogo-core-function-notice/src/main/java/com/mogo/eagle/core/function/notice/NoticeSocketManager.java index cdbcd1609f..ef54bd6220 100644 --- a/core/function-impl/mogo-core-function-notice/src/main/java/com/mogo/eagle/core/function/notice/NoticeSocketManager.java +++ b/core/function-impl/mogo-core-function-notice/src/main/java/com/mogo/eagle/core/function/notice/NoticeSocketManager.java @@ -7,6 +7,7 @@ import android.content.Context; import com.mogo.aicloud.services.socket.MogoAiCloudSocketManager; import com.mogo.eagle.core.data.msgbox.MsgBoxBean; import com.mogo.eagle.core.data.msgbox.MsgBoxType; +import com.mogo.eagle.core.data.msgbox.NoticeFrCloudMsg; import com.mogo.eagle.core.data.notice.NoticeNormalData; import com.mogo.eagle.core.data.notice.NoticeTrafficStylePushData; import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxManager; @@ -63,7 +64,8 @@ class NoticeSocketManager { if (obj == null) { return; } - CallerMsgBoxManager.INSTANCE.saveMsgBox(new MsgBoxBean(MsgBoxType.NOTICE,obj)); + NoticeFrCloudMsg noticeFromCloudMsg = new NoticeFrCloudMsg(obj, null, 0); + CallerMsgBoxManager.INSTANCE.saveMsgBox(new MsgBoxBean(MsgBoxType.NOTICE, noticeFromCloudMsg)); } }; @@ -80,7 +82,8 @@ class NoticeSocketManager { @Override public void onMsgReceived(NoticeTrafficStylePushData obj) { CallerLogger.INSTANCE.d(M_NOTICE + TAG, "301001-- 交警类型公告数据:" + GsonUtil.jsonFromObject(obj)); - CallerMsgBoxManager.INSTANCE.saveMsgBox(new MsgBoxBean(MsgBoxType.NOTICE,obj)); + NoticeFrCloudMsg noticeFromCloudMsg = new NoticeFrCloudMsg(null, obj, 1); + CallerMsgBoxManager.INSTANCE.saveMsgBox(new MsgBoxBean(MsgBoxType.NOTICE, noticeFromCloudMsg)); } }; } diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/msgbox/MsgBoxType.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/msgbox/MsgBoxType.kt index fa474bb89e..4848a3300c 100644 --- a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/msgbox/MsgBoxType.kt +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/msgbox/MsgBoxType.kt @@ -1,5 +1,6 @@ package com.mogo.eagle.core.data.msgbox enum class MsgBoxType { + // 按功能划分为几大类:运营、通知、V2X模块、OBU模块、工控机Report、录制、交通等 OPERATION, NOTICE, V2X, OBU, REPORT, RECORD, TRAFFIC } \ No newline at end of file diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/msgbox/MsgCategory.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/msgbox/MsgCategory.kt index 095e9ed4d8..e89b9032f4 100644 --- a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/msgbox/MsgCategory.kt +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/msgbox/MsgCategory.kt @@ -1,5 +1,6 @@ package com.mogo.eagle.core.data.msgbox enum class MsgCategory { + // 按UI展示划分为三大类:通知、系统信息、录制 NOTICE, SYS_INFO, RECORD_BAG } \ No newline at end of file diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/msgbox/NoticeFrCloudMsg.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/msgbox/NoticeFrCloudMsg.kt new file mode 100644 index 0000000000..c4063fcd41 --- /dev/null +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/msgbox/NoticeFrCloudMsg.kt @@ -0,0 +1,11 @@ +package com.mogo.eagle.core.data.msgbox + +import com.mogo.eagle.core.data.notice.NoticeNormalData +import com.mogo.eagle.core.data.notice.NoticeTrafficStylePushData + +data class NoticeFrCloudMsg( + var noticeNormalData: NoticeNormalData? = null, + var trafficPushData: NoticeTrafficStylePushData? = null, + // 0:取NoticeTrafficStylePushData, 1:取NoticeNormalData + var type: Int = 0 +) \ No newline at end of file diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/msgbox/IMsgBoxProvider.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/msgbox/IMsgBoxProvider.kt index 6444103924..9dbac58bbd 100644 --- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/msgbox/IMsgBoxProvider.kt +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/msgbox/IMsgBoxProvider.kt @@ -5,6 +5,9 @@ import com.mogo.eagle.core.data.msgbox.MsgBoxBean import com.mogo.eagle.core.function.api.base.IMoGoFunctionServerProvider interface IMsgBoxProvider: IMoGoFunctionServerProvider { + + fun queryAllMessages(context: Context) + fun saveMsg(bean: MsgBoxBean) /** diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/msgbox/CallerMsgBoxManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/msgbox/CallerMsgBoxManager.kt index 54232c8810..ba2b039546 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/msgbox/CallerMsgBoxManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/msgbox/CallerMsgBoxManager.kt @@ -16,6 +16,10 @@ object CallerMsgBoxManager { MogoServicePaths.PATH_MSG_BOX_MODULE ) + fun queryAllMessages(context: Context) { + providerApi?.queryAllMessages(context) + } + /** * 存储数据到消息盒子 */