diff --git a/.idea/misc.xml b/.idea/misc.xml index 707ee6e613..2dc54c489f 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,6 +1,6 @@ - + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index de2af7923d..65532a4c2f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -4,7 +4,7 @@ apply plugin: 'com.android.application' android { compileSdkVersion rootProject.ext.android.compileSdkVersion - buildToolsVersion rootProject.ext.android.buildToolsVersion + // buildToolsVersion rootProject.ext.android.buildToolsVersion defaultConfig { minSdkVersion rootProject.ext.android.minSdkVersion targetSdkVersion rootProject.ext.android.targetSdkVersion @@ -39,11 +39,13 @@ android { debug { signingConfig signingConfigs.release debuggable = true + buildConfigField 'int', 'NET_ENV', '2' } release { minifyEnabled false signingConfig signingConfigs.release proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + buildConfigField 'int', 'NET_ENV', '3' } } compileOptions { diff --git a/app/src/main/java/com/mogo/launcher/MogoApplication.java b/app/src/main/java/com/mogo/launcher/MogoApplication.java index 5cd280f032..8c3924cf8c 100644 --- a/app/src/main/java/com/mogo/launcher/MogoApplication.java +++ b/app/src/main/java/com/mogo/launcher/MogoApplication.java @@ -30,7 +30,7 @@ public class MogoApplication extends AbsMogoApplication { super.onCreate(); // MogoModulePaths.addModule( new MogoModule( DemoConstants.TAG, "CARD_DEMO" ) ); // MogoModulePaths.addModule( new MogoModule( Demo2Constants.TAG, "CARD_DEMO2" ) ); - DebugConfig.setNetMode( DebugConfig.NET_MODE_QA ); + DebugConfig.setNetMode( BuildConfig.NET_ENV ); MogoModulePaths.addModule( new MogoModule( OnLineCarConstants.TAG, OnLineCarConstants.MODULE_NAME ) ); MogoModulePaths.addModule( new MogoModule( TanluConstants.TAG, TanluConstants.MODEL_NAME ) ); MogoModulePaths.addModule( new MogoModule( CallChatConstant.PROVIDER, CallChatConstant.MODULE_NAME ) ); diff --git a/config.gradle b/config.gradle index c4c2ab4f8c..c7760b645a 100644 --- a/config.gradle +++ b/config.gradle @@ -1,7 +1,7 @@ ext { android = [ applicationId : "com.mogo.launcher", - compileSdkVersion: 29, + compileSdkVersion: 28, buildToolsVersion: "29.0.2", minSdkVersion : 19, targetSdkVersion : 22, diff --git a/foudations/mogo-commons/build.gradle b/foudations/mogo-commons/build.gradle index 9064279c30..10c8490898 100644 --- a/foudations/mogo-commons/build.gradle +++ b/foudations/mogo-commons/build.gradle @@ -2,7 +2,7 @@ apply plugin: 'com.android.library' android { compileSdkVersion rootProject.ext.android.compileSdkVersion - buildToolsVersion rootProject.ext.android.buildToolsVersion + // buildToolsVersion rootProject.ext.android.buildToolsVersion defaultConfig { minSdkVersion rootProject.ext.android.minSdkVersion targetSdkVersion rootProject.ext.android.targetSdkVersion diff --git a/foudations/mogo-commons/src/main/java/com/mogo/commons/network/ParamsUtil.java b/foudations/mogo-commons/src/main/java/com/mogo/commons/network/ParamsUtil.java index 79ca7b4f74..73ca6ac8a3 100644 --- a/foudations/mogo-commons/src/main/java/com/mogo/commons/network/ParamsUtil.java +++ b/foudations/mogo-commons/src/main/java/com/mogo/commons/network/ParamsUtil.java @@ -75,6 +75,8 @@ public class ParamsUtil { public static Map< String, Object > getAnalyticsCustomParams() { Map< String, Object > map = new ArrayMap<>(); map.put( "debug", DebugConfig.isDebug() ? 1 : 0 ); + map.put( "systemversion", Utils.getFotaVersion() ); + map.put( "sn", Utils.getSn() ); return map; } 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 350234532b..ccb06a943c 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 @@ -55,15 +55,24 @@ public class Utils { public static final String GET = "get"; public static final String GSM_SERIAL = "gsm.serial"; + public static final String FOTA_VERSION = "ro.fota.version"; public static final String PROPERTIES = "android.os.SystemProperties"; public static String getSn() { - String serial = ""; + return getSystemProperties( GSM_SERIAL ); + } + + public static String getFotaVersion() { + return getSystemProperties( FOTA_VERSION ); + } + + public static String getSystemProperties( String name ) { + String value = ""; try { Class< ? > c = Class.forName( PROPERTIES ); Method get = c.getMethod( GET, String.class ); - serial = ( String ) get.invoke( c, GSM_SERIAL ); + value = ( String ) get.invoke( c, GSM_SERIAL ); } catch ( ClassNotFoundException var3 ) { var3.printStackTrace(); } catch ( NoSuchMethodException var4 ) { @@ -73,7 +82,6 @@ public class Utils { } catch ( IllegalAccessException var6 ) { var6.printStackTrace(); } - - return serial; + return value; } } diff --git a/foudations/mogo-connection/build.gradle b/foudations/mogo-connection/build.gradle index 2e029485b7..db342def5f 100644 --- a/foudations/mogo-connection/build.gradle +++ b/foudations/mogo-connection/build.gradle @@ -3,7 +3,7 @@ apply plugin: 'com.alibaba.arouter' android { compileSdkVersion rootProject.ext.android.compileSdkVersion - buildToolsVersion rootProject.ext.android.buildToolsVersion + // buildToolsVersion rootProject.ext.android.buildToolsVersion defaultConfig { minSdkVersion rootProject.ext.android.minSdkVersion targetSdkVersion rootProject.ext.android.targetSdkVersion diff --git a/foudations/mogo-utils/build.gradle b/foudations/mogo-utils/build.gradle index d4d19b5d03..2c08bfb9a3 100644 --- a/foudations/mogo-utils/build.gradle +++ b/foudations/mogo-utils/build.gradle @@ -2,7 +2,7 @@ apply plugin: 'com.android.library' android { compileSdkVersion rootProject.ext.android.compileSdkVersion - buildToolsVersion rootProject.ext.android.buildToolsVersion + // buildToolsVersion rootProject.ext.android.buildToolsVersion defaultConfig { minSdkVersion rootProject.ext.android.minSdkVersion targetSdkVersion rootProject.ext.android.targetSdkVersion diff --git a/libraries/map-amap/build.gradle b/libraries/map-amap/build.gradle index b70d651de7..a2c484c213 100644 --- a/libraries/map-amap/build.gradle +++ b/libraries/map-amap/build.gradle @@ -2,7 +2,7 @@ apply plugin: 'com.android.library' android { compileSdkVersion rootProject.ext.android.compileSdkVersion - buildToolsVersion rootProject.ext.android.buildToolsVersion + // buildToolsVersion rootProject.ext.android.buildToolsVersion defaultConfig { minSdkVersion rootProject.ext.android.minSdkVersion targetSdkVersion rootProject.ext.android.targetSdkVersion 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 ad33524ffe..f80491fafd 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 @@ -129,6 +129,7 @@ public class AMapNaviViewWrapper implements IMogoMapView, options.setNaviArrowVisible( false ); // 通过路线是否自动置灰,仅支持驾车导航 options.setAfterRouteAutoGray( true ); + options.setZoom( 16 ); options.setPointToCenter( 0.5D, 0.5D ); // 2D模式 options.setTilt( 0 ); @@ -456,6 +457,7 @@ public class AMapNaviViewWrapper implements IMogoMapView, public void onNaviStarted() { if ( checkAMapView() ) { mMapView.setCarOverlayVisible( true ); + showMyLocation( false ); } } @@ -463,6 +465,7 @@ public class AMapNaviViewWrapper implements IMogoMapView, public void onNaviStopped() { if ( checkAMapView() ) { mMapView.setCarOverlayVisible( false ); + showMyLocation( true ); } } diff --git a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/AMapNaviListenerAdapter.java b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/AMapNaviListenerAdapter.java index dfe0daa985..f870148573 100644 --- a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/AMapNaviListenerAdapter.java +++ b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/AMapNaviListenerAdapter.java @@ -15,6 +15,7 @@ import com.amap.api.navi.model.AimLessModeCongestionInfo; import com.amap.api.navi.model.AimLessModeStat; import com.amap.api.navi.model.NaviInfo; import com.autonavi.tbt.TrafficFacilityInfo; +import com.mogo.utils.logger.Logger; /** * @author congtaowang @@ -24,6 +25,8 @@ import com.autonavi.tbt.TrafficFacilityInfo; */ public abstract class AMapNaviListenerAdapter implements AMapNaviListener { + private static final String TAG = "AMapNaviListenerAdapter"; + @Override public void onInitNaviFailure() { @@ -111,9 +114,15 @@ public abstract class AMapNaviListenerAdapter implements AMapNaviListener { @Override public void updateIntervalCameraInfo( AMapNaviCameraInfo aMapNaviCameraInfo, AMapNaviCameraInfo aMapNaviCameraInfo1, int i ) { - + if ( aMapNaviCameraInfo != null ) { + Logger.i( TAG, "current camera speed: %d, status = %d", aMapNaviCameraInfo.getCameraSpeed(), i ); + } + if ( aMapNaviCameraInfo1 != null ) { + Logger.i( TAG, "current camera speed: %d, status = %d", aMapNaviCameraInfo1.getCameraSpeed(), i ); + } } + @Override public void onServiceAreaUpdate( AMapServiceAreaInfo[] aMapServiceAreaInfos ) { @@ -179,11 +188,23 @@ public abstract class AMapNaviListenerAdapter implements AMapNaviListener { } + /** + * 巡航回调 + * 连续5个点速度大于15km/h后触发 updateAimlessModeStatistics 回调,通过 AimLessModeStat 对象可获取巡航的连续行驶距离和连续启用时间 + * + * @param aimLessModeStat + */ @Override public void updateAimlessModeStatistics( AimLessModeStat aimLessModeStat ) { } + /** + * 巡航回调 + * 出现拥堵长度大于500米且拥堵时间大于5分钟时,会进到 updateAimlessModeCongestionInfo 回调中,通过 AimLessModeCongestionInfo 对象,可获取到道路拥堵信息(如:导致拥堵的事件类型、拥堵的状态等) + * + * @param aimLessModeCongestionInfo + */ @Override public void updateAimlessModeCongestionInfo( AimLessModeCongestionInfo aimLessModeCongestionInfo ) { diff --git a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/AimlessModeListenerAdapter.java b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/AimlessModeListenerAdapter.java new file mode 100644 index 0000000000..9b9f45e1ef --- /dev/null +++ b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/AimlessModeListenerAdapter.java @@ -0,0 +1,204 @@ +package com.mogo.map.impl.amap.navi; + +import com.amap.api.navi.AimlessModeListener; +import com.amap.api.navi.model.AMapNaviTrafficFacilityInfo; +import com.amap.api.navi.model.AimLessModeCongestionInfo; +import com.amap.api.navi.model.AimLessModeStat; +import com.mogo.map.navi.MogoNaviListenerHandler; +import com.mogo.map.navi.MogoTraffic; + +/** + * @author congtaowang + * @since 2020-01-16 + *

+ * 巡航监听 + */ +public class AimlessModeListenerAdapter implements AimlessModeListener { + + @Override + public void onUpdateTrafficFacility( AMapNaviTrafficFacilityInfo[] aMapNaviTrafficFacilityInfos ) { + if ( aMapNaviTrafficFacilityInfos == null || aMapNaviTrafficFacilityInfos.length == 0 ) { + return; + } + int speedLimit = 0; + for ( AMapNaviTrafficFacilityInfo aMapNaviTrafficFacilityInfo : aMapNaviTrafficFacilityInfos ) { + if ( aMapNaviTrafficFacilityInfo == null ) { + continue; + } + speedLimit = aMapNaviTrafficFacilityInfo.getLimitSpeed(); + if ( aMapNaviTrafficFacilityInfo.getBroadcastType() == 4 && aMapNaviTrafficFacilityInfo.getLimitSpeed() > 0 ) { + MogoTraffic traffic = new MogoTraffic( MogoTraffic.TYPE_AIM ); + traffic.setDistance( aMapNaviTrafficFacilityInfo.getDistance() ); + traffic.setSpeedLimit( aMapNaviTrafficFacilityInfo.getLimitSpeed() ); + traffic.setDesc( "测速摄像头、测速雷达" ); + MogoNaviListenerHandler.getInstance().onUpdateTraffic( traffic ); + } + } + if ( speedLimit <= 0 ) { + MogoTraffic traffic = new MogoTraffic( MogoTraffic.TYPE_AIM ); + traffic.setDistance( 0 ); + traffic.setSpeedLimit( 0 ); + traffic.setDesc( "测速摄像头、测速雷达" ); + MogoNaviListenerHandler.getInstance().onUpdateTraffic( traffic ); + } +// MogoTraffic traffic = new MogoTraffic( MogoTraffic.TYPE_AIM ); +// traffic.setDistance( aMapNaviTrafficFacilityInfos[0].getDistance() ); +// traffic.setSpeedLimit( aMapNaviTrafficFacilityInfos[0].getLimitSpeed() ); +// switch ( aMapNaviTrafficFacilityInfos[0].getBroadcastType() ) { +// case 0: +// traffic.setDesc( "未知道路设施" ); +// break; +// case 4: +// traffic.setDesc( "测速摄像头、测速雷达" ); +// break; +// case 5: +// traffic.setDesc( "违章摄像头" ); +// break; +// case 10: +// traffic.setDesc( "请谨慎驾驶" ); +// break; +// case 11: +// traffic.setDesc( "有连续拍照" ); +// break; +// case 12: +// traffic.setDesc( "铁路道口" ); +// break; +// case 13: +// traffic.setDesc( "注意落石(左侧)" ); +// break; +// case 14: +// traffic.setDesc( "事故易发地段" ); +// break; +// case 15: +// traffic.setDesc( "易滑" ); +// break; +// case 16: +// traffic.setDesc( "村庄" ); +// break; +// case 18: +// traffic.setDesc( "前方学校" ); +// break; +// case 19: +// traffic.setDesc( "有人看管的铁路道口" ); +// break; +// case 20: +// traffic.setDesc( "无人看管的铁路道口" ); +// break; +// case 21: +// traffic.setDesc( "两侧变窄" ); +// break; +// case 22: +// traffic.setDesc( "向左急弯路" ); +// break; +// case 23: +// traffic.setDesc( "向右急弯路" ); +// break; +// case 24: +// traffic.setDesc( "反向弯路" ); +// break; +// case 25: +// traffic.setDesc( "连续弯路" ); +// break; +// case 26: +// traffic.setDesc( "左侧合流标识牌" ); +// break; +// case 27: +// traffic.setDesc( "右侧合流标识牌" ); +// break; +// case 28: +// traffic.setDesc( "监控摄像头" ); +// break; +// case 29: +// traffic.setDesc( "专用道摄像头" ); +// break; +// case 31: +// traffic.setDesc( "禁止超车" ); +// break; +// case 36: +// traffic.setDesc( "右侧变窄" ); +// break; +// case 37: +// traffic.setDesc( "左侧变窄" ); +// break; +// case 38: +// traffic.setDesc( "窄桥" ); +// break; +// case 39: +// traffic.setDesc( "左右绕行" ); +// break; +// case 40: +// traffic.setDesc( "左侧绕行" ); +// break; +// case 41: +// traffic.setDesc( "右侧绕行" ); +// break; +// case 42: +// traffic.setDesc( "注意落石(右侧)" ); +// break; +// case 43: +// traffic.setDesc( "傍山险路(左侧)" ); +// break; +// case 44: +// traffic.setDesc( "傍山险路(右侧)" ); +// break; +// case 47: +// traffic.setDesc( "上陡坡" ); +// break; +// case 48: +// traffic.setDesc( "下陡坡" ); +// break; +// case 49: +// traffic.setDesc( "过水路面" ); +// break; +// case 50: +// traffic.setDesc( "路面不平" ); +// break; +// case 52: +// traffic.setDesc( "慢行" ); +// break; +// case 53: +// traffic.setDesc( "注意危险" ); +// break; +// case 58: +// traffic.setDesc( "隧道" ); +// break; +// case 59: +// traffic.setDesc( "渡口" ); +// break; +// case 92: +// traffic.setDesc( "闯红灯" ); +// break; +// case 93: +// traffic.setDesc( "应急车道" ); +// break; +// case 94: +// traffic.setDesc( "非机动车道" ); +// break; +// case 100: +// traffic.setDesc( "不绑定电子眼高发地" ); +// break; +// case 101: +// traffic.setDesc( "车道违章" ); +// break; +// case 102: +// traffic.setDesc( "超速违章" ); +// break; +// } + + } + + @Override + public void onUpdateAimlessModeElecCameraInfo( AMapNaviTrafficFacilityInfo[] aMapNaviTrafficFacilityInfos ) { + + } + + @Override + public void updateAimlessModeStatistics( AimLessModeStat aimLessModeStat ) { + + } + + @Override + public void updateAimlessModeCongestionInfo( AimLessModeCongestionInfo aimLessModeCongestionInfo ) { + + } +} diff --git a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/NaviClient.java b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/NaviClient.java index 1675ec9d3f..5af6826e99 100644 --- a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/NaviClient.java +++ b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/NaviClient.java @@ -5,6 +5,7 @@ import android.graphics.Rect; import com.amap.api.maps.model.Polyline; import com.amap.api.navi.AMapNavi; +import com.amap.api.navi.enums.AimLessMode; import com.amap.api.navi.enums.NaviType; import com.amap.api.navi.model.NaviLatLng; import com.mogo.map.MogoLatLng; @@ -32,6 +33,9 @@ public class NaviClient implements IMogoNavi { private AMapNavi mAMapNavi; private final NaviListenerAdapter mAMapNaviListener; + + private final AimlessModeListenerAdapter mAimlessModeListener; + /** * 导航策略配置 */ @@ -45,7 +49,10 @@ public class NaviClient implements IMogoNavi { mAMapNavi.setEmulatorNaviSpeed( 120 ); mAMapNavi.setUseInnerVoice( true ); mAMapNaviListener = new NaviListenerAdapter( context, mAMapNavi, this ); + mAimlessModeListener = new AimlessModeListenerAdapter() { + }; mAMapNavi.addAMapNaviListener( mAMapNaviListener ); + mAMapNavi.addAimlessModeListener( mAimlessModeListener ); } public static NaviClient getInstance( Context context ) { @@ -123,6 +130,8 @@ public class NaviClient implements IMogoNavi { if ( mAMapNaviListener != null ) { mAMapNaviListener.stopNavi(); } + // 开启巡航 巡航时返回电子眼和特殊道路设施信息 + mAMapNavi.startAimlessMode( AimLessMode.CAMERA_AND_SPECIALROAD_DETECTED ); } @@ -131,6 +140,8 @@ public class NaviClient implements IMogoNavi { if ( mAMapNaviListener.isStopped() ) { return; } + // 关闭巡航 + mAMapNavi.stopAimlessMode(); mIsRealNavi = isRealNavi; mAMapNavi.startNavi( isRealNavi ? NaviType.GPS : NaviType.EMULATOR ); } @@ -176,16 +187,18 @@ public class NaviClient implements IMogoNavi { @Override public void setCalculatePathDisplayBounds( Rect bounds ) { if ( mAMapNaviListener != null ) { - mAMapNaviListener.setCalculatePathDisplayBounds(bounds); + mAMapNaviListener.setCalculatePathDisplayBounds( bounds ); } } - @Override public MogoNaviConfig getNaviConfig() { + @Override + public MogoNaviConfig getNaviConfig() { return mMogoNaviConfig; } - @Override public boolean setBroadcastMode(int mode) { - return mAMapNavi.setBroadcastMode(mode); + @Override + public boolean setBroadcastMode( int mode ) { + return mAMapNavi.setBroadcastMode( mode ); } // -- end diff --git a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/NaviListenerAdapter.java b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/NaviListenerAdapter.java index b48d9ac07f..572380b7d1 100644 --- a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/NaviListenerAdapter.java +++ b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/navi/NaviListenerAdapter.java @@ -5,8 +5,13 @@ import android.graphics.Rect; import com.amap.api.maps.model.Polyline; import com.amap.api.navi.AMapNavi; +import com.amap.api.navi.AimlessModeListener; +import com.amap.api.navi.enums.AimLessMode; +import com.amap.api.navi.enums.CameraType; +import com.amap.api.navi.enums.CarEnterCameraStatus; import com.amap.api.navi.enums.NaviType; import com.amap.api.navi.model.AMapCalcRouteResult; +import com.amap.api.navi.model.AMapNaviCameraInfo; import com.amap.api.navi.model.AMapNaviInfo; import com.amap.api.navi.model.AMapNaviLocation; import com.amap.api.navi.model.NaviInfo; @@ -15,6 +20,7 @@ import com.mogo.map.impl.amap.message.AMapMessageManager; import com.mogo.map.impl.amap.utils.ObjectUtils; import com.mogo.map.navi.MogoCalculatePath; import com.mogo.map.navi.MogoNaviListenerHandler; +import com.mogo.map.navi.MogoTraffic; import com.mogo.map.navi.OnCalculatePathItemClickInteraction; import com.mogo.utils.logger.Logger; @@ -86,14 +92,77 @@ public class NaviListenerAdapter extends AMapNaviListenerAdapter { } @Override - public void onStartNavi( int i ) { - setStopped( false ); - setNaviing( true ); - if ( mAMapNavi != null ) { - mAMapNavi.startSpeak(); + public void updateCameraInfo( AMapNaviCameraInfo[] aMapNaviCameraInfos ) { + super.updateCameraInfo( aMapNaviCameraInfos ); + if ( aMapNaviCameraInfos == null || aMapNaviCameraInfos.length == 0 ) { + return; + } + int limitSpeed = 0; + for ( AMapNaviCameraInfo aMapNaviCameraInfo : aMapNaviCameraInfos ) { + if ( aMapNaviCameraInfo == null ) { + continue; + } + limitSpeed = aMapNaviCameraInfo.getCameraSpeed(); + if ( limitSpeed > 0 && aMapNaviCameraInfo.getCameraType() == CameraType.SPEED ) { + MogoTraffic traffic = new MogoTraffic( MogoTraffic.TYPE_NAVI ); + traffic.setDistance( aMapNaviCameraInfo.getCameraDistance() ); + traffic.setSpeedLimit( aMapNaviCameraInfo.getCameraSpeed() ); + traffic.setDesc( "测速摄像" ); + MogoNaviListenerHandler.getInstance().onUpdateTraffic( traffic ); + } + +// switch ( aMapNaviCameraInfo.getCameraType() ) { +// case CameraType.SPEED: +// +// break; +// case CameraType.SURVEILLANCE: +// traffic.setDesc( "监控摄像" ); +// break; +// case CameraType.TRAFFICLIGHT: +// traffic.setDesc( "闯红灯拍照" ); +// break; +// case CameraType.BREAKRULE: +// traffic.setDesc( "违章拍照" ); +// break; +// case CameraType.BUSWAY: +// traffic.setDesc( "公交专用道摄像头" ); +// break; +// case CameraType.EMERGENCY: +// traffic.setDesc( "应急车道拍照" ); +// break; +// case CameraType.BICYCLE: +// traffic.setDesc( "非机动车道" ); +// break; +// case CameraType.INTERVALVELOCITYSTART: +// traffic.setDesc( "区间测速起始" ); +// break; +// case CameraType.INTERVALVELOCITYEND: +// traffic.setDesc( "区间测速解除" ); +// break; +// } + } + if ( limitSpeed <= 0 ) { + MogoTraffic traffic = new MogoTraffic( MogoTraffic.TYPE_NAVI ); + traffic.setDistance( 0 ); + traffic.setSpeedLimit( 0 ); + traffic.setDesc( "测速摄像" ); + MogoNaviListenerHandler.getInstance().onUpdateTraffic( traffic ); + } + } + + @Override + public void onStartNavi( int type ) { + + // 巡航 + if ( type != NaviType.CRUISE ) { + setStopped( false ); + setNaviing( true ); + if ( mAMapNavi != null ) { + mAMapNavi.startSpeak(); + } + MogoNaviListenerHandler.getInstance().onStartNavi(); + AMapMessageManager.getInstance().postNaviStarted(); } - MogoNaviListenerHandler.getInstance().onStartNavi(); - AMapMessageManager.getInstance().postNaviStarted(); } @Override @@ -148,10 +217,10 @@ public class NaviListenerAdapter extends AMapNaviListenerAdapter { if ( mNaviOverlayHelper != null ) { mNaviOverlayHelper.handleClickedPolyline( polyline, isNaviing() ); mAMapNavi.selectRouteId( mNaviOverlayHelper.getSelectedPathId() ); - if ( isNaviing() ) { - mAMapNavi.stopNavi(); - mAMapNavi.startNavi( mClient.isRealNavi() ? NaviType.GPS : NaviType.EMULATOR ); - } +// if ( isNaviing() ) { +// mAMapNavi.stopNavi(); +// mAMapNavi.startNavi( mClient.isRealNavi() ? NaviType.GPS : NaviType.EMULATOR ); +// } } } @@ -175,15 +244,15 @@ public class NaviListenerAdapter extends AMapNaviListenerAdapter { } } - public void clearCalculatePaths(){ + public void clearCalculatePaths() { if ( mNaviOverlayHelper != null ) { mNaviOverlayHelper.clearCalculatedOverlay(); } } - public void setCalculatePathDisplayBounds( Rect bounds ){ + public void setCalculatePathDisplayBounds( Rect bounds ) { if ( mNaviOverlayHelper != null ) { - mNaviOverlayHelper.setCalculatePathDisplayBounds(bounds); + mNaviOverlayHelper.setCalculatePathDisplayBounds( bounds ); } } } diff --git a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/utils/ObjectUtils.java b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/utils/ObjectUtils.java index b035a4fdf3..fec2a14a02 100644 --- a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/utils/ObjectUtils.java +++ b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/utils/ObjectUtils.java @@ -636,6 +636,7 @@ public class ObjectUtils { mogoNaviInfo.setNextRoadName( naviInfo.getNextRoadName() ); mogoNaviInfo.setPathRetainDistance( naviInfo.getPathRetainDistance() ); mogoNaviInfo.setPathRetainTime( naviInfo.getPathRetainTime() ); + mogoNaviInfo.setCurrentSpeed( naviInfo.getLimitSpeed() ); return mogoNaviInfo; } } diff --git a/libraries/map-baidu/build.gradle b/libraries/map-baidu/build.gradle index 132d753ede..16897a579a 100644 --- a/libraries/map-baidu/build.gradle +++ b/libraries/map-baidu/build.gradle @@ -2,7 +2,7 @@ apply plugin: 'com.android.library' android { compileSdkVersion rootProject.ext.android.compileSdkVersion - buildToolsVersion rootProject.ext.android.buildToolsVersion + // buildToolsVersion rootProject.ext.android.buildToolsVersion defaultConfig { minSdkVersion rootProject.ext.android.minSdkVersion targetSdkVersion rootProject.ext.android.targetSdkVersion diff --git a/libraries/mogo-map-api/build.gradle b/libraries/mogo-map-api/build.gradle index 5c38883e28..9fbe1f35f1 100644 --- a/libraries/mogo-map-api/build.gradle +++ b/libraries/mogo-map-api/build.gradle @@ -2,7 +2,7 @@ apply plugin: 'com.android.library' android { compileSdkVersion rootProject.ext.android.compileSdkVersion - buildToolsVersion rootProject.ext.android.buildToolsVersion + // buildToolsVersion rootProject.ext.android.buildToolsVersion defaultConfig { minSdkVersion rootProject.ext.android.minSdkVersion targetSdkVersion rootProject.ext.android.targetSdkVersion diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/navi/IMogoNavi.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/navi/IMogoNavi.java index 73fcb2d307..74f7579b07 100644 --- a/libraries/mogo-map-api/src/main/java/com/mogo/map/navi/IMogoNavi.java +++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/navi/IMogoNavi.java @@ -63,7 +63,8 @@ public interface IMogoNavi { * * @param isRealNavi true - 实时导航 false - 模拟导航 */ - void startNavi( boolean isRealNavi ); + void + startNavi( boolean isRealNavi ); /** * 是否正在导航 diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/navi/IMogoNaviListener.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/navi/IMogoNaviListener.java index 762e5d4f91..3047900c0e 100644 --- a/libraries/mogo-map-api/src/main/java/com/mogo/map/navi/IMogoNaviListener.java +++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/navi/IMogoNaviListener.java @@ -44,4 +44,9 @@ public interface IMogoNaviListener { * 路径规划失败 */ void onoCalculateFailed(); + + /** + * 巡航信息发生改变 + */ + void onUpdateTraffic(MogoTraffic traffic); } diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/navi/MogoNaviInfo.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/navi/MogoNaviInfo.java index 1da3f6d630..ee394bfef8 100644 --- a/libraries/mogo-map-api/src/main/java/com/mogo/map/navi/MogoNaviInfo.java +++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/navi/MogoNaviInfo.java @@ -54,6 +54,11 @@ public class MogoNaviInfo implements Parcelable { */ private int pathRetainDistance; + /** + * 当前限速 + */ + private float currentLimitSpeed; + public String getCurrentRoadName() { return currentRoadName; } @@ -118,6 +123,14 @@ public class MogoNaviInfo implements Parcelable { this.pathRetainDistance = pathRetainDistance; } + public float getCurrentLimitSpeed() { + return currentLimitSpeed; + } + + public void setCurrentLimitSpeed( float currentLimitSpeed ) { + this.currentLimitSpeed = currentLimitSpeed; + } + @Override public int describeContents() { return 0; @@ -133,6 +146,7 @@ public class MogoNaviInfo implements Parcelable { dest.writeString( this.nextRoadName ); dest.writeInt( this.pathRetainTime ); dest.writeInt( this.pathRetainDistance ); + dest.writeFloat( this.currentLimitSpeed ); } public MogoNaviInfo() { @@ -147,9 +161,10 @@ public class MogoNaviInfo implements Parcelable { this.nextRoadName = in.readString(); this.pathRetainTime = in.readInt(); this.pathRetainDistance = in.readInt(); + this.currentLimitSpeed = in.readFloat(); } - public static final Parcelable.Creator< MogoNaviInfo > CREATOR = new Parcelable.Creator< MogoNaviInfo >() { + public static final Creator< MogoNaviInfo > CREATOR = new Creator< MogoNaviInfo >() { @Override public MogoNaviInfo createFromParcel( Parcel source ) { return new MogoNaviInfo( source ); diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/navi/MogoNaviListenerHandler.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/navi/MogoNaviListenerHandler.java index f3a29328f9..f627910fe6 100644 --- a/libraries/mogo-map-api/src/main/java/com/mogo/map/navi/MogoNaviListenerHandler.java +++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/navi/MogoNaviListenerHandler.java @@ -91,4 +91,11 @@ public class MogoNaviListenerHandler implements IMogoNaviListener, IMogoNaviList mDelegateListener.onoCalculateFailed(); } } + + @Override + public void onUpdateTraffic( MogoTraffic traffic ) { + if ( mDelegateListener != null ) { + mDelegateListener.onUpdateTraffic( traffic ); + } + } } diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/navi/MogoTraffic.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/navi/MogoTraffic.java new file mode 100644 index 0000000000..a331207c91 --- /dev/null +++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/navi/MogoTraffic.java @@ -0,0 +1,76 @@ +package com.mogo.map.navi; + +/** + * @author congtaowang + * @since 2020-01-16 + *

+ * 巡航信息、导航信息 + */ +public class MogoTraffic { + + /** + * 导航 + */ + public static final int TYPE_NAVI = 1; + + /** + * 巡航 + */ + public static final int TYPE_AIM = 2; + + /** + * 导航 or 巡航 + */ + private int mFromType; + + /** + * 距离 + */ + private int mDistance; + + /** + * 限速 + */ + private int mSpeedLimit; + + /** + * 描述 + */ + private String mDesc; + + public MogoTraffic( int fromType ) { + mFromType = fromType; + } + + public int getFromType() { + return mFromType; + } + + public void setFromType( int fromType ) { + this.mFromType = fromType; + } + + public int getDistance() { + return mDistance; + } + + public void setDistance( int distance ) { + this.mDistance = distance; + } + + public int getSpeedLimit() { + return mSpeedLimit; + } + + public void setSpeedLimit( int speedLimit ) { + this.mSpeedLimit = speedLimit; + } + + public String getDesc() { + return mDesc; + } + + public void setDesc( String desc ) { + this.mDesc = desc; + } +} diff --git a/libraries/mogo-map/build.gradle b/libraries/mogo-map/build.gradle index 3dfd2a8589..064d1d82b8 100644 --- a/libraries/mogo-map/build.gradle +++ b/libraries/mogo-map/build.gradle @@ -2,7 +2,7 @@ apply plugin: 'com.android.library' android { compileSdkVersion rootProject.ext.android.compileSdkVersion - buildToolsVersion rootProject.ext.android.buildToolsVersion + // buildToolsVersion rootProject.ext.android.buildToolsVersion defaultConfig { minSdkVersion rootProject.ext.android.minSdkVersion targetSdkVersion rootProject.ext.android.targetSdkVersion diff --git a/modules/mogo-module-apps/build.gradle b/modules/mogo-module-apps/build.gradle index 35003b7077..8b87ab74eb 100644 --- a/modules/mogo-module-apps/build.gradle +++ b/modules/mogo-module-apps/build.gradle @@ -3,7 +3,7 @@ apply plugin: 'com.alibaba.arouter' android { compileSdkVersion rootProject.ext.android.compileSdkVersion - buildToolsVersion rootProject.ext.android.buildToolsVersion + // buildToolsVersion rootProject.ext.android.buildToolsVersion defaultConfig { minSdkVersion rootProject.ext.android.minSdkVersion targetSdkVersion rootProject.ext.android.targetSdkVersion diff --git a/modules/mogo-module-apps/src/main/res/drawable-ldpi/module_apps_ic_retract.png b/modules/mogo-module-apps/src/main/res/drawable-ldpi/module_apps_ic_retract.png index 8c37a69e35..24d42281c4 100755 Binary files a/modules/mogo-module-apps/src/main/res/drawable-ldpi/module_apps_ic_retract.png and b/modules/mogo-module-apps/src/main/res/drawable-ldpi/module_apps_ic_retract.png differ diff --git a/modules/mogo-module-apps/src/main/res/layout/module_apps_fragment_apps.xml b/modules/mogo-module-apps/src/main/res/layout/module_apps_fragment_apps.xml index 1229ca7d01..20a38ba132 100644 --- a/modules/mogo-module-apps/src/main/res/layout/module_apps_fragment_apps.xml +++ b/modules/mogo-module-apps/src/main/res/layout/module_apps_fragment_apps.xml @@ -19,11 +19,11 @@ android:layout_height="match_parent"> @@ -38,7 +38,7 @@ android:id="@+id/module_apps_id_apps_pager" android:layout_width="match_parent" android:layout_height="match_parent" - android:layout_marginTop="@dimen/dp_210" + android:layout_marginTop="@dimen/module_apps_pager_marginTop" android:overScrollMode="never" /> + android:paddingBottom="@dimen/module_apps_navigation_icon_paddingBottom"> \ No newline at end of file diff --git a/modules/mogo-module-apps/src/main/res/layout/module_apps_item_app.xml b/modules/mogo-module-apps/src/main/res/layout/module_apps_item_app.xml index 499d8a5166..7fe69dfb38 100644 --- a/modules/mogo-module-apps/src/main/res/layout/module_apps_item_app.xml +++ b/modules/mogo-module-apps/src/main/res/layout/module_apps_item_app.xml @@ -8,16 +8,16 @@ + android:layout_width="@dimen/module_apps_navigation_icon_width" + android:layout_height="@dimen/module_apps_navigation_icon_height" /> + android:textSize="@dimen/module_apps_app_name_textSize" /> \ No newline at end of file diff --git a/modules/mogo-module-apps/src/main/res/layout/module_apps_item_app_pager.xml b/modules/mogo-module-apps/src/main/res/layout/module_apps_item_app_pager.xml index 1e159101ce..b7fce405bf 100644 --- a/modules/mogo-module-apps/src/main/res/layout/module_apps_item_app_pager.xml +++ b/modules/mogo-module-apps/src/main/res/layout/module_apps_item_app_pager.xml @@ -5,8 +5,8 @@ android:layout_height="match_parent" android:numColumns="6" android:orientation="vertical" - android:paddingLeft="@dimen/dp_220" - android:paddingRight="@dimen/dp_220" - android:verticalSpacing="@dimen/dp_154"> + android:paddingLeft="@dimen/module_apps_page_paddingLeft" + android:paddingRight="@dimen/module_apps_page_paddingRight" + android:verticalSpacing="@dimen/module_apps_page_item_verticalSpacing"> \ No newline at end of file diff --git a/modules/mogo-module-apps/src/main/res/values-ldpi/dimens.xml b/modules/mogo-module-apps/src/main/res/values-ldpi/dimens.xml new file mode 100644 index 0000000000..a5316a0ea2 --- /dev/null +++ b/modules/mogo-module-apps/src/main/res/values-ldpi/dimens.xml @@ -0,0 +1,16 @@ + + + 117px + 2.7px + 16px + 54.9px + 64px + 64px + 31.6px + 33px + 24px + 18px + 112px + 112px + 89px + \ No newline at end of file diff --git a/modules/mogo-module-apps/src/main/res/values-xhdpi/dimens.xml b/modules/mogo-module-apps/src/main/res/values-xhdpi/dimens.xml new file mode 100644 index 0000000000..da464ff5de --- /dev/null +++ b/modules/mogo-module-apps/src/main/res/values-xhdpi/dimens.xml @@ -0,0 +1,16 @@ + + + 260px + 5px + 30px + 103px + 120px + 120px + 61px + 60px + 32px + 32px + 220px + 220px + 154px + \ No newline at end of file diff --git a/modules/mogo-module-apps/src/main/res/values/dimens.xml b/modules/mogo-module-apps/src/main/res/values/dimens.xml new file mode 100644 index 0000000000..da464ff5de --- /dev/null +++ b/modules/mogo-module-apps/src/main/res/values/dimens.xml @@ -0,0 +1,16 @@ + + + 260px + 5px + 30px + 103px + 120px + 120px + 61px + 60px + 32px + 32px + 220px + 220px + 154px + \ No newline at end of file diff --git a/modules/mogo-module-common/build.gradle b/modules/mogo-module-common/build.gradle index df6bc596ba..6268ca0629 100644 --- a/modules/mogo-module-common/build.gradle +++ b/modules/mogo-module-common/build.gradle @@ -2,7 +2,7 @@ apply plugin: 'com.android.library' android { compileSdkVersion rootProject.ext.android.compileSdkVersion - buildToolsVersion rootProject.ext.android.buildToolsVersion + // buildToolsVersion rootProject.ext.android.buildToolsVersion defaultConfig { minSdkVersion rootProject.ext.android.minSdkVersion targetSdkVersion rootProject.ext.android.targetSdkVersion diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerActivitiesScope.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerActivitiesScope.java index 208a79934f..ad7bc0e6dc 100644 --- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerActivitiesScope.java +++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerActivitiesScope.java @@ -2,15 +2,20 @@ package com.mogo.module.common.entity; +import android.text.TextUtils; + import java.io.Serializable; @SuppressWarnings("unused") public class MarkerActivitiesScope implements Serializable { private String content; - private int isCheck; + private boolean isCheck; public String getContent() { + if (TextUtils.isEmpty(content)) { + return "未知"; + } return content; } @@ -18,11 +23,11 @@ public class MarkerActivitiesScope implements Serializable { this.content = content; } - public int getIsCheck() { + public boolean getIsCheck() { return isCheck; } - public void setIsCheck(int isCheck) { + public void setIsCheck(boolean isCheck) { this.isCheck = isCheck; } diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerDynamicData.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerDynamicData.java index 0d94fae475..34ec679b67 100644 --- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerDynamicData.java +++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerDynamicData.java @@ -8,44 +8,159 @@ import java.io.Serializable; @SuppressWarnings("unused") public class MarkerDynamicData implements Serializable { + //QQ音乐,懒人听书,乐听头条 2 为书籍听书,3 为新闻,1 为qq音乐 + private int type; + private String mediaId;//qq音乐id,书的bookId + //qq音乐url 懒人听书为“” + private String mediaUrl; + //歌曲名 ,当前播放书名,新闻标题内容 + private String mediaName; + //演唱歌手,当前章节,新闻来源 + private String mediaSinger; + //歌曲封面,书籍封面,新闻预览图 + private String mediaImg; + //音乐类别,类似经典 ,流行只有qq特有 + private String mediaType; + private int maxTime;//音频总时长 + private String bookInfo;//懒人听书json串 + //当前播放时长,可以不加,播放进度单独独立出来 + private int curTime; + //是否是本地音频,只有qq音乐 + private boolean isLocalMedia;//本地 + //播放模式,顺序,单曲循环,随机 + private int mediaPlayMode; + //1 播放 2 缓冲 0 暂停/停止 -1 播放错误 + private int playState; - private double id; - private String name; - private double type; - - public double getId() { - return id; + public String getMediaId() { + return mediaId; } - public void setId(double id) { - this.id = id; + public void setMediaId(String mediaId) { + this.mediaId = mediaId; } - public String getName() { - if (TextUtils.isEmpty(name)) { - return "未知"; - } - return name; + public String getMediaUrl() { + return mediaUrl; } - public void setName(String name) { - this.name = name; + public void setMediaUrl(String mediaUrl) { + this.mediaUrl = mediaUrl; } - public double getType() { + public int getType() { return type; } - public void setType(double type) { + public void setType(int type) { this.type = type; } + public int getPlayState() { + return playState; + } + + public void setPlayState(int playState) { + this.playState = playState; + } + + public String getMediaName() { + if (TextUtils.isEmpty(mediaName)) { + return "未知"; + } + return mediaName; + } + + public void setMediaName(String mediaName) { + this.mediaName = mediaName; + } + + public String getMediaSinger() { + if (TextUtils.isEmpty(mediaSinger)) { + return ""; + } + return mediaSinger; + } + + public void setMediaSinger(String mediaSinger) { + this.mediaSinger = mediaSinger; + } + + public String getMediaImg() { + return mediaImg; + } + + public void setMediaImg(String mediaImg) { + this.mediaImg = mediaImg; + } + + public long getMaxTime() { + return maxTime; + } + + public void setMaxTime(int maxTime) { + this.maxTime = maxTime; + } + + public long getCurTime() { + return curTime; + } + + public void setCurTime(int curTime) { + this.curTime = curTime; + } + + public String getMediaType() { + if (TextUtils.isEmpty(mediaType)) { + return ""; + } + return mediaType; + } + + public void setMediaType(String mediaType) { + this.mediaType = mediaType; + } + + public boolean isLocalMedia() { + return isLocalMedia; + } + + public void setLocalMedia(boolean localMedia) { + isLocalMedia = localMedia; + } + + public int getMediaPlayMode() { + return mediaPlayMode; + } + + public void setMediaPlayMode(int mediaPlayMode) { + this.mediaPlayMode = mediaPlayMode; + } + + public String getBookInfo() { + return bookInfo; + } + + public void setBookInfo(String bookInfo) { + this.bookInfo = bookInfo; + } + @Override public String toString() { return "MarkerDynamicData{" + - "id=" + id + - ", name='" + name + '\'' + - ", type=" + type + + "type=" + type + + ", mediaId='" + mediaId + '\'' + + ", mediaUrl='" + mediaUrl + '\'' + + ", mediaName='" + mediaName + '\'' + + ", mediaSinger='" + mediaSinger + '\'' + + ", mediaImg='" + mediaImg + '\'' + + ", mediaType='" + mediaType + '\'' + + ", maxTime=" + maxTime + + ", bookInfo='" + bookInfo + '\'' + + ", curTime=" + curTime + + ", isLocalMedia=" + isLocalMedia + + ", mediaPlayMode=" + mediaPlayMode + + ", playState=" + playState + '}'; } } diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerHobbyDatum.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerHobbyDatum.java index 5d69c78ec0..a190f2f759 100644 --- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerHobbyDatum.java +++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerHobbyDatum.java @@ -1,42 +1,71 @@ - package com.mogo.module.common.entity; - -import android.text.TextUtils; - import java.io.Serializable; +import java.util.List; -@SuppressWarnings("unused") +/** + * author : donghongyu + * e-mail : 1358506549@qq.com + * date : 2020-01-1615:12 + * desc : 爱好 + * version: 1.0 + */ public class MarkerHobbyDatum implements Serializable { + private List singerTop2; // 最喜欢的两位歌手 + private List songTypeTop2; // 最喜欢的两种音乐类型 + private List newsType; // 最喜欢的资讯类型 + private List listenBookTop2; // 最喜欢听的两本书 + private List ifSociety; // 是否喜爱社交 - private String content; - - private int isCheck; - public String getContent() { - if (TextUtils.isEmpty(content)) { - return "未知"; - } - return content; + public List getSingerTop2() { + return singerTop2; } - public void setContent(String content) { - this.content = content; + public void setSingerTop2(List singerTop2) { + this.singerTop2 = singerTop2; } - public int getIsCheck() { - return isCheck; + public List getSongTypeTop2() { + return songTypeTop2; } - public void setIsCheck(int isCheck) { - this.isCheck = isCheck; + public void setSongTypeTop2(List songTypeTop2) { + this.songTypeTop2 = songTypeTop2; + } + + public List getNewsType() { + return newsType; + } + + public void setNewsType(List newsType) { + this.newsType = newsType; + } + + public List getListenBookTop2() { + return listenBookTop2; + } + + public void setListenBookTop2(List listenBookTop2) { + this.listenBookTop2 = listenBookTop2; + } + + public List getIfSociety() { + return ifSociety; + } + + public void setIfSociety(List ifSociety) { + this.ifSociety = ifSociety; } @Override public String toString() { return "MarkerHobbyDatum{" + - "content='" + content + '\'' + - ", isCheck=" + isCheck + + "singerTop2=" + singerTop2 + + ", songTypeTop2=" + songTypeTop2 + + ", newsType=" + newsType + + ", listenBookTop2=" + listenBookTop2 + + ", ifSociety=" + ifSociety + '}'; } } diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerOnlineCar.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerOnlineCar.java index 1bc7ea165b..a9f25f16b4 100644 --- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerOnlineCar.java +++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerOnlineCar.java @@ -13,7 +13,7 @@ public class MarkerOnlineCar implements Serializable { private MarkerUserInfo userInfo;//用户数据 private MarkerCarInfo carInfo;//车辆数据 private MarkerDynamicData dynamicData;//动态数据 - private List hobbyData;//爱好数据集合 + private MarkerHobbyDatum hobbyData;//爱好数据集合 private List activitiesScope;//活动范围数据集合 private double compatibility; @@ -49,11 +49,11 @@ public class MarkerOnlineCar implements Serializable { this.dynamicData = dynamicData; } - public List getHobbyData() { + public MarkerHobbyDatum getHobbyData() { return hobbyData; } - public void setHobbyData(List hobbyData) { + public void setHobbyData(MarkerHobbyDatum hobbyData) { this.hobbyData = hobbyData; } diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerOnlineTag.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerOnlineTag.java new file mode 100644 index 0000000000..4266fd9d34 --- /dev/null +++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/entity/MarkerOnlineTag.java @@ -0,0 +1,41 @@ + +package com.mogo.module.common.entity; + + +import android.text.TextUtils; + +import java.io.Serializable; + +@SuppressWarnings("unused") +public class MarkerOnlineTag implements Serializable { + + private String content; + private boolean isCheck; + + public String getContent() { + if (TextUtils.isEmpty(content)) { + return "未知"; + } + return content; + } + + public void setContent(String content) { + this.content = content; + } + + public boolean getIsCheck() { + return isCheck; + } + + public void setIsCheck(boolean isCheck) { + this.isCheck = isCheck; + } + + @Override + public String toString() { + return "MarkerHobbyDatum{" + + "content='" + content + '\'' + + ", isCheck=" + isCheck + + '}'; + } +} diff --git a/modules/mogo-module-extensions/build.gradle b/modules/mogo-module-extensions/build.gradle index 5c2e75d70a..1434fe9a58 100644 --- a/modules/mogo-module-extensions/build.gradle +++ b/modules/mogo-module-extensions/build.gradle @@ -3,7 +3,7 @@ apply plugin: 'com.alibaba.arouter' android { compileSdkVersion rootProject.ext.android.compileSdkVersion - buildToolsVersion rootProject.ext.android.buildToolsVersion + // buildToolsVersion rootProject.ext.android.buildToolsVersion defaultConfig { minSdkVersion rootProject.ext.android.minSdkVersion targetSdkVersion rootProject.ext.android.targetSdkVersion diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/anim/JSurfaceView.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/anim/JSurfaceView.java index cae414cf21..46c005b357 100644 --- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/anim/JSurfaceView.java +++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/anim/JSurfaceView.java @@ -15,9 +15,16 @@ import android.view.SurfaceHolder; import android.view.SurfaceView; import com.mogo.utils.ThreadPoolService; +import com.mogo.utils.logger.Logger; + +import java.lang.ref.WeakReference; +import java.util.HashMap; +import java.util.Map; public class JSurfaceView extends SurfaceView implements Runnable, SurfaceHolder.Callback { + private static final String TAG = "JSurfaceView"; + private SurfaceHolder mHolder; /** @@ -33,6 +40,15 @@ public class JSurfaceView extends SurfaceView implements Runnable, SurfaceHolder */ private int[] mFrames; + // 使用 BitmapFactory.Option.inBitmap 属性复用 bitmap 对象 + private Bitmap mContainerBitmap = null; + + // mContainerBitmap 是否生效 + private boolean mContainerBitmapStatus = true; + + // mContainerBitmapStatus 为 false 时,使用该缓存方案 + private Map< Integer, WeakReference< Bitmap > > mBitmapRefMap = new HashMap<>(); + public JSurfaceView( Context context ) { super( context ); init(); @@ -87,28 +103,60 @@ public class JSurfaceView extends SurfaceView implements Runnable, SurfaceHolder private void drawBitmap() { //获取画布并锁定 - Canvas mCanvas = mHolder.lockCanvas(); - if ( mCanvas == null ) { + Canvas canvas = mHolder.lockCanvas(); + if ( canvas == null ) { return; } //绘制透明色 - mCanvas.drawColor( Color.TRANSPARENT, PorterDuff.Mode.CLEAR ); - Bitmap mBitmap = BitmapFactory.decodeResource( getResources(), mFrames[mCurrentPos % mFrames.length] ); + canvas.drawColor( Color.TRANSPARENT, PorterDuff.Mode.CLEAR ); + + int factPosition = mCurrentPos % mFrames.length; + + if ( mContainerBitmapStatus ) { + if ( mContainerBitmap == null ) { + BitmapFactory.Options options = new BitmapFactory.Options(); + options.inMutable = true; + mContainerBitmap = BitmapFactory.decodeResource( getResources(), mFrames[factPosition], options ); + } else { + BitmapFactory.Options options = new BitmapFactory.Options(); + options.inMutable = true; + options.inBitmap = mContainerBitmap; + try { + BitmapFactory.decodeResource( getResources(), mFrames[factPosition], options ); + } catch ( Exception e ) { + Logger.e( TAG, e, "error." ); + mContainerBitmapStatus = false; + mContainerBitmap = null; + } + } + } + if ( !mContainerBitmapStatus ) { + WeakReference< Bitmap > ref = mBitmapRefMap.get( factPosition ); + if ( ref != null && ref.get() != null && !ref.get().isRecycled() ) { + mContainerBitmap = ref.get(); + } else { + mContainerBitmap = BitmapFactory.decodeResource( getResources(), mFrames[factPosition] ); + mBitmapRefMap.put( factPosition, new WeakReference<>( mContainerBitmap ) ); + } + } + + if ( mContainerBitmap == null || mContainerBitmap.isRecycled() ) { + return; + } Paint paint = new Paint(); Rect mSrcRect = new Rect( 0, 0, - mBitmap.getWidth(), - mBitmap.getHeight() ); // 图片绘制 + mContainerBitmap.getWidth(), + mContainerBitmap.getHeight() ); // 图片绘制 Rect mDestRect = new Rect( 0, 0, getWidth(), getHeight() );// 图片绘制位置 - mCanvas.drawBitmap( mBitmap, mSrcRect, mDestRect, paint ); + canvas.drawBitmap( mContainerBitmap, mSrcRect, mDestRect, paint ); //解锁画布,并展示bitmap到surface - mHolder.unlockCanvasAndPost( mCanvas ); - mBitmap.recycle(); + mHolder.unlockCanvasAndPost( canvas ); } @Override diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java index f02dad8dff..e9bbd2e69f 100644 --- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java +++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java @@ -23,6 +23,7 @@ import com.mogo.map.model.MogoPoi; import com.mogo.map.navi.IMogoNavi; import com.mogo.map.navi.IMogoNaviListener; import com.mogo.map.navi.MogoNaviInfo; +import com.mogo.map.navi.MogoTraffic; import com.mogo.map.uicontroller.EnumMapUI; import com.mogo.map.uicontroller.IMogoMapUIController; import com.mogo.module.common.MogoModulePaths; @@ -41,6 +42,7 @@ import com.mogo.service.module.IMogoModuleProvider; import com.mogo.service.module.IMogoRegisterCenter; import com.mogo.service.windowview.IMogoWindowManager; import com.mogo.utils.TipToast; + import java.util.HashMap; /** @@ -67,6 +69,10 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent private NaviInfoView mNaviInfo; private TextView mExitNavi; + private View mSpeedLimit; + private TextView mSpeedLimitValue; + private View mSpeedLimitUnit; + private IMogoMapService mService; private IMogoMapUIController mMApUIController; private IMogoLocationClient mMogoLocationClient; @@ -91,7 +97,7 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent @Override protected void initViews() { mMogoFragmentManager = ( IMogoFragmentManager ) ARouter.getInstance().build( MogoServicePaths.PATH_FRAGMENT_MANAGER ).navigation(); - mMogoAddressManager = (IMogoAddressManager) ARouter.getInstance().build( MogoServicePaths.PATH_ADDRESS_MANAGER ).navigation(); + mMogoAddressManager = ( IMogoAddressManager ) ARouter.getInstance().build( MogoServicePaths.PATH_ADDRESS_MANAGER ).navigation(); mCommonAddress = findViewById( R.id.module_entrance_id_common_address ); mSearch = findViewById( R.id.module_entrance_id_search ); @@ -135,7 +141,7 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent mExitNavi.setOnClickListener( view -> { if ( mMogoNavi != null ) { if ( mIsLock ) { - NaviNoticeDialog naviNoticeDialog = new NaviNoticeDialog(getContext()); + NaviNoticeDialog naviNoticeDialog = new NaviNoticeDialog( getContext() ); naviNoticeDialog.show(); } else { mMApUIController.recoverLockMode(); @@ -143,6 +149,10 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent } } ); + mSpeedLimit = findViewById( R.id.module_entrance_id_speed_limit_container ); + mSpeedLimitValue = findViewById( R.id.module_entrance_id_speed_limit_value ); + mSpeedLimitUnit = findViewById( R.id.module_entrance_id_speed_limit_unit ); + } @NonNull @@ -188,9 +198,9 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent mCommonAddress.setVisibility( View.GONE ); mNaviInfo.setVisibility( View.VISIBLE ); mExitNavi.setVisibility( View.VISIBLE ); - AnalyticsUtils.track("Navigation_guide_type", new HashMap<>()); + AnalyticsUtils.track( "Navigation_guide_type", new HashMap<>() ); - mMApUIController.setPointToCenter(0.675926, 0.77552); + mMApUIController.setPointToCenter( 0.675926, 0.77552 ); } @Override @@ -198,9 +208,10 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent mCommonAddress.setVisibility( View.VISIBLE ); mNaviInfo.setVisibility( View.GONE ); mExitNavi.setVisibility( View.GONE ); - AnalyticsUtils.track("Navigation_guide_type", new HashMap<>()); + mSpeedLimit.setVisibility( View.GONE ); + AnalyticsUtils.track( "Navigation_guide_type", new HashMap<>() ); - mMApUIController.setPointToCenter(0.66145, 0.590688); + mMApUIController.setPointToCenter( 0.66145, 0.590688 ); } @@ -212,6 +223,20 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent public void onoCalculateFailed() { } + @Override + public void onUpdateTraffic( MogoTraffic traffic ) { + if ( traffic == null ) { + return; + } + if ( traffic.getSpeedLimit() <= 0 ) { + mSpeedLimit.setVisibility( View.INVISIBLE ); + mSpeedLimitValue.setText( "--" ); + } else { + mSpeedLimit.setVisibility( View.VISIBLE ); + mSpeedLimitValue.setText( String.valueOf( traffic.getSpeedLimit() ) ); + } + } + @Override public void onMapLoaded() { diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/ic_cloudy.png b/modules/mogo-module-extensions/src/main/res/drawable-ldpi/ic_cloudy.png new file mode 100755 index 0000000000..8a9ef00365 Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-ldpi/ic_cloudy.png differ diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/ic_dust_sand.png b/modules/mogo-module-extensions/src/main/res/drawable-ldpi/ic_dust_sand.png new file mode 100755 index 0000000000..e4b369fd5d Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-ldpi/ic_dust_sand.png differ diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/ic_duststorm.png b/modules/mogo-module-extensions/src/main/res/drawable-ldpi/ic_duststorm.png new file mode 100755 index 0000000000..3df9ec7236 Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-ldpi/ic_duststorm.png differ diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/ic_fog.png b/modules/mogo-module-extensions/src/main/res/drawable-ldpi/ic_fog.png new file mode 100755 index 0000000000..62fd9f4242 Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-ldpi/ic_fog.png differ diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/ic_haze.png b/modules/mogo-module-extensions/src/main/res/drawable-ldpi/ic_haze.png new file mode 100755 index 0000000000..5448cd94e6 Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-ldpi/ic_haze.png differ diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/ic_heavy_rain.png b/modules/mogo-module-extensions/src/main/res/drawable-ldpi/ic_heavy_rain.png new file mode 100755 index 0000000000..fa9f6d73bf Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-ldpi/ic_heavy_rain.png differ diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/ic_light_rain.png b/modules/mogo-module-extensions/src/main/res/drawable-ldpi/ic_light_rain.png new file mode 100755 index 0000000000..19365b521a Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-ldpi/ic_light_rain.png differ diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/ic_moderate_rain.png b/modules/mogo-module-extensions/src/main/res/drawable-ldpi/ic_moderate_rain.png new file mode 100755 index 0000000000..19365b521a Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-ldpi/ic_moderate_rain.png differ diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/ic_overcast.png b/modules/mogo-module-extensions/src/main/res/drawable-ldpi/ic_overcast.png new file mode 100755 index 0000000000..4a90f7c87e Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-ldpi/ic_overcast.png differ diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/ic_severe_storm.png b/modules/mogo-module-extensions/src/main/res/drawable-ldpi/ic_severe_storm.png new file mode 100755 index 0000000000..4650033797 Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-ldpi/ic_severe_storm.png differ diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/ic_shower.png b/modules/mogo-module-extensions/src/main/res/drawable-ldpi/ic_shower.png new file mode 100755 index 0000000000..ed7ccf66b9 Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-ldpi/ic_shower.png differ diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/ic_snow.png b/modules/mogo-module-extensions/src/main/res/drawable-ldpi/ic_snow.png new file mode 100755 index 0000000000..67d43a2ee1 Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-ldpi/ic_snow.png differ diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/ic_sunny.png b/modules/mogo-module-extensions/src/main/res/drawable-ldpi/ic_sunny.png new file mode 100755 index 0000000000..73ceaaf264 Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-ldpi/ic_sunny.png differ diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/ic_thunder.png b/modules/mogo-module-extensions/src/main/res/drawable-ldpi/ic_thunder.png new file mode 100755 index 0000000000..8609690645 Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-ldpi/ic_thunder.png differ diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/ic_thundershower.png b/modules/mogo-module-extensions/src/main/res/drawable-ldpi/ic_thundershower.png new file mode 100755 index 0000000000..e5821e3fc3 Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-ldpi/ic_thundershower.png differ diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/ic_unknown.png b/modules/mogo-module-extensions/src/main/res/drawable-ldpi/ic_unknown.png new file mode 100755 index 0000000000..2e2a052a74 Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-ldpi/ic_unknown.png differ diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/module_map_ic_search.png b/modules/mogo-module-extensions/src/main/res/drawable-ldpi/module_map_ic_search.png old mode 100644 new mode 100755 index 27b414c367..a03c6eb313 Binary files a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/module_map_ic_search.png and b/modules/mogo-module-extensions/src/main/res/drawable-ldpi/module_map_ic_search.png differ diff --git a/modules/mogo-module-extensions/src/main/res/drawable-nodpi/ic_cloudy.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/ic_cloudy.png similarity index 100% rename from modules/mogo-module-extensions/src/main/res/drawable-nodpi/ic_cloudy.png rename to modules/mogo-module-extensions/src/main/res/drawable-xhdpi/ic_cloudy.png diff --git a/modules/mogo-module-extensions/src/main/res/drawable-nodpi/ic_dust_sand.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/ic_dust_sand.png similarity index 100% rename from modules/mogo-module-extensions/src/main/res/drawable-nodpi/ic_dust_sand.png rename to modules/mogo-module-extensions/src/main/res/drawable-xhdpi/ic_dust_sand.png diff --git a/modules/mogo-module-extensions/src/main/res/drawable-nodpi/ic_duststorm.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/ic_duststorm.png similarity index 100% rename from modules/mogo-module-extensions/src/main/res/drawable-nodpi/ic_duststorm.png rename to modules/mogo-module-extensions/src/main/res/drawable-xhdpi/ic_duststorm.png diff --git a/modules/mogo-module-extensions/src/main/res/drawable-nodpi/ic_fog.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/ic_fog.png similarity index 100% rename from modules/mogo-module-extensions/src/main/res/drawable-nodpi/ic_fog.png rename to modules/mogo-module-extensions/src/main/res/drawable-xhdpi/ic_fog.png diff --git a/modules/mogo-module-extensions/src/main/res/drawable-nodpi/ic_haze.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/ic_haze.png similarity index 100% rename from modules/mogo-module-extensions/src/main/res/drawable-nodpi/ic_haze.png rename to modules/mogo-module-extensions/src/main/res/drawable-xhdpi/ic_haze.png diff --git a/modules/mogo-module-extensions/src/main/res/drawable-nodpi/ic_heavy_rain.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/ic_heavy_rain.png similarity index 100% rename from modules/mogo-module-extensions/src/main/res/drawable-nodpi/ic_heavy_rain.png rename to modules/mogo-module-extensions/src/main/res/drawable-xhdpi/ic_heavy_rain.png diff --git a/modules/mogo-module-extensions/src/main/res/drawable-nodpi/ic_light_rain.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/ic_light_rain.png similarity index 100% rename from modules/mogo-module-extensions/src/main/res/drawable-nodpi/ic_light_rain.png rename to modules/mogo-module-extensions/src/main/res/drawable-xhdpi/ic_light_rain.png diff --git a/modules/mogo-module-extensions/src/main/res/drawable-nodpi/ic_moderate_rain.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/ic_moderate_rain.png similarity index 100% rename from modules/mogo-module-extensions/src/main/res/drawable-nodpi/ic_moderate_rain.png rename to modules/mogo-module-extensions/src/main/res/drawable-xhdpi/ic_moderate_rain.png diff --git a/modules/mogo-module-extensions/src/main/res/drawable-nodpi/ic_overcast.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/ic_overcast.png similarity index 100% rename from modules/mogo-module-extensions/src/main/res/drawable-nodpi/ic_overcast.png rename to modules/mogo-module-extensions/src/main/res/drawable-xhdpi/ic_overcast.png diff --git a/modules/mogo-module-extensions/src/main/res/drawable-nodpi/ic_severe_storm.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/ic_severe_storm.png similarity index 100% rename from modules/mogo-module-extensions/src/main/res/drawable-nodpi/ic_severe_storm.png rename to modules/mogo-module-extensions/src/main/res/drawable-xhdpi/ic_severe_storm.png diff --git a/modules/mogo-module-extensions/src/main/res/drawable-nodpi/ic_shower.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/ic_shower.png similarity index 100% rename from modules/mogo-module-extensions/src/main/res/drawable-nodpi/ic_shower.png rename to modules/mogo-module-extensions/src/main/res/drawable-xhdpi/ic_shower.png diff --git a/modules/mogo-module-extensions/src/main/res/drawable-nodpi/ic_snow.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/ic_snow.png similarity index 100% rename from modules/mogo-module-extensions/src/main/res/drawable-nodpi/ic_snow.png rename to modules/mogo-module-extensions/src/main/res/drawable-xhdpi/ic_snow.png diff --git a/modules/mogo-module-extensions/src/main/res/drawable-nodpi/ic_sunny.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/ic_sunny.png similarity index 100% rename from modules/mogo-module-extensions/src/main/res/drawable-nodpi/ic_sunny.png rename to modules/mogo-module-extensions/src/main/res/drawable-xhdpi/ic_sunny.png diff --git a/modules/mogo-module-extensions/src/main/res/drawable-nodpi/ic_thunder.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/ic_thunder.png similarity index 100% rename from modules/mogo-module-extensions/src/main/res/drawable-nodpi/ic_thunder.png rename to modules/mogo-module-extensions/src/main/res/drawable-xhdpi/ic_thunder.png diff --git a/modules/mogo-module-extensions/src/main/res/drawable-nodpi/ic_thundershower.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/ic_thundershower.png similarity index 100% rename from modules/mogo-module-extensions/src/main/res/drawable-nodpi/ic_thundershower.png rename to modules/mogo-module-extensions/src/main/res/drawable-xhdpi/ic_thundershower.png diff --git a/modules/mogo-module-extensions/src/main/res/drawable-nodpi/ic_unknown.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/ic_unknown.png similarity index 100% rename from modules/mogo-module-extensions/src/main/res/drawable-nodpi/ic_unknown.png rename to modules/mogo-module-extensions/src/main/res/drawable-xhdpi/ic_unknown.png diff --git a/modules/mogo-module-extensions/src/main/res/drawable/module_ext_dw_speed_limit_bkg.xml b/modules/mogo-module-extensions/src/main/res/drawable/module_ext_dw_speed_limit_bkg.xml new file mode 100644 index 0000000000..290a36041c --- /dev/null +++ b/modules/mogo-module-extensions/src/main/res/drawable/module_ext_dw_speed_limit_bkg.xml @@ -0,0 +1,9 @@ + + + + + + /> + + + \ No newline at end of file diff --git a/modules/mogo-module-extensions/src/main/res/layout/module_ext_layout_entrance.xml b/modules/mogo-module-extensions/src/main/res/layout/module_ext_layout_entrance.xml index d21d892790..2ea2761fe9 100644 --- a/modules/mogo-module-extensions/src/main/res/layout/module_ext_layout_entrance.xml +++ b/modules/mogo-module-extensions/src/main/res/layout/module_ext_layout_entrance.xml @@ -1,24 +1,25 @@ @@ -26,9 +27,9 @@ @@ -57,8 +58,8 @@ @@ -71,22 +72,52 @@ + + + + + + + @@ -107,11 +138,11 @@ android:src="@drawable/module_map_ic_move2_current_location" android:text="实景" android:textColor="#CCFFFFFF" - android:textSize="@dimen/dp_24" /> + android:textSize="@dimen/module_ext_operation_panel_vr_textSize" /> @@ -120,7 +151,7 @@ @@ -133,30 +164,30 @@ + app:layout_goneMarginBottom="@dimen/module_ext_operation_panel_share_goneMarginBottom" + app:layout_goneMarginRight="@dimen/module_ext_operation_panel_share_goneMarginRight" /> 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 1dfd0c5f6c..7aafa02548 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,16 +3,16 @@ xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" - android:layout_height="@dimen/dp_120" + android:layout_height="@dimen/module_ext_height" android:background="@drawable/module_ext_dw_shadow_frame_bkg" android:orientation="vertical" - android:paddingLeft="@dimen/dp_70" - android:paddingRight="@dimen/dp_70"> + android:paddingLeft="@dimen/module_ext_paddingLeft" + android:paddingRight="@dimen/module_ext_paddingRight"> @@ -24,7 +24,7 @@ android:gravity="center_vertical" android:text="@string/module_ext_str_voice_msg" android:textColor="@color/module_ext_color_voice_text" - android:textSize="@dimen/dp_32" + android:textSize="@dimen/module_ext_voice_textSize" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toRightOf="@+id/module_ext_id_voice" app:layout_constraintTop_toTopOf="parent" /> @@ -35,7 +35,7 @@ android:layout_height="wrap_content" android:gravity="center_vertical" android:textColor="#FFFFFF" - android:textSize="@dimen/dp_48" + android:textSize="@dimen/module_ext_time_textSize" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" @@ -45,10 +45,10 @@ android:id="@+id/module_ext_id_date" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginRight="@dimen/dp_80" + android:layout_marginRight="@dimen/module_ext_date_marginRight" android:gravity="center_vertical" android:textColor="#FFFFFF" - android:textSize="@dimen/dp_28" + android:textSize="@dimen/module_ext_date_textSize" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintRight_toLeftOf="@+id/module_ext_id_time" app:layout_constraintTop_toTopOf="parent" @@ -58,8 +58,8 @@ android:id="@+id/module_ext_id_weather_container" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginRight="@dimen/dp_26" - android:gravity="center" + android:layout_marginRight="@dimen/module_ext_weather_marginRight" + android:gravity="bottom" android:visibility="gone" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintRight_toLeftOf="@+id/module_ext_id_date" @@ -67,25 +67,25 @@ + android:layout_width="@dimen/module_ext_weather_icon_width" + android:layout_height="@dimen/module_ext_weather_icon_height" /> @@ -100,7 +100,7 @@ android:id="@+id/module_ext_id_msg" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginRight="@dimen/dp_28" + android:layout_marginRight="@dimen/module_ext_msg_marginRight" android:visibility="gone" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintRight_toLeftOf="@+id/module_ext_id_weather_container" @@ -113,13 +113,13 @@ diff --git a/modules/mogo-module-extensions/src/main/res/layout/module_map_layout_navi_info_panel.xml b/modules/mogo-module-extensions/src/main/res/layout/module_map_layout_navi_info_panel.xml index 53427653f7..d9de30169c 100644 --- a/modules/mogo-module-extensions/src/main/res/layout/module_map_layout_navi_info_panel.xml +++ b/modules/mogo-module-extensions/src/main/res/layout/module_map_layout_navi_info_panel.xml @@ -1,17 +1,17 @@ @@ -20,10 +20,10 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignTop="@+id/module_map_id_navi_next_info_road_turn_icon" - android:layout_marginTop="@dimen/dp_10" + android:layout_marginTop="@dimen/module_ext_navi_info_panel_next_info_distance_marginTop" android:layout_toRightOf="@+id/module_map_id_navi_next_info_road_turn_icon" android:textColor="#282828" - android:textSize="@dimen/dp_60" + android:textSize="@dimen/module_ext_navi_info_panel_next_info_distance_textSize" tools:text="53" /> \ No newline at end of file diff --git a/modules/mogo-module-extensions/src/main/res/values-ldpi/dimens.xml b/modules/mogo-module-extensions/src/main/res/values-ldpi/dimens.xml new file mode 100644 index 0000000000..9f9c7a937f --- /dev/null +++ b/modules/mogo-module-extensions/src/main/res/values-ldpi/dimens.xml @@ -0,0 +1,93 @@ + + + + 58px + 18px + 8px + 11.2px + 10.8px + 17px + 20px + + 58px + 19px + 8px + 64.2px + 58px + 1px + 33.4px + 64.2px + 58px + + + 96px + 96px + 8px + 32px + 32px + 15px + + 20px + 8px + + 58px + 20px + 34.5px + 58px + 17px + 31.4px + 1.2px + 58px + 58px + 58px + 21px + 14px + 34.5px + 20px + + + 130px + 58px + 20px + 32px + 22px + + + 640px + 32px + 32px + 64px + 64px + 22px + 28px + 22px + 22px + 16px + 24px + 24px + 18px + 18.48px + 16px + 22px + 28px + 15px + 15px + 11.73px + + + 244px + 170px + 85px + 85px + 13px + 13px + 20px + 32px + 7px + 8px + 16px + 15px + 24px + + 15px + \ No newline at end of file diff --git a/modules/mogo-module-extensions/src/main/res/values-xhdpi/dimens.xml b/modules/mogo-module-extensions/src/main/res/values-xhdpi/dimens.xml new file mode 100644 index 0000000000..6280c4cf51 --- /dev/null +++ b/modules/mogo-module-extensions/src/main/res/values-xhdpi/dimens.xml @@ -0,0 +1,91 @@ + + + + 90px + 32px + 2px + 16px + 26px + 26px + 32px + + 90px + 32px + 2px + 100px + 90px + 2px + 54px + 100px + 90px + + 180px + 180px + 2px + 60px + 60px + 28px + + 32px + 2px + + 90px + 32px + 60px + 92px + 24px + 48px + 2px + 90px + 90px + 90px + 40px + 24px + 32px + 32px + + 200px + 90px + 32px + 60px + 32px + + + 120px + 60px + 60px + 120px + 120px + 32px + 48px + 80px + 28px + 26px + 44px + 44px + 18px + 34px + 26px + 28px + 28px + 30px + 30px + 20px + + + 458px + 318px + 159px + 159px + 24px + 24px + 10px + 60px + 12px + 16px + 28px + 28px + 24px + 28px + + \ No newline at end of file diff --git a/modules/mogo-module-extensions/src/main/res/values/dimens.xml b/modules/mogo-module-extensions/src/main/res/values/dimens.xml new file mode 100644 index 0000000000..bb5f4d1780 --- /dev/null +++ b/modules/mogo-module-extensions/src/main/res/values/dimens.xml @@ -0,0 +1,91 @@ + + + + 90px + 32px + 2px + 16px + 26px + 26px + 32px + + 90px + 32px + 2px + 100px + 90px + 2px + 54px + 100px + 90px + + 180px + 180px + 2px + 60px + 60px + 28px + + 32px + 2px + + 90px + 32px + 60px + 92px + 24px + 48px + 2px + 90px + 90px + 90px + 40px + 24px + 32px + 32px + + 200px + 90px + 32px + 60px + 32px + + + 120px + 60px + 60px + 120px + 120px + 32px + 48px + 80px + 28px + 26px + 44px + 44px + 18px + 34px + 26px + 28px + 28px + 30px + 30px + 20px + + + 458px + 318px + 159px + 159px + 24px + 24px + 10px + 60px + 12px + 16px + 28px + 28px + 24px + 28px + + \ No newline at end of file diff --git a/modules/mogo-module-main/build.gradle b/modules/mogo-module-main/build.gradle index b7f3d015bb..61422928c8 100644 --- a/modules/mogo-module-main/build.gradle +++ b/modules/mogo-module-main/build.gradle @@ -2,7 +2,7 @@ apply plugin: 'com.android.library' android { compileSdkVersion rootProject.ext.android.compileSdkVersion - buildToolsVersion rootProject.ext.android.buildToolsVersion + // buildToolsVersion rootProject.ext.android.buildToolsVersion defaultConfig { minSdkVersion rootProject.ext.android.minSdkVersion targetSdkVersion rootProject.ext.android.targetSdkVersion diff --git a/modules/mogo-module-main/src/main/AndroidManifest.xml b/modules/mogo-module-main/src/main/AndroidManifest.xml index 5b83761576..3abd196eb2 100644 --- a/modules/mogo-module-main/src/main/AndroidManifest.xml +++ b/modules/mogo-module-main/src/main/AndroidManifest.xml @@ -5,7 +5,7 @@ impleme @Override public void onPageSelected( int position ) { try { + IMogoModuleProvider provider = mCardModulesAdapter.getProvider( mCurrentPosition ); + trackLastCardShowEvent( provider ); + mCurrentPosition = position; - final IMogoModuleProvider provider = mCardModulesAdapter.getProvider( position ); + provider = mCardModulesAdapter.getProvider( mCurrentPosition ); mMogoModuleHandler.setEnable( provider.getModuleName() ); if ( !isClickMarker ) { mMogoCardManager.invoke( position, mMogoModuleHandler.getCurrentModuleName() ); } - trackCardSelectedEvent( provider ); } catch ( Exception e ) { e.printStackTrace(); } } - @Override - public void onPageScrolled( int position, float positionOffset, int positionOffsetPixels ) { - super.onPageScrolled( position, positionOffset, positionOffsetPixels ); - } - @Override public void onPageScrollStateChanged( int state ) { super.onPageScrollStateChanged( state ); @@ -135,7 +131,7 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme * 卡片展示时长埋点 * @param provider */ - private void trackCardSelectedEvent( IMogoModuleProvider provider ) { + private void trackLastCardShowEvent( IMogoModuleProvider provider ) { if ( provider == null ) { return; } @@ -143,6 +139,7 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme properties.put( "appname", provider.getAppName() ); properties.put( "packagename", provider.getAppPackage() ); properties.put( "activeTime", System.currentTimeMillis() - mCardStartShowTime ); + properties.put( "type", provider.getModuleName() ); mAnalytics.track( "Launcher_Card_Show", properties ); mCardStartShowTime = System.currentTimeMillis(); } @@ -157,6 +154,7 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme Map< String, Object > properties = new HashMap<>(); properties.put( "appname", provider.getAppName() ); properties.put( "packagename", provider.getAppPackage() ); + properties.put( "type", provider.getModuleName() ); mAnalytics.track( "Launcher_Card_Slide", properties ); } } ); diff --git a/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/MogoModulesManager.java b/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/MogoModulesManager.java index dec3600f87..6cc2f7d8ee 100644 --- a/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/MogoModulesManager.java +++ b/modules/mogo-module-main/src/main/java/com/mogo/module/main/cards/MogoModulesManager.java @@ -19,6 +19,7 @@ import com.mogo.map.marker.IMogoMarkerClickListener; import com.mogo.map.model.MogoPoi; import com.mogo.map.navi.IMogoNaviListener; import com.mogo.map.navi.MogoNaviInfo; +import com.mogo.map.navi.MogoTraffic; import com.mogo.map.uicontroller.EnumMapUI; import com.mogo.module.common.MogoModule; import com.mogo.module.common.MogoModulePaths; @@ -212,96 +213,216 @@ public class MogoModulesManager implements MogoModulesHandler, mMapLoadedCallback = null; } Iterator< IMogoMapListener > iterator = MogoRegisterCenterHandler.getInstance().getMapListeners(); + if ( iterator == null ) { + return; + } while ( iterator.hasNext() ) { - iterator.next().onMapLoaded(); + IMogoMapListener listener = iterator.next(); + if ( listener != null ) { + try { + listener.onMapLoaded(); + } catch ( Exception e ) { + Logger.e( TAG, e, "error." ); + } + } } } @Override public void onTouch( MotionEvent motionEvent ) { Iterator< IMogoMapListener > iterator = MogoRegisterCenterHandler.getInstance().getMapListeners(); + if ( iterator == null ) { + return; + } while ( iterator.hasNext() ) { - iterator.next().onTouch( motionEvent ); + IMogoMapListener listener = iterator.next(); + if ( listener != null ) { + try { + listener.onTouch( motionEvent ); + } catch ( Exception e ) { + Logger.e( TAG, e, "error." ); + } + } } } @Override public void onPOIClick( MogoPoi poi ) { Iterator< IMogoMapListener > iterator = MogoRegisterCenterHandler.getInstance().getMapListeners(); + if ( iterator == null ) { + return; + } while ( iterator.hasNext() ) { - iterator.next().onPOIClick( poi ); + IMogoMapListener listener = iterator.next(); + if ( listener != null ) { + try { + listener.onPOIClick( poi ); + } catch ( Exception e ) { + Logger.e( TAG, e, "error." ); + } + } } } @Override public void onMapClick( MogoLatLng latLng ) { Iterator< IMogoMapListener > iterator = MogoRegisterCenterHandler.getInstance().getMapListeners(); + if ( iterator == null ) { + return; + } while ( iterator.hasNext() ) { - iterator.next().onMapClick( latLng ); + IMogoMapListener listener = iterator.next(); + if ( listener != null ) { + try { + listener.onMapClick( latLng ); + } catch ( Exception e ) { + Logger.e( TAG, e, "error." ); + } + } } } @Override public void onLockMap( boolean isLock ) { Iterator< IMogoMapListener > iterator = MogoRegisterCenterHandler.getInstance().getMapListeners(); + if ( iterator == null ) { + return; + } while ( iterator.hasNext() ) { - iterator.next().onLockMap( isLock ); + IMogoMapListener listener = iterator.next(); + if ( listener != null ) { + try { + listener.onLockMap( isLock ); + } catch ( Exception e ) { + Logger.e( TAG, e, "error." ); + } + } } } @Override public void onMapModeChanged( EnumMapUI ui ) { Iterator< IMogoMapListener > iterator = MogoRegisterCenterHandler.getInstance().getMapListeners(); + if ( iterator == null ) { + return; + } while ( iterator.hasNext() ) { - iterator.next().onMapModeChanged( ui ); + IMogoMapListener listener = iterator.next(); + if ( listener != null ) { + try { + listener.onMapModeChanged( ui ); + } catch ( Exception e ) { + Logger.e( TAG, e, "error." ); + } + } } } @Override public void onMapChanged( MogoLatLng location, float zoom, float tilt, float bearing ) { Iterator< IMogoMapListener > iterator = MogoRegisterCenterHandler.getInstance().getMapListeners(); + if ( iterator == null ) { + return; + } while ( iterator.hasNext() ) { - iterator.next().onMapChanged( location, zoom, tilt, bearing ); + IMogoMapListener listener = iterator.next(); + if ( listener != null ) { + try { + listener.onMapChanged( location, zoom, tilt, bearing ); + } catch ( Exception e ) { + Logger.e( TAG, e, "error." ); + } + } } } @Override public void onInitNaviFailure() { Iterator< IMogoNaviListener > iterator = MogoRegisterCenterHandler.getInstance().getNaviListeners(); + if ( iterator == null ) { + return; + } while ( iterator.hasNext() ) { - iterator.next().onInitNaviFailure(); + IMogoNaviListener listener = iterator.next(); + if ( listener != null ) { + try { + listener.onInitNaviFailure(); + } catch ( Exception e ) { + Logger.e( TAG, e, "error." ); + } + } } } @Override public void onInitNaviSuccess() { Iterator< IMogoNaviListener > iterator = MogoRegisterCenterHandler.getInstance().getNaviListeners(); + if ( iterator == null ) { + return; + } while ( iterator.hasNext() ) { - iterator.next().onInitNaviSuccess(); + IMogoNaviListener listener = iterator.next(); + if ( listener != null ) { + try { + listener.onInitNaviSuccess(); + } catch ( Exception e ) { + Logger.e( TAG, e, "error." ); + } + } } } @Override public void onNaviInfoUpdate( MogoNaviInfo naviinfo ) { Iterator< IMogoNaviListener > iterator = MogoRegisterCenterHandler.getInstance().getNaviListeners(); + if ( iterator == null ) { + return; + } while ( iterator.hasNext() ) { - iterator.next().onNaviInfoUpdate( naviinfo ); + IMogoNaviListener listener = iterator.next(); + if ( listener != null ) { + try { + listener.onNaviInfoUpdate( naviinfo ); + } catch ( Exception e ) { + Logger.e( TAG, e, "error." ); + } + } } } @Override public void onStartNavi() { Iterator< IMogoNaviListener > iterator = MogoRegisterCenterHandler.getInstance().getNaviListeners(); + if ( iterator == null ) { + return; + } while ( iterator.hasNext() ) { - iterator.next().onStartNavi(); + IMogoNaviListener listener = iterator.next(); + if ( listener != null ) { + try { + listener.onStartNavi(); + } catch ( Exception e ) { + Logger.e( TAG, e, "error." ); + } + } } } @Override public void onStopNavi() { Iterator< IMogoNaviListener > iterator = MogoRegisterCenterHandler.getInstance().getNaviListeners(); + if ( iterator == null ) { + return; + } while ( iterator.hasNext() ) { - iterator.next().onStopNavi(); + IMogoNaviListener listener = iterator.next(); + if ( listener != null ) { + try { + listener.onStopNavi(); + } catch ( Exception e ) { + Logger.e( TAG, e, "error." ); + } + } } } @@ -309,24 +430,72 @@ public class MogoModulesManager implements MogoModulesHandler, @Override public void onCalculateSuccess() { Iterator< IMogoNaviListener > iterator = MogoRegisterCenterHandler.getInstance().getNaviListeners(); + if ( iterator == null ) { + return; + } while ( iterator.hasNext() ) { - iterator.next().onCalculateSuccess(); + IMogoNaviListener listener = iterator.next(); + if ( listener != null ) { + try { + listener.onCalculateSuccess(); + } catch ( Exception e ) { + Logger.e( TAG, e, "error." ); + } + } } } @Override public void onoCalculateFailed() { Iterator< IMogoNaviListener > iterator = MogoRegisterCenterHandler.getInstance().getNaviListeners(); + if ( iterator == null ) { + return; + } while ( iterator.hasNext() ) { - iterator.next().onoCalculateFailed(); + IMogoNaviListener listener = iterator.next(); + if ( listener != null ) { + try { + listener.onoCalculateFailed(); + } catch ( Exception e ) { + Logger.e( TAG, e, "error." ); + } + } + } + } + + @Override + public void onUpdateTraffic( MogoTraffic traffic ) { + Iterator< IMogoNaviListener > iterator = MogoRegisterCenterHandler.getInstance().getNaviListeners(); + if ( iterator == null ) { + return; + } + while ( iterator.hasNext() ) { + IMogoNaviListener listener = iterator.next(); + if ( listener != null ) { + try { + listener.onUpdateTraffic(traffic); + } catch ( Exception e ) { + Logger.e( TAG, e, "error." ); + } + } } } @Override public void onLocationChanged( MogoLocation location ) { Iterator< IMogoLocationListener > iterator = MogoRegisterCenterHandler.getInstance().getLocationListeners(); + if ( iterator == null ) { + return; + } while ( iterator.hasNext() ) { - iterator.next().onLocationChanged( location ); + IMogoLocationListener listener = iterator.next(); + if ( listener != null ) { + try { + listener.onLocationChanged( location ); + } catch ( Exception e ) { + Logger.e( TAG, e, "error." ); + } + } } } @@ -375,7 +544,11 @@ public class MogoModulesManager implements MogoModulesHandler, public void onMarkerReceive( IMogoMarker marker ) { IMogoMarkerClickListener listener = MogoRegisterCenterHandler.getInstance().getMarkerListener( marker.getOwner() ); if ( listener != null ) { - listener.onMarkerClicked( marker ); + try { + listener.onMarkerClicked( marker ); + } catch ( Exception e ) { + Logger.e( TAG, e, "error." ); + } } } diff --git a/modules/mogo-module-main/src/main/java/com/mogo/module/main/receiver/MogoReceiver.java b/modules/mogo-module-main/src/main/java/com/mogo/module/main/receiver/MogoReceiver.java deleted file mode 100644 index 129523cbbb..0000000000 --- a/modules/mogo-module-main/src/main/java/com/mogo/module/main/receiver/MogoReceiver.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.mogo.module.main.receiver; - -import android.content.BroadcastReceiver; -import android.content.Context; -import android.content.Intent; -import android.content.IntentFilter; -import android.text.TextUtils; - -/** - * @author congtaowang - * @since 2020-01-02 - *

- * 广播接收者 - *

- * {@link Intent#ACTION_POWER_CONNECTED} - * {@link Intent#ACTION_POWER_DISCONNECTED} - */ -public class MogoReceiver extends BroadcastReceiver { - - public static void register( Context context ) { - if ( context == null ) { - return; - } - IntentFilter inputFilter = new IntentFilter(); - inputFilter.addAction( Intent.ACTION_POWER_CONNECTED ); - inputFilter.addAction( Intent.ACTION_POWER_DISCONNECTED ); - context.getApplicationContext().registerReceiver( new MogoReceiver(), inputFilter ); - } - - @Override - public void onReceive( Context context, Intent intent ) { - final String action = intent.getAction(); - if ( TextUtils.equals( action, Intent.ACTION_POWER_CONNECTED ) ) { - - } - if ( TextUtils.equals( action, Intent.ACTION_POWER_DISCONNECTED ) ) { - - } - } -} 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 299315a101..e761f21d4f 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 @@ -15,7 +15,7 @@ @@ -36,21 +36,21 @@ + android:layout_marginTop="@dimen/module_main_card_container_marginTop"> + android:layout_marginLeft="@dimen/module_main_card_container_marginLeft"> + android:paddingBottom="@dimen/module_main_card_container_paddingBottom" /> + + + 720px + 10px + 660px + 60px + 211px + 20px + \ No newline at end of file diff --git a/modules/mogo-module-main/src/main/res/values-xhdpi/dimens.xml b/modules/mogo-module-main/src/main/res/values-xhdpi/dimens.xml new file mode 100644 index 0000000000..a707ceedb5 --- /dev/null +++ b/modules/mogo-module-main/src/main/res/values-xhdpi/dimens.xml @@ -0,0 +1,10 @@ + + + + 720px + 10px + 660px + 60px + 211px + 20px + \ No newline at end of file diff --git a/modules/mogo-module-main/src/main/res/values/dimens.xml b/modules/mogo-module-main/src/main/res/values/dimens.xml new file mode 100644 index 0000000000..d69bd56a73 --- /dev/null +++ b/modules/mogo-module-main/src/main/res/values/dimens.xml @@ -0,0 +1,10 @@ + + + + 384px + 8px + 352px + 32px + 140.5px + 20px + \ No newline at end of file diff --git a/modules/mogo-module-map/build.gradle b/modules/mogo-module-map/build.gradle index 4f753ca703..ebff9c6729 100644 --- a/modules/mogo-module-map/build.gradle +++ b/modules/mogo-module-map/build.gradle @@ -3,7 +3,7 @@ apply plugin: 'com.alibaba.arouter' android { compileSdkVersion rootProject.ext.android.compileSdkVersion - buildToolsVersion rootProject.ext.android.buildToolsVersion + // buildToolsVersion rootProject.ext.android.buildToolsVersion defaultConfig { minSdkVersion rootProject.ext.android.minSdkVersion targetSdkVersion rootProject.ext.android.targetSdkVersion diff --git a/modules/mogo-module-search/build.gradle b/modules/mogo-module-search/build.gradle index 42f83bdf90..cc2624ce99 100644 --- a/modules/mogo-module-search/build.gradle +++ b/modules/mogo-module-search/build.gradle @@ -4,7 +4,7 @@ apply plugin: 'kotlin-android-extensions' apply plugin: 'kotlin-kapt' android { compileSdkVersion rootProject.ext.android.compileSdkVersion - buildToolsVersion rootProject.ext.android.buildToolsVersion + // buildToolsVersion rootProject.ext.android.buildToolsVersion defaultConfig { minSdkVersion rootProject.ext.android.minSdkVersion diff --git a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/ChoosePathFragment.kt b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/ChoosePathFragment.kt index 5721a7b94a..2d600c992f 100644 --- a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/ChoosePathFragment.kt +++ b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/ChoosePathFragment.kt @@ -8,6 +8,7 @@ import com.mogo.map.MogoLatLng import com.mogo.map.navi.IMogoNaviListener import com.mogo.map.navi.MogoCalculatePath import com.mogo.map.navi.MogoNaviInfo +import com.mogo.map.navi.MogoTraffic import com.mogo.map.search.inputtips.MogoTip import com.mogo.module.common.MogoModulePaths import com.mogo.module.navi.R @@ -53,7 +54,10 @@ class ChoosePathFragment : BaseFragment(), IMogoNaviListener { override fun onoCalculateFailed() { } - private lateinit var mAdapter: CalculatePathAdapter + override fun onUpdateTraffic(traffic: MogoTraffic?) { +} + + private lateinit var mAdapter: CalculatePathAdapter override fun getLayoutId(): Int { return R.layout.fragment_search_category } diff --git a/modules/mogo-module-service/build.gradle b/modules/mogo-module-service/build.gradle index 4c8893f572..fa646b8779 100644 --- a/modules/mogo-module-service/build.gradle +++ b/modules/mogo-module-service/build.gradle @@ -3,7 +3,7 @@ apply plugin: 'com.alibaba.arouter' android { compileSdkVersion rootProject.ext.android.compileSdkVersion - buildToolsVersion rootProject.ext.android.buildToolsVersion + // buildToolsVersion rootProject.ext.android.buildToolsVersion defaultConfig { minSdkVersion rootProject.ext.android.minSdkVersion targetSdkVersion rootProject.ext.android.targetSdkVersion diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/MarkerServiceHandler.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/MarkerServiceHandler.java index 28a9cf8288..3235099c5f 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/MarkerServiceHandler.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/MarkerServiceHandler.java @@ -32,6 +32,10 @@ import com.mogo.service.map.IMogoMapService; import com.mogo.service.statusmanager.IMogoStatusManager; import com.mogo.utils.logger.Logger; +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; + import java.util.HashMap; import java.util.List; import java.util.Map; @@ -263,6 +267,8 @@ public class MarkerServiceHandler { lastMarker = null; getMarkerManager().removeMarkers(); + JSONArray array = new JSONArray(); + // 解析不同的Marker类型,然后对应的进行绘制 if (response != null && response.getResult() != null) { MarkerCardResult markerCardResult = response.getResult(); @@ -301,7 +307,7 @@ public class MarkerServiceHandler { drawMapMarker(markerShowEntity); } - analyticData(3, onlineCarList.size()); + fillNumberTrackEventBody(array, 3, onlineCarList.size()); } if (exploreWayList != null) { @@ -318,7 +324,7 @@ public class MarkerServiceHandler { drawMapMarker(markerShowEntity); } } - analyticData(1, exploreWayList.size()); + fillNumberTrackEventBody(array, 1, exploreWayList.size()); } if (shareMusicList != null) { @@ -334,7 +340,7 @@ public class MarkerServiceHandler { drawMapMarker(markerShowEntity); } - analyticData(4, shareMusicList.size()); + fillNumberTrackEventBody(array, 4, shareMusicList.size()); } if (noveltyInfoList != null) { @@ -373,27 +379,42 @@ public class MarkerServiceHandler { break; } } - analyticData(2, num_gas_station); - analyticData(6, num_road_closed); - analyticData(5, num_traffic_check); - analyticData(7, num_shop_discount); - analyticData(8, num_fours_shop); + fillNumberTrackEventBody(array,2, num_gas_station); + fillNumberTrackEventBody(array,6, num_road_closed); + fillNumberTrackEventBody(array,5, num_traffic_check); + fillNumberTrackEventBody(array,7, num_shop_discount); + fillNumberTrackEventBody(array,8, num_fours_shop); } + analyticData(array); + } + } + + + private static void fillNumberTrackEventBody(JSONArray arr, int type, int size){ + JSONObject object = new JSONObject( ); + try { + object.put( "type", type ); + object.put( "num", size); + if ( arr != null ) { + arr.put( object ); + } + } catch ( JSONException e ) { + e.printStackTrace(); } - getMapUIController().changeZoom(12); } /** * 统计地图内数据获取 * - * @param type 类型 - * @param num marker数量 + * @param array 埋点数据 */ - private static void analyticData(int type, int num) { + private static void analyticData(JSONArray array) { try { + if ( array == null || array.length() == 0 ) { + return; + } final Map properties = new HashMap<>(); - properties.put("type", type); - properties.put("num", num); + properties.put("data", array.toString()); getMogoAnalytics().track("Launcher_Data_Get", properties); } catch (Exception e) { e.printStackTrace(); @@ -411,14 +432,14 @@ public class MarkerServiceHandler { MogoMarkerOptions options = new MogoMarkerOptions() .owner(markerShowEntity.getMarkerType()) + .alpha( 0.7f ) + .object( markerShowEntity ) .latitude(markerShowEntity.getMarkerLocation().getLat()) .longitude(markerShowEntity.getMarkerLocation().getLon()); options.icon(markerView); IMogoMarker marker = getMarkerManager().addMarker(markerShowEntity.getMarkerType(), options); marker.setOnMarkerClickListener(mogoMarkerClickListener); - marker.setObject(markerShowEntity); - marker.setAlpha(0.7f); return marker; } else { Logger.e(TAG, "Location 必须进行初始化!!!!!"); 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 89feb55cb7..514d584dae 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 @@ -26,6 +26,7 @@ import com.mogo.map.marker.IMogoMarkerManager; import com.mogo.map.model.MogoPoi; import com.mogo.map.navi.IMogoNaviListener; import com.mogo.map.navi.MogoNaviInfo; +import com.mogo.map.navi.MogoTraffic; import com.mogo.map.uicontroller.EnumMapUI; import com.mogo.map.uicontroller.IMogoMapUIController; import com.mogo.module.common.MogoModule; @@ -46,8 +47,6 @@ import com.mogo.service.module.ModuleType; import com.mogo.service.statusmanager.IMogoStatusChangedListener; import com.mogo.service.statusmanager.IMogoStatusManager; import com.mogo.service.statusmanager.StatusDescriptor; -import com.mogo.service.voice.IMogoVoiceListener; -import com.mogo.service.voice.IMogoVoiceManager; import com.mogo.utils.logger.Logger; import java.util.List; @@ -116,7 +115,7 @@ public class MogoServiceProvider implements IMogoModuleProvider, case ServiceConst.MSG_TYPE_REFRESH_DECREASE: mRefreshRemainingTime -= ServiceConst.DECREASE_INTERVAL; if ( mRefreshRemainingTime == 0 ) { - notifyRefreshData( mLastAutoRefreshLocation, 2_000, mAutoRefreshCallback ); + notifyRefreshData( mLastAutoRefreshLocation, getQueryRadius(), mAutoRefreshCallback ); } else { mHandler.sendEmptyMessageDelayed( msg.what, ServiceConst.DECREASE_INTERVAL ); } @@ -239,8 +238,10 @@ public class MogoServiceProvider implements IMogoModuleProvider, registerCenter.registerMogoMapListener( getModuleName(), this ); mIntentManager = ( IMogoIntentManager ) ARouter.getInstance().build( MogoServicePaths.PATH_INTENT_MANAGER ).navigation( context ); - mIntentManager.registerIntentListener( MogoReceiver.ADAS_ACTION, this ); - + mIntentManager.registerIntentListener( MogoReceiver.ACTIION_ADAS, this ); + mIntentManager.registerIntentListener( Intent.ACTION_POWER_CONNECTED, this ); + mIntentManager.registerIntentListener( Intent.ACTION_POWER_DISCONNECTED, this ); + mIntentManager.registerIntentListener( MogoReceiver.ACTION_NWD_ACC, this ); } private void registerAIReceiver( Context context ) { @@ -262,7 +263,11 @@ public class MogoServiceProvider implements IMogoModuleProvider, } } filter.addAction( MogoReceiver.VOICE_ACTION ); - filter.addAction( MogoReceiver.ADAS_ACTION ); + filter.addAction( MogoReceiver.ACTIION_ADAS ); + filter.addAction( MogoReceiver.ACTION_NWD_ACC ); + // acc On + filter.addAction( Intent.ACTION_POWER_CONNECTED ); + filter.addAction( Intent.ACTION_POWER_DISCONNECTED ); try { context.getApplicationContext().registerReceiver( mAIAssistReceiver, filter ); Logger.i( TAG, "register voice receiver." ); @@ -297,7 +302,11 @@ public class MogoServiceProvider implements IMogoModuleProvider, * @return */ private float getMapCameraFactWidth() { - return Utils.calculateLineDistance( mCameraNorthEastPosition, new MogoLatLng( mCameraNorthEastPosition.lat, mCameraSouthWestPosition.lng ) ); + try { + return Utils.calculateLineDistance( mCameraNorthEastPosition, new MogoLatLng( mCameraNorthEastPosition.lat, mCameraSouthWestPosition.lng ) ); + } catch ( Exception e ) { + return 1000f; + } } /** @@ -306,7 +315,11 @@ public class MogoServiceProvider implements IMogoModuleProvider, * @return */ private float getMapCameraFactHeight() { - return Utils.calculateLineDistance( mCameraSouthWestPosition, new MogoLatLng( mCameraNorthEastPosition.lat, mCameraSouthWestPosition.lng ) ); + try { + return Utils.calculateLineDistance( mCameraSouthWestPosition, new MogoLatLng( mCameraNorthEastPosition.lat, mCameraSouthWestPosition.lng ) ); + } catch ( Exception e ) { + return 1000f; + } } /** @@ -368,7 +381,6 @@ public class MogoServiceProvider implements IMogoModuleProvider, @Override public void onMapChanged( MogoLatLng latLng, float zoom, float tilt, float bearing ) { - if ( mIsCameraInited ) { mLastCustomRefreshCenterLocation = latLng; mIsCameraInited = false; @@ -385,14 +397,15 @@ public class MogoServiceProvider implements IMogoModuleProvider, notifyRefreshData( latLng, getQueryRadius(), mCustomRefreshCallback ); mLastCustomRefreshCenterLocation = latLng; mLastZoomLevel = zoom; + } else if ( mLastZoomLevel - zoom < 0 ) { + mLastZoomLevel = zoom; + } else if ( mLastZoomLevel == zoom ) { // 手动平移 if ( invokeRefreshWhenTranslationByUser( latLng ) ) { notifyRefreshData( latLng, getQueryRadius(), mCustomRefreshCallback ); mLastCustomRefreshCenterLocation = latLng; } - } else { - mLastZoomLevel = zoom; } } @@ -435,11 +448,11 @@ public class MogoServiceProvider implements IMogoModuleProvider, // 自动刷新触发 if ( mLastAutoRefreshLocation == null ) { mLastAutoRefreshLocation = new MogoLatLng( location.getLatitude(), location.getLongitude() ); - notifyRefreshData( mLastAutoRefreshLocation, 2_000, mAutoRefreshCallback ); + notifyRefreshData( mLastAutoRefreshLocation, getQueryRadius(), mAutoRefreshCallback ); } else { float distance = Utils.calculateLineDistance( mLastAutoRefreshLocation, new MogoLatLng( location.getLatitude(), location.getLongitude() ) ); if ( distance > mAutoRefreshStrategy.getDistance() ) { - notifyRefreshData( mLastAutoRefreshLocation, 2_000, mAutoRefreshCallback ); + notifyRefreshData( mLastAutoRefreshLocation, getQueryRadius(), mAutoRefreshCallback ); } } } @@ -452,6 +465,7 @@ public class MogoServiceProvider implements IMogoModuleProvider, return; } Logger.d( TAG, mAutoRefreshCallback == callback ? "触发自动刷新" : "触发手动刷新" ); + Logger.i( TAG, "刷新半径 = %d, 点 = %s", radius, latLng ); mRefreshModel.refreshData( latLng, radius, callback ); } @@ -467,7 +481,6 @@ public class MogoServiceProvider implements IMogoModuleProvider, @Override public void onNaviInfoUpdate( MogoNaviInfo naviinfo ) { - } @Override @@ -511,18 +524,37 @@ public class MogoServiceProvider implements IMogoModuleProvider, } + @Override + public void onUpdateTraffic( MogoTraffic traffic ) { + if ( traffic != null ) { + + Logger.i( TAG, "speed = %d, desc = %s", traffic.getSpeedLimit(), traffic.getDesc() ); + // 发送当前限速到 adas + Intent intent = new Intent( "com.mogo.launcher.adas" ); + intent.putExtra( "adas_speed_limit", traffic.getSpeedLimit() ); + mContext.sendBroadcast( intent ); + } + } + public IMogoMarkerClickListener getMarkerClickListener() { return null; } @Override public void onIntentReceived( String command, Intent intent ) { - if ( MogoReceiver.ADAS_ACTION.equals( command ) ) { + if ( MogoReceiver.ACTIION_ADAS.equals( command ) ) { if ( intent == null ) { return; } int status = intent.getIntExtra( MogoReceiver.PARAM_ADAS_STATUS, 0 ); mStatusManager.setADASUIShow( getModuleName(), status == 1 ); + } else if ( Intent.ACTION_POWER_CONNECTED.equals( command ) ) { + mStatusManager.setAccStatus( getModuleName(), true ); + } else if ( Intent.ACTION_POWER_DISCONNECTED.equals( command ) ) { + mStatusManager.setAccStatus( getModuleName(), false ); + } else if ( MogoReceiver.ACTION_NWD_ACC.equals( command ) ) { + int state = intent.getByteExtra( MogoReceiver.PARAM_ACC_STATUS, ( byte ) 0 ); + mStatusManager.setAccStatus( getModuleName(), state == 1 ); } } 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 index 2200ed394a..281ecdef93 100644 --- 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 @@ -11,17 +11,20 @@ import java.util.List; */ public class RefreshBody { - public List< String > dataType = new ArrayList<>(); - public int limit = 50;// 请求数量 - public int radius = 2_000; // 地理围栏半径(米) - public LatLon location; + public List dataType = new ArrayList<>(); // 要查询的类型 + public int limit = 50; // 请求数量 + public int radius = 2_000; // 地理围栏半径(米) + public LatLon location; // 坐标 + + public boolean onlyFocus; // 是否仅查询已关注的好友 + public boolean onlySameCity; // 是否仅查询注册城市相同的同城用户 public static class LatLon { private double lat; private double lon; - public LatLon( double lat, 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 a30ca0e83b..605ba68188 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 @@ -7,14 +7,13 @@ import com.mogo.commons.data.BaseData; import com.mogo.commons.debug.DebugConfig; 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.module.service.ServiceConst; 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; @@ -36,14 +35,14 @@ public class RefreshModel { private final Context mContext; private RefreshApiService mRefreshApiService; - public RefreshModel( Context context ) { + public RefreshModel(Context context) { this.mContext = context; - IMogoNetwork network = ( IMogoNetwork ) ARouter.getInstance().build( MogoServicePaths.PATH_SERVICES_NETWORK ).navigation( context ); - this.mRefreshApiService = network.create( RefreshApiService.class, getNetHost() ); + IMogoNetwork network = (IMogoNetwork) ARouter.getInstance().build(MogoServicePaths.PATH_SERVICES_NETWORK).navigation(context); + this.mRefreshApiService = network.create(RefreshApiService.class, getNetHost()); } private String getNetHost() { - switch ( DebugConfig.getNetMode() ) { + switch (DebugConfig.getNetMode()) { case DebugConfig.NET_MODE_DEV: return HOST_DEV; case DebugConfig.NET_MODE_QA: @@ -53,34 +52,82 @@ public class RefreshModel { } } - public void refreshData( MogoLatLng latLng, int radius, final RefreshCallback callback ) { - if ( mRefreshApiService != null ) { - final Map< String, Object > query = new ParamsProvider.Builder( mContext ).build(); + public void refreshData(MogoLatLng latLng, int radius, final RefreshCallback callback) { + if (mRefreshApiService != null) { + final Map query = new ParamsProvider.Builder(mContext).build(); final RefreshBody refreshBody = new RefreshBody(); refreshBody.limit = 5; - refreshBody.location = new RefreshBody.LatLon( latLng.lat, latLng.lng ); + refreshBody.location = new RefreshBody.LatLon(latLng.lat, latLng.lng); refreshBody.radius = radius; - query.put( "data", GsonUtil.jsonFromObject( refreshBody ) ); - mRefreshApiService.refreshData( query ) - .subscribeOn( Schedulers.io() ) - .observeOn( AndroidSchedulers.mainThread() ) - .subscribe( new SubscribeImpl< BaseData >( RequestOptions.create( mContext ) ) { + query.put("data", GsonUtil.jsonFromObject(refreshBody)); + mRefreshApiService.refreshData(query) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new SubscribeImpl(RequestOptions.create(mContext)) { @Override - public void onSuccess( BaseData o ) { - super.onSuccess( o ); - if ( callback != null ) { + public void onSuccess(BaseData o) { + super.onSuccess(o); + if (callback != null) { callback.onSuccess(); } } @Override - public void onError( String message, int code ) { - super.onError( message, code ); - if ( callback != null ) { + public void onError(String message, int code) { + super.onError(message, code); + if (callback != null) { callback.onFail(); } } - } ); + }); + } + } + + /** + * 查询在线车辆 + * + * @param latLng 经纬度 + * @param radius 半径 + * @param onlyFocus 是否仅查询已关注的好友 + * @param onlySameCity 是否仅查询注册城市相同的同城用户 + * @param callback + */ + public void queryOnLineCar(MogoLatLng latLng, + int radius, + boolean onlyFocus, + boolean onlySameCity, + final RefreshCallback callback) { + if (mRefreshApiService != null) { + final Map query = new ParamsProvider.Builder(mContext).build(); + final RefreshBody refreshBody = new RefreshBody(); + refreshBody.limit = 100; + refreshBody.location = new RefreshBody.LatLon(latLng.lat, latLng.lng); + refreshBody.radius = radius; + refreshBody.onlyFocus = onlyFocus; + refreshBody.onlySameCity = onlySameCity; + refreshBody.dataType.add(ServiceConst.CARD_TYPE_USER_DATA); + + query.put("data", GsonUtil.jsonFromObject(refreshBody)); + mRefreshApiService.refreshData(query) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new SubscribeImpl(RequestOptions.create(mContext)) { + @Override + public void onSuccess(BaseData o) { + super.onSuccess(o); + if (callback != null) { + callback.onSuccess(); + } + } + + @Override + public void onError(String message, int code) { + super.onError(message, code); + if (callback != null) { + callback.onFail(); + } + } + }); } } } diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/receiver/MogoReceiver.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/receiver/MogoReceiver.java index f6a67463f8..fdf388bc9a 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/receiver/MogoReceiver.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/receiver/MogoReceiver.java @@ -30,10 +30,16 @@ public class MogoReceiver extends BroadcastReceiver { /** * ADAS */ - public static final String ADAS_ACTION = "com.mogo.launcher.adas"; + public static final String ACTIION_ADAS = "com.zhidao.autopilot.adas"; // ADAS 状态 0 - 关闭 1 - 打开 public static final String PARAM_ADAS_STATUS = "adas_drawer_status"; + // 诺威达 acc 状态 + public static final String ACTION_NWD_ACC = "com.nwd.action.ACTION_MCU_STATE_CHANGE"; + + // 诺威达 acc 状态 + public static final String PARAM_ACC_STATUS = "extra_mcu_state"; + private IMogoIntentManager mMogoIntentManager; public MogoReceiver( Context context ) { diff --git a/modules/mogo-module-share/build.gradle b/modules/mogo-module-share/build.gradle index 5fee9fa316..b65f63c235 100644 --- a/modules/mogo-module-share/build.gradle +++ b/modules/mogo-module-share/build.gradle @@ -5,7 +5,7 @@ apply plugin: 'com.alibaba.arouter' android { compileSdkVersion rootProject.ext.android.compileSdkVersion - buildToolsVersion rootProject.ext.android.buildToolsVersion + // buildToolsVersion rootProject.ext.android.buildToolsVersion defaultConfig { minSdkVersion rootProject.ext.android.minSdkVersion targetSdkVersion rootProject.ext.android.targetSdkVersion diff --git a/modules/mogo-module-share/src/main/java/com/mogo/module/share/dialog/LaucherShareDialog.java b/modules/mogo-module-share/src/main/java/com/mogo/module/share/dialog/LaucherShareDialog.java index 2f208f5efd..ea81073522 100644 --- a/modules/mogo-module-share/src/main/java/com/mogo/module/share/dialog/LaucherShareDialog.java +++ b/modules/mogo-module-share/src/main/java/com/mogo/module/share/dialog/LaucherShareDialog.java @@ -3,6 +3,7 @@ package com.mogo.module.share.dialog; import android.app.Dialog; import android.content.Context; import android.content.Intent; +import android.net.Uri; import android.os.Bundle; import android.view.View; import android.widget.RelativeLayout; @@ -69,7 +70,9 @@ public class LaucherShareDialog extends Dialog implements View.OnClickListener { if (id == R.id.btn_block_layout) { //拥堵 sendShareReceiver("1"); } else if (id == R.id.oil_price_layout) { - //TODO + Intent intent = new Intent(); + intent.setData(Uri.parse("reshthing://com.zhidao.fresh.things/shareOilPrice")); + mContext.startActivity(intent); } else if (id == R.id.traffic_check_layout) { //交通检查 sendShareReceiver("2"); } else if (id == R.id.road_closure_layout) { //封路 @@ -80,7 +83,7 @@ public class LaucherShareDialog extends Dialog implements View.OnClickListener { } /** - * 发送广播 + * 发送广播 1拥堵,2交通检查,3封路 */ private void sendShareReceiver(String type) { Logger.d("liyz", "LaucherShareDialog sendShareReceiver ---->"); diff --git a/modules/mogo-module-tanlu/build.gradle b/modules/mogo-module-tanlu/build.gradle index a182478571..2e567d7c7f 100644 --- a/modules/mogo-module-tanlu/build.gradle +++ b/modules/mogo-module-tanlu/build.gradle @@ -5,7 +5,7 @@ apply plugin: 'com.alibaba.arouter' android { compileSdkVersion rootProject.ext.android.compileSdkVersion - buildToolsVersion rootProject.ext.android.buildToolsVersion + // buildToolsVersion rootProject.ext.android.buildToolsVersion defaultConfig { minSdkVersion rootProject.ext.android.minSdkVersion targetSdkVersion rootProject.ext.android.targetSdkVersion @@ -53,6 +53,7 @@ dependencies { implementation rootProject.ext.dependencies.mogoserviceapi implementation rootProject.ext.dependencies.modulecommon implementation rootProject.ext.dependencies.moduleservice + implementation rootProject.ext.dependencies.moduleshare } else { implementation project(":libraries:mogo-map") implementation project(":foudations:mogo-utils") @@ -60,6 +61,7 @@ dependencies { implementation project(':services:mogo-service-api') implementation project(':modules:mogo-module-common') implementation project(':modules:mogo-module-service') + implementation project(':modules:mogo-module-share') } implementation 'com.shuyu:gsyVideoPlayer-armv7a:7.1.1' diff --git a/modules/mogo-module-tanlu/src/main/AndroidManifest.xml b/modules/mogo-module-tanlu/src/main/AndroidManifest.xml index a238192807..e5e74d1ffe 100644 --- a/modules/mogo-module-tanlu/src/main/AndroidManifest.xml +++ b/modules/mogo-module-tanlu/src/main/AndroidManifest.xml @@ -14,6 +14,13 @@ + + + + + + + \ No newline at end of file diff --git a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/callback/UploadShareCallback.java b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/callback/UploadShareCallback.java new file mode 100644 index 0000000000..c0ae07ea7a --- /dev/null +++ b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/callback/UploadShareCallback.java @@ -0,0 +1,14 @@ +package com.mogo.module.tanlu.callback; + +import com.mogo.commons.data.BaseData; + + +/** + * @author lixiaopeng + * @description 上报分享 + * @since 2020-01-09 + */ +public interface UploadShareCallback { + void onSuccess(BaseData data); + void onFail(String message, int code); +} diff --git a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/constant/TanluConstants.java b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/constant/TanluConstants.java index c40193a41a..5472fb444e 100644 --- a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/constant/TanluConstants.java +++ b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/constant/TanluConstants.java @@ -12,7 +12,19 @@ public class TanluConstants { public static final String NAVI_INFO = "navi_info"; public static final String MODEL_NAME = "CARD_TYPE_ROAD_CONDITION"; + public static final String[] CMD_PLAY_ROAD_CONDITION = {"播放路况"}; - public static final String UPLOAD_ROAD_CONDITION = "upload_road_condition"; + //上报路况 + public static final String UPLOAD_ROAD_CONDITION = "command_upload_roadcondition"; + //xx堵不堵 + public static final String SPECIFIEDROAD_SEARCH = "com.zhidao.pathfinder.specifiedroad.search"; + //播放 + public static final String PLAY_VIDEO = "com.zhidao.tanlu.play"; + //分享封路 + public static final String SHARE_ROAD_CLOSURE = "com.zhidao.share.road.closure"; + //分享交通检查 + public static final String SHARE_TRAFFIC_CHECK = "com.zhidao.share.traffic.check"; + //我要分享 + public static final String GO_TO_SHARE = "com.zhidao.share"; } diff --git a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/fragment/TanluCardViewFragment.java b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/fragment/TanluCardViewFragment.java index f62392ca7d..e92c76d446 100644 --- a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/fragment/TanluCardViewFragment.java +++ b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/fragment/TanluCardViewFragment.java @@ -25,7 +25,7 @@ import com.amap.api.services.geocoder.GeocodeSearch; import com.amap.api.services.geocoder.RegeocodeResult; import com.amap.api.services.poisearch.PoiResult; import com.amap.api.services.poisearch.PoiSearch; -import com.google.gson.JsonObject; +import com.mogo.commons.data.BaseData; import com.mogo.commons.mvp.IView; import com.mogo.commons.mvp.MvpFragment; import com.mogo.commons.mvp.Presenter; @@ -43,6 +43,7 @@ import com.mogo.map.marker.MogoMarkerOptions; import com.mogo.map.model.MogoPoi; import com.mogo.map.navi.IMogoNaviListener; import com.mogo.map.navi.MogoNaviInfo; +import com.mogo.map.navi.MogoTraffic; import com.mogo.map.search.geo.MogoPoiItem; import com.mogo.map.search.poisearch.IMogoPoiSearchListener; import com.mogo.map.search.poisearch.MogoPoiResult; @@ -51,9 +52,11 @@ import com.mogo.map.uicontroller.IMogoMapUIController; import com.mogo.module.common.entity.MarkerExploreWay; import com.mogo.module.common.entity.MarkerShowEntity; import com.mogo.module.service.receiver.MogoReceiver; +import com.mogo.module.share.ShareControl; import com.mogo.module.tanlu.R; import com.mogo.module.tanlu.callback.AlongTheWayCallback; import com.mogo.module.tanlu.callback.RoadLineCallback; +import com.mogo.module.tanlu.callback.UploadShareCallback; import com.mogo.module.tanlu.callback.VoiceSearchCallback; import com.mogo.module.tanlu.constant.TanluConstants; import com.mogo.module.tanlu.model.Center; @@ -63,6 +66,7 @@ import com.mogo.module.tanlu.model.PathLineResult; import com.mogo.module.tanlu.model.TanluModelData; import com.mogo.module.tanlu.model.VoiceSearchResult; import com.mogo.module.tanlu.model.event.MarkerInfo; +import com.mogo.module.tanlu.model.event.PushTypeInfo; import com.mogo.module.tanlu.util.Utils; import com.mogo.module.tanlu.video.FullMediaActivity; import com.mogo.module.tanlu.video.SimpleCoverVideoPlayer; @@ -85,6 +89,7 @@ import com.shuyu.gsyvideoplayer.builder.GSYVideoOptionBuilder; import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.Subscribe; import org.greenrobot.eventbus.ThreadMode; +import org.json.JSONObject; import java.util.ArrayList; import java.util.List; @@ -108,7 +113,7 @@ public class TanluCardViewFragment extends MvpFragment> IMogoLocationListener, View.OnClickListener { - private static final String TAG = "liyz"; + private static final String TAG = "TanluCardViewFragment"; SimpleCoverVideoPlayer simpleCoverVideoPlayer; AutoZoomInImageView autoZoomInImageView; //map @@ -130,8 +135,8 @@ public class TanluCardViewFragment extends MvpFragment> //media private GSYVideoOptionBuilder gsyVideoOptionBuilder = new GSYVideoOptionBuilder(); - private String mVideoUrl = "http://ivi.bupt.edu.cn/hls/cctv1hd.m3u8"; - private String mImageUrl = "https://oimagec4.ydstatic.com/image?id=-5397300958976572132&product=adpublish&w=520&h=347"; + private String mVideoUrl = ""; + private String mImageUrl = ""; private String mTitle = ""; private long mGenerateTime = 0; private IMogoImageloader mogoImageloader; @@ -152,6 +157,7 @@ public class TanluCardViewFragment extends MvpFragment> private List passedByPoints; private IMogoRegisterCenter mMogoRegisterCenter; private String mKeywords; + private boolean isCurrentPage; @Override @@ -180,9 +186,7 @@ public class TanluCardViewFragment extends MvpFragment> simpleCoverVideoPlayer.setVisibility(View.VISIBLE); autoZoomInImageView.setVisibility(View.GONE); - //视频配置 TODO 需要去掉 -// gsyVideoOptionBuilder.setUrl(mVideoUrl).setCacheWithPlay(false).setPlayTag(TAG) -// .build(simpleCoverVideoPlayer); + //视频点击 simpleCoverVideoPlayer.getStartButton().setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { @@ -202,10 +206,9 @@ public class TanluCardViewFragment extends MvpFragment> //切换卡片操作 iMogoCardManager = (IMogoCardManager) ARouter.getInstance().build(MogoServicePaths.PATH_CARD_MANAGER).navigation(getActivity()); - mMogoRegisterCenter = (IMogoRegisterCenter) ARouter.getInstance().build(MogoServicePaths.PATH_REGISTER_CENTER).navigation(getContext()); mMogoRegisterCenter.registerMogoModuleLifecycle(TanluConstants.MODEL_NAME, this); - //语音操作 + //唤醒 mogoIntentManager = (IMogoIntentManager) ARouter.getInstance().build(MogoServicePaths.PATH_INTENT_MANAGER).navigation(getContext()); @@ -233,14 +236,15 @@ public class TanluCardViewFragment extends MvpFragment> Double longit; //经度 Double lat; //维度 if (mKeywords.equals("附近")) { + Logger.d(TAG, "附近 ----1---"); longit = TanluServiceHandler.getLocationClient().getLastKnowLocation().getLongitude(); lat = TanluServiceHandler.getLocationClient().getLastKnowLocation().getLatitude(); } else { + Logger.d(TAG, "其他 ---1----"); longit = latLon.getLongitude(); lat = latLon.getLatitude(); } - Log.d(TAG, "geoSearch keywords = $keywords --cityCode = $cityCode " + - "--longitude= longit --latitude = $lat"); + Log.d(TAG, "geoSearch keywords =" + mKeywords + ">>longitude= " + longit + "--latitude" + lat); getVoiceControlRoadData(mKeywords, lat, longit); } else { String cityCode = TanluServiceHandler.getLocationClient().getLastKnowLocation().getCityCode(); @@ -249,7 +253,7 @@ public class TanluCardViewFragment extends MvpFragment> poiSearch.setOnPoiSearchListener(new PoiSearch.OnPoiSearchListener() { @Override public void onPoiSearched(PoiResult p0, int p1) { - Logger.d(TAG, "setOnPoiSearchListener ------mKeywords =" + mKeywords + ">>p1 =" + p1); + Logger.d(TAG, "setOnPoiSearchListener--mKeywords =" + mKeywords + ">>p1 =" + p1); if (p1 == 1000) { if (p0.getPois() != null && p0.getPois().size() != 0) { PoiItem poi = p0.getPois().get(0); @@ -258,15 +262,16 @@ public class TanluCardViewFragment extends MvpFragment> Double longit; //经度 Double lat; //维度 if (mKeywords.equals("附近")) { + Logger.d(TAG, "附近 ----2---"); longit = TanluServiceHandler.getLocationClient().getLastKnowLocation().getLongitude(); lat = TanluServiceHandler.getLocationClient().getLastKnowLocation().getLatitude(); } else { + Logger.d(TAG, "其他 --2----"); longit = latLon.getLongitude(); lat = latLon.getLatitude(); } getVoiceControlRoadData(mKeywords, lat, longit); - Logger.d(TAG, "poi search keywords = $keywords --cityCode = $cityCode " + - "--longitude= $long --latitude = $lat"); + Log.d(TAG, "setOnPoiSearchListener keywords =" + mKeywords + ">>longitude= " + longit + "--latitude" + lat); } else { Logger.e(TAG, "poi == null"); } @@ -293,16 +298,13 @@ public class TanluCardViewFragment extends MvpFragment> public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); getViewLifecycleOwner().getLifecycle().addObserver(mPresenter); + Logger.d(TAG, "onActivityCreated -------> "); EventBus.getDefault().register(this); initInterface(); initModelData(); - handleRoadLineMessage(); initMap(); initStrings(); initListener(); - - //TODO切换探路卡片 -// iMogoCardManager.switch2(TanluConstants.MODEL_NAME); } private void initModelData() { @@ -318,12 +320,10 @@ public class TanluCardViewFragment extends MvpFragment> mMogoRegisterCenter.registerMogoNaviListener(TanluConstants.MODEL_NAME, new IMogoNaviListener() { @Override public void onInitNaviFailure() { - } @Override public void onInitNaviSuccess() { - } @Override @@ -332,9 +332,9 @@ public class TanluCardViewFragment extends MvpFragment> } @Override - public void onStartNavi() { //开始导航 - initModelData(); - getNavigationLineData(); + public void onStartNavi() { //开始导航,这期先不做 +// initModelData(); +// getNavigationLineData(); } @Override @@ -351,18 +351,28 @@ public class TanluCardViewFragment extends MvpFragment> public void onoCalculateFailed() { } + + @Override + public void onUpdateTraffic( MogoTraffic traffic ) { + + } }); //监听marker点击 mMogoRegisterCenter.registerMogoMarkerClickListener(TanluConstants.MODEL_NAME, new IMogoMarkerClickListener() { @Override public boolean onMarkerClicked(IMogoMarker marker) { - //点击marker以后,确认他的位置?然后点击下一个操作 TODO + //点击marker以后,确认他的位置?然后点击下一个操作 + mEmptyLayout.setVisibility(View.GONE); + mRootLayout.setVisibility(View.VISIBLE); + + Logger.d(TAG, "onMarkerClicked registerMogoMarkerClickListener = "); MarkerExploreWay exploreWay = extractFromMarker(marker); if (exploreWay == null) { return false; } + //TODO 自己打的点,需要重新组装新数据,清理老的 if (exploreWay.getFileType() == 0) { //图片 refreshPhotoData(exploreWay); } else if (exploreWay.getFileType() == 1) { //视频 @@ -404,13 +414,16 @@ public class TanluCardViewFragment extends MvpFragment> * 注册listener监听 */ private void initListener() { - //某某路堵不堵,某某地点堵不堵,附近堵不堵,播放路况 TODO //唤醒 - mogoIntentManager.registerIntentListener(MogoReceiver.ADAS_ACTION, mogoIntentListener); - //免唤醒 - AIAssist.getInstance(getActivity()).registerUnWakeupCommandCallback(TanluConstants.UPLOAD_ROAD_CONDITION, mogoVoiceListener); + mogoIntentManager.registerIntentListener(TanluConstants.UPLOAD_ROAD_CONDITION, mogoIntentListener); + mogoIntentManager.registerIntentListener(TanluConstants.SPECIFIEDROAD_SEARCH, mogoIntentListener); + mogoIntentManager.registerIntentListener(TanluConstants.PLAY_VIDEO, mogoIntentListener); + mogoIntentManager.registerIntentListener(TanluConstants.SHARE_ROAD_CLOSURE, mogoIntentListener); + mogoIntentManager.registerIntentListener(TanluConstants.SHARE_TRAFFIC_CHECK, mogoIntentListener); + mogoIntentManager.registerIntentListener(TanluConstants.GO_TO_SHARE, mogoIntentListener); } + /** * 唤醒语音 */ @@ -419,10 +432,33 @@ public class TanluCardViewFragment extends MvpFragment> public void onIntentReceived(String intentStr, Intent intent) { String data = intent.getStringExtra("data"); Logger.e(TAG, "唤醒 mogoIntentListener intentStr =" + intentStr + ">>data =" + data); + if (intentStr.equals(TanluConstants.SPECIFIEDROAD_SEARCH)) { //地点堵不堵 ok + try { + JSONObject jsonObject = new JSONObject(data); + mKeywords = jsonObject.get("location").toString(); + Logger.d(TAG, "mogoIntentListener specified mKeywords = " + mKeywords); + handleActionFoo(mKeywords); + } catch (Exception e) { + e.printStackTrace(); + } + } else if (intentStr.equals(TanluConstants.UPLOAD_ROAD_CONDITION)) { //上报路况 免唤醒 ok + sendShareReceiver("1"); + Logger.d(TAG, "mogoIntentListener 上报路况 ----> "); + } else if (intentStr.equals(TanluConstants.PLAY_VIDEO)) { //播放视频 免唤醒 + Logger.d(TAG, "mogoIntentListener 播放视频 ----> "); + //TODO - JsonObject jsonObject = new JsonObject(); - mKeywords = jsonObject.get("location").toString(); - handleActionFoo(mKeywords); + } else if (intentStr.equals(TanluConstants.SHARE_ROAD_CLOSURE)) { //分享封路 + sendShareReceiver("3"); + Logger.d(TAG, "mogoIntentListener 分享封路 ----> "); + } else if (intentStr.equals(TanluConstants.SHARE_TRAFFIC_CHECK)) { //分享交通检查 + sendShareReceiver("2"); + Logger.d(TAG, "mogoIntentListener 分享交通检查 ----> "); + } else if (intentStr.equals(TanluConstants.GO_TO_SHARE)) { //我要分享 + ShareControl shareControl = new ShareControl(); + shareControl.showDialog(getActivity()); + Logger.d(TAG, "mogoIntentListener 我要分享 ----> "); + } } }; @@ -434,33 +470,44 @@ public class TanluCardViewFragment extends MvpFragment> @Override public void onCmdSelected(String cmd) { Logger.e(TAG, "免唤醒 onCmdSelected mogoVoiceListener cmd =" + cmd); - if (cmd.equals(TanluConstants.UPLOAD_ROAD_CONDITION)) { - // - Logger.d(TAG, ""); + if (cmd.equals(TanluConstants.PLAY_VIDEO)) { + //TODO + } } @Override public void onCmdAction(String speakText) { - + Logger.d(TAG, "免唤醒 onCmdAction speakText =" + speakText); } @Override public void onCmdCancel(String speakText) { - + Logger.d(TAG, "免唤醒 onCmdCancel speakText =" + speakText); } @Override public void onSpeakEnd(String speakText) { - + Logger.e(TAG, "免唤醒 onSpeakEnd speakText =" + speakText); } @Override public void onSpeakSelectTimeOut(String speakText) { - + Logger.e(TAG, "免唤醒 onSpeakSelectTimeOut speakText =" + speakText); } }; + /** + * 发送广播 1拥堵,2交通检查,3封路 + */ + private void sendShareReceiver(String type) { + Logger.d(TAG, "TanluCardViewFragment sendShareReceiver ---->"); + Intent intent = new Intent(); + intent.setAction("com.zhidao.roadcondition.share"); + intent.putExtra("type", type); + getContext().sendBroadcast(intent); + } + private MarkerExploreWay extractFromMarker(IMogoMarker marker) { if (marker == null) { @@ -476,30 +523,6 @@ public class TanluCardViewFragment extends MvpFragment> } - /** - * 处理路线数据信息,msgType - */ - private void handleRoadLineMessage() { -// mMogoSocketManager = (IMogoSocketManager) ARouter.getInstance().build(MogoServicePaths.PATH_SOCKET_MANAGER).navigation(); -// mMogoSocketManager.registerOnMessageListener(401005, new IMogoOnMessageListener() { -// @Override -// public Class target() { -// return MarkerResponse.class; -// } -// -// @Override -// public void onMsgReceived(MarkerResponse obj) { -// Logger.e(TAG, "handleRoadLineMessage onMsgReceived obj= " + obj); -// } -// }); - - - //TODO 广播类型判断 -// getNavigationLineData(); -// getRoadLineData(); - - } - /** * @param view */ @@ -530,23 +553,12 @@ public class TanluCardViewFragment extends MvpFragment> handleData(markerExploreWayList.get(currentPosition)); } - } else if (id == R.id.tv_main_empty) { //TODO上报路况,逻辑 + } else if (id == R.id.tv_main_empty) { //上报路况 Logger.d(TAG, "tv_main_empty click -----> "); sendShareReceiver("1"); } } - /** - * 发送广播 - */ - private void sendShareReceiver(String type) { - Logger.d("liyz", "LaucherShareDialog sendShareReceiver ---->"); - Intent intent = new Intent(); - intent.setAction("com.zhidao.roadcondition.share"); - intent.putExtra("type", type); - getContext().sendBroadcast(intent); - } - /** * 执行图片动画 */ @@ -612,6 +624,7 @@ public class TanluCardViewFragment extends MvpFragment> simpleCoverVideoPlayer.setVisibility(View.VISIBLE); //视频配置 mVideoUrl = videoUrl; + simpleCoverVideoPlayer.loadCoverImage(mImageUrl, getContext()); gsyVideoOptionBuilder.setUrl(videoUrl).setCacheWithPlay(false).setPlayTag(TAG) .build(simpleCoverVideoPlayer); if (mImageUrl == null) { @@ -670,6 +683,10 @@ public class TanluCardViewFragment extends MvpFragment> */ @Override public void onPerform() { + //免唤醒 + AIAssist.getInstance(getActivity()).registerUnWakeupCommand(TanluConstants.PLAY_VIDEO, TanluConstants.CMD_PLAY_ROAD_CONDITION, mogoVoiceListener); + + isCurrentPage = true; Logger.d(TAG, "tanlu卡片 onPerform 有效 ---->"); mMarkerManager = mMogoMapService.getMarkerManager(getActivity()); List markers = mMarkerManager.getMarkers(TanluConstants.MODEL_NAME); @@ -715,6 +732,8 @@ public class TanluCardViewFragment extends MvpFragment> @Override public void onDisable() { Logger.d(TAG, "tanlu卡片 无效 ----->"); + isCurrentPage = false; + AIAssist.getInstance(getActivity()).unregisterUnWakeupCommand(TanluConstants.PLAY_VIDEO); } @Override @@ -754,11 +773,6 @@ public class TanluCardViewFragment extends MvpFragment> @Override public void onLocationChanged(MogoLocation location) { -// if (location.getErrCode() == 0) { -// Logger.d(TAG, "onLocationChanged 当前位置 -->" + location.getAddress()); -// } else { -// Logger.d(TAG, "onLocationChanged 定位失败 -->" + location.getErrInfo()); -// } } @Override @@ -788,6 +802,7 @@ public class TanluCardViewFragment extends MvpFragment> getViewLifecycleOwner().getLifecycle().removeObserver(mPresenter); TanluServiceHandler.getLocationClient().removeLocationListener(this); mMogoRegisterCenter.unregisterMogoNaviListener(TanluConstants.MODEL_NAME); + mogoIntentManager.unregisterIntentListener(MogoReceiver.ACTIION_ADAS ); } /** @@ -797,42 +812,75 @@ public class TanluCardViewFragment extends MvpFragment> */ @Subscribe(threadMode = ThreadMode.MAIN) public void onMarkerInfo(final MarkerInfo event) { - Logger.d(TAG, "onMarkerInfo ------>"); + Logger.d(TAG, "onMarkerInfo ------------>"); if (event.type.equals("1")) { //上报路况 - mMarkerIcon = BitmapFactory.decodeResource(getResources(), R.drawable.tanlu_block_up); + mMarkerIcon = BitmapFactory.decodeResource(getResources(), R.drawable.tanlu_marker_block_up); } else if (event.type.equals("2")) { //交通检查 - mMarkerIcon = BitmapFactory.decodeResource(getResources(), R.drawable.tanlu_traffic_check); + mMarkerIcon = BitmapFactory.decodeResource(getResources(), R.drawable.tanlu_marker_traffic_check); } else if (event.type.equals("3")) { //封路 - mMarkerIcon = BitmapFactory.decodeResource(getResources(), R.drawable.tanlu_road_closure); + mMarkerIcon = BitmapFactory.decodeResource(getResources(), R.drawable.tanlu_marker_road_closure); + } else { + mMarkerIcon = BitmapFactory.decodeResource(getResources(), R.drawable.tanlu_marker_block_up); } - mogoImageloader.downloadImage(getActivity(), event.imageUrl, new IMogoImageLoaderListener() { - @Override - public void onStart() { - Logger.d(TAG, "onMarkerInfo onStart ------>"); - } + Logger.d(TAG, "onMarkerInfo onCompleted ------>"); + MogoMarkerOptions options = new MogoMarkerOptions() + .icon(mMarkerIcon) + .latitude(event.lat) + .owner(TanluConstants.MODEL_NAME) + .longitude(event.lon); + IMogoMarker marker = mMarkerManager.addMarker("share_tag", options); //随便传tag,不可点击 + //TODO 请求分享接口 + MarkerExploreWay markerExploreWay = markerExploreWayList.get(0); + if (markerExploreWay.getUserInfo() != null) { - @Override - public void onCompleted(Bitmap bitmap) { - Logger.d(TAG, "onMarkerInfo onCompleted ------>"); - MogoMarkerOptions options = new MogoMarkerOptions() - .icon(mMarkerIcon) - .latitude(event.lat) - .owner(TanluConstants.MODEL_NAME) - .longitude(event.lon); - - IMogoMarker marker = mMarkerManager.addMarker("share_tag", options); - - //TODO 请求分享接口 - } - - @Override - public void onFailure(Exception e) { - Logger.e(TAG, "onMarkerInfo onFailure -----e =" + e); - } - }); + } + uploadShareInfo(markerExploreWay.getType(), "", markerExploreWay.getUserInfo().getUserName(), + markerExploreWay.getUserInfo().getUserHead()); } + + /** + * 上报分享信息 + */ + private void uploadShareInfo(String poiType, String poiImgUrl, String nickname, String headImgUrl) { + double lat = TanluServiceHandler.getLocationClient().getLastKnowLocation().getLatitude(); + double lon = TanluServiceHandler.getLocationClient().getLastKnowLocation().getLongitude(); + String addressStr = TanluServiceHandler.getLocationClient().getLastKnowLocation().getAddress(); + + mTanluModelData.addTrafficCheckInfo(poiType, poiImgUrl, nickname, headImgUrl, lat, lon, addressStr, + new UploadShareCallback() { + @Override + public void onSuccess(BaseData data) { + Logger.d(TAG, "uploadShareInfo onSuccess ----->"); + AIAssist.getInstance(getContext()).speakTTSVoice(getString(R.string.tanlu_share_success), null); + } + + @Override + public void onFail(String message, int code) { + Logger.d(TAG, "uploadShareInfo onFail ----->"); + AIAssist.getInstance(getContext()).speakTTSVoice(getString(R.string.tanlu_share_failed), null); + } + }); + } + + + /** + * push 类型,1为导航数据,2为通勤族 TODO + * + * @param event + */ + @Subscribe(threadMode = ThreadMode.MAIN) + public void onPushInfo(final PushTypeInfo event) { + Logger.d(TAG, " onPushInfo event.type =" + event.type); + if (event.type.equals("1")) { + getNaviRoadLineInfo(); + } else if (event.type.equals("2")) { + getRoadLineData(); + } + } + + /** * 导航路线数据事件 */ @@ -900,12 +948,13 @@ public class TanluCardViewFragment extends MvpFragment> } /** - * 绘制线路 + * 绘制线路 TODO */ private void drawMapLine(List

pointList) { int intervalNum = Utils.getIntervalValue(pointList.size()); Logger.d(TAG, "drawMapLine intervalNum = $intervalNum -- pointList.size = ${pointList.size}"); int listSize = pointList.size(); + passedByPoints = new ArrayList<>(); //沿途最多15个点 for (int i = 0; i < listSize; i += intervalNum) { @@ -925,32 +974,44 @@ public class TanluCardViewFragment extends MvpFragment> public void getVoiceControlRoadData(String keywords, final double lat, final double lon) { String adCode = TanluServiceHandler.getLocationClient().getLastKnowLocation().getAdCode(); String cityCode = TanluServiceHandler.getLocationClient().getLastKnowLocation().getCityCode(); - Logger.d(TAG, "getVoiceControlRoadData lat =" + lat + ">>>lon =" + lon + ">>>cityCode=" + cityCode + ">>>adCode =" + adCode); + + //移动到具体位置 + MogoLatLng latLng = new MogoLatLng(lat, lon); + mMApUIController.moveToCenter(latLng); + + Logger.d(TAG, "getVoiceControlRoadData lat =" + lat + ">>>lon =" + lon + ">>>cityCode= " + cityCode + " >>>adCode = " + adCode); mTanluModelData.getVoiceControlRoadData(keywords, cityCode, lon, lat, adCode, new VoiceSearchCallback() { @Override public void onSuccess(VoiceSearchResult o) { - String discription = o.getDescription(); - Logger.d(TAG, "getVoiceControlRoadData discription = " + discription); - if (o.getInformations() != null && o.getInformations().size() > 0) { - speakSuccessVoice(o.getInformations(), discription == null ? "" : discription); + String discription = o.getResult().getDescription(); + Logger.d(TAG, "getVoiceControlRoadData discription = " + discription); + if (o.getResult().getInformations() != null && o.getResult().getInformations().size() > 0) { + //切换到探路卡片 + if (!isCurrentPage) { + //切换探路卡片 + iMogoCardManager.switch2(TanluConstants.MODEL_NAME); + } - List informationList = o.getInformations(); - //移动 - MogoLatLng latLng = new MogoLatLng(lat, lon); - mMApUIController.moveToCenter(latLng); + speakSuccessVoice(o.getResult().getInformations(), discription == null ? "" : discription); + List informationList = o.getResult().getInformations(); //清除探路之前的数据 mMarkerManager.removeMarkers(TanluConstants.MODEL_NAME); mMogoStatusManager.setUserInteractionStatus(TanluConstants.MODEL_NAME, true, false); - //打点 TODO + //打点 ArrayList optionList = new ArrayList<>(); for (int i = 0; i < informationList.size(); i++) { //根据type确定添加的图片 - if (informationList.get(i).type == 0) { //图片 - multiMarkerIcon = BitmapFactory.decodeResource(getResources(), R.drawable.ic_search_poi_location); - } else if (informationList.get(i).type == 1) { //视频 - + String trafficType = informationList.get(i).trafficInfoType; + if (trafficType.equals("traffic_jam")) { //拥堵 + multiMarkerIcon = BitmapFactory.decodeResource(getResources(), R.drawable.tanlu_marker_block_up); + } else if (trafficType.equals("car_checking")) { //查车 + multiMarkerIcon = BitmapFactory.decodeResource(getResources(), R.drawable.tanlu_marker_traffic_check); + } else if (trafficType.equals("0")) { + multiMarkerIcon = BitmapFactory.decodeResource(getResources(), R.drawable.tanlu_marker_traffic_check); + } else if (trafficType.equals("traffic_control")) { + multiMarkerIcon = BitmapFactory.decodeResource(getResources(), R.drawable.tanlu_marker_road_closure); } MogoMarkerOptions options = new MogoMarkerOptions() @@ -961,11 +1022,9 @@ public class TanluCardViewFragment extends MvpFragment> optionList.add(options); } - + Logger.d(TAG, "getVoiceControlRoadData optionList.size() = " + optionList.size()); mMarkerManager.addMarkers(TanluConstants.MODEL_NAME, optionList, true); //直接使用当前数据list,作为切换的数据源 - - } else { if (!TextUtils.isEmpty(discription)) { AIAssist.getInstance(getContext()).speakTTSVoice(discription, null); @@ -973,7 +1032,6 @@ public class TanluCardViewFragment extends MvpFragment> AIAssist.getInstance(getContext()).speakTTSVoice("未找到其他车主分享的路况信息", null); } } - } @Override @@ -1026,7 +1084,6 @@ public class TanluCardViewFragment extends MvpFragment> } } - private void initStrings() { voiceGetInfoMationTts = getContext().getResources().getString(R.string.voice_get_informations_tts); @@ -1052,5 +1109,3 @@ public class TanluCardViewFragment extends MvpFragment> } - - diff --git a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/model/Information.java b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/model/Information.java index 3ddfc14bc3..fe996b025f 100644 --- a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/model/Information.java +++ b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/model/Information.java @@ -23,6 +23,7 @@ public class Information extends BaseData implements Parcelable { public int distance; public String nickName; public String headImgUrl; + public String trafficInfoType; @Override @@ -42,6 +43,7 @@ public class Information extends BaseData implements Parcelable { dest.writeInt(this.distance); dest.writeString(this.nickName); dest.writeString(this.headImgUrl); + dest.writeString(this.trafficInfoType); } public Information() { @@ -58,6 +60,7 @@ public class Information extends BaseData implements Parcelable { this.distance = in.readInt(); this.nickName = in.readString(); this.headImgUrl = in.readString(); + this.trafficInfoType = in.readString(); } public static final Creator CREATOR = new Creator() { diff --git a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/model/Sns.kt b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/model/Sns.kt index f075745c2b..2ea9c8ebe7 100644 --- a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/model/Sns.kt +++ b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/model/Sns.kt @@ -5,9 +5,13 @@ class Sns { var sns: List var localUserId: String + var localNickName: String + var localHeadImgUrl: String - constructor(sns: List, localUserId: String) { + constructor(sns: List, localUserId: String, localNickName: String, localHeadImgUrl: String) { this.sns = sns this.localUserId = localUserId + this.localNickName = localNickName + this.localHeadImgUrl = localHeadImgUrl } } \ No newline at end of file diff --git a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/model/TanluModelData.java b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/model/TanluModelData.java index 8239fb2cb3..065d48976a 100644 --- a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/model/TanluModelData.java +++ b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/model/TanluModelData.java @@ -5,12 +5,14 @@ import android.util.Log; import com.alibaba.android.arouter.launcher.ARouter; import com.google.gson.Gson; +import com.mogo.commons.data.BaseData; import com.mogo.commons.debug.DebugConfig; import com.mogo.commons.network.ParamsProvider; import com.mogo.commons.network.SubscribeImpl; import com.mogo.commons.network.Utils; import com.mogo.module.tanlu.callback.AlongTheWayCallback; import com.mogo.module.tanlu.callback.RoadLineCallback; +import com.mogo.module.tanlu.callback.UploadShareCallback; import com.mogo.module.tanlu.callback.VoiceSearchCallback; import com.mogo.module.tanlu.constant.HttpConst; import com.mogo.module.tanlu.constant.TanluConstants; @@ -66,7 +68,7 @@ public class TanluModelData { Logger.d(TAG, "getVoiceControlRoadData -------> " + getSn()); final Map params = new ParamsProvider.Builder(mContext) - .append("sn", "ZD821C1933L00974") //getSn + .append("sn", Utils.getSn()) .append("data", searchInformationStr) .append("getSnData", locCarsWithRadiusStr) .build(); @@ -103,7 +105,7 @@ public class TanluModelData { public void getRoadLineData(final RoadLineCallback callback) { Logger.d(TAG, "getRoadLineData -------> =" + Utils.getSn()); final Map params = new ParamsProvider.Builder(mContext) - .append("sn", "ZD821C1933L00974") + .append("sn", Utils.getSn()) .build(); mTanluApiService.getRoadLineInfo(params) @@ -134,12 +136,12 @@ public class TanluModelData { } /** - * 导航路径,监听消息自己请求路线数据 + * 导航路径,监听消息自己请求路线数据 ZD821C1933L00974 */ public void getNaviRoadLineInfo(final RoadLineCallback callback) { Logger.d(TAG, "getNaviRoadLineInfo -------> =" + Utils.getSn()); final Map params = new ParamsProvider.Builder(mContext) - .append("sn", "ZD821C1933L00974") + .append("sn", Utils.getSn()) .build(); mTanluApiService.getNaviRoadLineInfo(params) @@ -177,6 +179,9 @@ public class TanluModelData { Gson gson = new Gson(); NaviLatLng coordinates = new NaviLatLng(getNaviInfo(lon, lat).fromStart(), getNaviInfo(lon, lat).toEnd()); Logger.d(TAG, "getNavigationLineData -------> " + getSn()); + if (coordinates == null) { + return; + } List list = new ArrayList<>(); list.add(lon); @@ -189,7 +194,7 @@ public class TanluModelData { .append("getSnData", locCarsWithRadiusStr) .build(); - mTanluApiService.requestInformationAlongTheWay(getSn(), params) + mTanluApiService.requestInformationAlongTheWay(Utils.getSn(), params) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new SubscribeImpl(RequestOptions.create(mContext)) { @@ -223,14 +228,61 @@ public class TanluModelData { Log.d(TAG, " getNaviInfo naviInfo =" + naviInfo); NaviLatLngInfo naviLatLngInfo = new Gson().fromJson(naviInfo, NaviLatLngInfo.class); Log.d(TAG, "getLocNaviInfo lat = $lat -----> lon = $lon"); - if (lon == 0.0 || lat == 0.0) { - return naviLatLngInfo; + if (naviLatLngInfo != null) { + if (lon == 0.0 || lat == 0.0) { + return naviLatLngInfo; + } else { + naviLatLngInfo.setFromPoiLatitude(lat + ""); + naviLatLngInfo.setFromPoiLongitude(lon + ""); + SharedPrefsMgr.getInstance(mContext).putString(TanluConstants.NAVI_INFO, new Gson().toJson(naviLatLngInfo)); + return naviLatLngInfo; + } } else { - naviLatLngInfo.setFromPoiLatitude(lat + ""); - naviLatLngInfo.setFromPoiLongitude(lon + ""); - SharedPrefsMgr.getInstance(mContext).putString(TanluConstants.NAVI_INFO, new Gson().toJson(naviLatLngInfo)); - return naviLatLngInfo; + return null; } } + + /** + * 上报交通检查和封路 TODO + */ + public void addTrafficCheckInfo(String poiType, String poiImgUrl, String nickname, String headImgUrl, + double lat, double lon, String address, final UploadShareCallback callback) { + Gson gson = new Gson(); + UploadShareRoadInfo uploadShareRoadInfo = new UploadShareRoadInfo(poiType, poiImgUrl, nickname, headImgUrl, new Center(lat, lon), address); + String uploadShareStr = gson.toJson(uploadShareRoadInfo); + Logger.d(TAG, "addTrafficCheckInfo sn= " + getSn() + ">> uploadShareStr =" + uploadShareStr); + + final Map params = new ParamsProvider.Builder(mContext) + .append("sn", Utils.getSn()) + .append("data", uploadShareStr) + .build(); + mTanluApiService.searchOnLineInformation(params) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new SubscribeImpl(RequestOptions.create(mContext)) { + @Override + public void onSuccess(BaseData o) { + super.onSuccess(o); + callback.onSuccess(o); + Logger.d(TAG, "addTrafficCheckInfo onSuccess ------>"); + } + + @Override + public void onError(String message, int code) { + super.onError(message, code); + callback.onFail(message, code); + Logger.e(TAG, "addTrafficCheckInfo onError message= " + message + ">>code =" + code); + } + + @Override + public void onError(Throwable e) { + super.onError(e); + Logger.d(TAG, "addTrafficCheckInfo onError ------> e= " + e.getMessage()); + } + }); + + } + + } diff --git a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/model/UploadShareRoadInfo.java b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/model/UploadShareRoadInfo.java new file mode 100644 index 0000000000..e8e69d6650 --- /dev/null +++ b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/model/UploadShareRoadInfo.java @@ -0,0 +1,26 @@ +package com.mogo.module.tanlu.model; + +/** + * @author lixiaopeng + * @description 分享上报信息参数 + * @since 2020-01-16 + */ +public class UploadShareRoadInfo { + + public String poiType; + public String poiImgUrl; + public String nickname; + public String headImgUrl; + private Center location; + private String address; + + public UploadShareRoadInfo(String poiType, String poiImgUrl, String nickname, + String headImgUrl, Center location, String address) { + this.poiType = poiType; + this.poiImgUrl = poiImgUrl; + this.nickname = nickname; + this.headImgUrl = headImgUrl; + this.location = location; + this.address = address; + } +} diff --git a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/model/VoiceSearchResult.java b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/model/VoiceSearchResult.java index a4ed3c5f26..086957fc6b 100644 --- a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/model/VoiceSearchResult.java +++ b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/model/VoiceSearchResult.java @@ -9,31 +9,45 @@ import java.util.List; * @since 2020-01-08 */ public class VoiceSearchResult extends BaseData { - private List informations; - private String description; - private Sns snResult; - public List getInformations() { - return informations; + private Result result; + + public Result getResult() { + return result; } - public void setInformations(List informations) { - this.informations = informations; + public void setResult(Result result) { + this.result = result; } - public String getDescription() { - return description; + public static class Result { + private List informations; + private String description; + private Sns snResult; + + public List getInformations() { + return informations; + } + + public void setInformations(List informations) { + this.informations = informations; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public Sns getSnResult() { + return snResult; + } + + public void setSnResult(Sns snResult) { + this.snResult = snResult; + } } - public void setDescription(String description) { - this.description = description; - } - - public Sns getSnResult() { - return snResult; - } - - public void setSnResult(Sns snResult) { - this.snResult = snResult; - } } diff --git a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/model/event/PushTypeInfo.java b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/model/event/PushTypeInfo.java new file mode 100644 index 0000000000..52c23ebdda --- /dev/null +++ b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/model/event/PushTypeInfo.java @@ -0,0 +1,17 @@ +package com.mogo.module.tanlu.model.event; + +import java.io.Serializable; + +/** + * @author lixiaopeng + * @description push区分类别 + * @since 2020-01-08 + */ +public class PushTypeInfo implements Serializable { + public String type; + + public PushTypeInfo(String type) { + this.type = type; + } + +} diff --git a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/net/TanluApiService.java b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/net/TanluApiService.java index 5d085fe683..90760afe9c 100644 --- a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/net/TanluApiService.java +++ b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/net/TanluApiService.java @@ -1,5 +1,6 @@ package com.mogo.module.tanlu.net; +import com.mogo.commons.data.BaseData; import com.mogo.module.tanlu.model.InformationAndLiveCarResult; import com.mogo.module.tanlu.model.PathLineResult; import com.mogo.module.tanlu.model.VoiceSearchResult; @@ -20,7 +21,7 @@ import retrofit2.http.Query; public interface TanluApiService { /** - * 探路沿途数据 + * 探路沿途数据,只是为了通知server下发push */ @FormUrlEncoded @POST("deva/car/path/no/getOnTheWayDataAndSn/v1") @@ -47,5 +48,11 @@ public interface TanluApiService { @POST("deva/car/search/no/searchInforationByAddress/v1") Observable searchOnLineInformation(@FieldMap Map infoBody); + /** + * 上报交通检查,封路 + */ + @FormUrlEncoded + @POST("deva/car/poi/no/addNovelty/v1") + Observable uploadCheckTrafficInfor(@FieldMap Map infoBody); } diff --git a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/receiver/PushReceiver.kt b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/receiver/PushReceiver.kt new file mode 100644 index 0000000000..731f251884 --- /dev/null +++ b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/receiver/PushReceiver.kt @@ -0,0 +1,22 @@ +package com.mogo.module.tanlu.receiver + +import android.content.BroadcastReceiver +import android.content.Context +import android.content.Intent +import android.util.Log +import com.mogo.module.tanlu.model.event.PushTypeInfo +import com.mogo.module.tanlu.model.event.VoiceRoadInfo +import org.greenrobot.eventbus.EventBus + +/** + * 导航和通勤族 push的action + */ +class PushReceiver : BroadcastReceiver() { + override fun onReceive(context: Context, intent: Intent) { + if (intent.action == "com.zhidao.roadcondition.split"){ + var type = intent.getStringExtra("type") + Log.d("PushReceiver", "type = $type") + EventBus.getDefault().post(PushTypeInfo(type)) + } + } +} diff --git a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/video/SimpleCoverVideoPlayer.kt b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/video/SimpleCoverVideoPlayer.kt index 8643ae7cfd..a27b37a2e1 100644 --- a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/video/SimpleCoverVideoPlayer.kt +++ b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/video/SimpleCoverVideoPlayer.kt @@ -56,12 +56,11 @@ class SimpleCoverVideoPlayer : StandardGSYVideoPlayer { } } -// fun loadCoverImage(url: String, mContext: Context) { -// Glide.with(mContext.applicationContext) -// .load(url) -// .error(R.color.color_303447) -// .into(coverImage) -// } + fun loadCoverImage(url: String, mContext: Context) { + Glide.with(mContext.applicationContext) + .load(url) + .into(coverImage) + } override fun updateStartImage() { when (mCurrentState) { diff --git a/modules/mogo-module-tanlu/src/main/res/drawable-xhdpi/tanlu_marker_block_up.png b/modules/mogo-module-tanlu/src/main/res/drawable-xhdpi/tanlu_marker_block_up.png new file mode 100644 index 0000000000..a934c7a994 Binary files /dev/null and b/modules/mogo-module-tanlu/src/main/res/drawable-xhdpi/tanlu_marker_block_up.png differ diff --git a/modules/mogo-module-tanlu/src/main/res/drawable-xhdpi/tanlu_marker_road_closure.png b/modules/mogo-module-tanlu/src/main/res/drawable-xhdpi/tanlu_marker_road_closure.png new file mode 100644 index 0000000000..d399d10169 Binary files /dev/null and b/modules/mogo-module-tanlu/src/main/res/drawable-xhdpi/tanlu_marker_road_closure.png differ diff --git a/modules/mogo-module-tanlu/src/main/res/drawable-xhdpi/tanlu_marker_traffic_check.png b/modules/mogo-module-tanlu/src/main/res/drawable-xhdpi/tanlu_marker_traffic_check.png new file mode 100644 index 0000000000..b47d3866ef Binary files /dev/null and b/modules/mogo-module-tanlu/src/main/res/drawable-xhdpi/tanlu_marker_traffic_check.png differ diff --git a/modules/mogo-module-tanlu/src/main/res/drawable/shape_bg_222533.xml b/modules/mogo-module-tanlu/src/main/res/drawable/shape_bg_222533.xml index 12b869a5ff..1776be8082 100644 --- a/modules/mogo-module-tanlu/src/main/res/drawable/shape_bg_222533.xml +++ b/modules/mogo-module-tanlu/src/main/res/drawable/shape_bg_222533.xml @@ -1,5 +1,7 @@ - - + + + \ No newline at end of file diff --git a/modules/mogo-module-tanlu/src/main/res/drawable/tanlu_gradual_change_bg.xml b/modules/mogo-module-tanlu/src/main/res/drawable/tanlu_gradual_change_bg.xml new file mode 100644 index 0000000000..6f95f6d2e9 --- /dev/null +++ b/modules/mogo-module-tanlu/src/main/res/drawable/tanlu_gradual_change_bg.xml @@ -0,0 +1,9 @@ + + + + + + \ No newline at end of file diff --git a/modules/mogo-module-tanlu/src/main/res/layout/tanlu_item_main_media_recycler.xml b/modules/mogo-module-tanlu/src/main/res/layout/tanlu_item_main_media_recycler.xml index 913bfc2e39..aab6356f38 100644 --- a/modules/mogo-module-tanlu/src/main/res/layout/tanlu_item_main_media_recycler.xml +++ b/modules/mogo-module-tanlu/src/main/res/layout/tanlu_item_main_media_recycler.xml @@ -3,7 +3,7 @@ xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="@dimen/dp_660" android:layout_height="@dimen/dp_660" - android:background="@drawable/shape_bg_222533_10px"> + android:background="@drawable/tanlu_gradual_change_bg"> @@ -52,9 +52,9 @@ android:layout_below="@+id/tv_information_media_content" android:layout_alignParentRight="true" android:layout_centerVertical="true" - android:layout_marginRight="@dimen/dp_32" + android:layout_marginRight="@dimen/dp_24" android:text="2019-10-10" - android:textColor="@color/color_999999" + android:textColor="@color/color_99FFFFFF" android:textSize="@dimen/dp_26" /> @@ -64,8 +64,8 @@ android:layout_width="@dimen/dp_596" android:layout_height="@dimen/dp_355" android:layout_below="@+id/layout_top_view" - android:layout_marginLeft="@dimen/dp_32" - android:layout_marginRight="@dimen/dp_32" + android:layout_marginLeft="@dimen/dp_24" + android:layout_marginRight="@dimen/dp_24" android:background="@drawable/shape_bg_222533_9px"> + android:layout_marginTop="@dimen/dp_30" + android:layout_marginLeft="@dimen/dp_24" + android:layout_marginRight="@dimen/dp_24"> + android:textColor="@color/white" + android:textSize="@dimen/dp_28" /> + android:textColor="@color/white" + android:textSize="@dimen/dp_28" /> @@ -126,7 +125,7 @@ + android:textSize="@dimen/dp_34" /> \ No newline at end of file diff --git a/modules/mogo-module-tanlu/src/main/res/values/colors.xml b/modules/mogo-module-tanlu/src/main/res/values/colors.xml index 6c0dd2590f..78aa080e47 100644 --- a/modules/mogo-module-tanlu/src/main/res/values/colors.xml +++ b/modules/mogo-module-tanlu/src/main/res/values/colors.xml @@ -34,7 +34,9 @@ #DADAE2 #545362 #99191C25 - #666666 + #99666666 #999999 + #99FFFFFF + #59FFFFFF diff --git a/modules/mogo-module-tanlu/src/main/res/values/strings.xml b/modules/mogo-module-tanlu/src/main/res/values/strings.xml index b6fc8a1bd9..104e6ba3bd 100644 --- a/modules/mogo-module-tanlu/src/main/res/values/strings.xml +++ b/modules/mogo-module-tanlu/src/main/res/values/strings.xml @@ -6,7 +6,7 @@ 已同意 探路共享计划 >> 探路APP用户服务协议 - 未找到其他用户分享的路况,
您可以试试上报路况]]>
+ 未找到其他用户分享的路况,
您可以试试上报路况]]>
未知区域 上报路况 正在更新情报数据 @@ -17,7 +17,8 @@ 共享计划 上一条 下一条 - + 分享成功 + 分享失败 正在为您搜索路况 diff --git a/services/mogo-service-api/build.gradle b/services/mogo-service-api/build.gradle index a3c7bea1c2..8dc15e3ab2 100644 --- a/services/mogo-service-api/build.gradle +++ b/services/mogo-service-api/build.gradle @@ -2,7 +2,7 @@ apply plugin: 'com.android.library' android { compileSdkVersion rootProject.ext.android.compileSdkVersion - buildToolsVersion rootProject.ext.android.buildToolsVersion + // buildToolsVersion rootProject.ext.android.buildToolsVersion defaultConfig { minSdkVersion rootProject.ext.android.minSdkVersion targetSdkVersion rootProject.ext.android.targetSdkVersion diff --git a/services/mogo-service-api/src/main/java/com/mogo/service/imageloader/MogoImageView.java b/services/mogo-service-api/src/main/java/com/mogo/service/imageloader/MogoImageView.java index 18612539a7..8b9f951a83 100644 --- a/services/mogo-service-api/src/main/java/com/mogo/service/imageloader/MogoImageView.java +++ b/services/mogo-service-api/src/main/java/com/mogo/service/imageloader/MogoImageView.java @@ -64,6 +64,8 @@ public class MogoImageView extends GenericDraweeView { mIsBlur = arrays.getBoolean( R.styleable.MogoImageView_miv_isBlur, false ); mBlurRadius = arrays.getInt( R.styleable.MogoImageView_miv_blurRadius, 25 ); arrays.recycle(); + + setImageResource( mPlaceHolder ); } public void setRadius( float radius ) { diff --git a/services/mogo-service-api/src/main/java/com/mogo/service/intent/IMogoIntentManager.java b/services/mogo-service-api/src/main/java/com/mogo/service/intent/IMogoIntentManager.java index 1a978d1b25..cb3538048f 100644 --- a/services/mogo-service-api/src/main/java/com/mogo/service/intent/IMogoIntentManager.java +++ b/services/mogo-service-api/src/main/java/com/mogo/service/intent/IMogoIntentManager.java @@ -8,7 +8,7 @@ import com.alibaba.android.arouter.facade.template.IProvider; * @author congtaowang * @since 2020-01-09 *

- * 免唤醒语音控制 + * 唤醒语音控制 */ public interface IMogoIntentManager extends IProvider { diff --git a/services/mogo-service/build.gradle b/services/mogo-service/build.gradle index 912ded01fc..66f2a244d6 100644 --- a/services/mogo-service/build.gradle +++ b/services/mogo-service/build.gradle @@ -3,7 +3,7 @@ apply plugin: 'com.alibaba.arouter' android { compileSdkVersion rootProject.ext.android.compileSdkVersion - buildToolsVersion rootProject.ext.android.buildToolsVersion + // buildToolsVersion rootProject.ext.android.buildToolsVersion defaultConfig { minSdkVersion rootProject.ext.android.minSdkVersion targetSdkVersion rootProject.ext.android.targetSdkVersion