change the callerlogger

This commit is contained in:
zhongchao
2022-03-14 21:50:11 +08:00
parent e19ff59a89
commit 6102e55ed3
1315 changed files with 4162 additions and 61965 deletions

View File

@@ -1,175 +0,0 @@
package com.mogo.module.common.animation;
import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.animation.AnimatorSet;
import android.animation.ObjectAnimator;
import android.animation.ValueAnimator;
import android.content.Context;
import android.graphics.PointF;
import android.graphics.drawable.Drawable;
import android.os.Handler;
import android.util.AttributeSet;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.view.animation.LinearInterpolator;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import androidx.core.content.ContextCompat;
import com.mogo.module.common.R;
import java.util.Random;
public class BezierAnimationView extends RelativeLayout implements View.OnClickListener {
private String TAG = "BezierAnimationView";
private Context context;
private int[] animation_drawable = {
R.drawable.icon_common_heart_animation_vr00,
R.drawable.icon_map_marker_pondingl2,
R.drawable.icon_map_marker_living};
private Random random = new Random();
private int width = 180, height = 140;
private int drawableWidth, drawableHeight;
private int resource = 0;
private Handler handler = new Handler();
private Runnable runnable;
public BezierAnimationView(Context context) {
this(context, null);
}
public BezierAnimationView(Context context, AttributeSet attributes) {
this(context, attributes, 0);
}
public BezierAnimationView(Context context, AttributeSet attributes, int defStyleAttr) {
super(context, attributes, defStyleAttr);
this.context = context;
//3、设置点击事件
setOnClickListener(this);
//4、获取点赞图片的宽高
Drawable drawable = ContextCompat.getDrawable(context, R.drawable.icon_common_heart_animation_vr02);
drawableWidth = drawable.getIntrinsicWidth();
drawableHeight = drawable.getIntrinsicHeight();
}
@Override
public void onClick(View view) {
runnable = new Runnable() {
@Override
public void run() {
try {
Log.d("点赞--", "");
bezierAnimation(resource);
handler.postDelayed(this, 500);
} catch (Exception e) {
e.printStackTrace();
}
}
};
runnable.run();
}
public void bezierAnimationStart(){
runnable = new Runnable() {
@Override
public void run() {
try {
Log.d("点赞--", "");
bezierAnimation(resource);
handler.postDelayed(this, 500);
} catch (Exception e) {
e.printStackTrace();
}
}
};
runnable.run();
}
private void bezierAnimation(int resource) {
final ImageView imageView = new ImageView(context);
imageView.setBackgroundResource(animation_drawable[resource]);
RelativeLayout.LayoutParams params = new LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
// params.addRule(ALIGN_BOTTOM);
params.addRule(CENTER_HORIZONTAL);
imageView.setLayoutParams(params);
addView(imageView);
/*
* 开始执行点赞效果
* */
AnimatorSet animatorSet = getAnimatorSet(imageView);
animatorSet.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
//3、动画执行后移除View
removeView(imageView);
}
});
animatorSet.start();
Log.d(TAG, "动画执行到--" + String.valueOf(resource));
}
private AnimatorSet getAnimatorSet(ImageView imageView) {
AnimatorSet enter = new AnimatorSet();
//1、缩放动画
AnimatorSet scaleAnimator = new AnimatorSet();
ObjectAnimator alpha = ObjectAnimator.ofFloat(imageView, "alpha", 0.3f, 1f);
ObjectAnimator scaleX = ObjectAnimator.ofFloat(imageView, "scaleX", 0.3f, 1f);
ObjectAnimator scaleY = ObjectAnimator.ofFloat(imageView, "scaleY", 0.3f, 1f);
scaleAnimator.setDuration(1000);
scaleAnimator.playTogether(alpha, scaleX, scaleY);
//2、贝塞尔动画
ValueAnimator bezierAnimator = getBezierAnimator(imageView);
//3、两个动画按顺序播放
enter.playSequentially(scaleAnimator, bezierAnimator);
return enter;
}
/**
* 贝塞尔动画
*
* @return
*/
private ValueAnimator getBezierAnimator(final ImageView imageView) {
//1、构建贝塞尔曲线的四个点
PointF point0 = new PointF((width - drawableWidth) / 2, height - drawableHeight);
PointF point1 = new PointF(random.nextInt(width), random.nextInt(height / 2));
PointF point2 = new PointF(random.nextInt(width), random.nextInt(height / 2) + height / 2);
PointF point3 = new PointF(random.nextInt(width - drawableWidth), 0);
//2、创建贝塞尔属性动画
BezierEvaluator evaluator = new BezierEvaluator(point0, point1);
final ValueAnimator valueAnimator = ObjectAnimator.ofObject(evaluator, point2, point3);
valueAnimator.setInterpolator(new LinearInterpolator());
valueAnimator.setDuration(1000);
//3、监听贝塞尔曲线估值器返回值
valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animation) {
//4、获取BezierEvaluator中evaluate()返回的运行轨迹坐标点,设置点赞图片路线
PointF pointF = (PointF) animation.getAnimatedValue();
imageView.setX(pointF.x);
imageView.setY(pointF.y);
//6、获取BezierEvaluator中evaluate()返回的参数t设置消失动画
float t = animation.getAnimatedFraction();
imageView.setAlpha(1 - t + 0.2f);
}
});
if (resource >= 3) {
handler.removeCallbacks(runnable);
return null;
} else {
resource += 1;
}
return valueAnimator;
}
}

View File

