diff --git a/app/build.gradle b/app/build.gradle index 665155a4d3..a38e3c40c6 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -215,6 +215,34 @@ android { // 是否需要使用工控机的rtk定位 buildConfigField 'boolean', 'IS_USE_ADAS_RTK_LOCATION_INFO', 'true' } + // f系列-分体机 + phone { + applicationId rootProject.ext.android.fLauncherApplicationId + dimension "product" + buildConfigField 'boolean', 'AI_ASSIST_ACTIVE_STAUTS', 'false' + // 车机类型,主要用于区分自研车机还是别人家的车机,自研车机类型为0 + buildConfigField 'int', 'CAR_MACHINE_TYPE', '1' + buildConfigField 'boolean', 'ROAD_EVENT_ANIMATED', 'true' + manifestPlaceholders = [AMAP_API_VALUE: rootProject.ext.android.fLauncherAmapApiValue] + // 是否使用高德sdk自定义导航 + buildConfigField 'boolean', 'USE_CUSTOM_NAVI', 'false' + // 是否支持换肤 + buildConfigField 'boolean', 'IS_SKIN_SUPPORTED', 'true' + // 是否支持查询导航目的地车友 + buildConfigField 'boolean', 'IS_SUPPORTED_SEARCH_DESTINATION_ONLINE_CAR_LIST', 'true' + // 是否支持桌面卡片刷新 + buildConfigField 'boolean', 'IS_SUPPORT_LAUNCHER_CARD_REFRESH_STRATEGY', 'false' + // 是否基于地图 + buildConfigField 'boolean', 'IS_MAP_BASED', 'true' + // 是否加载引导模块 + buildConfigField 'boolean', 'IS_NEED_LOAD_GUIDE_MODULE', 'true' + // 分享时是否隐藏 adas + buildConfigField 'boolean', 'IS_NEED_HIDE_ADAS_WHEN_SHARE', 'false' + // 是否需要实时上报坐标 + buildConfigField 'boolean', 'IS_NEED_UPLOAD_COORDINATES_IN_TIME', 'true' + // 是否需要使用工控机的rtk定位 + buildConfigField 'boolean', 'IS_USE_ADAS_RTK_LOCATION_INFO', 'true' + } // f系列-分体机-高德 f8Amap { applicationId rootProject.ext.android.fLauncherApplicationId diff --git a/app/functions/abiFilters.gradle b/app/functions/abiFilters.gradle index a70034e044..902b1c2463 100644 --- a/app/functions/abiFilters.gradle +++ b/app/functions/abiFilters.gradle @@ -37,6 +37,15 @@ project.android.productFlavors { } } } + // f系列-分体机 + phone { + externalNativeBuild { + ndk { + // 设置支持的SO库架构 + abiFilters "arm64-v8a" + } + } + } // f系列-分体机-高德 f8Amap { externalNativeBuild { diff --git a/app/functions/aicloudservices.gradle b/app/functions/aicloudservices.gradle index bfa3b583ea..86edbe53e4 100644 --- a/app/functions/aicloudservices.gradle +++ b/app/functions/aicloudservices.gradle @@ -2,6 +2,7 @@ project.dependencies { if (Boolean.valueOf(RELEASE)) { bydautoImplementation rootProject.ext.dependencies.mogoaicloudservicesdk + phoneImplementation rootProject.ext.dependencies.mogoaicloudservicesdk d82xImplementation rootProject.ext.dependencies.mogoaicloudserviceapk em1Implementation rootProject.ext.dependencies.mogoaicloudserviceapk @@ -18,6 +19,7 @@ project.dependencies { fochbusImplementation rootProject.ext.dependencies.mogoaicloudserviceapk } else { bydautoImplementation project(':foudations:mogo-aicloud-services-sdk') + phoneImplementation project(':foudations:mogo-aicloud-services-sdk') d82xImplementation project(':foudations:mogo-aicloud-services-apk') em1Implementation project(':foudations:mogo-aicloud-services-apk') diff --git a/app/functions/basedmap.gradle b/app/functions/basedmap.gradle index 50a9a13ad7..5b2d05f88c 100644 --- a/app/functions/basedmap.gradle +++ b/app/functions/basedmap.gradle @@ -7,6 +7,7 @@ project.dependencies { f80xImplementation rootProject.ext.dependencies.mapcustom fochtaxiImplementation rootProject.ext.dependencies.mapcustom fochbusImplementation rootProject.ext.dependencies.mapcustom + phoneImplementation rootProject.ext.dependencies.mapcustom f8AmapImplementation rootProject.ext.dependencies.mapamap bydautoImplementation rootProject.ext.dependencies.mapamap @@ -24,6 +25,7 @@ project.dependencies { f80xImplementation project(':libraries:map-custom') fochtaxiImplementation project(':libraries:map-custom') fochbusImplementation project(':libraries:map-custom') + phoneImplementation project(':libraries:map-custom') f8AmapImplementation project(':libraries:map-amap') bydautoImplementation project(':libraries:map-amap') diff --git a/app/functions/baseservices.gradle b/app/functions/baseservices.gradle index eafa452c14..e05e0aad93 100644 --- a/app/functions/baseservices.gradle +++ b/app/functions/baseservices.gradle @@ -3,6 +3,7 @@ project.dependencies { if (Boolean.valueOf(RELEASE)) { bydautoImplementation rootProject.ext.dependencies.mogobaseservicesdk + phoneImplementation rootProject.ext.dependencies.mogobaseservicesdk d82xImplementation rootProject.ext.dependencies.mogobaseserviceapk em1Implementation rootProject.ext.dependencies.mogobaseserviceapk @@ -19,6 +20,7 @@ project.dependencies { fochbusImplementation rootProject.ext.dependencies.mogobaseserviceapk } else { bydautoImplementation project(':foudations:mogo-base-services-sdk') + phoneImplementation project(':foudations:mogo-base-services-sdk') d82xImplementation project(':foudations:mogo-base-services-apk') em1Implementation project(':foudations:mogo-base-services-apk') diff --git a/app/functions/bizguide.gradle b/app/functions/bizguide.gradle index d67a083542..778393ab43 100644 --- a/app/functions/bizguide.gradle +++ b/app/functions/bizguide.gradle @@ -3,6 +3,7 @@ project.dependencies { if (Boolean.valueOf(RELEASE)) { bydautoImplementation rootProject.ext.dependencies.mogomoduleguide + phoneImplementation rootProject.ext.dependencies.mogomoduleguide d8xxImplementation rootProject.ext.dependencies.mogomoduleguide d80xImplementation rootProject.ext.dependencies.mogomoduleguide em4Implementation rootProject.ext.dependencies.mogomoduleguide @@ -15,6 +16,7 @@ project.dependencies { fochbusImplementation rootProject.ext.dependencies.mogomoduleguide } else { bydautoImplementation project(':modules:mogo-module-guide') + phoneImplementation project(':modules:mogo-module-guide') d8xxImplementation project(':modules:mogo-module-guide') d80xImplementation project(':modules:mogo-module-guide') em4Implementation project(':modules:mogo-module-guide') diff --git a/app/functions/leftpanel.gradle b/app/functions/leftpanel.gradle index 4d2718189d..eab467b173 100644 --- a/app/functions/leftpanel.gradle +++ b/app/functions/leftpanel.gradle @@ -18,6 +18,7 @@ project.dependencies { em3Implementation rootProject.ext.dependencies.moduleleftpanelnoop fochtaxiImplementation rootProject.ext.dependencies.moduleleftpanelnoop fochbusImplementation rootProject.ext.dependencies.moduleleftpanelnoop + phoneImplementation rootProject.ext.dependencies.moduleleftpanelnoop } else { bydautoImplementation project(':modules:mogo-module-left-panel') @@ -34,5 +35,6 @@ project.dependencies { em3Implementation project(':modules:mogo-module-left-panel-noop') fochtaxiImplementation project(':modules:mogo-module-left-panel-noop') fochbusImplementation project(':modules:mogo-module-left-panel-noop') + phoneImplementation project(':modules:mogo-module-left-panel-noop') } } \ No newline at end of file diff --git a/app/functions/och.gradle b/app/functions/och.gradle index 490b59c65e..dd3c64fc3f 100644 --- a/app/functions/och.gradle +++ b/app/functions/och.gradle @@ -1,6 +1,7 @@ project.dependencies { if (Boolean.valueOf(RELEASE)) { bydautoImplementation rootProject.ext.dependencies.mogoochnoop + phoneImplementation rootProject.ext.dependencies.mogoochnoop d82xImplementation rootProject.ext.dependencies.mogoochnoop em1Implementation rootProject.ext.dependencies.mogoochnoop em2Implementation rootProject.ext.dependencies.mogoochnoop @@ -16,6 +17,7 @@ project.dependencies { fochbusImplementation rootProject.ext.dependencies.mogoochbus } else { bydautoImplementation project(':OCH:mogo-och-noop') + phoneImplementation project(':OCH:mogo-och-noop') d82xImplementation project(':OCH:mogo-och-noop') em1Implementation project(':OCH:mogo-och-noop') em2Implementation project(':OCH:mogo-och-noop') diff --git a/app/functions/skin.gradle b/app/functions/skin.gradle index 45b2077b06..039502982f 100644 --- a/app/functions/skin.gradle +++ b/app/functions/skin.gradle @@ -16,6 +16,7 @@ project.dependencies { e8xxImplementation rootProject.ext.dependencies.skinsupportimpl fochtaxiImplementation rootProject.ext.dependencies.skinsupportimpl fochbusImplementation rootProject.ext.dependencies.skinsupportimpl + phoneImplementation rootProject.ext.dependencies.skinsupportimpl f8xxImplementation rootProject.ext.dependencies.skinsupportlight f80xImplementation rootProject.ext.dependencies.skinsupportlight @@ -27,6 +28,7 @@ project.dependencies { em3Implementation rootProject.ext.dependencies.skinsupportlight fochtaxiImplementation rootProject.ext.dependencies.skinsupportlight fochbusImplementation rootProject.ext.dependencies.skinsupportlight + phoneImplementation rootProject.ext.dependencies.skinsupportlight } else { @@ -46,6 +48,7 @@ project.dependencies { e8xxImplementation project(':skin:mogo-skin-support-impl') fochtaxiImplementation project(':skin:mogo-skin-support-impl') fochbusImplementation project(':skin:mogo-skin-support-impl') + phoneImplementation project(':skin:mogo-skin-support-impl') f8xxImplementation project(':skin:mogo-skin-light') f80xImplementation project(':skin:mogo-skin-light') @@ -57,5 +60,6 @@ project.dependencies { em3Implementation project(':skin:mogo-skin-light') fochtaxiImplementation project(':skin:mogo-skin-light') fochbusImplementation project(':skin:mogo-skin-light') + phoneImplementation project(':skin:mogo-skin-light') } } \ No newline at end of file diff --git a/app/functions/tts.gradle b/app/functions/tts.gradle index 50a0d3c653..587ffe263d 100644 --- a/app/functions/tts.gradle +++ b/app/functions/tts.gradle @@ -14,6 +14,7 @@ project.dependencies { e8xxImplementation rootProject.ext.dependencies.ttszhi fochtaxiImplementation rootProject.ext.dependencies.ttszhi fochbusImplementation rootProject.ext.dependencies.ttszhi + phoneImplementation rootProject.ext.dependencies.ttszhi } else { bydautoImplementation project(':tts:tts-di') d82xImplementation project(':tts:tts-zhi') @@ -29,5 +30,6 @@ project.dependencies { e8xxImplementation project(':tts:tts-zhi') fochtaxiImplementation project(':tts:tts-zhi') fochbusImplementation project(':tts:tts-zhi') + phoneImplementation project(':tts:tts-zhi') } } \ No newline at end of file diff --git a/app/regroup.gradle b/app/regroup.gradle index 983b92e008..a7e280d8bd 100644 --- a/app/regroup.gradle +++ b/app/regroup.gradle @@ -2,7 +2,7 @@ afterEvaluate { - def independent = ["em3", "em1", "d80x", "d82x", "bydauto", "em2"] + def independent = ["em3", "em1", "d80x", "d82x", "bydauto", "em2", "phone"] def launcher = ["f80x", "f8xx", "f8amap", "em4", "e8xx", "fochtaxi", "fochbus"] it.getTasks().iterator().forEachRemaining { diff --git a/libraries/map-custom/build.gradle b/libraries/map-custom/build.gradle index 66f58cc70e..6537b666f1 100644 --- a/libraries/map-custom/build.gradle +++ b/libraries/map-custom/build.gradle @@ -67,7 +67,7 @@ dependencies { implementation project(':foudations:mogo-commons') } - implementation 'com.zhidaoauto.machine:map:1.0.0-vr-8.2.6' + implementation 'com.zhidaoauto.machine:map:1.0.0-vr-8.2.9' // implementation 'com.zhidaoauto.machine:map:1.0.0-vr-test-3.4' } diff --git a/libraries/map-custom/src/main/java/com/mogo/map/impl/custom/AMapViewWrapper.java b/libraries/map-custom/src/main/java/com/mogo/map/impl/custom/AMapViewWrapper.java index f1ae0079e5..9326d048ba 100644 --- a/libraries/map-custom/src/main/java/com/mogo/map/impl/custom/AMapViewWrapper.java +++ b/libraries/map-custom/src/main/java/com/mogo/map/impl/custom/AMapViewWrapper.java @@ -1038,7 +1038,7 @@ public class AMapViewWrapper implements IMogoMapView, public double[] matchRoad( double lon, double lat, double angle, boolean isGpsLocation, boolean isRTK ) { double wgs[] = new double[]{lon, lat}; long start = System.currentTimeMillis(); - SinglePointRoadInfo singlePointRoadInfo = MapDataApi.INSTANCE.getSinglePointMatchRoad( ( ( float ) wgs[0] ), ( ( float ) wgs[1] ), ( ( float ) angle ), isGpsLocation, isRTK ); + SinglePointRoadInfo singlePointRoadInfo = MapDataApi.INSTANCE.getSinglePointMatchRoad( wgs[0], wgs[1], ( ( float ) angle ), isGpsLocation, isRTK ); Log.i("timer-matchRoad-1", "cost " + (System.currentTimeMillis() - start) + "ms"); if ( singlePointRoadInfo != null && singlePointRoadInfo.getCoords() != null @@ -1053,7 +1053,7 @@ public class AMapViewWrapper implements IMogoMapView, @Override public String getMarkerInfoResName( String speedVal ) { - return null; + return ResIdCache.getVal( speedVal ); } @Override diff --git a/libraries/map-custom/src/main/java/com/mogo/map/impl/custom/CustomMapApiBuilder.java b/libraries/map-custom/src/main/java/com/mogo/map/impl/custom/CustomMapApiBuilder.java index 96a7bc6ef7..01893c2629 100644 --- a/libraries/map-custom/src/main/java/com/mogo/map/impl/custom/CustomMapApiBuilder.java +++ b/libraries/map-custom/src/main/java/com/mogo/map/impl/custom/CustomMapApiBuilder.java @@ -93,7 +93,7 @@ class CustomMapApiBuilder implements IMogoMapApiBuilder { @Override public IMogoMapView getMapView( Context context ) { NavAutoApi.INSTANCE.init( context, MapParams.Companion.init() - .setDebugMode( false ) + .setDebugMode( true ) .setCoordinateType( MapParams.COORDINATETYPE_GCJ02 ) .setPerspectiveMode( MapParams.MAP_PERSPECTIVE_2D ) .setZoom( 20 ) diff --git a/libraries/map-custom/src/main/java/com/mogo/map/impl/custom/MapStyleController.java b/libraries/map-custom/src/main/java/com/mogo/map/impl/custom/MapStyleController.java index 6da3d9b18c..968dd8d29a 100644 --- a/libraries/map-custom/src/main/java/com/mogo/map/impl/custom/MapStyleController.java +++ b/libraries/map-custom/src/main/java/com/mogo/map/impl/custom/MapStyleController.java @@ -26,7 +26,7 @@ class MapStyleController { private MapStyleController() { mVrAreaFilters.add( new ShunYiArea() ); mVrAreaFilters.add( new OCHArea() ); - mVrAreaFilters.add( new HuiXinXiJieArea() ); +// mVrAreaFilters.add( new HuiXinXiJieArea() ); } public static MapStyleController getInstance() { diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/AdasRecognizedResultDrawer.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/AdasRecognizedResultDrawer.java index c0ef90267f..255825d995 100644 --- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/AdasRecognizedResultDrawer.java +++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/AdasRecognizedResultDrawer.java @@ -1,12 +1,10 @@ package com.mogo.module.common.drawer; import android.content.Context; -import android.graphics.BitmapFactory; import android.os.Handler; import android.os.Message; import android.text.TextUtils; import android.util.ArrayMap; -import android.util.Log; import com.mogo.commons.AbsMogoApplication; import com.mogo.map.MogoLatLng; @@ -15,6 +13,7 @@ import com.mogo.map.marker.MogoMarkerOptions; import com.mogo.module.common.MogoApisHandler; import com.mogo.module.common.R; import com.mogo.module.common.constants.DataTypes; +import com.mogo.module.common.utils.SimpleHandlerThreadPool; import com.mogo.realtime.entity.ADASRecognizedResult; import com.mogo.utils.WorkThreadHandler; import com.mogo.utils.logger.Logger; @@ -22,6 +21,7 @@ import com.mogo.utils.logger.Logger; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Random; import java.util.concurrent.ConcurrentHashMap; public @@ -39,31 +39,31 @@ class AdasRecognizedResultDrawer extends BaseDrawer { private final Context mContext; - private Handler mPointSettingHandler = null; - public static final int MSG_POINTS_SETTING = 9; - public static final int MSG_SET_POINT = 10; - public static final int MSG_SET_SPEED = 11; + private Handler mRenderThreadHandler = null; + public static final int MSG_MOVE_POINTS = 9; + public static final int MSG_MOVE_POINT = 10; + public static final int MSG_DISPLAY_SPEED = 11; - private AdasRecognizedResultDrawer() { + public AdasRecognizedResultDrawer() { super(); mContext = AbsMogoApplication.getApp(); initHandler(); } private void initHandler() { - mPointSettingHandler = new Handler( WorkThreadHandler.newInstance( "moving-points-thread" ).getLooper() ) { + mRenderThreadHandler = new Handler( WorkThreadHandler.newInstance( "render-thread-" + new Random().nextLong() ).getLooper() ) { @Override public void handleMessage( Message msg ) { super.handleMessage( msg ); - if ( msg.what == MSG_POINTS_SETTING ) { + if ( msg.what == MSG_MOVE_POINTS ) { if ( msg.obj instanceof MovingPoints ) { startSettingPointLooper( ( ( MovingPoints ) msg.obj ) ); } - } else if ( msg.what == MSG_SET_POINT ) { + } else if ( msg.what == MSG_MOVE_POINT ) { if ( msg.obj instanceof MovingPoint ) { moveMarker( ( ( MovingPoint ) msg.obj ), msg.arg1 ); } - } else if ( msg.what == MSG_SET_SPEED ) { + } else if ( msg.what == MSG_DISPLAY_SPEED ) { if ( msg.obj instanceof SpeedData ) { showSpeed( ( SpeedData ) msg.obj ); } @@ -81,14 +81,14 @@ class AdasRecognizedResultDrawer extends BaseDrawer { List< MovingPoint > points = data.points; for ( int i = 0; i < points.size(); i++ ) { Message msg = Message.obtain(); - msg.what = MSG_SET_POINT; + msg.what = MSG_MOVE_POINT; msg.obj = points.get( i ); if ( i == 0 || i == points.size() - 1 ) { msg.arg1 = R.drawable.sr; } else { msg.arg1 = R.drawable.sy; } - mPointSettingHandler.sendMessageDelayed( msg, points.get( i ).delay ); + mRenderThreadHandler.sendMessageDelayed( msg, points.get( i ).delay ); } } @@ -151,6 +151,11 @@ class AdasRecognizedResultDrawer extends BaseDrawer { return; } + if ( !MogoApisHandler.getInstance().getApis().getStatusManagerApi().isVrMode() ) { + clearOldMarker(); + return; + } + Map< String, IMogoMarker > newAdasRecognizedMarkersCaches = new HashMap<>(); for ( ADASRecognizedResult recognizedListResult : resultList ) { if ( recognizedListResult == null ) { @@ -181,6 +186,7 @@ class AdasRecognizedResultDrawer extends BaseDrawer { return; } + final long start = System.currentTimeMillis(); double[] matchedPoint = SnapshotSetDataDrawer.getInstance().matchRoad( recognizedListResult.lon, @@ -209,6 +215,7 @@ class AdasRecognizedResultDrawer extends BaseDrawer { recognizedListResult.lat = matchedPoint[1]; } } + Logger.d( "matchRoad", "cost = %s", System.currentTimeMillis() - start ); IMogoMarker marker = mAdasRecognizedMarkersCaches.remove( uniqueKey ); ADASRecognizedResult lastPosition = mLastPositions.put( uniqueKey, recognizedListResult ); @@ -230,21 +237,30 @@ class AdasRecognizedResultDrawer extends BaseDrawer { startPoint.angle = ( float ) lastPosition.heading; long cost = System.currentTimeMillis() - start; - MovingPoint endPoint = new MovingPoint(); + final MovingPoint endPoint = new MovingPoint(); endPoint.point = new MogoLatLng( recognizedListResult.lat, recognizedListResult.lon ); endPoint.marker = marker; endPoint.angle = ( float ) recognizedListResult.heading; interval -= cost; endPoint.delay = interval; - List< MovingPoint > points = interpolate( startPoint, endPoint, interval ); - Message msg = new Message(); - MovingPoints obj = new MovingPoints(); - obj.points = points; - msg.obj = obj; - msg.what = MSG_POINTS_SETTING; - mPointSettingHandler.sendMessage( msg ); - Logger.d( TAG, "anim duration: %s, points size = %s", interval, points.size() ); + // method 1 + final IMogoMarker renderRef = marker; + final long intervalRef = interval; + SimpleHandlerThreadPool.getInstance().postRender( () -> { + renderRef.addDynamicAnchorPosition( endPoint.point, intervalRef ); + } ); + + // method 2 +// List< MovingPoint > points = interpolate( startPoint, endPoint, interval ); +// Message msg = new Message(); +// MovingPoints obj = new MovingPoints(); +// obj.points = points; +// msg.obj = obj; +// msg.what = MSG_MOVE_POINTS; +// mRenderThreadHandler.sendMessage( msg ); +// Logger.d( TAG, "anim duration: %s, points size = %s", interval, points.size() ); + } else { marker.setRotateAngle( ( ( float ) recognizedListResult.heading ) ); marker.setPosition( recognizedListResult.lat, recognizedListResult.lon ); @@ -255,8 +271,8 @@ class AdasRecognizedResultDrawer extends BaseDrawer { obj.marker = marker; obj.speed = recognizedListResult.speed; msg.obj = obj; - msg.what = MSG_SET_SPEED; - mPointSettingHandler.sendMessage( msg ); + msg.what = MSG_DISPLAY_SPEED; + mRenderThreadHandler.sendMessage( msg ); } /** @@ -307,7 +323,7 @@ class AdasRecognizedResultDrawer extends BaseDrawer { /** * 清除旧的 marker 数据 */ - private void clearOldMarker() { + public void clearOldMarker() { if ( mAdasRecognizedMarkersCaches != null ) { mAdasRecognizedMarkersCaches.clear(); } @@ -316,5 +332,4 @@ class AdasRecognizedResultDrawer extends BaseDrawer { } sendMessage( MSG_REMOVE_DIRTY_MARKERS, DataTypes.TYPE_MARKER_ADAS ); } - } diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/BaseDrawer.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/BaseDrawer.java index 8bd6c7ad59..2ca30509b3 100644 --- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/BaseDrawer.java +++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/BaseDrawer.java @@ -41,7 +41,12 @@ class BaseDrawer { /** * 地图刷新频率 */ - public static final int MAP_RENDER_FRAME_FREQUENCY = 25; + public static final int MAP_RENDER_FRAME_FREQUENCY = 30; + + /** + * 移动点的时间间隔 + */ + public static final int MAP_MARKER_MOVE_INTERVAL = MAP_RENDER_FRAME_FREQUENCY; /** * 地图内部资源md5缓存,便于资源复用 @@ -113,7 +118,6 @@ class BaseDrawer { return false; } - private TextView mSpeedView = null; /** @@ -160,7 +164,7 @@ class BaseDrawer { * * @param dirtyMarkers */ - private static void removeDirtyMarkers( Map< String, IMogoMarker > dirtyMarkers ) { + protected static void removeDirtyMarkers( Map< String, IMogoMarker > dirtyMarkers ) { if ( dirtyMarkers == null || dirtyMarkers.isEmpty() ) { return; } @@ -267,7 +271,7 @@ class BaseDrawer { double lat = start.point.lat + latStep * ( i + 1 ); MovingPoint pd = new MovingPoint(); pd.point = new MogoLatLng( lat, lon ); - pd.delay = ( i + i ) * MAP_RENDER_FRAME_FREQUENCY; + pd.delay = ( i + i ) * MAP_MARKER_MOVE_INTERVAL; pd.angle = ( float ) _angle; pd.marker = start.marker; arrayList.add( pd ); diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/navi/AnimNavInfoView.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/navi/AnimNavInfoView.java index bb46df62ed..2a6e5b0b5d 100644 --- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/navi/AnimNavInfoView.java +++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/navi/AnimNavInfoView.java @@ -78,15 +78,17 @@ public class AnimNavInfoView extends BaseNaviInfoView { tvDestinationOnlineCar = findViewById(R.id.module_ext_id_destination_online_car); - tvDestinationOnlineCar.setOnClickListener(new OnPreventFastClickListener() { - @Override - public void onClickImpl(View v) { - MogoApisHandler.getInstance().getApis().getOnlineCarPanelApi().showPanel(); - Map properties = new HashMap<>(); - properties.put("type", 1); - MogoApisHandler.getInstance().getApis().getAnalyticsApi().track("APP_Find_Mogoer", properties); - } - }); + if ( tvDestinationOnlineCar != null ) { + tvDestinationOnlineCar.setOnClickListener(new OnPreventFastClickListener() { + @Override + public void onClickImpl(View v) { + MogoApisHandler.getInstance().getApis().getOnlineCarPanelApi().showPanel(); + Map properties = new HashMap<>(); + properties.put("type", 1); + MogoApisHandler.getInstance().getApis().getAnalyticsApi().track("APP_Find_Mogoer", properties); + } + }); + } naviBg.setOnClickListener(new OnPreventFastClickListener() { @Override diff --git a/modules/mogo-module-extensions/src/main/res/layout-xhdpi-1920x1000/include_navi_info_panle.xml b/modules/mogo-module-extensions/src/main/res/layout-xhdpi-1920x1000/include_navi_info_panle.xml index a751411906..a576d44ca1 100644 --- a/modules/mogo-module-extensions/src/main/res/layout-xhdpi-1920x1000/include_navi_info_panle.xml +++ b/modules/mogo-module-extensions/src/main/res/layout-xhdpi-1920x1000/include_navi_info_panle.xml @@ -22,7 +22,6 @@ android:layout_height="@dimen/module_ext_navi_info_panel_turn_icon_height" android:layout_marginStart="@dimen/module_ext_navi_info_panel_turn_icon_marginLeft" android:scaleType="fitCenter" - android:src="@drawable/ic_11" app:layout_constraintBottom_toBottomOf="@+id/module_map_id_navi_bg" app:layout_constraintLeft_toLeftOf="@+id/module_map_id_navi_bg" app:layout_constraintTop_toTopOf="@+id/module_map_id_navi_bg" /> diff --git a/modules/mogo-module-extensions/src/main/res/layout-xhdpi-2000x1080/include_navi_info_panle.xml b/modules/mogo-module-extensions/src/main/res/layout-xhdpi-2000x1080/include_navi_info_panle.xml new file mode 100644 index 0000000000..4383d08193 --- /dev/null +++ b/modules/mogo-module-extensions/src/main/res/layout-xhdpi-2000x1080/include_navi_info_panle.xml @@ -0,0 +1,242 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/modules/mogo-module-extensions/src/main/res/layout/include_navi_info_panle_has_top.xml b/modules/mogo-module-extensions/src/main/res/layout/include_navi_info_panle_has_top.xml index 94a2d56326..48c0064e24 100644 --- a/modules/mogo-module-extensions/src/main/res/layout/include_navi_info_panle_has_top.xml +++ b/modules/mogo-module-extensions/src/main/res/layout/include_navi_info_panle_has_top.xml @@ -26,7 +26,6 @@ android:layout_height="@dimen/module_ext_navi_info_panel_turn_icon_height" android:layout_marginStart="@dimen/module_ext_navi_info_panel_turn_icon_marginLeft" android:scaleType="fitCenter" - android:src="@drawable/ic_11" app:layout_constraintBottom_toBottomOf="@+id/module_map_id_navi_bg" app:layout_constraintLeft_toLeftOf="@+id/module_map_id_navi_bg" app:layout_constraintTop_toTopOf="@+id/module_map_id_navi_bg" /> diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/intent/MockIntentHandler.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/intent/MockIntentHandler.java index 02886b618e..b762c5df27 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/intent/MockIntentHandler.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/intent/MockIntentHandler.java @@ -581,6 +581,40 @@ public class MockIntentHandler implements IntentHandler { latLngs.add( new MogoLatLng( 39.981990561932,116.412893641626 ) ); marker.startSmoothInMs(latLngs, 20_000L ); break; + case 49: + // 39.96741320378243, 116.41045709250723 + // 39.98232698552779,116.41879656379113; + MogoMarkerOptions options1 = new MogoMarkerOptions() + .owner( DataTypes.TYPE_MARKER_ADAS ) + .anchor( 0.5f, 0.5f ) + .set3DMode( false ) + .position( new MogoLatLng( 39.96741320378243, 116.41045709250723 ) ) + .gps( true ) + .controlAngle( false ) + .icon(BitmapFactory.decodeResource( context.getResources(), R.drawable.sy ) ) + .rotate( ( float ) 358.526123 ); + IMogoMarker marker1 = MogoApisHandler.getInstance().getApis().getMapServiceApi().getMarkerManager( context ).addMarker( DataTypes.TYPE_MARKER_ADAS, options1 ); + MogoMarkerOptions options2 = new MogoMarkerOptions() + .owner( DataTypes.TYPE_MARKER_ADAS ) + .anchor( 0.5f, 0.5f ) + .set3DMode( false ) + .position( new MogoLatLng( 39.98232698552779,116.41879656379113 ) ) + .gps( true ) + .controlAngle( false ) + .icon(BitmapFactory.decodeResource( context.getResources(), R.drawable.sr ) ) + .rotate( ( float ) 358.526123 ); + IMogoMarker marker2 = MogoApisHandler.getInstance().getApis().getMapServiceApi().getMarkerManager( context ).addMarker( DataTypes.TYPE_MARKER_ADAS, options2 ); + MogoMarkerOptions options3 = new MogoMarkerOptions() + .owner( DataTypes.TYPE_MARKER_ADAS ) + .anchor( 0.5f, 0.5f ) + .set3DMode( false ) + .position( new MogoLatLng( 39.97631642243,116.418249382739 ) ) + .gps( true ) + .controlAngle( false ) + .icon(BitmapFactory.decodeResource( context.getResources(), R.drawable.bg_map_marker_red ) ) + .rotate( ( float ) 358.526123 ); + IMogoMarker marker3 = MogoApisHandler.getInstance().getApis().getMapServiceApi().getMarkerManager( context ).addMarker( DataTypes.TYPE_MARKER_ADAS, options3 ); + break; } } @@ -697,6 +731,7 @@ public class MockIntentHandler implements IntentHandler { jo.put( "satelliteTime", System.currentTimeMillis() ); jo.put( "systemTime", System.currentTimeMillis() ); MarkerServiceHandler.getApis().getMapServiceApi().getMapUIController().syncLocation2Map( jo ); + Log.i( "mock-timer-loc-map", "cost " + ( System.currentTimeMillis() - start ) + "ms" ); SnapshotLocationController.getInstance().syncAdasLocationInfo( jo ); Log.i( "mock-timer-loc", "cost " + ( System.currentTimeMillis() - start ) + "ms" ); mLocationMockHandler.sendEmptyMessageDelayed( 1, 100L ); diff --git a/services/mogo-service-api/src/main/java/com/mogo/service/adas/entity/ADASCarStateInfo.java b/services/mogo-service-api/src/main/java/com/mogo/service/adas/entity/ADASCarStateInfo.java index c0590f9db9..df7579a01e 100644 --- a/services/mogo-service-api/src/main/java/com/mogo/service/adas/entity/ADASCarStateInfo.java +++ b/services/mogo-service-api/src/main/java/com/mogo/service/adas/entity/ADASCarStateInfo.java @@ -58,6 +58,16 @@ public class ADASCarStateInfo implements Serializable { private String systemTime; //接收到数据的时间 private String receiverDataTime; + // udp收到数据的时间 + private String startReceiverDataTime; + + public String getStartReceiverDataTime() { + return startReceiverDataTime; + } + + public void setStartReceiverDataTime( String startReceiverDataTime ) { + this.startReceiverDataTime = startReceiverDataTime; + } public float getGnss_speed() { return gnss_speed; diff --git a/services/mogo-service/src/main/java/com/mogo/service/impl/adas/MogoADASController.java b/services/mogo-service/src/main/java/com/mogo/service/impl/adas/MogoADASController.java index 22feafbf62..bca5655052 100644 --- a/services/mogo-service/src/main/java/com/mogo/service/impl/adas/MogoADASController.java +++ b/services/mogo-service/src/main/java/com/mogo/service/impl/adas/MogoADASController.java @@ -326,23 +326,11 @@ public class MogoADASController implements IMogoADASController { } } - private LogWriter locLogWriter; - @Override - @Deprecated public void ownerCarStateInfo( String ownerCarStateInfo ) { - if ( locLogWriter == null ) { - SimpleDateFormat sdf = new SimpleDateFormat( "yyyyMMddhhmmss" ); - String date = sdf.format( new Date() ); - String path = context.getExternalCacheDir().getAbsolutePath() + "/adaslog/" + date + "/loc.txt"; - Logger.d( TAG, path ); - locLogWriter = new LogWriter( path ); - } - final long start = System.currentTimeMillis(); ADASCarStateInfo stateInfo = GsonUtil.objectFromJson( ownerCarStateInfo, ADASCarStateInfo.class ); - long cost = System.currentTimeMillis() - start; - locLogWriter.write( ownerCarStateInfo, Long.valueOf( stateInfo.getValues().getReceiverDataTime() ) - cost ); + Logger.d( "ADAS-LOC-timer", "upd 到 aidl 传输耗时:%s", start - Long.valueOf( stateInfo.getValues().getStartReceiverDataTime() ) ); if ( stateInfo == null || stateInfo.getValues() == null ) { return; }