From 8047ee92cc5a5fb1431f6e3dba6a0fe6ea7af311 Mon Sep 17 00:00:00 2001 From: wangcongtao Date: Thu, 20 Feb 2020 15:46:39 +0800 Subject: [PATCH] opt --- .../map/impl/amap/AMapNaviViewWrapper.java | 2 +- .../map_api_ic_current_location2.png | Bin 0 -> 3402 bytes .../map_api_ic_current_location2.png.png | Bin 0 -> 6387 bytes .../module/service/MogoServiceProvider.java | 29 ++++++++++++++++-- .../com/mogo/module/service/ServiceConst.java | 10 ++++++ 5 files changed, 38 insertions(+), 3 deletions(-) create mode 100644 libraries/mogo-map-api/src/main/res/drawable-ldpi/map_api_ic_current_location2.png create mode 100644 libraries/mogo-map-api/src/main/res/drawable-xhdpi/map_api_ic_current_location2.png.png diff --git a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/AMapNaviViewWrapper.java b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/AMapNaviViewWrapper.java index 11e59c1985..0d04aa102c 100644 --- a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/AMapNaviViewWrapper.java +++ b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/AMapNaviViewWrapper.java @@ -431,7 +431,7 @@ public class AMapNaviViewWrapper implements IMogoMapView, style.strokeWidth(0); style.radiusFillColor( Color.TRANSPARENT ); style.myLocationIcon( - BitmapDescriptorFactory.fromResource(R.drawable.map_api_ic_current_location)); + BitmapDescriptorFactory.fromResource(R.drawable.map_api_ic_current_location2)); mMapView.getMap().setMyLocationStyle(style); } } diff --git a/libraries/mogo-map-api/src/main/res/drawable-ldpi/map_api_ic_current_location2.png b/libraries/mogo-map-api/src/main/res/drawable-ldpi/map_api_ic_current_location2.png new file mode 100644 index 0000000000000000000000000000000000000000..d60bb483360defd39d69b66f9850aad0d0799cd5 GIT binary patch literal 3402 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 Q{>32CRyR + * 说明:第一次地位成功,因为网络问题,导致请求失败,则在其他策略请求之前,尝试10s请求一次。 + */ + private boolean mLoopRequest = false; + + /** + * 刷新补偿间隔 + */ + private long mLoopInterval = 10_000L; + private Handler mHandler = new Handler( Looper.getMainLooper() ) { @Override public void handleMessage( @NonNull Message msg ) { @@ -127,7 +139,7 @@ public class MogoServiceProvider implements IMogoModuleProvider, if ( mRefreshRemainingTime == 0 ) { Logger.d( TAG, "move to center and refresh data." ); mStatusManager.setUserInteractionStatus( ServiceConst.TYPE, true, false ); - mUiController.moveToCenter( mLastAutoRefreshLocation ); + mUiController.recoverLockMode(); mStatusManager.setUserInteractionStatus( TAG, true, false ); mUiController.changeZoom( 16.0f ); notifyRefreshData( mLastAutoRefreshLocation, getQueryRadius(), mAutoRefreshCallback ); @@ -135,6 +147,12 @@ public class MogoServiceProvider implements IMogoModuleProvider, mHandler.sendEmptyMessageDelayed( msg.what, ServiceConst.DECREASE_INTERVAL ); } break; + case ServiceConst.MSG_LOOP_REQUEST: + if ( mLoopRequest ) { + Logger.d( TAG, "补偿刷新触发" ); + notifyRefreshData( mLastAutoRefreshLocation, getQueryRadius(), mAutoRefreshCallback ); + } + break; } } }; @@ -156,6 +174,7 @@ public class MogoServiceProvider implements IMogoModuleProvider, private RefreshCallback mCustomRefreshCallback = new RefreshCallback() { @Override public void onSuccess() { + mLoopRequest = false; mRefreshRemainingTimeStatus = false; // 用户手动操作地图刷新成功后,设置状态为 true,引发延时策略 mStatusManager.setUserInteractionStatus( ServiceConst.TYPE, true, true ); @@ -173,12 +192,17 @@ public class MogoServiceProvider implements IMogoModuleProvider, private RefreshCallback mAutoRefreshCallback = new RefreshCallback() { @Override public void onSuccess() { + mLoopRequest = false; invokeAutoRefreshStrategy(); } @Override public void onFail() { - invokeAutoRefreshStrategy(); + if ( mLoopRequest ) { + mHandler.sendEmptyMessageDelayed( ServiceConst.MSG_LOOP_REQUEST, ServiceConst.LOOP_INTERVAL ); + } else { + invokeAutoRefreshStrategy(); + } } private void invokeAutoRefreshStrategy() { @@ -480,6 +504,7 @@ public class MogoServiceProvider implements IMogoModuleProvider, final MogoLatLng point = new MogoLatLng( location.getLatitude(), location.getLongitude() ); if ( mLastAutoRefreshLocation == null ) { mLastAutoRefreshLocation = point; + mLoopRequest = true; notifyRefreshData( mLastAutoRefreshLocation, getQueryRadius(), mAutoRefreshCallback ); return; } diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/ServiceConst.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/ServiceConst.java index 596b6507b5..c0533b0b1b 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/ServiceConst.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/ServiceConst.java @@ -27,6 +27,16 @@ public class ServiceConst { */ public static final int DECREASE_INTERVAL = 1_000; + /** + * 刷新失败补偿消息 + */ + public static final int MSG_LOOP_REQUEST = 10_000; + + /** + * 刷新失败补偿时间间隔 + */ + public static final int LOOP_INTERVAL = 10_000; + /** * 卡片 车聊聊 */