diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/presenter/OchBusPresenter.java b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/presenter/OchBusPresenter.java index 215ada4cc2..f7033b08b7 100644 --- a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/presenter/OchBusPresenter.java +++ b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/presenter/OchBusPresenter.java @@ -104,8 +104,8 @@ public class OchBusPresenter extends Presenter< OchBusFragment > implements IMog double lat = 40.1974932972; double lon = 116.7354579447; -// lat = MogoApisHandler.getInstance().getApis().getAdasControllerApi().getLastLat(); -// lon = MogoApisHandler.getInstance().getApis().getAdasControllerApi().getLastLon(); + lat = MogoApisHandler.getInstance().getApis().getAdasControllerApi().getLastLat(); + lon = MogoApisHandler.getInstance().getApis().getAdasControllerApi().getLastLon(); OchBusRoutesRequest request = new OchBusRoutesRequest( Utils.getSn(), lat, lon ); RequestBody requestBody = RequestBody.create( MediaType.get( "application/json;charset=UTF-8" ), GsonUtil.jsonFromObject( request ) ); diff --git a/app/src/main/java/com/mogo/launcher/MogoApplication.java b/app/src/main/java/com/mogo/launcher/MogoApplication.java index 19b8567590..d748a8a008 100644 --- a/app/src/main/java/com/mogo/launcher/MogoApplication.java +++ b/app/src/main/java/com/mogo/launcher/MogoApplication.java @@ -27,13 +27,10 @@ import com.mogo.module.main.service.MogoMainService; import com.mogo.module.push.base.PushUIConstants; import com.mogo.module.service.ServiceConst; import com.mogo.module.share.constant.ShareConstants; -import com.mogo.realtime.api.MoGoAiCloudRealTime; -import com.mogo.service.map.IMogoSmallMapProvider; import com.mogo.module.v2x.V2XConst; import com.mogo.module.v2x.utils.ObuConfig; import com.mogo.service.IMogoServiceApis; import com.mogo.service.MogoServicePaths; -import com.mogo.service.passport.IMogoTicketCallback; import com.mogo.test.crashreport.ITestCrashReportProvider; import com.mogo.utils.ProcessUtils; import com.mogo.utils.UiThreadHandler; @@ -59,100 +56,103 @@ public class MogoApplication extends AbsMogoApplication { public void onCreate() { initDebugConfig(); super.onCreate(); - if ( !shouldInit() ) { + if (!shouldInit()) { return; } // Crash 日志收集 final long start = System.currentTimeMillis(); - CrashSystem crashSystem = CrashSystem.getInstance( this ); + CrashSystem crashSystem = CrashSystem.getInstance(this); crashSystem.init(); //设置debug模式,日志不上传 - crashSystem.setDebug( BuildConfig.DEBUG ); - Logger.init( BuildConfig.DEBUG ? LogLevel.DEBUG : LogLevel.OFF ); + crashSystem.setDebug(BuildConfig.DEBUG); + Logger.init(BuildConfig.DEBUG ? LogLevel.DEBUG : LogLevel.OFF); - if( DebugConfig.isNeedLoadGuideModule() ){ - MogoModulePaths.addModule( new MogoModule( MogoModulePaths.PATH_GUIDE, MogoModulePaths.PATH_GUIDE ) ); + if (DebugConfig.isNeedLoadGuideModule()) { + MogoModulePaths.addModule(new MogoModule(MogoModulePaths.PATH_GUIDE, MogoModulePaths.PATH_GUIDE)); } - MogoModulePaths.addModule( new MogoModule( MogoServicePaths.PATH_AGREEMENT, AuthorizeConstant.PATH_AGREEMENT_MODULE_NAME ) ); + MogoModulePaths.addModule(new MogoModule(MogoServicePaths.PATH_AGREEMENT, AuthorizeConstant.PATH_AGREEMENT_MODULE_NAME)); - if ( DebugConfig.isLauncher() ) { - MogoModulePaths.addModule( new MogoModule( MogoServicePaths.PATH_BACK, MogoServicePaths.PATH_BACK ) ); - MogoModulePaths.addModule( new MogoModule( MogoModulePaths.PATH_MEDIA, MogoModulePaths.PATH_MEDIA ) ); + if (DebugConfig.isLauncher()) { + MogoModulePaths.addModule(new MogoModule(MogoServicePaths.PATH_BACK, MogoServicePaths.PATH_BACK)); + MogoModulePaths.addModule(new MogoModule(MogoModulePaths.PATH_MEDIA, MogoModulePaths.PATH_MEDIA)); } - MogoModulePaths.addModule( new MogoModule( ServiceConst.PATH_TTS_CONFIG, ServiceConst.PATH_TTS_CONFIG ) ); + MogoModulePaths.addModule(new MogoModule(ServiceConst.PATH_TTS_CONFIG, ServiceConst.PATH_TTS_CONFIG)); - MogoModulePaths.addBaseModule( new MogoModule( MogoServicePaths.PATH_WIDGETS, MogoServicePaths.PATH_WIDGETS ) ); - if ( DebugConfig.isMapBased() ) { - MogoModulePaths.addModule( new MogoModule( CallChatConstant.PROVIDER, CallChatConstant.MODULE_NAME ) ); + MogoModulePaths.addBaseModule(new MogoModule(MogoServicePaths.PATH_WIDGETS, MogoServicePaths.PATH_WIDGETS)); + if (DebugConfig.isMapBased()) { + MogoModulePaths.addModule(new MogoModule(CallChatConstant.PROVIDER, CallChatConstant.MODULE_NAME)); } - MogoModulePaths.addBaseModule( new MogoModule( ShareConstants.TAG, ShareConstants.MODEL_NAME ) ); - MogoModulePaths.addModule( new MogoModule( MogoServicePaths.PATH_TANLU_API, "TanluApi" ) ); - MogoModulePaths.addModule( new MogoModule( MogoServicePaths.PATH_SHARE, "ShareControl" ) ); - MogoModulePaths.addModule( new MogoModule( MogoServicePaths.PATH_TRAFFIC_UPLOAD, "TrafficUpload" ) ); + MogoModulePaths.addBaseModule(new MogoModule(ShareConstants.TAG, ShareConstants.MODEL_NAME)); + MogoModulePaths.addModule(new MogoModule(MogoServicePaths.PATH_TANLU_API, "TanluApi")); + MogoModulePaths.addModule(new MogoModule(MogoServicePaths.PATH_SHARE, "ShareControl")); + MogoModulePaths.addModule(new MogoModule(MogoServicePaths.PATH_TRAFFIC_UPLOAD, "TrafficUpload")); - MogoModulePaths.addModule( new MogoModule( LeftPanelConst.PATH_NAME, LeftPanelConst.MODULE_NAME ) ); + MogoModulePaths.addModule(new MogoModule(LeftPanelConst.PATH_NAME, LeftPanelConst.MODULE_NAME)); - MogoModulePaths.addBaseModule( new MogoModule( ServiceConst.PATH_REFRESH_STRATEGY, ServiceConst.PATH_REFRESH_STRATEGY ) ); - MogoModulePaths.addBaseModule( new MogoModule( V2XConst.PATH_V2X_UI, V2XConst.MODULE_NAME ) ); - MogoModulePaths.addBaseModule( new MogoModule( MogoServicePaths.PATH_STRATEGY_SHARE, "StrategyShare" ) ); - MogoModulePaths.addBaseModule( new MogoModule( MogoServicePaths.PATH_GAODE_AIMLESS_SHARE, "GaoDeAimlessShare" ) ); - MogoModulePaths.addBaseModule( new MogoModule( MogoServicePaths.PATH_MOGO_MONITOR, "MogoMonitor" ) ); - MogoModulePaths.addModule( new MogoModule( PushUIConstants.PATH, PushUIConstants.NAME ) ); + MogoModulePaths.addBaseModule(new MogoModule(ServiceConst.PATH_REFRESH_STRATEGY, ServiceConst.PATH_REFRESH_STRATEGY)); + MogoModulePaths.addBaseModule(new MogoModule(V2XConst.PATH_V2X_UI, V2XConst.MODULE_NAME)); + MogoModulePaths.addBaseModule(new MogoModule(MogoServicePaths.PATH_STRATEGY_SHARE, "StrategyShare")); + MogoModulePaths.addBaseModule(new MogoModule(MogoServicePaths.PATH_GAODE_AIMLESS_SHARE, "GaoDeAimlessShare")); + MogoModulePaths.addBaseModule(new MogoModule(MogoServicePaths.PATH_MOGO_MONITOR, "MogoMonitor")); + MogoModulePaths.addModule(new MogoModule(PushUIConstants.PATH, PushUIConstants.NAME)); // 碰撞报警模块 - MogoModulePaths.addModule( new MogoModule( MogoServicePaths.PATH_CRASH_WARNING, "CrashWarning" ) ); + MogoModulePaths.addModule(new MogoModule(MogoServicePaths.PATH_CRASH_WARNING, "CrashWarning")); // MogoModulePaths.addModule( new MogoModule( IMogoMachineVisionProvider.path, "IMogoMachineVisionProvider" ) ); // 小地图模块 - MogoModulePaths.addModule( new MogoModule( MogoServicePaths.PATH_SMALL_MAP, "IMogoSmallMapProvider" ) ); + MogoModulePaths.addModule(new MogoModule(MogoServicePaths.PATH_SMALL_MAP, "IMogoSmallMapProvider")); //前方碰撞预警 - MogoModulePaths.addModule( new MogoModule( MogoServicePaths.PATH_V2X_FRONT_CRASH_WARNING, "IV2XManagerProvider" ) ); + MogoModulePaths.addModule(new MogoModule(MogoServicePaths.PATH_V2X_FRONT_CRASH_WARNING, "IV2XManagerProvider")); - MogoModulePaths.addBaseModule( new MogoModule( MogoServicePaths.PATH_GLOBAL_UNWAKE, "GlobalUnwake" ) ); + MogoModulePaths.addBaseModule(new MogoModule(MogoServicePaths.PATH_GLOBAL_UNWAKE, "GlobalUnwake")); - if ( !DebugConfig.isLauncher() ) { - PersistentManager.getInstance().initManager( this ); - Intent intent = new Intent( this, MogoMainService.class ); - startService( intent ); + if (!DebugConfig.isLauncher()) { + PersistentManager.getInstance().initManager(this); + Intent intent = new Intent(this, MogoMainService.class); + startService(intent); } - LeakCanary.install( this ); + LeakCanary.install(this); // debug 下初始化 bugly 上报 - if ( DebugConfig.isDebug() ) { - ARouter.getInstance().navigation( ITestCrashReportProvider.class ); + if (DebugConfig.isDebug()) { + ARouter.getInstance().navigation(ITestCrashReportProvider.class); } - Log.i( "timer", "cost " + ( System.currentTimeMillis() - start ) + "ms" ); + Log.i("timer", "cost " + (System.currentTimeMillis() - start) + "ms"); } @Override protected boolean shouldInit() { - Logger.w( TAG, "evaluate shouldInit() with: %s", ProcessUtils.getProcessName( Process.myPid() ) ); - return ProcessUtils.isMainProcess( this ); + Logger.w(TAG, "evaluate shouldInit() with: %s", ProcessUtils.getProcessName(Process.myPid())); + return ProcessUtils.isMainProcess(this); } + /** + * BuildConfig中渠道配置赋值 + */ private void initDebugConfig() { - DebugConfig.setNetMode( BuildConfig.NET_ENV ); - DebugConfig.setDebug( BuildConfig.DEBUG ); - DebugConfig.setLaunchLocationService( BuildConfig.LAUNCH_LOCATION_SERVICE ); - DebugConfig.setUseCustomNavi( BuildConfig.USE_CUSTOM_NAVI ); - DebugConfig.setLauncher( BuildConfig.IS_LAUNCHER ); - DebugConfig.setActiveAIAssistFlag( BuildConfig.AI_ASSIST_ACTIVE_STAUTS ); - DebugConfig.setUseMockObuData( false ); + DebugConfig.setNetMode(BuildConfig.NET_ENV); + DebugConfig.setDebug(BuildConfig.DEBUG); + DebugConfig.setLaunchLocationService(BuildConfig.LAUNCH_LOCATION_SERVICE); + DebugConfig.setUseCustomNavi(BuildConfig.USE_CUSTOM_NAVI); + DebugConfig.setLauncher(BuildConfig.IS_LAUNCHER); + DebugConfig.setActiveAIAssistFlag(BuildConfig.AI_ASSIST_ACTIVE_STAUTS); + DebugConfig.setUseMockObuData(false); ObuConfig.useObuLocation = false; - DebugConfig.setCarMachineType( BuildConfig.CAR_MACHINE_TYPE ); - DebugConfig.setProductFlavor( BuildConfig.FLAVOR_product ); - DebugConfig.setSocketAppId( BuildConfig.SOCKET_APP_ID ); - DebugConfig.setRoadEventAnimated( BuildConfig.ROAD_EVENT_ANIMATED ); - DebugConfig.setSkinSupported( BuildConfig.IS_SKIN_SUPPORTED ); - DebugConfig.setSupportedSearchDestinationOnlineCarList( BuildConfig.IS_SUPPORTED_SEARCH_DESTINATION_ONLINE_CAR_LIST ); - DebugConfig.setScheduleCalculateNotHomeCompanyDistanceForPush( BuildConfig.IS_SUPPORT_SCHEDULE_CALCULATE_NOT_HOME_COMPANY_DISTANCE_FOR_PUSH ); - DebugConfig.setSupportLauncherCardRefreshStrategy( BuildConfig.IS_SUPPORT_LAUNCHER_CARD_REFRESH_STRATEGY ); - DebugConfig.setMapBased( BuildConfig.IS_MAP_BASED ); - DebugConfig.setNeedLoadGuideModule( BuildConfig.IS_NEED_LOAD_GUIDE_MODULE ); - DebugConfig.setNeedHideAdasWhenShare( BuildConfig.IS_NEED_HIDE_ADAS_WHEN_SHARE ); - DebugConfig.setNeedUploadCoordinatesInTime( BuildConfig.IS_NEED_UPLOAD_COORDINATES_IN_TIME ); - DebugConfig.setUseAdasRtkLocationInfo( BuildConfig.IS_USE_ADAS_RTK_LOCATION_INFO ); + DebugConfig.setCarMachineType(BuildConfig.CAR_MACHINE_TYPE); + DebugConfig.setProductFlavor(BuildConfig.FLAVOR_product); + DebugConfig.setSocketAppId(BuildConfig.SOCKET_APP_ID); + DebugConfig.setRoadEventAnimated(BuildConfig.ROAD_EVENT_ANIMATED); + DebugConfig.setSkinSupported(BuildConfig.IS_SKIN_SUPPORTED); + DebugConfig.setSupportedSearchDestinationOnlineCarList(BuildConfig.IS_SUPPORTED_SEARCH_DESTINATION_ONLINE_CAR_LIST); + DebugConfig.setScheduleCalculateNotHomeCompanyDistanceForPush(BuildConfig.IS_SUPPORT_SCHEDULE_CALCULATE_NOT_HOME_COMPANY_DISTANCE_FOR_PUSH); + DebugConfig.setSupportLauncherCardRefreshStrategy(BuildConfig.IS_SUPPORT_LAUNCHER_CARD_REFRESH_STRATEGY); + DebugConfig.setMapBased(BuildConfig.IS_MAP_BASED); + DebugConfig.setNeedLoadGuideModule(BuildConfig.IS_NEED_LOAD_GUIDE_MODULE); + DebugConfig.setNeedHideAdasWhenShare(BuildConfig.IS_NEED_HIDE_ADAS_WHEN_SHARE); + DebugConfig.setNeedUploadCoordinatesInTime(BuildConfig.IS_NEED_UPLOAD_COORDINATES_IN_TIME); + DebugConfig.setUseAdasRtkLocationInfo(BuildConfig.IS_USE_ADAS_RTK_LOCATION_INFO); DebugConfig.setObuType(SharedPrefsMgr.getInstance(this).getInt("OBU_TYPE", DebugConfig.OBU_TYPE_CIDI)); } @@ -165,7 +165,7 @@ public class MogoApplication extends AbsMogoApplication { protected void init() { super.init(); final IMogoServiceApis apis = MogoApisHandler.getInstance().getApis(); - prepareBaseService( apis, 0L ); + prepareBaseService(apis, 0L); } @Override @@ -173,7 +173,7 @@ public class MogoApplication extends AbsMogoApplication { MogoLocation location = MogoApisHandler.getInstance().getApis().getMapServiceApi().getSingletonLocationClient(this).getLastKnowLocation(); if (location == null) { return null; - }else { + } else { return new HttpSimpleLocation(location.getCityCode(), location.getLatitude(), location.getLongitude()); } } @@ -181,26 +181,26 @@ public class MogoApplication extends AbsMogoApplication { /** * 基础服务:passport、location、socket */ - private void prepareBaseService( IMogoServiceApis apis, long delay ) { + private void prepareBaseService(IMogoServiceApis apis, long delay) { - UiThreadHandler.postDelayed( () -> { + UiThreadHandler.postDelayed(() -> { // 第三方平台的sn是服务端生成的,所以必须在返回后才能开启 - if ( TextUtils.isEmpty( Utils.getSn() ) ) { - preparePassportEnvironment( apis, () -> { - prepareSocketAndLocationServices( apis ); - } ); + if (TextUtils.isEmpty(Utils.getSn())) { + preparePassportEnvironment(apis, () -> { + prepareSocketAndLocationServices(apis); + }); } else { - preparePassportEnvironment( apis, null ); - prepareSocketAndLocationServices( apis ); + preparePassportEnvironment(apis, null); + prepareSocketAndLocationServices(apis); } - }, delay ); + }, delay); } - private void preparePassportEnvironment( IMogoServiceApis apis, Runnable after ) { + private void preparePassportEnvironment(IMogoServiceApis apis, Runnable after) { // 配置云服务API MoGoAiCloudClientConfig clientConfig = MoGoAiCloudClientConfig.getInstance(); // 设置网络环境:HTTP_DNS_ENV_QA、HTTP_DNS_ENV_RELEASE、HTTP_DNS_ENV_DEV - switch ( DebugConfig.getNetMode() ) { + switch (DebugConfig.getNetMode()) { case DebugConfig.NET_MODE_DEV: clientConfig.setNetMode(MogoHttpDnsConfig.HTTP_DNS_ENV_DEV); break; @@ -256,19 +256,19 @@ public class MogoApplication extends AbsMogoApplication { MoGoAiCloudClient.getInstance().init(this, clientConfig); } - private void prepareSocketAndLocationServices( IMogoServiceApis apis ) { - apis.getSocketManagerApi( getApplicationContext() ).init( getApplicationContext(), DebugConfig.getSocketAppId() ); - if ( DebugConfig.getCarMachineType() != DebugConfig.CAR_MACHINE_TYPE_SELF_INNOVATE ) { + private void prepareSocketAndLocationServices(IMogoServiceApis apis) { + apis.getSocketManagerApi(getApplicationContext()).init(getApplicationContext(), DebugConfig.getSocketAppId()); + if (DebugConfig.getCarMachineType() != DebugConfig.CAR_MACHINE_TYPE_SELF_INNOVATE) { apis.getLocationInfoApi().start(); - apis.getMapServiceApi().getSingletonLocationClient( getApplicationContext() ).addLocationListener( location -> { - apis.getLocationInfoApi().provideLocation( location ); - } ); + apis.getMapServiceApi().getSingletonLocationClient(getApplicationContext()).addLocationListener(location -> { + apis.getLocationInfoApi().provideLocation(location); + }); } } @Override - protected void attachBaseContext( Context base ) { - super.attachBaseContext( base ); - BoostMultiDex.install( base ); + protected void attachBaseContext(Context base) { + super.attachBaseContext(base); + BoostMultiDex.install(base); } } diff --git a/foudations/mogo-commons/src/main/java/com/mogo/commons/AbsMogoApplication.java b/foudations/mogo-commons/src/main/java/com/mogo/commons/AbsMogoApplication.java index 4037c1772e..0681470777 100644 --- a/foudations/mogo-commons/src/main/java/com/mogo/commons/AbsMogoApplication.java +++ b/foudations/mogo-commons/src/main/java/com/mogo/commons/AbsMogoApplication.java @@ -131,7 +131,7 @@ public abstract class AbsMogoApplication extends Application { /** * 忽略 https 验证 * - * @return + * @return {@link SSLContext} * @throws Exception */ private static SSLContext getSslContext() throws Exception { diff --git a/foudations/mogo-commons/src/main/java/com/mogo/commons/device/Devices.java b/foudations/mogo-commons/src/main/java/com/mogo/commons/device/Devices.java index 56eaa84ac1..18852f7872 100644 --- a/foudations/mogo-commons/src/main/java/com/mogo/commons/device/Devices.java +++ b/foudations/mogo-commons/src/main/java/com/mogo/commons/device/Devices.java @@ -11,7 +11,7 @@ import com.mogo.utils.ThreadPoolService; import com.mogo.utils.logger.Logger; public -/** +/* * @author congtaowang * @since 2020/6/8 * diff --git a/foudations/mogo-commons/src/main/java/com/mogo/commons/storage/SpStorage.java b/foudations/mogo-commons/src/main/java/com/mogo/commons/storage/SpStorage.java index 6971ebd8d4..45b06e8fdb 100644 --- a/foudations/mogo-commons/src/main/java/com/mogo/commons/storage/SpStorage.java +++ b/foudations/mogo-commons/src/main/java/com/mogo/commons/storage/SpStorage.java @@ -12,11 +12,11 @@ import com.mogo.utils.storage.SharedPrefsMgr; public class SpStorage { public static String getTicket() { - return SharedPrefsMgr.getInstance( AbsMogoApplication.getApp() ).getString( "ticket" ); + return SharedPrefsMgr.getInstance( AbsMogoApplication.getApp() ).getString( "token" ); } public static void setTicket( String ticket ) { - SharedPrefsMgr.getInstance( AbsMogoApplication.getApp() ).putString( "ticket", ticket ); + SharedPrefsMgr.getInstance( AbsMogoApplication.getApp() ).putString( "token", ticket ); } public static String getNavigationTarget(){ diff --git a/foudations/mogo-utils/src/main/java/com/mogo/utils/TipToast.java b/foudations/mogo-utils/src/main/java/com/mogo/utils/TipToast.java index 446762315f..13d023ea09 100644 --- a/foudations/mogo-utils/src/main/java/com/mogo/utils/TipToast.java +++ b/foudations/mogo-utils/src/main/java/com/mogo/utils/TipToast.java @@ -1,6 +1,6 @@ package com.mogo.utils; -/** +/* * 2016/1/1 by congtaowang * * @Version 1.0 @@ -28,7 +28,7 @@ public final class TipToast { private static final String TAG = "TipToast"; private static Toast sToast = null; - private static final Object sSyncObject = new Object(); + private static final byte[] sSyncObject = new byte[0]; private static Handler sHandler = null; private static Context sContext; private static ToastViewGenerator sGenerator; diff --git a/gradle.properties b/gradle.properties index 3d9c247180..edcdd3acd8 100644 --- a/gradle.properties +++ b/gradle.properties @@ -145,7 +145,7 @@ MOGO_OCH_TAXI_VERSION=1.0.0 ######## 外部依赖引用 # 车聊聊 -CARCHATTING_VERSION=2.2.311 +CARCHATTING_VERSION=2.2.318 # 车聊聊接口 CARCHATTINGPROVIDER_VERSION=1.1.11 # websocket @@ -155,21 +155,21 @@ LOGLIB_VERSION = 1.0.4 ######## MogoAiCloudSDK Version # 网络请求 -MOGO_NETWORK_VERSION=1.0.63 +MOGO_NETWORK_VERSION=1.0.67 # 鉴权 -MOGO_PASSPORT_VERSION=1.0.63 +MOGO_PASSPORT_VERSION=1.0.67 # 常链接 -MOGO_SOCKET_VERSION=1.0.63 +MOGO_SOCKET_VERSION=1.0.67 # 数据采集 -MOGO_REALTIME_VERSION=1.0.63 +MOGO_REALTIME_VERSION=1.0.67 # 探路,道路事件发布,获取 -MOGO_TANLU_VERSION=1.0.63 +MOGO_TANLU_VERSION=1.0.67 # 直播推流 -MOGO_LIVE_VERSION=1.0.63 +MOGO_LIVE_VERSION=1.0.67 # 直播拉流 -MOGO_TRAFFICLIVE_VERSION=1.0.63 +MOGO_TRAFFICLIVE_VERSION=1.0.67 -######## Foundation MogoAiCloud Moduletruetr +######## Foundation MogoAiCloud Module # mogoAiCloud apk services MOGO_AICLOUD_SERVICES_APK_VERSION=1.0.0-SNAPSHOT # mogoAiCloud sdk services diff --git a/libraries/map-custom/build.gradle b/libraries/map-custom/build.gradle index 2ac43dc030..fa9c7cf8f4 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.5.2' + implementation 'com.zhidaoauto.machine:map:1.0.0-vr-8.5.5' // implementation 'com.zhidaoauto.machine:map:1.0.0-vr-test-3.4' } diff --git a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/view/OnAiAssistClickListener.java b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/view/OnAiAssistClickListener.java index 5fc98232c2..6325dd9535 100644 --- a/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/view/OnAiAssistClickListener.java +++ b/modules/mogo-module-apps/src/main/java/com/mogo/module/apps/view/OnAiAssistClickListener.java @@ -12,7 +12,7 @@ public * @author congtaowang * @since 2020/6/9 * - * 如果已经激活设备,则按照正常流程打开语音,否则需要连续点击5下才能打开 + * 如果已经激活设备,则按照正常流程打开语音,否则需要连续点击5下小智才能激活语音功能 */ class OnAiAssistClickListener implements View.OnClickListener { diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/constants/DataTypes.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/constants/DataTypes.java index 07dfb1fbb2..85c7794f0e 100644 --- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/constants/DataTypes.java +++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/constants/DataTypes.java @@ -19,10 +19,15 @@ class DataTypes { public static final String TYPE_MARKER_CLOUD_DATA = "TYPE_MARKER_CLOUD_DATA"; /** - * 云端下发数据 + * 云端下发警告数据 */ public static final String TYPE_MARKER_CLOUD_WARN_DATA = "TYPE_MARKER_CLOUD_WARN_DATA"; + /** + * 云端下发停止线数据 + */ + public static final String TYPE_MARKER_CLOUD_STOP_LINE_DATA = "TYPE_MARKER_CLOUD_STOP_LINE_DATA"; + /** * Push 事件场景 VR */ diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/V2XWarnDataDrawer.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/V2XWarnDataDrawer.java index d86d0213d8..0eba5d780f 100644 --- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/V2XWarnDataDrawer.java +++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/V2XWarnDataDrawer.java @@ -14,9 +14,9 @@ import com.mogo.module.common.entity.V2XWarningEntity; import com.mogo.service.statusmanager.IMogoStatusChangedListener; import com.mogo.service.statusmanager.StatusDescriptor; import com.mogo.utils.UiThreadHandler; -import com.mogo.utils.WorkThreadHandler; import com.mogo.utils.logger.Logger; +import static com.mogo.module.common.constants.DataTypes.TYPE_MARKER_CLOUD_STOP_LINE_DATA; import static com.mogo.module.common.constants.DataTypes.TYPE_MARKER_CLOUD_WARN_DATA; @@ -65,7 +65,7 @@ public class V2XWarnDataDrawer extends BaseDrawer implements IMogoStatusChangedL /** - * 绘制行人和二轮车 + * 绘制行人和二轮车,前方和左右 * * @param data */ @@ -79,7 +79,7 @@ public class V2XWarnDataDrawer extends BaseDrawer implements IMogoStatusChangedL markerShowEntity.setMarkerType(TYPE_MARKER_CLOUD_WARN_DATA); IMogoMarker marker = drawMarker(markerShowEntity); - Log.d("liyz", "renderWarnData marker != null "); + Log.d("liyz", "renderWarnData marker != null direction = " + data.getDirection()); marker.addDynamicAnchorPosition(new MogoLatLng( data.getDirection() == 1 ? data.getStopLines().get(1).lat : data.getCollisionLat(), data.getDirection() == 1 ? data.getStopLines().get(1).lon : data.getCollisionLon()), (float) data.getHeading(), 5000); @@ -109,7 +109,7 @@ public class V2XWarnDataDrawer extends BaseDrawer implements IMogoStatusChangedL } /** - * 绘制停止线 + * 绘制停止线 marker * * @param data */ @@ -120,7 +120,7 @@ public class V2XWarnDataDrawer extends BaseDrawer implements IMogoStatusChangedL MarkerShowEntity markerShowEntity = new MarkerShowEntity(); markerShowEntity.setMarkerLocation(location); - markerShowEntity.setMarkerType(TYPE_MARKER_CLOUD_WARN_DATA); + markerShowEntity.setMarkerType(TYPE_MARKER_CLOUD_STOP_LINE_DATA); IMogoMarker marker = drawStopLineMarker(markerShowEntity); diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java index f46369a4d9..4f3fa1fb7b 100644 --- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java +++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java @@ -1332,9 +1332,9 @@ public class EntranceFragment extends MvpFragment 40 ? "#DB3137" : "#3E77F6")); + mouduleArc.setArcColor(Color.parseColor(speed > 60 ? "#DB3137" : "#3E77F6")); mouduleArc.setValues(speed); - flSpeed.setBackgroundResource(speed > 40 ? R.drawable.yi_biao_pan_bg_speeding : R.drawable.yi_biao_pan_bg_nor); + flSpeed.setBackgroundResource(speed > 60 ? R.drawable.yi_biao_pan_bg_speeding : R.drawable.yi_biao_pan_bg_nor); } @Override diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/utils/TopViewNoLinkageAnimHelper.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/utils/TopViewNoLinkageAnimHelper.java index d9b55cfd0a..50974b952c 100644 --- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/utils/TopViewNoLinkageAnimHelper.java +++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/utils/TopViewNoLinkageAnimHelper.java @@ -1,14 +1,11 @@ package com.mogo.module.extensions.utils; import android.animation.Animator; -import android.os.Handler; -import android.transition.Transition; import android.util.ArrayMap; import android.view.View; import android.view.ViewGroup.LayoutParams; import androidx.constraintlayout.widget.ConstraintLayout; -import androidx.constraintlayout.widget.ConstraintSet; import com.mogo.map.uicontroller.IMogoMapUIController; import com.mogo.module.common.MogoApisHandler; @@ -36,15 +33,18 @@ public class TopViewNoLinkageAnimHelper { private ConstraintLayout topMotionLayout; private TopView topContainerNoLinkage; - private float topHeight = 0f; + private volatile boolean isTopViewOut = true; + private final List viewCaches = new ArrayList<>(); + private final Map statusListenerMap = new ArrayMap<>(); - private Handler handler = new Handler(); + private View currentAnimatingView = null; + + private IMogoMapUIController mogoMapUIController; + private volatile static TopViewNoLinkageAnimHelper instance = null; private TopViewNoLinkageAnimHelper() { } - private volatile static TopViewNoLinkageAnimHelper instance = null; - public static TopViewNoLinkageAnimHelper getInstance() { if (instance == null) { synchronized (TopViewNoLinkageAnimHelper.class) { @@ -56,8 +56,6 @@ public class TopViewNoLinkageAnimHelper { return instance; } - private IMogoMapUIController mogoMapUIController; - public void setIMogoMapUIController(IMogoMapUIController mogoMapUIController) { this.mogoMapUIController = mogoMapUIController; } @@ -73,12 +71,6 @@ public class TopViewNoLinkageAnimHelper { topContainerNoLinkage.setSlideListener(this::startLatestTopOutAnim); } - private volatile boolean isTopViewOut = true; - private List viewCaches = new ArrayList<>(); - private Map statusListenerMap = new ArrayMap<>(); - - private View currentAnimatingView = null; - public void startTopInAnim(View view, LayoutParams params, IMogoTopViewStatusListener statusListener) { @@ -258,12 +250,12 @@ public class TopViewNoLinkageAnimHelper { topContainerNoLinkage = null; } - public void enterVrMode(){ + public void enterVrMode() { removeAllView(); topContainerNoLinkage.getLayoutParams().width = (int) getDimen(R.dimen.module_ext_top_view_no_link_width_in_vr_mode); } - public void exitVrMode(){ + public void exitVrMode() { removeAllView(); topContainerNoLinkage.getLayoutParams().width = LayoutParams.MATCH_PARENT; } diff --git a/modules/mogo-module-extensions/src/main/res/values/dimens.xml b/modules/mogo-module-extensions/src/main/res/values/dimens.xml index 9cc9dc544b..d430472dff 100644 --- a/modules/mogo-module-extensions/src/main/res/values/dimens.xml +++ b/modules/mogo-module-extensions/src/main/res/values/dimens.xml @@ -89,7 +89,7 @@ 1058px 822px - 615px + 583px 544px 117px 80px 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 ce3af58d54..c2c3812f6b 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 @@ -841,23 +841,25 @@ public class MockIntentHandler implements IntentHandler { } } -// List< ADASRecognizedResult > allList = new ArrayList<>(); - JSONArray jsonArray = new JSONArray( ); + List< ADASRecognizedResult > allList = new ArrayList<>(); for ( BufferedReader reader : readers ) { String line = reader.readLine(); -// ADASRecognizedResult adasRecognizedResult = GsonUtil.objectFromJson( line, ADASRecognizedResult.class ); - jsonArray.put( line ); -// if ( adasRecognizedResult != null ) { -// allList.add( adasRecognizedResult ); -// } + ADASRecognizedResult adasRecognizedResult = GsonUtil.objectFromJson( line, ADASRecognizedResult.class ); + if ( adasRecognizedResult != null ) { + allList.add( adasRecognizedResult ); + } } - JSONObject object = new JSONObject(); - object.put( "action", "view" ); - object.put( "models", jsonArray ); + AdasRec adasRec = new AdasRec(); + adasRec.models = allList; - MogoApisHandler.getInstance().getApis().getAdasControllerApi().mockAdasRecognized( object.toString() ); + MogoApisHandler.getInstance().getApis().getAdasControllerApi().mockAdasRecognized( GsonUtil.jsonFromObject( adasRec ) ); Log.i( "mock-timer-adas", "cost " + ( System.currentTimeMillis() - start ) + "ms" ); return true; } + + public static class AdasRec{ + public String action = "view"; + public List models; + } } diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/strategy/CarIconDisplayStrategy.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/strategy/CarIconDisplayStrategy.java index 8513281d10..3c9ba2bab3 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/strategy/CarIconDisplayStrategy.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/strategy/CarIconDisplayStrategy.java @@ -198,7 +198,7 @@ public class CarIconDisplayStrategy { new MogoMarkerOptions() .icons(mBitmapFrames) .period(1) - .zIndex(1000) + .zIndex(0) .autoManager(false) .anchor(0.5f, 0.5f) .position(MarkerServiceHandler.getMapService().getNavi(AbsMogoApplication.getApp()).getCarLocation2())); diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/V2XWaringManager.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/V2XWaringManager.java index 66bc31e67d..1f736ccfcd 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/V2XWaringManager.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/V2XWaringManager.java @@ -166,6 +166,7 @@ public class V2XWaringManager { // } ); // //adas自车定位 +// MogoApisHandler.getInstance().getApis().getMapServiceApi().getSingletonLocationClient().getLastKnowLocation() // double lon = MogoApisHandler.getInstance().getApis().getAdasControllerApi().getLastLon(); // double lat = MogoApisHandler.getInstance().getApis().getAdasControllerApi().getLastLat(); } diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/manager/impl/MoGoV2XCloundDataManager.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/manager/impl/MoGoV2XCloundDataManager.java index d3499534cb..e9b15b4f78 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/manager/impl/MoGoV2XCloundDataManager.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/manager/impl/MoGoV2XCloundDataManager.java @@ -1,20 +1,21 @@ package com.mogo.module.v2x.manager.impl; import android.content.Context; -import android.content.Intent; import android.location.Location; import android.util.Log; -import androidx.localbroadcastmanager.content.LocalBroadcastManager; - import com.alibaba.android.arouter.facade.annotation.Route; import com.mogo.cloud.commons.utils.CoordinateUtils; import com.mogo.map.MogoLatLng; +import com.mogo.map.marker.IMogoMarker; +import com.mogo.map.marker.MogoMarkerOptions; import com.mogo.map.navi.IMogoCarLocationChangedListener2; import com.mogo.map.overlay.IMogoPolyline; import com.mogo.module.common.MogoApisHandler; +import com.mogo.module.common.drawer.MarkerDrawer; import com.mogo.module.common.drawer.V2XWarnDataDrawer; -import com.mogo.module.common.entity.V2XMessageEntity; +import com.mogo.module.common.drawer.marker.EmptyMarkerView; +import com.mogo.module.common.drawer.marker.SimpleWindow3DAdapter; import com.mogo.module.common.entity.V2XWarningEntity; import com.mogo.module.service.MarkerServiceHandler; import com.mogo.module.service.receiver.MogoReceiver; @@ -23,15 +24,17 @@ import com.mogo.module.v2x.V2XConst; import com.mogo.module.v2x.V2XServiceManager; import com.mogo.module.v2x.entity.model.DrawLineInfo; import com.mogo.module.v2x.manager.IMoGoV2XCloundDataManager; +import com.mogo.module.v2x.marker.V2XFrontTargetMarkerView; import com.mogo.module.v2x.utils.LocationUtils; import com.mogo.utils.UiThreadHandler; +import com.mogo.utils.ViewUtils; import com.mogo.utils.WorkThreadHandler; - import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import static com.mogo.module.v2x.V2XConst.V2X_FRONT_WARNING_MARKER; import static com.mogo.module.v2x.V2XServiceManager.getContext; /** @@ -59,7 +62,7 @@ public class MoGoV2XCloundDataManager implements IMoGoV2XCloundDataManager, IMog pointsBetween(); //发送预警提示 - MarkerServiceHandler.getApis().getV2XListenerManager().warningChangedForListenerWithDirection(cloundWarningInfo.getDirection(), MogoReceiver.ACTION_V2X_FRONT_WARNING); + MarkerServiceHandler.getApis().getV2XListenerManager().warningChangedForListenerWithDirection(cloundWarningInfo.getType(), MogoReceiver.ACTION_V2X_FRONT_WARNING); isSelfLineClear = false; @@ -73,8 +76,8 @@ public class MoGoV2XCloundDataManager implements IMoGoV2XCloundDataManager, IMog //绘制识别物与交汇点连线,并且更新连线数据 drawStopLine(cloundWarningInfo, newLocation); //添加停止线marker - handleStopLine(); - }, 0); + drawStopLineWith2Resource(); + }, 200); UiThreadHandler.postDelayed(() -> { V2XServiceManager.getMoGoPersonWarnPolylineManager().clearLine(); @@ -90,7 +93,7 @@ public class MoGoV2XCloundDataManager implements IMoGoV2XCloundDataManager, IMog drawOtherObjectLine(cloundWarningInfo); //二轮车和行人的渲染和移动 V2XWarnDataDrawer.getInstance().renderWarnData(cloundWarningInfo); - }, 0); + }, 200); //延迟3秒清理线 UiThreadHandler.postDelayed(() -> { @@ -108,8 +111,9 @@ public class MoGoV2XCloundDataManager implements IMoGoV2XCloundDataManager, IMog for (int i = 0; i < fillPoints.size(); i++) { V2XWarningEntity entity = new V2XWarningEntity(); MogoLatLng latLng = (MogoLatLng) fillPoints.get(i); + Log.d("liyz", "handleStopLine lat = " + latLng.lat + "--lon =" + latLng.lon); entity.setLat(latLng.lat); - entity.setLat(latLng.lon); + entity.setLon(latLng.lon); entity.setCollisionLat(mCloundWarningInfo.getCollisionLat()); entity.setCollisionLon(mCloundWarningInfo.getCollisionLon()); entity.heading = mCloundWarningInfo.heading; @@ -117,6 +121,32 @@ public class MoGoV2XCloundDataManager implements IMoGoV2XCloundDataManager, IMog } } + /* + * 2D资源绘制停止线 + * */ + private void drawStopLineWith2Resource() { + mCloundWarningInfo.setCarLocation(new MogoLatLng(39.976866,116.417622));//测试数据 + MogoLatLng carlo = mCloundWarningInfo.getCarLocation(); + if (carlo == null){ + double lon = MogoApisHandler.getInstance().getApis().getAdasControllerApi().getLastLon(); + double lat = MogoApisHandler.getInstance().getApis().getAdasControllerApi().getLastLat(); + carlo = new MogoLatLng(lat, lon); + } + MogoLatLng drawStopLineLon = LocationUtils.getNewLocation(carlo, mCloundWarningInfo.getStopLineDistance(), mCloundWarningInfo.getAngle()); + + MogoMarkerOptions optionsRipple = new MogoMarkerOptions() + .latitude(drawStopLineLon.getLat()) + .longitude(drawStopLineLon.getLon()) + .anchor(0.5f, 0.5f) + .zIndex(MarkerDrawer.MARKER_Z_INDEX_HIGH); + + optionsRipple + .icon(ViewUtils.fromView(new EmptyMarkerView(V2XServiceManager.getContext()))); + IMogoMarker stopLine = V2XServiceManager.getMarkerManager().addMarker(V2X_FRONT_WARNING_MARKER, optionsRipple); + stopLine.setInfoWindowAdapter(new SimpleWindow3DAdapter(new V2XFrontTargetMarkerView(V2XServiceManager.getContext()))); + stopLine.showInfoWindow(); + } + /** * 绘制停止线前方线 TODO 需要实时给行人当前位置 */ @@ -192,9 +222,20 @@ public class MoGoV2XCloundDataManager implements IMoGoV2XCloundDataManager, IMog */ @Override public void onCarLocationChanged2(Location latLng) { -// Log.d(V2XConst.LOG_NAME_WARN, "onCarLocationChanged2 latLng = " + latLng.getLatitude() + "--" + latLng.getLongitude() + "---isSelfLineClear = " + isSelfLineClear); - //当行人经纬度交点 经纬度不为空,开始画线,否则清理 - //自车只需要关注移动 + Log.e(V2XConst.LOG_NAME_WARN, "onCarLocationChanged2 latLng = " + latLng.getLatitude() + "--" + latLng.getLongitude() + "---isSelfLineClear = " + isSelfLineClear); + //当行人经纬度交点 开始画线,否则清理 + drawSlefCarLine(latLng); + } + + @Override + public void onCarLocationChanged(MogoLatLng latLng) { + + } + + /** + * 绘制自车连线 + */ + private void drawSlefCarLine(Location latLng) { if (!isSelfLineClear) { IMogoPolyline mogoPolyline = V2XServiceManager.getMoGoWarnPolylineManager().getMogoWarnPolyline(); if (mCloundWarningInfo != null) { @@ -223,12 +264,6 @@ public class MoGoV2XCloundDataManager implements IMoGoV2XCloundDataManager, IMog } } - @Override - public void onCarLocationChanged(MogoLatLng latLng) { - - } - - /** * 补点后的停止线经纬度合集 */ @@ -258,4 +293,10 @@ public class MoGoV2XCloundDataManager implements IMoGoV2XCloundDataManager, IMog } + private MogoLatLng getMogoLat(MogoLatLng latlng) { + MogoLatLng newLocation = LocationUtils.getNewLocation(latlng, mCloundWarningInfo.getDistance(), mCloundWarningInfo.getDirection()); + + return newLocation; + } + } diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/marker/V2XFrontTargetMarkerView.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/marker/V2XFrontTargetMarkerView.java new file mode 100644 index 0000000000..89cb6b1283 --- /dev/null +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/marker/V2XFrontTargetMarkerView.java @@ -0,0 +1,44 @@ +package com.mogo.module.v2x.marker; + +import android.content.Context; +import android.util.AttributeSet; +import android.view.LayoutInflater; +import android.widget.ImageView; + +import androidx.annotation.Nullable; + +import com.mogo.module.common.drawer.marker.MapMarkerBaseView; +import com.mogo.module.common.entity.MarkerShowEntity; +import com.mogo.module.v2x.R; + +/** + * @author liujing + * @description 前方预警目标物2D资源实现,目前只有停止线,可以按需添加其他类型 + * @since: 2021/4/9 + */ +public class V2XFrontTargetMarkerView extends MapMarkerBaseView { + private String TAG = "V2XFrontTargetMarkerView"; + + + public V2XFrontTargetMarkerView(Context context) { + super(context); + } + + public V2XFrontTargetMarkerView(Context context, @Nullable AttributeSet attrs) { + super(context, attrs); + } + + public V2XFrontTargetMarkerView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) { + super(context, attrs, defStyleAttr); + } + + @Override + protected void initView(Context context) { + LayoutInflater.from( context ).inflate(R.layout.v2x_front_target_info_view, this ); + } + + @Override + public void updateView(MarkerShowEntity markerShowEntity) { + + } +} diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/help/V2XCarForHelpScenario.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/help/V2XCarForHelpScenario.java index 09fa98f8ee..52a0802733 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/help/V2XCarForHelpScenario.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/help/V2XCarForHelpScenario.java @@ -47,10 +47,10 @@ public class V2XCarForHelpScenario extends AbsV2XScenario implements IM private V2XSeekHelpButton mV2XSeekHelpButton; public V2XCarForHelpScenario() { - setV2XWindow(new V2XCarForHelpWindow(V2XServiceManager.getContext())); mV2XSeekHelpButton = new V2XSeekHelpButton(); setV2XButton(mV2XSeekHelpButton); V2XServiceManager.getMoGoStatusManager().registerStatusChangedListener(TAG, StatusDescriptor.SEEK_HELPING, this); + V2XServiceManager.getMoGoStatusManager().registerStatusChangedListener(TAG, StatusDescriptor.VR_MODE, this); } @Override @@ -61,14 +61,6 @@ public class V2XCarForHelpScenario extends AbsV2XScenario implements IM } setV2XMessageEntity(v2XMessageEntity); Boolean isShow = getV2XMessageEntity().getContent(); - if (V2XServiceManager.getMoGoStatusManager().isVrMode()) { - if (isShow) { - showWindow(); - } else { - closeWindow(); - } - return; - } if (isShow) { showButton(); mySeekHelpCountDownTimerCancel(); @@ -96,20 +88,10 @@ public class V2XCarForHelpScenario extends AbsV2XScenario implements IM @Override public void showWindow() { - if (getV2XWindow() != null) { - ViewGroup.LayoutParams layoutParams = new ViewGroup.LayoutParams( - ViewGroup.LayoutParams.MATCH_PARENT, - (int) V2XUtils.getApp().getResources().getDimension(R.dimen.dp_140)); - V2XServiceManager.getMogoTopViewManager().addView(getV2XWindow().getView(), layoutParams); - getV2XWindow().show(getV2XMessageEntity().getContent()); - } } @Override public void closeWindow() { -// if (getV2XWindow() != null) { -// getV2XWindow().close(); -// } } private V2XVoiceCallbackListener cancelCb = null; @@ -122,7 +104,7 @@ public class V2XCarForHelpScenario extends AbsV2XScenario implements IM if (getV2XButton() != null) { getV2XButton().setOnActionListener(this::showDialog); getV2XButton().show(); - V2XServiceManager.getMogoEntranceButtonController().showLeftNoticeByType(IMogoEntranceButtonController.NOTICE_TYPE_SEEK_HELP, R.drawable.module_v2x_left_notice_seek_help, "正在发起求助..."); + // V2XServiceManager.getMogoEntranceButtonController().showLeftNoticeByType(IMogoEntranceButtonController.NOTICE_TYPE_SEEK_HELP, R.drawable.module_v2x_left_notice_seek_help, "正在发起求助..."); } }); } @@ -241,6 +223,18 @@ public class V2XCarForHelpScenario extends AbsV2XScenario implements IM entity.setType(V2XMessageEntity.V2XTypeEnum.ALERT_CAR_FOR_HELP); entity.setContent(isTrue); init(entity); + } else if (descriptor == StatusDescriptor.VR_MODE) { + if (V2XServiceManager.getMoGoStatusManager().isSeekHelping()) { + if (isTrue) { + ((V2XSeekHelpButton) getV2XButton()).showTopView(); + V2XServiceManager.getMogoEntranceButtonController() + .getButton(ButtonIndex.BUTTON2).setVisibility(View.GONE); + } else { + ((V2XSeekHelpButton) getV2XButton()).closeTopView(); + V2XServiceManager.getMogoEntranceButtonController() + .getButton(ButtonIndex.BUTTON2).setVisibility(View.VISIBLE); + } + } } } } diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/help/V2XCarForHelpWindow.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/help/V2XCarForHelpWindow.java deleted file mode 100644 index 00ecfd0077..0000000000 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/help/V2XCarForHelpWindow.java +++ /dev/null @@ -1,114 +0,0 @@ -package com.mogo.module.v2x.scenario.scene.help; - -import android.content.Context; -import android.content.Intent; -import android.util.AttributeSet; -import android.view.LayoutInflater; -import android.view.View; -import android.widget.TextView; -import android.widget.Toast; - -import com.mogo.commons.data.BaseData; -import com.mogo.commons.voice.AIAssist; -import com.mogo.module.common.entity.V2XPushMessageEntity; -import com.mogo.module.v2x.R; -import com.mogo.module.v2x.V2XConst; -import com.mogo.module.v2x.V2XServiceManager; -import com.mogo.module.v2x.listener.V2XWindowStatusListener; -import com.mogo.module.v2x.network.V2XRefreshCallback; -import com.mogo.module.v2x.scenario.scene.V2XBasWindow; -import com.mogo.module.v2x.scenario.view.IV2XWindow; -import com.mogo.module.v2x.utils.V2XUtils; -import com.mogo.module.v2x.voice.V2XVoiceCallbackListener; -import com.mogo.module.v2x.voice.V2XVoiceConstants; -import com.mogo.module.v2x.voice.V2XVoiceManager; -import com.mogo.utils.storage.SharedPrefsMgr; - -import static com.mogo.module.v2x.V2XConst.MODULE_NAME; - -/** - * created by wujifei on 2021/4/1 16:04 - * describe: - */ -public class V2XCarForHelpWindow extends V2XBasWindow implements IV2XWindow { - private static final String TAG = MODULE_NAME + "_" + V2XCarForHelpScenario.class.getSimpleName(); - private TextView tvCancel; - private V2XVoiceCallbackListener cancelCb = (String command, Intent intent) -> { - close(); - }; - - - public V2XCarForHelpWindow(Context context) { - this(context, null); - } - - public V2XCarForHelpWindow(Context context, AttributeSet attrs) { - this(context, attrs, 0); - } - - public V2XCarForHelpWindow(Context context, AttributeSet attrs, int defStyleAttr) { - super(context, attrs, defStyleAttr); - initView(context); - } - - private void initView(Context context) { - LayoutInflater.from(context).inflate(R.layout.window_carforhelp_detail, this); - tvCancel = (TextView) findViewById(R.id.tv_cancel); - tvCancel.setOnClickListener(new OnClickListener() { - @Override - public void onClick(View v) { - close(); - } - }); - } - - @Override - public void show(Boolean entity) { - V2XVoiceManager.INSTANCE.registerWakeCmd(V2XVoiceConstants.COMMAND_ZHIDAO_V2X_CANCEL_HELP, cancelCb); - } - - @Override - public void close() { - if (V2XServiceManager.getMoGoStatusManager().isSeekHelping()) { - V2XServiceManager.getMoGoStatusManager().setSeekHelping(TAG, false); - SharedPrefsMgr.getInstance(V2XUtils.getApp()).putLong(V2XConst.SEEK_HELP_TIME, 0); - V2XServiceManager.getV2XRefreshModel().cancelHelpSignal(new V2XRefreshCallback() { - @Override - public void onSuccess(BaseData result) { - //移除窗体 - V2XServiceManager.getMogoTopViewManager().removeView(V2XCarForHelpWindow.this); - } - - @Override - public void onFail(String msg) { - Toast.makeText(V2XServiceManager.getContext(), msg, Toast.LENGTH_SHORT).show(); - } - }); - - } - AIAssist.getInstance(V2XUtils.getApp()).speakTTSVoice("已取消", null); - //移除窗体 - V2XServiceManager.getMogoTopViewManager().removeView(V2XCarForHelpWindow.this); - V2XVoiceManager.INSTANCE.unRegisterWakeCmd(V2XVoiceConstants.COMMAND_ZHIDAO_V2X_CANCEL_HELP); - - if (V2XServiceManager.getMoGoV2XStatusManager().isOtherSeekHelpPOIShow()) { - // 移除线 - V2XServiceManager.getMoGoV2XPolylineManager().clearLine(); - // 移除事件POI - V2XServiceManager.getMoGoV2XMarkerManager().clearSpecialCarPOI(); - // 绘制上次的数据 - V2XServiceManager.getMoGoV2XMarkerManager().drawableLastAllPOI(); - } - - } - - @Override - public View getView() { - return this; - } - - @Override - public void setWindowStatusListener(V2XWindowStatusListener listener) { - - } -} diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/help/V2XSeekHelpButton.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/help/V2XSeekHelpButton.java index 7f8854db08..ac18174fed 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/help/V2XSeekHelpButton.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/help/V2XSeekHelpButton.java @@ -1,7 +1,9 @@ package com.mogo.module.v2x.scenario.scene.help; import android.content.Intent; +import android.view.LayoutInflater; import android.view.View; +import android.view.ViewGroup; import android.widget.TextView; import com.mogo.commons.data.BaseData; @@ -35,6 +37,8 @@ public class V2XSeekHelpButton implements IV2XButton { private V2XVoiceCallbackListener cancelCb = (String command, Intent intent) -> { doAction(); }; + private View topView; + private void doAction() { if (mListener != null) { @@ -53,31 +57,57 @@ public class V2XSeekHelpButton implements IV2XButton { try { tv = V2XServiceManager.getMogoEntranceButtonController().getButton(ButtonIndex.BUTTON2); tv.setText("取消\n求助"); - tv.setVisibility(View.VISIBLE); tv.setOnClickListener(v -> { //调用取消求助接口 // TODO: 2020/5/18 回调,显示对话框 doAction(); }); + + if (V2XServiceManager.getMoGoStatusManager().isVrMode()) { + showTopView(); + tv.setVisibility(View.GONE); + } else { + closeTopView(); + tv.setVisibility(View.VISIBLE); + } + } catch (Exception e) { e.printStackTrace(); } } + public void showTopView() { + topView = View.inflate(V2XServiceManager.getContext(), R.layout.window_carforhelp_detail, null); + TextView tvCancel = topView.findViewById(R.id.tv_cancel); + tvCancel.setOnClickListener(v -> { + doAction(); + }); + ViewGroup.LayoutParams layoutParams = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, + (int) V2XUtils.getApp().getResources().getDimension(R.dimen.dp_140)); + V2XServiceManager.getMogoTopViewManager().addView(topView, layoutParams); + } + + public void closeTopView() { + V2XServiceManager.getMogoTopViewManager().removeView(topView); + } + @Override public void close() { if (tv != null) { AIAssist.getInstance(V2XUtils.getApp()).speakTTSVoice("已取消", null); tv.setVisibility(View.GONE); + closeTopView(); V2XServiceManager.getV2XRefreshModel().cancelHelpSignal(new V2XRefreshCallback() { @Override public void onSuccess(BaseData result) { tv.setVisibility(View.GONE); + closeTopView(); } @Override public void onFail(String msg) { tv.setVisibility(View.VISIBLE); + showTopView(); } }); mListener = null; diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/livecar/V2XPushLiveCarScenario.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/livecar/V2XPushLiveCarScenario.java index 812f088cdd..2753c14411 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/livecar/V2XPushLiveCarScenario.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/livecar/V2XPushLiveCarScenario.java @@ -20,7 +20,7 @@ import com.mogo.utils.TipToast; * author : donghongyu * e-mail : 1358506549@qq.com * date : 2020/5/15 5:37 PM - * desc : TODO 演示使用的推送单车机直播场景 + * desc : TODO 推送直播场景 非演示 * version: 1.0 */ public class V2XPushLiveCarScenario extends AbsV2XScenario implements IMogoTopViewStatusListener { @@ -44,11 +44,9 @@ public class V2XPushLiveCarScenario extends AbsV2XScenario show(); } else { TipToast.shortTip("附近没有可直播车机"); - //Logger.e(V2XConst.MODULE_NAME, "直播地址为null"); } } else { setV2XMessageEntity(v2XMessageEntity); - //Logger.w(V2XConst.MODULE_NAME, "要处理的场景已经存在,丢弃这次初始化"); } } @@ -65,9 +63,15 @@ public class V2XPushLiveCarScenario extends AbsV2XScenario int height = (int) V2XUtils.getApp().getResources().getDimension(V2XServiceManager.getMoGoStatusManager().isVrMode() ? R.dimen.module_v2x_event_see_live_window_height_vr : R.dimen.module_v2x_event_see_live_window_height); ViewGroup.LayoutParams layoutParams = new ViewGroup.LayoutParams(width, height); - V2XServiceManager - .getMogoTopViewManager() - .addViewNoLinkage(getV2XWindow().getView(), layoutParams, this); + if (V2XServiceManager.getMoGoStatusManager().isVrMode()) { + V2XServiceManager + .getMogoTopViewManager() + .addViewNoLinkage(getV2XWindow().getView(), layoutParams, this); + } else { + V2XServiceManager + .getMogoTopViewManager() + .addView(getV2XWindow().getView(), layoutParams, this); + } getV2XWindow().show(getV2XMessageEntity().getContent()); V2XServiceManager.getMoGoV2XStatusManager().setLiveCarWindowShow(TAG, true); } @@ -111,23 +115,19 @@ public class V2XPushLiveCarScenario extends AbsV2XScenario @Override public void onViewAdded(View view) { - //Logger.d(MODULE_NAME, "展示 Window 动画结束"); ADASUtils.broadcastToADAS(V2XServiceManager.getContext(), getV2XMessageEntity().getContent()); } @Override public void onViewRemoved(View view) { - //Logger.d(MODULE_NAME, "关闭 Window 动画结束"); } @Override public void beforeViewAddAnim(View view) { - //Logger.d(MODULE_NAME, "展示 Window 开始"); } @Override public void beforeViewRemoveAnim(View view) { - //Logger.d(MODULE_NAME, "关闭 Window 开始"); // 重置场景提示的消息 setV2XMessageEntity(null); V2XServiceManager.getMoGoV2XStatusManager().setLiveCarWindowShow(TAG, false); diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/livecar/V2XPushLiveCarWindow.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/livecar/V2XPushLiveCarWindow.java index 5c1675c924..2b07ee047e 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/livecar/V2XPushLiveCarWindow.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/livecar/V2XPushLiveCarWindow.java @@ -6,6 +6,7 @@ import android.text.TextUtils; import android.util.AttributeSet; import android.view.LayoutInflater; import android.view.View; +import android.view.ViewGroup; import android.widget.ImageView; import android.widget.RelativeLayout; @@ -19,7 +20,6 @@ import com.mogo.module.v2x.scenario.view.IV2XWindow; import com.mogo.module.v2x.utils.MarkerUtils; import com.mogo.module.v2x.view.V2XLiveGSYVideoView; import com.mogo.service.imageloader.MogoImageView; -import com.mogo.utils.logger.Logger; import static com.mogo.module.v2x.V2XConst.MODULE_NAME; @@ -27,20 +27,18 @@ import static com.mogo.module.v2x.V2XConst.MODULE_NAME; * author : donghongyu * e-mail : 1358506549@qq.com * date : 2020/4/24 11:34 AM - * desc : TODO 演示使用的推送单车机直播场景 * version: 1.0 */ public class V2XPushLiveCarWindow extends V2XBasWindow implements IV2XWindow { - private Context mContext; private V2XLiveGSYVideoView mV2XLiveGSYVideoView; private MogoImageView mIvReportHead; - private ImageView pushVideoClose; + // 弹窗状态监听 private V2XWindowStatusListener mV2XWindowStatusListener; // 直播30秒自动关闭 - private static Handler handlerV2XEvent = new Handler(); + private static final Handler handlerV2XEvent = new Handler(); private static Runnable runnableV2XEvent; public V2XPushLiveCarWindow() { @@ -57,17 +55,18 @@ public class V2XPushLiveCarWindow extends V2XBasWindow implements IV2XWindow { //移除窗体 V2XServiceManager @@ -114,7 +113,7 @@ public class V2XPushLiveCarWindow extends V2XBasWindow implements IV2XWindow { @@ -106,8 +106,7 @@ public class V2XVoiceCallLiveBiz { LiveStreamManagerImpl.getInstance(AbsMogoApplication.getApp(), MoGoAiCloudClientConfig.getInstance().getThirdPartyDeviceId()); V2XMessageEntity v2XMessageEntity = buildCallLiveParams(null, null); - mV2XVoiceCallLiveScenario = new V2XVoiceCallLiveScenario(); - mV2XVoiceCallLiveScenario.setV2XWindow(new V2XVoiceCallLiveCarWindow()); + V2XVoiceCallLiveScenario mV2XVoiceCallLiveScenario = new V2XVoiceCallLiveScenario(); mV2XVoiceCallLiveScenario.init(v2XMessageEntity); } @@ -121,17 +120,18 @@ public class V2XVoiceCallLiveBiz { public void liveUrlResult(String liveUrl) { if (!TextUtils.isEmpty(liveUrl)) { V2XMessageEntity v2XMessageEntity = buildCallLiveParams(null, liveUrl); - mV2XVoiceCallLiveScenario = new V2XVoiceCallLiveScenario(); - mV2XVoiceCallLiveScenario.setV2XWindow(new V2XVoiceCrossRoadLiveWindow()); - mV2XVoiceCallLiveScenario.init(v2XMessageEntity); + V2XPushLiveCarScenario pushLiveCarScenario = new V2XPushLiveCarScenario(); + pushLiveCarScenario.init(v2XMessageEntity); } else { Logger.d(MODULE_NAME, "getOpenRoadCameraLive 路口实况直播地址为空"); + ToastUtils.showShort(R.string.v2x_front_live_url_null); } } @Override public void onError(String errorMsg) { Logger.d(MODULE_NAME, "getOpenRoadCameraLive : " + errorMsg); + ToastUtils.showShort(R.string.v2x_front_live_url_null); } }); } @@ -148,6 +148,7 @@ public class V2XVoiceCallLiveBiz { v2XPushMessageEntity.setVideoSn(sn); v2XPushMessageEntity.setVideoUrl(liveUrl); v2XPushMessageEntity.setShowWindow(true); + v2XPushMessageEntity.setExpireTime(1000 * 30); V2XMessageEntity v2XMessageEntity = new V2XMessageEntity<>(); v2XMessageEntity.setType(V2XMessageEntity.V2XTypeEnum.ALERT_VOICE_CALL_FOR_LIVECAR_SHOW); v2XMessageEntity.setContent(v2XPushMessageEntity); diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/livecar/V2XVoiceCallLiveCarWindow.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/livecar/V2XVoiceCallLiveCarWindow.java index c836ca0c47..ec954655bd 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/livecar/V2XVoiceCallLiveCarWindow.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/livecar/V2XVoiceCallLiveCarWindow.java @@ -4,7 +4,6 @@ import android.content.Context; import android.os.Handler; import android.util.AttributeSet; import android.view.LayoutInflater; -import android.view.SurfaceView; import android.view.View; import android.widget.ImageView; import android.widget.TextView; @@ -24,7 +23,10 @@ import static com.mogo.module.v2x.V2XConst.MODULE_NAME; public class V2XVoiceCallLiveCarWindow extends V2XBasWindow implements IV2XWindow { - private CarZegoLiveVideoView mV2XCarLiveVideoView; + private static final int COUNT_DOWN_TIMER = 1_000; + private static final int ALL_EXPIRE_TIMER = 1_000 * 30; + private static int EXPIRE_TIMER = ALL_EXPIRE_TIMER; + private TextView tvCountDown; private ImageView ivVideoPlayingSign; private boolean isVideoPlay = false; @@ -32,13 +34,9 @@ public class V2XVoiceCallLiveCarWindow extends V2XBasWindow // 处理道路事件,30秒倒计时 private final Handler handlerV2XEvent = new Handler(); private Runnable runnableV2XEvent; - private static final int COUNT_DOWN_TIMER = 1_000; - private static final int ALL_EXPIRE_TIMER = 1_000 * 30; - private static int EXPIRE_TIMER = ALL_EXPIRE_TIMER; public V2XVoiceCallLiveCarWindow() { this(V2XServiceManager.getContext(), null); - Logger.d(MODULE_NAME, "V2XVoiceCallLiveCarWindow INIT"); } public V2XVoiceCallLiveCarWindow(Context context, AttributeSet attrs) { @@ -52,8 +50,10 @@ public class V2XVoiceCallLiveCarWindow extends V2XBasWindow private void initView(Context context) { Logger.w(MODULE_NAME, "V2X===初始化语音呼叫直播视图"); - LayoutInflater.from(context).inflate(R.layout.window_see_carlive_video, this); - mV2XCarLiveVideoView = findViewById(R.id.videoPlayer); + LayoutInflater.from(context).inflate(V2XServiceManager.getMoGoStatusManager().isVrMode() + ? R.layout.window_see_carlive_video_vr + : R.layout.window_see_carlive_video, this); + CarZegoLiveVideoView mV2XCarLiveVideoView = findViewById(R.id.videoPlayer); tvCountDown = findViewById(R.id.tvCountDown); ivVideoPlayingSign = findViewById(R.id.ivVideoPlayingSign); mV2XCarLiveVideoView.addOnVideoStatusChangeListener(videoPlaying -> { @@ -86,13 +86,10 @@ public class V2XVoiceCallLiveCarWindow extends V2XBasWindow public void close() { // 停止倒计时 stopCountDown(); - if (V2XServiceManager - .getMogoTopViewManager().isViewAdded(this)) { - //移除窗体 - V2XServiceManager - .getMogoTopViewManager() - .removeView(this); - } + //移除窗体 + V2XServiceManager + .getMogoTopViewManager() + .removeView(this); } @Override @@ -113,7 +110,6 @@ public class V2XVoiceCallLiveCarWindow extends V2XBasWindow if (runnableV2XEvent == null) { runnableV2XEvent = () -> { EXPIRE_TIMER = EXPIRE_TIMER - COUNT_DOWN_TIMER; - Logger.d(MODULE_NAME, "V2X=== Window 30秒倒计时开始,当前 :" + EXPIRE_TIMER / COUNT_DOWN_TIMER + " 秒"); tvCountDown.setVisibility(View.VISIBLE); ivVideoPlayingSign.setVisibility(View.VISIBLE); tvCountDown.setText(String.valueOf(EXPIRE_TIMER / COUNT_DOWN_TIMER)); @@ -126,12 +122,10 @@ public class V2XVoiceCallLiveCarWindow extends V2XBasWindow } else { handlerV2XEvent.removeCallbacks(runnableV2XEvent); } - Logger.d(MODULE_NAME, "V2X=== Window 展示开始倒计时"); handlerV2XEvent.postDelayed(runnableV2XEvent, COUNT_DOWN_TIMER); } private void stopCountDown() { - Logger.d(MODULE_NAME, "V2X=== Window 倒计时停止。。。"); if (handlerV2XEvent != null && runnableV2XEvent != null) { handlerV2XEvent.removeCallbacks(runnableV2XEvent); runnableV2XEvent = null; diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/livecar/V2XVoiceCallLiveScenario.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/livecar/V2XVoiceCallLiveScenario.java index a802d93962..1b7c047ccd 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/livecar/V2XVoiceCallLiveScenario.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/livecar/V2XVoiceCallLiveScenario.java @@ -1,7 +1,7 @@ package com.mogo.module.v2x.scenario.scene.livecar; import android.view.View; -import android.widget.RelativeLayout; +import android.view.ViewGroup; import androidx.annotation.Nullable; @@ -20,27 +20,26 @@ import static com.mogo.module.v2x.V2XConst.MODULE_NAME; /** * author : unknown - * desc : 语音呼叫查看直播场景,包括车辆直播 或者 路口实况 window,区分不同页面window逻辑实现 + * desc : 语音呼叫查看直播场景,包括车辆直播 或者 路口实况 window,区分不同页面window逻辑实现,前方直播车辆由AICloudSdk中实现,上层仅传入SurfaceView和经纬度 */ public class V2XVoiceCallLiveScenario extends AbsV2XScenario implements IMogoTopViewStatusListener { + public V2XVoiceCallLiveScenario() { + setV2XWindow(new V2XVoiceCallLiveCarWindow()); + } + @Override public void init(@Nullable V2XMessageEntity v2XMessageEntity) { if (v2XMessageEntity == null) { TipToast.shortTip("附近没有可直播车机"); + return; } if (v2XMessageEntity.isShowState()) { if (!isSameScenario(v2XMessageEntity) && V2XServiceManager.getMoGoStatusManager().isMainPageLaunched()) { setV2XMessageEntity(v2XMessageEntity); - Logger.d(V2XConst.MODULE_NAME, "v2XMessageEntity : " + v2XMessageEntity + " getVideoSn : " + v2XMessageEntity.getContent().getVideoSn()); - if (v2XMessageEntity != null) { - Logger.d(V2XConst.MODULE_NAME, "准备展示直播窗口"); - show(); - } else { - TipToast.shortTip("附近没有可直播车机"); - Logger.e(V2XConst.MODULE_NAME, "直播地址为null"); - } + Logger.d(V2XConst.MODULE_NAME, "v2XMessageEntity : " + v2XMessageEntity); + show(); } else { setV2XMessageEntity(v2XMessageEntity); Logger.w(V2XConst.MODULE_NAME, "要处理的场景已经存在,丢弃这次初始化"); @@ -64,11 +63,7 @@ public class V2XVoiceCallLiveScenario extends AbsV2XScenario { + V2XMessageEntity v2XMessageEntity = + TestOnLineCarUtils.getV2XScenarioPushFrontWarningEventData(); + + Intent intent = new Intent(V2XConst.BROADCAST_SCENE_HANDLER_ACTION); + intent.putExtra(V2XConst.BROADCAST_SCENE_EXTRA_KEY, v2XMessageEntity); + LocalBroadcastManager.getInstance(getContext()).sendBroadcast(intent); + }); + mBtnTriggerPushEvent.setOnClickListener(v -> { V2XMessageEntity v2XMessageEntity = TestOnLineCarUtils.getV2XScenarioPushEventData(); diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/warning/V2XWarningMarker.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/warning/V2XWarningMarker.java index d7566943a1..2b44bef806 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/warning/V2XWarningMarker.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/warning/V2XWarningMarker.java @@ -8,21 +8,31 @@ import com.mogo.map.MogoLatLng; import com.mogo.map.marker.IMogoMarker; import com.mogo.map.marker.MogoMarkerOptions; import com.mogo.module.common.MogoApisHandler; +import com.mogo.module.common.drawer.MarkerDrawer; +import com.mogo.module.common.drawer.marker.EmptyMarkerView; import com.mogo.module.common.drawer.marker.IMarkerView; import com.mogo.module.common.drawer.marker.MapMarkerAdapter; +import com.mogo.module.common.drawer.marker.SimpleWindow3DAdapter; import com.mogo.module.common.entity.MarkerLocation; import com.mogo.module.common.entity.MarkerShowEntity; import com.mogo.module.common.entity.V2XWarningEntity; +import com.mogo.module.v2x.R; import com.mogo.module.v2x.V2XConst; import com.mogo.module.v2x.V2XServiceManager; import com.mogo.module.v2x.entity.model.DrawLineInfo; +import com.mogo.module.v2x.marker.OptimalSpeedMarkerView; +import com.mogo.module.v2x.marker.V2XFrontTargetMarkerView; import com.mogo.module.v2x.scenario.view.IV2XMarker; import com.mogo.module.v2x.utils.LocationUtils; +import com.mogo.utils.ViewUtils; import com.mogo.utils.WorkThreadHandler; import java.util.ArrayList; import java.util.List; +import static com.mogo.module.v2x.V2XConst.V2X_FRONT_WARNING_MARKER; +import static com.mogo.module.v2x.V2XConst.V2X_OPTIMAL_SPEED_MARKER; + /** * @author liujing * @description 前方预警marker打点 绘制安全线和预警线 @@ -33,7 +43,7 @@ public class V2XWarningMarker implements IV2XMarker { private V2XWarningEntity mMarkerEntity; private MarkerShowEntity markerShowEntity = new MarkerShowEntity(); private Context mContext = V2XServiceManager.getContext(); - private List fillPoints = new ArrayList();//停止线经纬度合集 + private IMogoMarker optimalMarker = null; @Override public void drawPOI(Object entity) { @@ -45,16 +55,19 @@ public class V2XWarningMarker implements IV2XMarker { markerShowEntity.setMarkerLocation(location); + MogoMarkerOptions optionsRipple = new MogoMarkerOptions() + .latitude(mMarkerEntity.getLat()) + .longitude(mMarkerEntity.getLon()) + .anchor(0.5f, 0.5f) + .zIndex(MarkerDrawer.MARKER_Z_INDEX_HIGH); + if (MogoApisHandler.getInstance().getApis().getStatusManagerApi().isVrMode()) { - pointsBetween(); - //绘制停止线 -// drawStopLines(fillPoints); - drawSafeLine(); - WorkThreadHandler.getInstance().postDelayed(() -> { - V2XServiceManager.getMarkerManager().removeMarkers(V2XConst.V2X_FRONT_STOP_LINE); - V2XServiceManager.getMoGoWarnPolylineManager().clearLine(); - }, 6_000); } + optionsRipple + .icon(ViewUtils.fromView(new EmptyMarkerView(V2XServiceManager.getContext()))); + optimalMarker = V2XServiceManager.getMarkerManager().addMarker(V2X_FRONT_WARNING_MARKER, optionsRipple); + optimalMarker.setInfoWindowAdapter(new SimpleWindow3DAdapter(new V2XFrontTargetMarkerView(V2XServiceManager.getContext()))); + optimalMarker.showInfoWindow(); } catch (Exception e) { @@ -62,61 +75,6 @@ public class V2XWarningMarker implements IV2XMarker { } - //绘制安全距离 - private void drawSafeLine() { - clearPOI(); - WorkThreadHandler.getInstance().postDelayed(() -> { - //自车位置 - MogoLatLng car = V2XServiceManager.getNavi().getCarLocation(); - if (car != null) { - //根据到停止线的距离和方向角获取经纬度 - MogoLatLng - stopLineLo = LocationUtils.getNewLocation(car, mMarkerEntity.getStopLineDistance(), mMarkerEntity.getAngle()); -// if (mMarkerEntity.getCollisionLat() > 0 && mMarkerEntity.getCollisionLon() > 0) { -// drawLine(car, stopLineLo); -// } - } else { - Log.d(TAG, "自车位置没有拿到"); - } - }, 0); - } - - //补点后的停止线经纬度合集 - public void pointsBetween() { - try { - fillPoints.clear(); - List stopLines = mMarkerEntity.getStopLines(); - if (stopLines.size() > 1) { - MogoLatLng x = mMarkerEntity.getStopLines().get(0); - MogoLatLng y = mMarkerEntity.getStopLines().get(1); - //两点间的距离 - float distance = CoordinateUtils.calculateLineDistance(x.lon, x.lat, y.lon, y.lat); - float average = distance / 3; - //两点间的角度 - double angle = LocationUtils.getAngle(x.lon, x.lat, y.lon, y.lat); - //根据距离和角度获取下个点的经纬度 - fillPoints.add(x); - for (int i = 1; i < 3; i++) { - MogoLatLng newLocation = LocationUtils.getNewLocation(x, average * i, angle); - fillPoints.add(newLocation); - } - fillPoints.add(y); - } - } catch (Exception e) { - e.printStackTrace(); - } - - } - - //绘制停止线-通过打点的方式实现 - private void drawStopLines(List points) { - clearPOI(); - V2XServiceManager.getMarkerManager().removeMarkers(V2XConst.V2X_FRONT_STOP_LINE); - for (int i = 0; i < points.size(); i++) { - MogoLatLng latLng = (MogoLatLng) points.get(i); - drawMarkerWithLocation(latLng, V2XConst.V2X_FRONT_STOP_LINE); - } - } private void drawMarkerWithLocation(MogoLatLng latLng, String tag) { MogoMarkerOptions options = new MogoMarkerOptions() @@ -132,47 +90,10 @@ public class V2XWarningMarker implements IV2XMarker { marker.setToTop(); } - //绘制并返回marker - public IMogoMarker drawMarkerAndReturn(MarkerShowEntity markerShowEntity) { - MogoMarkerOptions options = new MogoMarkerOptions() - .object(markerShowEntity) - .latitude(markerShowEntity.getMarkerLocation().getLat()) - .longitude(markerShowEntity.getMarkerLocation().getLon()); - IMarkerView iMarkerView = MapMarkerAdapter.getMarkerView(mContext, markerShowEntity, options); - options.icon3DRes(com.mogo.module.service.R.raw.people); - options.anchorColor("#FF4040"); - IMogoMarker marker = V2XServiceManager.getMarkerManager().addMarker(V2XConst.V2X_FRONT_WARNING_MARKER, options); - iMarkerView.setMarker(marker); - marker.setToTop(); - return marker; - } - - //绘制线 - public void drawLine(MogoLatLng s, MogoLatLng e) { - DrawLineInfo drawLineInfo = new DrawLineInfo(); - drawLineInfo.setStartLocation(s); - drawLineInfo.setEndLocation(e); - drawLineInfo.setWidth(60); - V2XServiceManager.getMoGoWarnPolylineManager().drawWarnPolyline(mContext, drawLineInfo); - } - - //平移 - public void smooth(IMogoMarker marker) { - List latLngs = new ArrayList<>(); - MogoLatLng sLocation = new MogoLatLng(mMarkerEntity.getLat(), mMarkerEntity.getLon()); - MogoLatLng endLocation = new MogoLatLng(mMarkerEntity.getCollisionLat(), mMarkerEntity.getCollisionLon()); - latLngs.add(sLocation); - latLngs.add(endLocation); - marker.startSmoothInMs(latLngs, 3000); - - WorkThreadHandler.getInstance().postDelayed(() -> { - clearLine(); - }, 3_000); - } @Override public void clearPOI() { - V2XServiceManager.getMarkerManager().removeMarkers(V2XConst.V2X_FRONT_WARNING_MARKER); + V2XServiceManager.getMarkerManager().removeMarkers(V2X_FRONT_WARNING_MARKER); } public void clearLine() { diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/view/CarZegoLiveVideoView.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/view/CarZegoLiveVideoView.java index b29196ae28..63280da45a 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/view/CarZegoLiveVideoView.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/view/CarZegoLiveVideoView.java @@ -13,8 +13,6 @@ import android.widget.TextView; import androidx.constraintlayout.widget.ConstraintLayout; import androidx.core.content.ContextCompat; -import com.mogo.cloud.live.manager.LiveStreamManagerImpl; -import com.mogo.cloud.passport.MoGoAiCloudClientConfig; import com.mogo.cloud.trafficlive.api.ITrafficCarLiveCallBack; import com.mogo.cloud.trafficlive.api.MoGoAiCloudTrafficLive; import com.mogo.commons.AbsMogoApplication; @@ -38,7 +36,6 @@ public class CarZegoLiveVideoView extends RoundLayout { private SurfaceView mSurfaceView; private ProgressBar mLoading; private ConstraintLayout mClLoadError; - private TextView mTvRefreshButton; private String liveSn; // 重新刷新直播流 @@ -73,7 +70,7 @@ public class CarZegoLiveVideoView extends RoundLayout { mLoading.getIndeterminateDrawable().setColorFilter(ContextCompat.getColor(context, R.color.live_video_progress_bar_loading_color), PorterDuff.Mode.MULTIPLY); mClLoadError = findViewById(R.id.clLoadError); - mTvRefreshButton = findViewById(R.id.tvRefreshButton); + TextView mTvRefreshButton = findViewById(R.id.tvRefreshButton); mTvRefreshButton.setOnClickListener(v -> { mLoading.setVisibility(VISIBLE); mClLoadError.setVisibility(GONE); diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/view/V2XCrossRoadVideoView.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/view/V2XCrossRoadVideoView.java index ecd7605263..0a6fef8f20 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/view/V2XCrossRoadVideoView.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/view/V2XCrossRoadVideoView.java @@ -57,7 +57,6 @@ public class V2XCrossRoadVideoView extends RoundLayout { private final GSYVideoOptionBuilder gsyVideoOptionBuilder = new GSYVideoOptionBuilder(); private ProgressBar mLoading; private ConstraintLayout mClLoadError; - private TextView mTvRefreshButton; private boolean init = false; private MarkerCarInfo.CarLiveInfo mCarLiveInfo; @@ -83,6 +82,7 @@ public class V2XCrossRoadVideoView extends RoundLayout { public V2XCrossRoadVideoView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); + Logger.d(TAG, "constructor invoke initView"); initView(context); } @@ -101,7 +101,7 @@ public class V2XCrossRoadVideoView extends RoundLayout { mLoading.getIndeterminateDrawable().setColorFilter(ContextCompat.getColor(context, R.color.live_video_progress_bar_loading_color), PorterDuff.Mode.MULTIPLY); mClLoadError = findViewById(R.id.clLoadError); - mTvRefreshButton = findViewById(R.id.tvRefreshButton); + TextView mTvRefreshButton = findViewById(R.id.tvRefreshButton); mTvRefreshButton.setOnClickListener(v -> { mLoading.setVisibility(VISIBLE); mClLoadError.setVisibility(GONE); @@ -152,7 +152,6 @@ public class V2XCrossRoadVideoView extends RoundLayout { * @param carLiveInfo 要直播的设备信息,如果没有直播的地址需要重新获取最新的直播地址 */ public void startLive(MarkerCarInfo.CarLiveInfo carLiveInfo) { - initView(this.getContext()); // 进行直播播放 if (mTxcVideoView != null && carLiveInfo != null) { diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/view/V2XLiveGSYVideoView.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/view/V2XLiveGSYVideoView.java index 205b9d43d5..10d9618c44 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/view/V2XLiveGSYVideoView.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/view/V2XLiveGSYVideoView.java @@ -7,7 +7,6 @@ import android.os.Bundle; import android.text.TextUtils; import android.util.AttributeSet; import android.view.LayoutInflater; -import android.view.View; import android.widget.ProgressBar; import android.widget.TextView; @@ -18,8 +17,6 @@ import com.mogo.commons.voice.AIAssist; import com.mogo.module.common.entity.MarkerCarInfo; import com.mogo.module.v2x.R; import com.mogo.module.v2x.V2XServiceManager; -import com.mogo.module.v2x.entity.net.V2XLivePushVoRes; -import com.mogo.module.v2x.network.V2XRefreshCallback; import com.mogo.module.v2x.utils.V2XUtils; import com.mogo.module.v2x.voice.V2XVoiceCallbackListener; import com.mogo.module.v2x.voice.V2XVoiceConstants; @@ -50,16 +47,14 @@ public class V2XLiveGSYVideoView extends RoundLayout implements IMogoSkinCompatS private ProgressBar mLoading; private TXLivePlayer mLivePlayer; private ConstraintLayout mClLoadError; - private TextView mTvRefreshButton; - private MogoSkinCompatBackgroundHelperDelegate mBackgroundTintHelper; + private final MogoSkinCompatBackgroundHelperDelegate mBackgroundTintHelper; private MarkerCarInfo.CarLiveInfo mCarLiveInfo; // 重新刷新直播流 - private V2XVoiceCallbackListener v2XVoiceCallbackRefreshListener = new V2XVoiceCallbackListener() { + private final V2XVoiceCallbackListener v2XVoiceCallbackRefreshListener = new V2XVoiceCallbackListener() { @Override public void onCallback(String command, Intent intent) { - //startHeartLive(mCarLiveInfo); mLoading.setVisibility(VISIBLE); mClLoadError.setVisibility(GONE); if (mCarLiveInfo != null) { @@ -87,7 +82,7 @@ public class V2XLiveGSYVideoView extends RoundLayout implements IMogoSkinCompatS private void initView(Context context) { LayoutInflater.from(context) .inflate(R.layout.view_video_layout_normal, this); - //mPlayerView 即 step1 中添加的界面 view + //mPlayerView 即 step1 中添加的界面 view mTxcVideoView = findViewById(R.id.txcVideoView); //创建 player 对象 mLivePlayer = new TXLivePlayer(context); @@ -106,15 +101,12 @@ public class V2XLiveGSYVideoView extends RoundLayout implements IMogoSkinCompatS mLoading.getIndeterminateDrawable().setColorFilter(ContextCompat.getColor(context, R.color.live_video_progress_bar_loading_color), PorterDuff.Mode.MULTIPLY); mClLoadError = findViewById(R.id.clLoadError); - mTvRefreshButton = findViewById(R.id.tvRefreshButton); - mTvRefreshButton.setOnClickListener(new OnClickListener() { - @Override - public void onClick(View v) { - mLoading.setVisibility(VISIBLE); - mClLoadError.setVisibility(GONE); - if (mCarLiveInfo != null) { - startLive(mCarLiveInfo); - } + TextView mTvRefreshButton = findViewById(R.id.tvRefreshButton); + mTvRefreshButton.setOnClickListener(v -> { + mLoading.setVisibility(VISIBLE); + mClLoadError.setVisibility(GONE); + if (mCarLiveInfo != null) { + startLive(mCarLiveInfo); } }); } @@ -141,33 +133,33 @@ public class V2XLiveGSYVideoView extends RoundLayout implements IMogoSkinCompatS } // 根据SN重新获取直播流地址 else { - V2XServiceManager - .getV2XRefreshModel() - .livePush(new V2XRefreshCallback() { - @Override - public void onSuccess(V2XLivePushVoRes result) { - Logger.e(MODULE_NAME, "从服务端获取最新直播信息:" + GsonUtil.jsonFromObject(result)); - mClLoadError.setVisibility(GONE); - mClLoadError.setVisibility(GONE); - try { - MarkerCarInfo.CarLiveInfo carRealLiveInfo = new MarkerCarInfo.CarLiveInfo(); - carRealLiveInfo.setVideoUrl(result.getResult().getPlayUrl().getRtmp()); - carRealLiveInfo.setVideoSn(carLiveInfo.getVideoSn()); - carRealLiveInfo.setVideoChannel(result.getResult().getVideoChannel()); - setCarLiveInfo(carLiveInfo); - playLiveVideo(carRealLiveInfo); - } catch (Exception e) { - e.printStackTrace(); - } - } - - @Override - public void onFail(String msg) { - Logger.e(MODULE_NAME, "播放器:" + msg); - mLoading.setVisibility(GONE); - mClLoadError.setVisibility(VISIBLE); - } - }, carLiveInfo.getVideoSn(), 0); +// V2XServiceManager +// .getV2XRefreshModel() +// .livePush(new V2XRefreshCallback() { +// @Override +// public void onSuccess(V2XLivePushVoRes result) { +// Logger.e(MODULE_NAME, "从服务端获取最新直播信息:" + GsonUtil.jsonFromObject(result)); +// mClLoadError.setVisibility(GONE); +// mClLoadError.setVisibility(GONE); +// try { +// MarkerCarInfo.CarLiveInfo carRealLiveInfo = new MarkerCarInfo.CarLiveInfo(); +// carRealLiveInfo.setVideoUrl(result.getResult().getPlayUrl().getRtmp()); +// carRealLiveInfo.setVideoSn(carLiveInfo.getVideoSn()); +// carRealLiveInfo.setVideoChannel(result.getResult().getVideoChannel()); +// setCarLiveInfo(carLiveInfo); +// playLiveVideo(carRealLiveInfo); +// } catch (Exception e) { +// e.printStackTrace(); +// } +// } +// +// @Override +// public void onFail(String msg) { +// Logger.e(MODULE_NAME, "播放器:" + msg); +// mLoading.setVisibility(GONE); +// mClLoadError.setVisibility(VISIBLE); +// } +// }, carLiveInfo.getVideoSn(), 0); } } } @@ -223,7 +215,7 @@ public class V2XLiveGSYVideoView extends RoundLayout implements IMogoSkinCompatS /** * 刷新直播心跳 * - * @param carLiveInfo + * @param carLiveInfo 直播info */ private void startHeartLive(MarkerCarInfo.CarLiveInfo carLiveInfo) { try { @@ -248,20 +240,25 @@ public class V2XLiveGSYVideoView extends RoundLayout implements IMogoSkinCompatS // true 代表清除最后一帧画面 mLivePlayer.stopPlay(true); mTxcVideoView.onDestroy(); - // 停止推流 - V2XServiceManager - .getV2XRefreshModel() - .livePush(new V2XRefreshCallback() { - @Override - public void onSuccess(V2XLivePushVoRes result) { - Logger.d(MODULE_NAME, "播放器:" + result); - } - @Override - public void onFail(String msg) { - Logger.e(MODULE_NAME, "播放器:" + msg); - } - }, carLiveInfo.getVideoSn(), 1); +// if (carLiveInfo.getVideoUrl() != null) { +// return; +// } + + // 停止推流 +// V2XServiceManager +// .getV2XRefreshModel() +// .livePush(new V2XRefreshCallback() { +// @Override +// public void onSuccess(V2XLivePushVoRes result) { +// Logger.d(MODULE_NAME, "播放器:" + result); +// } +// +// @Override +// public void onFail(String msg) { +// Logger.e(MODULE_NAME, "播放器:" + msg); +// } +// }, carLiveInfo.getVideoSn(), 1); } catch (Exception e) { e.printStackTrace(); } diff --git a/modules/mogo-module-v2x/src/main/res/drawable-xhdpi/v2x_stop_line.png b/modules/mogo-module-v2x/src/main/res/drawable-xhdpi/v2x_stop_line.png new file mode 100644 index 0000000000..2bda783ed5 Binary files /dev/null and b/modules/mogo-module-v2x/src/main/res/drawable-xhdpi/v2x_stop_line.png differ diff --git a/modules/mogo-module-v2x/src/main/res/drawable-xhdpi/v2x_warning_marker_target.png b/modules/mogo-module-v2x/src/main/res/drawable-xhdpi/v2x_warning_marker_target.png new file mode 100644 index 0000000000..be6da047d0 Binary files /dev/null and b/modules/mogo-module-v2x/src/main/res/drawable-xhdpi/v2x_warning_marker_target.png differ diff --git a/modules/mogo-module-v2x/src/main/res/layout/item_v2x_event_detail_vr.xml b/modules/mogo-module-v2x/src/main/res/layout/item_v2x_event_detail_vr.xml index ae2ab6d8bb..2d0db2ebb2 100644 --- a/modules/mogo-module-v2x/src/main/res/layout/item_v2x_event_detail_vr.xml +++ b/modules/mogo-module-v2x/src/main/res/layout/item_v2x_event_detail_vr.xml @@ -262,9 +262,10 @@ android:id="@+id/iv_play" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:paddingLeft="@dimen/dp_40" - android:visibility="gone" - android:src="@drawable/icon_play" /> + android:layout_marginTop="@dimen/dp_6" + android:paddingLeft="@dimen/dp_42" + android:src="@drawable/icon_play" + android:visibility="gone" /> diff --git a/modules/mogo-module-v2x/src/main/res/layout/item_v2x_live_video.xml b/modules/mogo-module-v2x/src/main/res/layout/item_v2x_live_video.xml index e170be569a..64f8db6ea4 100644 --- a/modules/mogo-module-v2x/src/main/res/layout/item_v2x_live_video.xml +++ b/modules/mogo-module-v2x/src/main/res/layout/item_v2x_live_video.xml @@ -10,7 +10,7 @@ \ No newline at end of file diff --git a/modules/mogo-module-v2x/src/main/res/layout/item_v2x_push_live_video_vr.xml b/modules/mogo-module-v2x/src/main/res/layout/item_v2x_push_live_video_vr.xml new file mode 100644 index 0000000000..b02a2d05fc --- /dev/null +++ b/modules/mogo-module-v2x/src/main/res/layout/item_v2x_push_live_video_vr.xml @@ -0,0 +1,23 @@ + + + + + + + \ No newline at end of file diff --git a/modules/mogo-module-v2x/src/main/res/layout/item_v2x_see_frontcar_live_video.xml b/modules/mogo-module-v2x/src/main/res/layout/item_v2x_see_frontcar_live_video.xml index 5296ed1c01..09a73bd6ff 100644 --- a/modules/mogo-module-v2x/src/main/res/layout/item_v2x_see_frontcar_live_video.xml +++ b/modules/mogo-module-v2x/src/main/res/layout/item_v2x_see_frontcar_live_video.xml @@ -1,13 +1,11 @@ + app:roundLayoutRadius="@dimen/dp_30"> + + + + + + + + + + + \ No newline at end of file diff --git a/modules/mogo-module-v2x/src/main/res/layout/v2x_front_target_info_view.xml b/modules/mogo-module-v2x/src/main/res/layout/v2x_front_target_info_view.xml new file mode 100644 index 0000000000..bfae7c37fb --- /dev/null +++ b/modules/mogo-module-v2x/src/main/res/layout/v2x_front_target_info_view.xml @@ -0,0 +1,20 @@ + + + + + + + + \ No newline at end of file diff --git a/modules/mogo-module-v2x/src/main/res/layout/view_video_layout_see_crossroad.xml b/modules/mogo-module-v2x/src/main/res/layout/view_video_layout_see_crossroad.xml index 9a5eda56df..73a2019ecc 100644 --- a/modules/mogo-module-v2x/src/main/res/layout/view_video_layout_see_crossroad.xml +++ b/modules/mogo-module-v2x/src/main/res/layout/view_video_layout_see_crossroad.xml @@ -1,5 +1,5 @@ - - - + diff --git a/modules/mogo-module-v2x/src/main/res/layout/view_video_layout_see_live.xml b/modules/mogo-module-v2x/src/main/res/layout/view_video_layout_see_live.xml index e25f343eb8..bd902cb049 100644 --- a/modules/mogo-module-v2x/src/main/res/layout/view_video_layout_see_live.xml +++ b/modules/mogo-module-v2x/src/main/res/layout/view_video_layout_see_live.xml @@ -4,8 +4,7 @@ xmlns:tools="http://schemas.android.com/tools" android:id="@+id/rlRoadEventList" android:layout_width="match_parent" - android:layout_height="@dimen/v2x_video_window_height_content" - android:layout_margin="@dimen/dp_15"> + android:layout_height="match_parent"> + + + + + \ No newline at end of file diff --git a/modules/mogo-module-v2x/src/main/res/layout/window_test_console.xml b/modules/mogo-module-v2x/src/main/res/layout/window_test_console.xml index 7c1583a11d..5c509e9eeb 100644 --- a/modules/mogo-module-v2x/src/main/res/layout/window_test_console.xml +++ b/modules/mogo-module-v2x/src/main/res/layout/window_test_console.xml @@ -237,6 +237,19 @@ android:textColor="#FFFFFF" android:textSize="@dimen/dp_22" android:textStyle="bold" /> +