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 \ 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(); // 绘制连接线