From 4ba83e27d5c3cdfcf0dcd3fcaebc566c069d4a98 Mon Sep 17 00:00:00 2001 From: zhongchao Date: Thu, 18 Aug 2022 20:30:01 +0800 Subject: [PATCH 1/9] add note --- .../function/map/identify/IdentifyFactory.kt | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/map/identify/IdentifyFactory.kt b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/map/identify/IdentifyFactory.kt index 997daa80ad..99959f1f4d 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/map/identify/IdentifyFactory.kt +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/map/identify/IdentifyFactory.kt @@ -2,9 +2,7 @@ package com.mogo.eagle.core.function.map.identify import android.os.Handler import android.os.Message -import android.util.Log import com.mogo.eagle.core.data.config.FunctionBuildConfig -import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils import com.mogo.eagle.core.utilcode.mogo.thread.WorkThreadHandler import mogo.telematics.pad.MessagePad import mogo.telematics.pad.MessagePad.TrackedObject @@ -37,29 +35,31 @@ object IdentifyFactory : Identify { object : Handler(WorkThreadHandler.newInstance("IdentifyFactoryDrawer").looper) { override fun handleMessage(msg: Message) { super.handleMessage(msg) - if(!FunctionBuildConfig.isBeautyMode){ - if(identify is IdentifyBeautifyDataDrawer){ + if (!FunctionBuildConfig.isBeautyMode) { + // 非感知美化优化模式,清除旧数据,使用 DriverIdentify originDataDrawer 原始数据绘制 + if (identify is IdentifyBeautifyDataDrawer) { identify!!.clearOldMarker() identify = DriverIdentify.originDataDrawer } - }else{ - if(identify is IdentifyOriginDataDrawer){ + } else { + // 感知优化模式,清除旧数据,使用 UserIdentify beautifyDataDrawer 优化数据 + if (identify is IdentifyOriginDataDrawer) { identify!!.clearOldMarker() - identify = UserIdentify.beautifyDataDrawer + identify = UserIdentify.beautifyDataDrawer } } - when(msg.what){ + when (msg.what) { MSG_DATA_TRACK -> { - if(msg.obj is List<*>){ + if (msg.obj is List<*>) { identify!!.renderAdasRecognizedResult(msg.obj as List?) } } MSG_DATA_WARNING -> { - if(msg.obj is List<*>){ + if (msg.obj is List<*>) { identify!!.renderPlanningWarningObj(msg.obj as List?) } } - MSG_DATA_CLEAR ->{ + MSG_DATA_CLEAR -> { identify!!.clearOldMarker() } } From be887f4166fbadcbdb122ea4a2c0c3c34d974e00 Mon Sep 17 00:00:00 2001 From: zhongchao Date: Fri, 19 Aug 2022 11:56:19 +0800 Subject: [PATCH 2/9] add beauty of map heading control --- .../mogo-map/src/main/java/com/mogo/map/AMapWrapper.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/AMapWrapper.java b/libraries/mogo-map/src/main/java/com/mogo/map/AMapWrapper.java index 8217248dec..135de98e90 100644 --- a/libraries/mogo-map/src/main/java/com/mogo/map/AMapWrapper.java +++ b/libraries/mogo-map/src/main/java/com/mogo/map/AMapWrapper.java @@ -4,6 +4,7 @@ import android.annotation.SuppressLint; import android.content.Context; import android.graphics.Point; +import com.mogo.eagle.core.data.config.FunctionBuildConfig; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.map.marker.AMapInfoWindowAdapter; import com.mogo.map.marker.AMapMarkerWrapper; @@ -114,13 +115,13 @@ public class AMapWrapper implements IMogoMap { markerOptionsArrayList.add(markerOptions); } }); - MarkerHelper.INSTANCE.updateBatchMarkerPositon(markerOptionsArrayList, false, 8.0f, 1, 100, 1); + MarkerHelper.INSTANCE.updateBatchMarkerPositon(markerOptionsArrayList, false, FunctionBuildConfig.isBeautyMode ? 8.0f : 0f, 1, 100, 1); } @Override public String addPreVehicleModel(int type, int modelRes) { try { - return MarkerHelper.INSTANCE.addPreVehicleModel(type, modelRes); + return MarkerHelper.INSTANCE.addPreVehicleModel(type, modelRes); } catch (Exception e) { e.printStackTrace(); } From 486baf9bff78c5e0177f2553c10105342ea53b69 Mon Sep 17 00:00:00 2001 From: zhongchao Date: Fri, 19 Aug 2022 15:15:45 +0800 Subject: [PATCH 3/9] change the acc to pnc --- .../core/function/hmi/ui/widget/TrafficDataView.java | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/TrafficDataView.java b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/TrafficDataView.java index cc2d7aa78d..f3484daede 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/TrafficDataView.java +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/TrafficDataView.java @@ -15,7 +15,7 @@ import androidx.constraintlayout.widget.ConstraintLayout; import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotVehicleStateListener; import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager; -import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotCarStatusListenerManager; +import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotPlanningActionsListenerManager; import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotVehicleStateListenerManager; import com.mogo.eagle.core.function.hmi.R; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; @@ -24,6 +24,7 @@ import com.mogo.eagle.core.utilcode.util.ThreadUtils; import org.jetbrains.annotations.NotNull; import chassis.Chassis; +import mogo.telematics.pad.MessagePad; /** * @author Jing @@ -99,11 +100,7 @@ public class TrafficDataView extends ConstraintLayout { super.onAttachedToWindow(); handler.sendEmptyMessageDelayed(MSG_SEND_UPDATE, 1000L); CallerAutopilotVehicleStateListenerManager.INSTANCE.addListener(TAG, mIMoGoAutopilotVehicleStateListener); - CallerAutopilotCarStatusListenerManager.INSTANCE.addListener(TAG, gnssInfo -> { - if (gnssInfo != null) { - acceleration = gnssInfo.getAcceleration(); - } - }); + CallerAutopilotPlanningActionsListenerManager.INSTANCE.addListener(TAG, planningActionMsg -> acceleration = planningActionMsg.getDestinationAcc()); } private void initView(@NonNull Context context) { @@ -119,7 +116,7 @@ public class TrafficDataView extends ConstraintLayout { protected void onDetachedFromWindow() { super.onDetachedFromWindow(); CallerAutopilotVehicleStateListenerManager.INSTANCE.removeListener(TAG); - CallerAutopilotCarStatusListenerManager.INSTANCE.removeListener(TAG); + CallerAutopilotPlanningActionsListenerManager.INSTANCE.removeListener(TAG); } private final IMoGoAutopilotVehicleStateListener mIMoGoAutopilotVehicleStateListener = new IMoGoAutopilotVehicleStateListener() { From 1065d717146fb3b762aa0558c3062dc4b3aca26f Mon Sep 17 00:00:00 2001 From: zhongchao Date: Fri, 19 Aug 2022 16:51:07 +0800 Subject: [PATCH 4/9] ui --- .../core/function/hmi/ui/pnc/PncActionsView.kt | 10 +++++++++- .../function/hmi/ui/widget/TrafficDataView.java | 4 +++- .../src/main/res/drawable/pnc_actions_bg.png | Bin 0 -> 27568 bytes .../src/main/res/layout/fragment_hmi.xml | 2 +- .../src/main/res/layout/view_pnc_actions.xml | 7 +++++-- .../main/res/values-xhdpi-2560x1440/dimens.xml | 5 ++++- 6 files changed, 22 insertions(+), 6 deletions(-) create mode 100644 core/function-impl/mogo-core-function-hmi/src/main/res/drawable/pnc_actions_bg.png diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/pnc/PncActionsView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/pnc/PncActionsView.kt index 102955c0fb..591c3e5788 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/pnc/PncActionsView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/pnc/PncActionsView.kt @@ -3,13 +3,17 @@ package com.mogo.eagle.core.function.hmi.ui.pnc import android.content.Context import android.util.AttributeSet import android.view.LayoutInflater +import androidx.appcompat.content.res.AppCompatResources import androidx.constraintlayout.widget.ConstraintLayout import com.mogo.eagle.core.data.autopilot.pnc.PncActionsHelper import com.mogo.eagle.core.data.trafficlight.TrafficLightResult import com.mogo.eagle.core.data.trafficlight.currentRoadTrafficLight import com.mogo.eagle.core.data.trafficlight.isRed import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotPlanningActionsListener +import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener.Companion.STATUS_AUTOPILOT_RUNNING import com.mogo.eagle.core.function.api.trafficlight.IMoGoTrafficLightListener +import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager +import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotPlanningActionsListenerManager import com.mogo.eagle.core.function.call.trafficlight.CallerTrafficLightListenerManager import com.mogo.eagle.core.function.hmi.R @@ -68,7 +72,11 @@ class PncActionsView @JvmOverloads constructor( } } // update view - actions?.let { + if(actions.isNullOrEmpty() || getAutoPilotStatusInfo().state != STATUS_AUTOPILOT_RUNNING){ + tvHmiPncActions.background = null + tvHmiPncActions.text = "" + }else{ + tvHmiPncActions.background = AppCompatResources.getDrawable(context, R.drawable.pnc_actions_bg) tvHmiPncActions.text = actions } } diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/TrafficDataView.java b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/TrafficDataView.java index f3484daede..dd21592b78 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/TrafficDataView.java +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/TrafficDataView.java @@ -1,5 +1,7 @@ package com.mogo.eagle.core.function.hmi.ui.widget; +import static com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING; + import android.annotation.SuppressLint; import android.content.Context; import android.os.Handler; @@ -61,7 +63,7 @@ public class TrafficDataView extends ConstraintLayout { accTextView.setText("- " + accStr); } int state = CallerAutoPilotStatusListenerManager.INSTANCE.getAutoPilotStatusInfo().getState(); - if (state < 2) { + if (state < STATUS_AUTOPILOT_RUNNING) { if (mBrake > 0) { brakeStatus.setImageResource(R.drawable.traffic_data_brake); } else if (mThrottle >= 0 && mBrake == 0) { diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/pnc_actions_bg.png b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/pnc_actions_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..4d0fc0baa617811bc82ef03a1d4719a248a40d9e GIT binary patch literal 27568 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 diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_pnc_actions.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_pnc_actions.xml index 1c49ca55d1..57f15d1881 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_pnc_actions.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_pnc_actions.xml @@ -7,9 +7,12 @@ 42px 45px 46px + 48px 50px 52px 54px 56px 62px 70px - 80px + 72px + 75px 80px + 96px 100px 140px 150px From cfcba07fd7842587d3c78712fb434862e6014718 Mon Sep 17 00:00:00 2001 From: zhongchao Date: Fri, 19 Aug 2022 19:34:35 +0800 Subject: [PATCH 5/9] fix ui --- .../mogo/eagle/core/function/hmi/ui/pnc/PncActionsView.kt | 4 ++-- .../src/main/res/layout/view_pnc_actions.xml | 6 +++--- .../src/main/res/values-xhdpi-2560x1440/dimens.xml | 1 + 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/pnc/PncActionsView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/pnc/PncActionsView.kt index 591c3e5788..0daaf1719e 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/pnc/PncActionsView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/pnc/PncActionsView.kt @@ -73,10 +73,10 @@ class PncActionsView @JvmOverloads constructor( } // update view if(actions.isNullOrEmpty() || getAutoPilotStatusInfo().state != STATUS_AUTOPILOT_RUNNING){ - tvHmiPncActions.background = null + this.background = null tvHmiPncActions.text = "" }else{ - tvHmiPncActions.background = AppCompatResources.getDrawable(context, R.drawable.pnc_actions_bg) + this.background = AppCompatResources.getDrawable(context, R.drawable.pnc_actions_bg) tvHmiPncActions.text = actions } } diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_pnc_actions.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_pnc_actions.xml index 57f15d1881..f1f66ad3d0 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_pnc_actions.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_pnc_actions.xml @@ -2,17 +2,17 @@ + android:layout_height="@dimen/dp_100"> 18px 30px 36px + 34px 38px 42px 45px From 1374c170a23f9c9baa5a5d86512387c37b925727 Mon Sep 17 00:00:00 2001 From: zhongchao Date: Fri, 19 Aug 2022 20:06:27 +0800 Subject: [PATCH 6/9] change ui --- .../mogo-core-function-hmi/src/main/res/layout/fragment_hmi.xml | 2 +- .../src/main/res/values-xhdpi-2560x1440/dimens.xml | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/fragment_hmi.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/fragment_hmi.xml index 206d3b3b65..da8b0411b0 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/fragment_hmi.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/fragment_hmi.xml @@ -184,7 +184,7 @@ diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/values-xhdpi-2560x1440/dimens.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/values-xhdpi-2560x1440/dimens.xml index bc38862dac..8e7cb2a006 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/values-xhdpi-2560x1440/dimens.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/values-xhdpi-2560x1440/dimens.xml @@ -32,6 +32,7 @@ 80px 96px 100px + 110px 140px 150px 180px From 84837b02475da5e7cd45672bf3276d72965163bb Mon Sep 17 00:00:00 2001 From: renwj Date: Mon, 22 Aug 2022 11:06:41 +0800 Subject: [PATCH 7/9] =?UTF-8?q?[=E7=BA=BF=E7=A8=8B=E4=BC=98=E5=8C=96]?= =?UTF-8?q?=E4=BC=98=E5=8C=96ShadowHandlerThread=E5=A4=84=E7=90=86?= =?UTF-8?q?=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index f18c4f8215..44a45c7dcf 100644 --- a/build.gradle +++ b/build.gradle @@ -32,7 +32,7 @@ buildscript { classpath "com.bytedance.android.byteX:base-plugin:0.3.0" classpath "com.mogo.cloud:hook:${HOOK_LOG_VERSION}" classpath 'com.volcengine:apm_insight_plugin:1.4.1' - classpath 'com.mogo.cloud:thread_opt:5.0.5' + classpath 'com.mogo.thread.opt:plg:1.0.1' classpath 'com.mogo.cloud:systrace:1.0.1' classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.18' From 8fd6adb80c21f9d34d295a9c447caf6a6a61efd6 Mon Sep 17 00:00:00 2001 From: zhongchao Date: Mon, 22 Aug 2022 11:27:56 +0800 Subject: [PATCH 8/9] ui change --- .../function/hmi/ui/pnc/PncActionsView.kt | 8 ++++---- .../src/main/res/drawable/pnc_actions_bg.png | Bin 27568 -> 23741 bytes .../src/main/res/layout/view_pnc_actions.xml | 4 ++-- .../res/values-xhdpi-2560x1440/dimens.xml | 1 + 4 files changed, 7 insertions(+), 6 deletions(-) diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/pnc/PncActionsView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/pnc/PncActionsView.kt index 0daaf1719e..4937a9ff93 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/pnc/PncActionsView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/pnc/PncActionsView.kt @@ -12,7 +12,6 @@ import com.mogo.eagle.core.data.trafficlight.isRed import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotPlanningActionsListener import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener.Companion.STATUS_AUTOPILOT_RUNNING import com.mogo.eagle.core.function.api.trafficlight.IMoGoTrafficLightListener -import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotPlanningActionsListenerManager import com.mogo.eagle.core.function.call.trafficlight.CallerTrafficLightListenerManager @@ -56,7 +55,8 @@ class PncActionsView @JvmOverloads constructor( var actions: String? = null planningActionMsg.actionMsg?.let { - actions = PncActionsHelper.getAction(it.drivingState.number, it.drivingAction.number) + actions = + PncActionsHelper.getAction(it.drivingState.number, it.drivingAction.number) //如果是存在云端红绿灯数据条件下,设置云端数据 if (PncActionsHelper.isWaitingTrafficlight( @@ -72,10 +72,10 @@ class PncActionsView @JvmOverloads constructor( } } // update view - if(actions.isNullOrEmpty() || getAutoPilotStatusInfo().state != STATUS_AUTOPILOT_RUNNING){ + if (actions.isNullOrEmpty() || getAutoPilotStatusInfo().state != STATUS_AUTOPILOT_RUNNING) { this.background = null tvHmiPncActions.text = "" - }else{ + } else { this.background = AppCompatResources.getDrawable(context, R.drawable.pnc_actions_bg) tvHmiPncActions.text = actions } diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/pnc_actions_bg.png b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/pnc_actions_bg.png index 4d0fc0baa617811bc82ef03a1d4719a248a40d9e..7d8e46f213f23bd0c4c98f361f228794dfcd7045 100644 GIT binary patch literal 23741 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 Z?XUXmZpo0ade-Q0XO{o~ literal 27568 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 56px 62px + 68px 70px 72px 75px From cc9f60c695638fa70a80ed710301da02cfd2deb8 Mon Sep 17 00:00:00 2001 From: renwj Date: Mon, 22 Aug 2022 14:54:34 +0800 Subject: [PATCH 9/9] =?UTF-8?q?[RouteOpt]=E7=A7=BB=E6=8E=89=E6=97=A0?= =?UTF-8?q?=E7=94=A8=E7=9A=84=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../routeoverlay/RouteOverlayDrawer.java | 18 ++---------------- 1 file changed, 2 insertions(+), 16 deletions(-) diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/routeoverlay/RouteOverlayDrawer.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/routeoverlay/RouteOverlayDrawer.java index edbc9c3057..65d9e0dbaf 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/routeoverlay/RouteOverlayDrawer.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/routeoverlay/RouteOverlayDrawer.java @@ -99,7 +99,6 @@ public class RouteOverlayDrawer { int total; try { pps.clear(); - long drawStart = SystemClock.elapsedRealtime(); List routes = this.routeList; if (routes == null || (total = routes.size()) < 2) { isExcept = true; @@ -136,7 +135,6 @@ public class RouteOverlayDrawer { } double lon = CallerAutoPilotStatusListenerManager.INSTANCE.getCurWgs84Lon(); double lat = CallerAutoPilotStatusListenerManager.INSTANCE.getCurWgs84Lat(); - int removeCount = 0; if (points.size() > 0) { MogoLatLng top = null; while (points.size() != 0) { @@ -151,7 +149,6 @@ public class RouteOverlayDrawer { lat = CallerAutoPilotStatusListenerManager.INSTANCE.getCurWgs84Lat(); long angle = isPointOnCarFront(lon, lat, bearing, first.lon, first.lat); if (angle >= 90) { - removeCount++; RouteStrategy.INSTANCE.remove(first.acc); pools.release(first); points.poll(); @@ -203,10 +200,8 @@ public class RouteOverlayDrawer { } else { isExcept = true; } - long drawEnd = SystemClock.elapsedRealtime(); - Logger.d(M_OLD_ROUTE + TAG, "drawTrajectoryList cost : " + (drawEnd - drawStart) + "ms and isExcept:" + isExcept + "::removeCount:" + removeCount + "::total:" + total); } catch (Throwable t) { - Logger.d(M_OLD_ROUTE + TAG, "drawTrajectoryList error (isExcept: "+isExcept+") : " + t); + t.printStackTrace(); } finally { if (isExcept) { setVisible(false); @@ -224,16 +219,7 @@ public class RouteOverlayDrawer { } private long isPointOnCarFront(double car_lon, double car_lat, double car_head, double lon, double lat) { - long start = SystemClock.elapsedRealtime(); - try { - // 计算车辆与点之间的夹角 - long diffAngle = DrivingDirectionUtils.getDegreeOfCar2Poi2( - car_lon, car_lat, lon, lat, car_head); - CallerLogger.INSTANCE.d(M_OLD_ROUTE + TAG, "isPointOnCarFront: angle->" + diffAngle); - return diffAngle; - } finally { - CallerLogger.INSTANCE.d(M_OLD_ROUTE + TAG, "isPointOnCarFront cost:" + (SystemClock.elapsedRealtime() - start) + "ms"); - } + return DrivingDirectionUtils.getDegreeOfCar2Poi2(car_lon, car_lat, lon, lat, car_head); } }