From 2d8ff4d8e92bf6b9697f031c9fe5150b6be01081 Mon Sep 17 00:00:00 2001 From: wangcongtao Date: Mon, 7 Sep 2020 10:58:47 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8E=BB=E6=8E=89=E9=83=A8=E5=88=86=E5=AF=B9?= =?UTF-8?q?=E8=B1=A1=E7=9A=84=E9=87=8D=E5=A4=8D=E5=88=9B=E5=BB=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/amap/location/ALocationClient.java | 2 +- .../impl/automap/navi/AutoNaviReceiver.java | 40 +++++++++++-------- 2 files changed, 25 insertions(+), 17 deletions(-) diff --git a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/location/ALocationClient.java b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/location/ALocationClient.java index 89dfeac7f4..daa049b376 100644 --- a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/location/ALocationClient.java +++ b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/location/ALocationClient.java @@ -145,7 +145,7 @@ public class ALocationClient implements IMogoLocationClient { synchronized ( sListeners ) { Iterator< IMogoLocationListener > listenerIterator = sListeners.iterator(); while ( listenerIterator.hasNext() ) { - listenerIterator.next().onLocationChanged( mLastLocation.clone() ); + listenerIterator.next().onLocationChanged( mLastLocation ); } } Trace.endSection(); diff --git a/libraries/map-autonavi/src/main/java/com/mogo/map/impl/automap/navi/AutoNaviReceiver.java b/libraries/map-autonavi/src/main/java/com/mogo/map/impl/automap/navi/AutoNaviReceiver.java index 4d6edfbc86..516be8652e 100644 --- a/libraries/map-autonavi/src/main/java/com/mogo/map/impl/automap/navi/AutoNaviReceiver.java +++ b/libraries/map-autonavi/src/main/java/com/mogo/map/impl/automap/navi/AutoNaviReceiver.java @@ -26,6 +26,9 @@ public class AutoNaviReceiver extends BroadcastReceiver { private static AutoNaviReceiver autoNaviReceiver; private static boolean sRegisterFlag = false; + private static MogoNaviInfo sNaviInfo; + private static MogoTraffic sTraffic; + public static void register( Context context ) { IntentFilter filter = new IntentFilter(); @@ -85,23 +88,28 @@ public class AutoNaviReceiver extends BroadcastReceiver { MapState.getInstance().setNaving( true ); MogoNaviListenerHandler.getInstance().onStartNavi(); } - MogoNaviInfo naviInfo = new MogoNaviInfo(); - naviInfo.setCurrentLimitSpeed( cameraSpeed ); - naviInfo.setCurrentRoadName( intent.getStringExtra( GuideInfoExtraKey.CUR_ROAD_NAME ) ); - naviInfo.setCurrentSpeed( intent.getIntExtra( GuideInfoExtraKey.CUR_SPEED, 0 ) ); - naviInfo.setCurStepRetainDistance( intent.getIntExtra( GuideInfoExtraKey.SEG_REMAIN_DIS, 0 ) ); - naviInfo.setCurStepRetainTime( intent.getIntExtra( GuideInfoExtraKey.SEG_REMAIN_TIME, 0 ) ); - naviInfo.setIconResId( IconTypeUtils.getResIdByIconType( context, intent.getIntExtra( GuideInfoExtraKey.NEW_ICON, 0 ) ) ); - naviInfo.setNextRoadName( intent.getStringExtra( GuideInfoExtraKey.NEXT_ROAD_NAME ) ); - naviInfo.setPathRetainDistance( intent.getIntExtra( GuideInfoExtraKey.ROUTE_REMAIN_DIS, 0 ) ); - naviInfo.setPathRetainTime( intent.getIntExtra( GuideInfoExtraKey.ROUTE_REMAIN_TIME, 0 ) ); - MogoNaviListenerHandler.getInstance().onNaviInfoUpdate( naviInfo ); + if ( sNaviInfo == null ) { + sNaviInfo = new MogoNaviInfo(); + } + sNaviInfo.setCurrentLimitSpeed( cameraSpeed ); + sNaviInfo.setCurrentRoadName( intent.getStringExtra( GuideInfoExtraKey.CUR_ROAD_NAME ) ); + sNaviInfo.setCurrentSpeed( intent.getIntExtra( GuideInfoExtraKey.CUR_SPEED, 0 ) ); + sNaviInfo.setCurStepRetainDistance( intent.getIntExtra( GuideInfoExtraKey.SEG_REMAIN_DIS, 0 ) ); + sNaviInfo.setCurStepRetainTime( intent.getIntExtra( GuideInfoExtraKey.SEG_REMAIN_TIME, 0 ) ); + sNaviInfo.setIconResId( IconTypeUtils.getResIdByIconType( context, intent.getIntExtra( GuideInfoExtraKey.NEW_ICON, 0 ) ) ); + sNaviInfo.setNextRoadName( intent.getStringExtra( GuideInfoExtraKey.NEXT_ROAD_NAME ) ); + sNaviInfo.setPathRetainDistance( intent.getIntExtra( GuideInfoExtraKey.ROUTE_REMAIN_DIS, 0 ) ); + sNaviInfo.setPathRetainTime( intent.getIntExtra( GuideInfoExtraKey.ROUTE_REMAIN_TIME, 0 ) ); + MogoNaviListenerHandler.getInstance().onNaviInfoUpdate( sNaviInfo ); } - MogoTraffic mogoTraffic = new MogoTraffic( MapState.getInstance().isAimless() ? MogoTraffic.TYPE_AIM : MogoTraffic.TYPE_NAVI ); - mogoTraffic.setDistance( cameraDisc ); - mogoTraffic.setSpeedLimit( cameraSpeed ); - mogoTraffic.setTrafficType( cameraType ); - MogoNaviListenerHandler.getInstance().onUpdateTraffic2( mogoTraffic ); + if ( sTraffic == null ) { + sTraffic = new MogoTraffic( MapState.getInstance().isAimless() ? MogoTraffic.TYPE_AIM : MogoTraffic.TYPE_NAVI ); + } + sTraffic.setFromType( MapState.getInstance().isAimless() ? MogoTraffic.TYPE_AIM : MogoTraffic.TYPE_NAVI ); + sTraffic.setDistance( cameraDisc ); + sTraffic.setSpeedLimit( cameraSpeed ); + sTraffic.setTrafficType( cameraType ); + MogoNaviListenerHandler.getInstance().onUpdateTraffic2( sTraffic ); } /**