diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/video/FloatingDistanceInfoUtils.kt b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/video/FloatingDistanceInfoUtils.kt
index 116451e807..73be8f41e4 100644
--- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/video/FloatingDistanceInfoUtils.kt
+++ b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/video/FloatingDistanceInfoUtils.kt
@@ -11,6 +11,7 @@ import android.view.WindowManager
import androidx.appcompat.widget.AppCompatTextView
import androidx.constraintlayout.widget.ConstraintLayout
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
+import com.mogo.och.common.module.wigets.OCHGradientTextView
import com.mogo.och.taxi.passenger.R
/**
@@ -31,11 +32,16 @@ object FloatingDistanceInfoUtils {
private var overlayView: View?=null
- private var actvDistancew: AppCompatTextView?=null
+ // 距离
+ private var actvDistancew: OCHGradientTextView?=null
+ // 距离单位
private var actvDistancewUnit: AppCompatTextView?=null
- private var actvSurplusTime: AppCompatTextView?=null
- private var actvArrivedTime: AppCompatTextView?=null
- private var actvSpeed: AppCompatTextView?=null
+ // 剩余时间
+ private var actvSurplusTime: OCHGradientTextView?=null
+ // 到达时间
+ private var actvArrivedTime: OCHGradientTextView?=null
+
+ private var actvSpeed: OCHGradientTextView?=null
/**
@@ -66,6 +72,25 @@ object FloatingDistanceInfoUtils {
actvSurplusTime = view.findViewById(R.id.actv_surplus_time)
actvArrivedTime = view.findViewById(R.id.actv_arrived_time)
+ val intArrayOf = intArrayOf(
+ context.resources.getColor(R.color.taxi_p_video_gradient_start),
+ context.resources.getColor(R.color.taxi_p_video_gradient_end)
+ )
+
+ actvSpeed?.setVertrial(true)
+ actvSpeed?.setmColorList(intArrayOf)
+
+ actvDistancew?.setVertrial(true)
+ actvDistancew?.setmColorList(intArrayOf)
+
+ actvSurplusTime?.setVertrial(true)
+ actvSurplusTime?.setmColorList(intArrayOf)
+
+ actvArrivedTime?.setVertrial(true)
+ actvArrivedTime?.setmColorList(intArrayOf)
+
+
+
// 如果正在展示中,并且lastOverlayView不为null,先做移除操作,保证覆盖在最上面的View只有一个,防止叠加导致无法移除
dismissOverlayView()
@@ -90,13 +115,14 @@ object FloatingDistanceInfoUtils {
it.alpha = 1.0f
it.gravity = Gravity.END or Gravity.TOP
it.x = 0
- it.y = 0
+ it.y = 199
it.format = PixelFormat.RGBA_8888
// 设置窗口类型为应用子窗口,和PopupWindow同类型
it.type = WindowManager.LayoutParams.TYPE_APPLICATION_SUB_PANEL
// 没有边界限制,允许窗口扩展到屏幕外
it.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE or
WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS or
+ WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE or
WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL
if (ani != -1) {
it.windowAnimations = ani
@@ -115,7 +141,7 @@ object FloatingDistanceInfoUtils {
fun setDistance(remainDis: String?, disUnit: String, time: Int, arriveTime: String) {
UiThreadHandler.getsUiHandler().post {
actvDistancew?.text = "$remainDis"
- actvDistancewUnit?.text = disUnit
+ actvDistancewUnit?.text = "距离($disUnit)"
actvSurplusTime?.text = "$time"
actvArrivedTime?.text = arriveTime
}
diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable-xhdpi-2560x1440/bg_taxi_p_arrived_info.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable-xhdpi-2560x1440/bg_taxi_p_arrived_info.png
new file mode 100644
index 0000000000..ebe94ecd52
Binary files /dev/null and b/OCH/mogo-och-taxi-passenger/src/main/res/drawable-xhdpi-2560x1440/bg_taxi_p_arrived_info.png differ
diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable-xhdpi/bg_taxi_p_arrived_info.png b/OCH/mogo-och-taxi-passenger/src/main/res/drawable-xhdpi/bg_taxi_p_arrived_info.png
new file mode 100644
index 0000000000..ebe94ecd52
Binary files /dev/null and b/OCH/mogo-och-taxi-passenger/src/main/res/drawable-xhdpi/bg_taxi_p_arrived_info.png differ
diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/bg_taxi_p_video_bg.xml b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/bg_taxi_p_video_bg.xml
index 4bed9867fd..e97ad25151 100644
--- a/OCH/mogo-och-taxi-passenger/src/main/res/drawable/bg_taxi_p_video_bg.xml
+++ b/OCH/mogo-och-taxi-passenger/src/main/res/drawable/bg_taxi_p_video_bg.xml
@@ -1,5 +1,6 @@
-
+
+
\ No newline at end of file
diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/layout/taxi_p_video_show.xml b/OCH/mogo-och-taxi-passenger/src/main/res/layout/taxi_p_video_show.xml
index f417a51bd4..1093f4319a 100644
--- a/OCH/mogo-och-taxi-passenger/src/main/res/layout/taxi_p_video_show.xml
+++ b/OCH/mogo-och-taxi-passenger/src/main/res/layout/taxi_p_video_show.xml
@@ -67,9 +67,14 @@
+ app:yOffset="0px">
-
-
-
-
-
-
-
+ android:layout_weight="1"
+ android:gravity="center"
+ android:layout_height="0dp">
+
-
+
+
+
+
+
+ app:layout_constraintStart_toStartOf="parent"/>
+
-
-
-
+
+ app:layout_constraintStart_toStartOf="parent"/>
-
-
+
+
diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/values/colors.xml b/OCH/mogo-och-taxi-passenger/src/main/res/values/colors.xml
index 0627d9585c..f69881eed0 100644
--- a/OCH/mogo-och-taxi-passenger/src/main/res/values/colors.xml
+++ b/OCH/mogo-och-taxi-passenger/src/main/res/values/colors.xml
@@ -53,5 +53,7 @@
#4DFFFFFF
#FFFFFF
-
+ #8FB3EF
+ #E1F3FE
+ #FFFFFF
\ No newline at end of file
diff --git a/app/src/main/java/com/mogo/launcher/stageone/HttpDnsStartUp.kt b/app/src/main/java/com/mogo/launcher/stageone/HttpDnsStartUp.kt
index 25479758ba..280e55603f 100644
--- a/app/src/main/java/com/mogo/launcher/stageone/HttpDnsStartUp.kt
+++ b/app/src/main/java/com/mogo/launcher/stageone/HttpDnsStartUp.kt
@@ -28,6 +28,7 @@ import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_LINK_CL
import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_LINK_LOG_CONNECT_STATUS
import com.mogo.eagle.core.data.map.MogoLocation
import com.mogo.eagle.core.function.call.analytics.AnalyticsManager
+import com.mogo.eagle.core.function.call.cloud.CallerCloudListenerManager
import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
@@ -38,8 +39,7 @@ import com.mogo.eagle.core.utilcode.util.ThreadPoolService
import com.mogo.eagle.core.utilcode.util.TimeUtils
import com.mogo.module.common.constants.HostConst
import com.rousetime.android_startup.AndroidStartup
-import com.zhjt.mogo_core_function_devatools.env.*
-import com.zhjt.mogo_core_function_devatools.env.EnvChangeManager.EnvConfig
+import com.zhjt.mogo_core_function_devatools.env.EnvChangeManager
import com.zhjt.service.chain.ChainLog
import com.zhjt.service.chain.TracingConstants.Endpoint.Companion.PAD
@@ -64,7 +64,10 @@ class HttpDnsStartUp : AndroidStartup() {
override fun waitOnMainThread() = false
override fun dependenciesByName(): List {
- return listOf("com.mogo.launcher.stageone.APMStartup", "com.mogo.launcher.stageone.ConfigStartUp")
+ return listOf(
+ "com.mogo.launcher.stageone.APMStartup",
+ "com.mogo.launcher.stageone.ConfigStartUp"
+ )
}
override fun create(context: Context): Boolean {
@@ -183,6 +186,7 @@ class HttpDnsStartUp : AndroidStartup() {
override fun onTokenGot(token: String, sn: String) {
CallerLogger.d(SceneConstant.M_HMI + TAG, "onTokenGot ")
clientConfig.token = token
+ CallerCloudListenerManager.invokeCloudTokenGot(token)
// 异步初始化NetConfig
asyncInit()
// HttpDns ttl回调 --- socketTTL
@@ -264,8 +268,9 @@ class HttpDnsStartUp : AndroidStartup() {
private fun startSocketService() {
CallerLogger.d(SceneConstant.M_HMI + TAG, "startSocketService")
- val location = CallerMapUIServiceManager.getSingletonLocationClient(AbsMogoApplication.getApp())!!
- .lastKnowLocation
+ val location =
+ CallerMapUIServiceManager.getSingletonLocationClient(AbsMogoApplication.getApp())!!
+ .lastKnowLocation
// 关闭长链服务
MogoAiCloudSocketManager.getInstance(context).destroy()
MogoAiCloudSocketManager.getInstance(context)
diff --git a/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/adapter/MoGoAdasMsgConnectStatusListenerImpl.kt b/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/adapter/MoGoAdasMsgConnectStatusListenerImpl.kt
index 9dc73116b5..669a626baa 100644
--- a/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/adapter/MoGoAdasMsgConnectStatusListenerImpl.kt
+++ b/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/adapter/MoGoAdasMsgConnectStatusListenerImpl.kt
@@ -6,9 +6,11 @@ import com.mogo.commons.debug.DebugConfig
import com.mogo.eagle.core.data.autopilot.AutopilotStatusInfo
import com.mogo.eagle.core.data.config.FunctionBuildConfig
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener
+import com.mogo.eagle.core.function.api.cloud.IMoGoCloudListener
import com.mogo.eagle.core.function.autopilot.network.AdasServiceModel
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotManager
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager
+import com.mogo.eagle.core.function.call.cloud.CallerCloudListenerManager
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_ADAS_IMPL
import com.mogo.eagle.core.utilcode.util.ToastUtils
@@ -26,7 +28,7 @@ import java.util.concurrent.TimeUnit
* ADAS-SDK与工控机连接状态回调
*/
class MoGoAdasMsgConnectStatusListenerImpl : OnAdasConnectStatusListener,
- IMoGoAutopilotStatusListener {
+ IMoGoAutopilotStatusListener, IMoGoCloudListener {
private val TAG = "ConnectStatus"
//自动驾驶状态
@@ -37,8 +39,15 @@ class MoGoAdasMsgConnectStatusListenerImpl : OnAdasConnectStatusListener,
private var connectStatus = false
+ init {
+ CallerCloudListenerManager.registerCloudListener(TAG, this)
+ }
+
override fun onConnectionIPCStatus(ipcConnectionStatus: Int, reason: String?) {
- CallerAutoPilotStatusListenerManager.invokeAutoPilotIPCStatusChanged(ipcConnectionStatus, reason)
+ CallerAutoPilotStatusListenerManager.invokeAutoPilotIPCStatusChanged(
+ ipcConnectionStatus,
+ reason
+ )
if (ipcConnectionStatus == Constants.IPC_CONNECTION_STATUS.CONNECTED) {
CallerLogger.d("$M_ADAS_IMPL$TAG", "webSocket 连接成功")
connectStatus = true
@@ -55,7 +64,7 @@ class MoGoAdasMsgConnectStatusListenerImpl : OnAdasConnectStatusListener,
//每次工控机连接成功后,需同步当前设置的美化模式状态
CallerAutoPilotManager.setDemoMode(FunctionBuildConfig.isDemoMode)
//当连接状态是关闭美化模式时,同步给工控机
- if(!FunctionBuildConfig.isDemoMode){
+ if (!FunctionBuildConfig.isDemoMode) {
CallerAutoPilotManager.setIPCDemoMode(FunctionBuildConfig.isDemoMode)
}
//每次工控机连接成功后,需同步当前设置的雨天模式状态
@@ -85,8 +94,9 @@ class MoGoAdasMsgConnectStatusListenerImpl : OnAdasConnectStatusListener,
} else if (ipcConnectionStatus == Constants.IPC_CONNECTION_STATUS.NOT_FOUND_ADDRESS) {
CallerLogger.d("$M_ADAS_IMPL$TAG", "webSocket 找不到可用IP 传入的IP不可用或固定IP列表中所有IP不可用")
}
- CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo().ipcConnStatus = ipcConnectionStatus
- CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo().connectStatusDescribe=reason
+ CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo().ipcConnStatus =
+ ipcConnectionStatus
+ CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo().connectStatusDescribe = reason
CallerAutoPilotStatusListenerManager.invokeAutoPilotStatus()
}
@@ -119,7 +129,7 @@ class MoGoAdasMsgConnectStatusListenerImpl : OnAdasConnectStatusListener,
/**
* 同步SN信息给工控机
*/
- private fun syncBasicInfoToAutopilot() {
+ private fun syncBasicInfoToAutopilot(sn: String? = null) {
CallerLogger.d("$M_ADAS_IMPL$TAG", "同步PAD的SN给工控机……")
// 设置PAD-SN给工控,网络环境
AdasManager.getInstance()
@@ -142,5 +152,8 @@ class MoGoAdasMsgConnectStatusListenerImpl : OnAdasConnectStatusListener,
}
}
+ override fun tokenGot(sn: String) {
+ syncBasicInfoToAutopilot(sn)
+ }
}
\ No newline at end of file
diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/trace/TraceManager.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/trace/TraceManager.kt
index fe9561dbcc..fa47ac9c41 100644
--- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/trace/TraceManager.kt
+++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/trace/TraceManager.kt
@@ -4,10 +4,10 @@ import android.content.Context
import com.mogo.cloud.passport.MoGoAiCloudClientConfig
import com.mogo.eagle.core.data.deva.chain.ChainConstant
import com.mogo.eagle.core.data.deva.chain.ChainLogParam
+import com.mogo.eagle.core.function.api.cloud.IMoGoCloudListener
+import com.mogo.eagle.core.function.call.cloud.CallerCloudListenerManager
import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsListenerManager
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
-import com.mogo.eagle.core.utilcode.mogo.logger.LogLevel
-import com.mogo.eagle.core.utilcode.mogo.logger.Logger
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_DEVA
import com.mogo.eagle.core.utilcode.util.DeviceUtils
import com.mogo.eagle.core.utilcode.util.Utils
@@ -15,7 +15,7 @@ import com.zhidao.loglib.fw.FileWriteManager
import com.zhidao.loglib.fw.FwBuild
import com.zhjt.service.chain.core.ChainTraceStarter
-class TraceManager {
+class TraceManager : IMoGoCloudListener {
private val traceInfoCache = hashMapOf()
private val fwBuildMap: MutableMap = HashMap()
@@ -33,24 +33,25 @@ class TraceManager {
// 初始化Trace抓取服务
val pkgName = Utils.getApp().packageName
ChainTraceStarter.start(pkgName, DeviceUtils.getMacAddress(), false)
+ CallerCloudListenerManager.registerCloudListener(TAG, this)
// Trace过程中进行日志抓取,对日志进行配置
fwBuildMap[ChainConstant.CHAIN_LINK_LOG_CONNECT_STATUS] =
- FwBuild(true, -1,pkgName + ChainConstant.CHAIN_LINK_LOG_ADAS_INIT)
+ FwBuild(true, -1, pkgName + ChainConstant.CHAIN_LINK_LOG_ADAS_INIT)
fwBuildMap[ChainConstant.CHAIN_LINK_LOG_WEB_SOCKET_GNSSINFO] =
- FwBuild(true, -1,pkgName + ChainConstant.CHAIN_LINK_LOG_ADAS_GNSS)
+ FwBuild(true, -1, pkgName + ChainConstant.CHAIN_LINK_LOG_ADAS_GNSS)
fwBuildMap[ChainConstant.CHAIN_LINK_LOG_WEB_SOCKET_AUTOPILOT] =
- FwBuild(true, -1,pkgName + ChainConstant.CHAIN_LINK_LOG_ADAS_AUTO)
+ FwBuild(true, -1, pkgName + ChainConstant.CHAIN_LINK_LOG_ADAS_AUTO)
fwBuildMap[ChainConstant.CHAIN_LINK_LOG_WEB_SOCKET_DATA_TRACKED] =
- FwBuild(false, 30,pkgName + ChainConstant.CHAIN_LINK_LOG_ADAS_DATA_TRACK)
+ FwBuild(false, 30, pkgName + ChainConstant.CHAIN_LINK_LOG_ADAS_DATA_TRACK)
fwBuildMap[ChainConstant.CHAIN_LINK_LOG_WEB_SOCKET_TRAJECTORY] =
- FwBuild(false, 30,pkgName + ChainConstant.CHAIN_LINK_LOG_ADAS_TRAJECTORY)
+ FwBuild(false, 30, pkgName + ChainConstant.CHAIN_LINK_LOG_ADAS_TRAJECTORY)
fwBuildMap[ChainConstant.CHAIN_LINK_LOG_WEB_SOCKET_VEHICLE] =
- FwBuild(false, 30,pkgName + ChainConstant.CHAIN_LINK_LOG_ADAS_VEHICLE)
+ FwBuild(false, 30, pkgName + ChainConstant.CHAIN_LINK_LOG_ADAS_VEHICLE)
fwBuildMap[ChainConstant.CHAIN_LINK_LOG_WEB_SOCKET_TRAFFIC_LIGHT] =
- FwBuild(false, 30,pkgName + ChainConstant.CHAIN_LINK_LOG_ADAS_TRAFFIC_LIGHT)
+ FwBuild(false, 30, pkgName + ChainConstant.CHAIN_LINK_LOG_ADAS_TRAFFIC_LIGHT)
fwBuildMap[ChainConstant.CHAIN_LINK_LOG_WEB_SOCKET_PLANNING_OBJECTS] =
- FwBuild(false, 30,pkgName + ChainConstant.CHAIN_LINK_LOG_ADAS_PLANNING_OBJECTS)
+ FwBuild(false, 30, pkgName + ChainConstant.CHAIN_LINK_LOG_ADAS_PLANNING_OBJECTS)
traceInfoCache[ChainConstant.CHAIN_LINK_LOG_CONNECT_STATUS] =
ChainLogParam(true, "ADAS连接状态")
@@ -79,11 +80,15 @@ class TraceManager {
}
}
- fun setTraceLogEnable(enable:Boolean){
+ override fun tokenGot(sn: String) {
+ FileWriteManager.getInstance().updateDeviceId(sn)
+ }
+
+ fun setTraceLogEnable(enable: Boolean) {
FileWriteManager.getInstance().logger = enable
}
- fun getTraceLogStatus():Boolean{
+ fun getTraceLogStatus(): Boolean {
return FileWriteManager.getInstance().logger
}
@@ -93,7 +98,7 @@ class TraceManager {
fun refreshTraceInfo(map: HashMap) {
map.forEach { (type, param) ->
- if(type != ChainConstant.CHAIN_LINK_LOG_CONNECT_STATUS){
+ if (type != ChainConstant.CHAIN_LINK_LOG_CONNECT_STATUS) {
val fwBuild = this.fwBuildMap[type]
fwBuild?.let {
CallerLogger.d("$M_DEVA$TAG", "param : ${param.des} , record : ${param.record}")
@@ -103,4 +108,5 @@ class TraceManager {
}
FileWriteManager.getInstance().operateChainMap(fwBuildMap)
}
+
}
\ 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/MoGoHmiFragment.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiFragment.kt
index 228463e426..d2f79b5837 100644
--- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiFragment.kt
+++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiFragment.kt
@@ -164,10 +164,10 @@ import java.util.*
}
}
- /*ivCameraIcon?.setOnLongClickListener {
- activity?.let { it1 -> CarcorderPreviewView.show(it1) }
+ ivCameraIcon?.setOnLongClickListener {
+ showSmallFragment()
true
- }*/
+ }
ivToolsIcon?.setOnClickListener {
if (toolsViewFloat == null) {
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/camera/RoadVideoDialog.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/camera/RoadVideoDialog.kt
index fc8c71d8a7..5af993e377 100644
--- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/camera/RoadVideoDialog.kt
+++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/camera/RoadVideoDialog.kt
@@ -40,10 +40,13 @@ class RoadVideoDialog(context: Context) : BaseFloatDialog(context), LifecycleObs
init {
setContentView(R.layout.road_video_dialog)
- setCanceledOnTouchOutside(true)
+ roadVideoPB.indeterminateDrawable.colorFilter = PorterDuffColorFilter(
+ ContextCompat.getColor(context, R.color.notice_blue),
+ PorterDuff.Mode.MULTIPLY
+ )
+ setCanceledOnTouchOutside(false)
roadVideoClose.setOnClickListener {
- stopLive()
dismiss()
}
@@ -52,12 +55,14 @@ class RoadVideoDialog(context: Context) : BaseFloatDialog(context), LifecycleObs
fun show(url: String, isFlvUrl: Boolean) {
show()
+ roadVideoPB.visibility = View.VISIBLE
if (!isFlvUrl) {
// 打开指定ip的摄像头直播流
CallerMonitorManager.openCameraStream(url, { flvUrl ->
gsyVideoPlay(flvUrl)
}) {
ToastUtils.showShort(it.message)
+ dismiss()
}
} else {
gsyVideoPlay(url)
@@ -93,10 +98,6 @@ class RoadVideoDialog(context: Context) : BaseFloatDialog(context), LifecycleObs
}
}
})
- roadVideoPB.indeterminateDrawable.colorFilter = PorterDuffColorFilter(
- ContextCompat.getColor(context, R.color.notice_blue),
- PorterDuff.Mode.MULTIPLY
- )
}
private fun gsyVideoPlay(flvUrl: String) {
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/MainActivity.java b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/MainActivity.java
index abe9c112f4..3fd95f611e 100644
--- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/MainActivity.java
+++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/MainActivity.java
@@ -33,7 +33,6 @@ import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager;
import com.mogo.eagle.core.function.hmi.R;
import com.mogo.eagle.core.function.main.cards.MogoModulesManager;
import com.mogo.eagle.core.function.main.service.MogoMainService;
-import com.mogo.eagle.core.function.main.stagetwo.APMStartup;
import com.mogo.eagle.core.function.main.stagetwo.AutopilotStartup;
import com.mogo.eagle.core.function.main.utils.DisplayEffectsHelper;
import com.mogo.eagle.core.function.main.windowview.FloatingViewHandler;
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/stagetwo/APMStartup.java b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/stagetwo/APMStartup.java
deleted file mode 100644
index 0a90bd5125..0000000000
--- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/stagetwo/APMStartup.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package com.mogo.eagle.core.function.main.stagetwo;
-
-import android.content.Context;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-
-import com.alibaba.android.arouter.launcher.ARouter;
-import com.mogo.test.crashreport.CrashReportConstants;
-import com.mogo.test.crashreport.upgrade.UpgradeReportConstants;
-import com.rousetime.android_startup.AndroidStartup;
-
-public class APMStartup extends AndroidStartup {
- @Nullable
- @Override
- public Boolean create(@NonNull Context context) {
- // bugly
- ARouter.getInstance().build(UpgradeReportConstants.PATH).navigation();
- // apm
- ARouter.getInstance().build(CrashReportConstants.PATH).navigation();
- return true;
- }
-
- @Override
- public boolean callCreateOnMainThread() {
- return true;
- }
-
- @Override
- public boolean waitOnMainThread() {
- return false;
- }
-}
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xxhdpi/road_video_bg.png b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xxhdpi/road_video_bg.png
new file mode 100644
index 0000000000..99bfcefc6f
Binary files /dev/null and b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xxhdpi/road_video_bg.png differ
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/road_video_dialog.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/road_video_dialog.xml
index 937c3505fe..f421903ffc 100644
--- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/road_video_dialog.xml
+++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/road_video_dialog.xml
@@ -7,6 +7,7 @@
android:minWidth="1736px"
android:minHeight="974px"
app:roundLayoutRadius="30px"
+ android:background="@drawable/road_video_bg"
tools:ignore="MissingDefaultResource">
- implements MapView, IMoGoMapFragmentProvider, IMoGoSkinModeChangeListener {
+ implements MapView, IMoGoMapFragmentProvider, IMoGoSkinModeChangeListener,
+ IMoGoAutopilotPlanningListener {
private static final String TAG = "MapFragment";
@@ -330,4 +340,31 @@ public class MapFragment extends MvpFragment
public void setDebugMode(boolean debugMode) {
MapAutoApi.INSTANCE.setDebugMode(debugMode);
}
+
+ @Override
+ public void onAutopilotTrajectory(@NonNull List trajectoryInfos) {
+
+ }
+
+ @Override
+ public void onAutopilotRotting(@Nullable MessagePad.GlobalPathResp globalPathResp) {
+ if (globalPathResp != null) {
+ HashMap> pathMap = new HashMap();
+ String geoHash;
+ ArrayList infList;
+ for (MessagePad.Location location : globalPathResp.getWayPointsList()) {
+ geoHash = GeoHash.withCharacterPrecision(location.getLatitude(), location.getLongitude(), 7).toBase32();
+ // 网格内的轨迹点只取一次
+ if (!pathMap.containsKey(geoHash)) {
+ // 从缓存的新基建数据中去取对应geoHash的新基建数据集合
+ infList = InfStructureManager.INSTANCE.getData().get(geoHash);
+ if (infList != null) {
+ pathMap.put(geoHash, infList);
+ }
+ }
+ }
+ // 全局路径规划只回调一次,保存供全览模式所在Fragment使用
+ InfStructureManager.INSTANCE.savePathData(pathMap);
+ }
+ }
}
diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/overview/InfStructureManager.kt b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/overview/InfStructureManager.kt
index 7be615c9fe..40f50e5218 100644
--- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/overview/InfStructureManager.kt
+++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/overview/InfStructureManager.kt
@@ -10,6 +10,11 @@ object InfStructureManager {
HashMap>()
}
+ // 全局路径规划中所有点的GeoHash网格对应的新基建数据集合
+ private val _pathMap by lazy {
+ HashMap>()
+ }
+
fun saveData(map: HashMap>) {
if (_infMap.isNotEmpty()) {
_infMap.clear()
@@ -18,4 +23,13 @@ object InfStructureManager {
}
fun getData(): Map> = _infMap
+
+ fun savePathData(map: HashMap>) {
+ if (_pathMap.isNotEmpty()) {
+ _pathMap.clear()
+ }
+ _pathMap.putAll(map)
+ }
+
+ fun getPathData(): Map> = _pathMap
}
\ No newline at end of file
diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/overview/Infrastructure.kt b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/overview/Infrastructure.kt
index df81321711..7e5f2e95e6 100644
--- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/overview/Infrastructure.kt
+++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/overview/Infrastructure.kt
@@ -3,7 +3,6 @@ package com.mogo.eagle.core.function.overview
import androidx.room.ColumnInfo
import androidx.room.Entity
import androidx.room.PrimaryKey
-import java.util.*
@Entity(tableName = "t_device")
data class Infrastructure(
diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/overview/vm/OverViewModel.kt b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/overview/vm/OverViewModel.kt
index ffd34fd6ae..86168db538 100644
--- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/overview/vm/OverViewModel.kt
+++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/overview/vm/OverViewModel.kt
@@ -1,12 +1,9 @@
package com.mogo.eagle.core.function.overview.vm
-import android.util.Log
import androidx.lifecycle.*
import com.mogo.eagle.core.function.overview.Infrastructure
import com.mogo.eagle.core.function.overview.OverviewDao
-import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
-import kotlinx.coroutines.withContext
import java.lang.Exception
class OverViewModel(
@@ -48,7 +45,6 @@ class OverViewModel(
// overviewDao.listAllInfStructures()
} catch (e: Exception) {
e.printStackTrace()
- Log.e("cff", "${e.cause}${e.message}")
null
}
data?.let {
@@ -63,7 +59,6 @@ class OverViewModel(
overviewDao.updateGeoHash(id, geoHash)
} catch (e: Exception) {
e.printStackTrace()
- Log.e("cff", "${e.cause}${e.message}")
}
}
}
diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/smp/AMapCustomView.java b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/smp/AMapCustomView.java
index 2d32b348ae..7002f15e25 100644
--- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/smp/AMapCustomView.java
+++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/smp/AMapCustomView.java
@@ -65,7 +65,6 @@ import com.mogo.eagle.core.function.overview.Infrastructure;
import com.mogo.eagle.core.function.smp.view.ISmallMapDirectionView;
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils;
import com.mogo.eagle.core.utilcode.mogo.MapAssetStyleUtils;
-import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
import com.mogo.eagle.core.utilcode.util.ThreadUtils;
import com.mogo.module.common.utils.DrivingDirectionUtils;
import com.zhidao.support.adas.high.AdasManager;
@@ -147,7 +146,8 @@ public class AMapCustomView
CallerMapLocationListenerManager.INSTANCE.addListener(TAG, this);
//设置全览模式
overLayerView.setOnClickListener(v -> {
- mAMapNaviView.displayOverview();
+ CallerHmiManager.INSTANCE.hideSmallFragment();
+// mAMapNaviView.displayOverview();
});
// 注册定位监听
CallerMapLocationListenerManager.INSTANCE.addListener(TAG, this);
@@ -732,34 +732,62 @@ public class AMapCustomView
}
}
}
- // 绘制新基建数据
- if (!posInfMap.isEmpty()) {
- posInfMap.clear();
- }
- ArrayList markerOptionsList = new ArrayList();
- for (ArrayList structureList : pathMap.values()) {
- for (Infrastructure structure : structureList) {
- MarkerOptions markerOption = new MarkerOptions();
- LatLng latLng = new LatLng(Double.valueOf(structure.getLat()),
- Double.valueOf(structure.getLon()));
- markerOption.position(latLng);
- markerOption.icon(BitmapDescriptorFactory.fromBitmap(
- BitmapFactory.decodeResource(getResources(), R.drawable.video_nor)
- ));
- posInfMap.put(latLng, structure);
- markerOptionsList.add(markerOption);
- }
- }
- mAMap.addMarkers(markerOptionsList, false);
- mAMap.setOnMarkerClickListener(marker -> {
- Infrastructure infrastructure = posInfMap.get(marker.getPosition());
- // 如果是摄像头
- if (0 == infrastructure.getCategory() && infrastructure.getIp() != null) {
- CallerHmiManager.INSTANCE.showVideoDialog(infrastructure.getIp());
- return true;
- }
- return false;
- });
+ drawInfMarkers(pathMap);
}
}
+
+ public void drawInfMarkers(Map> infStruMap) {
+ // 绘制新基建数据
+ if (!posInfMap.isEmpty()) {
+ posInfMap.clear();
+ }
+ ArrayList markerOptionsList = new ArrayList();
+ for (ArrayList structureList : infStruMap.values()) {
+ int firstQuadrantCt = 0, secondQuadrantCt = 0, thirdQuadrantCt = 0, forthQuadrantCt = 0;
+ // 每个GeoHash内根据坐标系象限分散开摄像头icon显示
+ for (Infrastructure structure : structureList) {
+ MarkerOptions markerOption = new MarkerOptions();
+ LatLng latLng = new LatLng(Double.valueOf(structure.getLat()),
+ Double.valueOf(structure.getLon()));
+ markerOption.position(latLng);
+ if (structure.getHeading() >= 0 && structure.getHeading() <= 90) {
+ markerOption.anchor(0.5f * firstQuadrantCt, 0.5f + 0.5f * firstQuadrantCt);
+ markerOption.icon(BitmapDescriptorFactory.fromBitmap(
+ BitmapFactory.decodeResource(getResources(),R.drawable.video_icon_right)
+ ));
+ firstQuadrantCt++;
+ } else if (structure.getHeading() >= 90 && structure.getHeading() <= 180) {
+ markerOption.anchor(0.5f * secondQuadrantCt, 0.5f * secondQuadrantCt);
+ markerOption.icon(BitmapDescriptorFactory.fromBitmap(
+ BitmapFactory.decodeResource(getResources(),R.drawable.video_icon_right)
+ ));
+ secondQuadrantCt++;
+ } else if (structure.getHeading() >= 180 && structure.getHeading() <= 270) {
+ markerOption.anchor(0.5f + 0.5f * thirdQuadrantCt, 0.5f * thirdQuadrantCt);
+ markerOption.icon(BitmapDescriptorFactory.fromBitmap(
+ BitmapFactory.decodeResource(getResources(),R.drawable.video_icon_left)
+ ));
+ thirdQuadrantCt++;
+ } else {
+ markerOption.anchor(0.75f + 0.25f * forthQuadrantCt, 0.75f + 0.25f * forthQuadrantCt);
+ markerOption.icon(BitmapDescriptorFactory.fromBitmap(
+ BitmapFactory.decodeResource(getResources(),R.drawable.video_icon_left)
+ ));
+ forthQuadrantCt++;
+ }
+ posInfMap.put(latLng, structure);
+ markerOptionsList.add(markerOption);
+ }
+ }
+ mAMap.addMarkers(markerOptionsList, false);
+ mAMap.setOnMarkerClickListener(marker -> {
+ Infrastructure infrastructure = posInfMap.get(marker.getPosition());
+ // 如果是摄像头
+ if (0 == infrastructure.getCategory() && infrastructure.getIp() != null) {
+ CallerHmiManager.INSTANCE.showVideoDialog(infrastructure.getIp());
+ return true;
+ }
+ return false;
+ });
+ }
}
diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/smp/SmallMapFragment.java b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/smp/SmallMapFragment.java
index 5751b70918..40725b3f56 100644
--- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/smp/SmallMapFragment.java
+++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/smp/SmallMapFragment.java
@@ -17,12 +17,15 @@ import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener;
import com.mogo.eagle.core.function.api.map.smp.IMogoSmallMapProvider;
import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotPlanningListenerManager;
import com.mogo.eagle.core.function.map.R;
+import com.mogo.eagle.core.function.overview.InfStructureManager;
+import com.mogo.eagle.core.function.overview.Infrastructure;
import com.mogo.eagle.core.utilcode.util.UiThreadHandler;
import org.jetbrains.annotations.NotNull;
import java.util.ArrayList;
import java.util.List;
+import java.util.Map;
import mogo.telematics.pad.MessagePad;
import mogo_msg.MogoReportMsg;
@@ -102,6 +105,10 @@ public class SmallMapFragment extends BaseFragment
if (mAMapCustomView != null) {
mAMapCustomView.onResume();
}
+ Map> map = InfStructureManager.INSTANCE.getPathData();
+ if (!map.isEmpty()) {
+ mAMapCustomView.drawInfMarkers(map);
+ }
}
@Override
diff --git a/core/function-impl/mogo-core-function-map/src/main/res/drawable-xhdpi-2560x1440/video_nor.png b/core/function-impl/mogo-core-function-map/src/main/res/drawable-xhdpi-2560x1440/video_icon_left.png
similarity index 100%
rename from core/function-impl/mogo-core-function-map/src/main/res/drawable-xhdpi-2560x1440/video_nor.png
rename to core/function-impl/mogo-core-function-map/src/main/res/drawable-xhdpi-2560x1440/video_icon_left.png
diff --git a/core/function-impl/mogo-core-function-map/src/main/res/drawable-xhdpi-2560x1440/video_icon_right.png b/core/function-impl/mogo-core-function-map/src/main/res/drawable-xhdpi-2560x1440/video_icon_right.png
new file mode 100644
index 0000000000..b395889f64
Binary files /dev/null and b/core/function-impl/mogo-core-function-map/src/main/res/drawable-xhdpi-2560x1440/video_icon_right.png differ
diff --git a/core/function-impl/mogo-core-function-map/src/main/res/drawable-xhdpi/video_nor.png b/core/function-impl/mogo-core-function-map/src/main/res/drawable-xhdpi/video_icon_left.png
similarity index 100%
rename from core/function-impl/mogo-core-function-map/src/main/res/drawable-xhdpi/video_nor.png
rename to core/function-impl/mogo-core-function-map/src/main/res/drawable-xhdpi/video_icon_left.png
diff --git a/core/function-impl/mogo-core-function-map/src/main/res/drawable-xhdpi/video_icon_right.png b/core/function-impl/mogo-core-function-map/src/main/res/drawable-xhdpi/video_icon_right.png
new file mode 100644
index 0000000000..b395889f64
Binary files /dev/null and b/core/function-impl/mogo-core-function-map/src/main/res/drawable-xhdpi/video_icon_right.png differ
diff --git a/core/function-impl/mogo-core-function-monitoring/src/main/java/com/mogo/eagle/core/function/monitoring/CronTaskManager.kt b/core/function-impl/mogo-core-function-monitoring/src/main/java/com/mogo/eagle/core/function/monitoring/CronTaskManager.kt
index 2a1fcf754b..a250a266c1 100644
--- a/core/function-impl/mogo-core-function-monitoring/src/main/java/com/mogo/eagle/core/function/monitoring/CronTaskManager.kt
+++ b/core/function-impl/mogo-core-function-monitoring/src/main/java/com/mogo/eagle/core/function/monitoring/CronTaskManager.kt
@@ -13,6 +13,7 @@ import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_MONITOR
import com.mogo.map.MogoLocationClient
import com.mogo.module.common.constants.HostConst
+import io.reactivex.Observable
import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.disposables.Disposable
import io.reactivex.schedulers.Schedulers
@@ -219,16 +220,28 @@ class CronTaskManager(private var context: Context?) {
}
streamDisposable2 = MoGoRetrofitFactory.getInstance(HostConst.CITY_HOST)
.create(CameraListServices::class.java)
- .reqOpenCameraStream(cameraIp)
+ .reqOpenCameraStreamWithRetry(cameraIp)
+ .flatMap {
+ if (it.code != 200 && it.code != 0) {
+ Observable.error(Throwable(it.msg))
+ } else {
+ Observable.just(it)
+ }
+ }
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
+ .retryWhen(RetryWithDelay())
.subscribe({
CallerLogger.d("$M_MONITOR$TAG", "reqOpenCameraStream返回结果为:$it")
- val flvString = it.flvUrl
- if (!flvString.isNullOrEmpty()) {
- success(flvString)
+ if (it.code == 200 || it.code == 0) {
+ val flvString = it.flvUrl
+ if (!flvString.isNullOrEmpty()) {
+ success(flvString)
+ } else {
+ error(Throwable("flvUrl为空"))
+ }
} else {
- error(Throwable("flvUrl为空"))
+ error(Throwable(it.msg))
}
}, {
CallerLogger.e(
diff --git a/core/function-impl/mogo-core-function-monitoring/src/main/java/com/mogo/eagle/core/function/monitoring/RetryWithDelay.java b/core/function-impl/mogo-core-function-monitoring/src/main/java/com/mogo/eagle/core/function/monitoring/RetryWithDelay.java
new file mode 100644
index 0000000000..1819095745
--- /dev/null
+++ b/core/function-impl/mogo-core-function-monitoring/src/main/java/com/mogo/eagle/core/function/monitoring/RetryWithDelay.java
@@ -0,0 +1,25 @@
+package com.mogo.eagle.core.function.monitoring;
+
+import java.util.concurrent.TimeUnit;
+
+import io.reactivex.Observable;
+import io.reactivex.ObservableSource;
+import io.reactivex.functions.Function;
+
+public class RetryWithDelay implements Function, Observable>> {
+
+ private final int maxRetries = 3;
+ private final int retryDelayMillis = 5000;
+ // 计数器
+ private int retryCount = 0;
+
+ @Override
+ public Observable> apply(Observable extends Throwable> observable) throws Exception {
+ return observable.flatMap((Function>) throwable -> {
+ if (++retryCount <= maxRetries) {
+ return Observable.timer(retryDelayMillis, TimeUnit.MILLISECONDS);
+ }
+ return Observable.error(throwable);
+ });
+ }
+}
diff --git a/core/function-impl/mogo-core-function-monitoring/src/main/java/com/mogo/eagle/core/function/monitoring/net/CameraListServices.kt b/core/function-impl/mogo-core-function-monitoring/src/main/java/com/mogo/eagle/core/function/monitoring/net/CameraListServices.kt
index bfd67c564d..cba6c1a43a 100644
--- a/core/function-impl/mogo-core-function-monitoring/src/main/java/com/mogo/eagle/core/function/monitoring/net/CameraListServices.kt
+++ b/core/function-impl/mogo-core-function-monitoring/src/main/java/com/mogo/eagle/core/function/monitoring/net/CameraListServices.kt
@@ -1,6 +1,7 @@
package com.mogo.eagle.core.function.monitoring.net
import com.mogo.eagle.core.data.camera.*
+import io.reactivex.Observable
import io.reactivex.Single
import retrofit2.http.*
@@ -22,4 +23,7 @@ interface CameraListServices {
@Query("lon") lon: Double, @Query("lat") lat: Double,
@Query("radiusMeter") radiusMeter: Int
): Single
+
+ @GET("/camera-stream/stream/camera/openStream")
+ fun reqOpenCameraStreamWithRetry(@Query("ip") cameraIp: String): Observable
}
\ No newline at end of file
diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/V2XEventManager.kt b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/V2XEventManager.kt
index 8fcb641014..69d88b6ec3 100644
--- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/V2XEventManager.kt
+++ b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/V2XEventManager.kt
@@ -104,7 +104,7 @@ object V2XEventManager : IMoGoMapLocationListener, IMoGoTokenCallback, IV2XCallb
V2XManager.init(V2XConfig.Builder().also {
it.aiCloudConfig(MoGoAiCloudClientConfig.getInstance())
it.context(context)
- it.loggable(true)
+ it.loggable(false)
it.distanceForTriggerRefresh(200f) //行驶超过200(包含)米,刷新道路周边信息(短链请求)
it.durationForTriggerRefresh(
60,
diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/cloud/IMoGoCloudListener.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/cloud/IMoGoCloudListener.kt
new file mode 100644
index 0000000000..a59f644004
--- /dev/null
+++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/cloud/IMoGoCloudListener.kt
@@ -0,0 +1,6 @@
+package com.mogo.eagle.core.function.api.cloud
+
+interface IMoGoCloudListener {
+
+ fun tokenGot(sn:String)
+}
\ No newline at end of file
diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/cloud/CallerCloudListenerManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/cloud/CallerCloudListenerManager.kt
new file mode 100644
index 0000000000..dc9b71dfb9
--- /dev/null
+++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/cloud/CallerCloudListenerManager.kt
@@ -0,0 +1,62 @@
+package com.mogo.eagle.core.function.call.cloud
+
+import androidx.annotation.Nullable
+import com.mogo.eagle.core.function.api.cloud.IMoGoCloudListener
+import java.util.concurrent.ConcurrentHashMap
+
+object CallerCloudListenerManager {
+
+ private val M_CLOUD_LISTENER: ConcurrentHashMap =
+ ConcurrentHashMap()
+
+ /**
+ * 添加监听
+ * @param tag 标记,用来注销监听使用
+ * @param listener 监听回调
+ */
+ fun registerCloudListener(
+ @Nullable tag: String,
+ @Nullable listener: IMoGoCloudListener
+ ) {
+ if (M_CLOUD_LISTENER.containsKey(tag)) {
+ return
+ }
+ M_CLOUD_LISTENER[tag] = listener
+ }
+
+ /**
+ * 删除监听
+ * @param tag 标记,用来注销监听使用
+ */
+ fun unRegisterCloudListener(@Nullable tag: String) {
+ if (!M_CLOUD_LISTENER.containsKey(tag)) {
+ return
+ }
+ M_CLOUD_LISTENER.remove(tag)
+ }
+
+ /**
+ * 删除监听
+ * @param listener 要删除的监听对象
+ */
+ fun unRegisterCloudListener(@Nullable listener: IMoGoCloudListener) {
+ if (!M_CLOUD_LISTENER.containsValue(listener)) {
+ return
+ }
+ M_CLOUD_LISTENER.forEach {
+ if (it.value == listener) {
+ M_CLOUD_LISTENER.remove(it.key)
+ }
+ }
+ }
+
+ /**
+ * 分发获取到的设备sn
+ */
+ fun invokeCloudTokenGot(sn: String) {
+ M_CLOUD_LISTENER.forEach {
+ val listener = it.value
+ listener.tokenGot(sn)
+ }
+ }
+}
\ No newline at end of file
diff --git a/gradle.properties b/gradle.properties
index 6a94642c09..865e63d72a 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -60,7 +60,7 @@ HOOK_LOG_VERSION=1.6.1
SERVICE_CHAIN_VERSION=1.1.0
################ 外部依赖引用 ################
# loglib
-LOGLIB_VERSION=1.3.3
+LOGLIB_VERSION=1.3.5
######## MogoAiCloudSDK Version ########
# 网络请求LOGLIB_VERSION
MOGO_NETWORK_VERSION=1.4.3.7
@@ -164,7 +164,7 @@ MOGO_V2X_SDK_VERSION=1.4.3.7
# ADAS LIB Maven配置(用于地图部门测试使用,鹰眼项目中使用本地依赖) #
ADAS_LIB_GROUP=com.zhidao.support.adas
ADAS_LIB_POM_ARTIFACT_ID=high
-ADAS_LIB_CHILD_VERSION=.1
+ADAS_LIB_CHILD_VERSION=.0
ADAS_DATA_LIB_GROUP=com.zhjt.mogo.adas.data
ADAS_DATA_LIB_POM_ARTIFACT_ID=adas-data