@@ -43,7 +43,6 @@ class CallChatApi {
public void showUserWindow( Context context, MarkerOnlineCar onlineCar ) throws Exception {
// if ( mApiProvider == null ) {
// Logger.e( TAG, "no call chat api instance." );
// return;
// }
// MogoDriverInfo driverInfo = new MogoDriverInfo();

View File

@@ -4,7 +4,6 @@ import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import com.mogo.eagle.core.utilcode.mogo.logger.Logger;
import com.mogo.module.common.datacenter.RealTimeData;
import com.mogo.module.common.datacenter.SnapshotLocationDataCenter;
@@ -17,14 +16,10 @@ public class SnapShotMockTestPanelBroadCastReceiver extends BroadcastReceiver {
*/
public static final String BROADCAST_TEST_PANEL_CONTROL_TYPE_EXTRA_KEY = "sceneType";
private Context mContext;
@Override
public void onReceive(Context context, Intent intent) {
try {
this.mContext = context;
int sceneType = intent.getIntExtra(BROADCAST_TEST_PANEL_CONTROL_TYPE_EXTRA_KEY, 0);
Logger.d(TAG, "textPanelOpenType:" + sceneType);
// 分发场景
dispatchSceneTest(sceneType);
} catch (Exception e) {
@@ -39,7 +34,6 @@ public class SnapShotMockTestPanelBroadCastReceiver extends BroadcastReceiver {
* @param sceneType 场景类型
*/
private void dispatchSceneTest(int sceneType) {
Logger.d(TAG, "sceneType=" + sceneType);
if (sceneType == 1) {
//模拟顺义固定位置
RealTimeData.getInstance().setLat(39.968309);

View File

@@ -2,14 +2,12 @@ package com.mogo.module.common.dialog;
import android.app.Dialog;
import android.content.Context;
import android.os.Build;
import android.view.WindowManager;
import androidx.annotation.NonNull;
import com.mogo.commons.debug.DebugConfig;
import com.mogo.eagle.core.utilcode.mogo.logger.Logger;
import com.mogo.module.common.MogoApisHandler;
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
import com.mogo.module.common.R;
/**
@@ -46,13 +44,13 @@ public class BaseFloatDialog extends Dialog {
@Override
public void show() {
Logger.d(TAG, "onShow====");
CallerLogger.INSTANCE.d(TAG, "onShow====");
super.show();
}
@Override
public void dismiss() {
Logger.d(TAG, "onDismiss====");
CallerLogger.INSTANCE.d( TAG, "onDismiss====");
super.dismiss();
}
}

View File

@@ -1,347 +0,0 @@
package com.mogo.module.common.drawer;
import static com.mogo.cloud.socket.entity.SocketDownDataHelper.FROM_ADAS;
import android.os.Build;
import android.text.TextUtils;
import android.util.Log;
import com.mogo.cloud.commons.utils.CoordinateUtils;
import com.mogo.commons.debug.DebugConfig;
import com.mogo.eagle.core.data.map.MogoLatLng;
import com.mogo.eagle.core.data.traffic.TrafficData;
import com.mogo.map.marker.IMogoMarker;
import com.mogo.map.marker.MogoMarkerOptions;
import com.mogo.module.common.MogoApisHandler;
import com.mogo.module.common.constants.DataTypes;
import com.mogo.module.common.utils.Trigonometric;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.TimeUnit;
/**
* @author congtaowang
* @since 2020/10/28
* <p>
* 绘制adas近景识别到的车辆
*/
public class AdasRecognizedResultDrawer extends BaseDrawer {
private static final String TAG = "AdasRecognizedResultDrawer";
private static volatile AdasRecognizedResultDrawer sInstance;
/**
* 上一帧数据的缓存
*/
private static Map<String, IMogoMarker> mMarkersCaches = new ConcurrentHashMap<>();
public AdasRecognizedResultDrawer() {
super();
}
private final Map<String, TrafficData> mLastPositions = new ConcurrentHashMap<>();
public static AdasRecognizedResultDrawer getInstance() {
if (sInstance == null) {
synchronized (AdasRecognizedResultDrawer.class) {
if (sInstance == null) {
sInstance = new AdasRecognizedResultDrawer();
}
}
}
return sInstance;
}
public synchronized void release() {
sInstance = null;
}
private Object readResolve() {
// 阻止反序列化,必须实现 Serializable 接口
return sInstance;
}
public boolean hasCached(String uniqueKey) {
return mMarkersCaches.containsKey(uniqueKey);
}
/**
* 渲染 adas 识别的数据
*
* @param resultList adas感知融合数据
*/
public void renderAdasRecognizedResult(List<TrafficData> resultList) {
final long start = System.nanoTime();
if (resultList == null || resultList.isEmpty() || !DebugConfig.isUseAdasRecognize()) {
clearOldMarker();
Log.w("ADAS数据延时绘制", "resultList==>" + resultList + " DebugConfig.isUseAdasRecognize()==>" + DebugConfig.isUseAdasRecognize());
return;
}
if (!MogoApisHandler.getInstance().getApis().getStatusManagerApi().isVrMode()) {
clearOldMarker();
Log.w("ADAS数据延时绘制", "当前不是VR模式");
return;
}
// List<TrafficData> allDatumsList = new ArrayList<>();
// prepareData(resultList, allDatumsList);
Map<String, IMogoMarker> newAdasRecognizedMarkersCaches = new ConcurrentHashMap<>();
List<TrafficData> newDiffSet = new ArrayList<>();
for (TrafficData recognizedListResult : resultList) {
if (isUselessValue(recognizedListResult)) {
continue;
}
// 复用之前存在的 marker
String uniqueKey = recognizedListResult.getUuid();
IMogoMarker marker = mMarkersCaches.remove(uniqueKey);
if (marker != null && !marker.isDestroyed()) {
// Log.d(TAG, "发现缓存marker id : " + uniqueKey);
updateCacheMarkerRes(marker, recognizedListResult);
renderAdasOneFrame(marker, uniqueKey, recognizedListResult, newAdasRecognizedMarkersCaches);
} else {
// 新增添加进差集
newDiffSet.add(recognizedListResult);
}
}
removeUselessMarker(mMarkersCaches);
removeUselessLastRecord();
int newDiffSetSize = newDiffSet.size();
// Log.d(TAG, "原数据量 " + resultList.size() + " 新增marker数量 " + newDiffSetSize);
// 复用过期 marker
if (newDiffSetSize > 0) {
for (int i = 0; i < newDiffSetSize; i++) {
TrafficData recognizedListResult = newDiffSet.get(i);
String uniqueKey = recognizedListResult.getUuid();
IMogoMarker marker = drawAdasRecognizedDataMarker(recognizedListResult);
if (marker == null) {
continue;
}
// Log.d(TAG, "新增marker id : " + uniqueKey);
renderAdasOneFrame(marker, uniqueKey, recognizedListResult, newAdasRecognizedMarkersCaches);
}
}
sendMessage(MSG_REMOVE_DIRTY_MARKERS, mMarkersCaches);
mMarkersCaches.clear();
mMarkersCaches = newAdasRecognizedMarkersCaches;
Log.d("ADAS数据延时绘制", "render 接收数据 -> 处理结束 " + TimeUnit.NANOSECONDS.toMillis((System.nanoTime() - start)) + "ms");
}
/**
* 对数据补点
*
* @param in
* @param out
*/
private void prepareData(List<TrafficData> in, List<TrafficData> out) {
// foreCastPoint(in);
out.addAll(in);
}
private final static String FORECAST = "adasForecast";
/**
* 基于工控机识别的数据点速度预测当前位置和距离自车距离
*
* @param in 数据源
*/
private void foreCastPoint(List<TrafficData> in) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
for (TrafficData adasResult : in) {
Log.d(FORECAST, "ready to foreCast current uuid : " + adasResult.getUuid());
long internal = getCurSatelliteTime() - adasResult.getSatelliteTime();
if (internal <= 0) {
Log.d(FORECAST, "time internal less than 0 , uuid : " + adasResult.getUuid());
continue;
}
long startTime = System.currentTimeMillis();
// 预测点
Log.d(FORECAST, "time internal : " + internal + " speed : " + adasResult.getSpeed());
double foreCastDistance = adasResult.getSpeed() * internal / 1000;
Log.d(FORECAST, "foreCastDistance : " + foreCastDistance);
MogoLatLng mogoLatLng = new MogoLatLng(adasResult.getLat(), adasResult.getLon());
MogoLatLng foreCastMogoLatLon = Trigonometric.getNewLocation(mogoLatLng, foreCastDistance, adasResult.getHeading());
// 计算与自车距离
float distanceFromSelf = CoordinateUtils.calculateLineDistance(getCurCoordinates()[0], getCurCoordinates()[1]
, foreCastMogoLatLon.getLon(), foreCastMogoLatLon.getLat());
long foreCastInternal = System.currentTimeMillis() - startTime;
Log.d(FORECAST, "foreCastInternal :" + foreCastInternal); //todo 耗时1~2毫秒 需要测试是否由于补点算法造成
adasResult.setLat(foreCastMogoLatLon.getLat());
adasResult.setLon(foreCastMogoLatLon.getLon());
adasResult.setSatelliteTime((getCurSatelliteTime() - foreCastInternal));
adasResult.setDistance(distanceFromSelf);
}
}
}
/**
* todo 后面涉及到此类变化的数据均改动
*
* @param marker
* @param recognizedListResult
*/
private void updateCacheMarkerRes(IMogoMarker marker, TrafficData recognizedListResult) {
String resIdVal;
int resId = getModelRes(recognizedListResult.getType().getType());
resIdVal = resId + "";
String resName = mMarkerCachesResMd5Values.get(resIdVal);
if (!TextUtils.isEmpty(resName)) {
if (!TextUtils.equals(resName, marker.getMarkerResName())) {
marker.use3DResource(resName);
}
} else {
resName = marker.use3DResource(resId);
mMarkerCachesResMd5Values.put(resIdVal, resName);
}
}
private void removeUselessLastRecord() { // todo 最好重新设计一个数据结构用于多线程数据过期失效的场景参见redis数据过期
if (mLastPositions.isEmpty()) {
return;
}
Iterator<TrafficData> iterator = mLastPositions.values().iterator();
while (iterator.hasNext()) {
TrafficData result = iterator.next();
long internal = result.getSatelliteTime() - getCurSatelliteTime();
if (internal > 3000) { //防止帧率过低导致误删除上一个节点对象,从而出现跳跃现象
iterator.remove();
}
}
}
/**
* 过滤无用数据
*
* @param recognizedListResult {@link TrafficData}
* @return useless
*/
private boolean isUselessValue(TrafficData recognizedListResult) {
if (recognizedListResult == null) {
return true;
}
if (nonRenderType(recognizedListResult.getType().getType())) {
return true;
}
String uniqueKey = recognizedListResult.getUuid();
return TextUtils.isEmpty(uniqueKey);
}
/**
* 绘制某个物体的一个数据
*
* @param recognizedListResult {@link TrafficData}
* @param newAdasRecognizedMarkersCaches 缓存集合
*/
private void renderAdasOneFrame(IMogoMarker marker,
String uniqueKey,
TrafficData recognizedListResult,
Map<String, IMogoMarker> newAdasRecognizedMarkersCaches) {
final long start = System.nanoTime();
// Log.d(TAG, "renderAdasOneFrame uuid : " + uniqueKey + " type : " + recognizedListResult.type + " heading : " + recognizedListResult.heading);
TrafficData lastPosition = mLastPositions.remove(uniqueKey);
// 道路吸附
// double lastLon = -1;
// double lastLat = -1;
// if (lastPosition != null) {
// lastLon = lastPosition.lon;
// lastLat = lastPosition.lat;
// }
// double[] matchLonLat = getMatchLonLat(recognizedListResult.uuid, recognizedListResult.lon, recognizedListResult.lat, recognizedListResult.heading, lastLon, lastLat);
//
// recognizedListResult.lon = matchLonLat[0];
// recognizedListResult.lat = matchLonLat[1];
// Log.d( "matchRoad", "cost = %s", System.currentTimeMillis() - start );
mLastPositions.put(uniqueKey, recognizedListResult);
// Log.d(TAG, "使用缓存 id : " + uniqueKey);
long interval = 45;
if (lastPosition != null) {
interval = computeAnimDuration(lastPosition.getSatelliteTime(), recognizedListResult.getSatelliteTime());
}
final MogoLatLng renderLoc = new MogoLatLng(recognizedListResult.getLat(), recognizedListResult.getLon());
long cost = TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - start);
//Log.d("ADAS动画数据", "cost : " + cost);
final long intervalRef = interval - cost;
//Log.d("ADAS动画数据", "最终赋值 : " + intervalRef + " 两帧间隔 : " + interval + " uuid : " + recognizedListResult.getUuid());
marker.addDynamicAnchorPosition(renderLoc, (float) recognizedListResult.getHeading(), intervalRef);
String carColor = getModelRenderColor(recognizedListResult.getType().getType(), FROM_ADAS, recognizedListResult.getThreatLevel());
marker.setAnchorColor(carColor);
newAdasRecognizedMarkersCaches.put(uniqueKey, marker);
// if (shouldShowSpeed(recognizedListResult.type)) {
// Message msg = mRenderThreadHandler.obtainMessage();
// msg.obj = new SpeedData(marker
// , recognizedListResult.speed
// , recognizedListResult.uuid
// , recognizedListResult.type
// , recognizedListResult.heading
// , MogoApisHandler.getInstance().getApis().getStatusManagerApi().isVrMode());
// msg.what = MSG_DISPLAY_SPEED;
// msg.sendToTarget();
// }
Log.d("ADAS数据延时", "render 刷新一台车 cost : " + TimeUnit.NANOSECONDS.toMillis((System.nanoTime() - start)));
}
/**
* 绘制 marker
*
* @param recognizedListResult {@link TrafficData}
* @return {@link IMogoMarker}
*/
private IMogoMarker drawAdasRecognizedDataMarker(TrafficData recognizedListResult) {
long start = System.nanoTime();
if (recognizedListResult == null) {
return null;
}
int resId = getModelRes(recognizedListResult.getType().getType());
String resIdVal = resId + "";
String carColor = getModelRenderColor(recognizedListResult.getType().getType(), FROM_ADAS, recognizedListResult.getThreatLevel());
MogoMarkerOptions options = new MogoMarkerOptions()
.owner(DataTypes.TYPE_MARKER_ADAS)
.anchor(0.5f, 0.5f)
.set3DMode(true)
.gps(true)
.anchorColor(carColor)
.controlAngle(true)
.resName(mMarkerCachesResMd5Values.get(resIdVal))
.icon3DRes(resId)
.rotate((float) recognizedListResult.getHeading())
.position(new MogoLatLng(recognizedListResult.getLat(), recognizedListResult.getLon()));
IMogoMarker marker = MogoApisHandler.getInstance().getApis().getMapServiceApi().getMarkerManager(mContext).addMarker(DataTypes.TYPE_MARKER_ADAS, options);
cacheMarkerIconResMd5Val(resIdVal, marker);
Log.d("ADAS数据延时", "创建一个新 marker cost : " + TimeUnit.NANOSECONDS.toMillis((System.nanoTime() - start)));
return marker;
}
/**
* vr 模式切换
*/
public void notifyVrModeChanged() {
clearOldMarker();
}
/**
* 清除旧的 marker 数据
*/
public void clearOldMarker() {
if (mMarkersCaches != null) {
mMarkersCaches.clear();
}
mLastPositions.clear();
sendMessage(MSG_REMOVE_DIRTY_MARKERS, DataTypes.TYPE_MARKER_ADAS);
}
}

View File

@@ -239,11 +239,9 @@ public class BaseDrawer {
*/
public long computeAnimDuration(long lastSatelliteTime, long curSatelliteTime) {
if (lastSatelliteTime == 0 || curSatelliteTime == 0) {
//Log.d("ADAS动画数据", "卫星时间存在错误");
return 45;
}
long interval = curSatelliteTime - lastSatelliteTime;
//Log.d("ADAS动画数据", "lastSatelliteTime : " + lastSatelliteTime +" ---- curSatelliteTime : " + curSatelliteTime + " ===== 插值 " + interval);
if (interval < 45) {
interval = 45;
}

View File

@@ -6,11 +6,12 @@ import com.mogo.commons.AbsMogoApplication;
import com.mogo.eagle.core.data.config.FunctionBuildConfig;
import com.mogo.eagle.core.data.enums.TrafficTypeEnum;
import com.mogo.eagle.core.data.traffic.TrafficData;
import com.mogo.eagle.core.utilcode.mogo.logger.Logger;
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
import com.mogo.eagle.core.utilcode.util.UiThreadHandler;
import com.mogo.module.common.MogoApisHandler;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ConcurrentHashMap;
import mogo.telematics.pad.MessagePad;
@@ -29,7 +30,7 @@ public class IdentifyDataDrawer {
/**
* 上一帧数据的缓存
*/
private static ConcurrentHashMap<String, TrafficData> mMarkersCaches = new ConcurrentHashMap<>();
private static final ConcurrentHashMap<String, TrafficData> mMarkersCaches = new ConcurrentHashMap<>();
/**
* 已经感知不到的脏数据
@@ -69,16 +70,16 @@ public class IdentifyDataDrawer {
*
* @param resultList adas感知融合数据
*/
public void renderAdasRecognizedResult(ArrayList<MessagePad.TrackedObject> resultList) {
public void renderAdasRecognizedResult(List<MessagePad.TrackedObject> resultList) {
if (resultList == null || resultList.isEmpty()) {
clearOldMarker();
Logger.w(TAG, "感知数据为空无需渲染……");
CallerLogger.INSTANCE.w(TAG, "感知数据为空无需渲染……");
return;
}
if (!MogoApisHandler.getInstance().getApis().getStatusManagerApi().isVrMode()) {
clearOldMarker();
Logger.w(TAG, "渲染 adas 识别的数据 当前不是VR模式");
CallerLogger.INSTANCE.w(TAG, "渲染 adas 识别的数据 当前不是VR模式");
return;
}
@@ -88,7 +89,7 @@ public class IdentifyDataDrawer {
// 过滤掉未知感知数据
if (!FunctionBuildConfig.isDrawUnknownIdentifyData &&
trafficData.getType() == TrafficTypeEnum.TYPE_TRAFFIC_ID_WEI_ZHI.getType()) {
//Logger.w(TAG, "未知感知类型数据,丢弃,不渲染");
//CallerLogger.INSTANCE.w(TAG, "未知感知类型数据,丢弃,不渲染");
continue;
}
trafficDataUuidList.add("" + trafficData.getUuid());
@@ -120,12 +121,12 @@ public class IdentifyDataDrawer {
*
* @return 过滤后的数据集合
*/
private ArrayList<MessagePad.TrackedObject> filterTrafficData(ArrayList<MessagePad.TrackedObject> trafficData) {
private ArrayList<MessagePad.TrackedObject> filterTrafficData(List<MessagePad.TrackedObject> trafficData) {
mFilterTrafficData.clear();
for (MessagePad.TrackedObject data : trafficData) {
// 过滤掉未知感知数据
if (data.getType() == TrafficTypeEnum.TYPE_TRAFFIC_ID_WEI_ZHI.getType()) {
//Logger.w(TAG, "未知感知类型数据,丢弃,不渲染");
//CallerLogger.INSTANCE.w(TAG, "未知感知类型数据,丢弃,不渲染");
continue;
}
mFilterTrafficData.add(data);
@@ -148,7 +149,7 @@ public class IdentifyDataDrawer {
}
private void addPreVehicleModel() {
Logger.d(TAG, "添加感知模型到地图中……");
CallerLogger.INSTANCE.d(TAG, "添加感知模型到地图中……");
addPreVehicleModelWeiZhi(TrafficTypeEnum.TYPE_TRAFFIC_ID_WEI_ZHI, "添加感知模型到地图中……preVehicleStrWeiZhi=");
addPreVehicleModelWeiZhi(TrafficTypeEnum.TYPE_TRAFFIC_ID_PEOPLE, "添加感知模型到地图中……preVehicleStrPeople=");
@@ -176,13 +177,13 @@ public class IdentifyDataDrawer {
.getMarkerManager(mContext)
.addPreVehicleModel(typeTrafficIdWeiZhi.getType(),
typeTrafficIdWeiZhi.getTraffic3DIconId());
Logger.d(TAG, s + preVehicleStrWeiZhi);
CallerLogger.INSTANCE.d(TAG, s + preVehicleStrWeiZhi);
if (preVehicleStrWeiZhi == null) {
UiThreadHandler.postDelayed(new Runnable() {
@Override
public void run() {
Logger.w(TAG, "添加感知模型到地图中失败,尝试重复添加……");
CallerLogger.INSTANCE.w(TAG, "添加感知模型到地图中失败,尝试重复添加……");
addPreVehicleModelWeiZhi(typeTrafficIdWeiZhi, s);
}
}, 1000L);

View File

@@ -5,7 +5,6 @@ import android.text.TextUtils;
import com.mogo.cloud.commons.utils.CoordinateUtils;
import com.mogo.commons.AbsMogoApplication;
import com.mogo.eagle.core.data.map.MogoLatLng;
import com.mogo.eagle.core.utilcode.mogo.logger.Logger;
import com.mogo.map.marker.IMogoMarker;
import com.mogo.map.marker.IMogoMarkerClickListener;
import com.mogo.map.marker.MogoMarkerOptions;
@@ -129,8 +128,6 @@ class MarkerDrawer {
* @return
*/
public Map<String, IMogoMarker> purgeMarkerData(List newList, String markerType) {
final long start = System.currentTimeMillis();
Map<String, IMogoMarker> existMap = new HashMap<>();
List<IMogoMarker> allCarsList = MogoApisHandler.getInstance().getApis().getMapServiceApi().getMarkerManager(AbsMogoApplication.getApp()).getMarkers(markerType);
if (allCarsList == null || allCarsList.isEmpty()) {
@@ -163,7 +160,6 @@ class MarkerDrawer {
}
}
allMap.clear();
Logger.i("timer", "purge data cost " + (System.currentTimeMillis() - start) + "ms");
return existMap;
}

View File

@@ -3,8 +3,6 @@ package com.mogo.module.common.drawer;
import android.view.animation.LinearInterpolator;
import com.mogo.commons.AbsMogoApplication;
import com.mogo.commons.debug.DebugConfig;
import com.mogo.eagle.core.utilcode.mogo.logger.Logger;
import com.mogo.eagle.core.utilcode.mogo.thread.WorkThreadHandler;
import com.mogo.map.marker.IMogoMarker;
import com.mogo.map.marker.IMogoMarkerClickListener;
@@ -67,7 +65,6 @@ class RoadConditionDrawer {
}
int size = MarkerDrawer.getInstance().getAppropriateSize( maxAmount, exploreWayList );
Map< String, IMogoMarker > existCarMap = MarkerDrawer.getInstance().purgeMarkerData( exploreWayList, ModuleNames.CARD_TYPE_ROAD_CONDITION );
Logger.i( TAG, "existCarMap: size = %d", existCarMap.size() );
for ( int i = 0; i < size; i++ ) {
MarkerExploreWay markerExploreWay = exploreWayList.get( i );
if ( !markerExploreWay.getCanLive() ) {
@@ -82,7 +79,6 @@ class RoadConditionDrawer {
String sn = MarkerDrawer.getInstance().getPrimaryKeyFromEntity( markerExploreWay );
IMogoMarker mogoMarker = existCarMap.get( sn );
if ( mogoMarker == null || mogoMarker.isDestroyed() ) {
Logger.d( TAG, "draw road condition, sn = %s", sn );
try {
if ( MogoApisHandler.getInstance().getApis().getStatusManagerApi().isVrMode() ) {
mogoMarker = MarkerDrawer.getInstance().drawMapMarkerImpl( markerShowEntity, true, MarkerDrawer.MARKER_Z_INDEX_HIGH, listener );
@@ -114,7 +110,6 @@ class RoadConditionDrawer {
marker.startScaleAnimationWithAlpha( 0, 1.2f, 0, 1.2f, 0f, 1f, 300, new LinearInterpolator(), new OnMarkerAnimationListener() {
@Override
public void onAnimStart() {
Logger.d( TAG, " onAnimStart ---1----> " );
}
@Override

View File

@@ -4,7 +4,6 @@ import static com.mogo.module.common.constants.DataTypes.TYPE_MARKER_CLOUD_DATA;
import android.os.Build;
import android.text.TextUtils;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.ImageView;
@@ -14,7 +13,7 @@ import com.mogo.cloud.socket.entity.SocketDownData;
import com.mogo.cloud.socket.entity.SocketDownDataHelper;
import com.mogo.commons.AbsMogoApplication;
import com.mogo.eagle.core.data.map.MogoLatLng;
import com.mogo.eagle.core.utilcode.mogo.logger.Logger;
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
import com.mogo.eagle.core.utilcode.util.ViewUtils;
import com.mogo.map.marker.IMogoMarker;
import com.mogo.map.marker.IMogoMarkerClickListener;
@@ -84,7 +83,6 @@ public class SnapshotSetDataDrawer extends BaseDrawer implements IMogoMarkerClic
*/
@Override
public void onStatusChanged(StatusDescriptor descriptor, boolean isTrue) {
Logger.d(TAG, "%s - %s", descriptor, isTrue);
mChangeCarModeStatus = true;
sendMessage(MSG_REMOVE_DIRTY_MARKERS, mMarkersCaches);
removeUselessMarker(mMarkersCaches);
@@ -185,7 +183,7 @@ public class SnapshotSetDataDrawer extends BaseDrawer implements IMogoMarkerClic
// 移除超时 marker
delayRemoveUselessMarker();
removeUselessLastRecord();
Log.d("云端数据延时绘制", "render 接收数据 -> 处理结束 " + TimeUnit.NANOSECONDS.toMillis((System.nanoTime() - start)) + "ms");
CallerLogger.INSTANCE.d("云端数据延时绘制", "render 接收数据 -> 处理结束 " + TimeUnit.NANOSECONDS.toMillis((System.nanoTime() - start)) + "ms");
}
/**
@@ -221,7 +219,7 @@ public class SnapshotSetDataDrawer extends BaseDrawer implements IMogoMarkerClic
continue;
}
long internal = getCurSatelliteTime() - proto.getSatelliteTime();
Log.d("MogoArrow", "delayRemoveUselessMarker uuid : " + proto.getUuid()
CallerLogger.INSTANCE.d("MogoArrow", "delayRemoveUselessMarker uuid : " + proto.getUuid()
+ " localTime : " + getCurSatelliteTime()
+ " originTime : " + proto.getSatelliteTime()
+ " internal : " + internal);
@@ -308,7 +306,7 @@ public class SnapshotSetDataDrawer extends BaseDrawer implements IMogoMarkerClic
// msg.what = MSG_DISPLAY_SPEED;
// msg.sendToTarget();
// }
Log.d("云端数据延时", "render 刷新一台车 cost : " + TimeUnit.NANOSECONDS.toMillis((System.nanoTime() - start)));
CallerLogger.INSTANCE.d("云端数据延时", "render 刷新一台车 cost : " + TimeUnit.NANOSECONDS.toMillis((System.nanoTime() - start)));
}
/**
@@ -333,18 +331,18 @@ public class SnapshotSetDataDrawer extends BaseDrawer implements IMogoMarkerClic
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
for (SocketDownData.CloudRoadDataProto proto : in) {
SocketDownData.CloudRoadDataProto.Builder builder = proto.toBuilder();
Log.d(FORECAST, "ready to foreCast current uuid : " + proto.getUuid());
CallerLogger.INSTANCE.d(FORECAST, "ready to foreCast current uuid : " + proto.getUuid());
long internal = getCurSatelliteTime() - builder.getSatelliteTime();
if (internal <= 0) {
Log.d(FORECAST, "time internal less than 0 , uuid : " + proto.getUuid());
CallerLogger.INSTANCE.d(FORECAST, "time internal less than 0 , uuid : " + proto.getUuid());
out.add(proto);
continue;
}
long startTime = System.currentTimeMillis();
// 预测点
Log.d(FORECAST, "time internal : " + internal + " speed : " + proto.getSpeed());
CallerLogger.INSTANCE.d(FORECAST, "time internal : " + internal + " speed : " + proto.getSpeed());
double foreCastDistance = proto.getSpeed() * internal / 1000;
Log.d(FORECAST, "foreCastDistance : " + foreCastDistance);
CallerLogger.INSTANCE.d(FORECAST, "foreCastDistance : " + foreCastDistance);
MogoLatLng mogoLatLng = new MogoLatLng(proto.getWgslat(), proto.getWgslon());
MogoLatLng foreCastMogoLatLon = Trigonometric.getNewLocation(mogoLatLng, foreCastDistance, proto.getHeading());
@@ -353,7 +351,7 @@ public class SnapshotSetDataDrawer extends BaseDrawer implements IMogoMarkerClic
, foreCastMogoLatLon.getLon(), foreCastMogoLatLon.getLat());
long foreCastInternal = System.currentTimeMillis() - startTime;
Log.d(FORECAST, "foreCastInternal :" + foreCastInternal); //todo 耗时1~2毫秒 需要测试是否由于补点算法造成
CallerLogger.INSTANCE.d(FORECAST, "foreCastInternal :" + foreCastInternal); //todo 耗时1~2毫秒 需要测试是否由于补点算法造成
builder.setWgslat(foreCastMogoLatLon.getLat());
builder.setWgslon(foreCastMogoLatLon.getLon());
@@ -415,7 +413,7 @@ public class SnapshotSetDataDrawer extends BaseDrawer implements IMogoMarkerClic
if (!TextUtils.isEmpty(data.getSn())) {
bindClickListener(marker);
}
Log.d("云端数据延时", "创建一个新 marker cost : " + TimeUnit.NANOSECONDS.toMillis((System.nanoTime() - start)));
CallerLogger.INSTANCE.d("云端数据延时", "创建一个新 marker cost : " + TimeUnit.NANOSECONDS.toMillis((System.nanoTime() - start)));
return marker;
}
@@ -481,7 +479,7 @@ public class SnapshotSetDataDrawer extends BaseDrawer implements IMogoMarkerClic
try {
carChatting.showUserWindow(TAG, driverInfo, mContext);
} catch (Exception e) {
Logger.e(TAG, e, "showCarCallPanel");
CallerLogger.INSTANCE.e(TAG, e, "showCarCallPanel");
}
}*/
}

View File

@@ -11,7 +11,7 @@ import com.mogo.module.common.MogoApisHandler
import com.mogo.module.common.constants.DataTypes
import com.mogo.eagle.core.data.traffic.TrafficData
import com.mogo.eagle.core.data.enums.TrafficTypeEnum
import com.mogo.eagle.core.utilcode.mogo.logger.Logger
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.mogo.thread.WorkThreadHandler
import java.util.concurrent.ConcurrentHashMap
@@ -135,7 +135,6 @@ object TrafficMarkerDrawer {
} else {
// 循环绘制识别的数据
mTrafficMap.forEach {
//Logger.d(TAG, "drawerCvxRvInfo${it.value}")
// 如果数据已经存在 Marker取出做动画
if (mMarkersCaches[it.key] != null) {
@@ -156,7 +155,7 @@ object TrafficMarkerDrawer {
* 绘制单条
*/
private fun drawObuRecognizedDataMarker(trafficData: TrafficData) {
Logger.d(
CallerLogger.d(
TAG,
"trafficData.type = " + trafficData.type + "---trafficData.threatLevel = " + trafficData.threatLevel
)
@@ -220,7 +219,7 @@ object TrafficMarkerDrawer {
marker: IMogoMarker,
trafficData: TrafficData
) {
Logger.d(
CallerLogger.d(
TAG,
"trafficData.type = " + trafficData.type + "---trafficData.threatLevel = " + trafficData.threatLevel
)

View File

@@ -1,27 +1,22 @@
package com.mogo.module.common.drawer;
import com.mogo.eagle.core.data.map.MogoLatLng;
import com.mogo.eagle.core.utilcode.mogo.logger.Logger;
import com.mogo.eagle.core.utilcode.util.UiThreadHandler;
import com.mogo.eagle.core.utilcode.util.ViewUtils;
import com.mogo.map.marker.IMogoMarker;
import com.mogo.map.marker.MogoMarkerOptions;
import com.mogo.module.common.MogoApisHandler;
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.common.utils.Trigonometric;
import com.mogo.module.common.view.MarkerBaseFloor;
import com.mogo.service.statusmanager.IMogoStatusChangedListener;
import com.mogo.service.statusmanager.StatusDescriptor;
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;
import com.mogo.eagle.core.data.map.MogoLatLng;
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
import com.mogo.eagle.core.utilcode.util.UiThreadHandler;
import com.mogo.map.marker.IMogoMarker;
import com.mogo.map.marker.MogoMarkerOptions;
import com.mogo.module.common.MogoApisHandler;
import com.mogo.module.common.drawer.marker.IMarkerView;
import com.mogo.module.common.drawer.marker.MapMarkerAdapter;
import com.mogo.module.common.entity.MarkerLocation;
import com.mogo.module.common.entity.MarkerShowEntity;
import com.mogo.module.common.entity.V2XWarningEntity;
import com.mogo.service.statusmanager.IMogoStatusChangedListener;
import com.mogo.service.statusmanager.StatusDescriptor;
/**
* 云端 预警数据绘制
@@ -57,7 +52,7 @@ public class V2XWarnDataDrawer extends BaseDrawer implements IMogoStatusChangedL
@Override
public void onStatusChanged(StatusDescriptor descriptor, boolean isTrue) {
Logger.d(TAG, "%s - %s", descriptor, isTrue);
CallerLogger.INSTANCE.d(TAG, descriptor + " , "+ isTrue);
}
public boolean isVrMode() {

View File

@@ -6,14 +6,11 @@ import android.os.Looper;
import android.text.TextUtils;
import android.util.AttributeSet;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import androidx.annotation.Nullable;
import com.mogo.eagle.core.utilcode.mogo.logger.Logger;
import com.mogo.eagle.core.utilcode.util.UiThreadHandler;
import com.mogo.eagle.core.utilcode.util.ViewUtils;
import com.mogo.eagle.core.utilcode.util.WindowUtils;
@@ -61,37 +58,37 @@ public abstract class MapMarkerBaseView extends LinearLayout implements IMarkerV
}
@Override
public void setMarker( IMogoMarker marker ) {
public void setMarker(IMogoMarker marker) {
this.mMarker = marker;
}
protected abstract void initView( Context context);
protected abstract void initView(Context context);
public abstract void updateView(MarkerShowEntity markerShowEntity);
protected void loadImageWithMarker(final MarkerShowEntity markerShowEntity) {
if ( Looper.myLooper() != Looper.getMainLooper() ) {
UiThreadHandler.post( ()-> {
runOnUiThread( markerShowEntity );
if (Looper.myLooper() != Looper.getMainLooper()) {
UiThreadHandler.post(() -> {
runOnUiThread(markerShowEntity);
});
} else {
runOnUiThread( markerShowEntity );
runOnUiThread(markerShowEntity);
}
}
protected void loadPoiTypeIcon(String url,int res) {
protected void loadPoiTypeIcon(String url, int res) {
ivIcon.setImageResource(res);
if ( Looper.myLooper() != Looper.getMainLooper() ) {
UiThreadHandler.post( ()-> loadPoiTypeIconInUiThread(url, res));
if (Looper.myLooper() != Looper.getMainLooper()) {
UiThreadHandler.post(() -> loadPoiTypeIconInUiThread(url, res));
} else {
loadPoiTypeIconInUiThread(url, res);
}
}
private void loadPoiTypeIconInUiThread(String url,int res) {
private void loadPoiTypeIconInUiThread(String url, int res) {
if (mMarker != null) {
mMarker.setIcon( ViewUtils.fromView(MapMarkerBaseView.this));
mMarker.setIcon(ViewUtils.fromView(MapMarkerBaseView.this));
}
if (!url.isEmpty()) {
ivIcon.setPlaceHolder(res);
@@ -108,7 +105,7 @@ public abstract class MapMarkerBaseView extends LinearLayout implements IMarkerV
public void onCompleted(Bitmap bitmap) {
// 使用view渲染地图marker刷新纹理的时候需要重新用view生成纹理然后在设置
if (mMarker != null) {
mMarker.setIcon( ViewUtils.fromView(MapMarkerBaseView.this));
mMarker.setIcon(ViewUtils.fromView(MapMarkerBaseView.this));
}
}
@@ -119,7 +116,7 @@ public abstract class MapMarkerBaseView extends LinearLayout implements IMarkerV
}
}
private void runOnUiThread(final MarkerShowEntity markerShowEntity){
private void runOnUiThread(final MarkerShowEntity markerShowEntity) {
if (!TextUtils.isEmpty(markerShowEntity.getIconUrl())) {
MogoApisHandler.getInstance().getApis().getImageLoaderApi().displayImage(markerShowEntity.getIconUrl(),
ivUserHead,
@@ -132,21 +129,19 @@ public abstract class MapMarkerBaseView extends LinearLayout implements IMarkerV
@Override
public void onCompleted(Bitmap bitmap) {
Logger.d(TAG, "loadImageWithMarker loaded.");
// 使用view渲染地图marker刷新纹理的时候需要重新用view生成纹理然后在设置
if ( mMarker != null ) {
mMarker.setIcon( ViewUtils.fromView( MapMarkerBaseView.this ) );
if (mMarker != null) {
mMarker.setIcon(ViewUtils.fromView(MapMarkerBaseView.this));
}
}
@Override
public void onFailure(Exception e) {
Logger.e(TAG, "loadImageWithMarker onFailure.");
}
});
} else {
ivUserHead.setBackgroundResource( R.drawable.icon_default_user_head);
ivUserHead.setBackgroundResource(R.drawable.icon_default_user_head);
}
}

View File

@@ -10,18 +10,17 @@ import android.widget.LinearLayout;
import android.widget.TextView;
import androidx.annotation.Nullable;
import androidx.constraintlayout.widget.ConstraintLayout;
import com.mogo.eagle.core.utilcode.mogo.logger.Logger;
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
import com.mogo.map.marker.MogoMarkerOptions;
import com.mogo.module.common.ModuleNames;
import com.mogo.module.common.MogoApisHandler;
import com.mogo.module.common.R;
import com.mogo.module.common.entity.MarkerExploreWay;
import com.mogo.module.common.entity.MarkerShareMusic;
import com.mogo.module.common.entity.MarkerShowEntity;
import com.mogo.module.common.marker.PoiWrapper;
import com.mogo.module.common.utils.CloudPoiManager;
import com.mogo.module.common.R;
/**
* author : donghongyu
@@ -37,98 +36,98 @@ public class MapMarkerInfoView extends MapMarkerBaseView {
private LinearLayout clMarkerContent;
private ImageView ivReverseTriangle;
public MapMarkerInfoView( Context context ) {
super( context );
public MapMarkerInfoView(Context context) {
super(context);
}
public MapMarkerInfoView( Context context, @Nullable AttributeSet attrs ) {
super( context, attrs );
public MapMarkerInfoView(Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
}
public MapMarkerInfoView( Context context, @Nullable AttributeSet attrs, int defStyleAttr ) {
super( context, attrs, defStyleAttr );
public MapMarkerInfoView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
public MapMarkerInfoView( Context context, MarkerShowEntity markerShowEntity, MogoMarkerOptions options ) {
super( context );
public MapMarkerInfoView(Context context, MarkerShowEntity markerShowEntity, MogoMarkerOptions options) {
super(context);
mOptions = options;
try {
updateView( markerShowEntity );
} catch ( Exception e ) {
updateView(markerShowEntity);
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
protected void initView( Context context ) {
LayoutInflater.from( context ).inflate( R.layout.modudle_services_marker_layout_info, this );
ivUserHead = findViewById( R.id.ivUserHead );
protected void initView(Context context) {
LayoutInflater.from(context).inflate(R.layout.modudle_services_marker_layout_info, this);
ivUserHead = findViewById(R.id.ivUserHead);
// ivIcon = findViewById( R.id.ivIcon );
ivIcon = findViewById( R.id.ivIcon );
clMarkerContent = findViewById( R.id.clMarkerContent );
ivReverseTriangle = findViewById( R.id.ivReverseTriangle );
ivCar = findViewById( R.id.ivCar );
tvMarkerContent = findViewById( R.id.tvMarkerContent );
ivIcon = findViewById(R.id.ivIcon);
clMarkerContent = findViewById(R.id.clMarkerContent);
ivReverseTriangle = findViewById(R.id.ivReverseTriangle);
ivCar = findViewById(R.id.ivCar);
tvMarkerContent = findViewById(R.id.tvMarkerContent);
}
@Override
public void updateView( MarkerShowEntity markerShowEntity ) {
public void updateView(MarkerShowEntity markerShowEntity) {
Object bindObj = markerShowEntity.getBindObj();
if ( MogoApisHandler.getInstance().getApis().getStatusManagerApi().isVrMode() ) {
ivCar.setImageResource( R.drawable.icon_map_marker_location_yellow_vr );
if (MogoApisHandler.getInstance().getApis().getStatusManagerApi().isVrMode()) {
ivCar.setImageResource(R.drawable.icon_map_marker_location_yellow_vr);
} else {
ivCar.setImageResource( R.drawable.icon_map_marker_location_yellow );
ivCar.setImageResource(R.drawable.icon_map_marker_location_yellow);
}
clMarkerContent.setBackgroundResource( R.drawable.bg_map_marker_yellow_info );
ivReverseTriangle.setImageResource( R.drawable.bg_shape_reverse_yellow );
switch ( markerShowEntity.getMarkerType() ) {
clMarkerContent.setBackgroundResource(R.drawable.bg_map_marker_yellow_info);
ivReverseTriangle.setImageResource(R.drawable.bg_shape_reverse_yellow);
switch (markerShowEntity.getMarkerType()) {
case ModuleNames.CARD_TYPE_CARS_CHATTING:
case ModuleNames.CARD_TYPE_USER_DATA:
ivUserHead.setVisibility( View.VISIBLE );
ivIcon.setVisibility( View.INVISIBLE );
loadImageWithMarker( markerShowEntity );
ivCar.setImageResource( R.drawable.icon_map_marker_car_gray );
ivUserHead.setVisibility(View.VISIBLE);
ivIcon.setVisibility(View.INVISIBLE);
loadImageWithMarker(markerShowEntity);
ivCar.setImageResource(R.drawable.icon_map_marker_car_gray);
//ivCar.setRotation(new Random().nextInt(360));
ivCar.setRotation( ( float ) markerShowEntity.getMarkerLocation().getAngle() );
ivCar.setRotation((float) markerShowEntity.getMarkerLocation().getAngle());
break;
case ModuleNames.CARD_TYPE_ROAD_CONDITION:
case ModuleNames.CARD_TYPE_NOVELTY:
ivUserHead.setVisibility( View.INVISIBLE );
ivIcon.setVisibility( View.VISIBLE );
ivUserHead.setVisibility(View.INVISIBLE);
ivIcon.setVisibility(View.VISIBLE);
if ( bindObj instanceof MarkerExploreWay && ( ( MarkerExploreWay ) bindObj ).getPoiType() != null ) {
if (bindObj instanceof MarkerExploreWay && ((MarkerExploreWay) bindObj).getPoiType() != null) {
// 根据poiType获取对应的图片
String poiType = ( ( MarkerExploreWay ) bindObj ).getPoiType();
String poiType = ((MarkerExploreWay) bindObj).getPoiType();
PoiWrapper poiWrapper =
CloudPoiManager.getInstance().getWrapperByPoiType( poiType );
if ( poiWrapper != null ) {
CloudPoiManager.getInstance().getWrapperByPoiType(poiType);
if (poiWrapper != null) {
// 加载图片
loadPoiTypeIcon( poiWrapper.getIconInfoUrl(), poiWrapper.getIconInfoRes() );
loadPoiTypeIcon(poiWrapper.getIconInfoUrl(), poiWrapper.getIconInfoRes());
} else {
Logger.e( TAG, "未能根据poiType获取对应poi信息无法渲染info marker====" + poiType );
CallerLogger.INSTANCE.e(TAG, "未能根据poiType获取对应poi信息无法渲染info marker====" + poiType);
}
}
break;
case ModuleNames.CARD_TYPE_SHARE_MUSIC:
ivUserHead.setVisibility( View.INVISIBLE );
ivIcon.setVisibility( View.VISIBLE );
ivUserHead.setVisibility(View.INVISIBLE);
ivIcon.setVisibility(View.VISIBLE);
if ( bindObj instanceof MarkerShareMusic ) {
if (bindObj instanceof MarkerShareMusic) {
// 2 为书籍听书3 为新闻,1 为qq音乐,int
switch ( ( ( MarkerShareMusic ) bindObj ).getShareType() ) {
switch (((MarkerShareMusic) bindObj).getShareType()) {
case 1:
ivIcon.setImageResource( R.drawable.icon_map_marker_misic );
ivIcon.setImageResource(R.drawable.icon_map_marker_misic);
break;
case 2:
ivIcon.setImageResource( R.drawable.icon_map_marker_book );
ivIcon.setImageResource(R.drawable.icon_map_marker_book);
break;
case 3:
ivIcon.setImageResource( R.drawable.icon_map_marker_news );
ivIcon.setImageResource(R.drawable.icon_map_marker_news);
break;
default:
ivIcon.setImageResource( R.drawable.icon_map_marker_misic );
ivIcon.setImageResource(R.drawable.icon_map_marker_misic);
break;
}
}
@@ -137,14 +136,14 @@ public class MapMarkerInfoView extends MapMarkerBaseView {
default:
break;
}
if ( !TextUtils.isEmpty( markerShowEntity.getTextContent() ) ) {
if (!TextUtils.isEmpty(markerShowEntity.getTextContent())) {
String content;
if ( markerShowEntity.getTextContent().length() > 8 ) {
content = markerShowEntity.getTextContent().substring( 0, 7 ) + "...";
if (markerShowEntity.getTextContent().length() > 8) {
content = markerShowEntity.getTextContent().substring(0, 7) + "...";
} else {
content = markerShowEntity.getTextContent();
}
tvMarkerContent.setText( content );
tvMarkerContent.setText(content);
}
}

View File

@@ -7,7 +7,7 @@ import android.widget.FrameLayout;
import androidx.annotation.Nullable;
import com.mogo.eagle.core.utilcode.mogo.logger.Logger;
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
import com.mogo.map.marker.MogoMarkerOptions;
import com.mogo.module.common.ModuleNames;
import com.mogo.module.common.MogoApisHandler;
@@ -83,7 +83,7 @@ public class MapMarkerView extends MapMarkerBaseView {
// 加载图片
loadPoiTypeIcon( poiWrapper.getIconUrl(), poiWrapper.getIconRes() );
} else {
Logger.e( TAG, "未能根据poiType获取对应poi信息无法渲染marker====" + poiType );
CallerLogger.INSTANCE.e( TAG, "未能根据poiType获取对应poi信息无法渲染marker====" + poiType );
}
}
break;

View File

@@ -1,41 +0,0 @@
package com.mogo.module.common.drawer.marker;
import android.content.Context;
import android.view.View;
import com.mogo.eagle.core.utilcode.mogo.logger.Logger;
import com.mogo.map.marker.IMogoInfoWindowAdapter;
import com.mogo.map.marker.IMogoMarker;
import com.mogo.map.marker.MogoMarkerOptions;
import com.mogo.module.common.entity.MarkerShowEntity;
public
/**
* @author congtaowang
* @since 2020/12/15
*
* 描述
*/
class RoadConditionInfoWindow3DAdapter implements IMogoInfoWindowAdapter {
private static final String TAG = "RoadConditionInfoWindow3DAdapter";
private MarkerShowEntity mEntity;
private Context mContext;
private MogoMarkerOptions mOptions;
public RoadConditionInfoWindow3DAdapter( MarkerShowEntity entity,
Context context,
MogoMarkerOptions options ) {
this.mEntity = entity;
this.mContext = context;
this.mOptions = options;
}
@Override
public View getInfoWindow( IMogoMarker marker ) {
Logger.d( TAG, "创建marker的infowindow" );
IMarkerView creator = MapMarkerAdapter.getMarkerInfoWindowView( mContext, mEntity, mOptions );
return creator.getView();
}
}

View File

@@ -1,25 +0,0 @@
package com.mogo.module.common.error;
import android.content.Context;
import com.alibaba.android.arouter.facade.Postcard;
import com.alibaba.android.arouter.facade.service.DegradeService;
import com.mogo.eagle.core.utilcode.mogo.logger.Logger;
/**
* 自定义当个 ARouter 加载失败的服务
* @author donghongyu
*/
public class ARoutDegradeService implements DegradeService {
private String TAG = this.getClass().getSimpleName();
@Override
public void onLost(Context context, Postcard postcard) {
Logger.w(TAG, "postcard:" + postcard);
}
@Override
public void init(Context context) {
}
}

View File

@@ -5,7 +5,7 @@ import android.content.Context;
import android.util.ArrayMap;
import com.mogo.eagle.core.network.utils.GsonUtil;
import com.mogo.eagle.core.utilcode.mogo.logger.Logger;
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr;
import com.mogo.module.common.R;
import com.mogo.module.common.enums.EventTypeEnum;
@@ -92,7 +92,7 @@ public class CloudPoiManager {
String config = SharedPrefsMgr.getInstance(context).getString("SHARE_BUTTON_CONFIG", "");
if (!config.isEmpty()) {
List<PoiWrapper> configWrappers = GsonUtil.arrayFromJson(config, PoiWrapper.class);
Logger.d(TAG, "config: " + configWrappers);
CallerLogger.INSTANCE.d(TAG, "config: " + configWrappers);
if (configWrappers != null) {
for (PoiWrapper wrapper : configWrappers) {
wrapper.setIconInfoRes(R.drawable.module_common_icon_map_marker_road_block_up2_white);
@@ -104,11 +104,11 @@ public class CloudPoiManager {
wrapper.setIconInfoRes(defWrapper.getIconInfoRes());
}
}
Logger.d(TAG, "put===" + wrapper);
CallerLogger.INSTANCE.d(TAG, "put===" + wrapper);
poiWrapper.put(wrapper.getPoiType(), wrapper);
}
} else {
Logger.e(TAG, "解析configWrapper异常: " + config);
CallerLogger.INSTANCE.e(TAG, "解析configWrapper异常: " + config);
}
}
}

View File

@@ -25,7 +25,6 @@ public class DrivingDirectionUtils {
int poiAngle = 0;
// 以子午线作为y轴 计算两点的余切 再将余切值转化为角度
double _angle = Math.atan2(Math.abs(carLon - poiLon), Math.abs(carLat - poiLat)) * (180 / PI);
//Log.w(MODULE_NAME, "getDegreeOfCar2Poi_计算车辆行驶方向 与 poi点到车辆的连线 间的夹角_angle===" + _angle);
if (poiLon > carLon) {
// poi 在 车辆位置的第1象限
if (poiLat > carLat) {

View File

@@ -1,31 +0,0 @@
package com.mogo.module.common.view;
import android.content.Context;
import android.util.AttributeSet;
import android.util.Log;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
public class LinearLayoutCommonManager extends LinearLayoutManager {
public LinearLayoutCommonManager(Context context) {
super(context);
}
public LinearLayoutCommonManager(Context context, int orientation, boolean reverseLayout) {
super(context, orientation, reverseLayout);
}
public LinearLayoutCommonManager(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
}
@Override
public void onLayoutChildren(RecyclerView.Recycler recycler, RecyclerView.State state) {
try {
super.onLayoutChildren(recycler, state);
} catch (IndexOutOfBoundsException e) {
Log.d("V2XLinearLayoutManager", "崩溃信息--"+e.toString());
}
}
}

View File

@@ -5,7 +5,6 @@ import android.app.Dialog;
import android.view.View;
import android.view.ViewGroup;
import com.mogo.eagle.core.utilcode.mogo.logger.Logger;
import com.mogo.module.common.dialog.BaseFloatDialog;
/**
@@ -17,10 +16,8 @@ class DialogImpl implements IWindowManagerView {
@Override
public void init(WindowManagerView.WMViewParams params) {
Logger.d("DialogImpl", "init====");
dialog = new BaseFloatDialog(params.mContext);
contentView = params.mContentView;
Logger.d("DialogImpl", "params view : " + contentView);
dialog.setContentView(contentView);
}