+ android:layout_marginLeft="@dimen/dp_70"
+ android:layout_marginTop="@dimen/dp_10">
+ android:paddingBottom="@dimen/dp_20" />
diff --git a/modules/mogo-module-map/src/main/res/drawable-xhdpi/module_map_ic_company.png b/modules/mogo-module-map/src/main/res/drawable-xhdpi/module_map_ic_company.png
new file mode 100644
index 0000000000..47b1217f4a
Binary files /dev/null and b/modules/mogo-module-map/src/main/res/drawable-xhdpi/module_map_ic_company.png differ
diff --git a/modules/mogo-module-map/src/main/res/drawable-xhdpi/module_map_ic_home.png b/modules/mogo-module-map/src/main/res/drawable-xhdpi/module_map_ic_home.png
new file mode 100644
index 0000000000..e0ccc8bcb0
Binary files /dev/null and b/modules/mogo-module-map/src/main/res/drawable-xhdpi/module_map_ic_home.png differ
diff --git a/modules/mogo-module-map/src/main/res/drawable-xhdpi/module_map_ic_move2_current_location.png b/modules/mogo-module-map/src/main/res/drawable-xhdpi/module_map_ic_move2_current_location.png
new file mode 100644
index 0000000000..9d3d1e8b2a
Binary files /dev/null and b/modules/mogo-module-map/src/main/res/drawable-xhdpi/module_map_ic_move2_current_location.png differ
diff --git a/modules/mogo-module-map/src/main/res/drawable-xhdpi/module_map_ic_search.png b/modules/mogo-module-map/src/main/res/drawable-xhdpi/module_map_ic_search.png
new file mode 100644
index 0000000000..27b414c367
Binary files /dev/null and b/modules/mogo-module-map/src/main/res/drawable-xhdpi/module_map_ic_search.png differ
diff --git a/modules/mogo-module-map/src/main/res/drawable/module_map_dw_common_corner_bkg.xml b/modules/mogo-module-map/src/main/res/drawable/module_map_dw_common_corner_bkg.xml
new file mode 100644
index 0000000000..da35984c9d
--- /dev/null
+++ b/modules/mogo-module-map/src/main/res/drawable/module_map_dw_common_corner_bkg.xml
@@ -0,0 +1,9 @@
+
+
+ -
+
+
+
+
+
+
\ No newline at end of file
diff --git a/modules/mogo-module-map/src/main/res/drawable/module_map_dw_upload_road_condition_bkg.xml b/modules/mogo-module-map/src/main/res/drawable/module_map_dw_upload_road_condition_bkg.xml
new file mode 100644
index 0000000000..01523fc210
--- /dev/null
+++ b/modules/mogo-module-map/src/main/res/drawable/module_map_dw_upload_road_condition_bkg.xml
@@ -0,0 +1,9 @@
+
+
+ -
+
+
+
+
+
+
\ No newline at end of file
diff --git a/modules/mogo-module-map/src/main/res/layout/module_map_fragment_map.xml b/modules/mogo-module-map/src/main/res/layout/module_map_fragment_map.xml
index 696bce61e8..038b269721 100644
--- a/modules/mogo-module-map/src/main/res/layout/module_map_fragment_map.xml
+++ b/modules/mogo-module-map/src/main/res/layout/module_map_fragment_map.xml
@@ -1,5 +1,6 @@
@@ -7,4 +8,121 @@
android:id="@+id/module_map_id_map"
android:layout_width="match_parent"
android:layout_height="match_parent" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/modules/mogo-module-map/src/main/res/values/strings.xml b/modules/mogo-module-map/src/main/res/values/strings.xml
index fab4c86972..344eed0558 100644
--- a/modules/mogo-module-map/src/main/res/values/strings.xml
+++ b/modules/mogo-module-map/src/main/res/values/strings.xml
@@ -1,3 +1,5 @@
mogo-module-map
+ 搜索目的地
+ 上报\n路况
diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServiceProvider.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServiceProvider.java
index 4f786c1ddd..2b916dfedd 100644
--- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServiceProvider.java
+++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServiceProvider.java
@@ -101,7 +101,7 @@ public class MogoServiceProvider implements IMogoModuleProvider,
case ServiceConst.MSG_TYPE_REFRESH_DECREASE:
mRefreshRemainingTime -= ServiceConst.DECREASE_INTERVAL;
if ( mRefreshRemainingTime == 0 ) {
- notifyRefreshData( mAutoRefreshCallback );
+ notifyRefreshData( mLastAutoRefreshLocation, 2_000, mAutoRefreshCallback );
} else {
mHandler.sendEmptyMessageDelayed( msg.what, ServiceConst.DECREASE_INTERVAL );
}
@@ -334,19 +334,26 @@ public class MogoServiceProvider implements IMogoModuleProvider,
// 手动刷新触发
if ( mLastZoomLevel - zoom > mCustomRefreshStrategy.getZoomOutLevel() ) {
// 缩放级别缩小
- notifyRefreshData( mCustomRefreshCallback );
+ notifyRefreshData( latLng, getQueryRadius(), mCustomRefreshCallback );
mLastCustomRefreshCenterLocation = latLng;
mLastZoomLevel = zoom;
} else if ( mLastZoomLevel == zoom ) {
// 手动平移
if ( invokeRefreshWhenTranslationByUser( latLng ) ) {
- notifyRefreshData( mCustomRefreshCallback );
+ notifyRefreshData( latLng, getQueryRadius(), mCustomRefreshCallback );
mLastCustomRefreshCenterLocation = latLng;
}
}
Logger.d( TAG, "current map status: %s, zoom = %f, tilt = %f, bearing = %f", latLng, zoom, tilt, bearing );
}
+ private int getQueryRadius() {
+ if ( mIsVertical ) {
+ return ( ( int ) ( getMapCameraFactWidth() / 2 ) );
+ }
+ return ( ( int ) ( getMapCameraFactHeight() / 2 ) );
+ }
+
/**
* 平移地图刷新策略
*
@@ -379,11 +386,11 @@ public class MogoServiceProvider implements IMogoModuleProvider,
// 自动刷新触发
if ( mLastAutoRefreshLocation == null ) {
mLastAutoRefreshLocation = new MogoLatLng( location.getLatitude(), location.getLongitude() );
- notifyRefreshData( mAutoRefreshCallback );
+ notifyRefreshData( mLastAutoRefreshLocation, 2_000, mAutoRefreshCallback );
} else {
float distance = Utils.calculateLineDistance( mLastAutoRefreshLocation, new MogoLatLng( location.getLatitude(), location.getLongitude() ) );
if ( distance > mAutoRefreshStrategy.getDistance() ) {
- notifyRefreshData( mAutoRefreshCallback );
+ notifyRefreshData( mLastAutoRefreshLocation, 2_000, mAutoRefreshCallback );
}
}
}
@@ -391,9 +398,9 @@ public class MogoServiceProvider implements IMogoModuleProvider,
/**
* 刷新数据
*/
- private void notifyRefreshData( RefreshCallback callback ) {
+ private void notifyRefreshData( MogoLatLng latLng, int radius, RefreshCallback callback ) {
Logger.d( TAG, mAutoRefreshCallback == callback ? "触发自动刷新" : "触发手动刷新" );
- mRefreshModel.refreshData( callback );
+ mRefreshModel.refreshData( latLng, radius, callback );
}
@Override
diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/network/RefreshApiService.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/network/RefreshApiService.java
index 875fa04b98..82497488e6 100644
--- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/network/RefreshApiService.java
+++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/network/RefreshApiService.java
@@ -6,7 +6,10 @@ import java.util.Map;
import io.reactivex.Observable;
import io.reactivex.Single;
+import retrofit2.http.FieldMap;
+import retrofit2.http.FormUrlEncoded;
import retrofit2.http.GET;
+import retrofit2.http.POST;
import retrofit2.http.QueryMap;
/**
@@ -17,6 +20,8 @@ import retrofit2.http.QueryMap;
*/
public interface RefreshApiService {
- @GET( "" )
- Observable< BaseData > refreshData( @QueryMap Map< String, Object > params );
+ @FormUrlEncoded
+ @POST( "" )
+ Observable< BaseData > refreshData( @QueryMap Map< String, Object > params,
+ @FieldMap Map< String, Object > parameters );
}
diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/network/RefreshBody.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/network/RefreshBody.java
new file mode 100644
index 0000000000..2200ed394a
--- /dev/null
+++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/network/RefreshBody.java
@@ -0,0 +1,29 @@
+package com.mogo.module.service.network;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author congtaowang
+ * @since 2020-01-06
+ *
+ * 刷新地图信息接口
+ */
+public class RefreshBody {
+
+ public List< String > dataType = new ArrayList<>();
+ public int limit = 50;// 请求数量
+ public int radius = 2_000; // 地理围栏半径(米)
+ public LatLon location;
+
+ public static class LatLon {
+
+ private double lat;
+ private double lon;
+
+ public LatLon( double lat, double lon ) {
+ this.lat = lat;
+ this.lon = lon;
+ }
+ }
+}
diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/network/RefreshModel.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/network/RefreshModel.java
index 5fdbce5600..1da0a385cb 100644
--- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/network/RefreshModel.java
+++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/network/RefreshModel.java
@@ -6,10 +6,14 @@ import com.alibaba.android.arouter.launcher.ARouter;
import com.mogo.commons.data.BaseData;
import com.mogo.commons.network.ParamsProvider;
import com.mogo.commons.network.SubscribeImpl;
+import com.mogo.commons.network.Utils;
+import com.mogo.map.MogoLatLng;
import com.mogo.service.MogoServicePaths;
import com.mogo.service.network.IMogoNetwork;
import com.mogo.utils.network.RequestOptions;
+import com.mogo.utils.network.utils.GsonUtil;
+import java.util.HashMap;
import java.util.Map;
import io.reactivex.android.schedulers.AndroidSchedulers;
@@ -33,14 +37,21 @@ public class RefreshModel {
this.mRefreshApiService = network.create( RefreshApiService.class, "http://www.baidu.com/" );
}
- public void refreshData( final RefreshCallback callback ) {
+ public void refreshData( MogoLatLng latLng, int radius, final RefreshCallback callback ) {
if ( callback != null ) {
callback.onSuccess();
return;
}
if ( mRefreshApiService != null ) {
- final Map< String, Object > params = new ParamsProvider.Builder( mContext ).build();
- mRefreshApiService.refreshData( params )
+ final Map< String, Object > query = new ParamsProvider.Builder( mContext ).build();
+ final Map< String, Object > field = new HashMap<>();
+ field.put( "sn", query.get( "sn" ) );
+ final RefreshBody refreshBody = new RefreshBody();
+ refreshBody.limit = 50;
+ refreshBody.location = new RefreshBody.LatLon( latLng.lat, latLng.lng );
+ refreshBody.radius = radius;
+ field.put( "data", GsonUtil.jsonFromObject( refreshBody ) );
+ mRefreshApiService.refreshData( query, field )
.subscribeOn( Schedulers.io() )
.observeOn( AndroidSchedulers.mainThread() )
.subscribe( new SubscribeImpl< BaseData >( RequestOptions.create( mContext ) ) {
diff --git a/services/mogo-service/src/main/java/com/mogo/service/impl/imageloader/glide/GlideImageLoader.java b/services/mogo-service/src/main/java/com/mogo/service/impl/imageloader/glide/GlideImageLoader.java
index 2d577f3dc0..b1eaa394cb 100644
--- a/services/mogo-service/src/main/java/com/mogo/service/impl/imageloader/glide/GlideImageLoader.java
+++ b/services/mogo-service/src/main/java/com/mogo/service/impl/imageloader/glide/GlideImageLoader.java
@@ -2,7 +2,9 @@ package com.mogo.service.impl.imageloader.glide;
import android.content.Context;
import android.graphics.Bitmap;
+import android.graphics.drawable.Drawable;
+import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.alibaba.android.arouter.facade.annotation.Route;
@@ -10,7 +12,10 @@ import com.bumptech.glide.load.DataSource;
import com.bumptech.glide.load.engine.GlideException;
import com.bumptech.glide.request.RequestListener;
import com.bumptech.glide.request.RequestOptions;
+import com.bumptech.glide.request.target.ImageViewTarget;
+import com.bumptech.glide.request.target.SimpleTarget;
import com.bumptech.glide.request.target.Target;
+import com.bumptech.glide.request.transition.Transition;
import com.mogo.service.MogoServicePaths;
import com.mogo.service.imageloader.IMogoImageLoaderListener;
import com.mogo.service.imageloader.IMogoImageloader;
@@ -21,6 +26,8 @@ import com.mogo.service.impl.imageloader.glide.transform.GlideRoundBitmapTransfo
import com.mogo.service.impl.imageloader.glide.utils.DiskLruCacheManager;
import com.mogo.utils.glide.GlideApp;
+import java.io.File;
+
/**
* @author congtaowang
* @since 2019-12-23
@@ -142,22 +149,24 @@ public class GlideImageLoader implements IMogoImageloader {
GlideApp.with( context.getApplicationContext() )
.asBitmap()
.load( url )
- .listener( new RequestListener< Bitmap >() {
-
+ .into( new SimpleTarget< Bitmap >() {
@Override
- public boolean onLoadFailed( @Nullable GlideException e, Object model, Target< Bitmap > target, boolean isFirstResource ) {
- if ( listener != null ) {
- listener.onFailure( e );
- }
- return false;
- }
-
- @Override
- public boolean onResourceReady( Bitmap resource, Object model, Target< Bitmap > target, DataSource dataSource, boolean isFirstResource ) {
+ public void onResourceReady( @NonNull Bitmap resource, @Nullable Transition< ? super Bitmap > transition ) {
if ( listener != null ) {
listener.onCompleted( resource );
}
- return false;
+ }
+
+ @Override
+ public void onLoadStarted( @Nullable Drawable placeholder ) {
+ super.onLoadStarted( placeholder );
+ }
+
+ @Override
+ public void onLoadFailed( @Nullable Drawable errorDrawable ) {
+ if ( listener != null ) {
+ listener.onFailure( new Exception( "download failed." ) );
+ }
}
} );
}