diff --git a/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/ui/BusPassengerBaseFragment.java b/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/ui/BusPassengerBaseFragment.java index 0f991d1346..6de6ceb031 100644 --- a/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/ui/BusPassengerBaseFragment.java +++ b/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/ui/BusPassengerBaseFragment.java @@ -9,13 +9,18 @@ import android.widget.ImageView; import android.widget.TextView; import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import androidx.core.widget.ContentLoadingProgressBar; import com.mogo.commons.mvp.IView; import com.mogo.commons.mvp.MvpFragment; import com.mogo.commons.mvp.Presenter; +import com.mogo.eagle.core.data.multidisplay.TelematicConstant; import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener; +import com.mogo.eagle.core.function.api.telematic.IReceivedMsgListener; +import com.mogo.eagle.core.function.call.telematic.CallerTelematicListenerManager; +import com.mogo.eagle.core.function.hmi.ui.widget.DriverMonitorView; import com.mogo.eagle.core.function.view.MapBizView; import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr; import com.mogo.eagle.core.utilcode.util.UiThreadHandler; @@ -42,6 +47,12 @@ public abstract class BusPassengerBaseFragment { + mLiveShadow.setVisibility(View.GONE); + } + ); + mLiveBtn.setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(View v) { @@ -79,6 +97,30 @@ public abstract class BusPassengerBaseFragment @@ -8,9 +9,9 @@ android:id="@+id/mapBizView" android:layout_width="@dimen/dp_1860" android:layout_height="match_parent" + app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" - app:layout_constraintTop_toTopOf="parent" - app:layout_constraintBottom_toBottomOf="parent"/> + app:layout_constraintTop_toTopOf="parent" /> + app:layout_constraintTop_toTopOf="parent" /> + android:layout_height="match_parent" /> - - + app:layout_constraintRight_toRightOf="parent" + app:roma_close="@drawable/roma_bus_p_bg_selector" + app:roma_open="@drawable/iv_roma_bus_passenger_press_bg" /> + + app:layout_constraintTop_toTopOf="@+id/bus_p_cur_station_name"> @@ -143,26 +137,26 @@ + android:progress="0" + android:progressDrawable="@drawable/bus_progress_bar_bg" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintLeft_toLeftOf="parent" + app:layout_constraintRight_toRightOf="parent" /> - + app:yOffset="0dp" + tools:visibility="visible"> @@ -203,10 +199,17 @@ + android:layout_marginRight="@dimen/dp_40" + app:layout_constraintRight_toLeftOf="@+id/bus_p_route_panel" + app:layout_constraintTop_toTopOf="parent" /> + + \ No newline at end of file diff --git a/app/src/main/java/com/mogo/launcher/lancet/ANRFix.kt b/app/src/main/java/com/mogo/launcher/lancet/ANRFix.kt index 746a875ee0..63ddc771a6 100644 --- a/app/src/main/java/com/mogo/launcher/lancet/ANRFix.kt +++ b/app/src/main/java/com/mogo/launcher/lancet/ANRFix.kt @@ -19,70 +19,70 @@ class ANRFix { companion object { - @JvmStatic - @TargetClass(value = "android.os.Handler", scope = ALL) - @TargetMethod(methodName = "post") - @ReplaceInvoke - fun handlerPostProxy(handler: Handler, action: Runnable): Boolean { - if (Looper.getMainLooper() != handler.looper) { - return handler.post(action) - } - val what = ObjectHashCodeUtils.getHashCodeIfNeed(action) - handler.removeMessages(what) - val msg = Message.obtain(handler, action) - msg.what = what - return handler.sendMessage(msg) - } - - @JvmStatic - @TargetClass(value = "android.os.Handler", scope = ALL) - @TargetMethod(methodName = "postDelayed") - @ReplaceInvoke - fun handlerPostDelayProxy(handler: Handler, action: Runnable, delayMillis: Long): Boolean { - if (Looper.getMainLooper() != handler.looper) { - return handler.postDelayed(action, delayMillis) - } - val what = ObjectHashCodeUtils.getHashCodeIfNeed(action) - handler.removeMessages(what) - val msg = Message.obtain(handler, action) - msg.what = what - return handler.sendMessageDelayed(msg, delayMillis) - } - - @JvmStatic - @TargetClass(value = "android.app.Activity", scope = ALL) - @TargetMethod(methodName = "post") - @ReplaceInvoke - fun runOnUiThreadOfActivityProxy(activity: Activity, action: Runnable) { - if (Looper.myLooper() != Looper.getMainLooper()) { - UiThreadHandler.post(action) - } else { - activity.runOnUiThread(action) - } - } - - @JvmStatic - @TargetClass(value = "android.view.View", scope = ALL) - @TargetMethod(methodName = "post") - @ReplaceInvoke - fun postOfViewProxy(view: View, action: Runnable): Boolean { - return if (Looper.myLooper() != Looper.getMainLooper()) { - UiThreadHandler.post(action) - } else { - view.post(action) - } - } - - @JvmStatic - @TargetClass(value = "android.view.View", scope = ALL) - @TargetMethod(methodName = "postDelayed") - @ReplaceInvoke - fun postDelayedOfViewProxy(view: View, action: Runnable, delayMillis: Long): Boolean { - return if (Looper.myLooper() != Looper.getMainLooper()) { - UiThreadHandler.postDelayed(action, delayMillis) - } else { - view.postDelayed(action, delayMillis) - } - } +// @JvmStatic +// @TargetClass(value = "android.os.Handler", scope = ALL) +// @TargetMethod(methodName = "post") +// @ReplaceInvoke +// fun handlerPostProxy(handler: Handler, action: Runnable): Boolean { +// if (Looper.getMainLooper() != handler.looper) { +// return handler.post(action) +// } +// val what = ObjectHashCodeUtils.getHashCodeIfNeed(action) +// handler.removeMessages(what) +// val msg = Message.obtain(handler, action) +// msg.what = what +// return handler.sendMessage(msg) +// } +// +// @JvmStatic +// @TargetClass(value = "android.os.Handler", scope = ALL) +// @TargetMethod(methodName = "postDelayed") +// @ReplaceInvoke +// fun handlerPostDelayProxy(handler: Handler, action: Runnable, delayMillis: Long): Boolean { +// if (Looper.getMainLooper() != handler.looper) { +// return handler.postDelayed(action, delayMillis) +// } +// val what = ObjectHashCodeUtils.getHashCodeIfNeed(action) +// handler.removeMessages(what) +// val msg = Message.obtain(handler, action) +// msg.what = what +// return handler.sendMessageDelayed(msg, delayMillis) +// } +// +// @JvmStatic +// @TargetClass(value = "android.app.Activity", scope = ALL) +// @TargetMethod(methodName = "post") +// @ReplaceInvoke +// fun runOnUiThreadOfActivityProxy(activity: Activity, action: Runnable) { +// if (Looper.myLooper() != Looper.getMainLooper()) { +// UiThreadHandler.post(action) +// } else { +// activity.runOnUiThread(action) +// } +// } +// +// @JvmStatic +// @TargetClass(value = "android.view.View", scope = ALL) +// @TargetMethod(methodName = "post") +// @ReplaceInvoke +// fun postOfViewProxy(view: View, action: Runnable): Boolean { +// return if (Looper.myLooper() != Looper.getMainLooper()) { +// UiThreadHandler.post(action) +// } else { +// view.post(action) +// } +// } +// +// @JvmStatic +// @TargetClass(value = "android.view.View", scope = ALL) +// @TargetMethod(methodName = "postDelayed") +// @ReplaceInvoke +// fun postDelayedOfViewProxy(view: View, action: Runnable, delayMillis: Long): Boolean { +// return if (Looper.myLooper() != Looper.getMainLooper()) { +// UiThreadHandler.postDelayed(action, delayMillis) +// } else { +// view.postDelayed(action, delayMillis) +// } +// } } } \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/FuncBizProvider.kt b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/FuncBizProvider.kt index 30e29c0fbb..ed27524c68 100644 --- a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/FuncBizProvider.kt +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/FuncBizProvider.kt @@ -107,6 +107,10 @@ class FuncBizProvider : IMoGoFuncBizProvider { OverViewDataManager.getAllV2XEventsByLineId(MoGoAiCloudClientConfig.getInstance().sn) } + override fun stopQueryV2XEvents() { + OverViewDataManager.stopQueryV2XEvents() + } + override fun queryV2XEvents() { if ((AppIdentityModeUtils.isTaxi(FunctionBuildConfig.appIdentityMode) && !FunctionBuildConfig.isNewV2NData) || AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode)) { diff --git a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/road/LineUploadManager.kt b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/road/LineUploadManager.kt index 27780b4702..bd49ec6ff4 100644 --- a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/road/LineUploadManager.kt +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/road/LineUploadManager.kt @@ -2,13 +2,13 @@ package com.mogo.eagle.function.biz.v2x.road import android.content.Context import com.mogo.cloud.passport.MoGoAiCloudClientConfig -import com.mogo.commons.constants.HostConst.DATA_CENTER_HOST import com.mogo.commons.constants.HostConst.getEagleHost import com.mogo.eagle.core.data.v2x.LineUploadData import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager import com.mogo.eagle.core.network.MoGoRetrofitFactory import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger +import com.mogo.eagle.function.biz.v2x.V2XBizTrace import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.disposables.Disposable import io.reactivex.schedulers.Schedulers @@ -48,6 +48,7 @@ class LineUploadManager private constructor(context: Context) : IMoGoAutopilotSt override fun onAutopilotRouteLineId(lineId: Long) { super.onAutopilotRouteLineId(lineId) + V2XBizTrace.onAck("onAutopilotRouteLineId", "lineId: $lineId") if (lineId > 0) { uploadLine(lineId) } diff --git a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/alarm/V2XAlarmServer.java b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/alarm/V2XAlarmServer.java index 8c3b605103..529f838883 100644 --- a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/alarm/V2XAlarmServer.java +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/alarm/V2XAlarmServer.java @@ -37,7 +37,7 @@ public class V2XAlarmServer { CopyOnWriteArrayList v2XRoadEventEntityList, MogoLocation currentLocation) { try { - //Logger.d(TAG, "getDriveFrontAlarmEvent --- 1 ---" + currentLocation ); + Logger.d(TAG, "getDriveFrontAlarmEvent --- 1 ---" + currentLocation ); if (!showedEvents.isEmpty()) { Iterator iterator = showedEvents.iterator(); while (iterator.hasNext()) { @@ -54,7 +54,7 @@ public class V2XAlarmServer { } } } - //Logger.d(TAG, "getDriveFrontAlarmEvent --- 2 ---" + currentLocation); + Logger.d(TAG, "getDriveFrontAlarmEvent --- 2 ---" + currentLocation); if (currentLocation != null && v2XRoadEventEntityList != null) { // 因为集合是按照距离排序后的所以这里检索出来第一个就发出警告 for (V2XRoadEventEntity v2XRoadEventEntity : v2XRoadEventEntityList) { @@ -65,7 +65,7 @@ public class V2XAlarmServer { MarkerLocation eventLocation = v2XRoadEventEntity.getLocation(); // 1、判断是否到达了触发距离,20 ~ 500, double distance = v2XRoadEventEntity.getDistance(); - //Logger.d(TAG, "distance:" + distance); + Logger.d(TAG, "distance:" + distance + ",poiType:" + v2XRoadEventEntity.getPoiType()); if (distance <= 500) { if (EventTypeEnumNew.GHOST_PROBE.getPoiType().equals(v2XRoadEventEntity.getPoiType())) { if (distance > 25) { @@ -76,8 +76,8 @@ public class V2XAlarmServer { double carBearing = currentLocation.getHeading(); double eventBearing = eventLocation.getAngle(); double diffAngle = DrivingDirectionUtils.getAngleDiff(carBearing, eventBearing); - //Logger.d(TAG, "car_bearing:" + carBearing + ",eventBearing:" + eventBearing + ",diffAngle:" + diffAngle); - if (diffAngle <= 20) { + Logger.d(TAG, "car_bearing:" + carBearing + ",eventBearing:" + eventBearing + ",diffAngle:" + diffAngle); + if (diffAngle <= 30) { // 3、计算当前车辆行驶方向与事件位置之间夹角《20度,保证道路事件在车辆前方 double eventAngle = DrivingDirectionUtils.getDegreeOfCar2Poi( currentLocation.getLongitude(), @@ -87,12 +87,12 @@ public class V2XAlarmServer { (int) currentLocation.getHeading() ); - //Logger.d(TAG, "eventAngle:" + eventAngle); - if (0 <= eventAngle && eventAngle <= 20) { + Logger.d(TAG, "eventAngle:" + eventAngle); + if (0 <= eventAngle && eventAngle <= 25) { if (showedEvents.contains(v2XRoadEventEntity)) { return null; } - //Logger.d(TAG, "showed---"); + Logger.d(TAG, "showed---"); showedEvents.add(v2XRoadEventEntity); return v2XRoadEventEntity; } diff --git a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/pnc/V2NIdentifyDrawer.kt b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/pnc/V2NIdentifyDrawer.kt index 1ab7cca965..7bf873fb68 100644 --- a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/pnc/V2NIdentifyDrawer.kt +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/pnc/V2NIdentifyDrawer.kt @@ -18,6 +18,7 @@ import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxManager.saveMsgBox import com.mogo.eagle.core.utilcode.mogo.* import com.mogo.eagle.core.utilcode.mogo.logger.* import com.mogo.eagle.core.utilcode.util.* +import com.mogo.eagle.function.biz.v2x.V2XBizTrace import com.mogo.eagle.function.biz.v2x.v2n.scenario.scene.airoad.* import com.mogo.eagle.function.biz.v2x.v2n.scenario.scene.airoad.AiRoadMarker.Marker import mogo.telematics.pad.MessagePad.Header @@ -56,7 +57,7 @@ internal object V2NIdentifyDrawer { AiRoadMarker().apply { val poiType = getPoiType(itx.type).poiType val polygon = itx.polygonList.map { Pair.create(it.longitude, it.latitude) } - marker(Marker(id, poiType, itx.longitude, itx.latitude, itx.heading, polygon, null, + marker(Marker(id, poiType, itx.latitude,itx.longitude, itx.heading, polygon, null, V2XRoadEventEntity().also { e -> e.poiType = poiType e.location = MarkerLocation().also { l -> @@ -111,7 +112,7 @@ internal object V2NIdentifyDrawer { AiRoadMarker.aiMakers.getOrPut(id) { AiRoadMarker().apply { val poiType = getPoiType(itx.eventType).poiType - marker(Marker(id, poiType, lon, lat, car.heading, null, null, + marker(Marker(id, poiType, lat, lon, car.heading, null, null, V2XRoadEventEntity().also { e -> e.poiType = poiType e.location = MarkerLocation().also { l -> @@ -199,8 +200,15 @@ internal object V2NIdentifyDrawer { override fun onAutopilotIdentifyDataUpdate(trafficData: List?) { super.onAutopilotIdentifyDataUpdate(trafficData) - val shiGong = trafficData?.filter { it.type == 501 || it.type == 502 } + try { + if (trafficData != null) { + V2XBizTrace.onAck("onAutopilotIdentifyDataUpdate", trafficData) + } + } catch (t: Throwable) { + t.printStackTrace() + } Logger.d(TAG, "--- onAutopilotIdentifyDataUpdate -- : trafficData: ${ trafficData?.joinToString(",") }") + val shiGong = trafficData?.filter { it.type == 501 || it.type == 502 } if (shiGong != null && shiGong.isNotEmpty()) { drawShiGong(shiGong) } @@ -212,6 +220,13 @@ internal object V2NIdentifyDrawer { override fun onAutopilotV2nCongestionEvent(header: Header, rsi: RSI_PB) { super.onAutopilotV2nCongestionEvent(header, rsi) + Logger.d(TAG, "--- onAutopilotV2nCongestionEvent -- : rsi: ${ GsonUtils.toJson(rsi) }") + try { + V2XBizTrace.onAck("onAutopilotV2nCongestionEvent", rsi) + } catch (t: Throwable) { + t.printStackTrace() + } + rsi.rsiFrame?.rtes?.rteDataList?.filter { it.eventType == 102 }?.takeIf { diff --git a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/scenario/scene/airoad/AiRoadMarker.kt b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/scenario/scene/airoad/AiRoadMarker.kt index 8ccd111468..daf151375b 100644 --- a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/scenario/scene/airoad/AiRoadMarker.kt +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/scenario/scene/airoad/AiRoadMarker.kt @@ -4,6 +4,7 @@ import android.animation.ArgbEvaluator import android.graphics.Color import android.os.Handler import android.os.Looper +import android.util.Log import android.view.animation.DecelerateInterpolator import androidx.core.util.Pair import com.mogo.eagle.core.data.map.MogoLatLng @@ -88,6 +89,7 @@ class AiRoadMarker { 300f ) //施工中心点后方的自车行驶方向上300米距离 + Log.d(TAG, "--- marker --- 3 --- l1:$l1") V2XBizTrace.onAck("$TAG --- marker --- 3 --- l1:", l1) val l2 = MogoMap.getInstance().mogoMap.getCenterLineRangeInfo( marker.poi_lon, @@ -96,9 +98,11 @@ class AiRoadMarker { -300f ) if (l1.points.isEmpty() || l2.points.isEmpty()) { + Log.d(TAG, " --- marker --- 3 --- return ----") V2XBizTrace.onAck("$TAG --- marker --- 3 --- return ----", "") return } + Log.d(TAG, " --- marker --- 4 --- l2: $l2") V2XBizTrace.onAck("$TAG --- marker --- 4 --- l2:", l2) val points = LinkedList() if (l2 != null && l2.points.isNotEmpty()) { @@ -108,6 +112,7 @@ class AiRoadMarker { } val centerX = marker.poi_lon val centerY = marker.poi_lat + Log.d(TAG, "--- marker --- 5 --- marker: $marker") V2XBizTrace.onAck("$TAG --- marker --- 5 --- marker:", marker) val farthestPoint = marker.polygon?.let { var find: Pair = Pair(centerX, centerY) @@ -128,6 +133,7 @@ class AiRoadMarker { MogoLatLng(find.second, find.first) } ?: MogoLatLng(centerY, centerX) marker.farthestPoint = Pair(farthestPoint.lon, farthestPoint.lat) + Log.d(TAG, "--- marker --- 6 --- marker:$marker") V2XBizTrace.onAck("$TAG --- marker --- 6 --- marker:", marker) if (l1 != null && l1.points.isNotEmpty()) { for (l in l1.points) { @@ -160,6 +166,7 @@ class AiRoadMarker { var line = line.get() options.points(points) options.colorValues(colors) + Log.d(TAG, "--- marker --- 7 --- points:${points.size}") V2XBizTrace.onAck("$TAG --- marker --- 7 --- points:", "${points.size}") if (line == null || line.isDestroyed) { val l = overlayManager?.addPolyline(options) @@ -183,8 +190,10 @@ class AiRoadMarker { private fun removeLine() { val old = line.get() + Log.d(TAG, " --- removeRedLine --- 1") V2XBizTrace.onAck("$TAG --- removeRedLine --- 1", "") if (old != null) { + Log.d(TAG,"--- removeRedLine --- 2") V2XBizTrace.onAck("$TAG --- removeRedLine --- 2", "") line.set(null) old.isVisible = false @@ -193,6 +202,7 @@ class AiRoadMarker { } private fun unMarker(marker: Marker) { + Log.d(TAG,"$TAG --- unMarker ---") V2XBizTrace.onAck("$TAG --- unMarker ---", "") this.marker.set(null) removeLine() @@ -202,11 +212,13 @@ class AiRoadMarker { } fun receive() { + Log.d(TAG, " --- receive --- 1 ---") V2XBizTrace.onAck("$TAG --- receive --- 1 ---", "") val poi = this.marker.get() val car = CallerChassisLocationWGS84ListenerManager.getChassisLocationWGS84() if (poi != null) { val distance = CoordinateUtils.calculateLineDistance(car.longitude, car.latitude, poi.poi_lon, poi.poi_lat) + Log.d(TAG ," --- receive --- 2 ---car:[${car.longitude}, ${car.latitude}] -> poi:[${poi.poi_lon}, ${poi.poi_lat}] --> distance:$distance") V2XBizTrace.onAck( "$TAG --- receive --- 2 ---", "car:[${car.longitude}, ${car.latitude}] -> poi:[${poi.poi_lon}, ${poi.poi_lat}] --> distance:$distance" @@ -214,6 +226,7 @@ class AiRoadMarker { if (distance < 500) { checkExpired() } else { + unMarker(poi) handler.removeCallbacks(checkExpiredTask) } } else { diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/telematic/TeleMsgHandler.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/telematic/TeleMsgHandler.kt index 4a6c46f7d9..af46c9d815 100644 --- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/telematic/TeleMsgHandler.kt +++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/telematic/TeleMsgHandler.kt @@ -149,6 +149,11 @@ class TeleMsgHandler : IMsgHandler { CallerTelematicListenerManager.invokeReceivedMsg(TelematicConstant.OPEN_ROMA_STATUS,it.body) } } + TelematicConstant.CONTROL_PASSENGER_DRIVER_MONITOR -> { + ThreadUtils.runOnUiThread { + CallerTelematicListenerManager.invokeReceivedMsg(TelematicConstant.CONTROL_PASSENGER_DRIVER_MONITOR,it.body) + } + } else -> { } } diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/upgrade/UpgradeAppNetWorkManager.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/upgrade/UpgradeAppNetWorkManager.kt index 75af486bdf..38ca984932 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/upgrade/UpgradeAppNetWorkManager.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/upgrade/UpgradeAppNetWorkManager.kt @@ -60,7 +60,7 @@ class UpgradeAppNetWorkManager private constructor() { provider?.recordUpgradeRecord(sn ?: "", macAddress, type, FunctionBuildConfig.isSupportPatchUpgrade) provider?.recordUpgradeRequestStart() val info = mUpgradeApiService.getUpgradeInfo(requestBody) - SharedPrefsMgr.getInstance(context).putString(SharedPrefsConstants.APP_UPGRADE_CONTENT, if (info.result != null) GsonUtils.toJson(info) + "--mac:$macAddress --type:$type --sn:$sn --versionName:$versionName" else "info.result == null --mac:$macAddress --type:$type --sn:$sn --versionName:$versionName") + SharedPrefsMgr.getInstance(context).putString(SharedPrefsConstants.APP_UPGRADE_CONTENT, if (info.result != null) GsonUtils.toJson(info) + "--mac:$macAddress --type:$type --sn:$sn --versionName:$versionName" else "info.result == null --mac:$macAddress --type:$type --sn:$sn --versionName:$versionName --versionCode:$versionCode") if (info.result != null) { provider?.recordUpgradeRequestSuccess(GsonUtils.toJson(info)) doUpgrade(info) diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/upgrade/UpgradeManager.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/upgrade/UpgradeManager.kt index be7e822a58..1f7ab7769b 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/upgrade/UpgradeManager.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/upgrade/UpgradeManager.kt @@ -2,6 +2,7 @@ package com.zhjt.mogo_core_function_devatools.upgrade import android.content.Context import android.content.pm.PackageInstaller +import android.util.Log import com.mogo.eagle.core.data.constants.MogoServicePaths import com.mogo.eagle.core.function.api.upgrade.IMoGoUpgradeProvider import com.mogo.eagle.core.function.call.base.CallerBase @@ -52,7 +53,7 @@ class UpgradeManager : IDownload { fun downLoadPackage(context: Context, type: DownloadType, downloadKey: String, downloadUrl: String) { - CallerLogger.d("${SceneConstant.M_OBU}${MogoObuConst.TAG_UPGRADE_OBU}", "UpgradeManager downLoadPackage = " + downloadUrl.contains(".zip") + "----downloadKey = $downloadKey ---downloadUrl = $downloadUrl") + CallerLogger.d("$M_DEVA$TAG", "UpgradeManager downLoadPackage = " + downloadUrl.contains(".zip") + "---type =" + type + "----downloadKey = $downloadKey ---downloadUrl = $downloadUrl") types[downloadUrl] = type DownloadUtils.downLoad( context, @@ -229,10 +230,17 @@ class UpgradeManager : IDownload { CallerDevaToolsUpgradeListenerManager.addListener( TAG, object : IMogoDevaToolsUpgradeListener { - override fun onStart(url: String?) {} - override fun onPause(url: String?) {} + override fun onStart(url: String?) { + CallerLogger.d("$M_DEVA$TAG", "updateUpgradeProgress onStart ----> ") + } + override fun onPause(url: String?) { + CallerLogger.d("$M_DEVA$TAG", "updateUpgradeProgress onPause ----> ") + } override fun onProgress(url: String?, length: Int) { - updateStatusBarDownloadView(true, "download", length) +// CallerLogger.d("$M_DEVA$TAG", "updateUpgradeProgress onPause ----> length = $length") + if (length in 1..99) { + updateStatusBarDownloadView(true, "download", length) + } } override fun onFinished(url: String?, localPath: String) { @@ -242,6 +250,10 @@ class UpgradeManager : IDownload { } override fun onError(url: String?, errorMsg: String?) { + CallerLogger.d("$M_DEVA$TAG", "updateUpgradeProgress errorMsg = $errorMsg") + Log.e(TAG, "updateUpgradeProgress errorMsg = $errorMsg") + //出错后,去掉下载进度ui,提示检查网络 + updateStatusBarDownloadView(false, "download", 0) } }) } diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/BusPassengerMsgBoxBubbleView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/BusPassengerMsgBoxBubbleView.kt index f88d023f2d..e867ee032b 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/BusPassengerMsgBoxBubbleView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/BusPassengerMsgBoxBubbleView.kt @@ -52,7 +52,7 @@ class BusPassengerMsgBoxBubbleView @JvmOverloads constructor( } override fun onDataChanged(category: MsgCategory, msgBoxList: MsgBoxBean){ - UiThreadHandler.post{ + UiThreadHandler.post({ if(category == MsgCategory.NOTICE){ if(msgBoxList.type == MsgBoxType.NOTICE || msgBoxList.type == MsgBoxType.V2X || msgBoxList.type == MsgBoxType.OBU || msgBoxList.type == MsgBoxType.OPERATION){ @@ -65,7 +65,7 @@ class BusPassengerMsgBoxBubbleView @JvmOverloads constructor( } } } - } + },UiThreadHandler.MODE.QUEUE) } override fun onAttachedToWindow() { diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/DriverMsgBoxBubbleView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/DriverMsgBoxBubbleView.kt index 0bf5097f02..28c772f1db 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/DriverMsgBoxBubbleView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/DriverMsgBoxBubbleView.kt @@ -70,7 +70,7 @@ class DriverMsgBoxBubbleView @JvmOverloads constructor( } override fun onDataChanged(category: MsgCategory, msgBoxBean: MsgBoxBean) { - UiThreadHandler.post { + UiThreadHandler.post({ when (category) { MsgCategory.NOTICE -> { MsgBoxConfig.noticeList.add(msgBoxBean) @@ -98,7 +98,7 @@ class DriverMsgBoxBubbleView @JvmOverloads constructor( driverMsgBoxBubbleAdapter?.setData(dataList) } } - } + }, UiThreadHandler.MODE.QUEUE) } override fun onAttachedToWindow() { diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/DriverMsgBoxListView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/DriverMsgBoxListView.kt index 75e5e6f583..88e872b9c5 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/DriverMsgBoxListView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/DriverMsgBoxListView.kt @@ -171,7 +171,7 @@ class DriverMsgBoxListView @JvmOverloads constructor( } override fun onDataChanged(category: MsgCategory, msgBoxList: MsgBoxBean) { - UiThreadHandler.post{ + UiThreadHandler.post({ when (category) { MsgCategory.NOTICE -> { noticeList?.add(0,msgBoxList) @@ -192,7 +192,7 @@ class DriverMsgBoxListView @JvmOverloads constructor( } } } - } + },UiThreadHandler.MODE.QUEUE) } override fun onAttachedToWindow() { diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/MBoxBubbleView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/MBoxBubbleView.kt index 42f7fa8178..37e6065841 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/MBoxBubbleView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/MBoxBubbleView.kt @@ -55,7 +55,7 @@ class MBoxBubbleView @JvmOverloads constructor( } override fun onDataChanged(category: MsgCategory, msgBoxList: MsgBoxBean) { - UiThreadHandler.post { + UiThreadHandler.post({ if(category == MsgCategory.NOTICE){ if(msgBoxList.type == MsgBoxType.NOTICE || msgBoxList.type == MsgBoxType.V2X || msgBoxList.type == MsgBoxType.OBU || msgBoxList.type == MsgBoxType.OPERATION){ @@ -68,7 +68,7 @@ class MBoxBubbleView @JvmOverloads constructor( } } } - } + },UiThreadHandler.MODE.QUEUE) } override fun onAttachedToWindow() { diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/MMsgBoxBubbleView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/MMsgBoxBubbleView.kt index e6daa2e3ed..67526ebbdb 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/MMsgBoxBubbleView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/MMsgBoxBubbleView.kt @@ -49,14 +49,14 @@ class MMsgBoxBubbleView @JvmOverloads constructor( } override fun onDataChanged(category: MsgCategory, msgBoxList: MsgBoxBean) { - UiThreadHandler.post { + UiThreadHandler.post({ if(category == MsgCategory.NOTICE){ if(msgBoxList.type == MsgBoxType.NOTICE || msgBoxList.type == MsgBoxType.V2X || msgBoxList.type == MsgBoxType.OBU || msgBoxList.type == MsgBoxType.OPERATION){ update(msgBoxList) } } - } + },UiThreadHandler.MODE.QUEUE) } private fun update(msgBoxList: MsgBoxBean){ diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/MMsgBoxListView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/MMsgBoxListView.kt index 726a6dae6d..69f68eb5eb 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/MMsgBoxListView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/MMsgBoxListView.kt @@ -56,7 +56,7 @@ class MMsgBoxListView @JvmOverloads constructor( } override fun onDataChanged(category: MsgCategory, msgBoxList: MsgBoxBean) { - UiThreadHandler.post{ + UiThreadHandler.post({ if(category == MsgCategory.NOTICE){ if(msgBoxList.type == MsgBoxType.NOTICE || msgBoxList.type == MsgBoxType.V2X || msgBoxList.type == MsgBoxType.OBU || msgBoxList.type == MsgBoxType.OPERATION){ @@ -66,7 +66,7 @@ class MMsgBoxListView @JvmOverloads constructor( } } } - } + },UiThreadHandler.MODE.QUEUE) } override fun onAttachedToWindow() { diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/PassengerMsgBoxBubbleView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/PassengerMsgBoxBubbleView.kt index 0ed1eb0622..fc0db9c448 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/PassengerMsgBoxBubbleView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/PassengerMsgBoxBubbleView.kt @@ -57,7 +57,7 @@ class PassengerMsgBoxBubbleView @JvmOverloads constructor( } override fun onDataChanged(category: MsgCategory, msgBoxList: MsgBoxBean) { - UiThreadHandler.post { + UiThreadHandler.post({ if(category == MsgCategory.NOTICE){ if(msgBoxList.type == MsgBoxType.NOTICE || msgBoxList.type == MsgBoxType.V2X || msgBoxList.type == MsgBoxType.OBU){ @@ -70,7 +70,7 @@ class PassengerMsgBoxBubbleView @JvmOverloads constructor( } } } - } + },UiThreadHandler.MODE.QUEUE) } override fun onAttachedToWindow() { diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/PassengerMsgBoxListView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/PassengerMsgBoxListView.kt index cc8418f8d2..fcda7aec3e 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/PassengerMsgBoxListView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/PassengerMsgBoxListView.kt @@ -60,7 +60,7 @@ class PassengerMsgBoxListView @JvmOverloads constructor( } override fun onDataChanged(category: MsgCategory, msgBoxList: MsgBoxBean) { - UiThreadHandler.post{ + UiThreadHandler.post({ if(category == MsgCategory.NOTICE){ if(msgBoxList.type == MsgBoxType.NOTICE || msgBoxList.type == MsgBoxType.V2X || msgBoxList.type == MsgBoxType.OBU){ @@ -70,7 +70,7 @@ class PassengerMsgBoxListView @JvmOverloads constructor( } } } - } + },UiThreadHandler.MODE.QUEUE) } override fun onAttachedToWindow() { diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/DebugSettingView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/DebugSettingView.kt index d7173cbe6c..a6ff3ad01a 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/DebugSettingView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/DebugSettingView.kt @@ -45,6 +45,7 @@ import com.mogo.eagle.core.data.map.MogoLocation import com.mogo.eagle.core.data.obu.MogoObuConst import com.mogo.eagle.core.data.obu.ObuStatusInfo import com.mogo.eagle.core.data.deva.report.ReportEntity +import com.mogo.eagle.core.data.multidisplay.TelematicConstant import com.mogo.eagle.core.function.api.autopilot.* import com.mogo.eagle.core.function.api.devatools.IMoGoDevaToolsFuncConfigListener import com.mogo.eagle.core.function.api.devatools.IMoGoDevaToolsListener @@ -581,6 +582,17 @@ internal class DebugSettingView @JvmOverloads constructor( } } + /** + * 控制乘客屏直播监控 + */ + tbControlPassengerDriverMonitor.setOnCheckedChangeListener { _, isChecked -> + if (isChecked) { + CallerTelematicManager.sendMsgToAllClients(TelematicConstant.CONTROL_PASSENGER_DRIVER_MONITOR, "1".toByteArray()) + } else { + CallerTelematicManager.sendMsgToAllClients(TelematicConstant.CONTROL_PASSENGER_DRIVER_MONITOR, "0".toByteArray()) + } + } + //设置鹰眼本地参数配置监听 setEagleEyeConfigListener() //域控制器中心事件点击监听 diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/vehicle/TakeOverView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/vehicle/TakeOverView.kt index bfc61ae6ef..736037efd9 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/vehicle/TakeOverView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/vehicle/TakeOverView.kt @@ -5,6 +5,7 @@ import android.util.AttributeSet import android.view.LayoutInflater import android.view.View import androidx.constraintlayout.widget.ConstraintLayout +import com.mogo.eagle.core.data.autopilot.AutopilotStatusInfo import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.data.enums.EventTypeEnumNew import com.mogo.eagle.core.data.msgbox.MsgBoxBean @@ -31,6 +32,10 @@ class TakeOverView @JvmOverloads constructor( const val TAG = "TakeOverView" } + private var autopilotStatus: Int = 0 //自动驾驶状态 0代表不可自动驾驶,1代表可自动驾驶,2代表自动驾驶中,7:平行驾驶中 + private var isParallel: Boolean = false //是否是平行驾驶 + + init { LayoutInflater.from(context).inflate(R.layout.view_take_over, this, true) } @@ -42,6 +47,20 @@ class TakeOverView @JvmOverloads constructor( CallerAutoPilotStatusListenerManager.addListener(TAG, this) } + /** + * 自动驾驶状态信息 + * + * @param autoPilotStatusInfo 状态信息 + */ + override fun onAutopilotStatusResponse(autoPilotStatusInfo: AutopilotStatusInfo) { + autopilotStatus = autoPilotStatusInfo.state + if(autoPilotStatusInfo.state == 7){ + isParallel = true + }else if(autoPilotStatusInfo.state == 0 || autoPilotStatusInfo.state == 1){ + isParallel = false + } + } + /** * 工控机监控节点上报 */ @@ -84,38 +103,41 @@ class TakeOverView @JvmOverloads constructor( takeOver = false visibility = View.GONE } - },isFromObu = false - ) + } + ,isFromObu = false) } //弱网 MogoReport.Code.Error.EMAP.EPARALLEL_AICLOUD_NETWORK_WEAK, MogoReport.Code.Error.EMAP.EPARALLEL_AICLOUD_CONNECTION_ERROR -> { - CallerHmiManager.warningV2X( - EventTypeEnumNew.NETWORK_WEAK_EVENT.poiType, - EventTypeEnumNew.NETWORK_WEAK_EVENT.content, - EventTypeEnumNew.NETWORK_WEAK_EVENT.tts, - object : IMoGoWarningStatusListener { - override fun onShow() { - takeOver = true - visibility = View.VISIBLE - //加入消息盒子 - saveMsgBox( - MsgBoxBean( - MsgBoxType.V2X, V2XMsg( - EventTypeEnumNew.NETWORK_WEAK_EVENT.poiType, - EventTypeEnumNew.NETWORK_WEAK_EVENT.content, - EventTypeEnumNew.NETWORK_WEAK_EVENT.tts + //如果是平行驾驶状态下,提示弱网接管 + if(isParallel){ + CallerHmiManager.warningV2X( + EventTypeEnumNew.NETWORK_WEAK_EVENT.poiType, + EventTypeEnumNew.NETWORK_WEAK_EVENT.content, + EventTypeEnumNew.NETWORK_WEAK_EVENT.tts, + object : IMoGoWarningStatusListener { + override fun onShow() { + takeOver = true + visibility = View.VISIBLE + //加入消息盒子 + saveMsgBox( + MsgBoxBean( + MsgBoxType.V2X, V2XMsg( + EventTypeEnumNew.NETWORK_WEAK_EVENT.poiType, + EventTypeEnumNew.NETWORK_WEAK_EVENT.content, + EventTypeEnumNew.NETWORK_WEAK_EVENT.tts + ) ) ) - ) - } + } - override fun onDismiss() { - takeOver = false - visibility = View.GONE + override fun onDismiss() { + takeOver = false + visibility = View.GONE + } } - },isFromObu = false - ) + ,isFromObu = false) + } } } } diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/DriverMonitorView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/DriverMonitorView.kt index 4864257121..18412fbe52 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/DriverMonitorView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/DriverMonitorView.kt @@ -15,7 +15,10 @@ import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.mogo.logger.Logger import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant import com.mogo.eagle.core.widget.RoundConstraintLayout -import kotlinx.android.synthetic.main.view_driver_monitor.view.* +import kotlinx.android.synthetic.main.view_driver_monitor.view.ivNormal +import kotlinx.android.synthetic.main.view_driver_monitor.view.liveProgressBar +import kotlinx.android.synthetic.main.view_driver_monitor.view.textureViewDriverMonitor +import kotlinx.android.synthetic.main.view_driver_monitor.view.tvLoadingHit /** * 乘客端查看当前车辆驾驶舱的司机监控View @@ -56,6 +59,8 @@ class DriverMonitorView : ) } + var liveListener: LiveListener? = null + constructor(context: Context?) : super(context) { initView(context) } @@ -110,26 +115,41 @@ class DriverMonitorView : fun showLive() { if (!isLived) { -// sopShowDriverMap[CallerTelematicManager.getServerToken()]?.let { -// Logger.d( -// "${SceneConstant.M_HMI}$TAG", -// "检查司机直播……isLived=$isLived 当前车上的司机端SN=${sopShowDriverMap[CallerTelematicManager.getServerToken()]}" -// ) -// CallerLogger.d( -// "${SceneConstant.M_HMI}$TAG", -// "检查司机直播……isLived=$isLived 当前车上的司机端SN=${sopShowDriverMap[CallerTelematicManager.getServerToken()]}" -// ) -// MoGoAiCloudTrafficLive.viewDesignativeVehicleLive( -// it, -// textureViewDriverMonitor, -// carLiveCallBack -// ) -// } - MoGoAiCloudTrafficLive.viewDesignativeVehicleLive( - "F803EB2046PZD00164", - textureViewDriverMonitor, - carLiveCallBack - ) + sopShowDriverMap[CallerTelematicManager.getServerToken()]?.let { + Logger.d( + "${SceneConstant.M_HMI}$TAG", + "检查司机直播……isLived=$isLived 当前车上的司机端SN=${sopShowDriverMap[CallerTelematicManager.getServerToken()]}" + ) + CallerLogger.d( + "${SceneConstant.M_HMI}$TAG", + "检查司机直播……isLived=$isLived 当前车上的司机端SN=${sopShowDriverMap[CallerTelematicManager.getServerToken()]}" + ) + MoGoAiCloudTrafficLive.viewDesignativeVehicleLive( + it, + textureViewDriverMonitor, + carLiveCallBack + ) + } ?: let { + //为空又怎么撸 + if (CallerTelematicManager.getServerToken().isNotEmpty()) { + Logger.d( + "${SceneConstant.M_HMI}$TAG", + "检查司机直播……isLived=$isLived 当前车辆SN=${CallerTelematicManager.getServerToken()} 不支持直播" + ) + CallerLogger.d( + "${SceneConstant.M_HMI}$TAG", + "检查司机直播……isLived=$isLived 当前车辆SN=${CallerTelematicManager.getServerToken()} 不支持直播" + ) + // 乘客屏幕连接上了司机屏,但是司机屏不在直播范围内,进行隐藏操作。 + liveListener?.onPlayError() + } + } + // TODO 测试用的 +// MoGoAiCloudTrafficLive.viewDesignativeVehicleLive( +// "F803EB2046PZD00164", +// textureViewDriverMonitor, +// carLiveCallBack +// ) } } @@ -185,4 +205,8 @@ class DriverMonitorView : } } + interface LiveListener { + fun onPlayError() + } + } \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/RomaPassengerView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/RomaPassengerView.kt index 91b4614747..abec42e15b 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/RomaPassengerView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/RomaPassengerView.kt @@ -25,6 +25,9 @@ class RomaPassengerView @JvmOverloads constructor( @Volatile private var romaMode = false + @Volatile + private var click = true + private val openRes: Int private val normalRes: Int @@ -36,10 +39,16 @@ class RomaPassengerView @JvmOverloads constructor( normalRes = a.getResourceId(R.styleable.RomaPassengerView_roma_close, 0) a.recycle() setOnClickListener { + if(!click){ + return@setOnClickListener + } + click = false romaMode = !romaMode romaTrigger(romaMode) { mode -> + click = true romaMode = mode } + } } @@ -65,6 +74,7 @@ class RomaPassengerView @JvmOverloads constructor( } override fun romaStatus(status: Boolean) { + click = true if (status) { romaMode = true if (openRes != 0) { diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/RomaView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/RomaView.kt index b4b5867f90..38e830b0b7 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/RomaView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/RomaView.kt @@ -24,9 +24,16 @@ class RomaView @JvmOverloads constructor( @Volatile private var romaMode = false + @Volatile + private var click = false + init { LayoutInflater.from(context).inflate(R.layout.view_roma_bg, this, true) setOnClickListener { + if(!click){ + return@setOnClickListener + } + click = false romaMode = !romaMode // 司机屏发送事件给乘客屏 if (romaMode) { @@ -49,6 +56,7 @@ class RomaView @JvmOverloads constructor( } override fun onReceivedMsg(type: Int, byteArray: ByteArray) { + click = true when(type){ TelematicConstant.OPEN_ROMA_STATUS -> { when (String(byteArray)) { diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/SystemVersionView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/SystemVersionView.kt index 1256f601a1..e7706741cc 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/SystemVersionView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/SystemVersionView.kt @@ -143,6 +143,7 @@ class SystemVersionView @JvmOverloads constructor( ToastUtils.showShort(resources.getString(R.string.location_try_again)) } else {// 拿到了高精的经纬度 val dialog = OfflineMapDialog(context) + CallerLogger.i("$M_HMI$$TAG", "location lon is:${location?.longitude}, lat is:${location?.latitude}") dialog.location = location dialog.show() } diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_debug_setting.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_debug_setting.xml index 61166d3c1d..937c4e07c3 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_debug_setting.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_debug_setting.xml @@ -1355,8 +1355,8 @@ android:background="@drawable/setting_toggle_button_background" android:drawableEnd="@drawable/icon_right" android:padding="@dimen/dp_20" - android:textOff="HMI控制" - android:textOn="HMI控制" + android:textOff="打开HMI控制" + android:textOn="关闭HMI控制" android:textSize="@dimen/dp_24" /> + + { if (showAiCloud.get()) { MapBizTrace.log(TAG, "onMapVisualAngleChanged, invoke close roma") - closeRoma(false) showAiCloud.set(false) + closeRoma(false) FunctionBuildConfig.isDrawIdentifyData = true } } diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/ai/net/AiCloudIdentifyNetWorkModel.kt b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/ai/net/AiCloudIdentifyNetWorkModel.kt index 57f6e064f3..41181c26be 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/ai/net/AiCloudIdentifyNetWorkModel.kt +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/ai/net/AiCloudIdentifyNetWorkModel.kt @@ -18,7 +18,8 @@ class AiCloudIdentifyNetWorkModel private constructor(){ } } - private fun getNetWorkApi(baseUrl: String = getEagleHost()): IAiCloudIdentifyApiService { +// private fun getNetWorkApi(baseUrl: String = getEagleHost()): IAiCloudIdentifyApiService { + private fun getNetWorkApi(baseUrl: String = "http://dzt-qa-city.zhidaozhixing.com/"): IAiCloudIdentifyApiService { //todo 2023/4/19 衡阳临时测试 return MoGoRetrofitFactory.getInstanceNoCallAdapter(baseUrl) .create(IAiCloudIdentifyApiService::class.java) } diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/ai/net/IAiCloudIdentifyApiService.kt b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/ai/net/IAiCloudIdentifyApiService.kt index 2a88126598..111ff9435d 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/ai/net/IAiCloudIdentifyApiService.kt +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/ai/net/IAiCloudIdentifyApiService.kt @@ -8,7 +8,8 @@ import retrofit2.http.POST interface IAiCloudIdentifyApiService { @Headers("Content-type:application/json;charset=UTF-8") - @POST("eagle-eye-dns/yycp-c-v2x-service/dataFusion/remoteDrivingSet") +// @POST("eagle-eye-dns/yycp-c-v2x-service/dataFusion/remoteDrivingSet") // @POST("yycp-data-center-service1/remoteDrivingSet") + @POST("yycp-c-v2x-service/dataFusion/remoteDrivingSet") //todo 2023/4/19 衡阳临时测试 suspend fun identifyRange(@Body map: MutableMap): BaseResponse } \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/view/OverMapView.kt b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/view/OverMapView.kt index 924183d58e..f559cdd075 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/view/OverMapView.kt +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/view/OverMapView.kt @@ -466,7 +466,7 @@ class OverMapView @JvmOverloads constructor( return bitmap } - private fun clearV2XMarkers() { + fun clearV2XMarkers() { if (currMarkerList != null) { for (marker in currMarkerList!!) { marker.destroy() diff --git a/core/function-impl/mogo-core-function-startup/src/main/java/com/mogo/eagle/core/function/startup/stageone/HttpDnsStartUp.kt b/core/function-impl/mogo-core-function-startup/src/main/java/com/mogo/eagle/core/function/startup/stageone/HttpDnsStartUp.kt index 584308b320..ed097621c4 100644 --- a/core/function-impl/mogo-core-function-startup/src/main/java/com/mogo/eagle/core/function/startup/stageone/HttpDnsStartUp.kt +++ b/core/function-impl/mogo-core-function-startup/src/main/java/com/mogo/eagle/core/function/startup/stageone/HttpDnsStartUp.kt @@ -52,10 +52,11 @@ class HttpDnsStartUp : AndroidStartup() { private var context: Context? = null + @Volatile private var gotToken = false private var httpDnsSimpleLocation by Delegates.observable(getDefaultSimpleLocation()) { _, oldValue, newValue -> - if (oldValue.cityCode != newValue.cityCode) { + if (gotToken && oldValue.cityCode != newValue.cityCode) { reConnectSocket(oldValue.cityCode, newValue.cityCode) } } diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/multidisplay/TelematicConstant.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/multidisplay/TelematicConstant.kt index b6f7e195bf..f5b05b667d 100644 --- a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/multidisplay/TelematicConstant.kt +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/multidisplay/TelematicConstant.kt @@ -12,5 +12,6 @@ class TelematicConstant { const val HIDE_TRAFFIC_LIGHT = 102 const val OPEN_ROMA_STATUS = 103 const val ROMA_UPDATE = 104 + const val CONTROL_PASSENGER_DRIVER_MONITOR = 105 } } \ No newline at end of file diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/biz/IMoGoFuncBizProvider.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/biz/IMoGoFuncBizProvider.kt index def198adbf..6c12d57465 100644 --- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/biz/IMoGoFuncBizProvider.kt +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/biz/IMoGoFuncBizProvider.kt @@ -73,6 +73,8 @@ interface IMoGoFuncBizProvider : IMoGoFunctionServerProvider { fun getAllV2XEvents() + fun stopQueryV2XEvents() + fun queryV2XEvents() diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/datacenter/obu/obucombine/IMoGoObuDcCombineListener.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/datacenter/obu/obucombine/IMoGoObuDcCombineListener.kt deleted file mode 100644 index f4af18034d..0000000000 --- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/datacenter/obu/obucombine/IMoGoObuDcCombineListener.kt +++ /dev/null @@ -1,16 +0,0 @@ -package com.mogo.eagle.core.function.api.datacenter.obu.obucombine - -import mogo.v2x.ObuWarningEvent - -/** - * obu和dc 通道打通融合 - */ -interface IMoGoObuDcCombineListener { - - /** - * obu透传v2i数据,(标牌,弱势交通,红绿灯,限速,道路危险状况) - * @param obuWarningData - */ - fun onMoGoObuDcCombineData(obuWarningData: ObuWarningEvent.ObuWarningData?) - - } \ No newline at end of file diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerAutoPilotStatusListenerManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerAutoPilotStatusListenerManager.kt index 34facf277a..e86ce263b1 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerAutoPilotStatusListenerManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerAutoPilotStatusListenerManager.kt @@ -27,16 +27,12 @@ object CallerAutoPilotStatusListenerManager : CallerBase = - ConcurrentHashMap() - @Volatile private var autoPilotMessageCode: String = "" diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/obucombine/CallerObuDcCombineListenerManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/obucombine/CallerObuDcCombineListenerManager.kt deleted file mode 100644 index 1650f26193..0000000000 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/obucombine/CallerObuDcCombineListenerManager.kt +++ /dev/null @@ -1,26 +0,0 @@ -package com.mogo.eagle.core.function.call.obucombine - -import com.mogo.eagle.core.function.api.datacenter.obu.obucombine.IMoGoObuDcCombineListener -import com.mogo.eagle.core.function.call.base.CallerBase -import mogo.v2x.ObuWarningEvent -import java.util.concurrent.ConcurrentHashMap - -/** - * obu和dc数据通道 回调监听 - */ -object CallerObuDcCombineListenerManager : CallerBase() { - // 存储所有注册了监听的对象,invokeXXXX进行遍历回调,将信息同步 - private val M_DC_COMBINE_LISTENERS: ConcurrentHashMap = - ConcurrentHashMap() - - /** - * v2i数据 - */ - fun invokeObuDcData(obuWarningData: ObuWarningEvent.ObuWarningData?){ - M_DC_COMBINE_LISTENERS.forEach{ - val listener = it.value - listener.onMoGoObuDcCombineData(obuWarningData) - } - } - -} \ No newline at end of file diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/telematic/CallerTelematicManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/telematic/CallerTelematicManager.kt index b70b90befc..52fa082b05 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/telematic/CallerTelematicManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/telematic/CallerTelematicManager.kt @@ -41,7 +41,7 @@ object CallerTelematicManager { /** * 发送数据给所有客户端 - * type:保存在TelematicConstant中 + * type:保存在 TelematicConstant 中 */ fun sendMsgToAllClients(type: Int, byteArray: ByteArray) { providerApi?.sendMsgToAllClients(type, byteArray) diff --git a/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/breakpoint/callback/DownloadCallBack.java b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/breakpoint/callback/DownloadCallBack.java index 0bda622268..31ada1d8f5 100644 --- a/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/breakpoint/callback/DownloadCallBack.java +++ b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/breakpoint/callback/DownloadCallBack.java @@ -31,4 +31,10 @@ public interface DownloadCallBack { * @param localPath */ void threadDownLoadFinished(String url, ThreadBean threadBean, String localPath); + + /** + * 下载错误 + * @param msg + */ + void errorCallBack(String url, String msg); } diff --git a/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/breakpoint/services/DownloadService.java b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/breakpoint/services/DownloadService.java index 9a11b686d8..1f5832abe5 100644 --- a/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/breakpoint/services/DownloadService.java +++ b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/breakpoint/services/DownloadService.java @@ -161,6 +161,14 @@ public class DownloadService implements InitThread.InitCallBack, DownloadCallBac } } + @Override + public void errorCallBack(String url, String msg) { + IDownload iDownload = callBacks.get(url); + if (iDownload != null) { + iDownload.onError(url, msg); + } + } + @Override public void onConnected(NetworkUtils.NetworkType networkType) { //网络连接已连接 diff --git a/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/breakpoint/thread/DownloadTask.java b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/breakpoint/thread/DownloadTask.java index 5e2a0280ba..70a8cc23ed 100644 --- a/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/breakpoint/thread/DownloadTask.java +++ b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/breakpoint/thread/DownloadTask.java @@ -153,6 +153,11 @@ public class DownloadTask implements DownloadCallBack { } } + @Override + public void errorCallBack(String url, String msg) { + UiThreadHandler.post(() -> downloadCallBack.errorCallBack(url, msg)); + } + public FileBean getFileBean() { return fileBean; } diff --git a/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/breakpoint/thread/DownloadThread.java b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/breakpoint/thread/DownloadThread.java index d233fdbc73..fab591c394 100644 --- a/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/breakpoint/thread/DownloadThread.java +++ b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/breakpoint/thread/DownloadThread.java @@ -82,6 +82,8 @@ public class DownloadThread extends Thread { DownloadData downloadData = new DownloadData(); downloadData.setUrl(fileBean.getUrl()); downloadData.setMsg(e.getMessage()); + UiThreadHandler.post(() -> callback.errorCallBack(this.fileBean.getUrl(), e.getMessage())); + // EventMessage eventMessage = new EventMessage(EventMessage.TYPE_ERROR,downloadData); // EventBus.getDefault().post(eventMessage); } finally { diff --git a/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/ThreadUtils.java b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/ThreadUtils.java index 42044644ee..171817dd7d 100644 --- a/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/ThreadUtils.java +++ b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/ThreadUtils.java @@ -53,6 +53,18 @@ public final class ThreadUtils { private static Executor sDeliver; + public enum MODE { + /** + * 多次post同一个Runnable对象,只会执行最后一次 + */ + LATEST, + + /** + * 多次post,在主线程消息队列中排队执行 + */ + QUEUE + } + /** * Return whether the thread is the main thread. * @@ -63,23 +75,40 @@ public final class ThreadUtils { } public static void runOnUiThread(final Runnable r) { + runOnUiThread(r, MODE.LATEST); + } + + public static void runOnUiThread(final Runnable r, MODE mode) { if (Looper.myLooper() == Looper.getMainLooper()) { r.run(); } else { - int what = ObjectHashCodeUtils.getHashCodeIfNeed(r); - HANDLER.removeMessages(what); - Message msg = Message.obtain(HANDLER, r); - msg.what = what; - HANDLER.sendMessage(msg); + if (mode == MODE.LATEST) { + int what = ObjectHashCodeUtils.getHashCodeIfNeed(r); + HANDLER.removeMessages(what); + Message msg = Message.obtain(HANDLER, r); + msg.what = what; + HANDLER.sendMessage(msg); + } else { + HANDLER.post(r); + } } } public static void runOnUiThreadDelayed(final Runnable r, long delayMillis) { - int what = ObjectHashCodeUtils.getHashCodeIfNeed(r); - HANDLER.removeMessages(what); - Message msg = Message.obtain(HANDLER, r); - msg.what = what; - HANDLER.sendMessageDelayed(msg, delayMillis); + runOnUiThreadDelayed(r, delayMillis, MODE.LATEST); + } + + public static void runOnUiThreadDelayed(final Runnable r, long delayMillis, MODE mode) { + if (mode == MODE.LATEST) { + int what = ObjectHashCodeUtils.getHashCodeIfNeed(r); + HANDLER.removeMessages(what); + Message msg = Message.obtain(HANDLER, r); + msg.what = what; + HANDLER.sendMessageDelayed(msg, delayMillis); + } else { + HANDLER.postDelayed(r, delayMillis); + } + } /** diff --git a/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/UiThreadHandler.java b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/UiThreadHandler.java index a8fc918cda..e4d3f8803a 100644 --- a/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/UiThreadHandler.java +++ b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/UiThreadHandler.java @@ -10,24 +10,58 @@ public class UiThreadHandler { private UiThreadHandler() { } + public enum MODE { + /** + * 多次post同一个Runnable对象,只会执行最后一次 + */ + LATEST, + + /** + * 多次post,在主线程消息队列中排队执行 + */ + QUEUE + } + public static boolean post( Runnable r ) { - int what = ObjectHashCodeUtils.getHashCodeIfNeed(r); - sUiHandler.removeMessages(what); - Message msg = Message.obtain(sUiHandler, r); - msg.what = what; - return sUiHandler.sendMessage(msg); + return post(r, MODE.LATEST); + } + + public static boolean post(Runnable r, MODE mode) { + if (mode == MODE.LATEST) { + int what = ObjectHashCodeUtils.getHashCodeIfNeed(r); + sUiHandler.removeMessages(what); + Message msg = Message.obtain(sUiHandler, r); + msg.what = what; + return sUiHandler.sendMessage(msg); + } + return sUiHandler.post(r); } public static boolean postDelayed( Runnable r, long delayMillis ) { - int what = ObjectHashCodeUtils.getHashCodeIfNeed(r); - sUiHandler.removeMessages(what); - Message msg = Message.obtain(sUiHandler, r); - msg.what = what; - return sUiHandler.sendMessageDelayed(msg, delayMillis); + return postDelayed(r, delayMillis, MODE.LATEST); + } + + public static boolean postDelayed( Runnable r, long delayMillis, MODE mode ) { + if (mode == MODE.LATEST) { + int what = ObjectHashCodeUtils.getHashCodeIfNeed(r); + sUiHandler.removeMessages(what); + Message msg = Message.obtain(sUiHandler, r); + msg.what = what; + return sUiHandler.sendMessageDelayed(msg, delayMillis); + } + return sUiHandler.postDelayed(r, delayMillis); } public static void removeCallbacks( Runnable r ) { - int what = ObjectHashCodeUtils.getHashCodeIfNeed(r); - sUiHandler.removeMessages(what); + removeCallbacks(r, MODE.LATEST); + } + + public static void removeCallbacks( Runnable r, MODE mode ) { + if (mode == MODE.LATEST) { + int what = ObjectHashCodeUtils.getHashCodeIfNeed(r); + sUiHandler.removeMessages(what); + } else { + sUiHandler.removeCallbacks(r); + } } } \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index 55c8dff742..8fee8706d7 100644 --- a/gradle.properties +++ b/gradle.properties @@ -63,7 +63,7 @@ bytex.ASM_API=ASM7 #SERVICE_BIZ_VERSION=1.2.4 ################ 外部依赖引用 ################ # loglib -LOGLIB_VERSION=1.5.26 +LOGLIB_VERSION=1.5.27 ######## MogoAiCloudSDK Version ######## # 网络请求LOGLIB_VERSION MOGO_NETWORK_VERSION=1.4.6.7 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 06e1dd1641..f4276d4c34 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 @@ -1048,6 +1048,7 @@ public class AMapViewWrapper implements IMogoMapView, public void cacheHDDataByCity(IHdCacheListener listener) { if (mMapView.getMapAutoViewHelper() != null) { String gdCityCode = GDLocationClient.getInstance(getContext()).getLastCityCode(); + CallerLogger.INSTANCE.i(M_MAP + TAG, "gdCityCode is:" + gdCityCode); Integer id = HDMapUtils.getHDCityCode(gdCityCode); if (id != null) { hdCacheListener = listener; @@ -1090,6 +1091,7 @@ public class AMapViewWrapper implements IMogoMapView, public void cacheHDDataByCity(IHdCacheListener listener, MogoLocation location) { if (mMapView.getMapAutoViewHelper() != null) { hdCacheListener = listener; + CallerLogger.INSTANCE.i(M_MAP + TAG, "location lon is:" + location.getLongitude() + ",lat is:" + location.getLatitude()); mMapView.getMapAutoViewHelper().cacheHDDataByCityByLonLat(location.getLongitude(), location.getLatitude(), new OnHdDataDownByCityListener() { @Override public void onMapHDDataCacheProgressByCity(int cityId, double progress) { @@ -1128,6 +1130,7 @@ public class AMapViewWrapper implements IMogoMapView, public boolean isCityDataCached() { if (mMapView.getMapAutoViewHelper() != null) { String gdCityCode = GDLocationClient.getInstance(getContext()).getLastCityCode(); + CallerLogger.INSTANCE.i(M_MAP + TAG, "gdCityCode is:" + gdCityCode); Integer id = HDMapUtils.getHDCityCode(gdCityCode); if (id != null) { List cityInfoList = mMapView.getMapAutoViewHelper().getAllCityCode();