Merge remote-tracking branch 'origin/feature/v1.0.0' into feature/v1.0.0
2
.idea/misc.xml
generated
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="1.8" project-jdk-type="JavaSDK">
|
||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="JDK" project-jdk-type="JavaSDK">
|
||||
<output url="file://$PROJECT_DIR$/build/classes" />
|
||||
</component>
|
||||
</project>
|
||||
@@ -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 {
|
||||
|
||||
@@ -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 ) );
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
ext {
|
||||
android = [
|
||||
applicationId : "com.mogo.launcher",
|
||||
compileSdkVersion: 29,
|
||||
compileSdkVersion: 28,
|
||||
buildToolsVersion: "29.0.2",
|
||||
minSdkVersion : 19,
|
||||
targetSdkVersion : 22,
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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 ) {
|
||||
|
||||
|
||||
@@ -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
|
||||
* <p>
|
||||
* 巡航监听
|
||||
*/
|
||||
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 ) {
|
||||
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
|
||||
@@ -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 );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -63,7 +63,8 @@ public interface IMogoNavi {
|
||||
*
|
||||
* @param isRealNavi true - 实时导航 false - 模拟导航
|
||||
*/
|
||||
void startNavi( boolean isRealNavi );
|
||||
void
|
||||
startNavi( boolean isRealNavi );
|
||||
|
||||
/**
|
||||
* 是否正在导航
|
||||
|
||||
@@ -44,4 +44,9 @@ public interface IMogoNaviListener {
|
||||
* 路径规划失败
|
||||
*/
|
||||
void onoCalculateFailed();
|
||||
|
||||
/**
|
||||
* 巡航信息发生改变
|
||||
*/
|
||||
void onUpdateTraffic(MogoTraffic traffic);
|
||||
}
|
||||
|
||||
@@ -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 );
|
||||
|
||||
@@ -91,4 +91,11 @@ public class MogoNaviListenerHandler implements IMogoNaviListener, IMogoNaviList
|
||||
mDelegateListener.onoCalculateFailed();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onUpdateTraffic( MogoTraffic traffic ) {
|
||||
if ( mDelegateListener != null ) {
|
||||
mDelegateListener.onUpdateTraffic( traffic );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,76 @@
|
||||
package com.mogo.map.navi;
|
||||
|
||||
/**
|
||||
* @author congtaowang
|
||||
* @since 2020-01-16
|
||||
* <p>
|
||||
* 巡航信息、导航信息
|
||||
*/
|
||||
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;
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 469 B |
@@ -19,11 +19,11 @@
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<FrameLayout
|
||||
android:id="@+id/module_apps_id_apps_container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="#0C0C0C"
|
||||
app:behavior_hideable="false"
|
||||
android:id="@+id/module_apps_id_apps_container"
|
||||
app:behavior_peekHeight="0dp"
|
||||
app:layout_behavior="@string/bottom_sheet_behavior">
|
||||
|
||||
@@ -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" />
|
||||
|
||||
<com.mogo.module.apps.view.LinePageIndicator
|
||||
@@ -46,10 +46,10 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="@dimen/dp_2"
|
||||
android:layout_gravity="bottom|center_horizontal"
|
||||
android:layout_marginBottom="@dimen/dp_100"
|
||||
app:lineWidth="@dimen/dp_30"
|
||||
android:layout_marginBottom="@dimen/module_apps_indicator_marginBottom"
|
||||
app:lineWidth="@dimen/module_apps_indicator_width"
|
||||
app:selectedColor="#ffffffff"
|
||||
app:strokeWidth="@dimen/dp_5"
|
||||
app:strokeWidth="@dimen/module_apps_indicator_heigt"
|
||||
app:unselectedColor="#33ffffff" />
|
||||
|
||||
<ProgressBar
|
||||
|
||||
@@ -4,32 +4,32 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:gravity="bottom"
|
||||
android:paddingBottom="@dimen/dp_61">
|
||||
android:paddingBottom="@dimen/module_apps_navigation_icon_paddingBottom">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/module_apps_id_navigation"
|
||||
android:layout_width="@dimen/dp_119"
|
||||
android:layout_height="@dimen/dp_119"
|
||||
android:layout_width="@dimen/module_apps_navigation_icon_width"
|
||||
android:layout_height="@dimen/module_apps_navigation_icon_height"
|
||||
android:src="@drawable/module_apps_ic_navigation" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/module_apps_ic_media_center"
|
||||
android:layout_width="@dimen/dp_119"
|
||||
android:layout_height="@dimen/dp_119"
|
||||
android:layout_marginLeft="@dimen/dp_61"
|
||||
android:layout_width="@dimen/module_apps_navigation_icon_width"
|
||||
android:layout_height="@dimen/module_apps_navigation_icon_height"
|
||||
android:layout_marginLeft="@dimen/module_apps_navigation_icon_marginLeft"
|
||||
android:src="@drawable/module_apps_ic_media_center" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/module_apps_ic_car_settings"
|
||||
android:layout_width="@dimen/dp_119"
|
||||
android:layout_height="@dimen/dp_119"
|
||||
android:layout_marginLeft="@dimen/dp_61"
|
||||
android:layout_width="@dimen/module_apps_navigation_icon_width"
|
||||
android:layout_height="@dimen/module_apps_navigation_icon_height"
|
||||
android:layout_marginLeft="@dimen/module_apps_navigation_icon_marginLeft"
|
||||
android:src="@drawable/module_apps_ic_car_settings" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/module_apps_id_apps"
|
||||
android:layout_width="@dimen/dp_119"
|
||||
android:layout_height="@dimen/dp_119"
|
||||
android:layout_marginLeft="@dimen/dp_61"
|
||||
android:layout_width="@dimen/module_apps_navigation_icon_width"
|
||||
android:layout_height="@dimen/module_apps_navigation_icon_height"
|
||||
android:layout_marginLeft="@dimen/module_apps_navigation_icon_marginLeft"
|
||||
android:src="@drawable/module_apps_ic_apps" />
|
||||
</LinearLayout>
|
||||
@@ -8,16 +8,16 @@
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/module_apps_id_app_icon"
|
||||
android:layout_width="@dimen/dp_120"
|
||||
android:layout_height="@dimen/dp_120" />
|
||||
android:layout_width="@dimen/module_apps_navigation_icon_width"
|
||||
android:layout_height="@dimen/module_apps_navigation_icon_height" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/module_apps_id_app_name"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/dp_32"
|
||||
android:layout_marginTop="@dimen/module_apps_app_name_marginTop"
|
||||
android:gravity="center"
|
||||
android:maxLines="2"
|
||||
android:textColor="#FFFFFF"
|
||||
android:textSize="@dimen/dp_32" />
|
||||
android:textSize="@dimen/module_apps_app_name_textSize" />
|
||||
</LinearLayout>
|
||||
@@ -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">
|
||||
|
||||
</GridView>
|
||||
16
modules/mogo-module-apps/src/main/res/values-ldpi/dimens.xml
Normal file
@@ -0,0 +1,16 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<dimen name="module_apps_pager_marginTop">117px</dimen>
|
||||
<dimen name="module_apps_indicator_heigt">2.7px</dimen>
|
||||
<dimen name="module_apps_indicator_width">16px</dimen>
|
||||
<dimen name="module_apps_indicator_marginBottom">54.9px</dimen>
|
||||
<dimen name="module_apps_navigation_icon_width">64px</dimen>
|
||||
<dimen name="module_apps_navigation_icon_height">64px</dimen>
|
||||
<dimen name="module_apps_navigation_icon_marginLeft">31.6px</dimen>
|
||||
<dimen name="module_apps_navigation_icon_paddingBottom">33px</dimen>
|
||||
<dimen name="module_apps_app_name_marginTop">24px</dimen>
|
||||
<dimen name="module_apps_app_name_textSize">18px</dimen>
|
||||
<dimen name="module_apps_page_paddingLeft">112px</dimen>
|
||||
<dimen name="module_apps_page_paddingRight">112px</dimen>
|
||||
<dimen name="module_apps_page_item_verticalSpacing">89px</dimen>
|
||||
</resources>
|
||||
@@ -0,0 +1,16 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<dimen name="module_apps_pager_marginTop">260px</dimen>
|
||||
<dimen name="module_apps_indicator_heigt">5px</dimen>
|
||||
<dimen name="module_apps_indicator_width">30px</dimen>
|
||||
<dimen name="module_apps_indicator_marginBottom">103px</dimen>
|
||||
<dimen name="module_apps_navigation_icon_width">120px</dimen>
|
||||
<dimen name="module_apps_navigation_icon_height">120px</dimen>
|
||||
<dimen name="module_apps_navigation_icon_marginLeft">61px</dimen>
|
||||
<dimen name="module_apps_navigation_icon_paddingBottom">60px</dimen>
|
||||
<dimen name="module_apps_app_name_marginTop">32px</dimen>
|
||||
<dimen name="module_apps_app_name_textSize">32px</dimen>
|
||||
<dimen name="module_apps_page_paddingLeft">220px</dimen>
|
||||
<dimen name="module_apps_page_paddingRight">220px</dimen>
|
||||
<dimen name="module_apps_page_item_verticalSpacing">154px</dimen>
|
||||
</resources>
|
||||
16
modules/mogo-module-apps/src/main/res/values/dimens.xml
Normal file
@@ -0,0 +1,16 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<dimen name="module_apps_pager_marginTop">260px</dimen>
|
||||
<dimen name="module_apps_indicator_heigt">5px</dimen>
|
||||
<dimen name="module_apps_indicator_width">30px</dimen>
|
||||
<dimen name="module_apps_indicator_marginBottom">103px</dimen>
|
||||
<dimen name="module_apps_navigation_icon_width">120px</dimen>
|
||||
<dimen name="module_apps_navigation_icon_height">120px</dimen>
|
||||
<dimen name="module_apps_navigation_icon_marginLeft">61px</dimen>
|
||||
<dimen name="module_apps_navigation_icon_paddingBottom">60px</dimen>
|
||||
<dimen name="module_apps_app_name_marginTop">32px</dimen>
|
||||
<dimen name="module_apps_app_name_textSize">32px</dimen>
|
||||
<dimen name="module_apps_page_paddingLeft">220px</dimen>
|
||||
<dimen name="module_apps_page_paddingRight">220px</dimen>
|
||||
<dimen name="module_apps_page_item_verticalSpacing">154px</dimen>
|
||||
</resources>
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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 +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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<MarkerOnlineTag> singerTop2; // 最喜欢的两位歌手
|
||||
private List<MarkerOnlineTag> songTypeTop2; // 最喜欢的两种音乐类型
|
||||
private List<MarkerOnlineTag> newsType; // 最喜欢的资讯类型
|
||||
private List<MarkerOnlineTag> listenBookTop2; // 最喜欢听的两本书
|
||||
private List<MarkerOnlineTag> ifSociety; // 是否喜爱社交
|
||||
|
||||
private String content;
|
||||
|
||||
private int isCheck;
|
||||
|
||||
public String getContent() {
|
||||
if (TextUtils.isEmpty(content)) {
|
||||
return "未知";
|
||||
}
|
||||
return content;
|
||||
public List<MarkerOnlineTag> getSingerTop2() {
|
||||
return singerTop2;
|
||||
}
|
||||
|
||||
public void setContent(String content) {
|
||||
this.content = content;
|
||||
public void setSingerTop2(List<MarkerOnlineTag> singerTop2) {
|
||||
this.singerTop2 = singerTop2;
|
||||
}
|
||||
|
||||
public int getIsCheck() {
|
||||
return isCheck;
|
||||
public List<MarkerOnlineTag> getSongTypeTop2() {
|
||||
return songTypeTop2;
|
||||
}
|
||||
|
||||
public void setIsCheck(int isCheck) {
|
||||
this.isCheck = isCheck;
|
||||
public void setSongTypeTop2(List<MarkerOnlineTag> songTypeTop2) {
|
||||
this.songTypeTop2 = songTypeTop2;
|
||||
}
|
||||
|
||||
public List<MarkerOnlineTag> getNewsType() {
|
||||
return newsType;
|
||||
}
|
||||
|
||||
public void setNewsType(List<MarkerOnlineTag> newsType) {
|
||||
this.newsType = newsType;
|
||||
}
|
||||
|
||||
public List<MarkerOnlineTag> getListenBookTop2() {
|
||||
return listenBookTop2;
|
||||
}
|
||||
|
||||
public void setListenBookTop2(List<MarkerOnlineTag> listenBookTop2) {
|
||||
this.listenBookTop2 = listenBookTop2;
|
||||
}
|
||||
|
||||
public List<MarkerOnlineTag> getIfSociety() {
|
||||
return ifSociety;
|
||||
}
|
||||
|
||||
public void setIfSociety(List<MarkerOnlineTag> ifSociety) {
|
||||
this.ifSociety = ifSociety;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "MarkerHobbyDatum{" +
|
||||
"content='" + content + '\'' +
|
||||
", isCheck=" + isCheck +
|
||||
"singerTop2=" + singerTop2 +
|
||||
", songTypeTop2=" + songTypeTop2 +
|
||||
", newsType=" + newsType +
|
||||
", listenBookTop2=" + listenBookTop2 +
|
||||
", ifSociety=" + ifSociety +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,7 +13,7 @@ public class MarkerOnlineCar implements Serializable {
|
||||
private MarkerUserInfo userInfo;//用户数据
|
||||
private MarkerCarInfo carInfo;//车辆数据
|
||||
private MarkerDynamicData dynamicData;//动态数据
|
||||
private List<MarkerHobbyDatum> hobbyData;//爱好数据集合
|
||||
private MarkerHobbyDatum hobbyData;//爱好数据集合
|
||||
private List<MarkerActivitiesScope> activitiesScope;//活动范围数据集合
|
||||
private double compatibility;
|
||||
|
||||
@@ -49,11 +49,11 @@ public class MarkerOnlineCar implements Serializable {
|
||||
this.dynamicData = dynamicData;
|
||||
}
|
||||
|
||||
public List<MarkerHobbyDatum> getHobbyData() {
|
||||
public MarkerHobbyDatum getHobbyData() {
|
||||
return hobbyData;
|
||||
}
|
||||
|
||||
public void setHobbyData(List<MarkerHobbyDatum> hobbyData) {
|
||||
public void setHobbyData(MarkerHobbyDatum hobbyData) {
|
||||
this.hobbyData = hobbyData;
|
||||
}
|
||||
|
||||
|
||||
@@ -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 +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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() {
|
||||
|
||||
|
||||
BIN
modules/mogo-module-extensions/src/main/res/drawable-ldpi/ic_cloudy.png
Executable file
|
After Width: | Height: | Size: 510 B |
BIN
modules/mogo-module-extensions/src/main/res/drawable-ldpi/ic_dust_sand.png
Executable file
|
After Width: | Height: | Size: 454 B |
BIN
modules/mogo-module-extensions/src/main/res/drawable-ldpi/ic_duststorm.png
Executable file
|
After Width: | Height: | Size: 479 B |
BIN
modules/mogo-module-extensions/src/main/res/drawable-ldpi/ic_fog.png
Executable file
|
After Width: | Height: | Size: 268 B |
BIN
modules/mogo-module-extensions/src/main/res/drawable-ldpi/ic_haze.png
Executable file
|
After Width: | Height: | Size: 408 B |
BIN
modules/mogo-module-extensions/src/main/res/drawable-ldpi/ic_heavy_rain.png
Executable file
|
After Width: | Height: | Size: 419 B |
BIN
modules/mogo-module-extensions/src/main/res/drawable-ldpi/ic_light_rain.png
Executable file
|
After Width: | Height: | Size: 373 B |
BIN
modules/mogo-module-extensions/src/main/res/drawable-ldpi/ic_moderate_rain.png
Executable file
|
After Width: | Height: | Size: 373 B |
BIN
modules/mogo-module-extensions/src/main/res/drawable-ldpi/ic_overcast.png
Executable file
|
After Width: | Height: | Size: 516 B |
BIN
modules/mogo-module-extensions/src/main/res/drawable-ldpi/ic_severe_storm.png
Executable file
|
After Width: | Height: | Size: 541 B |
BIN
modules/mogo-module-extensions/src/main/res/drawable-ldpi/ic_shower.png
Executable file
|
After Width: | Height: | Size: 525 B |
BIN
modules/mogo-module-extensions/src/main/res/drawable-ldpi/ic_snow.png
Executable file
|
After Width: | Height: | Size: 521 B |
BIN
modules/mogo-module-extensions/src/main/res/drawable-ldpi/ic_sunny.png
Executable file
|
After Width: | Height: | Size: 502 B |
BIN
modules/mogo-module-extensions/src/main/res/drawable-ldpi/ic_thunder.png
Executable file
|
After Width: | Height: | Size: 452 B |
BIN
modules/mogo-module-extensions/src/main/res/drawable-ldpi/ic_thundershower.png
Executable file
|
After Width: | Height: | Size: 534 B |
BIN
modules/mogo-module-extensions/src/main/res/drawable-ldpi/ic_unknown.png
Executable file
|
After Width: | Height: | Size: 464 B |
BIN
modules/mogo-module-extensions/src/main/res/drawable-ldpi/module_map_ic_search.png
Normal file → Executable file
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 712 B |
|
Before Width: | Height: | Size: 988 B After Width: | Height: | Size: 988 B |
|
Before Width: | Height: | Size: 551 B After Width: | Height: | Size: 551 B |
|
Before Width: | Height: | Size: 754 B After Width: | Height: | Size: 754 B |
|
Before Width: | Height: | Size: 449 B After Width: | Height: | Size: 449 B |
|
Before Width: | Height: | Size: 934 B After Width: | Height: | Size: 934 B |
|
Before Width: | Height: | Size: 801 B After Width: | Height: | Size: 801 B |
|
Before Width: | Height: | Size: 631 B After Width: | Height: | Size: 631 B |
|
Before Width: | Height: | Size: 631 B After Width: | Height: | Size: 631 B |
|
Before Width: | Height: | Size: 929 B After Width: | Height: | Size: 929 B |
|
Before Width: | Height: | Size: 987 B After Width: | Height: | Size: 987 B |
|
Before Width: | Height: | Size: 967 B After Width: | Height: | Size: 967 B |
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 1.0 KiB |
|
Before Width: | Height: | Size: 913 B After Width: | Height: | Size: 913 B |
|
Before Width: | Height: | Size: 772 B After Width: | Height: | Size: 772 B |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 906 B After Width: | Height: | Size: 906 B |
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item>
|
||||
<shape>
|
||||
<corners android:radius="90dp" />
|
||||
<stroke android:width="@dimen/dp_6" android:color="#B92F49" />/>
|
||||
</shape>
|
||||
</item>
|
||||
</selector>
|
||||
@@ -1,24 +1,25 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/module_entrance_id_search"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="@dimen/dp_90"
|
||||
android:layout_marginLeft="@dimen/dp_32"
|
||||
android:layout_marginTop="@dimen/dp_2"
|
||||
android:layout_height="@dimen/module_ext_search_height"
|
||||
android:layout_marginLeft="@dimen/module_ext_search_marginLeft"
|
||||
android:layout_marginTop="@dimen/module_ext_search_marginTop"
|
||||
android:background="@drawable/module_ext_dw_common_corner_bkg"
|
||||
android:drawableLeft="@drawable/module_map_ic_search"
|
||||
android:drawablePadding="@dimen/dp_16"
|
||||
android:drawablePadding="@dimen/module_ext_search_drawablePadding"
|
||||
android:gravity="center_vertical"
|
||||
android:paddingLeft="@dimen/dp_26"
|
||||
android:paddingRight="@dimen/dp_26"
|
||||
android:paddingLeft="@dimen/module_ext_search_paddingLeft"
|
||||
android:paddingRight="@dimen/module_ext_search_paddingRight"
|
||||
android:text="@string/module_map_str_search_hint"
|
||||
android:textColor="#99FFFFFF"
|
||||
android:textSize="@dimen/dp_32"
|
||||
android:textSize="@dimen/module_ext_search_textSize"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
@@ -26,9 +27,9 @@
|
||||
<LinearLayout
|
||||
android:id="@+id/module_entrance_id_common_address"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="@dimen/dp_90"
|
||||
android:layout_marginLeft="@dimen/dp_32"
|
||||
android:layout_marginTop="@dimen/dp_2"
|
||||
android:layout_height="@dimen/module_ext_common_address_height"
|
||||
android:layout_marginLeft="@dimen/module_ext_common_address_marginLeft"
|
||||
android:layout_marginTop="@dimen/module_ext_common_address_marginTop"
|
||||
android:background="@drawable/module_ext_dw_common_corner_bkg"
|
||||
android:gravity="center_vertical"
|
||||
app:layout_constraintLeft_toRightOf="@+id/module_entrance_id_search"
|
||||
@@ -36,8 +37,8 @@
|
||||
|
||||
<RelativeLayout
|
||||
android:id="@+id/module_entrance_id_home"
|
||||
android:layout_width="@dimen/dp_100"
|
||||
android:layout_height="@dimen/dp_90"
|
||||
android:layout_width="@dimen/module_ext_common_address_home_width"
|
||||
android:layout_height="@dimen/module_ext_common_address_home_height"
|
||||
android:background="@drawable/module_ext_dw_left_corner_bkg">
|
||||
|
||||
<ImageView
|
||||
@@ -47,8 +48,8 @@
|
||||
android:src="@drawable/module_map_ic_home" />
|
||||
|
||||
<View
|
||||
android:layout_width="@dimen/dp_2"
|
||||
android:layout_height="@dimen/dp_54"
|
||||
android:layout_width="@dimen/module_ext_common_address_divider_width"
|
||||
android:layout_height="@dimen/module_ext_common_address_divider_height"
|
||||
android:layout_alignParentRight="true"
|
||||
android:layout_centerVertical="true"
|
||||
android:background="#1ED8D8D8" />
|
||||
@@ -57,8 +58,8 @@
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/module_entrance_id_company"
|
||||
android:layout_width="@dimen/dp_100"
|
||||
android:layout_height="@dimen/dp_90"
|
||||
android:layout_width="@dimen/module_ext_common_address_company_width"
|
||||
android:layout_height="@dimen/module_ext_common_address_company_height"
|
||||
android:background="@drawable/module_ext_dw_right_corner_bkg"
|
||||
android:gravity="center">
|
||||
|
||||
@@ -71,22 +72,52 @@
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/module_entrance_id_speed_limit_container"
|
||||
android:layout_width="@dimen/module_ext_speed_limit_width"
|
||||
android:layout_height="@dimen/module_ext_speed_limit_height"
|
||||
android:layout_marginTop="@dimen/module_ext_speed_limit_marginTop"
|
||||
android:layout_marginRight="@dimen/module_ext_speed_limit_marginRight"
|
||||
android:background="@drawable/module_ext_dw_speed_limit_bkg"
|
||||
android:gravity="center"
|
||||
android:visibility="invisible"
|
||||
android:orientation="vertical"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/module_entrance_id_speed_limit_value"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColor="#FFFFFF"
|
||||
android:textSize="@dimen/module_ext_speed_limit_value_textSize"
|
||||
tools:text="100" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/module_entrance_id_speed_limit_unit"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="km/h"
|
||||
android:textColor="#CCFFFFFF"
|
||||
android:textSize="@dimen/module_ext_speed_limit_unit_textSize" />
|
||||
</LinearLayout>
|
||||
|
||||
<com.mogo.module.extensions.navi.NaviInfoView
|
||||
android:id="@+id/module_entrance_id_navi_info_panel"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="@dimen/dp_32"
|
||||
android:layout_marginTop="@dimen/dp_2"
|
||||
android:layout_marginLeft="@dimen/module_ext_navi_panel_marginLeft"
|
||||
android:layout_marginTop="@dimen/module_ext_navi_panel_marginTop"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/module_entrance_id_operation_panel"
|
||||
android:layout_width="@dimen/dp_90"
|
||||
android:layout_width="@dimen/module_ext_operation_panel_width"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginRight="@dimen/dp_32"
|
||||
android:layout_marginBottom="@dimen/dp_60"
|
||||
android:layout_marginRight="@dimen/module_ext_operation_panel_marginRight"
|
||||
android:layout_marginBottom="@dimen/module_ext_operation_panel_marginBottom"
|
||||
android:gravity="center"
|
||||
android:orientation="vertical"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
@@ -95,7 +126,7 @@
|
||||
<RelativeLayout
|
||||
android:id="@+id/module_entrance_id_vr_mode"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="@dimen/dp_92"
|
||||
android:layout_height="@dimen/module_ext_operation_panel_vr_height"
|
||||
android:background="@drawable/module_ext_dw_top_corner_bkg"
|
||||
android:orientation="vertical"
|
||||
android:visibility="gone">
|
||||
@@ -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" />
|
||||
|
||||
<View
|
||||
android:layout_width="@dimen/dp_48"
|
||||
android:layout_height="@dimen/dp_2"
|
||||
android:layout_width="@dimen/module_ext_operation_panel_divider_width"
|
||||
android:layout_height="@dimen/module_ext_operation_panel_divider_height"
|
||||
android:layout_alignParentBottom="true"
|
||||
android:layout_centerHorizontal="true"
|
||||
android:background="#1ED8D8D8" />
|
||||
@@ -120,7 +151,7 @@
|
||||
<LinearLayout
|
||||
android:id="@+id/module_entrance_id_move2_current_location"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="@dimen/dp_90"
|
||||
android:layout_height="@dimen/module_ext_operation_panel_move2_height"
|
||||
android:background="@drawable/module_ext_dw_common_corner_bkg"
|
||||
android:gravity="center">
|
||||
|
||||
@@ -133,30 +164,30 @@
|
||||
|
||||
<TextView
|
||||
android:id="@+id/module_entrance_id_upload_road_condition"
|
||||
android:layout_width="@dimen/dp_90"
|
||||
android:layout_height="@dimen/dp_90"
|
||||
android:layout_marginBottom="@dimen/dp_40"
|
||||
android:layout_width="@dimen/module_ext_operation_panel_share_width"
|
||||
android:layout_height="@dimen/module_ext_operation_panel_share_height"
|
||||
android:layout_marginBottom="@dimen/module_ext_operation_panel_share_marginBottom"
|
||||
android:background="@drawable/module_ext_dw_upload_road_condition_bkg"
|
||||
android:gravity="center"
|
||||
android:text="@string/module_map_str_upload_road_condition"
|
||||
android:textColor="#FFFFFF"
|
||||
android:textSize="@dimen/dp_24"
|
||||
android:textSize="@dimen/module_ext_operation_panel_share_textSize"
|
||||
app:layout_constraintBottom_toTopOf="@+id/module_entrance_id_operation_panel"
|
||||
app:layout_constraintRight_toRightOf="@+id/module_entrance_id_operation_panel"
|
||||
app:layout_goneMarginBottom="@dimen/dp_32"
|
||||
app:layout_goneMarginRight="@dimen/dp_32" />
|
||||
app:layout_goneMarginBottom="@dimen/module_ext_operation_panel_share_goneMarginBottom"
|
||||
app:layout_goneMarginRight="@dimen/module_ext_operation_panel_share_goneMarginRight" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/module_entrance_id_exit_navi"
|
||||
android:layout_width="@dimen/dp_200"
|
||||
android:layout_height="@dimen/dp_90"
|
||||
android:layout_marginLeft="@dimen/dp_32"
|
||||
android:layout_marginBottom="@dimen/dp_60"
|
||||
android:layout_width="@dimen/module_ext_navi_exit_width"
|
||||
android:layout_height="@dimen/module_ext_navi_exit_height"
|
||||
android:layout_marginLeft="@dimen/module_ext_navi_exit_marginLeft"
|
||||
android:layout_marginBottom="@dimen/module_ext_navi_exit_marginBottom"
|
||||
android:background="@drawable/module_ext_dw_common_corner_bkg"
|
||||
android:gravity="center"
|
||||
android:text="退出导航"
|
||||
android:textColor="#FFFFFF"
|
||||
android:textSize="@dimen/dp_32"
|
||||
android:textSize="@dimen/module_ext_navi_exit_textSize"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintLeft_toLeftOf="parent" />
|
||||
|
||||
@@ -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">
|
||||
|
||||
<com.mogo.module.extensions.anim.JSurfaceView
|
||||
android:id="@+id/module_ext_id_voice"
|
||||
android:layout_width="@dimen/dp_120"
|
||||
android:layout_height="@dimen/dp_120"
|
||||
android:layout_width="@dimen/module_ext_voice_icon_width"
|
||||
android:layout_height="@dimen/module_ext_voice_icon_height"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
@@ -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 @@
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/module_ext_id_weather_icon"
|
||||
android:layout_width="@dimen/dp_44"
|
||||
android:layout_height="@dimen/dp_44" />
|
||||
android:layout_width="@dimen/module_ext_weather_icon_width"
|
||||
android:layout_height="@dimen/module_ext_weather_icon_height" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/module_ext_id_weather_temp"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginRight="@dimen/dp_18"
|
||||
android:layout_marginRight="@dimen/module_ext_weather_temp_marginRight"
|
||||
android:textColor="#FFFFFF"
|
||||
android:textSize="@dimen/dp_34"
|
||||
android:textSize="@dimen/module_ext_weather_temp_textSize"
|
||||
tools:text="28°" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/module_ext_id_weather_desc"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginRight="@dimen/dp_26"
|
||||
android:layout_marginRight="@dimen/module_ext_weather_temp_desc_marginRight"
|
||||
android:textColor="#FFFFFF"
|
||||
android:textSize="@dimen/dp_28"
|
||||
android:textSize="@dimen/module_ext_weather_temp_desc_textSize"
|
||||
tools:text="晴转多云" />
|
||||
|
||||
|
||||
@@ -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 @@
|
||||
|
||||
<TextView
|
||||
android:id="@+id/module_ext_id_msg_counter"
|
||||
android:layout_width="@dimen/dp_30"
|
||||
android:layout_height="@dimen/dp_30"
|
||||
android:layout_width="@dimen/module_ext_msg_counter_width"
|
||||
android:layout_height="@dimen/module_ext_msg_counter_height"
|
||||
android:layout_gravity="right"
|
||||
android:background="@drawable/module_ext_drawable_msg_bkg"
|
||||
android:gravity="center"
|
||||
android:textColor="#FFFFFF"
|
||||
android:textSize="@dimen/dp_20"
|
||||
android:textSize="@dimen/module_ext_msg_counter_textSize"
|
||||
tools:text="···" />
|
||||
</FrameLayout>
|
||||
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="@dimen/dp_458"
|
||||
android:layout_height="@dimen/dp_318"
|
||||
android:layout_width="@dimen/module_ext_navi_info_panel_width"
|
||||
android:layout_height="@dimen/module_ext_navi_info_panel_height"
|
||||
android:background="@drawable/module_ext_dw_navi_info_panel_bkg"
|
||||
android:orientation="vertical">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/module_map_id_navi_next_info_road_turn_icon"
|
||||
android:layout_width="@dimen/dp_159"
|
||||
android:layout_height="@dimen/dp_159"
|
||||
android:layout_marginLeft="@dimen/dp_24"
|
||||
android:layout_marginTop="@dimen/dp_24"
|
||||
android:layout_width="@dimen/module_ext_navi_info_panel_turn_icon_width"
|
||||
android:layout_height="@dimen/module_ext_navi_info_panel_turn_icon_height"
|
||||
android:layout_marginLeft="@dimen/module_ext_navi_info_panel_turn_icon_marginLeft"
|
||||
android:layout_marginTop="@dimen/module_ext_navi_info_panel_turn_icon_marginTop"
|
||||
android:scaleType="fitCenter"
|
||||
tools:src="@drawable/ic_11" />
|
||||
|
||||
@@ -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" />
|
||||
|
||||
<TextView
|
||||
@@ -31,11 +31,11 @@
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignBottom="@+id/module_map_id_navi_next_info_distance"
|
||||
android:layout_marginLeft="@dimen/dp_12"
|
||||
android:layout_marginBottom="@dimen/dp_16"
|
||||
android:layout_marginLeft="@dimen/module_ext_navi_info_panel_next_info_distance_unit_marginLeft"
|
||||
android:layout_marginBottom="@dimen/module_ext_navi_info_panel_next_info_distance_unit_marginBottom"
|
||||
android:layout_toRightOf="@+id/module_map_id_navi_next_info_distance"
|
||||
android:textColor="#282828"
|
||||
android:textSize="@dimen/dp_28"
|
||||
android:textSize="@dimen/module_ext_navi_info_panel_next_info_distance_unit_textSize"
|
||||
tools:text="米" />
|
||||
|
||||
<TextView
|
||||
@@ -47,7 +47,7 @@
|
||||
android:ellipsize="end"
|
||||
android:maxLines="2"
|
||||
android:textColor="#282828"
|
||||
android:textSize="@dimen/dp_28"
|
||||
android:textSize="@dimen/module_ext_navi_info_panel_next_info_road_textSize"
|
||||
tools:text="北三环东路辅路" />
|
||||
|
||||
<TextView
|
||||
@@ -56,11 +56,11 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_below="@+id/module_map_id_navi_next_info_road_turn_icon"
|
||||
android:layout_alignParentBottom="true"
|
||||
android:layout_marginTop="@dimen/dp_24"
|
||||
android:layout_marginTop="@dimen/module_ext_navi_info_panel__arrive_destination_estimate_info_marginTop"
|
||||
android:background="@drawable/module_ext_dw_navi_info_extras_bkg"
|
||||
android:gravity="center"
|
||||
android:maxLines="2"
|
||||
android:textColor="#282828"
|
||||
android:textSize="@dimen/dp_28"
|
||||
android:textSize="@dimen/module_ext_navi_info_panel__arrive_destination_estimate_info_textSize"
|
||||
tools:text="剩余2000.8公里 1000小时59分钟59秒 \n1天后达到达到达到达到" />
|
||||
</RelativeLayout>
|
||||
@@ -0,0 +1,93 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<!-- module_ext_layout_entrance.xml-->
|
||||
<dimen name="module_ext_search_height">58px</dimen>
|
||||
<dimen name="module_ext_search_marginLeft">18px</dimen>
|
||||
<dimen name="module_ext_search_marginTop">8px</dimen>
|
||||
<dimen name="module_ext_search_drawablePadding">11.2px</dimen>
|
||||
<dimen name="module_ext_search_paddingLeft">10.8px</dimen>
|
||||
<dimen name="module_ext_search_paddingRight">17px</dimen>
|
||||
<dimen name="module_ext_search_textSize">20px</dimen>
|
||||
|
||||
<dimen name="module_ext_common_address_height">58px</dimen>
|
||||
<dimen name="module_ext_common_address_marginLeft">19px</dimen>
|
||||
<dimen name="module_ext_common_address_marginTop">8px</dimen>
|
||||
<dimen name="module_ext_common_address_home_width">64.2px</dimen>
|
||||
<dimen name="module_ext_common_address_home_height">58px</dimen>
|
||||
<dimen name="module_ext_common_address_divider_width">1px</dimen>
|
||||
<dimen name="module_ext_common_address_divider_height">33.4px</dimen>
|
||||
<dimen name="module_ext_common_address_company_width">64.2px</dimen>
|
||||
<dimen name="module_ext_common_address_company_height">58px</dimen>
|
||||
|
||||
|
||||
<dimen name="module_ext_speed_limit_width">96px</dimen>
|
||||
<dimen name="module_ext_speed_limit_height">96px</dimen>
|
||||
<dimen name="module_ext_speed_limit_marginTop">8px</dimen>
|
||||
<dimen name="module_ext_speed_limit_marginRight">32px</dimen>
|
||||
<dimen name="module_ext_speed_limit_value_textSize">32px</dimen>
|
||||
<dimen name="module_ext_speed_limit_unit_textSize">15px</dimen>
|
||||
|
||||
<dimen name="module_ext_navi_panel_marginLeft">20px</dimen>
|
||||
<dimen name="module_ext_navi_panel_marginTop">8px</dimen>
|
||||
|
||||
<dimen name="module_ext_operation_panel_width">58px</dimen>
|
||||
<dimen name="module_ext_operation_panel_marginRight">20px</dimen>
|
||||
<dimen name="module_ext_operation_panel_marginBottom">34.5px</dimen>
|
||||
<dimen name="module_ext_operation_panel_vr_height">58px</dimen>
|
||||
<dimen name="module_ext_operation_panel_vr_textSize">17px</dimen>
|
||||
<dimen name="module_ext_operation_panel_divider_width">31.4px</dimen>
|
||||
<dimen name="module_ext_operation_panel_divider_height">1.2px</dimen>
|
||||
<dimen name="module_ext_operation_panel_move2_height">58px</dimen>
|
||||
<dimen name="module_ext_operation_panel_share_width">58px</dimen>
|
||||
<dimen name="module_ext_operation_panel_share_height">58px</dimen>
|
||||
<dimen name="module_ext_operation_panel_share_marginBottom">21px</dimen>
|
||||
<dimen name="module_ext_operation_panel_share_textSize">14px</dimen>
|
||||
<dimen name="module_ext_operation_panel_share_goneMarginBottom">34.5px</dimen>
|
||||
<dimen name="module_ext_operation_panel_share_goneMarginRight">20px</dimen>
|
||||
|
||||
|
||||
<dimen name="module_ext_navi_exit_width">130px</dimen>
|
||||
<dimen name="module_ext_navi_exit_height">58px</dimen>
|
||||
<dimen name="module_ext_navi_exit_marginLeft">20px</dimen>
|
||||
<dimen name="module_ext_navi_exit_marginBottom">32px</dimen>
|
||||
<dimen name="module_ext_navi_exit_textSize">22px</dimen>
|
||||
|
||||
<!-- module_ext_layout_extensions.xml-->
|
||||
<dimen name="module_ext_height">640px</dimen>
|
||||
<dimen name="module_ext_paddingRight">32px</dimen>
|
||||
<dimen name="module_ext_paddingLeft">32px</dimen>
|
||||
<dimen name="module_ext_voice_icon_width">64px</dimen>
|
||||
<dimen name="module_ext_voice_icon_height">64px</dimen>
|
||||
<dimen name="module_ext_voice_textSize">22px</dimen>
|
||||
<dimen name="module_ext_time_textSize">28px</dimen>
|
||||
<dimen name="module_ext_date_marginRight">22px</dimen>
|
||||
<dimen name="module_ext_date_textSize">22px</dimen>
|
||||
<dimen name="module_ext_weather_marginRight">16px</dimen>
|
||||
<dimen name="module_ext_weather_icon_width">24px</dimen>
|
||||
<dimen name="module_ext_weather_icon_height">24px</dimen>
|
||||
<dimen name="module_ext_weather_temp_marginRight">18px</dimen>
|
||||
<dimen name="module_ext_weather_temp_textSize">18.48px</dimen>
|
||||
<dimen name="module_ext_weather_temp_desc_marginRight">16px</dimen>
|
||||
<dimen name="module_ext_weather_temp_desc_textSize">22px</dimen>
|
||||
<dimen name="module_ext_msg_marginRight">28px</dimen>
|
||||
<dimen name="module_ext_msg_counter_width">15px</dimen>
|
||||
<dimen name="module_ext_msg_counter_height">15px</dimen>
|
||||
<dimen name="module_ext_msg_counter_textSize">11.73px</dimen>
|
||||
|
||||
<!-- module_map_layout_navi_info_panel.xml-->
|
||||
<dimen name="module_ext_navi_info_panel_width">244px</dimen>
|
||||
<dimen name="module_ext_navi_info_panel_height">170px</dimen>
|
||||
<dimen name="module_ext_navi_info_panel_turn_icon_width">85px</dimen>
|
||||
<dimen name="module_ext_navi_info_panel_turn_icon_height">85px</dimen>
|
||||
<dimen name="module_ext_navi_info_panel_turn_icon_marginLeft">13px</dimen>
|
||||
<dimen name="module_ext_navi_info_panel_turn_icon_marginTop">13px</dimen>
|
||||
<dimen name="module_ext_navi_info_panel_next_info_distance_marginTop">20px</dimen>
|
||||
<dimen name="module_ext_navi_info_panel_next_info_distance_textSize">32px</dimen>
|
||||
<dimen name="module_ext_navi_info_panel_next_info_distance_unit_marginLeft">7px</dimen>
|
||||
<dimen name="module_ext_navi_info_panel_next_info_distance_unit_marginBottom">8px</dimen>
|
||||
<dimen name="module_ext_navi_info_panel_next_info_distance_unit_textSize">16px</dimen>
|
||||
<dimen name="module_ext_navi_info_panel_next_info_road_textSize">15px</dimen>
|
||||
<dimen name="module_ext_navi_info_panel__arrive_destination_estimate_info_marginTop">24px
|
||||
</dimen>
|
||||
<dimen name="module_ext_navi_info_panel__arrive_destination_estimate_info_textSize">15px</dimen>
|
||||
</resources>
|
||||
@@ -0,0 +1,91 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<!-- module_ext_layout_entrance.xml-->
|
||||
<dimen name="module_ext_search_height">90px</dimen>
|
||||
<dimen name="module_ext_search_marginLeft">32px</dimen>
|
||||
<dimen name="module_ext_search_marginTop">2px</dimen>
|
||||
<dimen name="module_ext_search_drawablePadding">16px</dimen>
|
||||
<dimen name="module_ext_search_paddingLeft">26px</dimen>
|
||||
<dimen name="module_ext_search_paddingRight">26px</dimen>
|
||||
<dimen name="module_ext_search_textSize">32px</dimen>
|
||||
|
||||
<dimen name="module_ext_common_address_height">90px</dimen>
|
||||
<dimen name="module_ext_common_address_marginLeft">32px</dimen>
|
||||
<dimen name="module_ext_common_address_marginTop">2px</dimen>
|
||||
<dimen name="module_ext_common_address_home_width">100px</dimen>
|
||||
<dimen name="module_ext_common_address_home_height">90px</dimen>
|
||||
<dimen name="module_ext_common_address_divider_width">2px</dimen>
|
||||
<dimen name="module_ext_common_address_divider_height">54px</dimen>
|
||||
<dimen name="module_ext_common_address_company_width">100px</dimen>
|
||||
<dimen name="module_ext_common_address_company_height">90px</dimen>
|
||||
|
||||
<dimen name="module_ext_speed_limit_width">180px</dimen>
|
||||
<dimen name="module_ext_speed_limit_height">180px</dimen>
|
||||
<dimen name="module_ext_speed_limit_marginTop">2px</dimen>
|
||||
<dimen name="module_ext_speed_limit_marginRight">60px</dimen>
|
||||
<dimen name="module_ext_speed_limit_value_textSize">60px</dimen>
|
||||
<dimen name="module_ext_speed_limit_unit_textSize">28px</dimen>
|
||||
|
||||
<dimen name="module_ext_navi_panel_marginLeft">32px</dimen>
|
||||
<dimen name="module_ext_navi_panel_marginTop">2px</dimen>
|
||||
|
||||
<dimen name="module_ext_operation_panel_width">90px</dimen>
|
||||
<dimen name="module_ext_operation_panel_marginRight">32px</dimen>
|
||||
<dimen name="module_ext_operation_panel_marginBottom">60px</dimen>
|
||||
<dimen name="module_ext_operation_panel_vr_height">92px</dimen>
|
||||
<dimen name="module_ext_operation_panel_vr_textSize">24px</dimen>
|
||||
<dimen name="module_ext_operation_panel_divider_width">48px</dimen>
|
||||
<dimen name="module_ext_operation_panel_divider_height">2px</dimen>
|
||||
<dimen name="module_ext_operation_panel_move2_height">90px</dimen>
|
||||
<dimen name="module_ext_operation_panel_share_width">90px</dimen>
|
||||
<dimen name="module_ext_operation_panel_share_height">90px</dimen>
|
||||
<dimen name="module_ext_operation_panel_share_marginBottom">40px</dimen>
|
||||
<dimen name="module_ext_operation_panel_share_textSize">24px</dimen>
|
||||
<dimen name="module_ext_operation_panel_share_goneMarginBottom">32px</dimen>
|
||||
<dimen name="module_ext_operation_panel_share_goneMarginRight">32px</dimen>
|
||||
|
||||
<dimen name="module_ext_navi_exit_width">200px</dimen>
|
||||
<dimen name="module_ext_navi_exit_height">90px</dimen>
|
||||
<dimen name="module_ext_navi_exit_marginLeft">32px</dimen>
|
||||
<dimen name="module_ext_navi_exit_marginBottom">60px</dimen>
|
||||
<dimen name="module_ext_navi_exit_textSize">32px</dimen>
|
||||
|
||||
<!-- module_ext_layout_extensions.xml-->
|
||||
<dimen name="module_ext_height">120px</dimen>
|
||||
<dimen name="module_ext_paddingRight">60px</dimen>
|
||||
<dimen name="module_ext_paddingLeft">60px</dimen>
|
||||
<dimen name="module_ext_voice_icon_width">120px</dimen>
|
||||
<dimen name="module_ext_voice_icon_height">120px</dimen>
|
||||
<dimen name="module_ext_voice_textSize">32px</dimen>
|
||||
<dimen name="module_ext_time_textSize">48px</dimen>
|
||||
<dimen name="module_ext_date_marginRight">80px</dimen>
|
||||
<dimen name="module_ext_date_textSize">28px</dimen>
|
||||
<dimen name="module_ext_weather_marginRight">26px</dimen>
|
||||
<dimen name="module_ext_weather_icon_width">44px</dimen>
|
||||
<dimen name="module_ext_weather_icon_height">44px</dimen>
|
||||
<dimen name="module_ext_weather_temp_marginRight">18px</dimen>
|
||||
<dimen name="module_ext_weather_temp_textSize">34px</dimen>
|
||||
<dimen name="module_ext_weather_temp_desc_marginRight">26px</dimen>
|
||||
<dimen name="module_ext_weather_temp_desc_textSize">28px</dimen>
|
||||
<dimen name="module_ext_msg_marginRight">28px</dimen>
|
||||
<dimen name="module_ext_msg_counter_width">30px</dimen>
|
||||
<dimen name="module_ext_msg_counter_height">30px</dimen>
|
||||
<dimen name="module_ext_msg_counter_textSize">20px</dimen>
|
||||
|
||||
<!-- module_map_layout_navi_info_panel.xml-->
|
||||
<dimen name="module_ext_navi_info_panel_width">458px</dimen>
|
||||
<dimen name="module_ext_navi_info_panel_height">318px</dimen>
|
||||
<dimen name="module_ext_navi_info_panel_turn_icon_width">159px</dimen>
|
||||
<dimen name="module_ext_navi_info_panel_turn_icon_height">159px</dimen>
|
||||
<dimen name="module_ext_navi_info_panel_turn_icon_marginLeft">24px</dimen>
|
||||
<dimen name="module_ext_navi_info_panel_turn_icon_marginTop">24px</dimen>
|
||||
<dimen name="module_ext_navi_info_panel_next_info_distance_marginTop">10px</dimen>
|
||||
<dimen name="module_ext_navi_info_panel_next_info_distance_textSize">60px</dimen>
|
||||
<dimen name="module_ext_navi_info_panel_next_info_distance_unit_marginLeft">12px</dimen>
|
||||
<dimen name="module_ext_navi_info_panel_next_info_distance_unit_marginBottom">16px</dimen>
|
||||
<dimen name="module_ext_navi_info_panel_next_info_distance_unit_textSize">28px</dimen>
|
||||
<dimen name="module_ext_navi_info_panel_next_info_road_textSize">28px</dimen>
|
||||
<dimen name="module_ext_navi_info_panel__arrive_destination_estimate_info_marginTop">24px</dimen>
|
||||
<dimen name="module_ext_navi_info_panel__arrive_destination_estimate_info_textSize">28px</dimen>
|
||||
|
||||
</resources>
|
||||
@@ -0,0 +1,91 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<!-- module_ext_layout_entrance.xml-->
|
||||
<dimen name="module_ext_search_height">90px</dimen>
|
||||
<dimen name="module_ext_search_marginLeft">32px</dimen>
|
||||
<dimen name="module_ext_search_marginTop">2px</dimen>
|
||||
<dimen name="module_ext_search_drawablePadding">16px</dimen>
|
||||
<dimen name="module_ext_search_paddingLeft">26px</dimen>
|
||||
<dimen name="module_ext_search_paddingRight">26px</dimen>
|
||||
<dimen name="module_ext_search_textSize">32px</dimen>
|
||||
|
||||
<dimen name="module_ext_common_address_height">90px</dimen>
|
||||
<dimen name="module_ext_common_address_marginLeft">32px</dimen>
|
||||
<dimen name="module_ext_common_address_marginTop">2px</dimen>
|
||||
<dimen name="module_ext_common_address_home_width">100px</dimen>
|
||||
<dimen name="module_ext_common_address_home_height">90px</dimen>
|
||||
<dimen name="module_ext_common_address_divider_width">2px</dimen>
|
||||
<dimen name="module_ext_common_address_divider_height">54px</dimen>
|
||||
<dimen name="module_ext_common_address_company_width">100px</dimen>
|
||||
<dimen name="module_ext_common_address_company_height">90px</dimen>
|
||||
|
||||
<dimen name="module_ext_speed_limit_width">180px</dimen>
|
||||
<dimen name="module_ext_speed_limit_height">180px</dimen>
|
||||
<dimen name="module_ext_speed_limit_marginTop">2px</dimen>
|
||||
<dimen name="module_ext_speed_limit_marginRight">60px</dimen>
|
||||
<dimen name="module_ext_speed_limit_value_textSize">60px</dimen>
|
||||
<dimen name="module_ext_speed_limit_unit_textSize">28px</dimen>
|
||||
|
||||
<dimen name="module_ext_navi_panel_marginLeft">32px</dimen>
|
||||
<dimen name="module_ext_navi_panel_marginTop">2px</dimen>
|
||||
|
||||
<dimen name="module_ext_operation_panel_width">90px</dimen>
|
||||
<dimen name="module_ext_operation_panel_marginRight">32px</dimen>
|
||||
<dimen name="module_ext_operation_panel_marginBottom">60px</dimen>
|
||||
<dimen name="module_ext_operation_panel_vr_height">92px</dimen>
|
||||
<dimen name="module_ext_operation_panel_vr_textSize">24px</dimen>
|
||||
<dimen name="module_ext_operation_panel_divider_width">48px</dimen>
|
||||
<dimen name="module_ext_operation_panel_divider_height">2px</dimen>
|
||||
<dimen name="module_ext_operation_panel_move2_height">90px</dimen>
|
||||
<dimen name="module_ext_operation_panel_share_width">90px</dimen>
|
||||
<dimen name="module_ext_operation_panel_share_height">90px</dimen>
|
||||
<dimen name="module_ext_operation_panel_share_marginBottom">40px</dimen>
|
||||
<dimen name="module_ext_operation_panel_share_textSize">24px</dimen>
|
||||
<dimen name="module_ext_operation_panel_share_goneMarginBottom">32px</dimen>
|
||||
<dimen name="module_ext_operation_panel_share_goneMarginRight">32px</dimen>
|
||||
|
||||
<dimen name="module_ext_navi_exit_width">200px</dimen>
|
||||
<dimen name="module_ext_navi_exit_height">90px</dimen>
|
||||
<dimen name="module_ext_navi_exit_marginLeft">32px</dimen>
|
||||
<dimen name="module_ext_navi_exit_marginBottom">60px</dimen>
|
||||
<dimen name="module_ext_navi_exit_textSize">32px</dimen>
|
||||
|
||||
<!-- module_ext_layout_extensions.xml-->
|
||||
<dimen name="module_ext_height">120px</dimen>
|
||||
<dimen name="module_ext_paddingRight">60px</dimen>
|
||||
<dimen name="module_ext_paddingLeft">60px</dimen>
|
||||
<dimen name="module_ext_voice_icon_width">120px</dimen>
|
||||
<dimen name="module_ext_voice_icon_height">120px</dimen>
|
||||
<dimen name="module_ext_voice_textSize">32px</dimen>
|
||||
<dimen name="module_ext_time_textSize">48px</dimen>
|
||||
<dimen name="module_ext_date_marginRight">80px</dimen>
|
||||
<dimen name="module_ext_date_textSize">28px</dimen>
|
||||
<dimen name="module_ext_weather_marginRight">26px</dimen>
|
||||
<dimen name="module_ext_weather_icon_width">44px</dimen>
|
||||
<dimen name="module_ext_weather_icon_height">44px</dimen>
|
||||
<dimen name="module_ext_weather_temp_marginRight">18px</dimen>
|
||||
<dimen name="module_ext_weather_temp_textSize">34px</dimen>
|
||||
<dimen name="module_ext_weather_temp_desc_marginRight">26px</dimen>
|
||||
<dimen name="module_ext_weather_temp_desc_textSize">28px</dimen>
|
||||
<dimen name="module_ext_msg_marginRight">28px</dimen>
|
||||
<dimen name="module_ext_msg_counter_width">30px</dimen>
|
||||
<dimen name="module_ext_msg_counter_height">30px</dimen>
|
||||
<dimen name="module_ext_msg_counter_textSize">20px</dimen>
|
||||
|
||||
<!-- module_map_layout_navi_info_panel.xml-->
|
||||
<dimen name="module_ext_navi_info_panel_width">458px</dimen>
|
||||
<dimen name="module_ext_navi_info_panel_height">318px</dimen>
|
||||
<dimen name="module_ext_navi_info_panel_turn_icon_width">159px</dimen>
|
||||
<dimen name="module_ext_navi_info_panel_turn_icon_height">159px</dimen>
|
||||
<dimen name="module_ext_navi_info_panel_turn_icon_marginLeft">24px</dimen>
|
||||
<dimen name="module_ext_navi_info_panel_turn_icon_marginTop">24px</dimen>
|
||||
<dimen name="module_ext_navi_info_panel_next_info_distance_marginTop">10px</dimen>
|
||||
<dimen name="module_ext_navi_info_panel_next_info_distance_textSize">60px</dimen>
|
||||
<dimen name="module_ext_navi_info_panel_next_info_distance_unit_marginLeft">12px</dimen>
|
||||
<dimen name="module_ext_navi_info_panel_next_info_distance_unit_marginBottom">16px</dimen>
|
||||
<dimen name="module_ext_navi_info_panel_next_info_distance_unit_textSize">28px</dimen>
|
||||
<dimen name="module_ext_navi_info_panel_next_info_road_textSize">28px</dimen>
|
||||
<dimen name="module_ext_navi_info_panel__arrive_destination_estimate_info_marginTop">24px</dimen>
|
||||
<dimen name="module_ext_navi_info_panel__arrive_destination_estimate_info_textSize">28px</dimen>
|
||||
|
||||
</resources>
|
||||
@@ -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
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<activity
|
||||
android:name=".MainActivity"
|
||||
android:clearTaskOnLaunch="true"
|
||||
android:configChanges="keyboardHidden|orientation|screenSize|screenLayout|mcc|mnc|keyboard|navigation"
|
||||
android:configChanges="mcc|mnc|locale|touchscreen|keyboard|keyboardHidden|navigation|screenLayout|fontScale|uiMode|orientation|screenSize|smallestScreenSize"
|
||||
android:enabled="true"
|
||||
android:launchMode="singleInstance"
|
||||
android:resizeableActivity="true"
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package com.mogo.module.main;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.os.SystemClock;
|
||||
import android.view.View;
|
||||
import android.widget.FrameLayout;
|
||||
|
||||
@@ -100,23 +99,20 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > 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 );
|
||||
}
|
||||
} );
|
||||
|
||||
@@ -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." );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
* <p>
|
||||
* 广播接收者
|
||||
* <p>
|
||||
* {@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 ) ) {
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -15,7 +15,7 @@
|
||||
|
||||
<FrameLayout
|
||||
android:id="@+id/module_main_id_map_shadow_frame"
|
||||
android:layout_width="@dimen/dp_720"
|
||||
android:layout_width="@dimen/module_main_map_shadow_frame_width"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@drawable/module_main_dw_left_frame_bkg"
|
||||
android:visibility="invisible" />
|
||||
@@ -36,21 +36,21 @@
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginTop="@dimen/dp_10">
|
||||
android:layout_marginTop="@dimen/module_main_card_container_marginTop">
|
||||
<!-- 卡片-->
|
||||
<FrameLayout
|
||||
android:layout_width="@dimen/dp_660"
|
||||
android:layout_width="@dimen/module_main_card_container_width"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginLeft="@dimen/dp_70">
|
||||
android:layout_marginLeft="@dimen/module_main_card_container_marginLeft">
|
||||
|
||||
<com.mogo.module.main.cards.OrientedViewPager
|
||||
android:id="@+id/module_main_id_cards_container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginBottom="@dimen/dp_211"
|
||||
android:layout_marginBottom="@dimen/module_main_card_container_marginBottom"
|
||||
android:clipToPadding="false"
|
||||
android:overScrollMode="never"
|
||||
android:paddingBottom="@dimen/dp_20" />
|
||||
android:paddingBottom="@dimen/module_main_card_container_paddingBottom" />
|
||||
<!-- 应用入口-->
|
||||
<FrameLayout
|
||||
android:id="@+id/module_main_id_apps_fragment_container"
|
||||
|
||||
10
modules/mogo-module-main/src/main/res/values-ldpi/dimens.xml
Normal file
@@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<!-- module_main_activity_main.xml-->
|
||||
<dimen name="module_main_map_shadow_frame_width">720px</dimen>
|
||||
<dimen name="module_main_card_container_marginTop">10px</dimen>
|
||||
<dimen name="module_main_card_container_width">660px</dimen>
|
||||
<dimen name="module_main_card_container_marginLeft">60px</dimen>
|
||||
<dimen name="module_main_card_container_marginBottom">211px</dimen>
|
||||
<dimen name="module_main_card_container_paddingBottom">20px</dimen>
|
||||
</resources>
|
||||
@@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<!-- module_main_activity_main.xml-->
|
||||
<dimen name="module_main_map_shadow_frame_width">720px</dimen>
|
||||
<dimen name="module_main_card_container_marginTop">10px</dimen>
|
||||
<dimen name="module_main_card_container_width">660px</dimen>
|
||||
<dimen name="module_main_card_container_marginLeft">60px</dimen>
|
||||
<dimen name="module_main_card_container_marginBottom">211px</dimen>
|
||||
<dimen name="module_main_card_container_paddingBottom">20px</dimen>
|
||||
</resources>
|
||||
10
modules/mogo-module-main/src/main/res/values/dimens.xml
Normal file
@@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<!-- module_main_activity_main.xml-->
|
||||
<dimen name="module_main_map_shadow_frame_width">384px</dimen>
|
||||
<dimen name="module_main_card_container_marginTop">8px</dimen>
|
||||
<dimen name="module_main_card_container_width">352px</dimen>
|
||||
<dimen name="module_main_card_container_marginLeft">32px</dimen>
|
||||
<dimen name="module_main_card_container_marginBottom">140.5px</dimen>
|
||||
<dimen name="module_main_card_container_paddingBottom">20px</dimen>
|
||||
</resources>
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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<String, Object> 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 必须进行初始化!!!!!");
|
||||
|
||||
@@ -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 );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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<String> 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;
|
||||
}
|
||||
|
||||
@@ -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<String, Object> 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<BaseData>(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<String, Object> 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<BaseData>(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();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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 ) {
|
||||
|
||||