From 7a098ab2c9abe8ebc65b0c5e45fbe0fc5a48efb7 Mon Sep 17 00:00:00 2001 From: renwj Date: Thu, 13 Jul 2023 19:22:32 +0800 Subject: [PATCH 1/5] =?UTF-8?q?[3.4.0][=E7=BA=BF=E7=A8=8B=E4=BC=98?= =?UTF-8?q?=E5=8C=96]=20=E5=A2=9E=E5=8A=A0=E9=92=88=E5=AF=B9=E6=8C=87?= =?UTF-8?q?=E5=AE=9A=E7=BA=BF=E7=A8=8B=E5=90=8D(=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E6=AD=A3=E5=88=99)=E8=AE=BE=E7=BD=AE=E4=BC=98=E5=85=88?= =?UTF-8?q?=E7=BA=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config.gradle | 2 +- .../function/startup/stageone/ThreadOptStartup.kt | 13 ++++++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/config.gradle b/config.gradle index 84b0700d09..692dd598bd 100644 --- a/config.gradle +++ b/config.gradle @@ -214,7 +214,7 @@ ext { //========================= autosize ====================== androidautoSize : 'com.github.JessYanCoding:AndroidAutoSize:v1.2.1', - thread_opt : "com.mogo.thread.opt:lib:${plugin_version}", + thread_opt : "com.mogo.thread.opt:lib:10.1.1_mogo", weak_network : "com.mogo.weak:network:1.0.0", btrace : "com.bytedance.btrace:rhea-core:2.0.0", diff --git a/core/function-impl/mogo-core-function-startup/src/main/java/com/mogo/eagle/core/function/startup/stageone/ThreadOptStartup.kt b/core/function-impl/mogo-core-function-startup/src/main/java/com/mogo/eagle/core/function/startup/stageone/ThreadOptStartup.kt index 2a638e189b..cb2999eda0 100644 --- a/core/function-impl/mogo-core-function-startup/src/main/java/com/mogo/eagle/core/function/startup/stageone/ThreadOptStartup.kt +++ b/core/function-impl/mogo-core-function-startup/src/main/java/com/mogo/eagle/core/function/startup/stageone/ThreadOptStartup.kt @@ -1,9 +1,14 @@ package com.mogo.eagle.core.function.startup.stageone import android.content.* +import android.os.Process import com.mogo.thread.ext.core.* import com.mogo.thread.ext.core.config.* +import com.mogo.thread.ext.core.config.priority.* import com.rousetime.android_startup.* +import java.io.* +import java.text.* +import java.util.* import java.util.concurrent.TimeUnit.SECONDS class ThreadOptStartup: AndroidStartup() { @@ -11,7 +16,13 @@ class ThreadOptStartup: AndroidStartup() { override fun create(context: Context): Boolean { ThreadManager .init(ThreadConfig.Builder() - .maxKeepAliveTime(5, SECONDS) + .maxKeepAliveTime(10, SECONDS) + .minKeepAliveTime(1, SECONDS) + .priorityConfig(PriorityConfig.Builder() + .checkInterval(1, SECONDS) + .setPriority("GLThread\\s+\\d+", Process.THREAD_PRIORITY_BACKGROUND) + .setPriority("Dispatch-\\w+", Process.THREAD_PRIORITY_BACKGROUND) + .build()) /*.dump(DumpConfig.Builder() .dumpLogFilePath(File(context.getExternalFilesDir(null), "thread_dump_log_${ SimpleDateFormat("yyyy-MM-dd-HH-mm-ss", Locale.ROOT).format(Date()) }.txt").absolutePath) .dumpPeriod(5, SECONDS) From f3e9de10d060f8f1195e13616a1c0179bd322bae Mon Sep 17 00:00:00 2001 From: renwj Date: Thu, 13 Jul 2023 19:58:29 +0800 Subject: [PATCH 2/5] =?UTF-8?q?[3.4.0][=E8=A7=86=E8=A7=92]=20=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E6=97=8B=E8=BD=AC=E5=8A=A8=E6=95=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../scene/road/V2XRoadEventScenario.java | 2 +- .../angle/MoGoVisualAngleChangeProvider.kt | 22 +++++-------------- .../core/function/api/map/angle/Scenes.kt | 4 ++-- .../uicontroller/IMogoMapUIController.java | 13 +++++++++++ .../java/com/mogo/map/AMapViewWrapper.java | 7 ++++++ .../com/mogo/map/MogoMapUIController.java | 7 ++++++ .../map/uicontroller/AMapUIController.java | 7 ++++++ 7 files changed, 42 insertions(+), 20 deletions(-) diff --git a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/scenario/scene/road/V2XRoadEventScenario.java b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/scenario/scene/road/V2XRoadEventScenario.java index 7c8c9d13fc..5a8928a2e0 100644 --- a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/scenario/scene/road/V2XRoadEventScenario.java +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/scenario/scene/road/V2XRoadEventScenario.java @@ -160,7 +160,7 @@ public class V2XRoadEventScenario extends AbsV2XScenario imp if (isNeedChangeAngle()) { MarkerLocation location = content.getLocation(); if (location != null) { - CallerVisualAngleManager.INSTANCE.changeAngle(new RoadEvent(content.getLocation().getLon(), content.getLocation().getLat(), content.getLocation().getAngle())); + CallerVisualAngleManager.INSTANCE.changeAngle(new RoadEvent(content.getLocation().getLon(), content.getLocation().getLat(), content.getLocation().getAngle(), false)); } } if (entity.isNeedAddLine() && !EventTypeEnumNew.TYPE_SOCKET_ROAD_CONGESTION.getPoiType().equals(content.getPoiType())) { diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/MoGoVisualAngleChangeProvider.kt b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/MoGoVisualAngleChangeProvider.kt index fc2b8cb89d..4f2babd099 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/MoGoVisualAngleChangeProvider.kt +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/MoGoVisualAngleChangeProvider.kt @@ -7,21 +7,14 @@ import androidx.lifecycle.* import androidx.lifecycle.Lifecycle.Event import androidx.lifecycle.Lifecycle.Event.ON_DESTROY import com.alibaba.android.arouter.facade.annotation.Route -import com.mogo.eagle.core.data.config.* import com.mogo.eagle.core.data.constants.MogoServicePaths -import com.mogo.eagle.core.data.map.* import com.mogo.eagle.core.function.api.map.angle.* import com.mogo.eagle.core.function.api.map.angle.Scene -import com.mogo.eagle.core.function.call.autopilot.* import com.mogo.eagle.core.function.call.map.* import com.mogo.eagle.core.utilcode.kotlin.* -import com.mogo.eagle.core.utilcode.mogo.* -import com.mogo.eagle.core.utilcode.mogo.logger.* -import com.zhidaoauto.map.sdk.open.tools.* import kotlinx.coroutines.* import kotlinx.coroutines.android.* import java.util.* -import java.util.concurrent.atomic.* @Route(path = MogoServicePaths.PATH_VISUAL_ANGLE) class MoGoVisualAngleChangeProvider: IMoGoVisualAngleChangeProvider { @@ -193,31 +186,26 @@ class MoGoVisualAngleChangeProvider: IMoGoVisualAngleChangeProvider { } } - @OptIn(InternalCoroutinesApi::class) private fun doChangeAngle(record: Record) { val angle = record.target.angle CallerMapUIServiceManager.getMapUIController()?.also { Log.d(TAG, "--- doChangeAngle ---: ${record.target}") if (record.target !is Default) { record.isDisplay = true - kotlinx.coroutines.internal.synchronized(queue) { + synchronized(queue) { queue += record } } if (record.target is Default && roadEventFlag) { roadEventFlag = false - //it.setLockMode(true) + it.setLockMode(true) } if (record.target is RoadEvent) { it.setLockMode(false) roadEventFlag = true - Log.d("TTTTTT", "scene:${record.target}") - // scope.launch { - // delay(500) - // it.changeMapVisualAngle(angle, null) - // } - it.animateTo(record.target.poi_lon, record.target.poi_lat, record.target.poi_angle.toFloat(), 1000, true) - // it.animateTo(record.target.poi_lon, record.target.poi_lat, 0f, 1000, true) + scope.launch { + it.animateTo(0.0 ,0.0,1f, 0f ,11.5f,28f,3000,true) + } } else { it.changeMapVisualAngle(angle, null) diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/map/angle/Scenes.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/map/angle/Scenes.kt index 332cc68a34..8e6d2c6f06 100644 --- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/map/angle/Scenes.kt +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/map/angle/Scenes.kt @@ -37,14 +37,14 @@ class Default(val delay: Long = 2, val unit: TimeUnit = SECONDS): Scene() { /** * 道路事件 */ -class RoadEvent(val poi_lon: Double, val poi_lat: Double, val poi_angle: Double): Scene() { +class RoadEvent(val poi_lon: Double, val poi_lat: Double, val poi_angle: Double, val isGps: Boolean = true): Scene() { override val angle: VisualAngleMode = VisualAngleMode.MODE_LONG_SIGHT override val priority: Int = 5 override val displayThreshold: Long - get() = SECONDS.toMillis(5) + get() = SECONDS.toMillis(8) override fun toString(): String { return "RoadEvent(priority=${priority}, displayThreshold: ${displayThreshold}, priority=${priority}, lon: $poi_lon, lat: $poi_lat, angle: $poi_angle)" diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/uicontroller/IMogoMapUIController.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/uicontroller/IMogoMapUIController.java index c085db8d5d..806c12dd4b 100644 --- a/libraries/mogo-map-api/src/main/java/com/mogo/map/uicontroller/IMogoMapUIController.java +++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/uicontroller/IMogoMapUIController.java @@ -389,4 +389,17 @@ public interface IMogoMapUIController { * @param isGps 是否是高精坐标 */ void animateTo(double lon, double lat, float rotateAngle, int duration, boolean isGps); + + + /** + * 自动切换视角到指定点,包含过渡动画,并持续指定duration毫秒 + * + * @param lon 经度 + * @param lat 纬度 + * @param v1 旋转角度 + * @param v2 持续时间 + * @param v3 + * @param v4 + */ + void animateTo(double lon, double lat, float v1, float v2, float v3, float v4, int duration, boolean isGps); } diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/AMapViewWrapper.java b/libraries/mogo-map/src/main/java/com/mogo/map/AMapViewWrapper.java index 894daf3877..a01b9faa77 100644 --- a/libraries/mogo-map/src/main/java/com/mogo/map/AMapViewWrapper.java +++ b/libraries/mogo-map/src/main/java/com/mogo/map/AMapViewWrapper.java @@ -1161,4 +1161,11 @@ public class AMapViewWrapper implements IMogoMapView, mMapView.getMapAutoViewHelper().animateTo(lon, lat, rotateAngle, duration, isGps); } } + + @Override + public void animateTo(double lon, double lat, float v1, float v2, float v3, float v4, int duration, boolean isGps) { + if (mMapView.getMapAutoViewHelper() != null) { + mMapView.getMapAutoViewHelper().animateTo(lon, lat, v1, v2, v3, v4, duration, isGps); + } + } } diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapUIController.java b/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapUIController.java index 81a63699ef..d2e239d2b1 100644 --- a/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapUIController.java +++ b/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapUIController.java @@ -512,4 +512,11 @@ public class MogoMapUIController implements IMogoMapUIController { mDelegate.animateTo(lon, lat, rotateAngle, duration, isGps); } } + + @Override + public void animateTo(double lon, double lat, float v1, float v2, float v3, float v4, int duration, boolean isGps) { + if (mDelegate != null) { + mDelegate.animateTo(lon, lat, v1, v2, v3, v4, duration, isGps); + } + } } diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/uicontroller/AMapUIController.java b/libraries/mogo-map/src/main/java/com/mogo/map/uicontroller/AMapUIController.java index 048f3c50be..7936a87a64 100644 --- a/libraries/mogo-map/src/main/java/com/mogo/map/uicontroller/AMapUIController.java +++ b/libraries/mogo-map/src/main/java/com/mogo/map/uicontroller/AMapUIController.java @@ -449,4 +449,11 @@ public class AMapUIController implements IMogoMapUIController { mClient.animateTo(lon, lat, rotateAngle, duration, isGps); } } + + @Override + public void animateTo(double lon, double lat, float v1, float v2, float v3, float v4, int duration, boolean isGps) { + if (mClient != null) { + mClient.animateTo(lon, lat, v1, v2, v3, v4, duration, isGps); + } + } } From 7c1737214cc2a1cf303598aec1b56d05ac3adee8 Mon Sep 17 00:00:00 2001 From: xuxinchao Date: Thu, 13 Jul 2023 20:34:58 +0800 Subject: [PATCH 3/5] =?UTF-8?q?[3.4.0]=E6=B6=88=E6=81=AF=E7=9B=92=E5=AD=90?= =?UTF-8?q?=E4=BA=8B=E4=BB=B6=E7=9B=91=E5=90=AC=E5=9B=9E=E8=B0=83=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E5=A2=9E=E5=8A=A0=E9=BB=98=E8=AE=A4=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/datacenter/msgbox/IMsgBoxEventListener.kt | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/datacenter/msgbox/IMsgBoxEventListener.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/datacenter/msgbox/IMsgBoxEventListener.kt index b6568d1187..e333b9afce 100644 --- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/datacenter/msgbox/IMsgBoxEventListener.kt +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/datacenter/msgbox/IMsgBoxEventListener.kt @@ -9,17 +9,17 @@ import com.mogo.eagle.core.data.msgbox.MsgBoxBean */ interface IMsgBoxEventListener { //汇总事件点击监听 - fun onSummaryClickEvent() + fun onSummaryClickEvent(){} //更新提示红点视图 - fun onUpdateTipEvent(isShow: Boolean) + fun onUpdateTipEvent(isShow: Boolean){} //气泡态运营平台事件点击监听 - fun onBubbleOperationClickEvent(msgBoxBean: MsgBoxBean) + fun onBubbleOperationClickEvent(msgBoxBean: MsgBoxBean){} //气泡态V2X消息事件点击监听 - fun onBubbleV2XClickEvent(msgBoxBean: MsgBoxBean) + fun onBubbleV2XClickEvent(msgBoxBean: MsgBoxBean){} //气泡态上报消息事件点击监听 - fun onBubbleReportClickEvent(msgBoxBean: MsgBoxBean) + fun onBubbleReportClickEvent(msgBoxBean: MsgBoxBean){} } \ No newline at end of file From 98b078008d6fe1d7275a82960674f645a45aaeb1 Mon Sep 17 00:00:00 2001 From: renwj Date: Thu, 13 Jul 2023 20:41:48 +0800 Subject: [PATCH 4/5] =?UTF-8?q?[3.4.0][=E7=BA=BF=E7=A8=8B=E4=BC=98?= =?UTF-8?q?=E5=8C=96]=20=E5=8D=87=E7=BA=A7=E7=BA=BF=E7=A8=8B=E5=BA=93?= =?UTF-8?q?=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config.gradle b/config.gradle index 692dd598bd..0bd0f512ec 100644 --- a/config.gradle +++ b/config.gradle @@ -214,7 +214,7 @@ ext { //========================= autosize ====================== androidautoSize : 'com.github.JessYanCoding:AndroidAutoSize:v1.2.1', - thread_opt : "com.mogo.thread.opt:lib:10.1.1_mogo", + thread_opt : "com.mogo.thread.opt:lib:10.1.2_mogo", weak_network : "com.mogo.weak:network:1.0.0", btrace : "com.bytedance.btrace:rhea-core:2.0.0", From 7f56e2422dcf9845637cea20ba8ce55bd2f27d1b Mon Sep 17 00:00:00 2001 From: renwj Date: Thu, 13 Jul 2023 20:42:23 +0800 Subject: [PATCH 5/5] =?UTF-8?q?[3.4.0][=E7=8E=AF=E8=A7=86]=20=E7=A7=BB?= =?UTF-8?q?=E9=99=A4=E9=A2=91=E7=B9=81=E6=89=93=E5=8D=B0=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../function/hmi/ui/lookaround/M1LookAroundView.kt | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/lookaround/M1LookAroundView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/lookaround/M1LookAroundView.kt index d11352ba45..d32188bbfe 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/lookaround/M1LookAroundView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/lookaround/M1LookAroundView.kt @@ -111,17 +111,14 @@ class M1LookAroundView: SurfaceView, SurfaceHolder.Callback, Runnable, IMoGoChas override fun run() { var isTimedBlock = false try { - Log.d(TAG, "--- 1 ---") if (!isSurfaceValid) { isTimedBlock = true return } if (this.surfaceWidth <= 0 || this.surfaceHeight <= 0) { - Log.d(TAG, "--- 2 ---") isTimedBlock = true return } - Log.d(TAG, "--- 3 ---") val data = this.data ?: return val targetX = data.targetX val targetY = data.targetY @@ -134,28 +131,21 @@ class M1LookAroundView: SurfaceView, SurfaceHolder.Callback, Runnable, IMoGoChas val bytes = data.data if (bytes == null) { isTimedBlock = true - Log.d(TAG, "--- 4 ---") return } - Log.d(TAG, "--- 5 ---") val canvas = holder.lockCanvas() try { if (canvas == null) { - Log.d(TAG, "--- 6 ---") isTimedBlock = true return } //1. 绘制图片 - var startTime = SystemClock.elapsedRealtime() val bitmap = BitmapFactory.decodeByteArray(bytes, 0, bytes.size) - Log.d(TAG, "--- cost for decode bitmap: ${SystemClock.elapsedRealtime() - startTime}ms.") if (bitmap == null) { - Log.d(TAG, "--- 7 ---") isTimedBlock = true return } try { - startTime = SystemClock.elapsedRealtime() canvas.save() canvas.scale(scaleX, scaleY) canvas.drawBitmap(bitmap, 0f, 0f, bitmapPaint) @@ -164,10 +154,8 @@ class M1LookAroundView: SurfaceView, SurfaceHolder.Callback, Runnable, IMoGoChas if (!bitmap.isRecycled) { bitmap.recycle() } - Log.d(TAG, "--- draw decoded bitmap cost: ${SystemClock.elapsedRealtime() - startTime}ms.") } //2. 绘制车的信息 - Log.d(TAG, "--- 8 ---") val newTargetX = targetX * scaleX val newTargetY = targetY * scaleY val newTargetWidth = targetWidth * scaleX @@ -238,7 +226,6 @@ class M1LookAroundView: SurfaceView, SurfaceHolder.Callback, Runnable, IMoGoChas //2.2 绘制车周围盲区标定 canvas.save() canvas.translate(newTargetX + newTargetWidth * 0.5f, newTargetY) - Log.d(TAG, "--- 9 ---:[$targetX:$newTargetX, $targetY:$newTargetY, $targetWidth:$newTargetWidth, $targetHeight:$newTargetHeight]") val halfTargetWidth = newTargetWidth * 0.5f var startX = -halfTargetWidth var startY = BROKE_LINE_LENGTH @@ -341,7 +328,6 @@ class M1LookAroundView: SurfaceView, SurfaceHolder.Callback, Runnable, IMoGoChas } override fun onAutopilotSteeringData(steering: Float) { - Log.d(TAG, "--- onAutopilotSteeringData --: steering: $steering") this.steering = steering } } \ No newline at end of file