diff --git a/.idea/misc.xml b/.idea/misc.xml index 703e5d4b89..8a8f75bfe2 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -5,7 +5,7 @@ - + diff --git a/config.gradle b/config.gradle index 1f7b20f715..a09c88791e 100644 --- a/config.gradle +++ b/config.gradle @@ -104,6 +104,6 @@ ext { jetbrainsannotationsjava5: "org.jetbrains:annotations-java5:15.0", // 统一登录 - accountsdk : "com.zhidao.accoutservice:account-sdk:1.0.0.1@aar", + accountsdk : "com.zhidao.accountservice:account-sdk:1.0.2", ] } \ No newline at end of file diff --git a/foudations/mogo-commons/src/main/java/com/mogo/commons/AbsMogoApplication.java b/foudations/mogo-commons/src/main/java/com/mogo/commons/AbsMogoApplication.java index da9686570a..ba34b7889d 100644 --- a/foudations/mogo-commons/src/main/java/com/mogo/commons/AbsMogoApplication.java +++ b/foudations/mogo-commons/src/main/java/com/mogo/commons/AbsMogoApplication.java @@ -72,7 +72,7 @@ public class AbsMogoApplication extends Application { TipToast.init( sApp, null ); initNetConfig(); -// initAccountSdk(); + initAccountSdk(); } private static void initNetConfig() { diff --git a/foudations/mogo-commons/src/main/java/com/mogo/commons/network/Utils.java b/foudations/mogo-commons/src/main/java/com/mogo/commons/network/Utils.java index 7d6ec4242a..350234532b 100644 --- a/foudations/mogo-commons/src/main/java/com/mogo/commons/network/Utils.java +++ b/foudations/mogo-commons/src/main/java/com/mogo/commons/network/Utils.java @@ -15,7 +15,7 @@ import java.lang.reflect.Method; * Created by congtaowang on 2018/3/29. */ -class Utils { +public class Utils { public static String getCellId( Context context ) { TelephonyManager tm = ( TelephonyManager ) context.getSystemService( Context.TELEPHONY_SERVICE ); diff --git a/gradle.properties b/gradle.properties index 9db77184f3..832da15ccb 100644 --- a/gradle.properties +++ b/gradle.properties @@ -24,7 +24,7 @@ SNAPSHOT_REPOSITORY_URL=http://nexus.zhidaoauto.com/repository/maven-snapshots/ USERNAME=xintai PASSWORD=xintai2018 # 编译模式: false - 依赖本地版本, true - 依赖 maven 版本 -RELEASE=true +RELEASE=false # 模块版本 DEMO_MODULE_MAP_VERSION=1.0.0-SNAPSHOT DEMO_MODULE_MAP2_VERSION=1.0.0-SNAPSHOT diff --git a/modules/mogo-module-extensions/src/main/res/layout/module_ext_layout_extensions.xml b/modules/mogo-module-extensions/src/main/res/layout/module_ext_layout_extensions.xml index e8e613ecd4..e7921e4e1a 100644 --- a/modules/mogo-module-extensions/src/main/res/layout/module_ext_layout_extensions.xml +++ b/modules/mogo-module-extensions/src/main/res/layout/module_ext_layout_extensions.xml @@ -3,10 +3,10 @@ xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" - android:layout_height="60dp" + android:layout_height="@dimen/dp_120" android:orientation="vertical" - android:paddingLeft="35dp" - android:paddingRight="35dp"> + android:paddingLeft="@dimen/dp_70" + android:paddingRight="@dimen/dp_70"> @@ -34,7 +34,7 @@ android:layout_height="wrap_content" android:gravity="center_vertical" android:textColor="#FFFFFF" - android:textSize="24dp" + android:textSize="@dimen/dp_48" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" @@ -44,10 +44,10 @@ android:id="@+id/module_ext_id_date" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginRight="40dp" + android:layout_marginRight="@dimen/dp_80" android:gravity="center_vertical" android:textColor="#FFFFFF" - android:textSize="14dp" + android:textSize="@dimen/dp_28" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintRight_toLeftOf="@+id/module_ext_id_time" app:layout_constraintTop_toTopOf="parent" @@ -57,7 +57,7 @@ android:id="@+id/module_ext_id_weather_container" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginRight="13dp" + android:layout_marginRight="@dimen/dp_26" android:gravity="center" android:visibility="gone" app:layout_constraintBottom_toBottomOf="parent" @@ -66,26 +66,26 @@ @@ -100,7 +100,7 @@ android:id="@+id/module_ext_id_msg" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginRight="14dp" + android:layout_marginRight="@dimen/dp_28" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintRight_toLeftOf="@+id/module_ext_id_weather_container" app:layout_constraintTop_toTopOf="parent"> @@ -112,14 +112,14 @@ diff --git a/modules/mogo-module-main/src/main/res/layout/module_main_activity_main.xml b/modules/mogo-module-main/src/main/res/layout/module_main_activity_main.xml index 467245a03b..485feb099d 100644 --- a/modules/mogo-module-main/src/main/res/layout/module_main_activity_main.xml +++ b/modules/mogo-module-main/src/main/res/layout/module_main_activity_main.xml @@ -17,8 +17,8 @@ + 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." ) ); + } } } ); }