diff --git a/libraries/tanlulib/src/main/java/com/zhidao/roadcondition/service/CarCorderController.kt b/libraries/tanlulib/src/main/java/com/zhidao/roadcondition/service/CarCorderController.kt
index faee34d0e5..ac1a0a8a49 100644
--- a/libraries/tanlulib/src/main/java/com/zhidao/roadcondition/service/CarCorderController.kt
+++ b/libraries/tanlulib/src/main/java/com/zhidao/roadcondition/service/CarCorderController.kt
@@ -499,6 +499,7 @@ object CarCorderController : TakePhotoCallback, TakeVideoCallback {
info.type = type //0为图片, 1为视频
info.fromType = fromType
info.mainInfoId = mainInfoId
+ info.infoType = 1
return info
}
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 99f926ae0a..7ac3c2d469 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
@@ -29,12 +29,12 @@ import java.util.Set;
import static java.lang.Math.PI;
public
-/**
- * @author congtaowang
- * @since 2020/10/30
- *
- * 描述
- */
+ /*
+ * @author congtaowang
+ * @since 2020/10/30
+ *
+ * 描述
+ */
class BaseDrawer {
/**
@@ -48,11 +48,11 @@ class BaseDrawer {
public void showSpeed() {
try {
- showSelfSpeed( context,
+ showSelfSpeed(context,
marker,
speed,
- MogoApisHandler.getInstance().getApis().getStatusManagerApi().isVrMode() );
- } catch ( Exception e ) {
+ MogoApisHandler.getInstance().getApis().getStatusManagerApi().isVrMode());
+ } catch (Exception e) {
e.printStackTrace();
}
}
@@ -79,12 +79,12 @@ class BaseDrawer {
/**
* 地图内部资源md5缓存,便于资源复用
*/
- protected static final Map< String, String > mMarkerCachesResMd5Values = new HashMap<>();
+ protected static final Map mMarkerCachesResMd5Values = new HashMap<>();
/**
* 上一帧数据的缓存
*/
- protected Map< String, IMogoMarker > mMarkersCaches = new HashMap<>();
+ protected Map mMarkersCaches = new HashMap<>();
protected final Context mContext;
@@ -101,38 +101,38 @@ class BaseDrawer {
* 处理 marker 移除的线程
*/
private static void initWorkThreadHandler() {
- if ( mWorkThreadHandler == null ) {
- mWorkThreadHandler = new Handler( WorkThreadHandler.newInstance( "3d-marker-work-thread" ).getLooper() ) {
+ if (mWorkThreadHandler == null) {
+ mWorkThreadHandler = new Handler(WorkThreadHandler.newInstance("3d-marker-work-thread").getLooper()) {
@Override
- public void handleMessage( Message msg ) {
- super.handleMessage( msg );
- if ( msg.what == MSG_REMOVE_DIRTY_MARKERS ) {
- if ( msg.obj instanceof Map ) {
- removeDirtyMarkers( ( ( Map ) msg.obj ) );
- Set< String > key = ( ( Map ) msg.obj ).keySet();
- for ( String id : key ) {
+ public void handleMessage(Message msg) {
+ super.handleMessage(msg);
+ if (msg.what == MSG_REMOVE_DIRTY_MARKERS) {
+ if (msg.obj instanceof Map) {
+ removeDirtyMarkers(((Map) msg.obj));
+ Set key = ((Map) msg.obj).keySet();
+ for (String id : key) {
// 清除道路缓存
- clearRoadCacheById( id );
+ clearRoadCacheById(id);
}
- } else if ( msg.obj instanceof String ) {
+ } else if (msg.obj instanceof String) {
MogoApisHandler.getInstance().getApis()
.getMapServiceApi()
- .getMarkerManager( AbsMogoApplication.getApp() )
- .removeMarkers( ( ( String ) msg.obj ) );
+ .getMarkerManager(AbsMogoApplication.getApp())
+ .removeMarkers(((String) msg.obj));
}
}
}
};
}
- if ( mRenderThreadHandler == null ) {
- mRenderThreadHandler = new Handler( WorkThreadHandler.newInstance( "render-thread-" + new Random().nextLong() ).getLooper() ) {
+ if (mRenderThreadHandler == null) {
+ mRenderThreadHandler = new Handler(WorkThreadHandler.newInstance("render-thread-" + new Random().nextLong()).getLooper()) {
@Override
- public void handleMessage( Message msg ) {
- super.handleMessage( msg );
- if ( msg.what == MSG_DISPLAY_SPEED ) {
- if ( msg.obj instanceof SpeedData ) {
- showSpeed( ( SpeedData ) msg.obj );
+ public void handleMessage(Message msg) {
+ super.handleMessage(msg);
+ if (msg.what == MSG_DISPLAY_SPEED) {
+ if (msg.obj instanceof SpeedData) {
+ showSpeed((SpeedData) msg.obj);
}
}
}
@@ -143,10 +143,10 @@ class BaseDrawer {
/**
* 显示速度
*
- * @param data
+ * @param data {@link SpeedData}
*/
- private static void showSpeed( SpeedData data ) {
- if ( data == null ) {
+ private static void showSpeed(SpeedData data) {
+ if (data == null) {
return;
}
data.showSpeed();
@@ -156,13 +156,13 @@ class BaseDrawer {
* 清除无效[为 null 或者 已被销毁]的 marker
*/
protected void removeUselessMarker() {
- if ( mMarkersCaches == null || mMarkersCaches.isEmpty() ) {
+ if (mMarkersCaches == null || mMarkersCaches.isEmpty()) {
return;
}
- Iterator< IMogoMarker > iterator = mMarkersCaches.values().iterator();
- while ( iterator.hasNext() ) {
+ Iterator iterator = mMarkersCaches.values().iterator();
+ while (iterator.hasNext()) {
IMogoMarker marker = iterator.next();
- if ( marker == null || marker.isDestroyed() ) {
+ if (marker == null || marker.isDestroyed()) {
iterator.remove();
}
}
@@ -171,66 +171,60 @@ class BaseDrawer {
/**
* 发送消息
*
- * @param msg
- * @param data
+ * @param msg 消息类型
+ * @param data 数据体
*/
- public void sendMessage( int msg, Object data ) {
+ public void sendMessage(int msg, Object data) {
Message message = Message.obtain();
message.what = msg;
message.obj = data;
- mWorkThreadHandler.sendMessage( message );
+ mWorkThreadHandler.sendMessage(message);
}
/**
* 判断是否是绘制内容
*
- * @param type
- * @return
+ * @param type {@link AdasRecognizedType}
+ * @return render
*/
- public boolean isRenderType( int type ) {
- AdasRecognizedType recognizedType = AdasRecognizedType.valueFrom( type );
- if ( recognizedType == AdasRecognizedType.classIdCar
+ public boolean isRenderType(int type) {
+ AdasRecognizedType recognizedType = AdasRecognizedType.valueFrom(type);
+ return recognizedType == AdasRecognizedType.classIdCar
|| recognizedType == AdasRecognizedType.classIdMoto
|| recognizedType == AdasRecognizedType.classIdBicycle
|| recognizedType == AdasRecognizedType.classIdPerson
|| recognizedType == AdasRecognizedType.classIdTrafficBus
- || recognizedType == AdasRecognizedType.classIdTrafficTruck ) {
- return true;
- }
- return false;
+ || recognizedType == AdasRecognizedType.classIdTrafficTruck;
}
/**
* 是否展示车速
*
- * @param type
- * @return
+ * @param type {@link AdasRecognizedType}
+ * @return showSpeed
*/
- public boolean shouldShowSpeed( int type ) {
- AdasRecognizedType recognizedType = AdasRecognizedType.valueFrom( type );
- if ( recognizedType == AdasRecognizedType.classIdBicycle
- || recognizedType == AdasRecognizedType.classIdMoto
- || recognizedType == AdasRecognizedType.classIdPerson ) {
- return false;
- }
- return true;
+ public boolean shouldShowSpeed(int type) {
+ AdasRecognizedType recognizedType = AdasRecognizedType.valueFrom(type);
+ return recognizedType != AdasRecognizedType.classIdBicycle
+ && recognizedType != AdasRecognizedType.classIdMoto
+ && recognizedType != AdasRecognizedType.classIdPerson;
}
/**
* 获取3D锚点模型资源
*
* @param type {@link AdasRecognizedType}
- * @return
+ * @return modelRes
*/
- public int getModelRes( int type ) {
- AdasRecognizedType recognizedType = AdasRecognizedType.valueFrom( type );
- if ( recognizedType == AdasRecognizedType.classIdCar
- || recognizedType == AdasRecognizedType.classIdTrafficTruck ) {
+ public int getModelRes(int type) {
+ AdasRecognizedType recognizedType = AdasRecognizedType.valueFrom(type);
+ if (recognizedType == AdasRecognizedType.classIdCar
+ || recognizedType == AdasRecognizedType.classIdTrafficTruck) {
return R.raw.othercar;
- } else if ( recognizedType == AdasRecognizedType.classIdTrafficBus ) {
+ } else if (recognizedType == AdasRecognizedType.classIdTrafficBus) {
return R.raw.bus;
- } else if ( recognizedType == AdasRecognizedType.classIdBicycle
- || recognizedType == AdasRecognizedType.classIdMoto ) {
+ } else if (recognizedType == AdasRecognizedType.classIdBicycle
+ || recognizedType == AdasRecognizedType.classIdMoto) {
return R.raw.motorbike;
}
return R.raw.people;
@@ -244,18 +238,18 @@ class BaseDrawer {
* @param lat 纬度
* @return 实际车辆颜色
*/
- protected String getModelRenderColor( int type, double speed, double lon, double lat, double angle ) {
+ protected String getModelRenderColor(int type, double speed, double lon, double lat, double angle) {
- AdasRecognizedType recognizedType = AdasRecognizedType.valueFrom( type );
- if ( recognizedType == AdasRecognizedType.classIdTrafficBus ) {
+ AdasRecognizedType recognizedType = AdasRecognizedType.valueFrom(type);
+ if (recognizedType == AdasRecognizedType.classIdTrafficBus) {
return "#D8D8D8FF";
}
// 距离策略
- double coordinates[] = getCurCoordinates();
- double distance = CoordinateUtils.calculateLineDistance( lon, lat, coordinates[0], coordinates[1] ) * 100;
- if ( distance < 50 ) {
+ double[] coordinates = getCurCoordinates();
+ double distance = CoordinateUtils.calculateLineDistance(lon, lat, coordinates[0], coordinates[1]) * 100;
+ if (distance < 50) {
return Car3DModelColor.Dangerous.color;
- } else if ( distance < 100 && distance >= 50 ) {
+ } else if (distance < 100 && distance >= 50) {
return Car3DModelColor.Warming.color;
}
@@ -263,11 +257,11 @@ class BaseDrawer {
// 自车速度 >= 50% 危险
// 10% < 自车速度 < 50% 警告
double curSpeed = getCurSpeed();
- if ( curSpeed > 0 && speed > curSpeed ) {
- double rate = ( ( speed - curSpeed ) / curSpeed ) * 100;
- if ( rate >= 50 ) {
+ if (curSpeed > 0 && speed > curSpeed) {
+ double rate = ((speed - curSpeed) / curSpeed) * 100;
+ if (rate >= 50) {
return Car3DModelColor.Dangerous.color;
- } else if ( rate > 10 && rate < 50 ) {
+ } else if (rate > 10 && rate < 50) {
return Car3DModelColor.Warming.color;
}
}
@@ -279,11 +273,11 @@ class BaseDrawer {
/**
* 返回当前自车速度
*
- * @return
+ * @return isCurSpeed
*/
private double getCurSpeed() {
double speed = MogoApisHandler.getInstance().getApis().getAdasControllerApi().getLastSpeed();
- if ( speed <= 0 ) {
+ if (speed <= 0) {
speed = SnapshotLocationController.getInstance().getCurSpeed();
}
return speed;
@@ -295,11 +289,11 @@ class BaseDrawer {
* @return
*/
private double[] getCurCoordinates() {
- double coordinates[] = {
+ double[] coordinates = {
MogoApisHandler.getInstance().getApis().getAdasControllerApi().getLastLon(),
MogoApisHandler.getInstance().getApis().getAdasControllerApi().getLastLat(),
};
- if ( coordinates[0] <= 0 ) {
+ if (coordinates[0] <= 0) {
coordinates[0] = SnapshotLocationController.getInstance().getCurLon();
coordinates[1] = SnapshotLocationController.getInstance().getCurLat();
}
@@ -312,13 +306,13 @@ class BaseDrawer {
*/
public enum Car3DModelColor {
- Normal( "#D8D8D8FF" ),
- Warming( "#FFD53EFF" ),
- Dangerous( "#FF3C45FF" );
+ Normal("#D8D8D8FF"),
+ Warming("#FFD53EFF"),
+ Dangerous("#FF3C45FF");
- private String color;
+ private final String color;
- Car3DModelColor( String color ) {
+ Car3DModelColor(String color) {
this.color = color;
}
}
@@ -328,59 +322,59 @@ class BaseDrawer {
/**
* 展示车辆速度
*
- * @param context
- * @param mogoMarker
- * @param speed
- * @param isVrMode
+ * @param context 上下文
+ * @param mogoMarker {@link IMogoMarker}
+ * @param speed 是否显示速度
+ * @param isVrMode 是否是vrMode
*/
- public void showSelfSpeed( Context context, IMogoMarker mogoMarker, double speed, boolean isVrMode ) {
- if ( mogoMarker == null || mogoMarker.isDestroyed() ) {
+ public void showSelfSpeed(Context context, IMogoMarker mogoMarker, double speed, boolean isVrMode) {
+ if (mogoMarker == null || mogoMarker.isDestroyed()) {
return;
}
- if ( !isVrMode ) {
+ if (!isVrMode) {
mogoMarker.hideInfoWindow();
return;
}
- int speedIntVal = ( int ) ( speed * 3.6 );
- if ( speedIntVal <= 0 ) {
+ int speedIntVal = (int) (speed * 3.6);
+ if (speedIntVal <= 0) {
mogoMarker.hideInfoWindow();
return;
}
String speedVal = speedIntVal + "";
- String infoResName = MogoApisHandler.getInstance().getApis().getMapServiceApi().getMapUIController().getMarkerInfoResName( speedVal );
- mogoMarker.setInfoWindowOffset( 0, 20 );
- if ( TextUtils.isEmpty( infoResName ) ) {
- if ( mSpeedView == null ) {
- mSpeedView = new TextView( context );
- mSpeedView.setTextColor( Color.WHITE );
- mSpeedView.setTypeface( Typeface.defaultFromStyle( Typeface.BOLD ) );
- mSpeedView.setLayoutParams( new ViewGroup.LayoutParams( ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT ) );
+ String infoResName = MogoApisHandler.getInstance().getApis().getMapServiceApi().getMapUIController().getMarkerInfoResName(speedVal);
+ mogoMarker.setInfoWindowOffset(0, 20);
+ if (TextUtils.isEmpty(infoResName)) {
+ if (mSpeedView == null) {
+ mSpeedView = new TextView(context);
+ mSpeedView.setTextColor(Color.WHITE);
+ mSpeedView.setTypeface(Typeface.defaultFromStyle(Typeface.BOLD));
+ mSpeedView.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
}
- mSpeedView.setText( speedVal );
- mogoMarker.updateInfoWindowView( mSpeedView );
- MogoApisHandler.getInstance().getApis().getMapServiceApi().getMapUIController().setMarkerInfoResName( speedVal, mogoMarker.getMarkerInfoResName() );
+ mSpeedView.setText(speedVal);
+ mogoMarker.updateInfoWindowView(mSpeedView);
+ MogoApisHandler.getInstance().getApis().getMapServiceApi().getMapUIController().setMarkerInfoResName(speedVal, mogoMarker.getMarkerInfoResName());
} else {
- mogoMarker.updateInfoWindowView( infoResName );
+ mogoMarker.updateInfoWindowView(infoResName);
}
}
/**
* 移除markers
*
- * @param dirtyMarkers
+ * @param dirtyMarkers 缓存marker数据
*/
- protected static void removeDirtyMarkers( Map< String, IMogoMarker > dirtyMarkers ) {
- if ( dirtyMarkers == null || dirtyMarkers.isEmpty() ) {
+ protected static void removeDirtyMarkers(Map dirtyMarkers) {
+ if (dirtyMarkers == null || dirtyMarkers.isEmpty()) {
return;
}
- final Collection< IMogoMarker > dirSet = dirtyMarkers.values();
- for ( IMogoMarker value : dirSet ) {
- if ( value == null || value.isDestroyed() ) {
+ final Collection dirSet = dirtyMarkers.values();
+ for (IMogoMarker value : dirSet) {
+ if (value == null || value.isDestroyed()) {
continue;
}
try {
value.destroy();
- } catch ( Exception e ) {
+ } catch (Exception e) {
e.printStackTrace();
}
}
@@ -393,15 +387,15 @@ class BaseDrawer {
* @param id
* @param marker
*/
- protected static void cacheMarkerIconResMd5Val( String id, IMogoMarker marker ) {
- if ( marker == null || marker.isDestroyed() ) {
+ protected static void cacheMarkerIconResMd5Val(String id, IMogoMarker marker) {
+ if (marker == null || marker.isDestroyed()) {
return;
}
String md5 = marker.getMarkerResName();
- if ( TextUtils.isEmpty( md5 ) || TextUtils.isEmpty( id ) ) {
+ if (TextUtils.isEmpty(md5) || TextUtils.isEmpty(id)) {
return;
}
- mMarkerCachesResMd5Values.put( id, md5 );
+ mMarkerCachesResMd5Values.put(id, md5);
}
/**
@@ -413,14 +407,14 @@ class BaseDrawer {
* @param isRtk
* @return
*/
- public double[] matchRoad( String id, double lon, double lat, double angle, boolean isRtk ) {
+ public double[] matchRoad(String id, double lon, double lat, double angle, boolean isRtk) {
final long start = System.currentTimeMillis();
double[] matchRoad = MogoApisHandler.getInstance()
.getApis()
.getMapServiceApi()
.getMapUIController()
- .matchRoad( id, lon, lat, angle, true, isRtk );
- Log.i( "timer-matchRoad", "cost " + ( System.currentTimeMillis() - start ) + "ms" );
+ .matchRoad(id, lon, lat, angle, true, isRtk);
+ Log.i("timer-matchRoad", "cost " + (System.currentTimeMillis() - start) + "ms");
return matchRoad;
}
@@ -429,8 +423,8 @@ class BaseDrawer {
*
* @param id
*/
- public static void clearRoadCacheById( String id ) {
- MogoApisHandler.getInstance().getApis().getMapServiceApi().getMapUIController().clearRoadCacheById( id );
+ public static void clearRoadCacheById(String id) {
+ MogoApisHandler.getInstance().getApis().getMapServiceApi().getMapUIController().clearRoadCacheById(id);
}
/**
@@ -442,11 +436,11 @@ class BaseDrawer {
* @param curSatelliteTime
* @return
*/
- public long computeAnimDuration( long lastSystemTime, long curSystemTime, long lastSatelliteTime, long curSatelliteTime ) {
+ public long computeAnimDuration(long lastSystemTime, long curSystemTime, long lastSatelliteTime, long curSatelliteTime) {
long systemTimeInterval = curSystemTime - lastSystemTime;
long satelliteTimeInterval = curSatelliteTime - lastSatelliteTime;
long interval = systemTimeInterval < satelliteTimeInterval || satelliteTimeInterval == 0 ? systemTimeInterval : satelliteTimeInterval;
- if ( interval < 45 ) {
+ if (interval < 45) {
interval = 45;
}
return interval;
@@ -463,37 +457,37 @@ class BaseDrawer {
* @param lastLat
* @return
*/
- protected double[] getMatchLonLat( String id, double lon, double lat, double heading, double lastLon, double lastLat ) {
- double[] matchedPoint = matchRoad( id, lon,
+ protected double[] getMatchLonLat(String id, double lon, double lat, double heading, double lastLon, double lastLat) {
+ double[] matchedPoint = matchRoad(id, lon,
lat,
heading,
true
);
boolean match = false;
- if ( matchedPoint != null ) {
+ if (matchedPoint != null) {
// Logger.d( TAG, "matchPoint %s distance = %s",lineCounter, matchedPoint[2] );
match = matchedPoint[2] < 1 && matchedPoint[2] > 0;
- if ( lastLon != -1 ) {
+ if (lastLon != -1) {
double clearAngle;
- if ( heading > 0 && heading <= 90 ) {
+ if (heading > 0 && heading <= 90) {
clearAngle = heading;
- } else if ( heading > 90 && heading <= 180 ) {
+ } else if (heading > 90 && heading <= 180) {
clearAngle = 180 - heading;
- } else if ( heading > 180 && heading <= 270 ) {
+ } else if (heading > 180 && heading <= 270) {
clearAngle = heading - 180;
} else {
clearAngle = 360 - heading;
}
- double _angle = Math.atan2( Math.abs( matchedPoint[0] - lastLon ), Math.abs( matchedPoint[1] - lastLat ) ) * ( 180 / PI );
- _angle = Math.abs( clearAngle - _angle );
+ double _angle = Math.atan2(Math.abs(matchedPoint[0] - lastLon), Math.abs(matchedPoint[1] - lastLat)) * (180 / PI);
+ _angle = Math.abs(clearAngle - _angle);
// Logger.d(TAG, "matchPoint %s angel = %s", lineCounter, _angle);
- if ( _angle > 22.5 ) {
+ if (_angle > 22.5) {
match = false;
}
}
- if ( match ) {
+ if (match) {
lon = matchedPoint[0];
lat = matchedPoint[1];
}
diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/SnapshotSetDataDrawer.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/SnapshotSetDataDrawer.java
index 26f50e85c4..ba8ba13c89 100644
--- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/SnapshotSetDataDrawer.java
+++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/SnapshotSetDataDrawer.java
@@ -179,7 +179,7 @@ public class SnapshotSetDataDrawer extends BaseDrawer implements IMogoMarkerClic
// 需要新增的 marker 数量
int newDiffSetSize = newDiffSet.size();
// 能复用的数量
- int size = cachedMarkerSize >= newDiffSetSize ? newDiffSetSize : cachedMarkerSize;
+ int size = Math.min(cachedMarkerSize, newDiffSetSize);
// 复用过期 marker
if ( newDiffSetSize > 0 ) {
@@ -197,7 +197,7 @@ public class SnapshotSetDataDrawer extends BaseDrawer implements IMogoMarkerClic
// 更新资源内容
if ( old == null || old.getType() != cloudRoadData.getType() ) {
- String resIdVal = null;
+ String resIdVal;
int resId = getModelRes( cloudRoadData.getType() );
resIdVal = resId + "";
String resName = mMarkerCachesResMd5Values.get( resIdVal );
@@ -238,8 +238,8 @@ public class SnapshotSetDataDrawer extends BaseDrawer implements IMogoMarkerClic
/**
* 判断类型、uuid 等
*
- * @param cloudRoadData
- * @return
+ * @param cloudRoadData {@link CloudRoadData}
+ * @return isUselessValue
*/
private boolean isUselessValue( CloudRoadData cloudRoadData ) {
if ( cloudRoadData == null ) {
@@ -250,17 +250,14 @@ public class SnapshotSetDataDrawer extends BaseDrawer implements IMogoMarkerClic
}
String uniqueKey = cloudRoadData.getUniqueKey();
- if ( TextUtils.isEmpty( uniqueKey ) ) {
- return true;
- }
- return false;
+ return TextUtils.isEmpty(uniqueKey);
}
/**
* 绘制某个物体的一个数据
*
- * @param cloudRoadData
- * @param newSnapshotCaches
+ * @param cloudRoadData {@link CloudRoadData}
+ * @param newSnapshotCaches 缓存数据
*/
private void renderSnapshotOneFrame( IMogoMarker marker, String uniqueKey, final CloudRoadData cloudRoadData, Map< String, IMogoMarker > newSnapshotCaches ) {
@@ -288,9 +285,7 @@ public class SnapshotSetDataDrawer extends BaseDrawer implements IMogoMarkerClic
long cost = System.currentTimeMillis() - start;
final long intervalRef = interval - cost;
- SimpleHandlerThreadPool.getInstance().postRender( () -> {
- marker.addDynamicAnchorPosition( point, ( float ) cloudRoadData.getHeading(), intervalRef );
- } );
+ SimpleHandlerThreadPool.getInstance().postRender( () -> marker.addDynamicAnchorPosition( point, ( float ) cloudRoadData.getHeading(), intervalRef ));
} else {
marker.setRotateAngle( ( ( float ) cloudRoadData.getHeading() ) );
marker.setPosition( cloudRoadData.getWgslat(), cloudRoadData.getWgslon() );
@@ -373,7 +368,7 @@ public class SnapshotSetDataDrawer extends BaseDrawer implements IMogoMarkerClic
.gps( true )
.controlAngle( true )
.position( new MogoLatLng( data.getWgslat(), data.getWgslon() ) );
- String resIdVal = null;
+ String resIdVal;
if ( MogoApisHandler.getInstance().getApis().getStatusManagerApi().isVrMode() ) {
options.set3DMode( true );
options.anchorColor( getModelRenderColor( data.getType(), data.getSpeed(), data.getWgslon(), data.getWgslat(), data.getHeading() ) );
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 a38db88df2..71bbe6a00d 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
@@ -88,8 +88,9 @@ public class V2XWarnDataDrawer extends BaseDrawer implements IMogoStatusChangedL
IMogoMarker bottomMarker = drawMarkerWith2Resource(markerShowEntity);
- //2D资源图片位置调整
MogoLatLng mogoLatLng = new MogoLatLng(data.getCollisionLat(), data.getCollisionLon());
+ //2D资源图片位置调整
+ MogoLatLng stopLineNew = Trigonometric.getNewLocation(data.getStopLines().get(1), 8, 180);
MogoLatLng newLocation = Trigonometric.getNewLocation(mogoLatLng, 8, 180);
IMogoMarker marker = drawMarker(markerShowEntity);
@@ -100,8 +101,8 @@ public class V2XWarnDataDrawer extends BaseDrawer implements IMogoStatusChangedL
data.getDirection() == 1 ? data.getStopLines().get(1).lon : data.getCollisionLon()), (float) data.getHeading(), 5000);
//识别物下方的红色圆圈
bottomMarker.addDynamicAnchorPosition(new MogoLatLng(
- data.getDirection() == 1 ? data.getStopLines().get(1).lat : newLocation.getLat(),
- data.getDirection() == 1 ? data.getStopLines().get(1).lon : newLocation.getLon()), (float) data.getHeading(), 5000);
+ data.getDirection() == 1 ? stopLineNew.lat : newLocation.getLat(),
+ data.getDirection() == 1 ? stopLineNew.lon : newLocation.getLon()), (float) data.getHeading(), 5000);
//移动完成以后,3s后消失
UiThreadHandler.postDelayed(() -> {
marker.remove();
@@ -127,7 +128,7 @@ public class V2XWarnDataDrawer extends BaseDrawer implements IMogoStatusChangedL
return marker;
}
- public void drawerMarkerWithLocation(MarkerShowEntity markerShowEntity, MogoLatLng location){
+ public void drawerMarkerWithLocation(MarkerShowEntity markerShowEntity, MogoLatLng location) {
MogoMarkerOptions options = new MogoMarkerOptions()
.object(markerShowEntity)
.latitude(location.getLat())
@@ -140,6 +141,7 @@ public class V2XWarnDataDrawer extends BaseDrawer implements IMogoStatusChangedL
iMarkerView.setMarker(marker);
marker.setToTop();
}
+
/*
* 2D资源绘制marker底部的红色圆圈
* */
diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/uploadintime/SnapshotLocationController.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/uploadintime/SnapshotLocationController.java
index c46feff25a..da20e6f206 100644
--- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/uploadintime/SnapshotLocationController.java
+++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/uploadintime/SnapshotLocationController.java
@@ -10,11 +10,11 @@ import java.util.ArrayList;
import java.util.List;
public
-/**
+/*
* @author congtaowang
* @since 2020/12/14
*
- * 实时坐标
+ * 实时坐标数据处理中心
*/
class SnapshotLocationController {
@@ -40,16 +40,15 @@ class SnapshotLocationController {
sInstance = null;
}
- private Object readResolve() {
- // 阻止反序列化,必须实现 Serializable 接口
- return sInstance;
- }
-
private CloudLocationInfo mLastLocationInfo = null;
- private List< CloudLocationInfo > mLocationList = new ArrayList<>();
- private int mDataAccuracy = 0;
+ // GPS(1s1次) RTK(OS侧)缓存数据,
+ private final List< CloudLocationInfo > mLocationList = new ArrayList<>();
+ // adda 工控机数据缓存
+ private final List< CloudLocationInfo > mMachineCacheList = new ArrayList<>();
+
+ private int mDataAccuracy = 0;
private double mCurSpeed;
private double mCurLon;
private double mCurLat;
@@ -57,26 +56,23 @@ class SnapshotLocationController {
/**
* 同步从定位来的数据(也可能是rtk)
*
- * @param cli
+ * @param cli {@link CloudLocationInfo}
*/
public void syncLocationInfo( CloudLocationInfo cli ) {
if ( cli == null ) {
return;
}
mLastLocationInfo = cli;
- mCurSpeed = mLastLocationInfo.getSpeed();
- mCurLon = mLastLocationInfo.getLon();
- mCurLat = mLastLocationInfo.getLat();
+ mCurSpeed = cli.getSpeed();
+ mCurLon = cli.getLon();
+ mCurLat = cli.getLat();
mLocationList.add( cli );
}
- // adda 工控机数据缓存
- private List< CloudLocationInfo > mMachineCacheList = new ArrayList<>();
-
/**
* 同步从工控机来的数据
*
- * @param data
+ * @param data JSON结构化数据
*/
public void syncAdasLocationInfo( JSONObject data ) {
if ( data == null ) {
@@ -105,15 +101,15 @@ class SnapshotLocationController {
mLastLocationInfo = cloudLocationInfo;
mMachineCacheList.add( cloudLocationInfo );
- mCurSpeed = mLastLocationInfo.getSpeed();
- mCurLon = mLastLocationInfo.getLon();
- mCurLat = mLastLocationInfo.getLat();
+ mCurSpeed = cloudLocationInfo.getSpeed();
+ mCurLon = cloudLocationInfo.getLon();
+ mCurLat = cloudLocationInfo.getLat();
}
/**
* 获取某一段时间内的坐标集合
*
- * @return
+ * @return 坐标合集
*/
public List< CloudLocationInfo > getSendLocationData() {
@@ -144,7 +140,7 @@ class SnapshotLocationController {
/**
* 数据精度类型,目前按照数据来源标志
*
- * @return
+ * @return 精度
*/
public int getDataAccuracy() {
Logger.d( TAG, "upload loc accuracy = %s", mDataAccuracy );
diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServices.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServices.java
index 9a0d9d421c..ca1b0bb7c4 100644
--- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServices.java
+++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServices.java
@@ -109,11 +109,6 @@ public class MogoServices implements IMogoMapListener,
return InstanceHolder.INSTANCE;
}
- private Object readResolve() {
- // 阻止反序列化,必须实现 Serializable 接口
- return InstanceHolder.INSTANCE;
- }
-
private static final String TAG = "MogoServices";
/**
@@ -238,7 +233,7 @@ public class MogoServices implements IMogoMapListener,
/**
* 手动刷新回调
*/
- private RefreshCallback mCustomRefreshCallback = new RefreshCallback< MarkerResponse >() {
+ private final RefreshCallback mCustomRefreshCallback = new RefreshCallback< MarkerResponse >() {
@Override
public void onSuccess( MarkerResponse o ) {
MapMarkerManager.getInstance().onSyncMarkerResponse( o );
@@ -616,16 +611,13 @@ public class MogoServices implements IMogoMapListener,
private int getQueryRadius() {
mCameraSouthWestPosition = mUiController.getCameraSouthWestPosition();
mCameraNorthEastPosition = mUiController.getCameraNorthEastPosition();
- int radius = 0;
+ int radius;
if ( mIsVertical ) {
radius = ( ( int ) ( getMapCameraFactWidth() / 2 ) );
} else {
radius = ( ( int ) ( getMapCameraFactHeight() / 2 ) );
}
- if ( radius < 1000 ) {
- return 1_000;
- }
- return radius;
+ return Math.max(radius, 1000);
}
/**
@@ -633,7 +625,7 @@ public class MogoServices implements IMogoMapListener,
*/
private boolean invokeRefreshWhenTranslationByUser( MogoLatLng latLng ) {
try {
- float factor = 0.0f;
+ float factor;
if ( mIsVertical ) {
factor = getMapCameraFactWidth();
} else {
@@ -697,7 +689,7 @@ public class MogoServices implements IMogoMapListener,
/**
* 首次定位成功后,执行道路事件的刷新
*
- * @param point
+ * @param point {@link MogoLatLng}
*/
private void startFirstLocationRequest( MogoLatLng point ) {
mLastAutoRefreshLocation = point;
diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/StatusChangedAdapter.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/StatusChangedAdapter.java
index 0dea8a3efe..fb0a9eeede 100644
--- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/StatusChangedAdapter.java
+++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/StatusChangedAdapter.java
@@ -40,61 +40,61 @@ abstract class StatusChangedAdapter implements IMogoStatusChangedListener {
private boolean mIsFirstAccOn = true;
@Override
- public final void onStatusChanged( StatusDescriptor descriptor, boolean isTrue ) {
- switch ( descriptor ) {
+ public final void onStatusChanged(StatusDescriptor descriptor, boolean isTrue) {
+ switch (descriptor) {
case USER_INTERACTED:
- onUserInteracted( isTrue );
+ onUserInteracted(isTrue);
break;
case SEARCH_UI:
- onSearchUIShow( isTrue );
+ onSearchUIShow(isTrue);
break;
case MAIN_PAGE_RESUME:
- onMainPageResumeStatusChanged( isTrue );
+ onMainPageResumeStatusChanged(isTrue);
break;
case MAIN_PAGE_IS_BACKGROUND:
- onMainPageIsBackgroundStatusChanged( isTrue );
+ onMainPageIsBackgroundStatusChanged(isTrue);
break;
case SEEK_HELPING:
- onSeekHelpingStatusChanged( isTrue );
+ onSeekHelpingStatusChanged(isTrue);
break;
case ACC_STATUS:
- onAccStatusChanged( isTrue );
+ onAccStatusChanged(isTrue);
break;
case VR_MODE:
- onVrModeChanged( isTrue );
+ onVrModeChanged(isTrue);
break;
case TOP_VIEW:
- onTopViewStatusChanged( isTrue );
+ onTopViewStatusChanged(isTrue);
break;
}
}
- public void onUserInteracted( boolean userInteracted ) {
- if ( userInteracted ) {
- MogoServices.getInstance().restartAutoRefreshAtTime( ServiceConst.DEFAULT_AUTO_REFRESH_WHEN_INTERRUPT );
+ public void onUserInteracted(boolean userInteracted) {
+ if (userInteracted) {
+ MogoServices.getInstance().restartAutoRefreshAtTime(ServiceConst.DEFAULT_AUTO_REFRESH_WHEN_INTERRUPT);
}
}
- public abstract void onSearchUIShow( boolean visible );
+ public abstract void onSearchUIShow(boolean visible);
- public void onMainPageResumeStatusChanged( boolean resume ) {
- if ( resume ) {
+ public void onMainPageResumeStatusChanged(boolean resume) {
+ if (resume) {
MogoServices.getInstance().registerInternalUnWakeupWords();
- if ( !mIsMainPageFirstResume ) {
- MogoServices.getInstance().restartAutoRefreshAtTime( 2_000L );
+ if (!mIsMainPageFirstResume) {
+ MogoServices.getInstance().restartAutoRefreshAtTime(2_000L);
}
mIsMainPageFirstResume = false;
- LauncherCardRefresher.getInstance( AbsMogoApplication.getApp() ).stop();
+ LauncherCardRefresher.getInstance(AbsMogoApplication.getApp()).stop();
MogoServices.getInstance().playAppTts();
} else {
MogoServices.getInstance().unregisterInternalUnWakeupWords();
MogoServices.getInstance().stopAutoRefreshStrategy();
}
- VrModeController.getInstance().onMainPageResumeStatusChanged( resume );
+ VrModeController.getInstance().onMainPageResumeStatusChanged(resume);
}
- public void onMainPageIsBackgroundStatusChanged( boolean isBackground ) {
- if ( isBackground ) {
+ public void onMainPageIsBackgroundStatusChanged(boolean isBackground) {
+ if (isBackground) {
closeAllPanel();
}
}
@@ -104,76 +104,79 @@ abstract class StatusChangedAdapter implements IMogoStatusChangedListener {
*/
private void closeAllPanel() {
- if ( mCallProviderResponse == null ) {
+ if (mCallProviderResponse == null) {
mCallProviderResponse = new ICallChatResponse() {
@Override
- public void hideUserWindowError( @NotNull String errorMsg ) {
+ public void hideUserWindowError(@NotNull String errorMsg) {
}
};
}
MogoApisHandler.getInstance().getApis().getShareManager().dismissShareDialog();
MogoApisHandler.getInstance().getApis().getOnlineCarPanelApi().hidePanel();
- MogoApisHandler.getInstance().getApis().getAdasControllerApi().setSettingStatus( false );
+ MogoApisHandler.getInstance().getApis().getAdasControllerApi().setSettingStatus(false);
MogoApisHandler.getInstance().getApis().getEventPanelManager().hidePanel();
- if ( mCarsChattingProvider == null ) {
- mCarsChattingProvider = ( ICarsChattingProvider ) ARouter.getInstance().build( CallChattingProviderConstant.CAR_CALL_PROVIDER ).navigation();
+ if (mCarsChattingProvider == null) {
+ mCarsChattingProvider = (ICarsChattingProvider) ARouter.getInstance().build(CallChattingProviderConstant.CAR_CALL_PROVIDER).navigation();
}
- if ( mCarsChattingProvider != null ) {
- mCarsChattingProvider.hideUserWindow( TAG, AbsMogoApplication.getApp(), mCallProviderResponse );
+ if (mCarsChattingProvider != null) {
+ mCarsChattingProvider.hideUserWindow(TAG, AbsMogoApplication.getApp(), mCallProviderResponse);
}
}
- public void onSeekHelpingStatusChanged( boolean isSeekingHelping ) {
- CarIconDisplayStrategy.getInstance().changeCarIconStatus( isSeekingHelping );
- notifySeekHelpingStatusChanged( isSeekingHelping );
+ public void onSeekHelpingStatusChanged(boolean isSeekingHelping) {
+ CarIconDisplayStrategy.getInstance().changeCarIconStatus(isSeekingHelping);
+ notifySeekHelpingStatusChanged(isSeekingHelping);
}
- private void notifySeekHelpingStatusChanged( boolean seekHelpingStatus ) {
- Intent intent = new Intent( "com.mogo.launcher.adas.app" );
+ private void notifySeekHelpingStatusChanged(boolean seekHelpingStatus) {
+ Intent intent = new Intent("com.mogo.launcher.adas.app");
try {
JSONObject data = new JSONObject();
- data.put( "object", "辅助驾驶" );
- data.put( "action", seekHelpingStatus ? "2" : "1" );
- data.put( "des", "自身故障报警" );
- data.put( "v2x_warning_type", "20007" );// 后台返回
- intent.putExtra( "data", data.toString() );
- AbsMogoApplication.getApp().sendBroadcast( intent );
- } catch ( Exception e ) {
- Logger.e( TAG, e, "error." );
+ data.put("object", "辅助驾驶");
+ data.put("action", seekHelpingStatus ? "2" : "1");
+ data.put("des", "自身故障报警");
+ data.put("v2x_warning_type", "20007");// 后台返回
+ intent.putExtra("data", data.toString());
+ AbsMogoApplication.getApp().sendBroadcast(intent);
+ } catch (Exception e) {
+ Logger.e(TAG, e, "error.");
}
}
- public void onAccStatusChanged( boolean accOn ) {
- if ( accOn ) {
- if ( mIsFirstAccOn ) {
+ public void onAccStatusChanged(boolean accOn) {
+ if (accOn) {
+ if (mIsFirstAccOn) {
mIsFirstAccOn = false;
return;
}
- MogoServices.getInstance().initLocationServiceProcess( AbsMogoApplication.getApp() );
+ MogoServices.getInstance().initLocationServiceProcess(AbsMogoApplication.getApp());
MogoApisHandler.getInstance().getApis().getAdasControllerApi().showADAS();
- MarkerServiceHandler.getApis().getMapServiceApi().getSingletonLocationClient( AbsMogoApplication.getApp() ).start();
- MarkerServiceHandler.getApis().getMapServiceApi().getMarkerManager( AbsMogoApplication.getApp() ).removeMarkers();
- UiThreadHandler.postDelayed( () -> {
+ MarkerServiceHandler.getApis().getMapServiceApi().getSingletonLocationClient(AbsMogoApplication.getApp()).start();
+ MarkerServiceHandler.getApis().getMapServiceApi().getMarkerManager(AbsMogoApplication.getApp()).removeMarkers();
+ UiThreadHandler.postDelayed(() -> {
MogoServices.getInstance().refreshStrategy();
- }, 3_000L );
+ }, 3_000L);
} else {
- MarkerServiceHandler.getApis().getMapServiceApi().getSingletonLocationClient( AbsMogoApplication.getApp() ).stop();
- MarkerServiceHandler.getApis().getMapServiceApi().getMarkerManager( AbsMogoApplication.getApp() ).removeMarkers();
+ MarkerServiceHandler.getApis().getMapServiceApi().getSingletonLocationClient(AbsMogoApplication.getApp()).stop();
+ MarkerServiceHandler.getApis().getMapServiceApi().getMarkerManager(AbsMogoApplication.getApp()).removeMarkers();
}
}
- public void onVrModeChanged( boolean isVrMode ) {
- VrModeController.getInstance().onVrModeChanged( isVrMode );
+ public void onVrModeChanged(boolean isVrMode) {
+ VrModeController.getInstance().onVrModeChanged(isVrMode);
+ if (MarkerServiceHandler.getMogoStatusManager().isSeekHelping()) {
+ onSeekHelpingStatusChanged(true);
+ }
}
- public void onTopViewStatusChanged( boolean visible ) {
- if ( visible ) {
+ public void onTopViewStatusChanged(boolean visible) {
+ if (visible) {
return;
}
try {
MapMarkerManager.getInstance().onCloseCurrentSelectedMarker();
- } catch ( Exception e ) {
- Logger.e( TAG, e, "onTopViewStatusChanged" );
+ } catch (Exception e) {
+ Logger.e(TAG, e, "onTopViewStatusChanged");
}
}
}
diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/location/MogoRTKLocation.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/location/MogoRTKLocation.java
index 185291fbef..dd926dbb11 100644
--- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/location/MogoRTKLocation.java
+++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/location/MogoRTKLocation.java
@@ -58,19 +58,21 @@ public class MogoRTKLocation {
return criteria;
}
- private LocationListener locationListener = new LocationListener() {
+ private final LocationListener locationListener = new LocationListener() {
@Override
public void onLocationChanged( Location location ) {
if ( location != null ) {
CloudLocationInfo cloudLocationInfo = new CloudLocationInfo();
- cloudLocationInfo.setAlt( location.getAltitude() );
- cloudLocationInfo.setHeading( location.getBearing() );
- cloudLocationInfo.setLat( location.getLatitude() );
- cloudLocationInfo.setLon( location.getLongitude() );
- cloudLocationInfo.setSpeed( location.getSpeed() );
- cloudLocationInfo.setSatelliteTime( location.getTime() );
- cloudLocationInfo.setSystemTime( System.currentTimeMillis() );
- SnapshotLocationController.getInstance().syncLocationInfo( cloudLocationInfo );
+ if(location.getLatitude() != 0.0 && location.getLongitude() != 0.0){
+ cloudLocationInfo.setAlt( location.getAltitude() );
+ cloudLocationInfo.setHeading( location.getBearing() );
+ cloudLocationInfo.setLat( location.getLatitude() );
+ cloudLocationInfo.setLon( location.getLongitude() );
+ cloudLocationInfo.setSpeed( location.getSpeed() );
+ cloudLocationInfo.setSatelliteTime( location.getTime() );
+ cloudLocationInfo.setSystemTime( System.currentTimeMillis() );
+ SnapshotLocationController.getInstance().syncLocationInfo( cloudLocationInfo );
+ }
} else {
Logger.e( TAG, "location == null" );
}
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 3c9ba2bab3..5f0f07f942 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
@@ -81,6 +81,35 @@ public class CarIconDisplayStrategy {
R.drawable.module_service_ic_warning_circle_orange_00046
};
+ // F 系列才有这个帧动画
+ public static final int[] sFrameVr = {
+ R.drawable.module_service_ic_car_for_help_0000,
+ R.drawable.module_service_ic_car_for_help_0001,
+ R.drawable.module_service_ic_car_for_help_0002,
+ R.drawable.module_service_ic_car_for_help_0003,
+ R.drawable.module_service_ic_car_for_help_0004,
+ R.drawable.module_service_ic_car_for_help_0005,
+ R.drawable.module_service_ic_car_for_help_0006,
+ R.drawable.module_service_ic_car_for_help_0007,
+ R.drawable.module_service_ic_car_for_help_0008,
+ R.drawable.module_service_ic_car_for_help_0009,
+ R.drawable.module_service_ic_car_for_help_0010,
+ R.drawable.module_service_ic_car_for_help_0011,
+ R.drawable.module_service_ic_car_for_help_0012,
+ R.drawable.module_service_ic_car_for_help_0013,
+ R.drawable.module_service_ic_car_for_help_0014,
+ R.drawable.module_service_ic_car_for_help_0015,
+ R.drawable.module_service_ic_car_for_help_0016,
+ R.drawable.module_service_ic_car_for_help_0017,
+ R.drawable.module_service_ic_car_for_help_0018,
+ R.drawable.module_service_ic_car_for_help_0019,
+ R.drawable.module_service_ic_car_for_help_0020,
+ R.drawable.module_service_ic_car_for_help_0021,
+ R.drawable.module_service_ic_car_for_help_0022,
+ R.drawable.module_service_ic_car_for_help_0023,
+ R.drawable.module_service_ic_car_for_help_0024
+ };
+
private static volatile CarIconDisplayStrategy sInstance;
private IMogoMarker mSeekHelpingMarker;
@@ -165,6 +194,7 @@ public class CarIconDisplayStrategy {
switch (msg.what) {
case MSG_SEEK_HELPING_ANIM:
try {
+ stopAnim();
playAnim();
} catch (Exception e) {
e.printStackTrace();
@@ -191,13 +221,20 @@ public class CarIconDisplayStrategy {
private void playAnim() {
try {
- for (int i : sFrame) {
- mBitmapFrames.add(BitmapFactory.decodeResource(AbsMogoApplication.getApp().getResources(), i));
+ if (MarkerServiceHandler.getMogoStatusManager().isVrMode()) {
+ for (int i : sFrameVr) {
+ mBitmapFrames.add(BitmapFactory.decodeResource(AbsMogoApplication.getApp().getResources(), i));
+ }
+ } else {
+ for (int i : sFrame) {
+ mBitmapFrames.add(BitmapFactory.decodeResource(AbsMogoApplication.getApp().getResources(), i));
+ }
}
+
mSeekHelpingMarker = MarkerServiceHandler.getMarkerManager().addMarker(TAG,
new MogoMarkerOptions()
.icons(mBitmapFrames)
- .period(1)
+ .period(20)
.zIndex(0)
.autoManager(false)
.anchor(0.5f, 0.5f)
diff --git a/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_car_for_help_0000.png b/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_car_for_help_0000.png
new file mode 100644
index 0000000000..3e1a005805
Binary files /dev/null and b/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_car_for_help_0000.png differ
diff --git a/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_car_for_help_0001.png b/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_car_for_help_0001.png
new file mode 100644
index 0000000000..cf50f496f9
Binary files /dev/null and b/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_car_for_help_0001.png differ
diff --git a/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_car_for_help_0002.png b/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_car_for_help_0002.png
new file mode 100644
index 0000000000..6e78ad0a5d
Binary files /dev/null and b/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_car_for_help_0002.png differ
diff --git a/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_car_for_help_0003.png b/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_car_for_help_0003.png
new file mode 100644
index 0000000000..62fb4f6905
Binary files /dev/null and b/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_car_for_help_0003.png differ
diff --git a/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_car_for_help_0004.png b/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_car_for_help_0004.png
new file mode 100644
index 0000000000..e31c16e5bc
Binary files /dev/null and b/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_car_for_help_0004.png differ
diff --git a/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_car_for_help_0005.png b/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_car_for_help_0005.png
new file mode 100644
index 0000000000..9b63c26cb0
Binary files /dev/null and b/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_car_for_help_0005.png differ
diff --git a/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_car_for_help_0006.png b/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_car_for_help_0006.png
new file mode 100644
index 0000000000..bb43dace92
Binary files /dev/null and b/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_car_for_help_0006.png differ
diff --git a/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_car_for_help_0007.png b/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_car_for_help_0007.png
new file mode 100644
index 0000000000..fbd41c7f46
Binary files /dev/null and b/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_car_for_help_0007.png differ
diff --git a/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_car_for_help_0008.png b/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_car_for_help_0008.png
new file mode 100644
index 0000000000..22063213c2
Binary files /dev/null and b/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_car_for_help_0008.png differ
diff --git a/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_car_for_help_0009.png b/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_car_for_help_0009.png
new file mode 100644
index 0000000000..0c7352bd3d
Binary files /dev/null and b/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_car_for_help_0009.png differ
diff --git a/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_car_for_help_0010.png b/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_car_for_help_0010.png
new file mode 100644
index 0000000000..e3f368072d
Binary files /dev/null and b/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_car_for_help_0010.png differ
diff --git a/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_car_for_help_0011.png b/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_car_for_help_0011.png
new file mode 100644
index 0000000000..5ab71f95c9
Binary files /dev/null and b/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_car_for_help_0011.png differ
diff --git a/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_car_for_help_0012.png b/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_car_for_help_0012.png
new file mode 100644
index 0000000000..8cf231388a
Binary files /dev/null and b/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_car_for_help_0012.png differ
diff --git a/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_car_for_help_0013.png b/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_car_for_help_0013.png
new file mode 100644
index 0000000000..1ce7794873
Binary files /dev/null and b/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_car_for_help_0013.png differ
diff --git a/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_car_for_help_0014.png b/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_car_for_help_0014.png
new file mode 100644
index 0000000000..1e432c6c60
Binary files /dev/null and b/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_car_for_help_0014.png differ
diff --git a/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_car_for_help_0015.png b/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_car_for_help_0015.png
new file mode 100644
index 0000000000..d5ac9bcabe
Binary files /dev/null and b/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_car_for_help_0015.png differ
diff --git a/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_car_for_help_0016.png b/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_car_for_help_0016.png
new file mode 100644
index 0000000000..b9bd28d26e
Binary files /dev/null and b/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_car_for_help_0016.png differ
diff --git a/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_car_for_help_0017.png b/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_car_for_help_0017.png
new file mode 100644
index 0000000000..0957be0dd0
Binary files /dev/null and b/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_car_for_help_0017.png differ
diff --git a/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_car_for_help_0018.png b/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_car_for_help_0018.png
new file mode 100644
index 0000000000..b2fa02c103
Binary files /dev/null and b/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_car_for_help_0018.png differ
diff --git a/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_car_for_help_0019.png b/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_car_for_help_0019.png
new file mode 100644
index 0000000000..89d396bcaa
Binary files /dev/null and b/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_car_for_help_0019.png differ
diff --git a/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_car_for_help_0020.png b/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_car_for_help_0020.png
new file mode 100644
index 0000000000..f4855c2cc6
Binary files /dev/null and b/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_car_for_help_0020.png differ
diff --git a/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_car_for_help_0021.png b/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_car_for_help_0021.png
new file mode 100644
index 0000000000..9505ecd1f5
Binary files /dev/null and b/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_car_for_help_0021.png differ
diff --git a/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_car_for_help_0022.png b/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_car_for_help_0022.png
new file mode 100644
index 0000000000..cb4c5a9e82
Binary files /dev/null and b/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_car_for_help_0022.png differ
diff --git a/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_car_for_help_0023.png b/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_car_for_help_0023.png
new file mode 100644
index 0000000000..8399cc8d0a
Binary files /dev/null and b/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_car_for_help_0023.png differ
diff --git a/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_car_for_help_0024.png b/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_car_for_help_0024.png
new file mode 100644
index 0000000000..3e1a005805
Binary files /dev/null and b/modules/mogo-module-service/src/main/res/drawable-xhdpi/module_service_ic_car_for_help_0024.png differ
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 5c52454150..13be5af0ac 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,5 +1,6 @@
package com.mogo.module.v2x.scenario.scene.help;
+import android.app.ActionBar;
import android.content.Intent;
import android.view.LayoutInflater;
import android.view.View;
@@ -82,8 +83,8 @@ public class V2XSeekHelpButton implements IV2XButton {
tvCancel.setOnClickListener(v -> {
doAction();
});
- ViewGroup.LayoutParams layoutParams = new ViewGroup.LayoutParams((int) V2XUtils.getApp().getResources().getDimension(R.dimen.dp_640),
- (int) V2XUtils.getApp().getResources().getDimension(R.dimen.dp_140));
+ ViewGroup.LayoutParams layoutParams = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
+ (int) V2XUtils.getApp().getResources().getDimension(R.dimen.dp_150));
V2XServiceManager.getMogoTopViewManager().addView(topView, layoutParams);
}
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 2b07ee047e..9549efdb15 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
@@ -67,12 +67,7 @@ public class V2XPushLiveCarWindow extends V2XBasWindow implements IV2XWindow {
- //移除窗体
- V2XServiceManager
- .getMogoTopViewManager()
- .removeViewNoLinkage(this);
- });
+ pushVideoClose.setOnClickListener(v -> close());
}
/**
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 ec954655bd..e5021f98d1 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
@@ -55,6 +55,7 @@ public class V2XVoiceCallLiveCarWindow extends V2XBasWindow
: R.layout.window_see_carlive_video, this);
CarZegoLiveVideoView mV2XCarLiveVideoView = findViewById(R.id.videoPlayer);
tvCountDown = findViewById(R.id.tvCountDown);
+ ImageView ivLiveVideoClose = findViewById(R.id.liveVideoClose);
ivVideoPlayingSign = findViewById(R.id.ivVideoPlayingSign);
mV2XCarLiveVideoView.addOnVideoStatusChangeListener(videoPlaying -> {
isVideoPlay = videoPlaying;
@@ -64,6 +65,7 @@ public class V2XVoiceCallLiveCarWindow extends V2XBasWindow
stopCountDown();
}
});
+ ivLiveVideoClose.setOnClickListener(v -> close());
}
@Override
diff --git a/modules/mogo-module-v2x/src/main/res/drawable-xhdpi/module_v2x_vr_close.png b/modules/mogo-module-v2x/src/main/res/drawable-xhdpi/module_v2x_vr_close.png
new file mode 100644
index 0000000000..c7f8ef2830
Binary files /dev/null and b/modules/mogo-module-v2x/src/main/res/drawable-xhdpi/module_v2x_vr_close.png differ
diff --git a/modules/mogo-module-v2x/src/main/res/drawable/bg_v2x_event_bg.xml b/modules/mogo-module-v2x/src/main/res/drawable/bg_v2x_event_bg.xml
index 73892b5ac9..b7428f06fb 100644
--- a/modules/mogo-module-v2x/src/main/res/drawable/bg_v2x_event_bg.xml
+++ b/modules/mogo-module-v2x/src/main/res/drawable/bg_v2x_event_bg.xml
@@ -1,6 +1,6 @@
-
+
\ No newline at end of file
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 79f8efeac3..adfeb53772 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
@@ -275,6 +275,7 @@
android:layout_height="@dimen/dp_70"
android:background="@color/v2x_line_color"
android:visibility="gone"
+ android:alpha="0.3"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/tv_play"
app:layout_constraintStart_toEndOf="@+id/ll_event"
diff --git a/modules/mogo-module-v2x/src/main/res/layout/item_v2x_push_live_video.xml b/modules/mogo-module-v2x/src/main/res/layout/item_v2x_push_live_video.xml
index e1766f2434..2ea320afbc 100644
--- a/modules/mogo-module-v2x/src/main/res/layout/item_v2x_push_live_video.xml
+++ b/modules/mogo-module-v2x/src/main/res/layout/item_v2x_push_live_video.xml
@@ -17,5 +17,7 @@
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_20"
android:layout_marginTop="@dimen/dp_20"
+ android:clickable="true"
+ android:focusable="true"
android:src="@drawable/module_common_close_selector" />
\ 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
index b02a2d05fc..87cf9c95f0 100644
--- 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
@@ -19,5 +19,7 @@
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_20"
android:layout_marginTop="@dimen/dp_20"
- android:src="@drawable/module_common_close_selector" />
+ android:clickable="true"
+ android:focusable="true"
+ android:src="@drawable/module_v2x_vr_close" />
\ No newline at end of file
diff --git a/modules/mogo-module-v2x/src/main/res/layout/window_carforhelp_detail.xml b/modules/mogo-module-v2x/src/main/res/layout/window_carforhelp_detail.xml
index 3623d89beb..270f3d8d66 100644
--- a/modules/mogo-module-v2x/src/main/res/layout/window_carforhelp_detail.xml
+++ b/modules/mogo-module-v2x/src/main/res/layout/window_carforhelp_detail.xml
@@ -1,55 +1,66 @@
+ android:layout_width="match_parent"
+ android:layout_height="match_parent">
-
-
-
-
-
-
-
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent">
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/modules/mogo-module-v2x/src/main/res/layout/window_see_carlive_video_vr.xml b/modules/mogo-module-v2x/src/main/res/layout/window_see_carlive_video_vr.xml
index c2f05ae98e..b27461dcef 100644
--- a/modules/mogo-module-v2x/src/main/res/layout/window_see_carlive_video_vr.xml
+++ b/modules/mogo-module-v2x/src/main/res/layout/window_see_carlive_video_vr.xml
@@ -12,4 +12,14 @@
android:layout_width="match_parent"
android:layout_height="match_parent" />
+
+
\ No newline at end of file