diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index bb9630b495..5121884a7f 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -4,6 +4,7 @@
package="com.mogo.launcher">
+
{
+
+ private PointF pointF1;
+ private PointF pointF2;
+
+ public BezierEvaluator(PointF point1, PointF point2) {
+ this.pointF1 = point1;
+ this.pointF2 = point2;
+ }
+
+ @Override
+ public PointF evaluate(float time, PointF startValue, PointF endValue) {
+ float timeLeft = 1.0f - time;
+
+ //结果
+ PointF point = new PointF();
+
+ PointF point0 = (PointF)startValue;//起点
+ PointF point3 = (PointF)endValue;//终点
+
+ // 贝塞尔公式
+ point.x = timeLeft * timeLeft * timeLeft * (point0.x)
+ + 3 * timeLeft * timeLeft * time * (pointF1.x)
+ + 3 * timeLeft * time * time * (pointF2.x)
+ + time * time * time * (point3.x);
+
+ point.y = timeLeft * timeLeft * timeLeft * (point0.y)
+ + 3 * timeLeft * timeLeft * time * (pointF1.y)
+ + 3 * timeLeft * time * time * (pointF2.y)
+ + time * time * time * (point3.y);
+
+ return point;
+ }
+}
\ No newline at end of file
diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/animation/BezierListener.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/animation/BezierListener.java
new file mode 100644
index 0000000000..04ab1129c2
--- /dev/null
+++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/animation/BezierListener.java
@@ -0,0 +1,24 @@
+package com.mogo.module.common.animation;
+
+import android.animation.ValueAnimator;
+import android.graphics.PointF;
+import android.view.View;
+
+public class BezierListener implements ValueAnimator.AnimatorUpdateListener {
+
+ private View target;
+
+ public BezierListener(View target) {
+ this.target = target;
+ }
+
+ @Override
+ public void onAnimationUpdate(ValueAnimator animation) {
+ //这里获取到贝塞尔曲线计算出来的的x y值 赋值给view 这样就能让爱心随着曲线走啦
+ PointF pointF = (PointF) animation.getAnimatedValue();
+ target.setX(pointF.x);
+ target.setY(pointF.y);
+ // 这里偷个懒,顺便做一个alpha动画,这样alpha渐变也完成啦
+ target.setAlpha(1 - animation.getAnimatedFraction());
+ }
+}
\ No newline at end of file
diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/marker/MapCameraInfoView.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/marker/MapCameraInfoView.java
index d6f3990014..9d88d0b644 100644
--- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/marker/MapCameraInfoView.java
+++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/marker/MapCameraInfoView.java
@@ -3,6 +3,7 @@ package com.mogo.module.common.drawer.marker;
import android.content.Context;
import android.text.TextUtils;
import android.util.AttributeSet;
+import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.ImageView;
diff --git a/modules/mogo-module-common/src/main/res/drawable-xhdpi/icon_common_heart_animation_vr00.png b/modules/mogo-module-common/src/main/res/drawable-xhdpi/icon_common_heart_animation_vr00.png
new file mode 100644
index 0000000000..5246d61ccc
Binary files /dev/null and b/modules/mogo-module-common/src/main/res/drawable-xhdpi/icon_common_heart_animation_vr00.png differ
diff --git a/modules/mogo-module-common/src/main/res/drawable-xhdpi/icon_common_heart_animation_vr01.png b/modules/mogo-module-common/src/main/res/drawable-xhdpi/icon_common_heart_animation_vr01.png
new file mode 100644
index 0000000000..5246d61ccc
Binary files /dev/null and b/modules/mogo-module-common/src/main/res/drawable-xhdpi/icon_common_heart_animation_vr01.png differ
diff --git a/modules/mogo-module-common/src/main/res/drawable-xhdpi/icon_common_heart_animation_vr02.png b/modules/mogo-module-common/src/main/res/drawable-xhdpi/icon_common_heart_animation_vr02.png
new file mode 100644
index 0000000000..5246d61ccc
Binary files /dev/null and b/modules/mogo-module-common/src/main/res/drawable-xhdpi/icon_common_heart_animation_vr02.png differ
diff --git a/modules/mogo-module-common/src/main/res/layout/modudle_camera_layout_info.xml b/modules/mogo-module-common/src/main/res/layout/modudle_camera_layout_info.xml
index 360fbb6d4a..39535e2391 100644
--- a/modules/mogo-module-common/src/main/res/layout/modudle_camera_layout_info.xml
+++ b/modules/mogo-module-common/src/main/res/layout/modudle_camera_layout_info.xml
@@ -15,8 +15,4 @@
android:layout_height="wrap_content"
android:src="@drawable/module_camera_real_time_traffic" />
-
-
\ No newline at end of file
diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/live/CameraLiveGSYVideoView.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/live/CameraLiveGSYVideoView.java
index 19c37173f7..2f39286ae9 100644
--- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/live/CameraLiveGSYVideoView.java
+++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/live/CameraLiveGSYVideoView.java
@@ -113,7 +113,7 @@ public class CameraLiveGSYVideoView extends LiveRoundLayout implements IMogoSkin
private void playLiveVideo(String liveUrl) {
try {
if (mLivePlayer != null) {
- mLivePlayer.startPlay(liveUrl, TXLivePlayer.PLAY_TYPE_LIVE_RTMP);
+ mLivePlayer.startPlay(liveUrl, TXLivePlayer.PLAY_TYPE_LIVE_FLV);
mLivePlayer.setPlayListener(new ITXLivePlayListener() {
@Override
public void onPlayEvent(int event, Bundle bundle) {
diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/net/DelayCheckApiServices.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/net/DelayCheckApiServices.java
new file mode 100644
index 0000000000..a4089b37e3
--- /dev/null
+++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/net/DelayCheckApiServices.java
@@ -0,0 +1,26 @@
+package com.mogo.module.extensions.net;
+
+import com.mogo.commons.data.BaseData;
+
+import java.util.Map;
+
+import io.reactivex.Observable;
+import retrofit2.http.FieldMap;
+import retrofit2.http.FormUrlEncoded;
+import retrofit2.http.GET;
+import retrofit2.http.POST;
+
+/**
+ * 时延验证相关接口
+ *
+ * @author tongchenfei
+ */
+public interface DelayCheckApiServices {
+
+ @GET("/")
+ Observable emptyInterface();
+
+ @POST("/")
+ @FormUrlEncoded
+ Observable uploadDelayCheckData(@FieldMap Map params);
+}
diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/utils/CameraLiveNoticeHelper.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/utils/CameraLiveNoticeHelper.java
index cecf99c144..d796926105 100644
--- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/utils/CameraLiveNoticeHelper.java
+++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/utils/CameraLiveNoticeHelper.java
@@ -34,7 +34,7 @@ public class CameraLiveNoticeHelper implements IMogoOnWebSocketMessageListener {
- mCloudRoadData = new CloudRoadData();
- mCloudRoadData.setRtmpUrl("rtmp://58.200.131.2:1935/livetv/hunantv");
- mCloudRoadData.setLat(40.200353);
- mCloudRoadData.setLon(116.745467);
-// CameraLiveManager.getInstance().init(mCloudRoadData);
- addCameraMarker(mCloudRoadData);
- }, 2_000);
+// if (!isFirst) {
+// isFirst = true;
+// UiThreadHandler.postDelayed(() -> {
+// mCloudRoadData = new CloudRoadData();
+//// mCloudRoadData.setRtmpUrl("rtmp://58.200.131.2:1935/livetv/hunantv");
+// mCloudRoadData.setRtmpUrl("http://video.zhidaozhixing.com/live/rec_12_22.flv");
+//
+// mCloudRoadData.setLat(39.969089);
+// mCloudRoadData.setLon(116.418009);
+//
+//// CameraLiveManager.getInstance().init(mCloudRoadData);
+// addCameraMarker(mCloudRoadData);
+// }, 2_000);
+// }
}
public void exitVrMode() {
Logger.d(TAG, "退出vr模式===");
+// removeCameraMarker();
+// isFirst = false;
MogoApisHandler.getInstance().getApis().getWebSocketManagerApi(mContext).unregisterOnWebSocketMessageListener(this);
}
@@ -90,15 +98,13 @@ public class CameraLiveNoticeHelper implements IMogoOnWebSocketMessageListener(RequestOptions.create(context)) {
+ @Override
+ public void onSuccess(BaseData o) {
+ super.onSuccess(o);
+ netDelay = SystemClock.elapsedRealtime() - requestTime;
+
+ startUpload();
+
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ super.onError(e);
+ }
+
+ @Override
+ public void onError(String message, int code) {
+ super.onError(message, code);
+ }
+ });
+ }
+
+ private void startUpload(){
+ Map params = new HashMap<>();
+ MogoApisHandler.getInstance().getApis().getNetworkApi()
+ .create(DelayCheckApiServices.class, DztHttpConstant.getBaseUrl())
+ .uploadDelayCheckData(params).observeOn(Schedulers.io()).subscribeOn(Schedulers.io())
+ .subscribe(new SubscribeImpl(RequestOptions.create(context)) {
+ @Override
+ public void onSuccess(BaseData o) {
+ super.onSuccess(o);
+
+ handler.sendEmptyMessageDelayed(MSG_START_DELAY_CHECK, DELAY_CHECK_DELAY);
+ }
+
+ @Override
+ public void onError(String message, int code) {
+ super.onError(message, code);
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ super.onError(e);
+ }
+ });
+ }
+}
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-ldpi/icon_space.png b/modules/mogo-module-extensions/src/main/res/drawable-ldpi/icon_space.png
new file mode 100644
index 0000000000..a2350b85a8
Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-ldpi/icon_space.png differ
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-mdpi/icon_space.png b/modules/mogo-module-extensions/src/main/res/drawable-mdpi/icon_space.png
new file mode 100644
index 0000000000..a2350b85a8
Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-mdpi/icon_space.png differ
diff --git a/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/icon_space.png b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/icon_space.png
new file mode 100644
index 0000000000..a2350b85a8
Binary files /dev/null and b/modules/mogo-module-extensions/src/main/res/drawable-xhdpi/icon_space.png differ
diff --git a/modules/mogo-module-extensions/src/main/res/layout/include_debug_panel.xml b/modules/mogo-module-extensions/src/main/res/layout/include_debug_panel.xml
index 560df074ee..4242b5b5e6 100644
--- a/modules/mogo-module-extensions/src/main/res/layout/include_debug_panel.xml
+++ b/modules/mogo-module-extensions/src/main/res/layout/include_debug_panel.xml
@@ -135,6 +135,5 @@
android:layout_height="wrap_content"
android:id="@+id/groupDebugPanel"
android:visibility="gone"
- tools:visibility="visible"
app:constraint_referenced_ids="btnCloseLog,btnOpenLog,btnOpenV2xPanel,tvObuSetTitle,tvLogSetTitle,tvV2xSetTitle,rgObuSet,ibDebugPanelClose,debugPanelBg" />
\ No newline at end of file
diff --git a/modules/mogo-module-extensions/src/main/res/values/dimens.xml b/modules/mogo-module-extensions/src/main/res/values/dimens.xml
index 30d6518fb6..ea9ab4a5eb 100644
--- a/modules/mogo-module-extensions/src/main/res/values/dimens.xml
+++ b/modules/mogo-module-extensions/src/main/res/values/dimens.xml
@@ -214,8 +214,8 @@
464px
304px
- 20px
- 8px
+ 40px
+ 28px
100px
60px
48px
diff --git a/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainActivity.java b/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainActivity.java
index 664c95a6ef..e23dc28f2f 100644
--- a/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainActivity.java
+++ b/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainActivity.java
@@ -34,6 +34,7 @@ import com.mogo.service.fragmentmanager.IMogoFragmentManager;
import com.mogo.service.module.IMogoModuleProvider;
import com.mogo.service.statusmanager.IMogoStatusManager;
import com.mogo.skin.support.SkinMode;
+import com.mogo.utils.NetworkUtils;
import com.mogo.utils.UiThreadHandler;
import com.mogo.utils.logger.Logger;
import com.zhidao.adasconfig.api.AdasConfigApiController;
@@ -140,6 +141,8 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme
super.onCreate( savedInstanceState );
ContextHolderUtil.holdContext(this);
mPresenter.postLoadModuleMsg();
+
+ NetworkUtils.listenNetStrength(this);
}
private void init() {
diff --git a/modules/mogo-module-media/src/main/java/com/mogo/module/media/widget/CircleNumberProgress.java b/modules/mogo-module-media/src/main/java/com/mogo/module/media/widget/CircleNumberProgress.java
index 1334310de3..ecd1fa5405 100644
--- a/modules/mogo-module-media/src/main/java/com/mogo/module/media/widget/CircleNumberProgress.java
+++ b/modules/mogo-module-media/src/main/java/com/mogo/module/media/widget/CircleNumberProgress.java
@@ -1,6 +1,7 @@
package com.mogo.module.media.widget;
import android.content.Context;
+import android.content.res.TypedArray;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.Path;
@@ -9,6 +10,7 @@ import android.graphics.RectF;
import android.util.AttributeSet;
import android.view.View;
+import com.mogo.module.media.R;
import com.mogo.module.media.utils.Utils;
/**
@@ -24,10 +26,12 @@ public class CircleNumberProgress extends View {
private int paintTextSize = 20;
/** 未完成进度条的颜色 */
- private int paintUndoneColor = 0xffaaaaaa;
+// private int paintUndoneColor = 0xffaaaaaa;
+ private int paintUndoneColor;
/** 已完成进度条的颜色 */
- private int paintDoneColor = 0xff67aae4;
+// private int paintDoneColor = 0xff67aae4;
+ private int paintDoneColor;
/** 百分比文字的颜色 */
private int paintTextColor = 0xffff0077;
@@ -70,6 +74,12 @@ public class CircleNumberProgress extends View {
public CircleNumberProgress(Context context, AttributeSet attrs) {
super(context, attrs);
this.context = context;
+ TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.PercentageRing);
+ //中间圆的背景颜色 默认为浅紫色
+ paintUndoneColor = typedArray.getColor(R.styleable.PercentageRing_circleBackground, 0xffafb4db);
+ //外圆环的颜色 默认为深紫色
+ paintDoneColor = typedArray.getColor(R.styleable.PercentageRing_ringColor, 0xff6950a1);
+
// 构造器中初始化数据
initData();
}
diff --git a/modules/mogo-module-media/src/main/java/com/mogo/module/media/window/MediaWindow2.java b/modules/mogo-module-media/src/main/java/com/mogo/module/media/window/MediaWindow2.java
index d30717caea..6acb0415ac 100644
--- a/modules/mogo-module-media/src/main/java/com/mogo/module/media/window/MediaWindow2.java
+++ b/modules/mogo-module-media/src/main/java/com/mogo/module/media/window/MediaWindow2.java
@@ -314,16 +314,9 @@ public class MediaWindow2 implements IMusicView , IMogoStatusChangedListener {
// GlideApp.with(mContext).applyDefaultRequestOptions(options).load(mMediaInfoData.getMediaImg()).into(new SkinAbleBitmapTarget(mCircleImg, options));
}else{
Logger.e(TAG, "mMediaInfoData == null ");
-// mAnimCircleImageView.setImageResource(R.drawable.module_media_default_music_img);
- int size =
- mContext.getResources().getDimensionPixelSize(R.dimen.module_media_pop_window_anim_img_size_new);
- com.bumptech.glide.request.RequestOptions options =
- new com.bumptech.glide.request.RequestOptions()
- .placeholder(R.drawable.module_media_default_music_img).error(R.drawable.module_media_default_music_img).override(size, size);
- GlideApp.with(mContext).asBitmap().apply(options).load("").into(new SkinAbleBitmapTarget(mAnimCircleImageView, options));
+ mAnimCircleImageView.setImageResource(R.drawable.module_media_default_music_img);
}
}
-
} else {
if (mScrollText != null) {
mScrollText.setText(mMediaInfoData.getMediaName());
diff --git a/modules/mogo-module-media/src/main/res/layout/module_media_music_window_alert_layout_new.xml b/modules/mogo-module-media/src/main/res/layout/module_media_music_window_alert_layout_new.xml
index 8c0e5dbe4d..d36414c4b7 100644
--- a/modules/mogo-module-media/src/main/res/layout/module_media_music_window_alert_layout_new.xml
+++ b/modules/mogo-module-media/src/main/res/layout/module_media_music_window_alert_layout_new.xml
@@ -11,6 +11,8 @@
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintRight_toRightOf="parent"
+ app:circleBackground="@color/modules_media_music_bg_color"
+ app:ringColor="@color/modules_media_music_circle_color"
android:layout_width="match_parent"
android:layout_height="match_parent" />
diff --git a/modules/mogo-module-media/src/main/res/values/colors.xml b/modules/mogo-module-media/src/main/res/values/colors.xml
index b0944c76eb..b6ca26aca2 100644
--- a/modules/mogo-module-media/src/main/res/values/colors.xml
+++ b/modules/mogo-module-media/src/main/res/values/colors.xml
@@ -3,5 +3,5 @@
#fff
#7affffff
#444E6E
- #B63737
+ #80ffffff
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 9ab2c99113..dba93d41c8 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
@@ -11,6 +11,7 @@ import android.location.LocationManager;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
+import android.util.Log;
import com.mogo.commons.AbsMogoApplication;
import com.mogo.module.common.entity.CloudLocationInfo;
@@ -121,7 +122,11 @@ public class MogoRTKLocation {
cloudLocationInfo.setSpeed(location.getSpeed());
cloudLocationInfo.setSatelliteTime(location.getTime());
cloudLocationInfo.setSystemTime(System.currentTimeMillis());
+
+// Log.e("liyz", "lat = " + location.getLatitude() + ">>>>long = " + location.getLongitude());
cacheList.add(cloudLocationInfo);
+ } else {
+ Logger.e(TAG, "location == null");
}
}
diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/manager/impl/MoGoV2XMarkerManager.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/manager/impl/MoGoV2XMarkerManager.java
index 21e184ed1f..9e3b9b2ad7 100644
--- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/manager/impl/MoGoV2XMarkerManager.java
+++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/manager/impl/MoGoV2XMarkerManager.java
@@ -4,14 +4,17 @@ import android.content.Context;
import android.graphics.Bitmap;
import com.alibaba.android.arouter.facade.annotation.Route;
+import com.mogo.commons.AbsMogoApplication;
import com.mogo.map.MogoLatLng;
import com.mogo.map.location.MogoLocation;
import com.mogo.map.marker.IMogoMarker;
import com.mogo.map.marker.IMogoMarkerClickListener;
import com.mogo.map.marker.MogoMarkerOptions;
import com.mogo.map.uicontroller.EnumMapUI;
+import com.mogo.module.common.drawer.MarkerDrawer;
import com.mogo.module.common.drawer.marker.IMarkerView;
import com.mogo.module.common.drawer.marker.MapMarkerAdapter;
+import com.mogo.module.common.drawer.marker.RoadConditionInfoWindow3DAdapter;
import com.mogo.module.common.entity.MarkerCardResult;
import com.mogo.module.common.entity.MarkerExploreWay;
import com.mogo.module.common.entity.MarkerLocation;
@@ -532,6 +535,13 @@ public class MoGoV2XMarkerManager implements IMoGoV2XMarkerManager {
.longitude(roadEventEntity.getLocation().getLon());
optionsRipple.anchor(0.5f, 0.5f);
+ MarkerShowEntity markerShowEntity = new MarkerShowEntity();
+ MarkerExploreWay markerExploreWay = roadEventEntity.getNoveltyInfo();
+ markerShowEntity.setBindObj(markerExploreWay);
+ markerShowEntity.setMarkerLocation(markerExploreWay.getLocation());
+ markerShowEntity.setMarkerType(markerExploreWay.getPoiType());
+ markerShowEntity.setTextContent(markerExploreWay.getPoiType());
+
// 由于性能问题,D车机不使用事件扩散动画
if (!CarSeries.isF8xxSeries()) {
optionsRipple.icon(V2XMarkerAdapter.getV2XRoadEventViewPng(context, roadEventEntity));
@@ -539,8 +549,13 @@ public class MoGoV2XMarkerManager implements IMoGoV2XMarkerManager {
optionsRipple.icons(V2XMarkerAdapter.getV2XRoadEventViewGif(context, roadEventEntity));
optionsRipple.period(1);
}
-
- mAlarmInfoMarker = V2XServiceManager.getMarkerManager().addMarker(V2X_EVENT_ALARM_POI, optionsRipple);
+ if (V2XServiceManager.getMoGoStatusManager().isVrMode()) {
+ mAlarmInfoMarker = MarkerDrawer.getInstance().drawMapMarkerImpl(markerShowEntity, MarkerDrawer.MARKER_Z_INDEX_HIGH, clickListener);
+ mAlarmInfoMarker.setInfoWindowAdapter(new RoadConditionInfoWindow3DAdapter(markerShowEntity, AbsMogoApplication.getApp(), mAlarmInfoMarker.getMogoMarkerOptions()));
+ mAlarmInfoMarker.showInfoWindow();
+ } else {
+ mAlarmInfoMarker = V2XServiceManager.getMarkerManager().addMarker(V2X_EVENT_ALARM_POI, optionsRipple);
+ }
// 当前Marker设置为最上面
mAlarmInfoMarker.setToTop();
// 绘制连接线