From fddb808eadc97e44671f99485cf500fd9eb5c279 Mon Sep 17 00:00:00 2001 From: zhongchao Date: Wed, 21 Jul 2021 17:52:14 +0800 Subject: [PATCH] test cloud data --- .../com/mogo/launcher/MogoApplication.java | 24 ++++++------- .../com/mogo/commons/mvp/MvpActivity.java | 2 +- .../common/drawer/SnapshotSetDataDrawer.java | 34 ++++++++++++++++--- 3 files changed, 42 insertions(+), 18 deletions(-) diff --git a/app/src/main/java/com/mogo/launcher/MogoApplication.java b/app/src/main/java/com/mogo/launcher/MogoApplication.java index 4be4262abc..ce52cbb721 100644 --- a/app/src/main/java/com/mogo/launcher/MogoApplication.java +++ b/app/src/main/java/com/mogo/launcher/MogoApplication.java @@ -318,18 +318,18 @@ public class MogoApplication extends AbsMogoApplication { // } ARouter.getInstance().navigation(ITestCrashReportProvider.class); Log.i("timer", "cost " + (System.currentTimeMillis() - start) + "ms"); - - try { - if (DebugConfig.getCarMachineType() == DebugConfig.CAR_MACHINE_TYPE_LENOVO) { - Intent intent = new Intent(); - intent.setComponent(new ComponentName("com.zhidao.speech", - "com.zhidao.speech.MainActivity")); - intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - startActivity(intent); - } - } catch (Exception e) { - e.printStackTrace(); - } +// try { +// if (DebugConfig.getCarMachineType() == DebugConfig.CAR_MACHINE_TYPE_LENOVO) { +// Intent intent = new Intent(); +// intent.setComponent(new ComponentName("com.zhidao.speech", +// "com.zhidao.speech.MainActivity")); +// intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); +// startActivity(intent); +// } +// } catch (Exception e) { +// e.printStackTrace(); +// } +// } @Override diff --git a/foudations/mogo-commons/src/main/java/com/mogo/commons/mvp/MvpActivity.java b/foudations/mogo-commons/src/main/java/com/mogo/commons/mvp/MvpActivity.java index 99c9592124..aa8d5fd980 100644 --- a/foudations/mogo-commons/src/main/java/com/mogo/commons/mvp/MvpActivity.java +++ b/foudations/mogo-commons/src/main/java/com/mogo/commons/mvp/MvpActivity.java @@ -48,7 +48,7 @@ public abstract class MvpActivity< V extends IView, P extends Presenter< V > > protected void onResume() { super.onResume(); hideBottomUIMenu(); -// startVoicePad(); + startVoicePad(); } /** diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/SnapshotSetDataDrawer.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/SnapshotSetDataDrawer.java index 51a1030014..eabe5b7281 100644 --- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/SnapshotSetDataDrawer.java +++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/SnapshotSetDataDrawer.java @@ -180,7 +180,7 @@ public class SnapshotSetDataDrawer extends BaseDrawer implements IMogoMarkerClic newDiffSet.add(cloudRoadData); } } - removeUselessMarker(mMarkersCaches); + delayRemoveUselessMarker(); removeUselessLastRecord(); // 需要新增的 marker 数量 int newDiffSetSize = newDiffSet.size(); @@ -198,9 +198,8 @@ public class SnapshotSetDataDrawer extends BaseDrawer implements IMogoMarkerClic renderSnapshotOneFrame(marker, uniqueKey, cloudRoadData, newMarkersCaches); } } - sendMessage(MSG_REMOVE_DIRTY_MARKERS, mMarkersCaches); - mMarkersCaches.clear(); - mMarkersCaches = newMarkersCaches; +// sendMessage(MSG_REMOVE_DIRTY_MARKERS, mMarkersCaches); + mMarkersCaches.putAll(newMarkersCaches); } /** @@ -224,6 +223,31 @@ public class SnapshotSetDataDrawer extends BaseDrawer implements IMogoMarkerClic } } + private void delayRemoveUselessMarker() { + if (mMarkersCaches.isEmpty()) { + return; + } + IMogoADASController adasControllerApi = MogoApisHandler.getInstance().getApis().getAdasControllerApi(); + if (TextUtils.isEmpty(adasControllerApi.getSatelliteTime())) { + return; + } + Iterator iterator = mMarkersCaches.values().iterator(); + while (iterator.hasNext()) { + IMogoMarker result = iterator.next(); + SocketDownData.CloudRoadDataProto proto = ((SocketDownData.CloudRoadDataProto) result.getObject()); + long internal = Long.parseLong(adasControllerApi.getSatelliteTime()) - proto.getSatelliteTime(); + Log.d("EmArrow", "delayRemoveUselessMarker uuid : " + proto.getUuid() + + " adasTime : " + adasControllerApi.getSatelliteTime() + + " protoTime : " + proto.getSatelliteTime() + + " internal : " + internal); + if (internal > 2000) { + iterator.remove(); + result.remove(); + result.destroy(); + } + } + } + private void removeUselessLastRecord() { // todo 最好重新设计一个数据结构,用于多线程数据过期失效的场景,参见redis数据过期 if (mLastPositions.isEmpty()) { return; @@ -236,7 +260,7 @@ public class SnapshotSetDataDrawer extends BaseDrawer implements IMogoMarkerClic Log.d("EmArrow", "removeUselessLastRecord size : " + mLastPositions.size()); while (iterator.hasNext()) { SocketDownData.CloudRoadDataProto result = iterator.next(); - long internal = result.getSatelliteTime() - Long.parseLong(adasControllerApi.getSatelliteTime()); + long internal = Long.parseLong(adasControllerApi.getSatelliteTime()) - result.getSatelliteTime(); if (internal > 3000) { iterator.remove(); }