From d96170e45bc9302797a9bf778829e09092f2fe28 Mon Sep 17 00:00:00 2001 From: chenfufeng Date: Fri, 17 Feb 2023 14:41:23 +0800 Subject: [PATCH 01/49] =?UTF-8?q?[Opt]=E5=85=A8=E8=A7=88=E6=A8=A1=E5=BC=8F?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E6=B8=85=E9=99=A4=E5=B7=B2=E8=B5=B0=E8=BF=87?= =?UTF-8?q?=E7=9A=84=E8=BD=A8=E8=BF=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../eagle/core/function/view/OverMapView.kt | 50 ++++++++++++++++--- .../src/main/res/values/attrs.xml | 6 +++ 2 files changed, 48 insertions(+), 8 deletions(-) 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 880661cafd..f26b486ee8 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 @@ -1,5 +1,6 @@ package com.mogo.eagle.core.function.view +import android.annotation.SuppressLint import android.content.Context import android.graphics.Bitmap import android.graphics.Canvas @@ -12,6 +13,7 @@ import android.view.View import android.widget.RelativeLayout import android.widget.TextView import androidx.annotation.MainThread +import androidx.core.graphics.drawable.toBitmap import ch.hsr.geohash.GeoHash import com.amap.api.maps.AMap import com.amap.api.maps.CameraUpdate @@ -66,6 +68,9 @@ class OverMapView @JvmOverloads constructor( private var arrivedDrawable: Int = -1 private var unArrivedDrawable: Int = -1 private var resetDrawable: Int = -1 + private var resetDrawableMarginRight: Int = -1 + private var resetDrawableMarginBottom: Int = -1 + private var isClearArrived: Boolean = false private var mMapView: TextureMapView? = null private var mAMap: AMap? = null @@ -92,6 +97,7 @@ class OverMapView @JvmOverloads constructor( // 计算索引并设置对应的Bitmap var arrivedBitmap: BitmapDescriptor? = null var unArrivedBitmap: BitmapDescriptor? = null + var transparentBitmap: BitmapDescriptor? = null // 绘制轨迹线的集合 private val textureList: MutableList = ArrayList() @@ -121,6 +127,15 @@ class OverMapView @JvmOverloads constructor( unArrivedDrawable = typedArray.getResourceId(R.styleable.OverMapView_unArrivedDrawable, -1) resetDrawable = typedArray.getResourceId(R.styleable.OverMapView_resetDrawable, -1) + resetDrawableMarginRight = typedArray.getResourceId( + R.styleable.OverMapView_resetDrawableMarginRight, + AutoSizeUtils.dp2px(context, 40f) + ) + resetDrawableMarginBottom = typedArray.getResourceId( + R.styleable.OverMapView_resetDrawableMarginBottom, + AutoSizeUtils.dp2px(context, 40f) + ) + isClearArrived = typedArray.getBoolean(R.styleable.OverMapView_isClearArrived, false) typedArray.recycle() initView(context) } catch (e: Exception) { @@ -170,7 +185,12 @@ class OverMapView @JvmOverloads constructor( * (anchorX,anchorY)为锚点坐标,各自取值范围为[0,1],默认值为(0.5,1) */ @MainThread - fun drawSiteMarkers(siteLatLngs: List?, bitmap: Bitmap, anchorX: Float, anchorY: Float) { + fun drawSiteMarkers( + siteLatLngs: List?, + bitmap: Bitmap, + anchorX: Float, + anchorY: Float + ) { if (siteLatLngs.isNullOrEmpty()) return clearSiteMarkers() val markerOptionsList = ArrayList() @@ -210,6 +230,7 @@ class OverMapView @JvmOverloads constructor( mEndMarker?.isVisible = false } + @SuppressLint("UseCompatLoadingForDrawables") private fun initView(context: Context) { mContext = context val smpView = LayoutInflater.from(context).inflate(R.layout.module_overview_map_view, this) @@ -221,12 +242,25 @@ class OverMapView @JvmOverloads constructor( BitmapDescriptorFactory.fromResource(if (arrivedDrawable != -1) arrivedDrawable else R.drawable.taxi_map_arrow_arrived) unArrivedBitmap = BitmapDescriptorFactory.fromResource(if (unArrivedDrawable != -1) unArrivedDrawable else R.drawable.taxi_map_arrow_un_arrive) + transparentBitmap = BitmapDescriptorFactory.fromBitmap( + resources.getDrawable(R.drawable.transparent_background, null) + .toBitmap(AutoSizeUtils.dp2px(context, 32f), AutoSizeUtils.dp2px(context, 230f)) + ) CallerPlanningRottingListenerManager.addListener(TAG, this) initAMapView(context) // 注册定位监听 CallerChassisLocationGCJ02ListenerManager.addListener(TAG, this) //设置全览模式 overLayerView?.setOnClickListener { displayCustomOverView() } + overLayerView?.let { + it.background = + resources.getDrawable(if (resetDrawable != -1) resetDrawable else R.drawable.amap_reset) + val layoutParams = it.layoutParams + layoutParams as RelativeLayout.LayoutParams + layoutParams.rightMargin = resetDrawableMarginRight + layoutParams.bottomMargin = resetDrawableMarginBottom + it.layoutParams = layoutParams + } } private fun initAMapView(context: Context) { @@ -511,7 +545,7 @@ class OverMapView @JvmOverloads constructor( */ private fun displayCustomOverView() { val linePointsLatLng = planningPoints - if (linePointsLatLng.size > 1) { + if (linePointsLatLng.size > 1 && mLocation != null) { //圈定地图显示范围 //存放经纬度 val boundsBuilder = LatLngBounds.Builder() @@ -595,15 +629,15 @@ class OverMapView @JvmOverloads constructor( } for (i in coordinates.indices) { if (i <= locIndex) { - // 已走过的置灰 - arrivedBitmap?.let { - textureList.add(it) + if (isClearArrived) { + textureList.add(transparentBitmap) + } else { + // 已走过的置灰 + textureList.add(arrivedBitmap) } } else { // 未走过的纹理 - unArrivedBitmap?.let { - textureList.add(it) - } + textureList.add(unArrivedBitmap) } texIndexList.add(i) } diff --git a/core/function-impl/mogo-core-function-map/src/main/res/values/attrs.xml b/core/function-impl/mogo-core-function-map/src/main/res/values/attrs.xml index 8fd1ef1348..0d3349fc35 100644 --- a/core/function-impl/mogo-core-function-map/src/main/res/values/attrs.xml +++ b/core/function-impl/mogo-core-function-map/src/main/res/values/attrs.xml @@ -18,5 +18,11 @@ + + + + + + \ No newline at end of file From 38c5d1f660fc8983031b0aec7e85d13ef40f788c Mon Sep 17 00:00:00 2001 From: xinfengkun Date: Fri, 17 Feb 2023 15:10:53 +0800 Subject: [PATCH 02/49] =?UTF-8?q?[opt=203.0][adas=20lib]=20=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0BUS=20R=E6=A1=A3=E4=B8=8D=E8=83=BD=E5=90=AF=E5=8A=A8?= =?UTF-8?q?=E8=87=AA=E5=8A=A8=E9=A9=BE=E9=A9=B6=E6=8B=A6=E6=88=AA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../support/adas/high/common/AutopilotAbilityManager.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/AutopilotAbilityManager.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/AutopilotAbilityManager.java index 733e87d82a..03ec76b745 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/AutopilotAbilityManager.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/AutopilotAbilityManager.java @@ -213,7 +213,7 @@ public class AutopilotAbilityManager { if (!IDENTITY_MODE.BUS_DRIVER_VAN.equalsIgnoreCase(identityMode)) { //金旅Bus和清扫车 档位不正常 if (IDENTITY_MODE.BUS_DRIVER_BASE.equalsIgnoreCase(identityMode) || IDENTITY_MODE.SWEEPER_DRIVER_FT.equalsIgnoreCase(identityMode)) { - if (gear == Chassis.GearPosition.GEAR_N) { + if (gear == Chassis.GearPosition.GEAR_N || gear == Chassis.GearPosition.GEAR_R) { isAutopilotAbility = false; unableAutopilotReason = "挡位不正常"; } From 478be4a2636e9a2299c04e628e857322532a04ba Mon Sep 17 00:00:00 2001 From: lixiaopeng Date: Fri, 17 Feb 2023 19:06:48 +0800 Subject: [PATCH 03/49] =?UTF-8?q?[dev=5Farch=5Fopt=5F3.0]=20=E4=BC=98?= =?UTF-8?q?=E5=8C=96obu=20v2i=E5=92=8Cv2v=E5=BC=80=E5=85=B3=EF=BC=8C?= =?UTF-8?q?=E5=B0=81=E8=A3=85=E8=B0=83=E7=94=A8=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../datacenter/obu/MoGoObuProvider.kt | 38 +- .../obu/MogoPrivateObuNewManager.kt | 660 +++++++++--------- .../mogo-core-function-hmi/build.gradle | 1 - .../hmi/ui/setting/DebugSettingView.kt | 12 +- .../function/hmi/ui/setting/SOPSettingView.kt | 9 +- .../src/main/res/layout/view_sop_setting.xml | 2 + .../eagle/core/data/config/HmiBuildConfig.kt | 4 +- .../mogo/eagle/core/data/obu/ObuStatusInfo.kt | 5 - .../core/function/api/obu/IMoGoObuProvider.kt | 2 + .../function/call/obu/CallerObuApiManager.kt | 7 + 10 files changed, 384 insertions(+), 356 deletions(-) diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MoGoObuProvider.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MoGoObuProvider.kt index 29eb90cdbc..0e6f1f200d 100644 --- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MoGoObuProvider.kt +++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MoGoObuProvider.kt @@ -20,7 +20,6 @@ import com.mogo.support.obu.MogoObuManager @Route(path = MogoServicePaths.PATH_V2X_OBU_MOGO) class MoGoObuProvider : IMoGoObuProvider { private val TAG = "MoGoObuProvider" - private var mContext: Context? = null private val taxiObuIp = "192.168.1.199" //obu的taxi和bus的ip已经全部统一成1网段ip @@ -36,10 +35,11 @@ class MoGoObuProvider : IMoGoObuProvider { MogoObuDcCombineManager.INSTANCE.init(context) CallerLogger.d("$M_OBU$TAG", "初始化蘑菇自研OBU…… localIp = " + CommonUtils.getLocalIPAddress()) - //bus乘客版本obu功能去掉,大理项目需要全部车辆接收,不在限制 + //bus乘客版本obu功能去掉,大理项目需要全部车辆接收,不再限制 mContext = context mContext?.let { - val ipAddress = SharedPrefsMgr.getInstance(context).getString(MoGoConfig.OBU_IP, taxiObuIp) + val ipAddress = + SharedPrefsMgr.getInstance(context).getString(MoGoConfig.OBU_IP, taxiObuIp) //mogo obu MogoPrivateObuNewManager.INSTANCE.connectObu( it, @@ -53,32 +53,28 @@ class MoGoObuProvider : IMoGoObuProvider { * 通过控制面板设置ip,进行传递 */ override fun connect(ipAddress: String) { - if (AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode) - && AppIdentityModeUtils.isPassenger(FunctionBuildConfig.appIdentityMode) - ) { - //不处理 - } else { - mContext?.let { - // 保存本地OBU IP地址 - SharedPrefsMgr.getInstance(it).putString(MoGoConfig.OBU_IP, ipAddress) + mContext?.let { + // 保存本地OBU IP地址 + SharedPrefsMgr.getInstance(it).putString(MoGoConfig.OBU_IP, ipAddress) - //连接 mogo obu - MogoPrivateObuNewManager.INSTANCE.connectObu( - it, - ipAddress, - CommonUtils.getIpAddressString() - ) - - } + //连接 mogo obu + MogoPrivateObuNewManager.INSTANCE.connectObu( + it, + ipAddress, + CommonUtils.getIpAddressString() + ) } } override fun disConnect() { - MogoPrivateObuNewManager.INSTANCE.disconnect() + MogoPrivateObuNewManager.INSTANCE.disConnectObu() } override fun isConnected(): Boolean { - return MogoObuManager.getInstance().connectStatus == 1 + return MogoPrivateObuNewManager.INSTANCE.isConnected() } + override fun setObuLog(isChecked: Boolean) { + MogoPrivateObuNewManager.INSTANCE.setObuLog(isChecked) + } } \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoPrivateObuNewManager.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoPrivateObuNewManager.kt index 71a0eab932..cf1a909d8c 100644 --- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoPrivateObuNewManager.kt +++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoPrivateObuNewManager.kt @@ -29,9 +29,11 @@ import com.mogo.support.obu.ObuBase import com.mogo.support.obu.ObuScene import com.mogo.support.obu.constants.MogoObuComType import com.mogo.support.obu.constants.MogoObuConstants +import com.mogo.support.obu.constants.MogoObuLogLevel import com.mogo.support.obu.constants.MogoObuTopicId import com.mogo.support.obu.model.* import com.mogo.support.obu.option.MogoObuCom +import com.mogo.support.obu.option.MogoObuLog import com.mogo.support.obu.option.MogoObuOptions import com.zhidao.support.obu.ObuManager import com.zhidao.support.obu.OnObuListener @@ -74,7 +76,7 @@ class MogoPrivateObuNewManager private constructor() { .build() //每次连接的时候如果连接连接了,先断开,防止ip改变等导致的连接失败 - if (ObuManager.getInstance().connectStatus == 1) { + if (ObuManager.getInstance().connectStatus == MogoObuConstants.CONNECT_STATUS.CONNECTED) { try { ObuManager.getInstance().disconnect() } catch (e: Exception) { @@ -84,12 +86,33 @@ class MogoPrivateObuNewManager private constructor() { ObuManager.getInstance().connect(options) } - fun getMogoObuListener(): OnObuListener { - return mogoObuListener + + /** + * 断开新obu + */ + fun disConnectObu() { + try { + ObuManager.getInstance().disconnect() + } catch (e: Exception) { + e.printStackTrace() + } } - fun disconnect() { - ObuManager.getInstance().disconnect() + /** + * 新obu是否连接 + */ + fun isConnected(): Boolean { + return ObuManager.getInstance().connectStatus == MogoObuConstants.CONNECT_STATUS.CONNECTED + } + + fun setObuLog(isChecked: Boolean) { + ObuManager.getInstance().setEnableLog(isChecked) + val builder: com.mogo.support.obu.option.MogoObuLog.Builder = + MogoObuLog.newBuilder().setEnableStdio(isChecked) + if (isChecked) { + builder.setStdioLevel(MogoObuLogLevel.DBG) + } + ObuManager.getInstance().logConfig(builder.build()) } private val mogoObuListener: OnObuListener = object : OnObuListener { @@ -133,260 +156,270 @@ class MogoPrivateObuNewManager private constructor() { * v2v预警信息 CvxRvInfoIndInfo CvxV2vThreatIndInfo 他车 */ override fun onObuRvWarning(data: ObuScene.RvWarningData) { -// if (HmiBuildConfig.isShowObuV2vView) { //TODO 临时需要关闭v2v开关 - if (data.warningMsg != null && !data.warningMsg.warningDataList.isNullOrEmpty()) { - // 更新数据,远车数据,之前要匹配uuid - TrafficDataConvertUtilsNew.cvxRvInfoIndInfo2TrafficData(data.vehBasicsMsg)?.let { - CallerMapUIServiceManager.getMarkerService()?.updateITrafficLocationInfo(it) - } - - CallerLogger.d("$M_OBU${MogoObuConst.TAG_MOGO_NEW_OBU}", data.toString()) - data.let { - //预警信息,预警类型 threat_level 2、3 - data.vehBasicsMsg?.let { - //预警方位 - val direction = getMessageDirection(data.vehBasicsMsg.targetPosition) - //处理预警类型 - var appId = "" - var level = -1 - var status = -1 - data.warningMsg?.let { - if (data.warningMsg.warningDataList != null && data.warningMsg.warningDataList.size > 0) { - level = data.warningMsg.warningDataList[0].warningLevel - appId = data.warningMsg.warningDataList[0].warningType.toString() - status = data.warningMsg.warningDataList[0].status - //拼凑数据 - handleSdkObu(appId, direction, status, level, data) - } + if (HmiBuildConfig.isShowObuV2vView) { + if (data.warningMsg != null && !data.warningMsg.warningDataList.isNullOrEmpty()) { + // 更新数据,远车数据,之前要匹配uuid + TrafficDataConvertUtilsNew.cvxRvInfoIndInfo2TrafficData(data.vehBasicsMsg) + ?.let { + CallerMapUIServiceManager.getMarkerService() + ?.updateITrafficLocationInfo(it) } - CallerLogger.d( - "$M_OBU${MogoObuConst.TAG_MOGO_NEW_OBU}", - "onMogoObuRvWarning target_classification = ${ - getMessageDirection(data.vehBasicsMsg.targetPosition) - } --- direction = $direction --- appId = $appId ---level = $level -- status = $status" - ) + CallerLogger.d("$M_OBU${MogoObuConst.TAG_MOGO_NEW_OBU}", data.toString()) + data.let { + //预警信息,预警类型 threat_level 2、3 + data.vehBasicsMsg?.let { + //预警方位 + val direction = getMessageDirection(data.vehBasicsMsg.targetPosition) + //处理预警类型 + var appId = "" + var level = -1 + var status = -1 + data.warningMsg?.let { + if (data.warningMsg.warningDataList != null && data.warningMsg.warningDataList.size > 0) { + level = data.warningMsg.warningDataList[0].warningLevel + appId = + data.warningMsg.warningDataList[0].warningType.toString() + status = data.warningMsg.warningDataList[0].status + //拼凑数据 + handleSdkObu(appId, direction, status, level, data) + } + } + + CallerLogger.d( + "$M_OBU${MogoObuConst.TAG_MOGO_NEW_OBU}", + "onMogoObuRvWarning target_classification = ${ + getMessageDirection(data.vehBasicsMsg.targetPosition) + } --- direction = $direction --- appId = $appId ---level = $level -- status = $status" + ) + } } } } -// } } /** * 红绿灯预警信息 CvxIvpThreatIndInfo */ override fun onObuSpatWarning(data: ObuScene.SpatWarningData) { - handlerTrafficLight( - data.warningType, - data.status, - data.lightsList - ) + if (HmiBuildConfig.isShowObuV2iView) { + handlerTrafficLight( + data.warningType, + data.status, + data.lightsList + ) + } } /** * RSI预警信息 onMogoObuRsiWarning(交通标志预警(前方限速、前方学校等等),交通事件预警(前方拥堵、前方积水等等)) */ override fun onObuRsiWarning(data: ObuScene.RsiWarningData) { -// if (HmiBuildConfig.isShowObuV2iView) { - if (data.warningMsgList != null && data.warningMsgList.size > 0) { - var alertContent = "" - var ttsContent = "" - var appId = data.warningMsgList[0].sceneType.toString() - val status = data.status - val level = data.warningMsgList[0].warningLevel - val direction = getMessageDirection(data.warningMsgList[0].targetPosition) - CallerLogger.d( - "$M_OBU${MogoObuConst.TAG_MOGO_NEW_OBU}", - "onMogoObuRsiWarning appId = $appId --status = $status --level = $level -- eventSerialNum = ${data.warningMsgList[0].eventSerialNum} ---signSerialNum = ${data.warningMsgList[0].signSerialNum} --- direction = $direction -- targetPosition = ${data.warningMsgList[0].targetPosition}" - ) + if (HmiBuildConfig.isShowObuV2iView) { + if (data.warningMsgList != null && data.warningMsgList.size > 0) { + var alertContent = "" + var ttsContent = "" + var appId = data.warningMsgList[0].sceneType.toString() + val status = data.status + val level = data.warningMsgList[0].warningLevel + val direction = getMessageDirection(data.warningMsgList[0].targetPosition) + CallerLogger.d( + "$M_OBU${MogoObuConst.TAG_MOGO_NEW_OBU}", + "onMogoObuRsiWarning appId = $appId --status = $status --level = $level -- eventSerialNum = ${data.warningMsgList[0].eventSerialNum} ---signSerialNum = ${data.warningMsgList[0].signSerialNum} --- direction = $direction -- targetPosition = ${data.warningMsgList[0].targetPosition}" + ) - if (appId != "0") { - when (appId) { - // 道路危险情况预警 - MogoObuConstants.RSI_SCENE_TYPE.HLW.toString() -> { - when (data.warningMsgList[0].eventSerialNum) { - MogoObuConstants.RTE.RTI_TYPE_BREAKDOWN -> {//车辆故障 - appId = - EventTypeEnumNew.TYPE_USECASE_ID_BREAKDOWN_WARNING.poiType - } - MogoObuConstants.RTE.RTI_TYPE_ROAD_WATER -> { //道路积水 - appId = EventTypeEnumNew.FOURS_PONDING.poiType - } - MogoObuConstants.RTE.RTI_TYPE_PARKING_VIOLATION -> { //异常停车 - appId = EventTypeEnumNew.TYPE_USECASE_ID_ROAD_PARKING.poiType - } + if (appId != "0") { + when (appId) { + // 道路危险情况预警 + MogoObuConstants.RSI_SCENE_TYPE.HLW.toString() -> { + when (data.warningMsgList[0].eventSerialNum) { + MogoObuConstants.RTE.RTI_TYPE_BREAKDOWN -> {//车辆故障 + appId = + EventTypeEnumNew.TYPE_USECASE_ID_BREAKDOWN_WARNING.poiType + } + MogoObuConstants.RTE.RTI_TYPE_ROAD_WATER -> { //道路积水 + appId = EventTypeEnumNew.FOURS_PONDING.poiType + } + MogoObuConstants.RTE.RTI_TYPE_PARKING_VIOLATION -> { //异常停车 + appId = + EventTypeEnumNew.TYPE_USECASE_ID_ROAD_PARKING.poiType + } // MogoObuConstants.RTE.RTI_TYPE_CONSTRUCTION_RTE -> { //施工占道,和标牌重复 // appId = EventTypeEnumNew.FOURS_ROAD_WORK.poiType // } - MogoObuConstants.RTE.RTI_TYPE_SPEEDING -> { //超速行驶 - appId = EventTypeEnumNew.TYPE_USECASE_ID_SLW.poiType - } - MogoObuConstants.RTE.RTI_TYPE_RETRIGRADE -> { //车辆逆行 - appId = - EventTypeEnumNew.TYPE_USECASE_ID_ROAD_VEHICLE_RETROGRADE.poiType + MogoObuConstants.RTE.RTI_TYPE_SPEEDING -> { //超速行驶 + appId = EventTypeEnumNew.TYPE_USECASE_ID_SLW.poiType + } + MogoObuConstants.RTE.RTI_TYPE_RETRIGRADE -> { //车辆逆行 + appId = + EventTypeEnumNew.TYPE_USECASE_ID_ROAD_VEHICLE_RETROGRADE.poiType + } } + alertContent = EventTypeEnumNew.getWarningContent(appId) + ttsContent = EventTypeEnumNew.getWarningTts(appId) + alertContent = String.format( //事件才有影响范围 + alertContent, + Math.round(data.warningMsgList[0].distance).toString(), + Math.round(data.warningMsgList[0].eventRadius).toString() + ) + ttsContent = String.format( + ttsContent, + Math.round(data.warningMsgList[0].distance).toString(), + Math.round(data.warningMsgList[0].eventRadius).toString() + ) } - alertContent = EventTypeEnumNew.getWarningContent(appId) - ttsContent = EventTypeEnumNew.getWarningTts(appId) - alertContent = String.format( //事件才有影响范围 - alertContent, - Math.round(data.warningMsgList[0].distance).toString(), - Math.round(data.warningMsgList[0].eventRadius).toString() - ) - ttsContent = String.format( - ttsContent, - Math.round(data.warningMsgList[0].distance).toString(), - Math.round(data.warningMsgList[0].eventRadius).toString() - ) - } - //车内标牌 - MogoObuConstants.RSI_SCENE_TYPE.IVS.toString() -> { - when (data.warningMsgList[0].signSerialNum) { - MogoObuConstants.RTS.RTI_TYPE_SHAPR_TURNS -> { //急转弯 - appId = EventTypeEnumNew.TYPE_ID_SHAPR_TURNS.poiType - } - MogoObuConstants.RTS.RTI_TYPE_BRIDGE -> { //桥梁 - appId = EventTypeEnumNew.TYPE_ID_BRIDGE.poiType - } - MogoObuConstants.RTS.RTI_TYPE_PEDESTRIAN -> { //行人 - appId = EventTypeEnumNew.TYPE_ID_PEDESTRIAN.poiType - } - MogoObuConstants.RTS.RTI_TYPE_SLIPPERY_ROAD -> { //路滑 - appId = EventTypeEnumNew.TYPE_ID_SLIPPERY_ROAD.poiType - } - MogoObuConstants.RTS.RTI_TYPE_TUNNEL -> { //隧道 - appId = EventTypeEnumNew.TYPE_ID_TUNNEL.poiType - } - MogoObuConstants.RTS.RTI_TYPE_FERRY -> { //渡轮 - appId = EventTypeEnumNew.TYPE_ID_FERRY.poiType - } - MogoObuConstants.RTS.RTI_TYPE_UNEVEN_ROAD -> { //路面不平 - appId = EventTypeEnumNew.TYPE_ID_UNEVEN_ROAD.poiType - } - MogoObuConstants.RTS.RTI_TYPE_NON_MOTOR_VEHICLE -> { //非机动车 - appId = EventTypeEnumNew.TYPE_ID_NON_MOTOR_VEHICLE.poiType - } - MogoObuConstants.RTS.RTI_TYPE_OBSTACLE -> { //障碍 - appId = EventTypeEnumNew.TYPE_ID_OBSTACLE.poiType - } - MogoObuConstants.RTS.RTI_TYPE_CONSTRUCTION -> { //施工 - appId = EventTypeEnumNew.TYPE_FOURS_ROAD_WORK.poiType - } - MogoObuConstants.RTS.RTI_TYPE_VEHICLE_QUEUE -> { //车队 - appId = EventTypeEnumNew.TYPE_VEHICLE_QUEUE.poiType - } - MogoObuConstants.RTS.RTI_TYPE_NO_PASSING -> { //不通 - appId = EventTypeEnumNew.TYPE_NO_PASSING.poiType - } - MogoObuConstants.RTS.RTI_TYPE_NO_TURNING_AROUND -> { //禁止掉头 - appId = EventTypeEnumNew.TYPE_NO_TURNING_AROUND.poiType - } - MogoObuConstants.RTS.RTI_TYPE_NO_STOPPING -> { //禁止停车 - appId = EventTypeEnumNew.TYPE_USECASE_ID_ROAD_NO_PARKING.poiType - } - MogoObuConstants.RTS.RTI_TYPE_NO_TOOTING -> { //禁止鸣笛 - appId = EventTypeEnumNew.TYPE_USECASE_ID_ROAD_NO_TOOTING.poiType - } + //车内标牌 + MogoObuConstants.RSI_SCENE_TYPE.IVS.toString() -> { + when (data.warningMsgList[0].signSerialNum) { + MogoObuConstants.RTS.RTI_TYPE_SHAPR_TURNS -> { //急转弯 + appId = EventTypeEnumNew.TYPE_ID_SHAPR_TURNS.poiType + } + MogoObuConstants.RTS.RTI_TYPE_BRIDGE -> { //桥梁 + appId = EventTypeEnumNew.TYPE_ID_BRIDGE.poiType + } + MogoObuConstants.RTS.RTI_TYPE_PEDESTRIAN -> { //行人 + appId = EventTypeEnumNew.TYPE_ID_PEDESTRIAN.poiType + } + MogoObuConstants.RTS.RTI_TYPE_SLIPPERY_ROAD -> { //路滑 + appId = EventTypeEnumNew.TYPE_ID_SLIPPERY_ROAD.poiType + } + MogoObuConstants.RTS.RTI_TYPE_TUNNEL -> { //隧道 + appId = EventTypeEnumNew.TYPE_ID_TUNNEL.poiType + } + MogoObuConstants.RTS.RTI_TYPE_FERRY -> { //渡轮 + appId = EventTypeEnumNew.TYPE_ID_FERRY.poiType + } + MogoObuConstants.RTS.RTI_TYPE_UNEVEN_ROAD -> { //路面不平 + appId = EventTypeEnumNew.TYPE_ID_UNEVEN_ROAD.poiType + } + MogoObuConstants.RTS.RTI_TYPE_NON_MOTOR_VEHICLE -> { //非机动车 + appId = EventTypeEnumNew.TYPE_ID_NON_MOTOR_VEHICLE.poiType + } + MogoObuConstants.RTS.RTI_TYPE_OBSTACLE -> { //障碍 + appId = EventTypeEnumNew.TYPE_ID_OBSTACLE.poiType + } + MogoObuConstants.RTS.RTI_TYPE_CONSTRUCTION -> { //施工 + appId = EventTypeEnumNew.TYPE_FOURS_ROAD_WORK.poiType + } + MogoObuConstants.RTS.RTI_TYPE_VEHICLE_QUEUE -> { //车队 + appId = EventTypeEnumNew.TYPE_VEHICLE_QUEUE.poiType + } + MogoObuConstants.RTS.RTI_TYPE_NO_PASSING -> { //不通 + appId = EventTypeEnumNew.TYPE_NO_PASSING.poiType + } + MogoObuConstants.RTS.RTI_TYPE_NO_TURNING_AROUND -> { //禁止掉头 + appId = EventTypeEnumNew.TYPE_NO_TURNING_AROUND.poiType + } + MogoObuConstants.RTS.RTI_TYPE_NO_STOPPING -> { //禁止停车 + appId = + EventTypeEnumNew.TYPE_USECASE_ID_ROAD_NO_PARKING.poiType + } + MogoObuConstants.RTS.RTI_TYPE_NO_TOOTING -> { //禁止鸣笛 + appId = + EventTypeEnumNew.TYPE_USECASE_ID_ROAD_NO_TOOTING.poiType + } // MogoObuConstants.RTS.RTI_TYPE_SPEED_LIMIT -> { //限速 // appId = // EventTypeEnumNew.TYPE_USECASE_ID_ROAD_SPEED_LIMIT.poiType // } - MogoObuConstants.RTS.RTI_TYPE_BUS_WARNING -> { //公交提醒 - appId = EventTypeEnumNew.TYPE_USECASE_ID_BUS_WARNING.poiType - } - MogoObuConstants.RTS.RTI_TYPE_NARROW_RIGHT -> { //右侧变窄/车道数减少 - appId = EventTypeEnumNew.TYPE_USECASE_ID_NARROW_RIGHT.poiType - } - MogoObuConstants.RTS.RTI_TYPE_GAS_STATION -> { //加油站 - appId = EventTypeEnumNew.TYPE_USECASE_ID_GAS_STATION.poiType - } - MogoObuConstants.RTS.RTI_TYPE_SCHOOL -> { //学校 - appId = - EventTypeEnumNew.TYPE_USECASE_ID_ROAD_PEDESTRIAN_SCHOOL.poiType - } - MogoObuConstants.RTS.RTI_TYPE_ACCIDENT -> { //事故 - appId = EventTypeEnumNew.TYPE_USECASE_ID_ACCIDENT.poiType + MogoObuConstants.RTS.RTI_TYPE_BUS_WARNING -> { //公交提醒 + appId = EventTypeEnumNew.TYPE_USECASE_ID_BUS_WARNING.poiType + } + MogoObuConstants.RTS.RTI_TYPE_NARROW_RIGHT -> { //右侧变窄/车道数减少 + appId = + EventTypeEnumNew.TYPE_USECASE_ID_NARROW_RIGHT.poiType + } + MogoObuConstants.RTS.RTI_TYPE_GAS_STATION -> { //加油站 + appId = EventTypeEnumNew.TYPE_USECASE_ID_GAS_STATION.poiType + } + MogoObuConstants.RTS.RTI_TYPE_SCHOOL -> { //学校 + appId = + EventTypeEnumNew.TYPE_USECASE_ID_ROAD_PEDESTRIAN_SCHOOL.poiType + } + MogoObuConstants.RTS.RTI_TYPE_ACCIDENT -> { //事故 + appId = EventTypeEnumNew.TYPE_USECASE_ID_ACCIDENT.poiType + } } + + alertContent = EventTypeEnumNew.getWarningContent(appId) + ttsContent = EventTypeEnumNew.getWarningTts(appId) + alertContent = String.format( //标牌是没有影响范围的 + alertContent, + Math.round(data.warningMsgList[0].distance).toString() + ) + ttsContent = String.format( + ttsContent, + Math.round(data.warningMsgList[0].distance).toString() + ) } - alertContent = EventTypeEnumNew.getWarningContent(appId) - ttsContent = EventTypeEnumNew.getWarningTts(appId) - alertContent = String.format( //标牌是没有影响范围的 - alertContent, - Math.round(data.warningMsgList[0].distance).toString() - ) - ttsContent = String.format( - ttsContent, - Math.round(data.warningMsgList[0].distance).toString() - ) - } - - // 拥堵 - MogoObuConstants.RSI_SCENE_TYPE.TJW.toString() -> { - appId = EventTypeEnumNew.TYPE_USECASE_ID_TJW.poiType - alertContent = EventTypeEnumNew.getWarningContent(appId) - ttsContent = EventTypeEnumNew.getWarningTts(appId) - alertContent = String.format( //事件才有影响范围 - alertContent, - Math.round(data.warningMsgList[0].distance).toString(), - Math.round(data.warningMsgList[0].eventRadius).toString() - ) - ttsContent = String.format( - ttsContent, - Math.round(data.warningMsgList[0].distance).toString(), - Math.round(data.warningMsgList[0].eventRadius).toString() - ) - } - - //限速预警, ADD处理一次 - MogoObuConstants.RSI_SCENE_TYPE.SLW.toString() -> { - appId = EventTypeEnumNew.TYPE_USECASE_ID_ROAD_SPEED_LIMIT.poiType - alertContent = EventTypeEnumNew.getWarningContent(appId) - ttsContent = EventTypeEnumNew.getWarningTts(appId) - } - } - - CallerLogger.d( - "$M_OBU${MogoObuConst.TAG_MOGO_NEW_OBU}", - "new onMogoObuRsiWarning appId = $appId ---status = $status --- ttsContent = $ttsContent --alertContent = $alertContent -- eventSerialNum = ${data.warningMsgList[0].eventSerialNum} ---signSerialNum = ${data.warningMsgList[0].signSerialNum} ---direction = ${direction.direction} --distance = ${ - Math.round(data.warningMsgList[0].distance) - } ---eventRadius = ${Math.round(data.warningMsgList[0].eventRadius)} --speedMaxLimit = ${data.warningMsgList[0].speedMaxLimit.toInt()}" - ) - - when (status) { - MogoObuConstants.STATUS.ADD -> { // 添加 - //不显示弹框,语音提示,数据在消息盒子里面展示,此处不在处理弹框 - if (alertContent.isEmpty() || ttsContent.isEmpty()) { - return + // 拥堵 + MogoObuConstants.RSI_SCENE_TYPE.TJW.toString() -> { + appId = EventTypeEnumNew.TYPE_USECASE_ID_TJW.poiType + alertContent = EventTypeEnumNew.getWarningContent(appId) + ttsContent = EventTypeEnumNew.getWarningTts(appId) + alertContent = String.format( //事件才有影响范围 + alertContent, + Math.round(data.warningMsgList[0].distance).toString(), + Math.round(data.warningMsgList[0].eventRadius).toString() + ) + ttsContent = String.format( + ttsContent, + Math.round(data.warningMsgList[0].distance).toString(), + Math.round(data.warningMsgList[0].eventRadius).toString() + ) } - saveObuData(appId, alertContent, ttsContent) - showWarning(appId, alertContent, ttsContent, direction) - // 更新数据 - TrafficDataConvertUtilsNew.cvxRtiThreatIndInfo2TrafficData(data)?.let { - CallerMapUIServiceManager.getMarkerService() - ?.updateITrafficThreatLevelInfo(it) + //限速预警, ADD处理一次 + MogoObuConstants.RSI_SCENE_TYPE.SLW.toString() -> { + appId = EventTypeEnumNew.TYPE_USECASE_ID_ROAD_SPEED_LIMIT.poiType + alertContent = EventTypeEnumNew.getWarningContent(appId) + ttsContent = EventTypeEnumNew.getWarningTts(appId) } } - MogoObuConstants.STATUS.UPDATE -> { // 更新 - } + CallerLogger.d( + "$M_OBU${MogoObuConst.TAG_MOGO_NEW_OBU}", + "new onMogoObuRsiWarning appId = $appId ---status = $status --- ttsContent = $ttsContent --alertContent = $alertContent -- eventSerialNum = ${data.warningMsgList[0].eventSerialNum} ---signSerialNum = ${data.warningMsgList[0].signSerialNum} ---direction = ${direction.direction} --distance = ${ + Math.round(data.warningMsgList[0].distance) + } ---eventRadius = ${Math.round(data.warningMsgList[0].eventRadius)} --speedMaxLimit = ${data.warningMsgList[0].speedMaxLimit.toInt()}" + ) - MogoObuConstants.STATUS.DELETE -> { // 删除 - // 更新数据 - TrafficDataConvertUtilsNew.cvxRtiThreatIndInfo2TrafficData(data) - ?.let { - // 事件结束,还原车辆颜色 - it.threatLevel = 0x01 - CallerMapUIServiceManager.getMarkerService() - ?.updateITrafficInfo(it) + when (status) { + MogoObuConstants.STATUS.ADD -> { // 添加 + //不显示弹框,语音提示,数据在消息盒子里面展示,此处不在处理弹框 + if (alertContent.isEmpty() || ttsContent.isEmpty()) { + return } + saveObuData(appId, alertContent, ttsContent) + showWarning(appId, alertContent, ttsContent, direction) + + // 更新数据 + TrafficDataConvertUtilsNew.cvxRtiThreatIndInfo2TrafficData(data) + ?.let { + CallerMapUIServiceManager.getMarkerService() + ?.updateITrafficThreatLevelInfo(it) + } + } + + MogoObuConstants.STATUS.UPDATE -> { // 更新 + } + + MogoObuConstants.STATUS.DELETE -> { // 删除 + // 更新数据 + TrafficDataConvertUtilsNew.cvxRtiThreatIndInfo2TrafficData(data) + ?.let { + // 事件结束,还原车辆颜色 + it.threatLevel = 0x01 + CallerMapUIServiceManager.getMarkerService() + ?.updateITrafficInfo(it) + } + } } } } } -// } } /** @@ -405,133 +438,135 @@ class MogoPrivateObuNewManager private constructor() { "$M_OBU${MogoObuConst.TAG_MOGO_NEW_OBU}", "onMogoObuRsmWarning ------> ${data.toString()}" ) -// if (HmiBuildConfig.isShowObuV2iView) { - if (HmiBuildConfig.isShowObuWeaknessTrafficView) { - // 交通参与者类型 0x0:未知 UNKNOWN | 1机动车 2:非机动车 NON_MOTOR | 3:行人 PEDESTRIAN 4:obu - if (data != null && data.participant != null) { - var v2xType = "" - if (data.participant.ptcType == 1) { //机动车 - v2xType = - EventTypeEnumNew.TYPE_USECASE_ID_VRUCW_MOTOR_VEHICLES.poiType - } else if (data.participant.ptcType == 2) { //非机动车 - v2xType = - EventTypeEnumNew.TYPE_USECASE_ID_VRUCW_NOT_MOTOR_VEHICLES.poiType - } else if (data.participant.ptcType == 3) { //行人 - v2xType = - EventTypeEnumNew.TYPE_USECASE_ID_VRUCW_PERSON.poiType - } else { //未知 - v2xType = EventTypeEnumNew.TYPE_ERROR.poiType - } - - val ttsContent = EventTypeEnumNew.getWarningTts(v2xType) - val alertContent = - EventTypeEnumNew.getWarningContent(v2xType) - var level = -1 - val direction = getMessageDirection(data.participant.targetPosition) - - //物体数据绘制 - CallerLogger.d( - "$M_OBU${MogoObuConst.TAG_MOGO_NEW_OBU}", - "onMogoObuRsmWarning ---- data.status = ${data.status} ---data.participant.ptcId = ${data.participant.ptcId} ---data.participant.ptcType = ${data.participant.ptcType} ---data.warningMsg = ${data.warningMsg} -----data = ${data.toString()}" - ) - when (data.status) { - MogoObuConstants.STATUS.ADD -> { // 添加 - // 更新数据,模型变色的时候是不是update,如果不是更新,可能导致模型不变色,(add的时候,是否有level高的) TODO - TrafficDataConvertUtilsNew.cvxPtcThreatIndInfo2TrafficData(data) - ?.let { - CallerMapUIServiceManager.getMarkerService() - ?.updateITrafficThreatLevelInfo(it) - } + if (HmiBuildConfig.isShowObuV2iView) { + if (HmiBuildConfig.isShowObuWeaknessTrafficView) { + // 交通参与者类型 0x0:未知 UNKNOWN | 1机动车 2:非机动车 NON_MOTOR | 3:行人 PEDESTRIAN 4:obu + if (data != null && data.participant != null) { + var v2xType = "" + if (data.participant.ptcType == 1) { //机动车 + v2xType = + EventTypeEnumNew.TYPE_USECASE_ID_VRUCW_MOTOR_VEHICLES.poiType + } else if (data.participant.ptcType == 2) { //非机动车 + v2xType = + EventTypeEnumNew.TYPE_USECASE_ID_VRUCW_NOT_MOTOR_VEHICLES.poiType + } else if (data.participant.ptcType == 3) { //行人 + v2xType = + EventTypeEnumNew.TYPE_USECASE_ID_VRUCW_PERSON.poiType + } else { //未知 + v2xType = EventTypeEnumNew.TYPE_ERROR.poiType } - MogoObuConstants.STATUS.UPDATE -> { // 更新 - } + val ttsContent = EventTypeEnumNew.getWarningTts(v2xType) + val alertContent = + EventTypeEnumNew.getWarningContent(v2xType) + var level = -1 + val direction = getMessageDirection(data.participant.targetPosition) - MogoObuConstants.STATUS.DELETE -> { // 删除 - // 更新数据 TODO 删除原来的,改变颜色,删除marker。不影响别的模型添加 - TrafficDataConvertUtilsNew.cvxPtcThreatIndInfo2TrafficData(data) - ?.let { - // 事件结束,还原交通参与者颜色 - it.threatLevel = 0x01 - CallerMapUIServiceManager.getMarkerService() - ?.updateITrafficThreatLevelInfo(it) - } - - //删除弱势交通元素 - CallerMapUIServiceManager.getMarkerService() - ?.removeCvxRvInfoIndInfo(data.participant.ptcId.toString()) - } - } - - //预警status - if (data.warningMsg != null && data.warningMsg.warningDataList != null && data.warningMsg.warningDataList.size > 0) { - level = data.warningMsg.warningDataList[0].warningLevel //默认是1个 + //物体数据绘制 CallerLogger.d( "$M_OBU${MogoObuConst.TAG_MOGO_NEW_OBU}", - "onMogoObuRsmWarning ---status---> ${data.status} ---data.warningMsg.warningData[0].status = ${data.warningMsg.warningDataList[0].status} ---v2xType = $v2xType ---alertContent = $alertContent ---ttsContent = $ttsContent ---level = $level" + "onMogoObuRsmWarning ---- data.status = ${data.status} ---data.participant.ptcId = ${data.participant.ptcId} ---data.participant.ptcType = ${data.participant.ptcType} ---data.warningMsg = ${data.warningMsg} -----data = ${data.toString()}" ) - when (data.warningMsg.warningDataList[0].status) { + when (data.status) { MogoObuConstants.STATUS.ADD -> { // 添加 - //更新模型的颜色 + // 更新数据,模型变色的时候是不是update,如果不是更新,可能导致模型不变色,(add的时候,是否有level高的) TODO TrafficDataConvertUtilsNew.cvxPtcThreatIndInfo2TrafficData(data) ?.let { CallerMapUIServiceManager.getMarkerService() ?.updateITrafficThreatLevelInfo(it) } - - if (alertContent.isEmpty() || ttsContent.isEmpty()) { - return - } - saveObuData(v2xType, alertContent, ttsContent) - showWarning(v2xType, alertContent, ttsContent, direction) } - MogoObuConstants.STATUS.UPDATE -> {// 更新 + MogoObuConstants.STATUS.UPDATE -> { // 更新 } MogoObuConstants.STATUS.DELETE -> { // 删除 - // 关闭警告红边 - CallerHmiManager.dismissWarning(WarningDirectionEnum.ALERT_WARNING_ALL) + // 更新数据 TODO 删除原来的,改变颜色,删除marker。不影响别的模型添加 + TrafficDataConvertUtilsNew.cvxPtcThreatIndInfo2TrafficData(data) + ?.let { + // 事件结束,还原交通参与者颜色 + it.threatLevel = 0x01 + CallerMapUIServiceManager.getMarkerService() + ?.updateITrafficThreatLevelInfo(it) + } + //删除弱势交通元素 CallerMapUIServiceManager.getMarkerService() ?.removeCvxRvInfoIndInfo(data.participant.ptcId.toString()) } } + + //预警status + if (data.warningMsg != null && data.warningMsg.warningDataList != null && data.warningMsg.warningDataList.size > 0) { + level = data.warningMsg.warningDataList[0].warningLevel //默认是1个 + CallerLogger.d( + "$M_OBU${MogoObuConst.TAG_MOGO_NEW_OBU}", + "onMogoObuRsmWarning ---status---> ${data.status} ---data.warningMsg.warningData[0].status = ${data.warningMsg.warningDataList[0].status} ---v2xType = $v2xType ---alertContent = $alertContent ---ttsContent = $ttsContent ---level = $level" + ) + when (data.warningMsg.warningDataList[0].status) { + MogoObuConstants.STATUS.ADD -> { // 添加 + //更新模型的颜色 + TrafficDataConvertUtilsNew.cvxPtcThreatIndInfo2TrafficData(data) + ?.let { + CallerMapUIServiceManager.getMarkerService() + ?.updateITrafficThreatLevelInfo(it) + } + + if (alertContent.isEmpty() || ttsContent.isEmpty()) { + return + } + saveObuData(v2xType, alertContent, ttsContent) + showWarning(v2xType, alertContent, ttsContent, direction) + } + + MogoObuConstants.STATUS.UPDATE -> {// 更新 + } + + MogoObuConstants.STATUS.DELETE -> { // 删除 + // 关闭警告红边 + CallerHmiManager.dismissWarning(WarningDirectionEnum.ALERT_WARNING_ALL) + //删除弱势交通元素 + CallerMapUIServiceManager.getMarkerService() + ?.removeCvxRvInfoIndInfo(data.participant.ptcId.toString()) + } + } + } } } } -// } } /** * 地图匹配 是OBU算法输出地图匹配结果,主车匹配道路哪条路或者哪条车道 */ override fun onObuMapMath(data: ObuScene.MapMatchData?) { - if (data != null) { - CallerLogger.d( - "$M_OBU${MogoObuConst.TAG_MOGO_NEW_OBU}", - "onMogoObuMapMath = ${data.status} --speedMaxLimit = ${(data.speedMaxLimit * 3.6).roundToInt()}" - ) - when (data.status) { - MogoObuConstants.STATUS.ADD -> { // 添加 - UiThreadHandler.post { - if (data.speedMaxLimit > 0) { - CallerLimitingVelocityListenerManager.invokeUnion( - (data.speedMaxLimit * 3.6).roundToInt(), DataSourceType.OBU - ) + if (HmiBuildConfig.isShowObuV2iView) { + if (data != null) { + CallerLogger.d( + "$M_OBU${MogoObuConst.TAG_MOGO_NEW_OBU}", + "onMogoObuMapMath = ${data.status} --speedMaxLimit = ${(data.speedMaxLimit * 3.6).roundToInt()}" + ) + when (data.status) { + MogoObuConstants.STATUS.ADD -> { // 添加 + UiThreadHandler.post { + if (data.speedMaxLimit > 0) { + CallerLimitingVelocityListenerManager.invokeUnion( + (data.speedMaxLimit * 3.6).roundToInt(), DataSourceType.OBU + ) + } } } - } - MogoObuConstants.STATUS.UPDATE -> { // 更新 - } + MogoObuConstants.STATUS.UPDATE -> { // 更新 + } - MogoObuConstants.STATUS.DELETE -> { // 删除 - UiThreadHandler.post { - CallerLimitingVelocityListenerManager.invokeUnion( - -1, - DataSourceType.OBU - ) + MogoObuConstants.STATUS.DELETE -> { // 删除 + UiThreadHandler.post { + CallerLimitingVelocityListenerManager.invokeUnion( + -1, + DataSourceType.OBU + ) + } } } } @@ -543,7 +578,6 @@ class MogoPrivateObuNewManager private constructor() { * 获取消息的方位 车辆相关 */ private fun getMessageDirection(targetClassification: Int): WarningDirectionEnum { - // CallerLogger.d("$M_OBU${TAG_MOGO_NEW_OBU}", "预警红边:预警方向->$targetClassification") return when (targetClassification) { MogoObuConstants.VEH_TARGET_POSITION.AHEAD_IN_LANE, MogoObuConstants.VEH_TARGET_POSITION.ONCOMING_IN_LANE -> WarningDirectionEnum.ALERT_WARNING_TOP //正前方 @@ -589,7 +623,9 @@ class MogoPrivateObuNewManager private constructor() { if (FunctionBuildConfig.isObuWarningFusionUnion) { alertContent = "前车距离过近" ttsContent = "前车距离过近" - CallerObuWarningListenerManager.invokeTrackerFusionData(ObuManager.getInstance().obuRvToTrackedObject(info)) + CallerObuWarningListenerManager.invokeTrackerFusionData( + ObuManager.getInstance().obuRvToTrackedObject(info) + ) } else { alertContent = EventTypeEnumNew.getWarningContent(EventTypeEnumNew.TYPE_USECASE_ID_FCW.poiType) @@ -650,7 +686,7 @@ class MogoPrivateObuNewManager private constructor() { ttsContent = EventTypeEnumNew.getWarningTts(EventTypeEnumNew.TYPE_USECASE_ID_LCW.poiType) v2xType = EventTypeEnumNew.TYPE_USECASE_ID_LCW.poiType - if ( + if ( direction == WarningDirectionEnum.ALERT_WARNING_LEFT || direction == WarningDirectionEnum.ALERT_WARNING_TOP_LEFT || direction == WarningDirectionEnum.ALERT_WARNING_BOTTOM_LEFT diff --git a/core/function-impl/mogo-core-function-hmi/build.gradle b/core/function-impl/mogo-core-function-hmi/build.gradle index 852be9bd7f..5229ec0dd4 100644 --- a/core/function-impl/mogo-core-function-hmi/build.gradle +++ b/core/function-impl/mogo-core-function-hmi/build.gradle @@ -68,7 +68,6 @@ dependencies { // debugImplementation rootProject.ext.dependencies.debugleakcanary // releaseImplementation rootProject.ext.dependencies.releaseleakcanary - implementation project(':libraries:mogo-obu') implementation rootProject.ext.dependencies.arouter kapt rootProject.ext.dependencies.aroutercompiler 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 0e422750f7..0c0f7961b4 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 @@ -73,9 +73,6 @@ import com.mogo.eagle.core.utilcode.mogo.toast.TipToast import com.mogo.eagle.core.utilcode.util.* import com.mogo.map.uicontroller.VisualAngleMode import com.mogo.map.uicontroller.VisualAngleMode.* -import com.mogo.support.obu.MogoObuManager -import com.mogo.support.obu.constants.MogoObuLogLevel -import com.mogo.support.obu.option.MogoObuLog import kotlinx.android.synthetic.main.view_debug_setting.view.* import kotlinx.coroutines.launch import mogo.telematics.pad.MessagePad @@ -1194,14 +1191,7 @@ internal class DebugSettingView @JvmOverloads constructor( * 设置是否输出OBU日志 true-打印日志,false-不打印日志 */ tbObuLog.setOnCheckedChangeListener { _, isChecked -> - MogoObuManager.getInstance().setEnableLog(isChecked) - - val builder: com.mogo.support.obu.option.MogoObuLog.Builder = - MogoObuLog.newBuilder().setEnableStdio(isChecked) - if (isChecked) { - builder.setStdioLevel(MogoObuLogLevel.DBG) - } - MogoObuManager.getInstance().logConfig(builder.build()) + CallerObuApiManager.setObuLog(isChecked) } /** diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/SOPSettingView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/SOPSettingView.kt index 6327b04bed..2b6dadfb77 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/SOPSettingView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/SOPSettingView.kt @@ -95,18 +95,19 @@ internal class SOPSettingView @JvmOverloads constructor( } /** - * obu V2V开关 + * obu V2V开关,默认打开 */ + tbObuV2vView.isChecked = HmiBuildConfig.isShowObuV2vView tbObuV2vView.setOnCheckedChangeListener { _, isChecked -> // 默认关闭 HmiBuildConfig.isShowObuV2vView = isChecked } /** - * obu V2i开关 + * obu V2i开关,默认打开 */ + tbObuV2iView.isChecked = HmiBuildConfig.isShowObuV2iView tbObuV2iView.setOnCheckedChangeListener { _, isChecked -> - // 默认关闭 HmiBuildConfig.isShowObuV2iView = isChecked } @@ -174,7 +175,7 @@ internal class SOPSettingView @JvmOverloads constructor( //OBU控制总开关 tbObu.isChecked = CallerObuApiManager.isConnected() tbObu.setOnCheckedChangeListener { _, isChecked -> - if (!isChecked) { + if (isChecked) { CallerObuApiManager.resetObuIpAddress("192.168.1.199") } else { //断开链接 diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_sop_setting.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_sop_setting.xml index e9830e19b0..8c7522b317 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_sop_setting.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_sop_setting.xml @@ -203,11 +203,13 @@ app:layout_constraintTop_toBottomOf="@id/tbCloudWeaknessTrafficSop" /> + Date: Fri, 17 Feb 2023 19:14:14 +0800 Subject: [PATCH 04/49] =?UTF-8?q?[dev=5Farch=5Fopt=5F3.0]=20=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../obu/MogoPrivateObuNewManager.kt | 50 ++++++++----------- 1 file changed, 22 insertions(+), 28 deletions(-) diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoPrivateObuNewManager.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoPrivateObuNewManager.kt index cf1a909d8c..7ab13fcfb4 100644 --- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoPrivateObuNewManager.kt +++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoPrivateObuNewManager.kt @@ -86,7 +86,6 @@ class MogoPrivateObuNewManager private constructor() { ObuManager.getInstance().connect(options) } - /** * 断开新obu */ @@ -157,7 +156,7 @@ class MogoPrivateObuNewManager private constructor() { */ override fun onObuRvWarning(data: ObuScene.RvWarningData) { if (HmiBuildConfig.isShowObuV2vView) { - if (data.warningMsg != null && !data.warningMsg.warningDataList.isNullOrEmpty()) { + if (data.warningMsg != null) { // 更新数据,远车数据,之前要匹配uuid TrafficDataConvertUtilsNew.cvxRvInfoIndInfo2TrafficData(data.vehBasicsMsg) ?.let { @@ -166,33 +165,28 @@ class MogoPrivateObuNewManager private constructor() { } CallerLogger.d("$M_OBU${MogoObuConst.TAG_MOGO_NEW_OBU}", data.toString()) - data.let { - //预警信息,预警类型 threat_level 2、3 - data.vehBasicsMsg?.let { - //预警方位 - val direction = getMessageDirection(data.vehBasicsMsg.targetPosition) - //处理预警类型 - var appId = "" - var level = -1 - var status = -1 - data.warningMsg?.let { - if (data.warningMsg.warningDataList != null && data.warningMsg.warningDataList.size > 0) { - level = data.warningMsg.warningDataList[0].warningLevel - appId = - data.warningMsg.warningDataList[0].warningType.toString() - status = data.warningMsg.warningDataList[0].status - //拼凑数据 - handleSdkObu(appId, direction, status, level, data) - } - } - - CallerLogger.d( - "$M_OBU${MogoObuConst.TAG_MOGO_NEW_OBU}", - "onMogoObuRvWarning target_classification = ${ - getMessageDirection(data.vehBasicsMsg.targetPosition) - } --- direction = $direction --- appId = $appId ---level = $level -- status = $status" - ) + //预警信息,预警类型 threat_level 2、3 + data.vehBasicsMsg?.let { + //预警方位 + val direction = getMessageDirection(data.vehBasicsMsg.targetPosition) + //处理预警类型 + var appId = "" + var level = -1 + var status = -1 + if (data.warningMsg.warningDataList != null && data.warningMsg.warningDataList.size > 0) { + level = data.warningMsg.warningDataList[0].warningLevel + appId = data.warningMsg.warningDataList[0].warningType.toString() + status = data.warningMsg.warningDataList[0].status + //拼凑数据 + handleSdkObu(appId, direction, status, level, data) } + + CallerLogger.d( + "$M_OBU${MogoObuConst.TAG_MOGO_NEW_OBU}", + "onMogoObuRvWarning target_classification = ${ + getMessageDirection(data.vehBasicsMsg.targetPosition) + } --- direction = $direction --- appId = $appId ---level = $level -- status = $status" + ) } } } From fc7732e8f57d48131e21f64c5ff428dd1f91803f Mon Sep 17 00:00:00 2001 From: chenfufeng Date: Fri, 10 Feb 2023 19:32:22 +0800 Subject: [PATCH 05/49] =?UTF-8?q?[Feat]=E6=96=B0=E5=A2=9E=E9=AB=98?= =?UTF-8?q?=E7=B2=BE=E5=9C=B0=E5=9B=BE=E7=BC=93=E5=AD=98=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../function/hmi/ui/map/OfflineMapDialog.kt | 170 ++++++++++++++++++ .../hmi/ui/tools/AutoPilotAndCheckView.kt | 4 + .../hmi/ui/widget/SystemVersionView.kt | 21 +++ .../res/drawable-xhdpi/download_fail_icon.png | Bin 0 -> 8253 bytes .../drawable-xhdpi/download_success_icon.png | Bin 0 -> 9547 bytes .../res/drawable-xhdpi/icon_be_updated.png | Bin 0 -> 7172 bytes .../main/res/drawable-xhdpi/icon_hd_map.png | Bin 0 -> 3196 bytes .../res/drawable/progressbar_corner_bg.xml | 43 +++++ .../main/res/layout/dialog_offline_map.xml | 135 ++++++++++++++ .../main/res/layout/view_system_version.xml | 24 ++- .../src/main/res/values/color.xml | 4 +- .../src/main/res/values/strings.xml | 7 + .../api/hmi/warning/IMoGoWaringProvider.kt | 20 +++ .../function/call/hmi/CallerHmiManager.kt | 3 + .../call/map/CallerMapUIServiceManager.kt | 12 +- gradle.properties | 2 +- .../com/mogo/map/hdcache/IHdCacheListener.kt | 5 + .../uicontroller/IMogoMapUIController.java | 10 ++ .../java/com/mogo/map/AMapViewWrapper.java | 51 ++++++ .../com/mogo/map/MogoMapUIController.java | 17 ++ .../map/uicontroller/AMapUIController.java | 16 ++ .../java/com/mogo/map/utils/HDMapUtils.kt | 27 +++ 22 files changed, 565 insertions(+), 6 deletions(-) create mode 100644 core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/map/OfflineMapDialog.kt create mode 100644 core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/download_fail_icon.png create mode 100644 core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/download_success_icon.png create mode 100644 core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_be_updated.png create mode 100644 core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_hd_map.png create mode 100644 core/function-impl/mogo-core-function-hmi/src/main/res/drawable/progressbar_corner_bg.xml create mode 100644 core/function-impl/mogo-core-function-hmi/src/main/res/layout/dialog_offline_map.xml create mode 100644 core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/hmi/warning/IMoGoWaringProvider.kt create mode 100644 libraries/mogo-map-api/src/main/java/com/mogo/map/hdcache/IHdCacheListener.kt create mode 100644 libraries/mogo-map/src/main/java/com/mogo/map/utils/HDMapUtils.kt diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/map/OfflineMapDialog.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/map/OfflineMapDialog.kt new file mode 100644 index 0000000000..aa62c470b2 --- /dev/null +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/map/OfflineMapDialog.kt @@ -0,0 +1,170 @@ +package com.mogo.eagle.core.function.hmi.ui.map + +import android.annotation.SuppressLint +import android.content.Context +import android.view.View +import android.widget.ImageView +import android.widget.ProgressBar +import android.widget.TextView +import androidx.annotation.MainThread +import androidx.constraintlayout.widget.ConstraintLayout +import androidx.core.content.ContextCompat +import androidx.core.content.res.ResourcesCompat +import androidx.core.view.marginTop +import com.mogo.eagle.core.function.call.hmi.CallerHmiManager +import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager +import com.mogo.eagle.core.function.hmi.R +import com.mogo.eagle.core.function.hmi.dialog.BaseFloatDialog +import com.mogo.map.hdcache.IHdCacheListener +import me.jessyan.autosize.utils.AutoSizeUtils + +/** + * 离线地图缓存 + */ +class OfflineMapDialog(context: Context): BaseFloatDialog(context) { + + private var roundRootLayout: ConstraintLayout? = null + private var offlineTitleView: TextView? = null + private var leftView: TextView? = null + private var rightView: TextView? = null + private var okView: TextView? = null + private var vertLineView: View? = null + private var horizontalLineView: View? = null + private var cacheTipView: TextView? = null + + private var progressBar: ProgressBar? = null + private var downloadPercentView: TextView? = null + private var downloadResultImg: ImageView? = null + + private var isLoading = false + private var isConfirm = true + private var isRetry = false + + init { + setContentView(R.layout.dialog_offline_map) + setCanceledOnTouchOutside(true) + + initView() + } + + private fun initView() { + roundRootLayout = findViewById(R.id.roundRootLayout) + offlineTitleView = findViewById(R.id.tv_cache_title) + progressBar = findViewById(R.id.progressBar) + downloadPercentView = findViewById(R.id.tvDownloadProgress) + leftView = findViewById(R.id.tv_cache_confirm) + rightView = findViewById(R.id.tv_cache_cancel) + okView = findViewById(R.id.tv_cache_ok) + vertLineView = findViewById(R.id.view_vertical_line) + horizontalLineView = findViewById(R.id.view_horizontal_line) + cacheTipView = findViewById(R.id.tv_cache_tips) + downloadResultImg = findViewById(R.id.iv_download_Status) + + leftView?.setOnClickListener { + when { + isConfirm -> { + cacheHDOfflineData() + showNewContent(isLoading = true, false) + } + else -> { + dismiss() + } + } + } + + rightView?.setOnClickListener { + when { + isRetry -> { + cacheHDOfflineData() + } + else -> { + dismiss() + } + } + } + + okView?.setOnClickListener { + dismiss() + } + } + + private fun cacheHDOfflineData() { + CallerMapUIServiceManager.cacheHDDataByCity(object : IHdCacheListener { + override fun onMapHdCacheProgress(cityId: Int, progress: Double) { + updateProgress(progress.toInt()) + } + }) + } + + @SuppressLint("SetTextI18n") + private fun updateProgress(progress: Int) { + if (this@OfflineMapDialog.isShowing) { + progressBar?.let { + if (it.visibility == View.VISIBLE) { + it.progress = if (progress in 1..5) 5 else progress + } + } + downloadPercentView?.text = "$progress%" + if (progress == 100) { + showNewContent(isLoading = false, true) + CallerHmiManager.updateHDDataCacheStatus(true) + } + } + } + + private fun change2NewStyle() { + roundRootLayout?.layoutParams?.width = AutoSizeUtils.dp2px(context, 1110f) + roundRootLayout?.layoutParams?.height = AutoSizeUtils.dp2px(context, 668f) + + val titleParams = offlineTitleView?.layoutParams as ConstraintLayout.LayoutParams + titleParams.topMargin = AutoSizeUtils.dp2px(context, 51f) + + val horizontalLineParams = horizontalLineView?.layoutParams as ConstraintLayout.LayoutParams + horizontalLineParams.topMargin = AutoSizeUtils.dp2px(context, 374f) + + progressBar?.visibility = View.VISIBLE + downloadPercentView?.visibility = View.VISIBLE + okView?.visibility = View.VISIBLE + + vertLineView?.visibility = View.GONE + leftView?.visibility = View.GONE + rightView?.visibility = View.GONE + cacheTipView?.visibility = View.INVISIBLE + } + + @SuppressLint("UseCompatLoadingForDrawables") + private fun showNewContent(isLoading: Boolean, isSuccess: Boolean) { + change2NewStyle() + when { + isLoading -> { + okView?.text = context.resources.getString(R.string.cancel) + offlineTitleView?.text = context.resources.getString(R.string.offline_downloading) + downloadResultImg?.visibility = View.GONE + } + else -> { + downloadResultImg?.visibility = View.VISIBLE + when { + isSuccess -> { + okView?.visibility = View.VISIBLE + okView?.text = context.resources.getString(R.string.ok_tip) + offlineTitleView?.text = context.resources.getString(R.string.offline_download_success) + progressBar?.visibility = View.GONE + downloadPercentView?.visibility = View.GONE + downloadResultImg?.background = ContextCompat.getDrawable(context, R.drawable.download_success_icon) + } + else -> { + offlineTitleView?.text = context.resources.getString(R.string.offline_download_failure) + okView?.visibility = View.GONE + progressBar?.visibility = View.GONE + downloadPercentView?.visibility = View.GONE + leftView?.visibility = View.VISIBLE + rightView?.visibility = View.VISIBLE + vertLineView?.visibility = View.VISIBLE + rightView?.text = context.resources.getString(R.string.retry) + downloadResultImg?.background = ContextCompat.getDrawable(context, R.drawable.download_fail_icon) + } + } + } + } + } +} \ 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/tools/AutoPilotAndCheckView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/tools/AutoPilotAndCheckView.kt index b6025d5503..b9b5274d05 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/tools/AutoPilotAndCheckView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/tools/AutoPilotAndCheckView.kt @@ -197,6 +197,10 @@ internal class AutoPilotAndCheckView @JvmOverloads constructor( systemVersionView?.showAdUpgradeStatus(ipcUpgradeStateInfo) } + fun updateHDDataCacheStatus(isCached: Boolean) { + systemVersionView?.updateHDDataCacheStatus(isCached) + } + override fun onAttachedToWindow() { super.onAttachedToWindow() CallerAutoPilotStatusListenerManager.addListener(TAG, this) 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 913da911a7..6875daab9d 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 @@ -10,10 +10,15 @@ import com.mogo.eagle.core.data.bindingcar.AdUpgradeStateHelper import com.mogo.eagle.core.data.bindingcar.IPCUpgradeStateInfo import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener import com.mogo.eagle.core.function.api.devatools.IMoGoDevaToolsListener +import com.mogo.eagle.core.function.api.bindingcar.IMoGoBindingCarListener import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsListenerManager import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager +import com.mogo.eagle.core.function.call.bindingcar.CallerBindingCarListenerManager +import com.mogo.eagle.core.function.call.bindingcar.CallerBindingcarManager +import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager import com.mogo.eagle.core.function.hmi.R +import com.mogo.eagle.core.function.hmi.ui.map.OfflineMapDialog import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_HMI import com.mogo.eagle.core.utilcode.util.AppUtils @@ -135,6 +140,12 @@ class SystemVersionView @JvmOverloads constructor( } + ivHDCache.setOnClickListener { + OfflineMapDialog(context).show() + } + + updateHDDataCacheStatus(CallerMapUIServiceManager.isCityDataCached()) + if(AdUpgradeStateHelper.isConfirmUpgrade()){ //将角标改为“下载中” ivAdStatus?.setImageResource(R.drawable.icon_downloading) @@ -239,6 +250,16 @@ class SystemVersionView @JvmOverloads constructor( } + fun updateHDDataCacheStatus(isCached: Boolean) { + if (isCached) { + ivHDCacheStatus?.setImageResource(R.drawable.icon_latest_version) + ivHDCache.isEnabled = false + } else { + ivHDCacheStatus?.setImageResource(R.drawable.icon_be_updated) + ivHDCache.isEnabled = true + } + } + /** * 展示当前鹰眼版本 */ diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/download_fail_icon.png b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/download_fail_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..809d7ee41430fdcc7ad9423a11b4352f3d3c7257 GIT binary patch literal 8253 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 literal 0 HcmV?d00001 diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/download_success_icon.png b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/download_success_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..f6f1197a934c28a588dbdf678769c3f667b40c34 GIT binary patch literal 9547 zcmYkCWl$Vl5UzJw+}$NWfZ*-{0t8*$HLyr<_uvjel3=^I1$UR=?(Vuka7b_saQUwP z=;<>vU0pS2x~6)bx1-fmlzgRjI;qD{ulCU-1h&pPW1wEg1FgyZtCI z0aqUN@eLYh7c$~o2o!gT1mSJlZbBRbSt9NY1F4ifL54XkcH?iP=-zH@UHR{_7BGHDZnQvtR3c>YnDvyxe4rnvdyJtyyBe~cU(IsHgPrM z5mN$xOHWURIXh>-VwORxr1rkqxIgAY$m{?MiHcQawR5mKU7=YKq1(!1wDKn~@knhn ziyd45$H<6kIwD0QEnnN>FQwV|^{mA493SU5WRh=)V5hs>rJ&-nmWi#st9gGS$7XgB>0x^4S_@^cA_diJ0~u z;Ujo7iT>}6&KYZV)yWrLf^f|qDlDTJ!ZwPNM-kZ)imvLgSw)EV;5{{$Ij?N*_ygbH zluTZcjdx0twk;D9)q6`zxkGfZM-~YY1*&5@qmrp<9n_1H=yRJ}7Fc2C!K-|07d3iH zYjJo*>Z#W}XgR<8tRMJfr&I>&i@t!4x7N1*mC-i4Vw(?;!NIJuyGY?Yr9qrxtrMK< z>hssWOs@SdUHn+6-6S0#HRH%>q&;t6&Y=?jJHunk4v$qk(VLZYUl%t!YCSipuyDu# zvBO;`O8PiSgijl#AP3f1`>+i%rX27#^pQj8NbPr*G_0Dfu>r&SW=s!SSrbn+zdpH~ z)+EhiM{aQ54U;T%SO_6`Ming!k3QJ5*&r*+O26+~_1sHW{S*(ZEaArWqY@APJ6L@&?9XrsZxIi22|DP8{@k@{3>Vt`?>S9R!th-yVU$PB8mGxB`;n z<@3DUw=nu+;8M7!JDu`7zKPD4`=f`*Ovc3JX>nGcsf?|CY5!47+R7S-ywUpw^lY!) zn-LEu{gOl~8%C^Vtlo-iI&xoxI3e222-DhY#*`MLmi$&XP!|UGWV?niVCteUcVSmA z-kpNcb@1na;axk__lnoIOyrU6=eTI}X`N>(`8bWiJuP001IXc1PXA9@^qdVHZB6}7 z-l_T15CPuXXu&@EZKCs7Z)mCk%O2v9^bwfZHa+^Q__hFc0|y?rIsL|i-*~!S=$v#UfXAsbuw#vGvK}Js)fgZnT(kqvho|!bCG)FN5UR+x1nO%Y5V8WQuM> z9@>{!!obLGcxl#${m?(C>F}=&qR}{U-3y#uIW8Dl-~ZO6U=(&|$eE(HR5vv~(w6xY z7qXH&Qy?2wc73U$*|R#_QnmeLV)!laRJ0V!1x4!Ju7r3#LQ+?hKkfBwI?8_*@C%q< zm6a*t#`cf01LLgcLVu|Y-o-Cx0O_h5T?t3;0G^v!I*mtc8jN-;7xV;2bnj+&>AHw% z@eY>$1Q#NCSFv3U8LGh(lwt(EE40r6$*aH5bt-)}0wsPM+_Dg(Y|ylxiA@hZV+VOf z7w{<91tSk!0W;ODEsvjxMAMBzZz+v}>$uysvfJiM|MsP%blF4+juO3!}l+#TSY) zGl`D;&rjID$anWNNwL*v)JqWC_m{Z z*{31v3dqQu*jUyC|MO`Pn#H!dYLhcEa0FGXi&##X(Gf#!jHif^90Z7^Kv>sQg*Wty z%QNIsru}`f8a>f{K0s(j5{@i(Wn`tQLkrf%`x)wHp3^>T=49L>(Ie?%4y1)Pg^X_ss$6TMMC5}re0qS`FV5jZ%60Wp_*@dMygFOcC!G};Ewt` zS<{^8NX3gcHmuO+>hx}kvh&T~nF!9X0?H(te0HE<2YbQ_HZSSQ=9$lxz~b#22Z<#2 zH`mO<(&{v2e2Dq(^biFG7C-t-X^{LNXvSE%K(uo$EB;nemDu|>>nR_W@J382k8e9I0y*^Q z!PzyH>G^HOS75pNm#(dqxGWM!i|mV_>i(Z`Wru zRq9+(Z&OmW|$U~qaG((iTdH1m77}{||@W+~Um1tLngoI4zA8|#(W)tw2tu1gfng^v+KCaol zH4fdHmhPiX9X3h*E|P5Wg4*UFcTTlAcB34B4Wqi63VcS`%-i=so-sV;WoR8D8*FT; zNInR7`Js4;Y8TdGWaEke#qN}5l-nP9ho?$0rH#b0O3=CfIJXCY1aswfh3Ct0L-`eS z;0eOB!x-L8?X(r5qv$;teP?wUzi42(aO6)ITQch(ryfLzbTmO% zR&+OJG!KH;j_IcUPs7pgj#6AKxA>=s;)go5W0PNl8{-4gB)C&FHmPi*RDR)YPwbL zo;MI~Dt`lbM8npua{?@dL$Z}iB*CUM%P}#Y#!>GJHm)ox>!JB<_*WY|2W$OSSbbOj zNJOK1pG~i6p=jgYknik3OE3qDhR_GA2}tm+ghmMObKj?S8<_>PE(grUcAWHig;nU* z$<(z_r?f+=>ws-5-tGiYmvUSCW^HGMjs>^d5Z5@pQ?R1rt&pqem_ z8@|(paqB9a^P1oUkjN;I_>~OBh*U^Cl@R)bw_4zvI;kCOxt~Ch9t>ji49dlvCJ5no zWK+SWL@~k~j!B@elenz-uk-j^g~2;)Klg)}hR3)kD1}l+OzQaXJEo9Bfku~kY9R@=%`HLxC4)wsWGO2mdI`zZAUi-DvmykLfADte{HWCVLn9H^}%t1_BE zWivr)Bj!FaOHn@r_Dh%CTYTH6ty|B`BJfhQD92i8_cWelgYD+Px;k85^~s-gwoqME zE-YgQMRM3lHEl|hke4q$xEDHADW-)?vzU%>g|)B@B68Ft&Vb!>G!EGHKx?rDuVq%f zZ9p3Hr%N8=Ux`WmDJy>C&wdf5 zt_$DqmRUKLo81eyw<~%LZFL&GNib>HZd`BKajdo8NIxdE*yDNO1FaGmXUeB(WITvJ zCZ>I>8!o~{1ung4<_lP?{Lu8kEbK$boJd$IydkuNA9AP3EM4W}cTFB6Q?P5;-9O4< zZK-ERGcMOpG}{|0{cR7+V1h>9z`wNMlK8|<`5^;UGpypO#zrbwAB&jR25x35qF61JaSdFcv?pBsT}-lU$qcnV_I-RXHSy{>S7%ja^lVVscBn4GS1l%u4b#91rf z0mru&saB&yaihb*ds_?i*ogG$Qxb(eVpbuTh_JD%hmY67DkdbT_Sa}e{L5ov-B+bjXiE@-J3_R5SB2H5S z6=tk}6^Y;KnR!hAWlga#@~O%zZmc?BuT?YsuWgT{U!v)O?@Nxm;;YcZBE~~ZBy|k^ zsc&W_9)FqCe|P9k;6pYPM{DYnQxEbpu_(skLxsK;hv*Afo->uFC&se%99>``yTs0{LABP3B8?Mli+ z-XWcKs~OvazMDgyvR%AJY<>Avj8$F2#b6JtgJlfIpo_2X>%kK=-KDE{x$mqu;-Zzc zWdnNL$N-%u>+oRZpKFuyx?xfGq3jOt_8@IWMEArfP9@oJ#L4uFajV*yGSe6?@CIat z{*V0&r5pkjaJSg)Mco_qpszn5P10<-38#<%d(Vv)*2Pppa(3;wKfjOq0*hC<|BZ1D zpT4x+6PZXVn_-l(Pwmnk-uzKt&9POi(@fn7%aZeZ@RwLWbYt0lllI=E<&~Iz17d5-@ z3Gw4w83J@^6$EBTn)iewJwJ@eYN5M)T|$?nVysHM?YnYD;tI|Y=lNvYjphg#4(8;VOLQU1g-f&ztsFZ80U;H9y2XZ z^<56zf{D<7Sz3+T8@+8|5a+p*V)~fK`7NgU4#Y|tlBR2Nu@+m|X)xB~GMrS6G$vK{ zMq>LY3zi=w+V*#ShnDH#Xsw zJj)4T?cQo(h5SKQ}3Gpcx?xRg2|hAeQ}lAutc`n#E)H?`VNTOP-&o?!lDdp zLD0YDhtK++r8BYr6*ni&obdqQVGv8FgS?%W}VMl)Z3T;R}?l0-s8MDOL~VlrTRb zeht50{)#LL<-%9{_d7sh4N6Vdc^aif0kwagJ?QKQgL<&Sq|#QdqoLK14iAa3s)rTR zinAt%27dwc|k%3e&RHHePjM#sxI zqH#?ZW+s!2JI%BgY49Q}94NYuPjH`y^;gTeC@?|EM%u<34JtUc{tY1Rf zuStn6Pnb~PwU&LX=)lcB;G)~5>vk;9`CbpHqV1wPoZ_m8* z2CXu)U2N*ONVCS`mi7Cn7@7{GqZZPh=YI9x+AXV+)_tDgGOv z{k;{Po5FP&3!YwaA#U{m&0$#9`Ys|WqUoa~NhyG$PtcrJn5S)!gA~{K#*i$QuV^ZQsP-yRK`x;5J)9oY z(>Po%_ow!L{Y>I6z_Ilr{|y^np@ku%Y>h2K(}qbC)n*&0HrhOrj)D6~!&g32OMgd< zg2zcxskiq1=*LLT9?q17j4%3ycdj_P-T08CYQ^{5!QgCddArU;OZa6DXAnv z=MwgMjjrQV$wEV$ns*d97jeA@(-OU!E)z6&rzn@>Wl6JTrfBb16ReL(opU38Aam#_ zk3|sKsL&;9v?NM(=Jj|XcW_iGxn^!Iv^4%+E{*qMYN1XvXp5#bRcOQ?CZz)XVb{5g)v5JxxB|Nc)t_J|Jj2`F7rp=JSBn-{QkB4hbV(YBemR+r2Ka17#A( zMweQ)6Im$^M4v-a{Io4EIp0!M%!iEqBF)YcMAuib-LNp7@@ORdHU3YS-;w26rw6w> zRY*9~n;&^?n&x5~fdC`J4ZZ10(=2dkZRhdrJyLN|W17_C#l#Vos-Cj3%Hj4B9)`s# zVorSTo)Daz#p=rJD+y$4z7|RJM`e+%u>`@V1Ro3zJE>C-u}1kXUD1B9Sdr8v_3HP9 zW^RWpM=ldD6A>!Zhi zio}9A!h1V91(?N;>Cvm4{v&zi9~p4bY9OMQ2le>6U!F4U>$)ZfzoBM)iDrA!%Ap^_ z^|V+WNnQA%D2ms-)|{zduES2FuJ%7VHQYkCWu#b+Y=Du*xHQ7Ds>rKt_?|A-u& z+>q3HD#C!o!nc*+icLiL4dTKxQhr#y0}ZNEF1xrUFGv5Tn!3Zh`;AXqGlb%(b8-JN zt37$s^6{Oc^g1Iu#tIb1MQ;fFKYujQ0NztHX*b)RnoTLn^8vW13FV{lHV)r$WYGeT zhOxdAI?Y1cKl>Rn!^!;jn%J1sZK%lQ^cIFtv>2P<<5zHw?1wY_+0ofk`=65OGT}sF zZ%x%Vw8|=kS+i1peqfai*!SQ1FRj@WQ87qZHQlC4z`OYVXyzFNsK82)_4(4r3rt$B z)pm*#R-1V}+fh#>5kYv;xl>Vu)f3h?JjQy?H|&|}d!Lvoxw!L8w;3?w9Ul@BG`|Ar zgmr$V4l@j@`Vs5S>ZB3$f&~%No!8I_;*zr27|rmaNJ$_~sn-Ro+dcE|sT1`@6(2HNOQ!1td^YjV2eY4Ka0}`wn%c5Lxzv`$}kIzz<%fe!8 z3$-WWYp)RG8<)3GjsLR=C{wRE3JjcdmTg3eaTyGod>W&^D#T}p5jhmbT^ z3Rb!L9Ezf2{?#VCAC9Dh!jO8x6j{;SmOp@fERi_yC=K0y`!_2b(?do?KMOT?X3n%i zM}a*E5UF4Sr#LeXyM&A`|BOxUkle?G@)o5iLg?&7I6=sI5OaU95OUuxOB`c4-kxj0 zFq+W_0NfV%RllMB*u>9wV#s(`NPV2-#@TbF$T@N_Lrt25Q<(^RoO|!f@;(5*w!<^9+%rlug&sz zCPf@&+u!k>@)4ThD_~gwgBFb@E4d5eSkF?uzrB)D4;kd;KkxiSj*h*v>u%pQATKGN zq`pa1A#YC7cQWnO{O(QUQNKOA6tAgp&!*`D9Z02&x@|aW8EF%ZXTKL<210AEUsVQ| zMDe(UnGZ^X%aBnC$;m(39h5oZg&jKf5NkqB#o?sjM?cHOblkiuU1lV@(0G2L<4u}Y zwbRR7jVQ2a2_@GfvA_LIgOoBVIE*>`En^9fGxL1;hbOA3rt4xtcq{2xzLm2G7` z4Kq0f;{31SY~$m)Wo&+MD6}d7M~PB|j!x<-?%<2YgFe&bacZ;5!e~#53&DkxM+-0|*x~*E z79`-2Xm?=W1eS(9g-i4gE$%Pq$eaNVf zm5p0mav2vN{moSR%7aq;?1RxnCBc3*M9oRG0^g2j`6sQa_h$nhD%>GGpHVxy=Py}Y zDsuYfNamPE2)O6Ia(&QyqqJnKuo?^|TKf-SSK5JdAEMsr>Y>Jw4Xg{X-XafaG=Ak7 z@ks4Ki@KddnIl;`29q((-G%{sq-dA))J*v>%k_|)avQu2*^@&*ru$L1JNRnvOQ27C z3r=29zKKj#-vsgVI?{<2<21t^+8fq!7(z}uSUVM1h;qJ~Yi>9d|5PYsc=Qq?U)^f` z$mmv3J=td$bmL>W8T!*!J(~o-UQ0_d7>op83w;f^G5*r%8XWxFrM|_*w7;S9z%)G6 z)h4Q`&wTs(-Q+HQp_;mhW_A(c>htUj)0!eX`Kye9J9d|=T|@hcF;L_3Vdcv|yBKec z_~eBY9dZMD*-?j_qlfz4v_$U@^bU9*z#eSm&Lvz4KI+>~-oM(fR!5Lf;yQPvU9?qm zE+v%!TtdxIZERS6c?;}Iju2>T( zdswonCijEv`ShK-c24b+*S`)maUbR6`g*9YUksazu&n<5xX27Q>HyNrEV1Hla^=v+ zrJn#Ox)Z5m1GJ1qn+GG>yqYR9fCK`Jhs zRqo5`OP^|^hoc_SP}Xeq12eOAG;wE+(pC;w`+jBj7!=`lResA^^&6DyFl@-3sDR>_*MZf&YxNJ3nkrM!nBSr%wpLhS@j^omuB0N;ewSgeCdy_Py>-3^% zT>Dd{_aFeuqBt6aEsLFSQ2kD~KY3gD1%-U2z^>d}&g0fi(FPm_izh1}pva}M2fqBA z#7nfL-Zw1tEvl+F-wo07!T%VKz%dWCsLe)ttn6(8Z`Od_<@Z30uK%BE$~c(3;&$1U zMsPsrs?@l0rt9SUL`!ZRyXpQZ=UKLBoa~jDB3`CP7>X0eME{}{S>nx=x5#Lg)(fR< zBg*dLAmz*Ik(~QQpsvy(h^RXO8508e*#!S<<&pqf?4`_ngx-h^S)uvttzCX|VRJ6A z$tQ@d!hoy=WrvIDB3y96YRIVl(ywhc*hQ_}+kQy+UQR-ugZT#suw{rLXNIwY4%{75 zb(fR;cG$El#L=EGmy5oI=`Q8!+owmv_~_UvAgP%QUHOz(tPm%JZ#6`{1!^Pv!k4}9 za&k4Xh==`eDG-9VOCz%MWi7W_eGsz(+rc5o#}BXPbQ)D&JJo9z*1Zlx>NK$JN2?=7qiqGTHUMZSgmwQ};UN(|Qj zK1DmdF%Qmt)$AoMNqPBu&*(F0ges(3m#3;0AdR1JUgi_=vZ~1bIa?BCjX{%Qs)S|C z-)LSZAaL+or&`~>s$9mv^DV>sv{*}0tp&b%YRuKeSrs@-I*Vv96T|D~&yxSIfrOCh z+jLY>5xhSe1wv=Uvde~tIk?NbBtKo*>C}f21iSOq!yjdwk=xPVh;zRNF}VUv{ju;x z$SnS_dW0$sg9N9=%o$Z6eiU^~N{;_~N+NUANQLpN7U-ClI22UlQvH{00#onDoiHp@ z72Ky>Au55WeQh3ML*O(ksWz9$wM9f63{6D96>>u83UU0N_ zns|zH49HUQB+Ah4uz{mq3%W^<^|v;E8H(`$V5gey|8AFMmD7}4oH`wdnZ;>oGnuUy z&pjtOdh!6+`U=TiFcXRG${8(hI1-ci(&vKQ^w<;`S44vDynlw@6HiEl+;el%G3BHJ zT5VPx#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@ z1ONa40RR91T%ZF01ONa40RR91H~;_u01dhrk^lf3Zb?KzRCod1TziyWRdwI@@jYg~ znM_`j$K*j0AVCr#P(WKB#9|^CTZ)e^(IN^3p|xUVRcvWxfwrrw7D1Ob#kZ|g5CclZ zNTcx1QUdh57l*b(D_KPE_7uno`#;GewXuBBnI?W$1hl@iH(0NQdwpt70S zD~#_W^<3!9SIBg^?X_}dgRp^zw<1uPwi zP~PNc70>3Gd<8ZG7cYWg?|%qjUyo*us>8Ov>VSqDOEDm`$Ei>JlUTO7Cp|8u zNzz$>n6DO-p(7uYr#x}5fidaW2?(R)CuLfY(5K+y-tc2vM#+!FwrpTheE&o1^Q#Lq zOydcR!5U1JH|3gyDIg&$vGU;HpjD|XvbKNf?k`7n?m9y|;dl&-Qw0)*jWTH-1f^-C zEaQY;0Zjl@*N{ze3u_<0Xr)*n@;P2KY1IgHgX6yX|nQppRGrcdT-^f-MZ+D%ZM2bl^C+fV9GRu z0&c9E8MJOzV8xMTB+ z7M;k=U8IeAEk9_G2F95*6*0=IQZZFbLnUw-WlgN~rk;rnPu6ETdzm~FH}EtamCDc5 zHS$fYz_J`6ZAUT+G}FmlM9hdCF*H6sYvry%o)t)d%N`yUyV_Q8T857}ePYj5W)uBs zR3K@v0mUe)N})^vFtT``sjqcV#yX?&NpI)~fC)+cbQIt|_05?y$y52{V?t6t1v)7k zB|k$ekv+GiI_wO$O^$|#yFuN}(zHv6wOY8bZkAT7^R3#nLA$M5wmmQJAnU}|*<_Lp zY-Dn!;ATKEz-bxi7!wo)fP73I^OJkiDTbf&Ps$h>c}yCBHO(J}Fp7C0X*z?v4Ctfe zlP0+kDeqD86Wz27SP?T~M+}K2^XXcQmAeU{M)cjjFP2wnwQDus@$%lN@+|E!X@gu^ z09kB|0T)WLp%&;=q0kbG%|T3+Om&t=ppEMyMjeHRd~j<3A}_MnA0~LQ9s_x5(!|W; zg`b3v#%uuZ2`Nr5ls7BlPt)ue!v}P+Y|tXGy{647OX)57+ltI}yw~Ndz zv85uLF^TUOVB;~!5~Wq4AXHkWBc?&DX)45vw1{n%H{_uNB~c63o@ln0cX8xb;t^)dzODRumh*rmRxmIc>`~-V1o!|fQAHe!!k>5e``@Tbq8|! z&nvR?DCNL%Xn8>(pFX=F?^{w(HlO)rS?<_?dbR@=Hq>DUiJUnlkZ-Qe$Gn-Vs3wxf zP%u^_E{}^LlL=VwHTP6y>mh;^x3ORc@{{W(C(J~idT~Ua-pv-qYA&B^%XApTw30}B zizOYCEje|DEsJJ4vTj=_e{;7FoMD5oLujSytE^1Bf}HIJLBaQf5j&V3TGf#uf{+H4 zWR`+-Ct)xZZl!96;@Or2=+<$90Xy)-@;&*`sgeBaTVi*APP-#(F3ia%e>p5~nw3KX zX|;hYXa$f-IDbYcA3Y;T4RT9YB+nfRWD-pGO>>$I*=vehZBJ}3kmvqxlDN=>c8ZA$ zeGy}D-}NOKtZ47ZC;xL$9=dU|xXvhiQu%YITJqWNS0qp_ge9)0QA$Ns1I5nwo9r+s z0L!v2vy&xaf6>(6j;T;w`*4JIDp3>66}j-`|{0|ZK)zJbXVoi)*h4( zoH?gy5Y{4Q-Vl!GYt4Zchi$_Uk zPgPz#SWcM4KmktN6I~m;u-x)OSu%6Vm_T++sSn^u&Isz&t-s!~B!!MTXMP|X_as)% zY`V9G5QRCr82NS>S-{e>hJE!xN=2+wiIqwPEzM)(`&Lv6tZ+DQhn6=s;E8oh;LCZ_ ze7Wa6lO&f|#_qm~{L!~|$dM5YI=|S^obhk15W}llksXJ8x$Lf9dH=G4*vx|ri<;3b z;kx{-vjI3J1B4g%AC(_Geo);{c)^03gl?ER0yI)_|FYi3FSr&H`<$s^; zkv)fo!PAzHtehjml|UYT_K56zxepvWly3+**MDV)9O(7r<=#m4_E|FQH%n;4*ML9U zqduJ@CAI^t#~-!uC~rq4-wFZ}*b-wKlca#ddxCfu4GX7_p=EQ%v+BK*a?}Luh}H){ z+H--F@^QbsJWvH#zm={5Uu-)k>t5)UtB=CU=&SsyT(@GLoV##}a`@5H2jt0*IZc2UhU0R?0bQNJGs2EZ zhM0Cj;K<8YJc+Fd8NiV>8&^O1Hd#`vTKOuc>QHaeJ#=o&_DRi&GOwV z&XDgv(7CoGfJ{8|IS z!F(_SD-sL)?nj^Nla=R8!||TTMQ2ZwTd#~k@cdAI`s4vQ4U?k@oDdh!DZ=dX7$pGQ zX1XAUhivKP9H^)ed{d(y=dm=3iUb`PN;Sr`QZHA)<7G=cOfe)ZjL0O!zS7(s6RT?p z8V=IZjx)d^W6;JzNi;eGnbBX9RkT2K@ZLepvbk z$_m`gm%mXyx+=ET?>_vJ{NvqQK<&tsNlo(1SKn1<#uWN_)mg3b^=s#)`AgU6o{ou?&t^?c1BkA|#-aKcgSM$r`IJ2vx1%mUA|h^-Nt0&X%GN3ik; zgUBkRrk*V(1(adO#G8gwv1<6G=SauFs^cJrP0Zcj%~ zxf;l|UwBfU`t~K#I=@wFek33Jm)(N>qX@4wP{^3LrWB2d2?7ow1P>Zry{uVInSzx@ zCeT7UCKu%9Kc*GGa=78*1xoab9XsUE5zH{uBNJ}<@Yz_dQl7|Zb0(!Fm%M4NoOi}_ z1>DWJnmPk`cQo~!MPu&;7R;{acTC6ZnuKZ%J~-`oW}-oAGz|?qL9oebVt^-&!9r6u za+pcH)FVTN6YKN1PW;R1l52#~9G0ItHA|GH=g({rUdIOVfy;{=@c`7rn~q=}^I#vo zESc9T2I$Q@`{ZCxMG80+?HQmRaVQgT964k);l#`}cs$3A=V}uM$B8BeI2jUjD6?Vz zu#~ZV{^bijvidBz5Dm8M?7{}<&JFVERSV=DXHJ(pf3{N|-F#TRJ{E)Wz-Ql{(29I? z&1N}VcIAabU`eH{Kz{Uex4aQs{IeIfNfrEm_Vhj}=3Tkug4h+QpMAU&%XW5-S=S(q zvyK|i+z`_@k5ogs_wio&+xN|q``33$=fR_L&816J_LG~tWI;!(%xQ0yUHjqAlF-#x zMTccUr3~`JWwU*hQ(s(|daov)IN;icj>2FTwwDxal3u@Z zq5Nul4?yn{2fj2Le*L?na-iHKeh${k!y(I;o9^8!o4&AI$qG3~=Fcce=i#BW+WO}Y z%Qau#2oSJ2(K-ag#Z|!Cz8S{N1vo(qDUaE3BNxAUj^6*n zRZG+S&ch?h3k=dcH3W4CSSYZQp<|m{>Qlhk2~YqfaRH?8~qSRW6pK&o!X@ zf51u~c=oVn611ECQFc&xkFegW=mRx?vCK;;uO8I+>+vT#i zElg`|+j~^bTrgGIT1)Y65CDfZE|(h>@M3#_$Q$PsXYHTnay&^n>$j`Beh6w`_5KbIIAQ#edJ7O zX@Wj*m220-x4~dc=V%utU{A!VQ-MfK3~&r7PD&O52e1JFcQUMa#?3s?)i6b$ zwWLMXe&VdGY)$X$tw>)L^m%j;lstmNzg2H2$=gpKeMCD9OaJ+A_QSQb$hoIa8@2v! zDLTR{8=l`=m1lQXWYf+8d2~aMy!+geeELu04kDe8RnM=s4aopH>JQJg6>R1|_1hz| z9|u-KSCycvk&b2%WJU<-Pc&puI)SPbiYuN(u>OXX!&jsXm>;-U@6t-J>A^9eJoj?! z8VnK7Fn+s#NN)V$KKNYF!mU`KkHnXc|Dano+%!i=$m3gk<&kF(%KcC5!!?< zAfG-M03@T1s|%e-aWoq*@WLr0LQabp32ZC zt5Q&g)*r$;_E*Z-V)G#}EI-c?0(X=zsf9j>7|F%5L*zp^+7}-;AHlIM*V$2W zTtMTA^&ubV1KzxkFGLdvCk{Bh9`mmS}gK)I5AB|*vKdZltHB7mh`xQzz}o-#Wrzni6Dyr z(f#o(2Xl>u<))so@JxXF;ec4iEvPZZ_Bs%_BhI!V#o^GiJlIQ3=mvG+@+#BXELi;t_$9@T2=t zde%z#kOwcYF@O``*j2rPg%hh+2x9_{S8#EPj_&5cdEgzy#B!?gQH797+Gf%66bM=+ zd?l7;)SXb`Ob~SXEFQ`ujdi#kaDs*JhTbthDvUC%L0&xHLmmLp36wp`ptzGC(rU46 z0F&{FAnOD9xLiA!0Fgeak0`p1*3;*h1`2~YFN8!cxiDy_PzD2a883vu z3SQMJ;=!H;fkw{^eF}J?&=QU0a*$A`vhbkI8R~f|Xq$7Y%0?+&21ToQGz>Ixv)D)s zX>}=VB8N8Us1%C`CU>A*iK=%%VeBJgAmiN|8KbV!BcHlKp1KOgMrr1=b2yU75*@9y z>}>^+)!&tU5ZxJde$fsqCQVDPopI+5x7-Rs`!^1d5dG zn?W|Ln|X1lN@2_YJb;#}x@@$HBt>$u_qjoc{T$ck1R6jj`9?W*j3Uhr(lq1PeJEGM z6ZO>c5*oFr#A>xoMlSPk8Crs=a><{gPFsp{#z}q3)pnAWb(8v}N$;5+_lnilb~OHA zP#3y^6-_(|Su7343b-MVgK^5T%5W!kRKr(U&5y3x>GU61i&ki$5t%e&(*caLqmp!L z?TnMl&}Qq!OzV6MZ>`I2PU>pDNmCXp;$8#dRKCeV-DBjFJ~o|W>L=AE9699!Yg_lO z*-6ZZonlCC38sc|2Jme-fX`zNbaAl)r)<7tU`12DedQhY$N)}?V#N&T8j}<9sa*D6 z0Z7UWI4n151E9G#;Aq1Po!*R=NqR$T_%Tl9BdzTOq4LIUD#P$4eL|-qvT4mYu^-DD z*x0u1$~%aaVg~GpVT@%SdD~KkDd5Fokz%n(a3gEj0dXzFkih#Ae&~$!*CyX}*^O?` zo*zS**h_*stGrRp07+h1K(b1kGK~`}W?F-`0x8CsOJybZhL`4{KGoDbG9V2j#46v! zni=P%e3_S6Jd-CJ;6|L0JwI;Sa@mcAT7QjL5i?>(42dOq8f=+%)~#D7_uY4&)!*Nb zhn>yV(V}C!)zHCPg?L`;;c=qt;Oz>>Dc7v#jrVSlTK|(#^NbMN@n$Ujuz0q)ARMI} z8LN9?f+DjQ%d+`QGbA(yq&TzA*OVJzvvkME2e0GF&&o^FM&K*OQBbzR@wyR_&xW4Uj2&?pdbI#A7&?KC*P!rd*(p7J&+nR^xn~U~8JB|wUI(K@7gYv} zS8DR>vK-3A-N^TQ_-FBbHt|Bo^0CbD@xT+$l!73ackq^54twblU^omc=innNNk1n{ zmxV+@mxevL$Zd8*$A+1g0kVxZH}JUK_c20%F?N)egUt(e#C!mcU-VJB6yWOQWDM9e zVa&kbpebHQv+JpdVCRFL3exr&ojXfLjkN4`5^4?qHRTZiaXVYh-jZ*H`K(PF5?| zRU;O?Tw+6Wy!7F~rU5n(_F!-xHgjGsANth@Zlsb623p;)1iR#CgzfE%=rA>;fb)*u z7t*cdid|tIFO&!62t5aEcQ-VxCD_OVOqtr1uKZ0(1C%|!r@kkwb^wj?~~{U ziUTsdn;GJ`A*6lNjnJ|Qb`V-MHy3$1S|l>_Od zb+JnX<}pyoZU_sdcJT-H2ScTjg|D)tQm~}pVNH(1J-jxKF82H!7LfSR9Drl)q-7^O z6!?<@Q0EY zTDJk5R?au|ckS9`n-638-621PMTcdhph=$@+^`r>N zF5R*`-F0(Q6YottU2i)ce72hpa<$0Mv3Hc2ozX9SmEPP>6zm~wVG=6!p{uUHp2#q#F2<|J+~{C|S@cjP8ZNb0XzOp8P{6vLs`jb9>ADXF?E9g25D)DTD+x0%olD5+qIoPvs8ST1FID+lue~?h0 zZ7e(MN(>^S0B7cSptHYmN;5|e31@t)Q_4yk= zILNkrTY3;hx4{y#3TXtIWyWtaZNivEU;NNF5spj<3{kaWsMz?Ejt<0jlgDg91r9y&Hn>;E{vBuDq!IN0000PYrS__oj=UwP7^PxM)YjTtQF~Nc z6_nVbuT@_4_kQ_(|6k8_Kld5;`EWj*bDcD6OJin6entQQz-($_XmiE>S8!mUyZXU5 zDtE7lD%i$YA3zur+`MuOAKf$cw6FlkT-gi&suU!E=0C|5_^$u}P#01GsIQpnzgXe5 z|7HCPssCp?{3qmTld1v$fa|7)P}^rzyZMnX?fQiV!;H#5*z^q$iI}@loT}WIl)j@` z5az7hOtzu~#qH;3avw1rd*Tb+KjMwKtSwh z7a8`@om+p9H(}h>JtaQCVEqQE%mK{0XF%DvX@WN)en6W8MIfT;LY%;eN}t=qC->>P zEDjgqLgS64WX}wE=WSwOIi?zuUfbop({Ir}Q{Ik3ht}t+j~>)#cvvWXIbQZ|3=@34 z1PjmUgXr@uRwwu2GSMMgG9j-nw9;~IoSod69l`&0CK4Ji!3lxdEeL4?CT!A~;E--c zOOD*VtouxM%WhLd;-~AsJY)+c^$?^5Ot5cB#;PrfHCcZ{|FMjw%Yjm(pl}MhDQO6+ z4aG&*OMe52o$~ad$&OhOv|C9V(7A54GeuUaeO}MQ${dy=Xo>Nl_Z+ObVPNO)SEGyJ{nAE4{-<)k_IE+jp=QhXr11(8qcHcpx%jt5oxM z_C=B-zP|nSi%%V!p5K$KKBm?kl}a&t?aOWl$_@uRX_=%%aV<&l{>k?vnH4$W2eW)e zMS)?FJA=6JYtxJy7Q(kIDI{R=s)?-Nr7S=#sJ5E6le?ts@v?TV z4FY0v6t}yY;PiRgN&f5{X`~We1H_iCw1(~;P_MG=oM2bg@Na>OT;nwN}j@j@I zmK~E`)u0GZO3R_4y?$R}OEZnx0fS0X~abdJT zSZ;$4*H)|ym>zj6A?3tPh9EGul=$iPY*cy(<4vGn@}|JcI%RX@lD_$| zc2G3?x`U)&q;OGN+W|I9%`GP8)tn{Aaq_zoeltPj+DduS0LL&yvZ^(&a%V~jx!``& z65{D#U5de{9 zlN&O#O`>k<(u;l08~^`%b0|G6g~mHQCDSS`jTkS}eJ>KQ&NV=jsRPY5Rfl%3nF*kC zH}6~yvU98m{v-F-p;mtql|Xo`fQJ9JXr`KU4QVhEsZS9sKC!9mQiU4vrSkGY7jpY~ zwT1X>=^Q2w7U`N|1a1G0PyJKZ`6{oaB`3p68VJfxxk0B%Nd&5)#Wk5?0&t(7TETWXiJ?v{GDQB6 z6gwm8?W}wj1!QmU&b&UMg!*ML%#C6_hN{=ti{0wLSsa>JefgQz`r&c${p571Gl{cR zy*->*0G?ls^fUMMo=jy2?NAT)*G*xG+qI%%QmqI3mS}X@#7CVa5E3o1)4>--mq3od zoK4)FDmYZ)>0h0<_8{~A%I(6l6%wY zlPaS@t~Xxeg9Ghs$>A8eP>RzGUWC8(%d)^|rDiLwh=(b*bSOk2^Zmig!rCkt^?Y?j z5L44E^uawN`rl#vrcNTY3KpwAWby<7$Q*@$pDHpYmPNdL?EeE5oz+^nZ>i-?elYpy#7^BKO|oBbrsy`c+! zT^CWhwi5sq4rD;UDM)(q-OerX^6i+4nP6oDGB}XP@dPSzu^aNHGI750*_$yTihsO@ z->iKa*}7p%g;WnA+OM1t?wBUR&!5N&8u53`Yp6H-IE`2PrpabE@7<3(Egdkt6u10- zpMMhjNfcfOYId{NQd!EP7H%;=m6*n)NMCK9goqIS5T{nPS0-aYZgS+u=mp?j&hs*q zL})`_=iEdi*MkY}eE4*+=IYw(e`zQgMKwW`@XFqa16Ms)2CzTIH+cen#HJmuJDw(H zHB}IIY0t^LOe5c0I|=&sM%2dG7qjWY@AbpPVv{j{>xaxPqUT%E?JzSd@6FW<+wZtE z!sJ~kB(~qv98OEQruo?N&;u*ne+O_V-!F2bn+P{;PM4^A3h`Z^X=zz^FHY24l~3G+ zY2x;sKf8)3Vjh3=WQ*O+J=R~x&7R@~c4N$A`L!7Tyzo{2{80DSNQN1g@lMElue>7j zbF2VUlrCo!|8Le4iH1h$hid$%o<+`m6U?V&HfkAbIl^nzO$CP}<@R2seA3gxQxmH= zox~MOhw;{dWoaO`M~*kmDtwRjsYR{ciQkFCb5xKclYcP?j!loXs-6o1i`h?EH)ObO ztP~V*q#!OCje6DN!H{kwevYEFdAf z?d)5Xy#169i#IAH;|ZkY2X4{?pFpTSkfJ}5d^IHlMa-wla7Bb5!Q&?r`WuOo@3s1@ zFADXkIEp69lmq->6|LV}LtOX+(S)IZE-tJL%DlhTnz?x(|Mb z2o*dK7@+tXJToZnDw&VP2~E zt6$KR9#aWE;-AT1x-@oZ<)v#LT9z%-PlsyQb~RE3AWR+by@w*aA + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/dialog_offline_map.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/dialog_offline_map.xml new file mode 100644 index 0000000000..6ae72b0a13 --- /dev/null +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/dialog_offline_map.xml @@ -0,0 +1,135 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_system_version.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_system_version.xml index ce0064ad18..3972c865ff 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_system_version.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_system_version.xml @@ -82,7 +82,6 @@ android:visibility="gone" /> - + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/values/color.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/values/color.xml index 574b9fc2f3..ff8c61e6bf 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/values/color.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/values/color.xml @@ -71,7 +71,5 @@ #FF282F62 #FFFFFF - - - + #E63B4577 \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/values/strings.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/values/strings.xml index f12f7f9bc0..9af0f3ad70 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/values/strings.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/values/strings.xml @@ -65,4 +65,11 @@ 车辆将开启自动驾驶,并行驶至: 确认 取消 + 离线地图缓存提醒 + 是否缓存最新版本离线地图? + 离线地图下载中 + 离线地图下载成功 + 离线地图下载失败 + 确定 + 重试 diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/hmi/warning/IMoGoWaringProvider.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/hmi/warning/IMoGoWaringProvider.kt new file mode 100644 index 0000000000..42b0cadcfc --- /dev/null +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/hmi/warning/IMoGoWaringProvider.kt @@ -0,0 +1,20 @@ +package com.mogo.eagle.core.function.api.hmi.warning + +import android.view.View +import android.view.ViewGroup +import com.mogo.eagle.core.data.bindingcar.IPCUpgradeStateInfo +import com.mogo.eagle.core.data.enums.WarningDirectionEnum +import com.mogo.eagle.core.data.map.Infrastructure +import com.mogo.eagle.core.data.notice.NoticeNormalData +import com.mogo.eagle.core.data.notice.NoticeTrafficStylePushData +import com.mogo.eagle.core.data.report.ReportEntity +import com.mogo.eagle.core.function.api.hmi.IMoGoHmiViewProxy +import com.mogo.eagle.core.function.api.hmi.view.IOchBusView + +/** + * @author xiaoyuzhou + * @date 2021/8/2 7:36 下午 + */ +interface IMoGoWaringProvider : IMoGoHmiViewProxy { + fun updateHDDataCacheStatus(isCached: Boolean) +} \ No newline at end of file diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/hmi/CallerHmiManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/hmi/CallerHmiManager.kt index 8339a0c006..b6aca6f544 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/hmi/CallerHmiManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/hmi/CallerHmiManager.kt @@ -212,4 +212,7 @@ object CallerHmiManager { hmiProviderApi?.updateStatusBarDownloadView(insert, tag, progress) } + fun updateHDDataCacheStatus(isCached: Boolean) { + waringProviderApi?.updateHDDataCacheStatus(isCached) + } } \ No newline at end of file diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerMapUIServiceManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerMapUIServiceManager.kt index cb8288ae15..0562c116ee 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerMapUIServiceManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerMapUIServiceManager.kt @@ -5,7 +5,9 @@ import com.mogo.eagle.core.data.constants.MogoServicePaths import com.mogo.eagle.core.function.api.map.IMogoMapService import com.mogo.eagle.core.function.api.map.marker.IMogoMarkerService import com.mogo.eagle.core.function.call.base.CallerBase -import com.mogo.map.location.IMogoGDLocationClient +import com.mogo.map.hdcache.IHdCacheListener +import com.mogo.map.listener.IMogoHosListenerRegister +import com.mogo.map.location.IMogoLocationClient import com.mogo.map.marker.IMogoMarkerManager import com.mogo.map.overlay.IMogoOverlayManager import com.mogo.map.uicontroller.IMogoMapUIController @@ -30,6 +32,14 @@ object CallerMapUIServiceManager { return serviceProvider?.markerService } + fun cacheHDDataByCity(listener: IHdCacheListener) { + serviceProvider?.mapUIController?.cacheHDDataByCity(listener) + } + + fun isCityDataCached(): Boolean { + return serviceProvider?.mapUIController?.isCityDataCached ?: true + } + fun getOverlayManager(): IMogoOverlayManager?{ return serviceProvider?.overlayManager } diff --git a/gradle.properties b/gradle.properties index dd72d41281..9578aa5a52 100644 --- a/gradle.properties +++ b/gradle.properties @@ -85,7 +85,7 @@ MOGO_LOCATION_VERSION=1.4.4.2 MOGO_TELEMATIC_VERSION=1.4.4.2 ######## MogoAiCloudSDK Version ######## # 自研地图 -MAP_SDK_VERSION=2.10.0.2_test_01 +MAP_SDK_VERSION=2.10.0.2 MAP_SDK_OPERATION_VERSION=1.1.4.1 # websocket WEBSOCKET_VERSION=1.1.7 diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/hdcache/IHdCacheListener.kt b/libraries/mogo-map-api/src/main/java/com/mogo/map/hdcache/IHdCacheListener.kt new file mode 100644 index 0000000000..4761e40fff --- /dev/null +++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/hdcache/IHdCacheListener.kt @@ -0,0 +1,5 @@ +package com.mogo.map.hdcache + +interface IHdCacheListener { + fun onMapHdCacheProgress(cityId: Int, progress: Double) +} \ No newline at end of file diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/uicontroller/IMogoMapUIController.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/uicontroller/IMogoMapUIController.java index 362b48f839..8235fe8a36 100644 --- a/libraries/mogo-map-api/src/main/java/com/mogo/map/uicontroller/IMogoMapUIController.java +++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/uicontroller/IMogoMapUIController.java @@ -9,6 +9,9 @@ import androidx.annotation.RawRes; import com.mogo.eagle.core.data.map.CenterLine; import com.mogo.eagle.core.data.map.MogoLatLng; +import com.mogo.map.hdcache.IHdCacheListener; + +import org.json.JSONObject; import com.mogo.eagle.core.data.map.MogoLocation; import java.util.List; @@ -348,4 +351,11 @@ public interface IMogoMapUIController { * @param color // color:"#RRGGBB* */ void setPointCloudColor(String color); + void cacheHDDataByCity(IHdCacheListener listener); + + /** + * 当前城市离线数据是否已缓存 + * @return + */ + boolean isCityDataCached(); } 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 e264f883ad..e46408c5f2 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 @@ -23,6 +23,7 @@ import android.util.Log; import android.view.MotionEvent; import android.view.View; +import androidx.annotation.MainThread; import androidx.annotation.NonNull; import com.mogo.commons.debug.DebugConfig; @@ -40,13 +41,17 @@ import com.mogo.eagle.core.function.call.map.CallerMapStyleListenerManager; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.eagle.core.utilcode.mogo.toast.TipToast; import com.mogo.eagle.core.utilcode.util.UiThreadHandler; +import com.mogo.map.hdcache.IHdCacheListener; import com.mogo.map.listener.MogoMapListenerHandler; +import com.mogo.map.location.GDLocationClient; +import com.mogo.map.navi.MogoCarLocationChangedListenerRegister; import com.mogo.map.uicontroller.CarCursorOption; import com.mogo.map.uicontroller.EnumMapUI; import com.mogo.map.uicontroller.IMogoMapUIController; import com.mogo.map.uicontroller.MapCameraPosition; import com.mogo.map.uicontroller.MapControlResult; import com.mogo.map.uicontroller.VisualAngleMode; +import com.mogo.map.utils.HDMapUtils; import com.mogo.map.utils.MogoMapUtils; import com.mogo.map.utils.ObjectUtils; import com.mogo.map.utils.ResIdCache; @@ -64,6 +69,7 @@ import com.zhidaoauto.map.sdk.open.business.PointCloudHelper; import com.zhidaoauto.map.sdk.open.camera.CameraPosition; import com.zhidaoauto.map.sdk.open.camera.CameraUpdateFactory; import com.zhidaoauto.map.sdk.open.camera.LatLngBounds; +import com.zhidaoauto.map.sdk.open.data.CityInfo; import com.zhidaoauto.map.sdk.open.data.MapDataApi; import com.zhidaoauto.map.sdk.open.location.LocationClient; import com.zhidaoauto.map.sdk.open.location.MyLocationStyle; @@ -115,6 +121,8 @@ public class AMapViewWrapper implements IMogoMapView, private boolean mIsFirstLocated = true; private boolean mIsDelayed = false; + private IHdCacheListener hdCacheListener; + public AMapViewWrapper(MapAutoView mMapView) { CallerLogger.INSTANCE.i(M_MAP + TAG, "autoop--AMapViewWrapper: init"); this.mMapView = mMapView; @@ -1035,4 +1043,47 @@ public class AMapViewWrapper implements IMogoMapView, } + + @Override + public void cacheHDDataByCity(IHdCacheListener listener) { + if (mMapView.getMapAutoViewHelper() != null) { + String gdCityCode = GDLocationClient.getInstance(getContext()).getLastCityCode(); + Integer id = HDMapUtils.getHDCityCode(gdCityCode); + if (id != null) { + hdCacheListener = listener; + mMapView.getMapAutoViewHelper().cacheHDDataByCity(id, (cityId, progress) -> { + if (Thread.currentThread() == Looper.getMainLooper().getThread()) { + if (hdCacheListener != null) { + hdCacheListener.onMapHdCacheProgress(cityId, progress * 100); + } + } else { + UiThreadHandler.post(() -> { + if (hdCacheListener != null) { + hdCacheListener.onMapHdCacheProgress(cityId, progress * 100); + } + }); + } + }); + } + } + } + + @Override + public boolean isCityDataCached() { + if (mMapView.getMapAutoViewHelper() != null) { + String gdCityCode = GDLocationClient.getInstance(getContext()).getLastCityCode(); + Integer id = HDMapUtils.getHDCityCode(gdCityCode); + if (id != null) { + List cityInfoList = mMapView.getMapAutoViewHelper().getAllCityCode(); + if (cityInfoList != null) { + for (CityInfo cityInfo : cityInfoList) { + if (id == cityInfo.getCityCode()) { + return cityInfo.isCache; + } + } + } + } + } + return true; + } } diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapUIController.java b/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapUIController.java index f525de00c5..fbbb4ab578 100644 --- a/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapUIController.java +++ b/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapUIController.java @@ -2,12 +2,14 @@ package com.mogo.map; import android.graphics.Point; import android.graphics.Rect; +import android.location.Location; import android.view.View; import com.mogo.eagle.core.data.map.CenterLine; import com.mogo.eagle.core.data.map.MogoLatLng; import com.mogo.eagle.core.data.map.MogoLocation; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; +import com.mogo.map.hdcache.IHdCacheListener; import com.mogo.map.uicontroller.AMapUIController; import com.mogo.map.uicontroller.CarCursorOption; import com.mogo.map.uicontroller.IMogoMapUIController; @@ -449,4 +451,19 @@ public class MogoMapUIController implements IMogoMapUIController { mDelegate.setPointCloudColor(color); } } + + @Override + public void cacheHDDataByCity(IHdCacheListener listener) { + if (mDelegate != null) { + mDelegate.cacheHDDataByCity(listener); + } + } + + @Override + public boolean isCityDataCached() { + if (mDelegate != null) { + return mDelegate.isCityDataCached(); + } + return true; + } } diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/uicontroller/AMapUIController.java b/libraries/mogo-map/src/main/java/com/mogo/map/uicontroller/AMapUIController.java index 9da7c35e7a..f48f36cc66 100644 --- a/libraries/mogo-map/src/main/java/com/mogo/map/uicontroller/AMapUIController.java +++ b/libraries/mogo-map/src/main/java/com/mogo/map/uicontroller/AMapUIController.java @@ -6,6 +6,7 @@ import android.view.View; import com.mogo.eagle.core.data.map.CenterLine; import com.mogo.eagle.core.data.map.MogoLatLng; +import com.mogo.map.hdcache.IHdCacheListener; import com.mogo.eagle.core.data.map.MogoLocation; import com.zhidaoauto.map.sdk.open.MapAutoApi; @@ -389,4 +390,19 @@ public class AMapUIController implements IMogoMapUIController { mClient.setPointCloudColor(color); } } + + @Override + public void cacheHDDataByCity(IHdCacheListener listener) { + if (mClient != null) { + mClient.cacheHDDataByCity(listener); + } + } + + @Override + public boolean isCityDataCached() { + if (mClient != null) { + return mClient.isCityDataCached(); + } + return true; + } } diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/utils/HDMapUtils.kt b/libraries/mogo-map/src/main/java/com/mogo/map/utils/HDMapUtils.kt new file mode 100644 index 0000000000..b15a5c2704 --- /dev/null +++ b/libraries/mogo-map/src/main/java/com/mogo/map/utils/HDMapUtils.kt @@ -0,0 +1,27 @@ +package com.mogo.map.utils + +object HDMapUtils { + private val cityCodeMap by lazy(LazyThreadSafetyMode.SYNCHRONIZED) { + val map = HashMap() + map["0831"] = 5115// 宜宾市 + map["0512"] = 3205// 苏州市 + map["0872"] = 5329// 大理市 + map["0711"] = 4207// 鄂州市 + map["028"] = 5101// 成都市 + map["0931"] = 6201// 兰州市 + map["0535"] = 3706// 烟台市 + map["027"] = 4201// 武汉市 + map["010"] = 1101// 北京市 + map["0734"] = 4304// 衡阳市 + map + } + + /** + * gdCityCode: 高德CityCode + * return: 高精地图CityCode + */ + @JvmStatic + fun getHDCityCode(gdCityCode: String?): Int? { + return cityCodeMap[gdCityCode] + } +} \ No newline at end of file From d37737d95631131158738eeeb9df60c1562ab691 Mon Sep 17 00:00:00 2001 From: chenfufeng Date: Mon, 13 Feb 2023 18:32:46 +0800 Subject: [PATCH 06/49] =?UTF-8?q?[2.14.0][Opt]=E5=9C=B0=E5=9B=BE=E7=BC=93?= =?UTF-8?q?=E5=AD=98=E5=8A=9F=E8=83=BD=E4=BA=A4=E4=BA=92=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/function/hmi/ui/widget/SystemVersionView.kt | 11 ++++++++--- .../src/main/res/values/strings.xml | 1 + .../src/main/java/com/mogo/map/utils/HDMapUtils.kt | 1 + 3 files changed, 10 insertions(+), 3 deletions(-) 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 6875daab9d..65f2050257 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 @@ -55,6 +55,8 @@ class SystemVersionView @JvmOverloads constructor( private var previousProgress: Int = -1 //前一秒的下载进度,用于计算下载剩余时间 private var currentProgress: Int = -1 //当前已下载包体大小 + private var isHDCached = false + init { LayoutInflater.from(context).inflate(R.layout.view_system_version, this, true) initView() @@ -141,7 +143,11 @@ class SystemVersionView @JvmOverloads constructor( } ivHDCache.setOnClickListener { - OfflineMapDialog(context).show() + if (isHDCached) {// 已缓存 + ToastUtils.showShort(resources.getString(R.string.offline_had_downloaded)) + } else {// 未缓存 + OfflineMapDialog(context).show() + } } updateHDDataCacheStatus(CallerMapUIServiceManager.isCityDataCached()) @@ -253,11 +259,10 @@ class SystemVersionView @JvmOverloads constructor( fun updateHDDataCacheStatus(isCached: Boolean) { if (isCached) { ivHDCacheStatus?.setImageResource(R.drawable.icon_latest_version) - ivHDCache.isEnabled = false } else { ivHDCacheStatus?.setImageResource(R.drawable.icon_be_updated) - ivHDCache.isEnabled = true } + isHDCached = isCached } /** diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/values/strings.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/values/strings.xml index 9af0f3ad70..a792f63bf1 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/values/strings.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/values/strings.xml @@ -70,6 +70,7 @@ 离线地图下载中 离线地图下载成功 离线地图下载失败 + 当前已为最新版本 确定 重试 diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/utils/HDMapUtils.kt b/libraries/mogo-map/src/main/java/com/mogo/map/utils/HDMapUtils.kt index b15a5c2704..72e8eadaa5 100644 --- a/libraries/mogo-map/src/main/java/com/mogo/map/utils/HDMapUtils.kt +++ b/libraries/mogo-map/src/main/java/com/mogo/map/utils/HDMapUtils.kt @@ -3,6 +3,7 @@ package com.mogo.map.utils object HDMapUtils { private val cityCodeMap by lazy(LazyThreadSafetyMode.SYNCHRONIZED) { val map = HashMap() + // TODO:("高精地图自己去做") map["0831"] = 5115// 宜宾市 map["0512"] = 3205// 苏州市 map["0872"] = 5329// 大理市 From 6cd9b5d76c1a9cd89c0b436470d28ff8ac7aeed7 Mon Sep 17 00:00:00 2001 From: chenfufeng Date: Wed, 15 Feb 2023 17:14:36 +0800 Subject: [PATCH 07/49] =?UTF-8?q?[2.14.0][Opt]=E5=AF=B9=E6=B6=88=E6=81=AF?= =?UTF-8?q?=E7=9B=92=E5=AD=90=E4=B8=ADV2X=E5=92=8C=E8=BF=90=E8=90=A5?= =?UTF-8?q?=E6=B6=88=E6=81=AF=E7=9A=84=E5=8F=82=E6=95=B0=E8=BF=9B=E8=A1=8C?= =?UTF-8?q?=E6=A3=80=E6=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/mogo/eagle/core/data/msgbox/OperationMsg.kt | 10 +++++++++- .../java/com/mogo/eagle/core/data/msgbox/V2XMsg.kt | 5 +++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/msgbox/OperationMsg.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/msgbox/OperationMsg.kt index 230e98dca5..75e7be26bd 100644 --- a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/msgbox/OperationMsg.kt +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/msgbox/OperationMsg.kt @@ -1,8 +1,16 @@ package com.mogo.eagle.core.data.msgbox +import android.util.Log +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import java.io.Serializable /** * 运营消息:-1表示初始值 */ -data class OperationMsg(val timestamp : Long, val content: String, val type: Int = -1): Serializable +data class OperationMsg(val timestamp : Long, val content: String, val type: Int = -1): Serializable { + init { + if (content.isEmpty()) { + CallerLogger.e("MsgBox", Log.getStackTraceString(Throwable())) + } + } +} diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/msgbox/V2XMsg.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/msgbox/V2XMsg.kt index 374c545563..b4f98777f5 100644 --- a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/msgbox/V2XMsg.kt +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/msgbox/V2XMsg.kt @@ -1,5 +1,7 @@ package com.mogo.eagle.core.data.msgbox +import android.util.Log +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import java.io.Serializable data class V2XMsg(var type: String = "", var content: String? = "", var tts: String? = ""): Serializable { @@ -9,5 +11,8 @@ data class V2XMsg(var type: String = "", var content: String? = "", var tts: Str init { timeStamp = System.currentTimeMillis() + if (content.isNullOrEmpty()) { + CallerLogger.e("MsgBox", Log.getStackTraceString(Throwable())) + } } } \ No newline at end of file From df3e018c30d7d9b3db6d18d29002379ed0023bd8 Mon Sep 17 00:00:00 2001 From: zhongchao Date: Fri, 17 Feb 2023 20:25:19 +0800 Subject: [PATCH 08/49] [2.13.0-arch-opt]v2x code style --- .../ui/BusPassengerTrafficLightView.kt | 2 +- .../view/SweeperLimitingVelocityView.kt | 15 +- .../sweeper/view/SweeperTrafficDataView.java | 8 +- .../sweeper/view/SweeperTrafficLightView.kt | 2 +- .../passenger/model/TaxiPassengerModel.java | 4 +- .../ui/TaxiPassengerTrafficLightView.kt | 2 +- .../com/mogo/functions/test/RoadAITest.kt | 7 +- .../biz/v2x/overview/OverViewDataManager.kt | 2 +- .../v2x/overview/remote/OverViewServiceApi.kt | 1 + .../biz/v2x/overview/remote/V2XEventResult.kt | 20 -- .../redlightwarning/RedLightWarningManager.kt | 2 +- .../function/biz/v2x/vip/VipCarManager.kt | 2 +- .../aicloud/AiCloudSocketBizProvider.kt | 28 ++ .../datacenter/aicloud/V2XMessageListener.kt | 96 +++++++ .../MoGoAdasMsgConnectStatusListenerImpl.kt | 8 +- .../server/AsyncDataToAutopilotServer.kt | 2 +- .../datacenter/v2x/SpeedLimitDispatcher.kt | 2 +- .../datacenter/v2x/TrafficLightDispatcher.kt | 2 +- .../core/function/msgbox/MsgBoxProvider.kt | 2 +- .../binding/BindingCarNetWorkManager.kt | 3 + .../trace/TraceManager.kt | 2 +- .../tts/TtsManager.kt | 2 +- .../hmi/ui/msgbox/DriverMsgBoxBubbleView.kt | 2 +- .../hmi/ui/msgbox/DriverMsgBoxButtonView.kt | 2 +- .../hmi/ui/msgbox/DriverMsgBoxListView.kt | 4 +- .../function/hmi/ui/msgbox/MBoxBubbleView.kt | 2 +- .../ui/msgbox/PassengerMsgBoxBubbleView.kt | 5 +- .../ui/msgbox/PassengerMsgBoxButtonView.kt | 2 +- .../hmi/ui/msgbox/PassengerMsgBoxListView.kt | 6 +- .../function/hmi/ui/vehicle/PncActionsView.kt | 25 +- .../hmi/ui/widget/LimitingVelocityView.kt | 4 +- .../hmi/ui/widget/SingleTrafficLightView.kt | 2 +- .../function/hmi/ui/widget/SpeedPanelView.kt | 3 +- .../eagle/core/function/view/OverMapView.kt | 14 +- .../function/startup/MogoStartUpProvider.kt | 11 +- .../startup/stagetwo/AiCloudBizStartUp.kt | 28 ++ .../mogo-core-function-v2x/build.gradle | 16 -- .../function/v2x/events/V2XEventManager.kt | 142 ++-------- .../core/function/v2x/events/V2XPoiLoader.kt | 184 +++++++++++++ .../events/manager/IMoGoV2XMarkerManager.java | 2 +- .../manager/impl/MoGoV2XMarkerManager.java | 5 +- .../warning/V2XFrontWarningScenario.java | 2 +- .../scene/warning/V2XWarningMarker.java | 4 +- .../function/v2x/events/utils/EntityUtils.kt | 3 +- .../core/function/v2x/internal/V2XManager.kt | 257 ------------------ .../v2x/internal/callback/IV2XCallback.kt | 2 +- .../function/v2x/internal/config/V2XConfig.kt | 174 ------------ .../function/v2x/internal/event/V2XEvent.kt | 75 ----- .../v2x/internal/executor/Executors.kt | 35 --- .../v2x/internal/http/V2XRefreshModel.kt | 63 ++++- .../v2x/internal/http/api/V2XApiService.kt | 12 +- .../internal/http/body/V2XRefreshEntity.kt | 2 +- .../function/v2x/internal/logger/V2XLogger.kt | 24 -- .../socket/V2XMessageListener_401012.kt | 27 -- .../socket/V2XMessageListener_401018.kt | 27 -- .../socket/V2XMessageListener_402000.kt | 27 -- .../socket/V2XMessageListener_404000.kt | 27 -- .../socket/V2XMessageListener_503000.kt | 27 -- .../socket/V2XMessageListener_70001.kt | 27 -- .../function/v2x/road/V2XEventServiceApi.kt | 11 - core/mogo-core-data/build.gradle | 17 ++ .../core/data/constants/MogoServicePaths.java | 7 +- .../eagle/core/data/v2x}/V2XAdvanceWarning.kt | 2 +- .../mogo/eagle/core/data/v2x}/V2XBaseData.kt | 2 +- .../com/mogo/eagle/core/data/v2x/V2XEvent.kt | 105 +++---- .../eagle/core/data/v2x}/V2XEventResult.kt | 10 +- .../mogo/eagle/core/data/v2x}/V2XLocation.kt | 2 +- .../core/data/v2x}/V2XMarkerCardResult.kt | 2 +- .../eagle/core/data/v2x}/V2XMarkerResponse.kt | 3 +- .../eagle/core/data/v2x}/V2XOptimalRoute.kt | 3 +- .../eagle/core/data/v2x}/V2XRoadXEvent.kt | 2 +- .../eagle/core/data/v2x}/V2XWarningTarget.kt | 3 +- .../src/main/proto/road.proto | 0 .../api/{v2x => biz}/IFuncBizProvider.kt | 6 +- .../function/api/cloud/IMoGoCloudListener.kt | 23 +- .../msgbox/IMsgBoxEventListener.kt | 2 +- .../msgbox/IMsgBoxListener.kt | 2 +- .../msgbox/IMsgBoxProvider.kt | 2 +- .../union}/ILimitingVelocityListener.kt | 2 +- .../union}/IMoGoTrafficLightListener.kt | 2 +- ...llerChassisLocationGCJ02ListenerManager.kt | 4 +- .../call/biz/CallerFuncBizListenerManager.kt | 8 +- .../call/cloud/CallerCloudListenerManager.kt | 59 +--- .../function/call/map/CallerSmpManager.kt | 3 - .../CallerMsgBoxEventListenerManager.kt | 4 +- .../msgbox/CallerMsgBoxListenerManager.kt | 2 +- .../call/msgbox/CallerMsgBoxManager.kt | 2 +- .../CallerLimitingVelocityListenerManager.kt | 2 +- .../v2x/CallerTrafficLightListenerManager.kt | 2 +- 89 files changed, 651 insertions(+), 1131 deletions(-) delete mode 100644 core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/overview/remote/V2XEventResult.kt create mode 100644 core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/aicloud/AiCloudSocketBizProvider.kt create mode 100644 core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/aicloud/V2XMessageListener.kt create mode 100644 core/function-impl/mogo-core-function-startup/src/main/java/com/mogo/eagle/core/function/startup/stagetwo/AiCloudBizStartUp.kt create mode 100644 core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/V2XPoiLoader.kt delete mode 100755 core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/V2XManager.kt delete mode 100755 core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/config/V2XConfig.kt delete mode 100644 core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/event/V2XEvent.kt delete mode 100755 core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/executor/Executors.kt delete mode 100644 core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/logger/V2XLogger.kt delete mode 100644 core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/socket/V2XMessageListener_401012.kt delete mode 100644 core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/socket/V2XMessageListener_401018.kt delete mode 100644 core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/socket/V2XMessageListener_402000.kt delete mode 100644 core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/socket/V2XMessageListener_404000.kt delete mode 100644 core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/socket/V2XMessageListener_503000.kt delete mode 100644 core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/socket/V2XMessageListener_70001.kt delete mode 100644 core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/road/V2XEventServiceApi.kt rename core/{function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/data => mogo-core-data/src/main/java/com/mogo/eagle/core/data/v2x}/V2XAdvanceWarning.kt (97%) rename core/{function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/data => mogo-core-data/src/main/java/com/mogo/eagle/core/data/v2x}/V2XBaseData.kt (64%) rename core/{function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/road => mogo-core-data/src/main/java/com/mogo/eagle/core/data/v2x}/V2XEventResult.kt (87%) rename core/{function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/data => mogo-core-data/src/main/java/com/mogo/eagle/core/data/v2x}/V2XLocation.kt (87%) rename core/{function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/data => mogo-core-data/src/main/java/com/mogo/eagle/core/data/v2x}/V2XMarkerCardResult.kt (99%) rename core/{function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/data => mogo-core-data/src/main/java/com/mogo/eagle/core/data/v2x}/V2XMarkerResponse.kt (80%) rename core/{function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/data => mogo-core-data/src/main/java/com/mogo/eagle/core/data/v2x}/V2XOptimalRoute.kt (89%) rename core/{function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/data => mogo-core-data/src/main/java/com/mogo/eagle/core/data/v2x}/V2XRoadXEvent.kt (95%) rename core/{function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/data => mogo-core-data/src/main/java/com/mogo/eagle/core/data/v2x}/V2XWarningTarget.kt (96%) rename core/{function-impl/mogo-core-function-v2x => mogo-core-data}/src/main/proto/road.proto (100%) rename core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/{v2x => biz}/IFuncBizProvider.kt (65%) rename core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/{ => datacenter}/msgbox/IMsgBoxEventListener.kt (91%) rename core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/{ => datacenter}/msgbox/IMsgBoxListener.kt (82%) rename core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/{ => datacenter}/msgbox/IMsgBoxProvider.kt (93%) rename core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/{v2x => datacenter/union}/ILimitingVelocityListener.kt (82%) rename core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/{v2x => datacenter/union}/IMoGoTrafficLightListener.kt (96%) diff --git a/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/ui/BusPassengerTrafficLightView.kt b/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/ui/BusPassengerTrafficLightView.kt index e3d6f0d397..a0516d2b98 100644 --- a/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/ui/BusPassengerTrafficLightView.kt +++ b/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/ui/BusPassengerTrafficLightView.kt @@ -6,7 +6,7 @@ import android.view.LayoutInflater import android.widget.LinearLayout import com.mogo.eagle.core.data.enums.DataSourceType import com.mogo.eagle.core.data.enums.TrafficLightEnum -import com.mogo.eagle.core.function.api.v2x.IMoGoTrafficLightListener +import com.mogo.eagle.core.function.api.datacenter.union.IMoGoTrafficLightListener import com.mogo.eagle.core.function.call.v2x.CallerTrafficLightListenerManager import com.mogo.eagle.core.utilcode.util.UiThreadHandler import com.mogo.och.bus.passenger.R diff --git a/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/view/SweeperLimitingVelocityView.kt b/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/view/SweeperLimitingVelocityView.kt index afb9ba0c65..17e414c40d 100644 --- a/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/view/SweeperLimitingVelocityView.kt +++ b/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/view/SweeperLimitingVelocityView.kt @@ -8,9 +8,10 @@ import android.widget.LinearLayout import com.mogo.eagle.core.data.enums.DataSourceType import com.mogo.eagle.core.function.api.hmi.view.IViewControlListener import com.mogo.eagle.core.function.api.hmi.view.IViewControlListener.Companion.LimitingVelocityView_TAG -import com.mogo.eagle.core.function.api.v2x.ILimitingVelocityListener +import com.mogo.eagle.core.function.api.datacenter.union.ILimitingVelocityListener import com.mogo.eagle.core.function.call.hmi.CallerHmiViewControlListenerManager import com.mogo.eagle.core.function.call.v2x.CallerLimitingVelocityListenerManager +import com.mogo.eagle.core.utilcode.util.ThreadUtils import com.mogo.och.sweeper.R import kotlinx.android.synthetic.main.sweeper_limiting_speed.view.* @@ -34,11 +35,13 @@ class SweeperLimitingVelocityView( } override fun onLimitingVelocityChange(limitingVelocity: Int, sourceType: DataSourceType) { - if (limitingVelocity > 0) { - this.visibility = View.VISIBLE - tvLimitingVelocity.text = "$limitingVelocity" - } else { - this.visibility = View.GONE + ThreadUtils.runOnUiThread { + if (limitingVelocity > 0) { + this.visibility = View.VISIBLE + tvLimitingVelocity.text = "$limitingVelocity" + } else { + this.visibility = View.GONE + } } } diff --git a/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/view/SweeperTrafficDataView.java b/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/view/SweeperTrafficDataView.java index 32db9adef0..0fb7be8343 100644 --- a/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/view/SweeperTrafficDataView.java +++ b/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/view/SweeperTrafficDataView.java @@ -10,16 +10,12 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.constraintlayout.widget.ConstraintLayout; -import com.mogo.eagle.core.data.enums.DataSourceType; import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisGearStateListener; import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisLamplightListener; import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisSteeringStateListener; -import com.mogo.eagle.core.function.api.v2x.ILimitingVelocityListener; import com.mogo.eagle.core.function.call.autopilot.CallerChassisGearStateListenerManager; import com.mogo.eagle.core.function.call.autopilot.CallerChassisLamplightListenerManager; import com.mogo.eagle.core.function.call.autopilot.CallerChassisSteeringStateListenerManager; -import com.mogo.eagle.core.function.call.map.CallerVisualAngleManager; -import com.mogo.eagle.core.function.call.v2x.CallerLimitingVelocityListenerManager; import com.mogo.eagle.core.function.hmi.ui.widget.TapPositionView; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.eagle.core.utilcode.util.ThreadUtils; @@ -89,7 +85,7 @@ public class SweeperTrafficDataView extends ConstraintLayout */ @Override public void onAutopilotLightSwitchData(@org.jetbrains.annotations.Nullable Chassis.LightSwitch lightSwitch) { - ThreadUtils.runOnUiThread { + ThreadUtils.runOnUiThread(() -> { //转向灯状态 0是正常 1是左转 2是右转 if (lightSwitch != null) { CallerLogger.INSTANCE.d(TAG, "车辆转向灯:" + lightSwitch.toString()); @@ -101,7 +97,7 @@ public class SweeperTrafficDataView extends ConstraintLayout sweeperTurnSignal.showDirection(); } } - } + }); } /** diff --git a/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/view/SweeperTrafficLightView.kt b/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/view/SweeperTrafficLightView.kt index d56a099ad8..19a7a466bd 100644 --- a/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/view/SweeperTrafficLightView.kt +++ b/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/view/SweeperTrafficLightView.kt @@ -6,7 +6,7 @@ import android.view.LayoutInflater import android.widget.LinearLayout import com.mogo.eagle.core.data.enums.DataSourceType import com.mogo.eagle.core.data.enums.TrafficLightEnum -import com.mogo.eagle.core.function.api.v2x.IMoGoTrafficLightListener +import com.mogo.eagle.core.function.api.datacenter.union.IMoGoTrafficLightListener import com.mogo.eagle.core.function.call.v2x.CallerTrafficLightListenerManager import com.mogo.eagle.core.utilcode.util.UiThreadHandler import com.mogo.och.sweeper.R diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerModel.java b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerModel.java index 9a7964d873..8f52315f09 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerModel.java +++ b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerModel.java @@ -30,8 +30,8 @@ import com.mogo.eagle.core.data.msgbox.MsgBoxBean; import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener; import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisLocationGCJ02Listener; import com.mogo.eagle.core.function.api.autopilot.IMoGoPlanningRottingListener; -import com.mogo.eagle.core.function.api.msgbox.IMsgBoxEventListener; -import com.mogo.eagle.core.function.api.v2x.ILimitingVelocityListener; +import com.mogo.eagle.core.function.api.datacenter.msgbox.IMsgBoxEventListener; +import com.mogo.eagle.core.function.api.datacenter.union.ILimitingVelocityListener; import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager; import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager; import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02ListenerManager; diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerTrafficLightView.kt b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerTrafficLightView.kt index 6a0c99c711..464e7a67a2 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerTrafficLightView.kt +++ b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerTrafficLightView.kt @@ -6,7 +6,7 @@ import android.view.LayoutInflater import android.widget.LinearLayout import com.mogo.eagle.core.data.enums.DataSourceType import com.mogo.eagle.core.data.enums.TrafficLightEnum -import com.mogo.eagle.core.function.api.v2x.IMoGoTrafficLightListener +import com.mogo.eagle.core.function.api.datacenter.union.IMoGoTrafficLightListener import com.mogo.eagle.core.function.call.v2x.CallerTrafficLightListenerManager import com.mogo.eagle.core.utilcode.util.UiThreadHandler import com.mogo.och.taxi.passenger.R diff --git a/app/src/androidTest/java/com/mogo/functions/test/RoadAITest.kt b/app/src/androidTest/java/com/mogo/functions/test/RoadAITest.kt index 72b47ade32..43ec279322 100644 --- a/app/src/androidTest/java/com/mogo/functions/test/RoadAITest.kt +++ b/app/src/androidTest/java/com/mogo/functions/test/RoadAITest.kt @@ -4,12 +4,11 @@ import android.os.* import androidx.test.core.app.* import androidx.test.ext.junit.runners.* import androidx.test.filters.* +import com.mogo.eagle.core.data.v2x.V2XEvent import com.mogo.eagle.core.function.hmi.ui.* import com.mogo.eagle.core.function.main.* import com.mogo.eagle.core.function.v2x.events.* -import com.mogo.eagle.core.function.v2x.internal.data.V2XRoadXData -import com.mogo.eagle.core.function.v2x.internal.event.V2XEvent -import com.mogo.eagle.core.function.v2x.internal.event.V2XEvent.RoadAI +import com.mogo.eagle.core.data.v2x.V2XRoadXData import com.mogo.eagle.core.utilcode.util.GsonUtils import kotlinx.coroutines.* import org.junit.* @@ -128,7 +127,7 @@ class RoadAITest { .build()) .build()) .build() - val event = RoadAI(data = child) + val event = V2XEvent.RoadAI(data = child) while (true) { delay(1000) V2XEventManager.onAck(event) diff --git a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/overview/OverViewDataManager.kt b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/overview/OverViewDataManager.kt index eef88f1602..e022c3d245 100644 --- a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/overview/OverViewDataManager.kt +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/overview/OverViewDataManager.kt @@ -22,7 +22,7 @@ import java.util.concurrent.TimeUnit object OverViewDataManager { - const val TAG = "OverViewDataManager" + private const val TAG = "OverViewDataManager" private val overviewDao by lazy { OverviewDb.getDb(AbsMogoApplication.getApp()).overviewDao() diff --git a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/overview/remote/OverViewServiceApi.kt b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/overview/remote/OverViewServiceApi.kt index 365f5f0d29..ffdf2be1c6 100644 --- a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/overview/remote/OverViewServiceApi.kt +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/overview/remote/OverViewServiceApi.kt @@ -1,5 +1,6 @@ package com.mogo.eagle.function.biz.v2x.overview.remote +import com.mogo.eagle.core.data.v2x.V2XEventResult import io.reactivex.Observable import retrofit2.http.GET import retrofit2.http.Query diff --git a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/overview/remote/V2XEventResult.kt b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/overview/remote/V2XEventResult.kt deleted file mode 100644 index 0650d29817..0000000000 --- a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/overview/remote/V2XEventResult.kt +++ /dev/null @@ -1,20 +0,0 @@ -package com.mogo.eagle.function.biz.v2x.overview.remote - -import androidx.annotation.Keep - -import com.google.gson.annotations.SerializedName -import com.mogo.eagle.core.data.BaseData -import com.mogo.eagle.core.data.v2x.V2XEvent - - -@Keep -data class V2XEventResult ( - @SerializedName("result") - var result: Result? -): BaseData() - -@Keep -data class Result( - @SerializedName("eventList") - var v2XEventList: List? -) \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/redlightwarning/RedLightWarningManager.kt b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/redlightwarning/RedLightWarningManager.kt index d84b81416c..72c3b3431d 100644 --- a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/redlightwarning/RedLightWarningManager.kt +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/redlightwarning/RedLightWarningManager.kt @@ -13,7 +13,7 @@ import com.mogo.eagle.core.data.msgbox.V2XMsg import com.mogo.eagle.core.data.trafficlight.* import com.mogo.eagle.core.data.trafficlight.TrafficLightStatusHelper.getCurrentRoadTrafficLight import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisLocationGCJ02Listener -import com.mogo.eagle.core.function.api.v2x.IMoGoTrafficLightListener +import com.mogo.eagle.core.function.api.datacenter.union.IMoGoTrafficLightListener import com.mogo.eagle.core.function.api.v2x.IMoGoVipSetListener import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02ListenerManager import com.mogo.eagle.core.function.call.hmi.CallerHmiManager diff --git a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/vip/VipCarManager.kt b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/vip/VipCarManager.kt index 915a90d83e..39a009b500 100644 --- a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/vip/VipCarManager.kt +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/vip/VipCarManager.kt @@ -19,7 +19,7 @@ import com.mogo.eagle.core.data.trafficlight.currentRoadTrafficLight import com.mogo.eagle.core.data.trafficlight.isGreen import com.mogo.eagle.core.data.trafficlight.isRed import com.mogo.eagle.core.data.v2x.VipMessage -import com.mogo.eagle.core.function.api.v2x.IMoGoTrafficLightListener +import com.mogo.eagle.core.function.api.datacenter.union.IMoGoTrafficLightListener import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationWGS84ListenerManager import com.mogo.eagle.core.function.call.hmi.CallerHmiManager import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxManager diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/aicloud/AiCloudSocketBizProvider.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/aicloud/AiCloudSocketBizProvider.kt new file mode 100644 index 0000000000..8f94b5a59d --- /dev/null +++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/aicloud/AiCloudSocketBizProvider.kt @@ -0,0 +1,28 @@ +package com.mogo.eagle.core.function.datacenter.aicloud + +import android.content.Context +import com.alibaba.android.arouter.facade.annotation.Route +import com.mogo.cloud.socket.SocketManager +import com.mogo.commons.AbsMogoApplication +import com.mogo.eagle.core.data.constants.MogoServicePaths +import com.mogo.eagle.core.function.api.base.IMoGoFunctionServerProvider + +@Route(path = MogoServicePaths.PATH_AI_CLOUD) +class AiCloudSocketBizProvider : IMoGoFunctionServerProvider { + override val functionName: String + get() = "AiCloudSocketBizProvider" + + override fun init(context: Context?) { + SocketManager.getInstance().init(AbsMogoApplication.getApp(), 0.0, 0.0) + SocketManager.getInstance().registerOnMessageListener(401012, V2XMessageListener401012()) + SocketManager.getInstance().registerOnMessageListener(401018, V2XMessageListener401018()) + SocketManager.getInstance().registerOnMessageListener(402000, V2XMessageListener402000()) + SocketManager.getInstance().registerOnMessageListener(404000, V2XMessageListener404000()) + //SocketManager.getInstance().registerOnMessageListener(503000, V2XMessageListener503000()) + SocketManager.getInstance().registerOnMessageListener(70001, V2XMessageListener70001()) + } + + override fun onDestroy() { + + } +} \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/aicloud/V2XMessageListener.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/aicloud/V2XMessageListener.kt new file mode 100644 index 0000000000..059f4ce01a --- /dev/null +++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/aicloud/V2XMessageListener.kt @@ -0,0 +1,96 @@ +package com.mogo.eagle.core.function.datacenter.aicloud + +import com.mogo.cloud.socket.IMogoCloudSocketOnMessageListener +import com.mogo.eagle.core.data.v2x.* +import com.mogo.eagle.core.function.call.cloud.CallerCloudListenerManager +import roadwork.Road + +internal class V2XMessageListener70001: IMogoCloudSocketOnMessageListener { + + override fun target(msgType: Int): Class = V2XRoadXData::class.java + + override fun onMsgReceived(msgType: Int, data: V2XRoadXData?) { + if (msgType != 70001) { + return + } + if (data == null) { + return + } + CallerCloudListenerManager.invokeSocketAck(V2XEvent.RoadEventX(data = data)) + } +} + +internal class V2XMessageListener401012: IMogoCloudSocketOnMessageListener { + + override fun target(msgType: Int): Class = V2XMarkerCardResult::class.java + + override fun onMsgReceived(msgType: Int, data: V2XMarkerCardResult?) { + if (msgType != 401012) { + return + } + if (data == null) { + return + } + CallerCloudListenerManager.invokeSocketAck(V2XEvent.Road(data = data)) + } +} + +internal class V2XMessageListener401018: IMogoCloudSocketOnMessageListener { + + override fun target(msgType: Int): Class = V2XWarningTarget::class.java + + override fun onMsgReceived(msgType: Int, data: V2XWarningTarget?) { + if (msgType != 401018) { + return + } + if (data == null) { + return + } + CallerCloudListenerManager.invokeSocketAck(V2XEvent.Warning(data = data)) + } +} + +internal class V2XMessageListener402000: IMogoCloudSocketOnMessageListener { + + override fun target(msgType: Int): Class = V2XOptimalRoute::class.java + + override fun onMsgReceived(msgType: Int, data: V2XOptimalRoute?) { + if (msgType != 402000) { + return + } + if (data == null) { + return + } + CallerCloudListenerManager.invokeSocketAck(V2XEvent.OptimalRoute(data = data)) + } +} + +internal class V2XMessageListener404000: IMogoCloudSocketOnMessageListener { + + override fun target(msgType: Int): Class = V2XAdvanceWarning::class.java + + override fun onMsgReceived(msgType: Int, data: V2XAdvanceWarning?) { + if (msgType != 404000) { + return + } + if (data == null) { + return + } + CallerCloudListenerManager.invokeSocketAck(V2XEvent.ForwardsWarning(data = data)) + } +} + +internal class V2XMessageListener503000: IMogoCloudSocketOnMessageListener { + + override fun target(msgType: Int): Class = Road.RW_PB::class.java + + override fun onMsgReceived(msgType: Int, data: Road.RW_PB?) { + if (msgType != 503000) { + return + } + if (data == null) { + return + } + CallerCloudListenerManager.invokeSocketAck(V2XEvent.RoadAI(data = data)) + } +} \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/adapter/MoGoAdasMsgConnectStatusListenerImpl.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/adapter/MoGoAdasMsgConnectStatusListenerImpl.kt index 6a19fe588d..f96c1a7bde 100644 --- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/adapter/MoGoAdasMsgConnectStatusListenerImpl.kt +++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/adapter/MoGoAdasMsgConnectStatusListenerImpl.kt @@ -1,5 +1,6 @@ package com.mogo.eagle.core.function.datacenter.autopilot.adapter +import android.content.Context import com.mogo.cloud.passport.MoGoAiCloudClientConfig import com.mogo.commons.debug.DebugConfig.* import com.mogo.eagle.core.data.config.FunctionBuildConfig @@ -27,12 +28,15 @@ class MoGoAdasMsgConnectStatusListenerImpl : OnAdasConnectStatusListener, IMoGoAutopilotStatusListener, IMoGoCloudListener { - private val TAG = "ConnectStatus" + + companion object{ + private const val TAG = "ConnectStatus" + } private var connectStatus = false init { - CallerCloudListenerManager.registerCloudListener(TAG, this) + CallerCloudListenerManager.addListener(TAG, this) } override fun onConnectionIPCStatus(ipcConnectionStatus: Int, reason: String?) { diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/server/AsyncDataToAutopilotServer.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/server/AsyncDataToAutopilotServer.kt index a5bfe75e4b..6a33aa8008 100644 --- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/server/AsyncDataToAutopilotServer.kt +++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/server/AsyncDataToAutopilotServer.kt @@ -1,7 +1,7 @@ package com.mogo.eagle.core.function.datacenter.autopilot.server import com.mogo.eagle.core.data.trafficlight.TrafficLightResult -import com.mogo.eagle.core.function.api.v2x.IMoGoTrafficLightListener +import com.mogo.eagle.core.function.api.datacenter.union.IMoGoTrafficLightListener import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager import com.mogo.eagle.core.function.call.v2x.CallerTrafficLightListenerManager diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/v2x/SpeedLimitDispatcher.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/v2x/SpeedLimitDispatcher.kt index 6742f81aa8..0346113ae1 100644 --- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/v2x/SpeedLimitDispatcher.kt +++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/v2x/SpeedLimitDispatcher.kt @@ -2,7 +2,7 @@ package com.mogo.eagle.core.function.datacenter.v2x import android.content.Context import com.mogo.eagle.core.data.enums.DataSourceType -import com.mogo.eagle.core.function.api.v2x.ILimitingVelocityListener +import com.mogo.eagle.core.function.api.datacenter.union.ILimitingVelocityListener import com.mogo.eagle.core.function.call.v2x.CallerLimitingVelocityListenerManager /** diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/v2x/TrafficLightDispatcher.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/v2x/TrafficLightDispatcher.kt index da18deaa54..b4f9c1f98a 100644 --- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/v2x/TrafficLightDispatcher.kt +++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/v2x/TrafficLightDispatcher.kt @@ -6,7 +6,7 @@ import com.mogo.eagle.core.data.enums.DataSourceType import com.mogo.eagle.core.data.enums.TrafficLightEnum import com.mogo.eagle.core.data.trafficlight.* import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotIdentifyListener -import com.mogo.eagle.core.function.api.v2x.IMoGoTrafficLightListener +import com.mogo.eagle.core.function.api.datacenter.union.IMoGoTrafficLightListener import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotIdentifyListenerManager import com.mogo.eagle.core.function.call.v2x.CallerTrafficLightListenerManager import perception.TrafficLightOuterClass diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/msgbox/MsgBoxProvider.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/msgbox/MsgBoxProvider.kt index d3c4d49cd4..5c1729cbfd 100644 --- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/msgbox/MsgBoxProvider.kt +++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/msgbox/MsgBoxProvider.kt @@ -4,7 +4,7 @@ import android.content.Context import com.alibaba.android.arouter.facade.annotation.Route import com.mogo.eagle.core.data.constants.MogoServicePaths.PATH_MSG_BOX_MODULE import com.mogo.eagle.core.data.msgbox.MsgBoxBean -import com.mogo.eagle.core.function.api.msgbox.IMsgBoxProvider +import com.mogo.eagle.core.function.api.datacenter.msgbox.IMsgBoxProvider import com.mogo.eagle.core.function.msgbox.DataManager.saveAllMessages2Disk @Route(path = PATH_MSG_BOX_MODULE) diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/binding/BindingCarNetWorkManager.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/binding/BindingCarNetWorkManager.kt index dca175382b..9daa99f962 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/binding/BindingCarNetWorkManager.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/binding/BindingCarNetWorkManager.kt @@ -152,6 +152,9 @@ class BindingCarNetWorkManager private constructor() { } private fun updateCarVrIconRes(brandId: String?) { + if(!DebugConfig.isCarModelChange()){ + return + } if (brandId == null || brandId.isEmpty()) { return } 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 95ec88c2af..ccbb9080a5 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 @@ -43,7 +43,7 @@ class TraceManager : IMoGoCloudListener, IMoGoAutopilotCarConfigListener { // 初始化Trace抓取服务 val pkgName = Utils.getApp().packageName ChainTraceStarter.start(pkgName, DeviceUtils.getMacAddress(), false) - CallerCloudListenerManager.registerCloudListener(TAG, this) + CallerCloudListenerManager.addListener(TAG, this) CallerAutopilotCarConfigListenerManager.addListener(TAG, this) // Trace过程中进行日志抓取,对日志进行配置 diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/tts/TtsManager.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/tts/TtsManager.kt index 2cf11f8d9f..75c46d37ec 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/tts/TtsManager.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/tts/TtsManager.kt @@ -23,7 +23,7 @@ class TtsManager : IMoGoCloudListener { fun initTts(context: Context) { val sn = SharedPrefsMgr.getInstance(context).getString("sn") if (sn.isNullOrEmpty()) { - CallerCloudListenerManager.registerCloudListener(TraceManager.TAG, this) + CallerCloudListenerManager.addListener(TraceManager.TAG, this) } AIAssist.getInstance(context) } 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 db43edc926..93ae969800 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 @@ -9,7 +9,7 @@ import androidx.constraintlayout.widget.ConstraintLayout import androidx.recyclerview.widget.LinearLayoutManager import com.mogo.eagle.core.data.msgbox.MsgBoxBean import com.mogo.eagle.core.data.msgbox.MsgCategory -import com.mogo.eagle.core.function.api.msgbox.IMsgBoxListener +import com.mogo.eagle.core.function.api.datacenter.msgbox.IMsgBoxListener import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxEventListenerManager import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxListenerManager diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/DriverMsgBoxButtonView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/DriverMsgBoxButtonView.kt index 5fe939bf50..1bda3f2e9b 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/DriverMsgBoxButtonView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/DriverMsgBoxButtonView.kt @@ -6,7 +6,7 @@ import android.view.LayoutInflater import android.view.View import androidx.constraintlayout.widget.ConstraintLayout import com.mogo.eagle.core.data.msgbox.MsgBoxBean -import com.mogo.eagle.core.function.api.msgbox.IMsgBoxEventListener +import com.mogo.eagle.core.function.api.datacenter.msgbox.IMsgBoxEventListener import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxEventListenerManager import com.mogo.eagle.core.function.hmi.R import kotlinx.android.synthetic.main.view_driver_msg_box_button.view.* 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 c06b07f82b..0a24a50f88 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 @@ -9,8 +9,8 @@ import androidx.constraintlayout.widget.ConstraintLayout import androidx.recyclerview.widget.LinearLayoutManager import com.mogo.eagle.core.data.msgbox.MsgBoxBean import com.mogo.eagle.core.data.msgbox.MsgCategory -import com.mogo.eagle.core.function.api.msgbox.IMsgBoxEventListener -import com.mogo.eagle.core.function.api.msgbox.IMsgBoxListener +import com.mogo.eagle.core.function.api.datacenter.msgbox.IMsgBoxEventListener +import com.mogo.eagle.core.function.api.datacenter.msgbox.IMsgBoxListener import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxEventListenerManager import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxListenerManager import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxManager 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 61fd81fb64..30ff6c7f23 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 @@ -9,7 +9,7 @@ import androidx.recyclerview.widget.LinearLayoutManager import com.mogo.eagle.core.data.msgbox.MsgBoxBean import com.mogo.eagle.core.data.msgbox.MsgBoxType import com.mogo.eagle.core.data.msgbox.MsgCategory -import com.mogo.eagle.core.function.api.msgbox.IMsgBoxListener +import com.mogo.eagle.core.function.api.datacenter.msgbox.IMsgBoxListener import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxEventListenerManager import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxListenerManager import com.mogo.eagle.core.function.hmi.R 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 7625fbec80..0112f09266 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 @@ -6,18 +6,15 @@ import android.util.AttributeSet import android.view.* import androidx.constraintlayout.widget.ConstraintLayout import androidx.recyclerview.widget.LinearLayoutManager -import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.data.msgbox.MsgBoxBean import com.mogo.eagle.core.data.msgbox.MsgBoxType import com.mogo.eagle.core.data.msgbox.MsgCategory -import com.mogo.eagle.core.function.api.msgbox.IMsgBoxListener -import com.mogo.eagle.core.function.call.hmi.CallerHmiManager +import com.mogo.eagle.core.function.api.datacenter.msgbox.IMsgBoxListener import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxEventListenerManager import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxListenerManager import com.mogo.eagle.core.function.hmi.R import com.mogo.eagle.core.function.hmi.ui.msgbox.adapter.PassengerMsgBoxBubbleAdapter import com.mogo.eagle.core.function.msgbox.MsgBoxConfig -import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils import com.mogo.eagle.core.utilcode.util.UiThreadHandler import kotlinx.android.synthetic.main.layout_passenger_msg_box_bubble.view.* diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/PassengerMsgBoxButtonView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/PassengerMsgBoxButtonView.kt index 3080907378..606affc6f5 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/PassengerMsgBoxButtonView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/PassengerMsgBoxButtonView.kt @@ -6,7 +6,7 @@ import android.view.LayoutInflater import android.view.View import androidx.constraintlayout.widget.ConstraintLayout import com.mogo.eagle.core.data.msgbox.MsgBoxBean -import com.mogo.eagle.core.function.api.msgbox.IMsgBoxEventListener +import com.mogo.eagle.core.function.api.datacenter.msgbox.IMsgBoxEventListener import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxEventListenerManager import com.mogo.eagle.core.function.hmi.R import kotlinx.android.synthetic.main.view_passenger_msg_box_button.view.* 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 8abbc15a48..cc8418f8d2 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 @@ -7,18 +7,16 @@ import android.view.LayoutInflater import androidx.constraintlayout.widget.ConstraintLayout import androidx.recyclerview.widget.DividerItemDecoration import androidx.recyclerview.widget.LinearLayoutManager -import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.data.msgbox.MsgBoxBean import com.mogo.eagle.core.data.msgbox.MsgBoxType import com.mogo.eagle.core.data.msgbox.MsgCategory -import com.mogo.eagle.core.function.api.msgbox.IMsgBoxEventListener -import com.mogo.eagle.core.function.api.msgbox.IMsgBoxListener +import com.mogo.eagle.core.function.api.datacenter.msgbox.IMsgBoxEventListener +import com.mogo.eagle.core.function.api.datacenter.msgbox.IMsgBoxListener import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxEventListenerManager import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxListenerManager import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxManager import com.mogo.eagle.core.function.hmi.R import com.mogo.eagle.core.function.hmi.ui.msgbox.adapter.PassengerMsgBoxListAdapter -import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils import com.mogo.eagle.core.utilcode.util.ResourceUtils.getDrawable import com.mogo.eagle.core.utilcode.util.UiThreadHandler import kotlinx.android.synthetic.main.layout_passenger_msg_box_list.view.* diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/vehicle/PncActionsView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/vehicle/PncActionsView.kt index 66a1a68404..5cf624ff40 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/vehicle/PncActionsView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/vehicle/PncActionsView.kt @@ -4,7 +4,6 @@ import android.content.Context import android.util.AttributeSet import android.util.TypedValue.COMPLEX_UNIT_PX import android.view.LayoutInflater -import android.view.ViewGroup import androidx.appcompat.content.res.AppCompatResources import androidx.constraintlayout.widget.ConstraintLayout import com.mogo.eagle.core.data.autopilot.AutopilotStatusInfo @@ -17,7 +16,7 @@ import com.mogo.eagle.core.data.trafficlight.isRed import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotPlanningActionsListener import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener.Companion.STATUS_AUTOPILOT_RUNNING -import com.mogo.eagle.core.function.api.v2x.IMoGoTrafficLightListener +import com.mogo.eagle.core.function.api.datacenter.union.IMoGoTrafficLightListener import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager import com.mogo.eagle.core.function.call.autopilot.CallerPlanningActionsListenerManager import com.mogo.eagle.core.function.call.v2x.CallerTrafficLightListenerManager @@ -25,8 +24,6 @@ import com.mogo.eagle.core.function.hmi.R import com.mogo.eagle.core.utilcode.util.UiThreadHandler import com.zhjt.service_biz.BizConfig import kotlinx.android.synthetic.main.view_pnc_actions.view.* -import me.jessyan.autosize.AutoSize -import me.jessyan.autosize.utils.AutoSizeUtils import mogo.telematics.pad.MessagePad class PncActionsView @JvmOverloads constructor( @@ -52,16 +49,25 @@ class PncActionsView @JvmOverloads constructor( init { LayoutInflater.from(context).inflate(R.layout.view_pnc_actions, this, true) val a = context.obtainStyledAttributes(attrs, R.styleable.PncActionsView, defStyleAttr, 0) - bgResources = a.getResourceId(R.styleable.PncActionsView_background_resource, R.drawable.pnc_actions_bg) - topMargin = a.getResourceId(R.styleable.PncActionsView_pnc_top_margin,resources.getDimension(R.dimen.dp_30).toInt()) - txtSize = a.getResourceId(R.styleable.PncActionsView_pnc_size,resources.getDimension(R.dimen.dp_34).toInt()) + bgResources = a.getResourceId( + R.styleable.PncActionsView_background_resource, + R.drawable.pnc_actions_bg + ) + topMargin = a.getResourceId( + R.styleable.PncActionsView_pnc_top_margin, + resources.getDimension(R.dimen.dp_30).toInt() + ) + txtSize = a.getResourceId( + R.styleable.PncActionsView_pnc_size, + resources.getDimension(R.dimen.dp_34).toInt() + ) a.recycle() } override fun onAttachedToWindow() { super.onAttachedToWindow() (tvHmiPncActions.layoutParams as MarginLayoutParams).topMargin = topMargin - tvHmiPncActions.setTextSize(COMPLEX_UNIT_PX,txtSize.toFloat()) + tvHmiPncActions.setTextSize(COMPLEX_UNIT_PX, txtSize.toFloat()) CallerAutoPilotStatusListenerManager.addListener(TAG, this) CallerPlanningActionsListenerManager.addListener(TAG, this) @@ -124,6 +130,9 @@ class PncActionsView @JvmOverloads constructor( tvHmiPncActions.text = actions } } + } else { + this.background = null + tvHmiPncActions.text = "" } } diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/LimitingVelocityView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/LimitingVelocityView.kt index 8746a17300..de83239e19 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/LimitingVelocityView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/LimitingVelocityView.kt @@ -2,14 +2,13 @@ package com.mogo.eagle.core.function.hmi.ui.widget import android.content.Context import android.util.AttributeSet -import android.util.Log import android.view.LayoutInflater import android.view.View import androidx.constraintlayout.widget.ConstraintLayout import com.mogo.eagle.core.data.enums.DataSourceType import com.mogo.eagle.core.function.api.hmi.view.IViewControlListener import com.mogo.eagle.core.function.api.hmi.view.IViewControlListener.Companion.LimitingVelocityView_TAG -import com.mogo.eagle.core.function.api.v2x.ILimitingVelocityListener +import com.mogo.eagle.core.function.api.datacenter.union.ILimitingVelocityListener import com.mogo.eagle.core.function.call.hmi.CallerHmiViewControlListenerManager import com.mogo.eagle.core.function.call.v2x.CallerLimitingVelocityListenerManager import com.mogo.eagle.core.function.hmi.R @@ -43,7 +42,6 @@ class LimitingVelocityView constructor( if (limitingVelocity > 0) { visibility = View.VISIBLE tvLimitingVelocity.text = "$limitingVelocity" - Log.d("emArrow","limit : ${ DataSourceType.getName(sourceType)}") tvLimitingSource.text = DataSourceType.getName(sourceType) } else { visibility = View.GONE diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/SingleTrafficLightView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/SingleTrafficLightView.kt index fbd045ab7e..f770db1fbe 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/SingleTrafficLightView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/SingleTrafficLightView.kt @@ -13,7 +13,7 @@ import com.mogo.eagle.core.data.enums.DataSourceType import com.mogo.eagle.core.data.enums.TrafficLightEnum import com.mogo.eagle.core.function.api.hmi.view.IViewControlListener import com.mogo.eagle.core.function.api.hmi.view.IViewControlListener.Companion.TrafficLightView_TAG -import com.mogo.eagle.core.function.api.v2x.IMoGoTrafficLightListener +import com.mogo.eagle.core.function.api.datacenter.union.IMoGoTrafficLightListener import com.mogo.eagle.core.function.call.hmi.CallerHmiViewControlListenerManager import com.mogo.eagle.core.function.call.v2x.CallerTrafficLightListenerManager import com.mogo.eagle.core.function.hmi.R diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/SpeedPanelView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/SpeedPanelView.kt index bd8cdb8807..b7f531c972 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/SpeedPanelView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/SpeedPanelView.kt @@ -8,12 +8,11 @@ import android.widget.FrameLayout import com.mogo.eagle.core.data.enums.DataSourceType import com.mogo.eagle.core.data.map.MogoLocation import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisLocationGCJ02Listener -import com.mogo.eagle.core.function.api.v2x.ILimitingVelocityListener +import com.mogo.eagle.core.function.api.datacenter.union.ILimitingVelocityListener import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02ListenerManager import com.mogo.eagle.core.function.call.v2x.CallerLimitingVelocityListenerManager import com.mogo.eagle.core.function.hmi.R import com.mogo.eagle.core.utilcode.util.UiThreadHandler -import java.util.* class SpeedPanelView @JvmOverloads constructor( context: Context, 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 f26b486ee8..7470a9932c 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 @@ -22,10 +22,10 @@ import com.amap.api.maps.TextureMapView import com.amap.api.maps.model.* import com.mogo.eagle.core.data.map.Infrastructure import com.mogo.eagle.core.data.map.MogoLocation -import com.mogo.eagle.core.data.v2x.V2XEvent +import com.mogo.eagle.core.data.v2x.V2XEventData import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisLocationGCJ02Listener import com.mogo.eagle.core.function.api.autopilot.IMoGoPlanningRottingListener -import com.mogo.eagle.core.function.api.v2x.IFuncBizProvider +import com.mogo.eagle.core.function.api.biz.IFuncBizProvider import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager.getGlobalPath import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02ListenerManager import com.mogo.eagle.core.function.call.autopilot.CallerPlanningRottingListenerManager @@ -300,8 +300,8 @@ class OverMapView @JvmOverloads constructor( geoHashInfMap = map } - override fun onV2XEvents(v2xEvents: List?) { - showV2XEventMarkers(v2xEvents) + override fun onV2XEvents(v2XEventData: List?) { + showV2XEventMarkers(v2XEventData) } }) // 主动查一次全局路径规划的数据 @@ -389,11 +389,11 @@ class OverMapView @JvmOverloads constructor( /** * 显示V2X事件的Marker */ - private fun showV2XEventMarkers(v2XEvents: List?) { - if (v2XEvents == null || v2XEvents.isEmpty()) return + private fun showV2XEventMarkers(v2XEventData: List?) { + if (v2XEventData == null || v2XEventData.isEmpty()) return clearV2XMarkers() val markerOptionsList = ArrayList() - for (v2xEvent in v2XEvents) { + for (v2xEvent in v2XEventData) { val center = v2xEvent.center if (center != null) { val markerOption = MarkerOptions() diff --git a/core/function-impl/mogo-core-function-startup/src/main/java/com/mogo/eagle/core/function/startup/MogoStartUpProvider.kt b/core/function-impl/mogo-core-function-startup/src/main/java/com/mogo/eagle/core/function/startup/MogoStartUpProvider.kt index 0e66e82922..29acccff70 100644 --- a/core/function-impl/mogo-core-function-startup/src/main/java/com/mogo/eagle/core/function/startup/MogoStartUpProvider.kt +++ b/core/function-impl/mogo-core-function-startup/src/main/java/com/mogo/eagle/core/function/startup/MogoStartUpProvider.kt @@ -8,10 +8,7 @@ import com.mogo.eagle.core.function.api.startup.IStartUpProvider import com.mogo.eagle.core.function.startup.stageone.APMStartup import com.mogo.eagle.core.function.startup.stageone.HttpDnsStartUp import com.mogo.eagle.core.function.startup.stageone.ThreadOptStartup -import com.mogo.eagle.core.function.startup.stagetwo.AutopilotStartUp -import com.mogo.eagle.core.function.startup.stagetwo.DataCenterStartUp -import com.mogo.eagle.core.function.startup.stagetwo.ObuStartUp -import com.mogo.eagle.core.function.startup.stagetwo.MapBizStartUp +import com.mogo.eagle.core.function.startup.stagetwo.* import com.rousetime.android_startup.StartupListener import com.rousetime.android_startup.StartupManager import com.rousetime.android_startup.model.CostTimesModel @@ -20,7 +17,7 @@ import com.rousetime.android_startup.model.StartupConfig import org.greenrobot.eventbus.EventBus @Route(path = MogoServicePaths.PATH_STARTUP_PROVIDER) -class MogoStartUpProvider: IStartUpProvider { +class MogoStartUpProvider : IStartUpProvider { private var context: Context? = null @@ -39,8 +36,7 @@ class MogoStartUpProvider: IStartUpProvider { } override fun initStageOne() { - var config: StartupConfig? = null - config = if (DebugConfig.isDebug()) { + val config = if (DebugConfig.isDebug()) { StartupConfig.Builder() .setLoggerLevel(LoggerLevel.DEBUG) .setOpenStatistics(true) @@ -78,6 +74,7 @@ class MogoStartUpProvider: IStartUpProvider { StartupManager.Builder() .addStartup(DataCenterStartUp()) .addStartup(AutopilotStartUp()) + .addStartup(AiCloudBizStartUp()) .addStartup(ObuStartUp()) .addStartup(MapBizStartUp()) .setConfig(config) diff --git a/core/function-impl/mogo-core-function-startup/src/main/java/com/mogo/eagle/core/function/startup/stagetwo/AiCloudBizStartUp.kt b/core/function-impl/mogo-core-function-startup/src/main/java/com/mogo/eagle/core/function/startup/stagetwo/AiCloudBizStartUp.kt new file mode 100644 index 0000000000..903e705355 --- /dev/null +++ b/core/function-impl/mogo-core-function-startup/src/main/java/com/mogo/eagle/core/function/startup/stagetwo/AiCloudBizStartUp.kt @@ -0,0 +1,28 @@ +package com.mogo.eagle.core.function.startup.stagetwo + +import android.content.Context +import com.alibaba.android.arouter.launcher.ARouter +import com.mogo.eagle.core.data.constants.MogoServicePaths +import com.rousetime.android_startup.AndroidStartup + +class AiCloudBizStartUp : AndroidStartup() { + + override fun create(context: Context): Boolean { + ARouter.getInstance().build(MogoServicePaths.PATH_AI_CLOUD).navigation() + return true + } + + override fun callCreateOnMainThread(): Boolean { + return true + } + + override fun waitOnMainThread(): Boolean { + return false + } + + override fun dependenciesByName(): List { + val deps = arrayListOf() + deps.add("com.mogo.eagle.core.function.startup.stagetwo.DataCenterStartUp") + return deps + } +} \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-v2x/build.gradle b/core/function-impl/mogo-core-function-v2x/build.gradle index 0548690b35..8e6838c280 100644 --- a/core/function-impl/mogo-core-function-v2x/build.gradle +++ b/core/function-impl/mogo-core-function-v2x/build.gradle @@ -4,7 +4,6 @@ plugins { id 'kotlin-android-extensions' id 'kotlin-kapt' id 'com.alibaba.arouter' - id 'com.google.protobuf' } android { compileSdkVersion rootProject.ext.android.compileSdkVersion @@ -36,19 +35,6 @@ android { targetCompatibility JavaVersion.VERSION_1_8 } - protobuf { - protoc { - artifact = rootProject.ext.dependencies.protoc - } - generateProtoTasks { - all().each { task -> - task.builtins { - java {} - } - } - } - } - } dependencies { @@ -63,8 +49,6 @@ dependencies { implementation rootProject.ext.dependencies.arouter implementation rootProject.ext.dependencies.rxandroid kapt rootProject.ext.dependencies.aroutercompiler - implementation rootProject.ext.dependencies.protobuf_java - implementation rootProject.ext.dependencies.protobuf_java_util implementation rootProject.ext.dependencies.mogoaicloudtrafficlive 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 920a297268..b1123c6860 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 @@ -7,16 +7,9 @@ import android.os.Handler import android.os.Looper import android.util.Log import androidx.localbroadcastmanager.content.LocalBroadcastManager -import com.mogo.cloud.passport.IMoGoTokenCallback -import com.mogo.cloud.passport.MoGoAiCloudClient -import com.mogo.cloud.passport.MoGoAiCloudClientConfig -import com.mogo.commons.constants.HostConst -import com.mogo.commons.module.ServiceConst.CARD_TYPE_ROAD_CONDITION -import com.mogo.commons.network.ParamsUtil import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_CLOUD_V2N import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_LINK_CLOUD import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_LINK_LOG_CLOUD_V2N -import com.mogo.eagle.core.data.enums.DataSourceType import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.data.enums.EventTypeEnumNew import com.mogo.eagle.core.data.enums.EventTypeHelper @@ -28,11 +21,11 @@ import com.mogo.eagle.core.data.msgbox.MsgBoxBean import com.mogo.eagle.core.data.msgbox.MsgBoxType import com.mogo.eagle.core.data.msgbox.V2XMsg import com.mogo.eagle.core.data.traffic.TrafficData +import com.mogo.eagle.core.data.v2x.V2XAdvanceWarning import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotIdentifyListener import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisLocationGCJ02Listener import com.mogo.eagle.core.function.api.hmi.warning.IMoGoWarningStatusListener import com.mogo.eagle.core.function.api.map.angle.* -import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotIdentifyListenerManager import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02ListenerManager import com.mogo.eagle.core.function.call.hmi.CallerHmiManager @@ -47,37 +40,30 @@ import com.mogo.eagle.core.function.v2x.events.consts.V2XConst.BROADCAST_SCENE_H import com.mogo.eagle.core.function.v2x.events.receiver.SceneBroadcastReceiver import com.mogo.eagle.core.function.v2x.events.scenario.impl.V2XScenarioManager import com.mogo.eagle.core.function.v2x.events.utils.toRoadMarker -import com.mogo.eagle.core.function.v2x.events.utils.toV2XRoadEventEntity -import com.mogo.eagle.core.function.v2x.internal.V2XManager import com.mogo.eagle.core.function.v2x.internal.callback.IV2XCallback -import com.mogo.eagle.core.function.v2x.internal.config.V2XConfig -import com.mogo.eagle.core.function.v2x.internal.data.* -import com.mogo.eagle.core.function.v2x.internal.event.V2XEvent -import com.mogo.eagle.core.function.v2x.road.V2XEventServiceApi -import com.mogo.eagle.core.network.MoGoRetrofitFactory +import com.mogo.eagle.core.data.v2x.V2XEvent +import com.mogo.eagle.core.data.v2x.V2XMarkerCardResult +import com.mogo.eagle.core.data.v2x.V2XWarningTarget +import com.mogo.eagle.core.function.api.cloud.IMoGoCloudListener +import com.mogo.eagle.core.function.call.cloud.CallerCloudListenerManager +import com.mogo.eagle.core.function.v2x.events.V2XPoiLoader.Companion.v2xPoiLoader +import com.mogo.eagle.core.function.v2x.events.utils.toV2XRoadEventEntity 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.Companion.M_V2X -import com.mogo.eagle.core.utilcode.util.ThreadUtils -import com.mogo.eagle.core.utilcode.util.UiThreadHandler import com.mogo.eagle.core.utilcode.util.Utils -import com.mogo.map.marker.MogoMarkersHandler.Companion.mogoMarkersHandler import com.zhjt.service.chain.ChainLog import com.zhjt.service.chain.TracingConstants -import io.reactivex.android.schedulers.AndroidSchedulers -import io.reactivex.disposables.Disposable -import io.reactivex.schedulers.Schedulers import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.android.asCoroutineDispatcher import kotlinx.coroutines.cancel import kotlinx.coroutines.launch -import java.util.concurrent.TimeUnit import java.util.concurrent.atomic.AtomicBoolean import mogo.telematics.pad.MessagePad -object V2XEventManager : IMoGoChassisLocationGCJ02Listener, IMoGoTokenCallback, IV2XCallback, - IMoGoAutopilotIdentifyListener { +object V2XEventManager : IMoGoChassisLocationGCJ02Listener, IV2XCallback, + IMoGoAutopilotIdentifyListener, IMoGoCloudListener { private const val TAG = "V2XEventManager" @@ -87,57 +73,34 @@ object V2XEventManager : IMoGoChassisLocationGCJ02Listener, IMoGoTokenCallback, private val hasInit by lazy { AtomicBoolean(false) } - - var v2xEventDisposable: Disposable? = null - fun init(context: Context) { BridgeApi.init(context) if (hasInit.compareAndSet(false, true)) { - if (!V2XManager.hasInit()) { - V2XManager.init(V2XConfig.Builder().also { - it.aiCloudConfig(MoGoAiCloudClientConfig.getInstance()) - it.context(context) - it.loggable(false) - it.distanceForTriggerRefresh(200f) //行驶超过200(包含)米,刷新道路周边信息(短链请求) - it.durationForTriggerRefresh( - 60, - TimeUnit.SECONDS - ) // 每隔1分钟,根据自车定位,刷新道路周边信息(短链请求) - it.executor(ThreadUtils.getIoPool()) //用到的线程池(IO类型) - it.staticParams(ParamsUtil.getStaticParams()) - }.build()) - V2XManager.start() - } registerListener() - V2XManager.forceRefresh() - MoGoAiCloudClient.getInstance().addTokenCallbacks(this) + v2xPoiLoader.startLoopPoi() // 注册广播接收场景弹窗使用的 SceneBroadcastReceiver.register(context) } } private fun registerListener() { - V2XManager.addCallback(this) - CallerChassisLocationGCJ02ListenerManager.addListener(TAG, this) + CallerChassisLocationGCJ02ListenerManager.addListener(TAG, 1,this) + v2xPoiLoader.addCallback(this) + CallerCloudListenerManager.addListener(TAG,this) CallerAutopilotIdentifyListenerManager.addListener(TAG, this) } private fun unRegisterListener() { - V2XManager.removeCallback(this) CallerChassisLocationGCJ02ListenerManager.removeListener(TAG) + v2xPoiLoader.removeCallback(this) + CallerCloudListenerManager.removeListener(TAG) CallerAutopilotIdentifyListenerManager.removeListener(TAG) - mogoMarkersHandler.unregisterMarkerClickListener(CARD_TYPE_ROAD_CONDITION) } override fun onChassisLocationGCJ02(mogoLocation: MogoLocation?) { BridgeApi.location.set(mogoLocation) mogoLocation?.let { - if (V2XManager.hasInit()) { - V2XManager.onLocationChanged( - longitude = it.longitude, - latitude = mogoLocation.latitude - ) - } + v2xPoiLoader.updateCheck(mogoLocation.longitude,mogoLocation.latitude) refreshCarState(mogoLocation) } } @@ -167,12 +130,6 @@ object V2XEventManager : IMoGoChassisLocationGCJ02Listener, IMoGoTokenCallback, } } - override fun onTokenGot(token: String?, sn: String?) { - if (V2XManager.hasInit()) { - V2XManager.updateSnAndToken(sn, token) - } - } - /** * V2XEvent事件回调 */ @@ -202,12 +159,11 @@ object V2XEventManager : IMoGoChassisLocationGCJ02Listener, IMoGoTokenCallback, handleWarningTargetEvent(event.data) } is V2XEvent.RoadAI -> { - if(FunctionBuildConfig.isV2NFromCar){ + if (FunctionBuildConfig.isV2NFromCar) { return } handleRoadMarkerEvent(event.data.toRoadMarker()) } - is V2XEvent.RoadEventX -> { handleRoadMarkerEvent(event.data.toRoadMarker()) } @@ -220,7 +176,7 @@ object V2XEventManager : IMoGoChassisLocationGCJ02Listener, IMoGoTokenCallback, @SuppressLint("NewApi") override fun onAutopilotIdentifyPlanningObj(planningObjects: List?) { super.onAutopilotIdentifyPlanningObj(planningObjects) - if(!FunctionBuildConfig.isV2NFromCar){ + if (!FunctionBuildConfig.isV2NFromCar) { return } planningObjects?.let { @@ -277,6 +233,7 @@ object V2XEventManager : IMoGoChassisLocationGCJ02Listener, IMoGoTokenCallback, } } + //todo 可优化,与obu解析类似 private fun handleAdvanceWarningEvent(event: V2XEvent.ForwardsWarning) { scope.launch { val message = event.data @@ -422,69 +379,13 @@ object V2XEventManager : IMoGoChassisLocationGCJ02Listener, IMoGoTokenCallback, } fun queryWholeRoadEvents() { - if (v2xEventDisposable != null && !v2xEventDisposable!!.isDisposed) { - v2xEventDisposable!!.dispose() - } - val sn = MoGoAiCloudClientConfig.getInstance().sn - val lineId = getLineId() - if (lineId > 0) { - realQueryV2xEvents(lineId.toString(), sn) - } else { - UiThreadHandler.postDelayed({ - realQueryV2xEvents(getLineId().toString(), sn) - }, 500) - } - } - - private fun realQueryV2xEvents(lineId: String, sn: String) { - v2xEventDisposable = MoGoRetrofitFactory.getInstance(HostConst.getHost()) - .create(V2XEventServiceApi::class.java) - .queryAllV2XEventsByLineId(lineId, sn) - .map { - if (it.code == 200 || it.code == 0) { - CallerLogger.d(M_V2X + TAG, "请求成功,size为:${it.result?.v2XEventList?.size}") - return@map it.result?.v2XEventList - } else { - CallerLogger.d(M_V2X + TAG, "请求失败,code为:${it.code}") - return@map ArrayList() - } - } - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe { - val size = it?.size ?: 0 - if (size > 0) { - val msgBoxBean = - MsgBoxBean(MsgBoxType.V2X, V2XMsg("", "查询到当前全程共${size}个事件", "")) - msgBoxBean.sourceType = DataSourceType.SUMMARY - CallerMsgBoxManager.saveMsgBox(msgBoxBean) - } - } - } - - private fun getLineId(): Long { - var lineId: Long = -1 - val parameter = CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo() - .autopilotControlParameters - if (parameter != null) { - if (parameter.autoPilotLine != null) { - lineId = parameter.autoPilotLine!!.lineId - CallerLogger.d(M_V2X + TAG, "lineId为:$lineId") - } else { - CallerLogger.d(M_V2X + TAG, "parameter.autoPilotLine为null") - } - } else { - CallerLogger.d(M_V2X + TAG, "parameter为null") - } - return lineId + v2xPoiLoader.queryWholeRoadEvents() } override fun onFail(msg: String) { CallerLogger.e("$M_V2X$TAG", "Error: $msg") } - override fun onError(code: Int, msg: String?) {} - fun onDestroy() { if (hasInit.compareAndSet(true, false)) { try { @@ -494,6 +395,7 @@ object V2XEventManager : IMoGoChassisLocationGCJ02Listener, IMoGoTokenCallback, } finally { unRegisterListener() } + v2xPoiLoader.stopLoopPoi() } } diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/V2XPoiLoader.kt b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/V2XPoiLoader.kt new file mode 100644 index 0000000000..065dd53827 --- /dev/null +++ b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/V2XPoiLoader.kt @@ -0,0 +1,184 @@ +package com.mogo.eagle.core.function.v2x.events + +import android.os.Handler +import android.os.Looper +import com.mogo.cloud.passport.MoGoAiCloudClientConfig +import com.mogo.eagle.core.data.enums.DataSourceType +import com.mogo.eagle.core.data.msgbox.MsgBoxBean +import com.mogo.eagle.core.data.msgbox.MsgBoxType +import com.mogo.eagle.core.data.msgbox.V2XMsg +import com.mogo.eagle.core.data.v2x.V2XEvent +import com.mogo.eagle.core.data.v2x.V2XMarkerResponse +import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager +import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxManager +import com.mogo.eagle.core.function.v2x.internal.callback.IV2XCallback +import com.mogo.eagle.core.function.v2x.internal.http.V2XRefreshModel +import com.mogo.eagle.core.function.v2x.internal.http.callback.IV2XRefreshCallback +import com.mogo.eagle.core.function.v2x.internal.utils.DistanceUtils +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger +import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant +import com.mogo.eagle.core.utilcode.util.UiThreadHandler +import java.util.concurrent.CopyOnWriteArrayList +import java.util.concurrent.TimeUnit +import java.util.concurrent.atomic.AtomicReference + +class V2XPoiLoader private constructor() { + + companion object { + + private const val TAG = "V2XPoiLoader" + + val v2xPoiLoader by lazy(LazyThreadSafetyMode.SYNCHRONIZED) { + V2XPoiLoader() + } + } + + private val lastLongitude by lazy { AtomicReference(0.0) } + + private val lastLatitude by lazy { AtomicReference(0.0) } + + private val realLongitude by lazy { AtomicReference(0.0) } + + private val realLatitude by lazy { AtomicReference(0.0) } + + private val handler by lazy { + Handler(Looper.getMainLooper()) + } + + private val cbs by lazy { + CopyOnWriteArrayList() + } + + /** + * 添加相关信息接口回调 + * @param cb 要添加的回调接口 + */ + fun addCallback(cb: IV2XCallback) { + if (cbs.contains(cb)) { + return + } + cbs += cb + } + + /** + * 移除相关信息接口回调 + * @param cb 要移除的回调接口 + */ + fun removeCallback(cb: IV2XCallback) { + if (!cbs.contains(cb)) { + return + } + cbs.remove(cb) + } + + fun updateCheck(longitude: Double, latitude: Double) { + realLongitude.set(longitude) + realLatitude.set(latitude) + val oldLon = lastLongitude.get() + val oldLat = lastLatitude.get() + var update = false + try { + if (oldLon == 0.0 || oldLat == 0.0) { + handler.removeCallbacks(refreshTask) + handler.post(refreshTask) + update = true + return + } + if (DistanceUtils.calculateLineDistance(oldLon, oldLat, longitude, latitude) >= 200f) { + handler.removeCallbacks(refreshTask) + handler.post(refreshTask) + update = true + } + } finally { + if (update) { + lastLatitude.set(latitude) + lastLongitude.set(longitude) + } + } + } + + /** + * 开启loop Poi事件 + */ + fun startLoopPoi() { + handler.removeCallbacks(refreshTask) + handler.post(refreshTask) + } + + private val refreshTask = object : Runnable { + override fun run() { + V2XRefreshModel.querySnapshot( + longitude = realLongitude.get(), latitude = realLatitude.get(), + refreshCallback + ) + handler.postDelayed(this, TimeUnit.SECONDS.toMillis(60)) + } + } + + fun stopLoopPoi() { + handler.removeCallbacks(refreshTask) + lastLatitude.set(0.0) + lastLongitude.set(0.0) + } + + private val refreshCallback = object : IV2XRefreshCallback { + + override fun onSuccess(result: V2XMarkerResponse) { + cbs.forEach { + it.onAck(V2XEvent.Marker(result)) + } + } + + override fun onFail(msg: String?) { + cbs.forEach { + it.onFail(msg ?: "") + } + } + } + + + /** + * 查询全览路径上的事件信息 + */ + fun queryWholeRoadEvents() { + V2XRefreshModel.roadEventDispose() + val sn = MoGoAiCloudClientConfig.getInstance().sn + val lineId = getLineId() + if (lineId > 0) { + realQueryV2xEvents(lineId.toString(), sn) + } else { + UiThreadHandler.postDelayed({ + realQueryV2xEvents(getLineId().toString(), sn) + }, 500) + } + } + + private fun getLineId(): Long { + var lineId: Long = -1 + val parameter = CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo() + .autopilotControlParameters + if (parameter != null) { + if (parameter.autoPilotLine != null) { + lineId = parameter.autoPilotLine!!.lineId + CallerLogger.d(SceneConstant.M_V2X + TAG, "lineId为:$lineId") + } else { + CallerLogger.d(SceneConstant.M_V2X + TAG, "parameter.autoPilotLine为null") + } + } else { + CallerLogger.d(SceneConstant.M_V2X + TAG, "parameter为null") + } + return lineId + } + + private fun realQueryV2xEvents(lineId: String, sn: String) { + V2XRefreshModel.getRoadEvents(lineId, sn) { + val size = it?.size ?: 0 + if (size > 0) { + val msgBoxBean = + MsgBoxBean(MsgBoxType.V2X, V2XMsg("", "查询到当前全程共${size}个事件", "")) + msgBoxBean.sourceType = DataSourceType.SUMMARY + CallerMsgBoxManager.saveMsgBox(msgBoxBean) + } + } + } +} \ 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/manager/IMoGoV2XMarkerManager.java b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/manager/IMoGoV2XMarkerManager.java index fdfe8dec63..ed87273009 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/manager/IMoGoV2XMarkerManager.java +++ b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/manager/IMoGoV2XMarkerManager.java @@ -6,7 +6,7 @@ import com.alibaba.android.arouter.facade.template.IProvider; import com.mogo.eagle.core.data.map.entity.V2XRoadEventEntity; import com.mogo.map.marker.IMogoMarker; import com.mogo.map.marker.IMogoMarkerClickListener; -import com.mogo.eagle.core.function.v2x.internal.data.V2XMarkerCardResult; +import com.mogo.eagle.core.data.v2x.V2XMarkerCardResult; import java.util.concurrent.CopyOnWriteArrayList; diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/manager/impl/MoGoV2XMarkerManager.java b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/manager/impl/MoGoV2XMarkerManager.java index 327a28d209..932164de80 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/manager/impl/MoGoV2XMarkerManager.java +++ b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/manager/impl/MoGoV2XMarkerManager.java @@ -19,11 +19,8 @@ import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager; import com.mogo.eagle.core.function.v2x.events.consts.MoGoV2XServicePaths; import com.mogo.eagle.core.function.v2x.events.manager.IMoGoV2XMarkerManager; import com.mogo.eagle.core.function.v2x.events.marker.V2XMarkerAdapter; -import com.mogo.eagle.core.function.v2x.events.utils.EntityUtilsKt; import com.mogo.eagle.core.function.v2x.events.utils.MapUtils; -import com.mogo.eagle.core.function.v2x.internal.data.V2XMarkerCardResult; -import com.mogo.eagle.core.function.v2x.internal.data.V2XMarkerExploreWay; -import com.mogo.eagle.core.function.v2x.internal.data.V2XMarkerLocation; +import com.mogo.eagle.core.data.v2x.V2XMarkerCardResult; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.map.marker.IMogoMarker; import com.mogo.map.marker.IMogoMarkerClickListener; diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/scenario/scene/warning/V2XFrontWarningScenario.java b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/scenario/scene/warning/V2XFrontWarningScenario.java index 5ee305f4b3..9350454df4 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/scenario/scene/warning/V2XFrontWarningScenario.java +++ b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/scenario/scene/warning/V2XFrontWarningScenario.java @@ -23,7 +23,7 @@ import com.mogo.eagle.core.function.call.hmi.CallerHmiManager; import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxManager; import com.mogo.eagle.core.function.v2x.events.scenario.impl.AbsV2XScenario; import com.mogo.eagle.core.function.v2x.events.scenario.view.IV2XMarker; -import com.mogo.eagle.core.function.v2x.internal.data.V2XWarningTarget; +import com.mogo.eagle.core.data.v2x.V2XWarningTarget; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import java.math.BigDecimal; diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/scenario/scene/warning/V2XWarningMarker.java b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/scenario/scene/warning/V2XWarningMarker.java index b81750d42c..c0ca15c5cb 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/scenario/scene/warning/V2XWarningMarker.java +++ b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/scenario/scene/warning/V2XWarningMarker.java @@ -18,8 +18,8 @@ import com.mogo.eagle.core.function.v2x.events.manager.IMoGoPersonWarnPolylineMa import com.mogo.eagle.core.function.v2x.events.manager.IMoGoStopPolylineManager; import com.mogo.eagle.core.function.v2x.events.manager.IMoGoWarnPolylineManager; import com.mogo.eagle.core.function.v2x.events.scenario.view.IV2XMarker; -import com.mogo.eagle.core.function.v2x.internal.data.V2XLocation; -import com.mogo.eagle.core.function.v2x.internal.data.V2XWarningTarget; +import com.mogo.eagle.core.data.v2x.V2XLocation; +import com.mogo.eagle.core.data.v2x.V2XWarningTarget; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.eagle.core.utilcode.mogo.thread.WorkThreadHandler; import com.mogo.eagle.core.utilcode.util.UiThreadHandler; diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/utils/EntityUtils.kt b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/utils/EntityUtils.kt index 0b8602e86e..69c1369b52 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/utils/EntityUtils.kt +++ b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/utils/EntityUtils.kt @@ -5,8 +5,9 @@ import com.mogo.eagle.core.data.enums.EventTypeEnumNew.Companion.isRoadEvent import com.mogo.eagle.core.data.map.entity.MarkerExploreWay import com.mogo.eagle.core.data.map.entity.MarkerLocation import com.mogo.eagle.core.data.map.entity.V2XRoadEventEntity +import com.mogo.eagle.core.data.v2x.V2XMarkerCardResult +import com.mogo.eagle.core.data.v2x.V2XRoadXData import com.mogo.eagle.core.function.v2x.events.scenario.scene.airoad.AiRoadMarker -import com.mogo.eagle.core.function.v2x.internal.data.* import com.mogo.eagle.core.utilcode.util.CoordinateTransform import mogo.telematics.pad.MessagePad import roadwork.Road diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/V2XManager.kt b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/V2XManager.kt deleted file mode 100755 index 1245d6244f..0000000000 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/V2XManager.kt +++ /dev/null @@ -1,257 +0,0 @@ -package com.mogo.eagle.core.function.v2x.internal - -import android.os.Handler -import android.os.Looper -import com.mogo.cloud.passport.MoGoAiCloudClientConfig -import com.mogo.cloud.socket.SocketManager -import com.mogo.eagle.core.function.v2x.internal.callback.IV2XCallback -import com.mogo.eagle.core.function.v2x.internal.config.V2XConfig -import com.mogo.eagle.core.function.v2x.internal.data.V2XMarkerResponse -import com.mogo.eagle.core.function.v2x.internal.event.V2XEvent -import com.mogo.eagle.core.function.v2x.internal.http.V2XRefreshModel -import com.mogo.eagle.core.function.v2x.internal.http.callback.IV2XRefreshCallback -import com.mogo.eagle.core.function.v2x.internal.logger.V2XLogger -import com.mogo.eagle.core.function.v2x.internal.socket.* -import com.mogo.eagle.core.function.v2x.internal.socket.V2XMessageListener_401012 -import com.mogo.eagle.core.function.v2x.internal.socket.V2XMessageListener_401018 -import com.mogo.eagle.core.function.v2x.internal.socket.V2XMessageListener_402000 -import com.mogo.eagle.core.function.v2x.internal.socket.V2XMessageListener_404000 -import com.mogo.eagle.core.function.v2x.internal.utils.DistanceUtils -import java.util.concurrent.CopyOnWriteArrayList -import java.util.concurrent.atomic.AtomicBoolean -import java.util.concurrent.atomic.AtomicReference - -object V2XManager { - - internal const val TAG = "V2XManager" - - private val config: AtomicReference by lazy { - AtomicReference(null) - } - - private val cbs by lazy { - CopyOnWriteArrayList() - } - - private val lastLongitude by lazy { - AtomicReference(0.0) - } - - private val lastLatitude by lazy { - AtomicReference(0.0) - } - - private val realLongitude by lazy { AtomicReference(0.0) } - - private val realLatitude by lazy { AtomicReference(0.0) } - - - - /** - * 标识此参数是否启动 - */ - private val started by lazy { - AtomicBoolean(false) - } - - private val refreshCallback = object : IV2XRefreshCallback { - - override fun onSuccess(result: V2XMarkerResponse) { - cbs.forEach { - it.onAck(V2XEvent.Marker(result)) - } - } - - override fun onFail(msg: String?) { - cbs.forEach { - it.onFail(msg ?: "") - } - } - } - - - private val refreshTask = object : Runnable { - override fun run() { - V2XRefreshModel.querySnapshot(longitude = realLongitude.get(), latitude = realLatitude.get(), refreshCallback) - handler.postDelayed(this, config.get().durationForTriggerRefresh) - } - } - - private val handler by lazy { - Handler(Looper.getMainLooper()) - } - - /** - * 根据所配置的参数,初始化V2X相关功能(注: 此方法不要重复调用,非首次调用会抛异常) - * @param config 相关配置类 - */ - fun init(config: V2XConfig) { - V2XLogger.d(TAG, "-- init --") - if (V2XManager.config.get() != null) { - throw IllegalStateException("V2XManager has been initialized, don't initialize repeatably.") - } - V2XManager.config.set(config) - V2XLogger.loggable = config.loggable - } - - /** - * - 开启V2X功能, 此方法调用前,要确保满足以下两个条件: - * 1.初始化方法[init]已调用 - * 2.确保[MoGoAiCloudClientConfig.sn]和[MoGoAiCloudClientConfig.token]两个值存在,如果其中有一个值不存在,不会启动相关功能 - * - 此函数的功能如下: - * 1.建立长链接[SocketManager.init] - * 2.位置上报服务[LocationManager.init]和[LocationManager.start] - * 3.短链[V2XRefreshModel.querySnapshot]定时轮循,轮循时长取[V2XConfig.durationForTriggerRefresh] - */ - fun start() { - V2XLogger.d(TAG, "-- start --") - val config = config.get() ?: throw IllegalStateException("V2XManager has not been initialized, please invoke V2XManager#init(config: X2XConfig) firstly.") - if (started.get()) { - V2XLogger.d(TAG, "-- has been started --") - return - } - if (config.aiCloudConfig.sn?.isBlank() == true) { - V2XLogger.e(TAG, "sn is null or blank, please ensure sn exists and then invoke V2XManager#start() again.") - cbs.forEach { - it.onFail("sn is null or blank, please ensure sn exists and then invoke V2XManager#start() again.") - } - return - } - if (config.aiCloudConfig.token?.isBlank() == true) { - V2XLogger.e(TAG, "token is null or blank, please ensure token exists and then invoke V2Manager#start() again.") - cbs.forEach { - it.onFail("token is null or blank, please ensure token exists and then invoke V2Manager#start() again.") - } - return - } - if (started.compareAndSet(false, true)) { - V2XLogger.d(TAG, "-- start real --") - SocketManager.getInstance().init(config.context,0.0,0.0) - SocketManager.getInstance().registerOnMessageListener(401012, V2XMessageListener_401012(cbs)) - SocketManager.getInstance().registerOnMessageListener(401018, V2XMessageListener_401018(cbs)) - SocketManager.getInstance().registerOnMessageListener(402000, V2XMessageListener_402000(cbs)) - SocketManager.getInstance().registerOnMessageListener(404000, V2XMessageListener_404000(cbs)) - //SocketManager.getInstance().registerOnMessageListener(503000, V2XMessageListener_503000(cbs)) - SocketManager.getInstance().registerOnMessageListener(70001, V2XMessageListener_70001(cbs)) - handler.post(refreshTask) - } - } - - /** - * @param sn 更新后的sn - * @param token 更新后的token - */ - fun updateSnAndToken(sn: String?, token: String?) { - val config = config.get() ?: throw IllegalStateException("V2XManager has not been initialized, please invoke V2XManager#init(config: X2XConfig) firstly.") - sn ?: return - token ?: return - if (started.get()) { - return - } - config.aiCloudConfig.sn = sn - config.aiCloudConfig.token = token - start() - } - - /** - * 停止V2X功能 - * 1. 断开长链接[SocketManager.release] - * 2. 停止位置上报[LocationManager.stop] - * 3. 取消短链定时轮循任务 - */ - fun stop() { - V2XLogger.d(TAG, "-- stop --") - if (config.get() == null) { - throw IllegalStateException("V2XManager has not been initialized, please invoke V2XManager#init(config: X2XConfig) firstly.") - } - if (started.compareAndSet(true, false)) { - V2XLogger.d(TAG, "-- stop real --") - SocketManager.getInstance().release() - handler.removeCallbacks(refreshTask) - lastLatitude.set(0.0) - lastLongitude.set(0.0) - } - } - - /** - * 添加相关信息接口回调 - * @param cb 要添加的回调接口 - */ - fun addCallback(cb: IV2XCallback) { - V2XLogger.d(TAG, "-- addCallback --") - if (cbs.contains(cb)) { - return - } - cbs += cb - } - - /** - * 移除相关信息接口回调 - * @param cb 要移除的回调接口 - */ - fun removeCallback(cb: IV2XCallback) { - V2XLogger.d(TAG, "-- removeCallback --") - if (!cbs.contains(cb)) { - return - } - cbs.remove(cb) - } - - /** - * 当自车位置变量时调用 - * @param longitude 自车所在精度 - * @param latitude 自车所在纬度 - */ - fun onLocationChanged(longitude: Double, latitude: Double) { - if (config.get() == null) { - throw IllegalStateException("V2XManager has not been initialized, please invoke V2XManager#init(config: X2XConfig) firstly.") - } - if (!started.get()) { - return - } - //V2XLogger.d(TAG, "--- onLocationChanged --[longitude: $longitude, latitude: $latitude]") - realLongitude.set(longitude) - realLatitude.set(latitude) - val oldLon = lastLongitude.get() - val oldLat = lastLatitude.get() - var update = false - try { - if (oldLon == 0.0 || oldLat == 0.0) { - V2XLogger.d(TAG, "--- onLocationChanged -- first --[longitude: $longitude, latitude: $latitude]") - handler.removeCallbacks(refreshTask) - handler.post(refreshTask) - update = true - return - } - if (DistanceUtils.calculateLineDistance(oldLon, oldLat, longitude, latitude) >= config.get().distanceForTriggerRefresh) { - V2XLogger.d(TAG, "--- onLocationChanged -- trigger --[longitude: $longitude, latitude: $latitude]") - handler.removeCallbacks(refreshTask) - handler.post(refreshTask) - update = true - } - } finally { - if (update) { - lastLatitude.set(latitude) - lastLongitude.set(longitude) - } - } - } - - /** - * 是否已经初始化 - * @return true: 已初始化过 false: 未初始化 - */ - fun hasInit() = getConfig() != null - - /** - * 强制刷新道路事件 - */ - fun forceRefresh() { - if (hasInit()) { - handler.removeCallbacks(refreshTask) - handler.post(refreshTask) - } - } - - internal fun getConfig() = config.get() -} \ 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/internal/callback/IV2XCallback.kt b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/callback/IV2XCallback.kt index f755c465e4..4a4d0e2b78 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/callback/IV2XCallback.kt +++ b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/callback/IV2XCallback.kt @@ -1,6 +1,6 @@ package com.mogo.eagle.core.function.v2x.internal.callback -import com.mogo.eagle.core.function.v2x.internal.event.V2XEvent +import com.mogo.eagle.core.data.v2x.V2XEvent interface IV2XCallback { diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/config/V2XConfig.kt b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/config/V2XConfig.kt deleted file mode 100755 index 1ab70b67ac..0000000000 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/config/V2XConfig.kt +++ /dev/null @@ -1,174 +0,0 @@ -package com.mogo.eagle.core.function.v2x.internal.config - -import android.content.Context -import com.mogo.cloud.passport.MoGoAiCloudClientConfig -import com.mogo.eagle.core.function.v2x.internal.executor.Executors -import java.util.concurrent.Executor -import java.util.concurrent.TimeUnit -import kotlin.IllegalStateException - -/** - * V2X相关配置 - */ -class V2XConfig private constructor(builder: Builder) { - - /** - * - 应用上下文 - * - 必选项 - * - 通过[Builder.context]设置 - */ - val context : Context by lazy { - builder.context?.applicationContext ?: throw IllegalStateException("context must not be null.") - } - - /** - * - 云平台配置参数 - * - 必选项 - * - 通过[Builder.aiCloudConfig]设置 - */ - val aiCloudConfig by lazy { - builder.aiCloudConfig ?: throw IllegalStateException("aiCloudConfig must not be null.") - } - - /** - * - 网络请求使用的线程池,IO类型 - * - 可选项 - * - 通过[Builder.executor]设置 - */ - val executor: Executor by lazy { - builder.executor ?: Executors.IO - } - - /** - * - 是否开启日志 - * - 可选项 - * - 通过[Builder.loggable]设置,开发阶段可以打开,应用发布后记得关闭 - */ - val loggable: Boolean by lazy { - builder.loggable - } - - /** - * - 公共参数, 默认为空 - * - 可选项 - * - 通过[Builder.staticParams]设置 - */ - val staticParams by lazy { - builder.staticParams ?: HashMap() - } - - /** - * - 基础Url, 默认值为`http://dzt-launcherSnapshot.zhidaozhixing.com` - * - 可选项 - * - 通过[Builder.baseUrl]设置 - */ - val baseUrl by lazy { - builder.baseUrl ?: "http://dzt-launcherSnapshot.zhidaozhixing.com" - - } - - /** - * - 多长时间请求一次自车周边信息,单位为毫秒,默认值为`6_000`毫秒 - * - 可选项 - * - 通过[Builder.durationForTriggerRefresh]设置 - */ - val durationForTriggerRefresh by lazy { - val duration = builder.durationForTriggerRefresh - if (duration == null || duration <= 0) TimeUnit.SECONDS.toMillis(60) else duration - } - - /** - * - 自车行驶超过此长度,会刷新自车周边信息,单位为`米` - * - 可选项 - * - 通过[Builder.distanceForTriggerRefresh]设置 - */ - val distanceForTriggerRefresh: Float by lazy { - val distance = builder.distanceForTriggerRefresh - if (distance == null || distance <= 0) 200f else distance - } - - internal fun newBuilder() = Builder(this) - - class Builder { - - internal var context: Context? = null - - internal var executor: Executor? = null - - internal var loggable: Boolean = false - - internal var staticParams: Map? = null - - internal var aiCloudConfig: MoGoAiCloudClientConfig? = null - - internal var durationForTriggerRefresh: Long? = null - - internal var baseUrl: String? = null - - internal var distanceForTriggerRefresh: Float? = null - - constructor() - - internal constructor(config: V2XConfig) { - context = config.context - executor = config.executor - loggable = config.loggable - baseUrl = config.baseUrl - staticParams = config.staticParams - aiCloudConfig = config.aiCloudConfig - durationForTriggerRefresh = config.durationForTriggerRefresh - distanceForTriggerRefresh = config.distanceForTriggerRefresh - } - - /** - * 应用上下文,此参数为必选项,不设置会抛异常 - */ - fun context(context: Context) = apply { this.context = context } - - /** - * 是否开启日志 - */ - fun loggable(loggable: Boolean) = apply { this.loggable = loggable } - - /** - * 公共参数列表 - */ - fun staticParams(params: Map) = apply { this.staticParams = params } - - /** - * 网络请求线程池,如未设置,会使用内置的线程池[Executors.IO] - */ - fun executor(executor: Executor): Builder = apply { - if (this.executor != null) { - throw IllegalArgumentException("io executor has been initialized, don't set repeatedly.") - } - this.executor = executor - } - - /** - * 刷新周边信息的时间间隔 - * @param duration 时长 - * @param unit 时间单位 - */ - fun durationForTriggerRefresh(duration: Long, unit: TimeUnit = TimeUnit.SECONDS) = apply { this.durationForTriggerRefresh = unit.toMillis(duration) } - - /** - * @param distance 超过此距离会触发刷新周边道路信息,单位为米 - */ - fun distanceForTriggerRefresh(distance: Float) = apply { this.distanceForTriggerRefresh = distance } - - /** - * 云平台配置信息,此参数为必选项,不设置会抛异常 - * @param config 云平台配置 - */ - fun aiCloudConfig(config: MoGoAiCloudClientConfig) = apply { this.aiCloudConfig = config } - - /** - * 云平台baseUrl - * @param baseUrl 云平台baseUrl - */ - fun baseUrl(baseUrl: String) = apply { this.baseUrl = baseUrl } - - fun build() : V2XConfig = V2XConfig(this) - } -} \ 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/internal/event/V2XEvent.kt b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/event/V2XEvent.kt deleted file mode 100644 index 40bf0b65c4..0000000000 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/event/V2XEvent.kt +++ /dev/null @@ -1,75 +0,0 @@ -package com.mogo.eagle.core.function.v2x.internal.event - -import com.mogo.eagle.core.function.v2x.internal.data.* -import roadwork.Road.RW_PB - -sealed class V2XEvent { - - /** - * 长链-路口碰撞预警、盲区预警等通用Bean - */ - class ForwardsWarning(val type: Int = 404000, val data: V2XAdvanceWarning): V2XEvent() { - override fun toString(): String { - return "ForwardsWarning(type=$type, data=$data)" - } - } - - /** - * 长链-最优推荐线种 - */ - class OptimalRoute(val type: Int = 402000, val data: V2XOptimalRoute): V2XEvent() { - override fun toString(): String { - return "OptimalRoute(type=$type, data=$data)" - } - } - - /** - * 长链-预警目标物 - */ - class Warning(val type: Int = 401018, val data: V2XWarningTarget): V2XEvent() { - override fun toString(): String { - return "Warning(type=$type, data=$data)" - } - } - - /** - * 长链-道路事件 - */ - class Road(val type: Int = 401012, val data: V2XMarkerCardResult): V2XEvent() { - override fun toString(): String { - return "Road(type=$type, data=$data)" - } - } - - /** - * 长链-道路事件云识别 - */ - class RoadAI(val type: Int = 503000, val data: RW_PB): V2XEvent() { - - override fun toString(): String { - return "RoadAI(type=$type, data=$data)" - } - } - - - /** - * 短链-道路标记事件 - */ - class Marker(val data: V2XMarkerResponse): V2XEvent() { - - override fun toString(): String { - return "Marker(data=$data)" - } - } - - - /** - * 长链-道路事件扩展数据结构 - */ - class RoadEventX(val type: Int = 70001, val data: V2XRoadXData): V2XEvent() { - - override fun toString(): String { - return "RoadEventX(type=$type, data=$data)" - } - } -} diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/executor/Executors.kt b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/executor/Executors.kt deleted file mode 100755 index aed7f4549c..0000000000 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/executor/Executors.kt +++ /dev/null @@ -1,35 +0,0 @@ -package com.mogo.eagle.core.function.v2x.internal.executor - -import java.util.concurrent.* -import java.util.concurrent.atomic.AtomicLong -import kotlin.math.max -import kotlin.math.min - - -internal object Executors { - - private val group: ThreadGroup by lazy { - ThreadGroup("v2x-group") - } - - private val CPU_CORE_COUNT by lazy { - Runtime.getRuntime().availableProcessors() - } - - private val DEFAULT_CORE_COUNT by lazy { - (max(2, min(CPU_CORE_COUNT - 1, 6)) * 3) + 1 - } - - private const val DEFAULT_MAX_COUNT_4_IO = 128 - - val IO by lazy { - val idGenerator = AtomicLong(0) - ThreadPoolExecutor( - DEFAULT_CORE_COUNT, DEFAULT_MAX_COUNT_4_IO, 30, TimeUnit.SECONDS, LinkedBlockingDeque() - ) { r -> - Thread(group, r).apply { - name = "io-thread-${idGenerator.getAndIncrement()}" - } - } - } -} \ 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/internal/http/V2XRefreshModel.kt b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/http/V2XRefreshModel.kt index f3e8a4f56a..d24d8004c9 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/http/V2XRefreshModel.kt +++ b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/http/V2XRefreshModel.kt @@ -4,14 +4,25 @@ import com.elegant.network.utils.GsonUtil import com.elegant.network.utils.SignUtil import com.elegant.utils.CommonUtils import com.mogo.cloud.network.RetrofitFactory +import com.mogo.cloud.passport.MoGoAiCloudClientConfig +import com.mogo.commons.AbsMogoApplication import com.mogo.commons.constants.HostConst -import com.mogo.eagle.core.function.v2x.internal.V2XManager -import com.mogo.eagle.core.function.v2x.internal.config.V2XConfig -import com.mogo.eagle.core.function.v2x.internal.data.V2XLocation -import com.mogo.eagle.core.function.v2x.internal.data.V2XMarkerResponse +import com.mogo.commons.network.ParamsUtil +import com.mogo.eagle.core.data.enums.DataSourceType +import com.mogo.eagle.core.data.msgbox.MsgBoxBean +import com.mogo.eagle.core.data.msgbox.MsgBoxType +import com.mogo.eagle.core.data.msgbox.V2XMsg +import com.mogo.eagle.core.data.v2x.V2XEventData +import com.mogo.eagle.core.data.v2x.V2XLocation +import com.mogo.eagle.core.data.v2x.V2XMarkerResponse +import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxManager +import com.mogo.eagle.core.function.v2x.events.V2XPoiLoader import com.mogo.eagle.core.function.v2x.internal.http.api.V2XApiService import com.mogo.eagle.core.function.v2x.internal.http.body.V2XRefreshEntity import com.mogo.eagle.core.function.v2x.internal.http.callback.IV2XRefreshCallback +import com.mogo.eagle.core.network.MoGoRetrofitFactory +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger +import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant import com.mogo.eagle.core.utilcode.util.DeviceUtils import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.disposables.Disposable @@ -21,17 +32,18 @@ internal class V2XRefreshModel { companion object { + private const val TAG = "V2XRefreshModel" + fun querySnapshot( longitude: Double, latitude: Double, callback: IV2XRefreshCallback? ): Disposable? { - val config = V2XManager.getConfig() val retrofit = RetrofitFactory.getInstance(HostConst.getEagleHost()) ?: return null return retrofit .create(V2XApiService::class.java) - .querySnapshotSync(buildParams(longitude, latitude, config)) - .subscribeOn(Schedulers.from(config.executor)) + .querySnapshotSync(buildParams(longitude, latitude)) + .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe({ data -> if (data == null) { @@ -51,9 +63,8 @@ internal class V2XRefreshModel { private fun buildParams( longitude: Double, latitude: Double, - config: V2XConfig ): Map = mutableMapOf().apply { - putAll(config.staticParams.let { + putAll(ParamsUtil.getStaticParams().let { val handled = mutableMapOf() it.asIterable().forEach { itx -> val value = itx.value @@ -63,10 +74,10 @@ internal class V2XRefreshModel { } handled }) - this["netType"] = CommonUtils.getNetworkType(config.context) + this["netType"] = CommonUtils.getNetworkType(AbsMogoApplication.getApp()) this["cellId"] = DeviceUtils.getCellId() ?: "" - this["sn"] = config.aiCloudConfig.sn - this["ticket"] = config.aiCloudConfig.token + this["sn"] = MoGoAiCloudClientConfig.getInstance().sn + this["ticket"] = MoGoAiCloudClientConfig.getInstance().token this["sig"] = SignUtil.createSign(this, "JGjZx6") this["data"] = GsonUtil.jsonFromObject(V2XRefreshEntity().apply { limit = 999 @@ -79,6 +90,34 @@ internal class V2XRefreshModel { viewPush = true }) } + + private var v2xEventDisposable: Disposable? = null + + fun roadEventDispose(){ + if (v2xEventDisposable != null && !v2xEventDisposable!!.isDisposed) { + v2xEventDisposable!!.dispose() + } + } + + fun getRoadEvents(lineId: String, sn: String, onSuccess:((List?) -> Unit)){ + v2xEventDisposable = MoGoRetrofitFactory.getInstance(HostConst.getHost()) + .create(V2XApiService::class.java) + .queryAllV2XEventsByLineId(lineId, sn) + .map { + if (it.code == 200 || it.code == 0) { + CallerLogger.d(SceneConstant.M_V2X + TAG, "请求成功,size为:${it.result?.v2XEventList?.size}") + return@map it.result?.v2XEventList + } else { + CallerLogger.d(SceneConstant.M_V2X + TAG, "请求失败,code为:${it.code}") + return@map ArrayList() + } + } + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe { + onSuccess.invoke(it) + } + } } diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/http/api/V2XApiService.kt b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/http/api/V2XApiService.kt index 1b9bc293db..2ebb219093 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/http/api/V2XApiService.kt +++ b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/http/api/V2XApiService.kt @@ -1,14 +1,18 @@ package com.mogo.eagle.core.function.v2x.internal.http.api -import com.mogo.eagle.core.function.v2x.internal.data.V2XMarkerResponse +import com.mogo.eagle.core.data.v2x.V2XEventResult +import com.mogo.eagle.core.data.v2x.V2XMarkerResponse import io.reactivex.Maybe -import retrofit2.http.FieldMap -import retrofit2.http.FormUrlEncoded -import retrofit2.http.POST +import io.reactivex.Observable +import retrofit2.http.* internal interface V2XApiService { @FormUrlEncoded @POST("eagle-eye-dns/yycp-launcherSnapshot/launcherSnapshot/querySnapshotSync") fun querySnapshotSync(@FieldMap parameters: Map): Maybe + + @GET("/eagleEye-mis/config/queryV2NInformation") + fun queryAllV2XEventsByLineId(@Query("lineId") lineId: String, @Query("sn") sn: 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/internal/http/body/V2XRefreshEntity.kt b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/http/body/V2XRefreshEntity.kt index 82d5661ab5..d99ce1dac4 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/http/body/V2XRefreshEntity.kt +++ b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/http/body/V2XRefreshEntity.kt @@ -1,7 +1,7 @@ package com.mogo.eagle.core.function.v2x.internal.http.body import androidx.annotation.Keep -import com.mogo.eagle.core.function.v2x.internal.data.V2XLocation +import com.mogo.eagle.core.data.v2x.V2XLocation /** * 刷新地图信息接口 diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/logger/V2XLogger.kt b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/logger/V2XLogger.kt deleted file mode 100644 index 58463eb45c..0000000000 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/logger/V2XLogger.kt +++ /dev/null @@ -1,24 +0,0 @@ -package com.mogo.eagle.core.function.v2x.internal.logger - -import android.util.Log - -internal object V2XLogger { - - var loggable: Boolean = false - - fun v(tag: String, msg: String) = if (loggable) Log.v(tag, msg) else 0 - - fun d(tag: String, msg: String) = if (loggable) Log.d(tag, msg) else 0 - - fun i(tag: String, msg: String) = if (loggable) Log.i(tag, msg) else 0 - - fun w(tag: String, msg: String) = if (loggable) Log.w(tag, msg) else 0 - - fun e(tag: String, msg: String, t: Throwable? = null) = if (loggable) { - if (t == null) { - Log.e(tag, msg) - } else { - Log.e(tag, msg, t) - } - } else 0 -} \ 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/internal/socket/V2XMessageListener_401012.kt b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/socket/V2XMessageListener_401012.kt deleted file mode 100644 index 23ca38f148..0000000000 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/socket/V2XMessageListener_401012.kt +++ /dev/null @@ -1,27 +0,0 @@ -package com.mogo.eagle.core.function.v2x.internal.socket - -import com.mogo.cloud.socket.IMogoCloudSocketOnMessageListener -import com.mogo.eagle.core.function.v2x.internal.V2XManager -import com.mogo.eagle.core.function.v2x.internal.callback.IV2XCallback -import com.mogo.eagle.core.function.v2x.internal.data.V2XMarkerCardResult -import com.mogo.eagle.core.function.v2x.internal.event.V2XEvent -import com.mogo.eagle.core.function.v2x.internal.logger.V2XLogger - -internal class V2XMessageListener_401012(val cbs: Iterable?): IMogoCloudSocketOnMessageListener { - - override fun target(msgType: Int): Class = V2XMarkerCardResult::class.java - - override fun onMsgReceived(msgType: Int, data: V2XMarkerCardResult?) { - if (msgType != 401012) { - return - } - if (data == null) { - V2XLogger.i(V2XManager.TAG, "V2XMessageListener_401012:message is null!") - return - } - V2XLogger.i(V2XManager.TAG, "V2XMessageListener_401012:$data") - cbs?.forEach { - it.onAck(V2XEvent.Road(data = data)) - } - } -} \ 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/internal/socket/V2XMessageListener_401018.kt b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/socket/V2XMessageListener_401018.kt deleted file mode 100644 index a7cf8e8933..0000000000 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/socket/V2XMessageListener_401018.kt +++ /dev/null @@ -1,27 +0,0 @@ -package com.mogo.eagle.core.function.v2x.internal.socket - -import com.mogo.cloud.socket.IMogoCloudSocketOnMessageListener -import com.mogo.eagle.core.function.v2x.internal.V2XManager -import com.mogo.eagle.core.function.v2x.internal.callback.IV2XCallback -import com.mogo.eagle.core.function.v2x.internal.event.V2XEvent -import com.mogo.eagle.core.function.v2x.internal.data.V2XWarningTarget -import com.mogo.eagle.core.function.v2x.internal.logger.V2XLogger - -internal class V2XMessageListener_401018(val cbs: Iterable?): IMogoCloudSocketOnMessageListener { - - override fun target(msgType: Int): Class = V2XWarningTarget::class.java - - override fun onMsgReceived(msgType: Int, data: V2XWarningTarget?) { - if (msgType != 401018) { - return - } - if (data == null) { - V2XLogger.i(V2XManager.TAG, "V2XMessageListener_401018:message is null!") - return - } - V2XLogger.i(V2XManager.TAG, "V2XMessageListener_401018:$data") - cbs?.forEach { - it.onAck(V2XEvent.Warning(data = data)) - } - } -} \ 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/internal/socket/V2XMessageListener_402000.kt b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/socket/V2XMessageListener_402000.kt deleted file mode 100644 index e5b94036de..0000000000 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/socket/V2XMessageListener_402000.kt +++ /dev/null @@ -1,27 +0,0 @@ -package com.mogo.eagle.core.function.v2x.internal.socket - -import com.mogo.cloud.socket.IMogoCloudSocketOnMessageListener -import com.mogo.eagle.core.function.v2x.internal.V2XManager -import com.mogo.eagle.core.function.v2x.internal.callback.IV2XCallback -import com.mogo.eagle.core.function.v2x.internal.data.V2XOptimalRoute -import com.mogo.eagle.core.function.v2x.internal.event.V2XEvent -import com.mogo.eagle.core.function.v2x.internal.logger.V2XLogger - -internal class V2XMessageListener_402000(val cbs: Iterable?): IMogoCloudSocketOnMessageListener { - - override fun target(msgType: Int): Class = V2XOptimalRoute::class.java - - override fun onMsgReceived(msgType: Int, data: V2XOptimalRoute?) { - if (msgType != 402000) { - return - } - if (data == null) { - V2XLogger.i(V2XManager.TAG, "V2XMessageListener_402000:message is null!") - return - } - V2XLogger.i(V2XManager.TAG, "V2XMessageListener_402000:$data") - cbs?.forEach { - it.onAck(V2XEvent.OptimalRoute(data = data)) - } - } -} \ 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/internal/socket/V2XMessageListener_404000.kt b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/socket/V2XMessageListener_404000.kt deleted file mode 100644 index c8b402cedd..0000000000 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/socket/V2XMessageListener_404000.kt +++ /dev/null @@ -1,27 +0,0 @@ -package com.mogo.eagle.core.function.v2x.internal.socket - -import com.mogo.cloud.socket.IMogoCloudSocketOnMessageListener -import com.mogo.eagle.core.function.v2x.internal.V2XManager -import com.mogo.eagle.core.function.v2x.internal.callback.IV2XCallback -import com.mogo.eagle.core.function.v2x.internal.data.V2XAdvanceWarning -import com.mogo.eagle.core.function.v2x.internal.event.V2XEvent -import com.mogo.eagle.core.function.v2x.internal.logger.V2XLogger - -internal class V2XMessageListener_404000(val cbs: Iterable?): IMogoCloudSocketOnMessageListener { - - override fun target(msgType: Int): Class = V2XAdvanceWarning::class.java - - override fun onMsgReceived(msgType: Int, data: V2XAdvanceWarning?) { - if (msgType != 404000) { - return - } - if (data == null) { - V2XLogger.i(V2XManager.TAG, "V2XMessageListener_404000:message is null!") - return - } - V2XLogger.i(V2XManager.TAG, "V2XMessageListener_404000:$data") - cbs?.forEach { - it.onAck(V2XEvent.ForwardsWarning(data = data)) - } - } -} \ 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/internal/socket/V2XMessageListener_503000.kt b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/socket/V2XMessageListener_503000.kt deleted file mode 100644 index dbfc7f7ff4..0000000000 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/socket/V2XMessageListener_503000.kt +++ /dev/null @@ -1,27 +0,0 @@ -package com.mogo.eagle.core.function.v2x.internal.socket - -import com.mogo.cloud.socket.IMogoCloudSocketOnMessageListener -import com.mogo.eagle.core.function.v2x.internal.V2XManager -import com.mogo.eagle.core.function.v2x.internal.callback.IV2XCallback -import com.mogo.eagle.core.function.v2x.internal.event.V2XEvent.RoadAI -import com.mogo.eagle.core.function.v2x.internal.logger.V2XLogger -import roadwork.Road.RW_PB - -internal class V2XMessageListener_503000(val cbs: Iterable?): IMogoCloudSocketOnMessageListener { - - override fun target(msgType: Int): Class = RW_PB::class.java - - override fun onMsgReceived(msgType: Int, data: RW_PB?) { - if (msgType != 503000) { - return - } - if (data == null) { - V2XLogger.i(V2XManager.TAG, "V2XMessageListener_503000:message is null!") - return - } - V2XLogger.i(V2XManager.TAG, "V2XMessageListener_503000:$data") - cbs?.forEach { - it.onAck(RoadAI(data = data)) - } - } -} \ 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/internal/socket/V2XMessageListener_70001.kt b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/socket/V2XMessageListener_70001.kt deleted file mode 100644 index 320b6529d4..0000000000 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/socket/V2XMessageListener_70001.kt +++ /dev/null @@ -1,27 +0,0 @@ -package com.mogo.eagle.core.function.v2x.internal.socket - -import com.mogo.cloud.socket.IMogoCloudSocketOnMessageListener -import com.mogo.eagle.core.function.v2x.internal.V2XManager -import com.mogo.eagle.core.function.v2x.internal.callback.IV2XCallback -import com.mogo.eagle.core.function.v2x.internal.data.V2XRoadXData -import com.mogo.eagle.core.function.v2x.internal.event.V2XEvent -import com.mogo.eagle.core.function.v2x.internal.logger.V2XLogger - -internal class V2XMessageListener_70001(val cbs: Iterable?): IMogoCloudSocketOnMessageListener { - - override fun target(msgType: Int): Class = V2XRoadXData::class.java - - override fun onMsgReceived(msgType: Int, data: V2XRoadXData?) { - if (msgType != 70001) { - return - } - if (data == null) { - V2XLogger.i(V2XManager.TAG, "V2XMessageListener_70001:message is null!") - return - } - V2XLogger.i(V2XManager.TAG, "V2XMessageListener_70001:$data") - cbs?.forEach { - it.onAck(V2XEvent.RoadEventX(data = data)) - } - } -} \ 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/road/V2XEventServiceApi.kt b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/road/V2XEventServiceApi.kt deleted file mode 100644 index 5b73866375..0000000000 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/road/V2XEventServiceApi.kt +++ /dev/null @@ -1,11 +0,0 @@ -package com.mogo.eagle.core.function.v2x.road - -import io.reactivex.Observable -import retrofit2.http.GET -import retrofit2.http.Query - -interface V2XEventServiceApi { - - @GET("/eagleEye-mis/config/queryV2NInformation") - fun queryAllV2XEventsByLineId(@Query("lineId") lineId: String, @Query("sn") sn: String): Observable -} \ No newline at end of file diff --git a/core/mogo-core-data/build.gradle b/core/mogo-core-data/build.gradle index 4bda16c773..6bbadbc935 100644 --- a/core/mogo-core-data/build.gradle +++ b/core/mogo-core-data/build.gradle @@ -4,6 +4,7 @@ plugins { id 'kotlin-android-extensions' id 'kotlin-kapt' id 'com.alibaba.arouter' + id 'com.google.protobuf' } android { compileSdkVersion rootProject.ext.android.compileSdkVersion @@ -46,6 +47,19 @@ android { targetCompatibility JavaVersion.VERSION_1_8 } + protobuf { + protoc { + artifact = rootProject.ext.dependencies.protoc + } + generateProtoTasks { + all().each { task -> + task.builtins { + java {} + } + } + } + } + } dependencies { @@ -61,6 +75,9 @@ dependencies { implementation rootProject.ext.dependencies.androidxroomktx kapt rootProject.ext.dependencies.androidxroomcompiler + implementation rootProject.ext.dependencies.protobuf_java + implementation rootProject.ext.dependencies.protobuf_java_util + if (Boolean.valueOf(USE_MAVEN_PACKAGE)) { implementation rootProject.ext.dependencies.mogo_core_res } else { diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/constants/MogoServicePaths.java b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/constants/MogoServicePaths.java index f319c9556a..c75a31e8cd 100644 --- a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/constants/MogoServicePaths.java +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/constants/MogoServicePaths.java @@ -54,6 +54,12 @@ public class MogoServicePaths { @Keep public static final String PATH_AUTO_PILOT = "/auto_pilot/api"; + /** + * AiCloud socket 数据透出业务模块 + */ + @Keep + public static final String PATH_AI_CLOUD = "/ai_cloud/api"; + /** * 业务Biz 模块 */ @@ -93,7 +99,6 @@ public class MogoServicePaths { @Keep public static final String PATH_DATA_CENTER_MODULE = "/data_center/api"; - @Keep public static final String PATH_IDENTIFY = "/map/identify"; diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/data/V2XAdvanceWarning.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/v2x/V2XAdvanceWarning.kt similarity index 97% rename from core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/data/V2XAdvanceWarning.kt rename to core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/v2x/V2XAdvanceWarning.kt index df71ca8175..64c2962c37 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/data/V2XAdvanceWarning.kt +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/v2x/V2XAdvanceWarning.kt @@ -1,4 +1,4 @@ -package com.mogo.eagle.core.function.v2x.internal.data +package com.mogo.eagle.core.data.v2x import androidx.annotation.Keep import java.io.Serializable diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/data/V2XBaseData.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/v2x/V2XBaseData.kt similarity index 64% rename from core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/data/V2XBaseData.kt rename to core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/v2x/V2XBaseData.kt index d7df5b04f0..4f2b36d406 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/data/V2XBaseData.kt +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/v2x/V2XBaseData.kt @@ -1,4 +1,4 @@ -package com.mogo.eagle.core.function.v2x.internal.data +package com.mogo.eagle.core.data.v2x open class V2XBaseData { diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/v2x/V2XEvent.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/v2x/V2XEvent.kt index c9c1bbb61e..322e89b0e1 100644 --- a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/v2x/V2XEvent.kt +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/v2x/V2XEvent.kt @@ -1,59 +1,70 @@ package com.mogo.eagle.core.data.v2x -import androidx.annotation.Keep +sealed class V2XEvent { -import com.google.gson.annotations.SerializedName + /** + * 长链-路口碰撞预警、盲区预警等通用Bean + */ + class ForwardsWarning(val type: Int = 404000, val data: V2XAdvanceWarning): V2XEvent() { + override fun toString(): String { + return "ForwardsWarning(type=$type, data=$data)" + } + } -@Keep -data class V2XEvent( - @SerializedName("receiveTime") - var receiveTime: Long, + /** + * 长链-最优推荐线种 + */ + class OptimalRoute(val type: Int = 402000, val data: V2XOptimalRoute): V2XEvent() { + override fun toString(): String { + return "OptimalRoute(type=$type, data=$data)" + } + } - @SerializedName("detectTime") - var detectTime: Long, + /** + * 长链-预警目标物 + */ + class Warning(val type: Int = 401018, val data: V2XWarningTarget): V2XEvent() { + override fun toString(): String { + return "Warning(type=$type, data=$data)" + } + } - @SerializedName("id") - var id: String?, + /** + * 长链-道路事件 + */ + class Road(val type: Int = 401012, val data: V2XMarkerCardResult): V2XEvent() { + override fun toString(): String { + return "Road(type=$type, data=$data)" + } + } - @SerializedName("center") - var center: Center?, + /** + * 长链-道路事件云识别 + */ + class RoadAI(val type: Int = 503000, val data: roadwork.Road.RW_PB): V2XEvent() { - @SerializedName("centerRoad") - var centerRoad: CenterRoad?, + override fun toString(): String { + return "RoadAI(type=$type, data=$data)" + } + } - @SerializedName("radius") - var radius: Double, + /** + * 短链-道路标记事件 + */ + class Marker(val data: V2XMarkerResponse): V2XEvent() { - @SerializedName("poiType") - var poiType: String?, + override fun toString(): String { + return "Marker(data=$data)" + } + } - @SerializedName("coordinateType") - var coordinateType:Int? = null -) + /** + * 长链-道路事件扩展数据结构 + */ + class RoadEventX(val type: Int = 70001, val data: V2XRoadXData): V2XEvent() { -@Keep -data class Center( - @SerializedName("lat") - var lat: Double, - - @SerializedName("lon") - var lon: Double -) - -@Keep -data class CenterRoad( - @SerializedName("bearing") - var bearing: Double, - - @SerializedName("laneNo") - var laneNo: Long, - - @SerializedName("roadId") - var roadId: String?, - - @SerializedName("roadName") - var roadName: String?, - - @SerializedName("tileId") - var tileId: Long -) \ No newline at end of file + override fun toString(): String { + return "RoadEventX(type=$type, data=$data)" + } + } +} diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/road/V2XEventResult.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/v2x/V2XEventResult.kt similarity index 87% rename from core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/road/V2XEventResult.kt rename to core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/v2x/V2XEventResult.kt index 7a98c26ab4..8d444bedc0 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/road/V2XEventResult.kt +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/v2x/V2XEventResult.kt @@ -1,4 +1,4 @@ -package com.mogo.eagle.core.function.v2x.road +package com.mogo.eagle.core.data.v2x import androidx.annotation.Keep @@ -15,11 +15,11 @@ data class V2XEventResult ( @Keep data class Result( @SerializedName("eventList") - var v2XEventList: List? + var v2XEventList: List? ) @Keep -data class V2XEvent( +data class V2XEventData( @SerializedName("receiveTime") var receiveTime: Long, @@ -33,7 +33,7 @@ data class V2XEvent( var center: Center?, @SerializedName("centerRoad") - var centerRoad: CenterRoad?, + var centerRoad: CenterRoadData?, @SerializedName("radius") var radius: Double, @@ -55,7 +55,7 @@ data class Center( ) @Keep -data class CenterRoad( +data class CenterRoadData( @SerializedName("bearing") var bearing: Double, diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/data/V2XLocation.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/v2x/V2XLocation.kt similarity index 87% rename from core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/data/V2XLocation.kt rename to core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/v2x/V2XLocation.kt index 3ce50a38f0..9b09a721c6 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/data/V2XLocation.kt +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/v2x/V2XLocation.kt @@ -1,4 +1,4 @@ -package com.mogo.eagle.core.function.v2x.internal.data +package com.mogo.eagle.core.data.v2x import androidx.annotation.Keep import java.io.Serializable diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/data/V2XMarkerCardResult.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/v2x/V2XMarkerCardResult.kt similarity index 99% rename from core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/data/V2XMarkerCardResult.kt rename to core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/v2x/V2XMarkerCardResult.kt index a486687d10..df4a3c2f5e 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/data/V2XMarkerCardResult.kt +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/v2x/V2XMarkerCardResult.kt @@ -1,4 +1,4 @@ -package com.mogo.eagle.core.function.v2x.internal.data +package com.mogo.eagle.core.data.v2x import androidx.annotation.Keep import com.mogo.eagle.core.data.map.entity.MarkerExploreWay diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/data/V2XMarkerResponse.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/v2x/V2XMarkerResponse.kt similarity index 80% rename from core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/data/V2XMarkerResponse.kt rename to core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/v2x/V2XMarkerResponse.kt index 790bd71b0a..ee36ee0c9b 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/data/V2XMarkerResponse.kt +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/v2x/V2XMarkerResponse.kt @@ -1,8 +1,7 @@ -package com.mogo.eagle.core.function.v2x.internal.data +package com.mogo.eagle.core.data.v2x import androidx.annotation.Keep import com.elegant.network.BaseResp -import com.mogo.eagle.core.function.v2x.internal.data.V2XMarkerCardResult import java.io.Serializable @Keep diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/data/V2XOptimalRoute.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/v2x/V2XOptimalRoute.kt similarity index 89% rename from core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/data/V2XOptimalRoute.kt rename to core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/v2x/V2XOptimalRoute.kt index dd27d302af..414b29895e 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/data/V2XOptimalRoute.kt +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/v2x/V2XOptimalRoute.kt @@ -1,7 +1,6 @@ -package com.mogo.eagle.core.function.v2x.internal.data +package com.mogo.eagle.core.data.v2x import androidx.annotation.Keep -import com.mogo.eagle.core.function.v2x.internal.data.V2XLocation import java.io.Serializable /** diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/data/V2XRoadXEvent.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/v2x/V2XRoadXEvent.kt similarity index 95% rename from core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/data/V2XRoadXEvent.kt rename to core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/v2x/V2XRoadXEvent.kt index a692c2dfa7..08882f868a 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/data/V2XRoadXEvent.kt +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/v2x/V2XRoadXEvent.kt @@ -1,4 +1,4 @@ -package com.mogo.eagle.core.function.v2x.internal.data +package com.mogo.eagle.core.data.v2x import androidx.annotation.Keep diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/data/V2XWarningTarget.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/v2x/V2XWarningTarget.kt similarity index 96% rename from core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/data/V2XWarningTarget.kt rename to core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/v2x/V2XWarningTarget.kt index 8173032600..0dcecfaa99 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/data/V2XWarningTarget.kt +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/v2x/V2XWarningTarget.kt @@ -1,7 +1,6 @@ -package com.mogo.eagle.core.function.v2x.internal.data +package com.mogo.eagle.core.data.v2x import androidx.annotation.Keep -import com.mogo.eagle.core.function.v2x.internal.data.V2XLocation import java.io.Serializable /** diff --git a/core/function-impl/mogo-core-function-v2x/src/main/proto/road.proto b/core/mogo-core-data/src/main/proto/road.proto similarity index 100% rename from core/function-impl/mogo-core-function-v2x/src/main/proto/road.proto rename to core/mogo-core-data/src/main/proto/road.proto diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/v2x/IFuncBizProvider.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/biz/IFuncBizProvider.kt similarity index 65% rename from core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/v2x/IFuncBizProvider.kt rename to core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/biz/IFuncBizProvider.kt index d25c01434a..594d2cbfeb 100644 --- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/v2x/IFuncBizProvider.kt +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/biz/IFuncBizProvider.kt @@ -1,7 +1,7 @@ -package com.mogo.eagle.core.function.api.v2x +package com.mogo.eagle.core.function.api.biz import com.mogo.eagle.core.data.map.Infrastructure -import com.mogo.eagle.core.data.v2x.V2XEvent +import com.mogo.eagle.core.data.v2x.V2XEventData interface IFuncBizProvider { /** @@ -12,5 +12,5 @@ interface IFuncBizProvider { /** * 根据lineId获取整条道路的V2X事件 */ - fun onV2XEvents(v2xEvents: List?) {} + fun onV2XEvents(v2XEventData: List?) {} } \ No newline at end of file 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 index 89cf1c82cc..ac98d5713f 100644 --- 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 @@ -1,6 +1,25 @@ package com.mogo.eagle.core.function.api.cloud -interface IMoGoCloudListener { +import com.mogo.eagle.core.data.v2x.V2XEvent - fun tokenGot(token: String, sn: String) +interface IMoGoCloudListener{ + + fun tokenGot(token: String, sn: String){} + + /** + * 获取到V2X事件成功回调 + * @param event + * - 参数说明:目前此参数支持以下类型 + * - [V2XEvent.ForwardsWarning]: 路口碰撞预警、盲区预警等预警事件, 数据实体取自[V2XEvent.ForwardsWarning.data] + * - [V2XEvent.Road]: 道路事件, 数据实体取自[V2XEvent.Road.data] + * - [V2XEvent.Warning]: 预警目标物事件, 数据实体取自[V2XEvent.Warning.data] + * - [V2XEvent.Marker]: 道路标记事件, 数据实体取自[V2XEvent.Marker.data] + */ + fun onAck(event: V2XEvent){} + + /** + * V2X事件获取过程中,出现的异常信息,用于问题排查 + * @param msg 异常信息 + */ + fun onFail(msg: String){} } \ No newline at end of file diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/msgbox/IMsgBoxEventListener.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/datacenter/msgbox/IMsgBoxEventListener.kt similarity index 91% rename from core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/msgbox/IMsgBoxEventListener.kt rename to core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/datacenter/msgbox/IMsgBoxEventListener.kt index 8cd6469ae6..b6568d1187 100644 --- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/msgbox/IMsgBoxEventListener.kt +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/datacenter/msgbox/IMsgBoxEventListener.kt @@ -1,4 +1,4 @@ -package com.mogo.eagle.core.function.api.msgbox +package com.mogo.eagle.core.function.api.datacenter.msgbox import com.mogo.eagle.core.data.msgbox.MsgBoxBean diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/msgbox/IMsgBoxListener.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/datacenter/msgbox/IMsgBoxListener.kt similarity index 82% rename from core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/msgbox/IMsgBoxListener.kt rename to core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/datacenter/msgbox/IMsgBoxListener.kt index f09b416e68..bcd01a377e 100644 --- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/msgbox/IMsgBoxListener.kt +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/datacenter/msgbox/IMsgBoxListener.kt @@ -1,4 +1,4 @@ -package com.mogo.eagle.core.function.api.msgbox +package com.mogo.eagle.core.function.api.datacenter.msgbox import com.mogo.eagle.core.data.msgbox.MsgBoxBean import com.mogo.eagle.core.data.msgbox.MsgCategory diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/msgbox/IMsgBoxProvider.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/datacenter/msgbox/IMsgBoxProvider.kt similarity index 93% rename from core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/msgbox/IMsgBoxProvider.kt rename to core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/datacenter/msgbox/IMsgBoxProvider.kt index 9dbac58bbd..78007ffe72 100644 --- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/msgbox/IMsgBoxProvider.kt +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/datacenter/msgbox/IMsgBoxProvider.kt @@ -1,4 +1,4 @@ -package com.mogo.eagle.core.function.api.msgbox +package com.mogo.eagle.core.function.api.datacenter.msgbox import android.content.Context import com.mogo.eagle.core.data.msgbox.MsgBoxBean diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/v2x/ILimitingVelocityListener.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/datacenter/union/ILimitingVelocityListener.kt similarity index 82% rename from core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/v2x/ILimitingVelocityListener.kt rename to core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/datacenter/union/ILimitingVelocityListener.kt index c47ab242d8..425d43aa73 100644 --- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/v2x/ILimitingVelocityListener.kt +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/datacenter/union/ILimitingVelocityListener.kt @@ -1,4 +1,4 @@ -package com.mogo.eagle.core.function.api.v2x +package com.mogo.eagle.core.function.api.datacenter.union import com.mogo.eagle.core.data.enums.DataSourceType diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/v2x/IMoGoTrafficLightListener.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/datacenter/union/IMoGoTrafficLightListener.kt similarity index 96% rename from core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/v2x/IMoGoTrafficLightListener.kt rename to core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/datacenter/union/IMoGoTrafficLightListener.kt index 216a936e78..195217b4ae 100644 --- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/v2x/IMoGoTrafficLightListener.kt +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/datacenter/union/IMoGoTrafficLightListener.kt @@ -1,4 +1,4 @@ -package com.mogo.eagle.core.function.api.v2x +package com.mogo.eagle.core.function.api.datacenter.union import com.mogo.eagle.core.data.enums.DataSourceType import com.mogo.eagle.core.data.enums.TrafficLightEnum diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerChassisLocationGCJ02ListenerManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerChassisLocationGCJ02ListenerManager.kt index 7fd0976c7e..1edd553d64 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerChassisLocationGCJ02ListenerManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerChassisLocationGCJ02ListenerManager.kt @@ -16,7 +16,7 @@ import com.mogo.eagle.core.utilcode.util.TimeUtils */ object CallerChassisLocationGCJ02ListenerManager : CallerBase() { - val TAG = "CallerChassisLocationGCJ20ListenerManager" + private const val TAG = "CallerChassisLocationGCJ20ListenerManager" @Volatile private var mGnssInfo: MogoLocation? = null @@ -36,6 +36,8 @@ object CallerChassisLocationGCJ02ListenerManager : CallerBase() { @@ -24,10 +24,10 @@ object CallerFuncBizListenerManager: CallerBase() { } @MainThread - fun invokeV2XEvents(v2xEvents: List?) { + fun invokeV2XEvents(v2XEventData: List?) { M_LISTENERS.forEach { val listener = it.value - listener.onV2XEvents(v2xEvents) + listener.onV2XEvents(v2XEventData) } } } \ 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 index ca770c35ca..bed5a7977a 100644 --- 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 @@ -1,61 +1,26 @@ package com.mogo.eagle.core.function.call.cloud +import com.mogo.eagle.core.data.v2x.V2XEvent import com.mogo.eagle.core.function.api.cloud.IMoGoCloudListener -import java.util.concurrent.ConcurrentHashMap +import com.mogo.eagle.core.function.call.base.CallerBase -object CallerCloudListenerManager { - - private val M_CLOUD_LISTENER: ConcurrentHashMap = - ConcurrentHashMap() - - /** - * 添加监听 - * @param tag 标记,用来注销监听使用 - * @param listener 监听回调 - */ - fun registerCloudListener( - tag: String, - listener: IMoGoCloudListener - ) { - if (M_CLOUD_LISTENER.containsKey(tag)) { - return - } - M_CLOUD_LISTENER[tag] = listener - } - - /** - * 删除监听 - * @param tag 标记,用来注销监听使用 - */ - fun unRegisterCloudListener(tag: String) { - if (!M_CLOUD_LISTENER.containsKey(tag)) { - return - } - M_CLOUD_LISTENER.remove(tag) - } - - /** - * 删除监听 - * @param listener 要删除的监听对象 - */ - fun unRegisterCloudListener(listener: IMoGoCloudListener) { - if (!M_CLOUD_LISTENER.containsValue(listener)) { - return - } - M_CLOUD_LISTENER.forEach { - if (it.value == listener) { - M_CLOUD_LISTENER.remove(it.key) - } - } - } +object CallerCloudListenerManager : CallerBase() { /** * 分发获取到的设备sn */ fun invokeCloudTokenGot(token: String, sn: String) { - M_CLOUD_LISTENER.forEach { + M_LISTENERS.forEach { val listener = it.value listener.tokenGot(token, sn) } } + + fun invokeSocketAck(event: V2XEvent) { + M_LISTENERS.forEach { + val listener = it.value + listener.onAck(event) + } + } + } \ No newline at end of file diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerSmpManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerSmpManager.kt index 1b2f35eff9..00b48eddf3 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerSmpManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerSmpManager.kt @@ -14,9 +14,6 @@ import com.mogo.eagle.core.utilcode.util.UiThreadHandler * 小地图调用者管理,这里对外及其他模块提供小地图功能的调用,用啥写啥,不要过度设计,不允许直接将Provider暴露出去 */ object CallerSmpManager : CallerBase() { -// private val mogoSmallMapProvider: IMogoSmallMapProvider -// get() = ARouter.getInstance().build(MoGoFragmentPaths.PATH_FRAGMENT_SMP) -// .navigation() as IMogoSmallMapProvider private val v2xProvider: IV2XEventProvider get() = ARouter.getInstance().build(MogoServicePaths.PATH_V2X_MODULE) diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/msgbox/CallerMsgBoxEventListenerManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/msgbox/CallerMsgBoxEventListenerManager.kt index 35470b458f..bc761537ec 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/msgbox/CallerMsgBoxEventListenerManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/msgbox/CallerMsgBoxEventListenerManager.kt @@ -1,10 +1,8 @@ package com.mogo.eagle.core.function.call.msgbox -import androidx.annotation.Nullable import com.mogo.eagle.core.data.msgbox.MsgBoxBean -import com.mogo.eagle.core.function.api.msgbox.IMsgBoxEventListener +import com.mogo.eagle.core.function.api.datacenter.msgbox.IMsgBoxEventListener import com.mogo.eagle.core.function.call.base.CallerBase -import java.util.concurrent.ConcurrentHashMap /** * @author XuXinChao diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/msgbox/CallerMsgBoxListenerManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/msgbox/CallerMsgBoxListenerManager.kt index 3117b859a5..ba89cc5e6d 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/msgbox/CallerMsgBoxListenerManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/msgbox/CallerMsgBoxListenerManager.kt @@ -2,7 +2,7 @@ package com.mogo.eagle.core.function.call.msgbox import com.mogo.eagle.core.data.msgbox.MsgBoxBean import com.mogo.eagle.core.data.msgbox.MsgCategory -import com.mogo.eagle.core.function.api.msgbox.IMsgBoxListener +import com.mogo.eagle.core.function.api.datacenter.msgbox.IMsgBoxListener import com.mogo.eagle.core.function.call.base.CallerBase /** diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/msgbox/CallerMsgBoxManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/msgbox/CallerMsgBoxManager.kt index ba2b039546..0bcd26be6a 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/msgbox/CallerMsgBoxManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/msgbox/CallerMsgBoxManager.kt @@ -3,7 +3,7 @@ package com.mogo.eagle.core.function.call.msgbox import android.content.Context import com.mogo.eagle.core.data.constants.MogoServicePaths import com.mogo.eagle.core.data.msgbox.MsgBoxBean -import com.mogo.eagle.core.function.api.msgbox.IMsgBoxProvider +import com.mogo.eagle.core.function.api.datacenter.msgbox.IMsgBoxProvider import com.mogo.eagle.core.function.call.base.CallerBase object CallerMsgBoxManager { diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/v2x/CallerLimitingVelocityListenerManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/v2x/CallerLimitingVelocityListenerManager.kt index a31d075db4..4c8811e2a1 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/v2x/CallerLimitingVelocityListenerManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/v2x/CallerLimitingVelocityListenerManager.kt @@ -1,7 +1,7 @@ package com.mogo.eagle.core.function.call.v2x import com.mogo.eagle.core.data.enums.DataSourceType -import com.mogo.eagle.core.function.api.v2x.ILimitingVelocityListener +import com.mogo.eagle.core.function.api.datacenter.union.ILimitingVelocityListener import com.mogo.eagle.core.function.call.base.CallerBase /** diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/v2x/CallerTrafficLightListenerManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/v2x/CallerTrafficLightListenerManager.kt index 60e4cd4e78..b463b1400c 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/v2x/CallerTrafficLightListenerManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/v2x/CallerTrafficLightListenerManager.kt @@ -3,7 +3,7 @@ package com.mogo.eagle.core.function.call.v2x import com.mogo.eagle.core.data.enums.DataSourceType import com.mogo.eagle.core.data.enums.TrafficLightEnum import com.mogo.eagle.core.data.trafficlight.TrafficLightResult -import com.mogo.eagle.core.function.api.v2x.IMoGoTrafficLightListener +import com.mogo.eagle.core.function.api.datacenter.union.IMoGoTrafficLightListener import com.mogo.eagle.core.function.call.base.CallerBase object CallerTrafficLightListenerManager : CallerBase() { From 18f3954545bb9efcea76e27c633f06e497a96635 Mon Sep 17 00:00:00 2001 From: chenfufeng Date: Fri, 17 Feb 2023 21:05:38 +0800 Subject: [PATCH 09/49] =?UTF-8?q?[Fix]=E8=A7=A3=E5=86=B3=E5=90=88=E5=B9=B6?= =?UTF-8?q?=E7=9A=84=E5=86=B2=E7=AA=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../function/hmi/ui/map/OfflineMapDialog.kt | 7 ++----- .../hmi/ui/widget/SystemVersionView.kt | 11 +++++----- .../IMoGoCheckAutoPilotBtnListener.kt | 4 +++- .../api/hmi/warning/IMoGoWaringProvider.kt | 20 ------------------- .../call/hmi/CallerHmiListenerManager.kt | 8 +++++++- .../function/call/hmi/CallerHmiManager.kt | 4 ---- .../call/map/CallerMapUIServiceManager.kt | 5 ++--- gradle.properties | 2 +- .../java/com/mogo/map/AMapViewWrapper.java | 2 +- 9 files changed, 22 insertions(+), 41 deletions(-) delete mode 100644 core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/hmi/warning/IMoGoWaringProvider.kt diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/map/OfflineMapDialog.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/map/OfflineMapDialog.kt index aa62c470b2..0adbe08c49 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/map/OfflineMapDialog.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/map/OfflineMapDialog.kt @@ -6,12 +6,9 @@ import android.view.View import android.widget.ImageView import android.widget.ProgressBar import android.widget.TextView -import androidx.annotation.MainThread import androidx.constraintlayout.widget.ConstraintLayout import androidx.core.content.ContextCompat -import androidx.core.content.res.ResourcesCompat -import androidx.core.view.marginTop -import com.mogo.eagle.core.function.call.hmi.CallerHmiManager +import com.mogo.eagle.core.function.call.hmi.CallerHmiListenerManager import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager import com.mogo.eagle.core.function.hmi.R import com.mogo.eagle.core.function.hmi.dialog.BaseFloatDialog @@ -107,7 +104,7 @@ class OfflineMapDialog(context: Context): BaseFloatDialog(context) { downloadPercentView?.text = "$progress%" if (progress == 100) { showNewContent(isLoading = false, true) - CallerHmiManager.updateHDDataCacheStatus(true) + CallerHmiListenerManager.invokeHDDataCacheStatus(true) } } } 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 65f2050257..1ae6ab1b7d 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 @@ -10,12 +10,11 @@ import com.mogo.eagle.core.data.bindingcar.AdUpgradeStateHelper import com.mogo.eagle.core.data.bindingcar.IPCUpgradeStateInfo import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener import com.mogo.eagle.core.function.api.devatools.IMoGoDevaToolsListener -import com.mogo.eagle.core.function.api.bindingcar.IMoGoBindingCarListener +import com.mogo.eagle.core.function.api.hmi.autopilot.IMoGoCheckAutoPilotBtnListener import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsListenerManager import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager -import com.mogo.eagle.core.function.call.bindingcar.CallerBindingCarListenerManager -import com.mogo.eagle.core.function.call.bindingcar.CallerBindingcarManager +import com.mogo.eagle.core.function.call.hmi.CallerHmiListenerManager import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager import com.mogo.eagle.core.function.hmi.R import com.mogo.eagle.core.function.hmi.ui.map.OfflineMapDialog @@ -38,7 +37,7 @@ class SystemVersionView @JvmOverloads constructor( attrs: AttributeSet? = null, defStyleAttr: Int = 0 ) : ConstraintLayout(context, attrs, defStyleAttr), IMoGoAutopilotStatusListener, - IMoGoDevaToolsListener { + IMoGoDevaToolsListener, IMoGoCheckAutoPilotBtnListener { companion object { const val TAG = "SystemVersionView" @@ -256,7 +255,7 @@ class SystemVersionView @JvmOverloads constructor( } - fun updateHDDataCacheStatus(isCached: Boolean) { + override fun updateHDDataCacheStatus(isCached: Boolean) { if (isCached) { ivHDCacheStatus?.setImageResource(R.drawable.icon_latest_version) } else { @@ -293,6 +292,7 @@ class SystemVersionView @JvmOverloads constructor( if (isInEditMode) { return } + CallerHmiListenerManager.addListener(TAG, this) CallerAutoPilotStatusListenerManager.addListener(TAG, this) CallerDevaToolsListenerManager.addListener(TAG,this) needQueryContainers = true @@ -303,6 +303,7 @@ class SystemVersionView @JvmOverloads constructor( if (isInEditMode) { return } + CallerHmiListenerManager.removeListener(TAG) CallerAutoPilotStatusListenerManager.removeListener(TAG) CallerDevaToolsListenerManager.removeListener(TAG) needQueryContainers = false diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/hmi/autopilot/IMoGoCheckAutoPilotBtnListener.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/hmi/autopilot/IMoGoCheckAutoPilotBtnListener.kt index cbfb84bd8a..ba1f2dfa8d 100644 --- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/hmi/autopilot/IMoGoCheckAutoPilotBtnListener.kt +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/hmi/autopilot/IMoGoCheckAutoPilotBtnListener.kt @@ -6,5 +6,7 @@ package com.mogo.eagle.core.function.api.hmi.autopilot * 自动驾驶控制按钮回调监听 */ interface IMoGoCheckAutoPilotBtnListener { - fun onCheck(isChecked: Boolean) + fun onCheck(isChecked: Boolean) {} + + fun updateHDDataCacheStatus(isCached: Boolean) {} } \ No newline at end of file diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/hmi/warning/IMoGoWaringProvider.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/hmi/warning/IMoGoWaringProvider.kt deleted file mode 100644 index 42b0cadcfc..0000000000 --- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/hmi/warning/IMoGoWaringProvider.kt +++ /dev/null @@ -1,20 +0,0 @@ -package com.mogo.eagle.core.function.api.hmi.warning - -import android.view.View -import android.view.ViewGroup -import com.mogo.eagle.core.data.bindingcar.IPCUpgradeStateInfo -import com.mogo.eagle.core.data.enums.WarningDirectionEnum -import com.mogo.eagle.core.data.map.Infrastructure -import com.mogo.eagle.core.data.notice.NoticeNormalData -import com.mogo.eagle.core.data.notice.NoticeTrafficStylePushData -import com.mogo.eagle.core.data.report.ReportEntity -import com.mogo.eagle.core.function.api.hmi.IMoGoHmiViewProxy -import com.mogo.eagle.core.function.api.hmi.view.IOchBusView - -/** - * @author xiaoyuzhou - * @date 2021/8/2 7:36 下午 - */ -interface IMoGoWaringProvider : IMoGoHmiViewProxy { - fun updateHDDataCacheStatus(isCached: Boolean) -} \ No newline at end of file diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/hmi/CallerHmiListenerManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/hmi/CallerHmiListenerManager.kt index eae3b6cac2..d8cb8b533e 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/hmi/CallerHmiListenerManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/hmi/CallerHmiListenerManager.kt @@ -30,5 +30,11 @@ object CallerHmiListenerManager : CallerBase() { } } - + fun invokeHDDataCacheStatus(isCached: Boolean) { + M_LISTENERS.forEach { + val tag = it.key + val listener = it.value + listener.updateHDDataCacheStatus(isCached) + } + } } \ No newline at end of file diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/hmi/CallerHmiManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/hmi/CallerHmiManager.kt index b6aca6f544..663a89c7bf 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/hmi/CallerHmiManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/hmi/CallerHmiManager.kt @@ -211,8 +211,4 @@ object CallerHmiManager { fun updateStatusBarDownloadView(insert: Boolean, tag: String, progress: Int) { hmiProviderApi?.updateStatusBarDownloadView(insert, tag, progress) } - - fun updateHDDataCacheStatus(isCached: Boolean) { - waringProviderApi?.updateHDDataCacheStatus(isCached) - } } \ No newline at end of file diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerMapUIServiceManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerMapUIServiceManager.kt index 0562c116ee..1c5104a623 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerMapUIServiceManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerMapUIServiceManager.kt @@ -6,8 +6,7 @@ import com.mogo.eagle.core.function.api.map.IMogoMapService import com.mogo.eagle.core.function.api.map.marker.IMogoMarkerService import com.mogo.eagle.core.function.call.base.CallerBase import com.mogo.map.hdcache.IHdCacheListener -import com.mogo.map.listener.IMogoHosListenerRegister -import com.mogo.map.location.IMogoLocationClient +import com.mogo.map.location.IMogoGDLocationClient import com.mogo.map.marker.IMogoMarkerManager import com.mogo.map.overlay.IMogoOverlayManager import com.mogo.map.uicontroller.IMogoMapUIController @@ -44,7 +43,7 @@ object CallerMapUIServiceManager { return serviceProvider?.overlayManager } - fun getGDLocationServer(context: Context):IMogoGDLocationClient?{ + fun getGDLocationServer(context: Context): IMogoGDLocationClient?{ return serviceProvider?.getGDLocationServer(context) } } \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index 9578aa5a52..dd72d41281 100644 --- a/gradle.properties +++ b/gradle.properties @@ -85,7 +85,7 @@ MOGO_LOCATION_VERSION=1.4.4.2 MOGO_TELEMATIC_VERSION=1.4.4.2 ######## MogoAiCloudSDK Version ######## # 自研地图 -MAP_SDK_VERSION=2.10.0.2 +MAP_SDK_VERSION=2.10.0.2_test_01 MAP_SDK_OPERATION_VERSION=1.1.4.1 # websocket WEBSOCKET_VERSION=1.1.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 e46408c5f2..68c15404f3 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 @@ -17,6 +17,7 @@ import android.content.Context; import android.graphics.Point; import android.graphics.Rect; import android.os.Bundle; +import android.os.Looper; import android.os.Trace; import android.text.TextUtils; import android.util.Log; @@ -44,7 +45,6 @@ import com.mogo.eagle.core.utilcode.util.UiThreadHandler; import com.mogo.map.hdcache.IHdCacheListener; import com.mogo.map.listener.MogoMapListenerHandler; import com.mogo.map.location.GDLocationClient; -import com.mogo.map.navi.MogoCarLocationChangedListenerRegister; import com.mogo.map.uicontroller.CarCursorOption; import com.mogo.map.uicontroller.EnumMapUI; import com.mogo.map.uicontroller.IMogoMapUIController; From d5474743bf4a75be14b1e02dc87d9fee96479545 Mon Sep 17 00:00:00 2001 From: zhongchao Date: Fri, 17 Feb 2023 21:31:27 +0800 Subject: [PATCH 10/49] [2.13.0-arch-opt] v2x remove --- .../presenter/BaseTaxiPassengerPresenter.java | 5 +- .../TaxiPassengerServingOrderPresenter.java | 2 + .../ui/TaxiPassengerBaseFragment.java | 2 - .../com/mogo/functions/test/RoadAITest.kt | 1 + .../mogo-core-function-biz/build.gradle | 11 ++- .../src/main/AndroidManifest.xml | 9 ++- .../eagle/function/biz/FuncBizProvider.kt | 15 ++++ .../function/biz/v2x/v2n}/V2XEventManager.kt | 26 +++--- .../function/biz/v2x/v2n}/V2XPoiLoader.kt | 10 +-- .../biz/v2x/v2n}/alarm/V2XAlarmServer.java | 2 +- .../function/biz/v2x/v2n}/bridge/BridgeApi.kt | 25 ++++-- .../v2x/v2n}/consts/MoGoV2XServicePaths.java | 2 +- .../biz/v2x/v2n}/consts/V2XConst.java | 2 +- .../IMoGoPersonWarnPolylineManager.java | 2 +- .../manager/IMoGoStopPolylineManager.java | 2 +- .../v2n}/manager/IMoGoV2XMarkerManager.java | 2 +- .../manager/IMoGoWarnPolylineManager.java | 2 +- .../impl/MoGoPersonWarnPolylineManager.java | 9 +-- .../manager/impl/MoGoStopPolylineManager.java | 9 +-- .../manager/impl/MoGoV2XMarkerManager.java | 10 +-- .../manager/impl/MoGoWarnPolylineManager.java | 7 +- .../biz/v2x/v2n}/marker/V2XMarkerAdapter.java | 4 +- .../biz/v2x/v2n/network}/V2XRefreshModel.kt | 14 +--- .../biz/v2x/v2n/network}/api/V2XApiService.kt | 2 +- .../v2x/v2n/network}/body/V2XRefreshEntity.kt | 2 +- .../v2x/v2n/network}/callback/IV2XCallback.kt | 2 +- .../network}/callback/IV2XRefreshCallback.kt | 2 +- .../v2n}/receiver/SceneBroadcastReceiver.kt | 6 +- .../v2x/v2n}/remove/MarkerRemoveManager.kt | 2 +- .../biz/v2x/v2n}/scenario/IV2XScenario.java | 2 +- .../v2n}/scenario/IV2XScenarioManager.java | 2 +- .../v2n}/scenario/impl/AbsV2XScenario.java | 6 +- .../scenario/impl/V2XScenarioManager.java | 12 +-- .../scenario/scene/airoad/AiRoadMarker.kt | 8 +- .../scene/road/V2XAiRoadEventMarker.kt | 9 +-- .../scene/road/V2XRoadEventMarker.java | 14 ++-- .../scene/road/V2XRoadEventScenario.java | 6 +- .../warning/V2XFrontWarningScenario.java | 6 +- .../scene/warning/V2XWarningMarker.java | 12 +-- .../v2x/v2n}/scenario/view/IV2XMarker.java | 2 +- .../function/biz/v2x/v2n}/test/TestConsts.kt | 2 +- .../biz/v2x/v2n}/test/TestOnLineCarUtils.java | 2 +- .../biz/v2x/v2n}/test/TestV2XReceiver.java | 4 +- .../biz/v2x/v2n}/utils/DistanceUtils.kt | 2 +- .../biz/v2x/v2n}/utils/EntityUtils.kt | 4 +- .../function/biz/v2x/v2n}/utils/MapUtils.kt | 2 +- .../v2x/v2n}/view/V2XMarkerRoadEventView.kt | 4 +- .../v_to_x_marker_1.png | Bin .../v_to_x_warning_car_red.png | Bin .../res/drawable-xhdpi/v_to_x_marker_1.png | Bin .../drawable-xhdpi/v_to_x_warning_car_red.png | Bin .../v_to_x_warning_circle_orange_00011.png | Bin .../v_to_x_warning_circle_orange_00012.png | Bin .../v_to_x_warning_circle_orange_00013.png | Bin .../v_to_x_warning_circle_orange_00014.png | Bin .../v_to_x_warning_circle_orange_00015.png | Bin .../v_to_x_warning_circle_orange_00016.png | Bin .../v_to_x_warning_circle_orange_00017.png | Bin .../v_to_x_warning_circle_orange_00018.png | Bin .../v_to_x_warning_circle_orange_00019.png | Bin .../v_to_x_warning_circle_orange_00020.png | Bin .../v_to_x_warning_circle_orange_00021.png | Bin .../v_to_x_warning_circle_orange_00022.png | Bin .../v_to_x_warning_circle_orange_00023.png | Bin .../v_to_x_warning_circle_orange_00024.png | Bin .../v_to_x_warning_circle_orange_00025.png | Bin .../v_to_x_warning_circle_orange_00026.png | Bin .../v_to_x_warning_circle_orange_00027.png | Bin .../v_to_x_warning_circle_orange_00028.png | Bin .../v_to_x_warning_circle_orange_00029.png | Bin .../v_to_x_warning_circle_orange_00030.png | Bin .../v_to_x_warning_circle_orange_00031.png | Bin .../v_to_x_warning_circle_orange_00032.png | Bin .../v_to_x_warning_circle_orange_00033.png | Bin .../v_to_x_warning_circle_orange_00034.png | Bin .../v_to_x_warning_circle_orange_00035.png | Bin .../v_to_x_warning_circle_orange_00036.png | Bin .../v_to_x_warning_circle_orange_00037.png | Bin .../v_to_x_warning_circle_orange_00038.png | Bin .../v_to_x_warning_circle_orange_00039.png | Bin .../v_to_x_warning_circle_orange_00040.png | Bin .../v_to_x_warning_circle_orange_00041.png | Bin .../v_to_x_warning_circle_orange_00042.png | Bin .../v_to_x_warning_circle_orange_00043.png | Bin .../v_to_x_warning_circle_orange_00044.png | Bin .../v_to_x_warning_circle_orange_00045.png | Bin .../v_to_x_warning_circle_orange_00046.png | Bin .../v_to_x_warning_circle_orange_00047.png | Bin .../v_to_x_warning_circle_orange_00048.png | Bin .../v_to_x_warning_circle_red_00011.png | Bin .../v_to_x_warning_circle_red_00012.png | Bin .../v_to_x_warning_circle_red_00013.png | Bin .../v_to_x_warning_circle_red_00014.png | Bin .../v_to_x_warning_circle_red_00015.png | Bin .../v_to_x_warning_circle_red_00016.png | Bin .../v_to_x_warning_circle_red_00017.png | Bin .../v_to_x_warning_circle_red_00018.png | Bin .../v_to_x_warning_circle_red_00019.png | Bin .../v_to_x_warning_circle_red_00020.png | Bin .../v_to_x_warning_circle_red_00021.png | Bin .../v_to_x_warning_circle_red_00022.png | Bin .../v_to_x_warning_circle_red_00023.png | Bin .../v_to_x_warning_circle_red_00024.png | Bin .../v_to_x_warning_circle_red_00025.png | Bin .../v_to_x_warning_circle_red_00026.png | Bin .../v_to_x_warning_circle_red_00027.png | Bin .../v_to_x_warning_circle_red_00028.png | Bin .../v_to_x_warning_circle_red_00029.png | Bin .../v_to_x_warning_circle_red_00030.png | Bin .../v_to_x_warning_circle_red_00031.png | Bin .../v_to_x_warning_circle_red_00032.png | Bin .../v_to_x_warning_circle_red_00033.png | Bin .../v_to_x_warning_circle_red_00034.png | Bin .../v_to_x_warning_circle_red_00035.png | Bin .../v_to_x_warning_circle_red_00036.png | Bin .../v_to_x_warning_circle_red_00037.png | Bin .../v_to_x_warning_circle_red_00038.png | Bin .../v_to_x_warning_circle_red_00039.png | Bin .../v_to_x_warning_circle_red_00040.png | Bin .../v_to_x_warning_circle_red_00041.png | Bin .../v_to_x_warning_circle_red_00042.png | Bin .../v_to_x_warning_circle_red_00043.png | Bin .../v_to_x_warning_circle_red_00044.png | Bin .../v_to_x_warning_circle_red_00045.png | Bin .../v_to_x_warning_circle_red_00046.png | Bin .../v_to_x_warning_circle_red_00047.png | Bin .../v_to_x_warning_circle_red_00048.png | Bin .../main/res/layout/view_marker_event_car.xml | 0 .../res/layout/view_marker_event_road.xml | 0 .../res/raw/scenario_road_event_data.json | 0 .../raw/scenario_warning_event_data_left.json | 0 ...enario_warning_event_data_pedestrians.json | 0 .../scenario_warning_event_data_right.json | 0 .../src/main/res/raw/test_coordinates.json | 0 .../res/raw/test_data_v2x_zuiyouluxian.json | 0 .../function/main/MainMoGoApplication.java | 2 - .../mogo-core-function-v2x/build.gradle | 4 +- .../src/main/AndroidManifest.xml | 7 +- .../eagle/core/function/v2x/V2XProvider.kt | 36 --------- .../core/data/constants/MogoServicePaths.java | 6 -- .../function/api/biz/IMoGoFuncBizProvider.kt | 4 + .../function/api/v2x/IV2XEventProvider.kt | 7 -- .../function/call/map/CallerSmpManager.kt | 75 ------------------ 143 files changed, 160 insertions(+), 269 deletions(-) rename core/function-impl/{mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events => mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n}/V2XEventManager.kt (94%) rename core/function-impl/{mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events => mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n}/V2XPoiLoader.kt (94%) rename core/function-impl/{mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events => mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n}/alarm/V2XAlarmServer.java (99%) rename core/function-impl/{mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events => mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n}/bridge/BridgeApi.kt (58%) rename core/function-impl/{mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events => mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n}/consts/MoGoV2XServicePaths.java (94%) rename core/function-impl/{mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events => mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n}/consts/V2XConst.java (89%) rename core/function-impl/{mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events => mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n}/manager/IMoGoPersonWarnPolylineManager.java (91%) rename core/function-impl/{mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events => mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n}/manager/IMoGoStopPolylineManager.java (91%) rename core/function-impl/{mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events => mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n}/manager/IMoGoV2XMarkerManager.java (95%) rename core/function-impl/{mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events => mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n}/manager/IMoGoWarnPolylineManager.java (91%) rename core/function-impl/{mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events => mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n}/manager/impl/MoGoPersonWarnPolylineManager.java (88%) rename core/function-impl/{mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events => mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n}/manager/impl/MoGoStopPolylineManager.java (89%) rename core/function-impl/{mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events => mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n}/manager/impl/MoGoV2XMarkerManager.java (95%) rename core/function-impl/{mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events => mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n}/manager/impl/MoGoWarnPolylineManager.java (92%) rename core/function-impl/{mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events => mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n}/marker/V2XMarkerAdapter.java (98%) rename core/function-impl/{mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/http => mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/network}/V2XRefreshModel.kt (88%) rename core/function-impl/{mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/http => mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/network}/api/V2XApiService.kt (91%) rename core/function-impl/{mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/http => mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/network}/body/V2XRefreshEntity.kt (93%) rename core/function-impl/{mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal => mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/network}/callback/IV2XCallback.kt (92%) rename core/function-impl/{mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/http => mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/network}/callback/IV2XRefreshCallback.kt (67%) rename core/function-impl/{mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events => mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n}/receiver/SceneBroadcastReceiver.kt (85%) rename core/function-impl/{mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events => mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n}/remove/MarkerRemoveManager.kt (99%) rename core/function-impl/{mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events => mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n}/scenario/IV2XScenario.java (92%) rename core/function-impl/{mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events => mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n}/scenario/IV2XScenarioManager.java (84%) rename core/function-impl/{mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events => mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n}/scenario/impl/AbsV2XScenario.java (88%) rename core/function-impl/{mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events => mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n}/scenario/impl/V2XScenarioManager.java (89%) rename core/function-impl/{mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events => mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n}/scenario/scene/airoad/AiRoadMarker.kt (96%) rename core/function-impl/{mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events => mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n}/scenario/scene/road/V2XAiRoadEventMarker.kt (88%) rename core/function-impl/{mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events => mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n}/scenario/scene/road/V2XRoadEventMarker.java (87%) rename core/function-impl/{mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events => mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n}/scenario/scene/road/V2XRoadEventScenario.java (97%) rename core/function-impl/{mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events => mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n}/scenario/scene/warning/V2XFrontWarningScenario.java (96%) rename core/function-impl/{mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events => mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n}/scenario/scene/warning/V2XWarningMarker.java (98%) rename core/function-impl/{mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events => mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n}/scenario/view/IV2XMarker.java (77%) rename core/function-impl/{mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events => mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n}/test/TestConsts.kt (79%) rename core/function-impl/{mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events => mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n}/test/TestOnLineCarUtils.java (99%) rename core/function-impl/{mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events => mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n}/test/TestV2XReceiver.java (97%) rename core/function-impl/{mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal => mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n}/utils/DistanceUtils.kt (96%) rename core/function-impl/{mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events => mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n}/utils/EntityUtils.kt (96%) rename core/function-impl/{mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events => mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n}/utils/MapUtils.kt (96%) rename core/function-impl/{mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events => mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n}/view/V2XMarkerRoadEventView.kt (95%) rename core/function-impl/{mogo-core-function-v2x => mogo-core-function-biz}/src/main/res/drawable-xhdpi-1920x1000/v_to_x_marker_1.png (100%) rename core/function-impl/{mogo-core-function-v2x => mogo-core-function-biz}/src/main/res/drawable-xhdpi-1920x1000/v_to_x_warning_car_red.png (100%) rename core/function-impl/{mogo-core-function-v2x => mogo-core-function-biz}/src/main/res/drawable-xhdpi/v_to_x_marker_1.png (100%) rename core/function-impl/{mogo-core-function-v2x => mogo-core-function-biz}/src/main/res/drawable-xhdpi/v_to_x_warning_car_red.png (100%) rename core/function-impl/{mogo-core-function-v2x => mogo-core-function-biz}/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00011.png (100%) rename core/function-impl/{mogo-core-function-v2x => mogo-core-function-biz}/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00012.png (100%) rename core/function-impl/{mogo-core-function-v2x => mogo-core-function-biz}/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00013.png (100%) rename core/function-impl/{mogo-core-function-v2x => mogo-core-function-biz}/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00014.png (100%) rename core/function-impl/{mogo-core-function-v2x => mogo-core-function-biz}/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00015.png (100%) rename core/function-impl/{mogo-core-function-v2x => mogo-core-function-biz}/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00016.png (100%) rename core/function-impl/{mogo-core-function-v2x => mogo-core-function-biz}/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00017.png (100%) rename core/function-impl/{mogo-core-function-v2x => mogo-core-function-biz}/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00018.png (100%) rename core/function-impl/{mogo-core-function-v2x => mogo-core-function-biz}/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00019.png (100%) rename core/function-impl/{mogo-core-function-v2x => mogo-core-function-biz}/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00020.png (100%) rename core/function-impl/{mogo-core-function-v2x => mogo-core-function-biz}/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00021.png (100%) rename core/function-impl/{mogo-core-function-v2x => mogo-core-function-biz}/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00022.png (100%) rename core/function-impl/{mogo-core-function-v2x => mogo-core-function-biz}/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00023.png (100%) rename core/function-impl/{mogo-core-function-v2x => mogo-core-function-biz}/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00024.png (100%) rename core/function-impl/{mogo-core-function-v2x => mogo-core-function-biz}/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00025.png (100%) rename core/function-impl/{mogo-core-function-v2x => mogo-core-function-biz}/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00026.png (100%) rename core/function-impl/{mogo-core-function-v2x => mogo-core-function-biz}/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00027.png (100%) rename core/function-impl/{mogo-core-function-v2x => mogo-core-function-biz}/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00028.png (100%) rename core/function-impl/{mogo-core-function-v2x => mogo-core-function-biz}/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00029.png (100%) rename core/function-impl/{mogo-core-function-v2x => mogo-core-function-biz}/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00030.png (100%) rename core/function-impl/{mogo-core-function-v2x => mogo-core-function-biz}/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00031.png (100%) rename core/function-impl/{mogo-core-function-v2x => mogo-core-function-biz}/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00032.png (100%) rename core/function-impl/{mogo-core-function-v2x => mogo-core-function-biz}/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00033.png (100%) rename core/function-impl/{mogo-core-function-v2x => mogo-core-function-biz}/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00034.png (100%) rename core/function-impl/{mogo-core-function-v2x => mogo-core-function-biz}/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00035.png (100%) rename core/function-impl/{mogo-core-function-v2x => mogo-core-function-biz}/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00036.png (100%) rename core/function-impl/{mogo-core-function-v2x => mogo-core-function-biz}/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00037.png (100%) rename core/function-impl/{mogo-core-function-v2x => mogo-core-function-biz}/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00038.png (100%) rename core/function-impl/{mogo-core-function-v2x => mogo-core-function-biz}/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00039.png (100%) rename core/function-impl/{mogo-core-function-v2x => mogo-core-function-biz}/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00040.png (100%) rename core/function-impl/{mogo-core-function-v2x => mogo-core-function-biz}/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00041.png (100%) rename core/function-impl/{mogo-core-function-v2x => mogo-core-function-biz}/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00042.png (100%) rename core/function-impl/{mogo-core-function-v2x => mogo-core-function-biz}/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00043.png (100%) rename core/function-impl/{mogo-core-function-v2x => mogo-core-function-biz}/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00044.png (100%) rename core/function-impl/{mogo-core-function-v2x => mogo-core-function-biz}/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00045.png (100%) rename core/function-impl/{mogo-core-function-v2x => mogo-core-function-biz}/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00046.png (100%) rename core/function-impl/{mogo-core-function-v2x => mogo-core-function-biz}/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00047.png (100%) rename core/function-impl/{mogo-core-function-v2x => mogo-core-function-biz}/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00048.png (100%) rename core/function-impl/{mogo-core-function-v2x => mogo-core-function-biz}/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00011.png (100%) rename core/function-impl/{mogo-core-function-v2x => mogo-core-function-biz}/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00012.png (100%) rename core/function-impl/{mogo-core-function-v2x => mogo-core-function-biz}/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00013.png (100%) rename core/function-impl/{mogo-core-function-v2x => mogo-core-function-biz}/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00014.png (100%) rename core/function-impl/{mogo-core-function-v2x => mogo-core-function-biz}/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00015.png (100%) rename core/function-impl/{mogo-core-function-v2x => mogo-core-function-biz}/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00016.png (100%) rename core/function-impl/{mogo-core-function-v2x => mogo-core-function-biz}/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00017.png (100%) rename core/function-impl/{mogo-core-function-v2x => mogo-core-function-biz}/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00018.png (100%) rename core/function-impl/{mogo-core-function-v2x => mogo-core-function-biz}/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00019.png (100%) rename core/function-impl/{mogo-core-function-v2x => mogo-core-function-biz}/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00020.png (100%) rename core/function-impl/{mogo-core-function-v2x => mogo-core-function-biz}/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00021.png (100%) rename core/function-impl/{mogo-core-function-v2x => mogo-core-function-biz}/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00022.png (100%) rename core/function-impl/{mogo-core-function-v2x => mogo-core-function-biz}/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00023.png (100%) rename core/function-impl/{mogo-core-function-v2x => mogo-core-function-biz}/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00024.png (100%) rename core/function-impl/{mogo-core-function-v2x => mogo-core-function-biz}/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00025.png (100%) rename core/function-impl/{mogo-core-function-v2x => mogo-core-function-biz}/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00026.png (100%) rename core/function-impl/{mogo-core-function-v2x => mogo-core-function-biz}/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00027.png (100%) rename core/function-impl/{mogo-core-function-v2x => mogo-core-function-biz}/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00028.png (100%) rename core/function-impl/{mogo-core-function-v2x => mogo-core-function-biz}/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00029.png (100%) rename core/function-impl/{mogo-core-function-v2x => mogo-core-function-biz}/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00030.png (100%) rename core/function-impl/{mogo-core-function-v2x => mogo-core-function-biz}/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00031.png (100%) rename core/function-impl/{mogo-core-function-v2x => mogo-core-function-biz}/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00032.png (100%) rename core/function-impl/{mogo-core-function-v2x => mogo-core-function-biz}/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00033.png (100%) rename core/function-impl/{mogo-core-function-v2x => mogo-core-function-biz}/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00034.png (100%) rename core/function-impl/{mogo-core-function-v2x => mogo-core-function-biz}/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00035.png (100%) rename core/function-impl/{mogo-core-function-v2x => mogo-core-function-biz}/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00036.png (100%) rename core/function-impl/{mogo-core-function-v2x => mogo-core-function-biz}/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00037.png (100%) rename core/function-impl/{mogo-core-function-v2x => mogo-core-function-biz}/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00038.png (100%) rename core/function-impl/{mogo-core-function-v2x => mogo-core-function-biz}/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00039.png (100%) rename core/function-impl/{mogo-core-function-v2x => mogo-core-function-biz}/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00040.png (100%) rename core/function-impl/{mogo-core-function-v2x => mogo-core-function-biz}/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00041.png (100%) rename core/function-impl/{mogo-core-function-v2x => mogo-core-function-biz}/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00042.png (100%) rename core/function-impl/{mogo-core-function-v2x => mogo-core-function-biz}/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00043.png (100%) rename core/function-impl/{mogo-core-function-v2x => mogo-core-function-biz}/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00044.png (100%) rename core/function-impl/{mogo-core-function-v2x => mogo-core-function-biz}/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00045.png (100%) rename core/function-impl/{mogo-core-function-v2x => mogo-core-function-biz}/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00046.png (100%) rename core/function-impl/{mogo-core-function-v2x => mogo-core-function-biz}/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00047.png (100%) rename core/function-impl/{mogo-core-function-v2x => mogo-core-function-biz}/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00048.png (100%) rename core/function-impl/{mogo-core-function-v2x => mogo-core-function-biz}/src/main/res/layout/view_marker_event_car.xml (100%) rename core/function-impl/{mogo-core-function-v2x => mogo-core-function-biz}/src/main/res/layout/view_marker_event_road.xml (100%) rename core/function-impl/{mogo-core-function-v2x => mogo-core-function-biz}/src/main/res/raw/scenario_road_event_data.json (100%) rename core/function-impl/{mogo-core-function-v2x => mogo-core-function-biz}/src/main/res/raw/scenario_warning_event_data_left.json (100%) rename core/function-impl/{mogo-core-function-v2x => mogo-core-function-biz}/src/main/res/raw/scenario_warning_event_data_pedestrians.json (100%) rename core/function-impl/{mogo-core-function-v2x => mogo-core-function-biz}/src/main/res/raw/scenario_warning_event_data_right.json (100%) rename core/function-impl/{mogo-core-function-v2x => mogo-core-function-biz}/src/main/res/raw/test_coordinates.json (100%) rename core/function-impl/{mogo-core-function-v2x => mogo-core-function-biz}/src/main/res/raw/test_data_v2x_zuiyouluxian.json (100%) delete mode 100644 core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/V2XProvider.kt delete mode 100644 core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/v2x/IV2XEventProvider.kt delete mode 100644 core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerSmpManager.kt diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/presenter/BaseTaxiPassengerPresenter.java b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/presenter/BaseTaxiPassengerPresenter.java index 0173533e1e..d74028ff9d 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/presenter/BaseTaxiPassengerPresenter.java +++ b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/presenter/BaseTaxiPassengerPresenter.java @@ -2,7 +2,6 @@ package com.mogo.och.taxi.passenger.presenter; import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_TAXI_P; -import android.location.Location; import android.os.Looper; import androidx.annotation.NonNull; @@ -12,7 +11,6 @@ import com.mogo.commons.AbsMogoApplication; import com.mogo.commons.mvp.Presenter; import com.mogo.eagle.core.data.map.MogoLocation; import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener; -import com.mogo.eagle.core.function.call.map.CallerSmpManager; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.eagle.core.utilcode.util.UiThreadHandler; import com.mogo.och.common.module.manager.OCHAdasAbilityManager; @@ -236,7 +234,8 @@ public class BaseTaxiPassengerPresenter extends Presenter - + + + + + + + + \ 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 c820952fa3..d4b9bc0d22 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 @@ -17,6 +17,8 @@ import com.mogo.eagle.function.biz.v2x.overview.OverViewDataManager import com.mogo.eagle.function.biz.v2x.overview.db.OverviewDb import com.mogo.eagle.function.biz.v2x.road.LineUploadManager import com.mogo.eagle.function.biz.v2x.trafficlight.core.MogoTrafficLightManager +import com.mogo.eagle.function.biz.v2x.v2n.V2XEventManager +import com.mogo.eagle.function.biz.v2x.v2n.V2XPoiLoader.Companion.v2xPoiLoader import com.mogo.eagle.function.biz.v2x.vip.VipCarManager @Route(path = MogoServicePaths.PATH_FUNC_BIZ) @@ -35,6 +37,10 @@ class FuncBizProvider : IMoGoFuncBizProvider { OverviewDb.getDb(context) MogoTrafficLightManager.INSTANCE.initServer(context) VipCarManager.INSTANCE.initServer(context) + if(!(AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode) + && AppIdentityModeUtils.isPassenger(FunctionBuildConfig.appIdentityMode))){ + V2XEventManager.init(context) + } if(AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)){ LineUploadManager.getInstance(context)?.init() } @@ -84,12 +90,21 @@ class FuncBizProvider : IMoGoFuncBizProvider { OverViewDataManager.getAllV2XEventsByLineId(MoGoAiCloudClientConfig.getInstance().sn) } + override fun queryV2XEvents() { + v2xPoiLoader.queryWholeRoadEvents() + } + override fun onDestroy() { noticeSocketManager.release() dispatchAutoPilotManager.release() cronTaskManager.release() VipCarManager.INSTANCE.destroy() + + if(!(AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode) + && AppIdentityModeUtils.isPassenger(FunctionBuildConfig.appIdentityMode))){ + V2XEventManager.onDestroy() + } if(AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)){ mContext?.let { LineUploadManager.getInstance(it)?.onDestroy() 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-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/V2XEventManager.kt similarity index 94% rename from core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/V2XEventManager.kt rename to core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/V2XEventManager.kt index b1123c6860..32fd455865 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-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/V2XEventManager.kt @@ -1,4 +1,4 @@ -package com.mogo.eagle.core.function.v2x.events +package com.mogo.eagle.function.biz.v2x.v2n import android.annotation.SuppressLint import android.content.Context @@ -33,25 +33,25 @@ import com.mogo.eagle.core.function.call.map.CallerMapIdentifyManager import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager import com.mogo.eagle.core.function.call.map.CallerVisualAngleManager import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxManager -import com.mogo.eagle.core.function.v2x.events.alarm.V2XAlarmServer -import com.mogo.eagle.core.function.v2x.events.bridge.BridgeApi -import com.mogo.eagle.core.function.v2x.events.consts.V2XConst.BROADCAST_SCENE_EXTRA_KEY -import com.mogo.eagle.core.function.v2x.events.consts.V2XConst.BROADCAST_SCENE_HANDLER_ACTION -import com.mogo.eagle.core.function.v2x.events.receiver.SceneBroadcastReceiver -import com.mogo.eagle.core.function.v2x.events.scenario.impl.V2XScenarioManager -import com.mogo.eagle.core.function.v2x.events.utils.toRoadMarker -import com.mogo.eagle.core.function.v2x.internal.callback.IV2XCallback +import com.mogo.eagle.function.biz.v2x.v2n.alarm.V2XAlarmServer +import com.mogo.eagle.function.biz.v2x.v2n.bridge.BridgeApi +import com.mogo.eagle.function.biz.v2x.v2n.consts.V2XConst.BROADCAST_SCENE_EXTRA_KEY +import com.mogo.eagle.function.biz.v2x.v2n.consts.V2XConst.BROADCAST_SCENE_HANDLER_ACTION +import com.mogo.eagle.function.biz.v2x.v2n.receiver.SceneBroadcastReceiver +import com.mogo.eagle.function.biz.v2x.v2n.scenario.impl.V2XScenarioManager +import com.mogo.eagle.function.biz.v2x.v2n.utils.toRoadMarker import com.mogo.eagle.core.data.v2x.V2XEvent import com.mogo.eagle.core.data.v2x.V2XMarkerCardResult import com.mogo.eagle.core.data.v2x.V2XWarningTarget import com.mogo.eagle.core.function.api.cloud.IMoGoCloudListener import com.mogo.eagle.core.function.call.cloud.CallerCloudListenerManager -import com.mogo.eagle.core.function.v2x.events.V2XPoiLoader.Companion.v2xPoiLoader -import com.mogo.eagle.core.function.v2x.events.utils.toV2XRoadEventEntity +import com.mogo.eagle.function.biz.v2x.v2n.V2XPoiLoader.Companion.v2xPoiLoader 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.Companion.M_V2X import com.mogo.eagle.core.utilcode.util.Utils +import com.mogo.eagle.function.biz.v2x.v2n.network.callback.IV2XCallback +import com.mogo.eagle.function.biz.v2x.v2n.utils.toV2XRoadEventEntity import com.zhjt.service.chain.ChainLog import com.zhjt.service.chain.TracingConstants import kotlinx.coroutines.CoroutineScope @@ -378,10 +378,6 @@ object V2XEventManager : IMoGoChassisLocationGCJ02Listener, IV2XCallback, } } - fun queryWholeRoadEvents() { - v2xPoiLoader.queryWholeRoadEvents() - } - override fun onFail(msg: String) { CallerLogger.e("$M_V2X$TAG", "Error: $msg") } diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/V2XPoiLoader.kt b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/V2XPoiLoader.kt similarity index 94% rename from core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/V2XPoiLoader.kt rename to core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/V2XPoiLoader.kt index 065dd53827..9fa780cba4 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/V2XPoiLoader.kt +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/V2XPoiLoader.kt @@ -1,4 +1,4 @@ -package com.mogo.eagle.core.function.v2x.events +package com.mogo.eagle.function.biz.v2x.v2n import android.os.Handler import android.os.Looper @@ -11,13 +11,13 @@ import com.mogo.eagle.core.data.v2x.V2XEvent import com.mogo.eagle.core.data.v2x.V2XMarkerResponse import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxManager -import com.mogo.eagle.core.function.v2x.internal.callback.IV2XCallback -import com.mogo.eagle.core.function.v2x.internal.http.V2XRefreshModel -import com.mogo.eagle.core.function.v2x.internal.http.callback.IV2XRefreshCallback -import com.mogo.eagle.core.function.v2x.internal.utils.DistanceUtils import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant import com.mogo.eagle.core.utilcode.util.UiThreadHandler +import com.mogo.eagle.function.biz.v2x.v2n.network.V2XRefreshModel +import com.mogo.eagle.function.biz.v2x.v2n.network.callback.IV2XCallback +import com.mogo.eagle.function.biz.v2x.v2n.network.callback.IV2XRefreshCallback +import com.mogo.eagle.function.biz.v2x.v2n.utils.DistanceUtils import java.util.concurrent.CopyOnWriteArrayList import java.util.concurrent.TimeUnit import java.util.concurrent.atomic.AtomicReference diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/alarm/V2XAlarmServer.java b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/alarm/V2XAlarmServer.java similarity index 99% rename from core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/alarm/V2XAlarmServer.java rename to core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/alarm/V2XAlarmServer.java index 0156f41948..8c3b605103 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/alarm/V2XAlarmServer.java +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/alarm/V2XAlarmServer.java @@ -1,4 +1,4 @@ -package com.mogo.eagle.core.function.v2x.events.alarm; +package com.mogo.eagle.function.biz.v2x.v2n.alarm; import com.mogo.eagle.core.data.enums.EventTypeEnumNew; import com.mogo.eagle.core.data.map.MogoLocation; diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/bridge/BridgeApi.kt b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/bridge/BridgeApi.kt similarity index 58% rename from core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/bridge/BridgeApi.kt rename to core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/bridge/BridgeApi.kt index 8a9b602209..366a3c55ef 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/bridge/BridgeApi.kt +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/bridge/BridgeApi.kt @@ -1,11 +1,14 @@ -package com.mogo.eagle.core.function.v2x.events.bridge +package com.mogo.eagle.function.biz.v2x.v2n.bridge import android.content.Context import com.alibaba.android.arouter.launcher.ARouter import com.mogo.eagle.core.data.map.MogoLocation -import com.mogo.eagle.core.function.v2x.events.consts.MoGoV2XServicePaths -import com.mogo.eagle.core.function.v2x.events.manager.* +import com.mogo.eagle.function.biz.v2x.v2n.consts.MoGoV2XServicePaths import com.mogo.eagle.core.utilcode.util.Utils +import com.mogo.eagle.function.biz.v2x.v2n.manager.IMoGoPersonWarnPolylineManager +import com.mogo.eagle.function.biz.v2x.v2n.manager.IMoGoStopPolylineManager +import com.mogo.eagle.function.biz.v2x.v2n.manager.IMoGoV2XMarkerManager +import com.mogo.eagle.function.biz.v2x.v2n.manager.IMoGoWarnPolylineManager import java.lang.ref.WeakReference import java.util.concurrent.atomic.AtomicReference @@ -24,22 +27,28 @@ internal object BridgeApi { } private val v2xWarnPolyline by lazy { - ARouter.getInstance().build(MoGoV2XServicePaths.PATH_V2X_WARN_POLYLINE_MANAGER).navigation(context()) as? IMoGoWarnPolylineManager + ARouter.getInstance().build(MoGoV2XServicePaths.PATH_V2X_WARN_POLYLINE_MANAGER).navigation( + context() + ) as? IMoGoWarnPolylineManager } private val v2xPersonWarnPolyline by lazy { - ARouter.getInstance().build(MoGoV2XServicePaths.PATH_V2X_PERSON_WARN_POLYLINE_MANAGER).navigation(context()) as? IMoGoPersonWarnPolylineManager + ARouter.getInstance().build(MoGoV2XServicePaths.PATH_V2X_PERSON_WARN_POLYLINE_MANAGER).navigation( + context() + ) as? IMoGoPersonWarnPolylineManager } private val v2xStopPolyline by lazy { - ARouter.getInstance().build(MoGoV2XServicePaths.PATH_V2X_STOP_POLYLINE_MANAGER).navigation(context()) as? IMoGoStopPolylineManager + ARouter.getInstance().build(MoGoV2XServicePaths.PATH_V2X_STOP_POLYLINE_MANAGER).navigation( + context() + ) as? IMoGoStopPolylineManager } fun init(context: Context) { - this.context.set(WeakReference(context)) + BridgeApi.context.set(WeakReference(context)) } - fun context(): Context = this.context.get()?.get() ?: Utils.getApp() + fun context(): Context = context.get()?.get() ?: Utils.getApp() fun v2xMarker() = v2xMarker diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/consts/MoGoV2XServicePaths.java b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/consts/MoGoV2XServicePaths.java similarity index 94% rename from core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/consts/MoGoV2XServicePaths.java rename to core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/consts/MoGoV2XServicePaths.java index cccd481291..4e4e959694 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/consts/MoGoV2XServicePaths.java +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/consts/MoGoV2XServicePaths.java @@ -1,4 +1,4 @@ -package com.mogo.eagle.core.function.v2x.events.consts; +package com.mogo.eagle.function.biz.v2x.v2n.consts; import androidx.annotation.Keep; diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/consts/V2XConst.java b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/consts/V2XConst.java similarity index 89% rename from core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/consts/V2XConst.java rename to core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/consts/V2XConst.java index b6dee1cb0f..c2f4fd35d5 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/consts/V2XConst.java +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/consts/V2XConst.java @@ -1,4 +1,4 @@ -package com.mogo.eagle.core.function.v2x.events.consts; +package com.mogo.eagle.function.biz.v2x.v2n.consts; /** * author : donghongyu diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/manager/IMoGoPersonWarnPolylineManager.java b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/manager/IMoGoPersonWarnPolylineManager.java similarity index 91% rename from core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/manager/IMoGoPersonWarnPolylineManager.java rename to core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/manager/IMoGoPersonWarnPolylineManager.java index d15a9c589d..81ff12f98f 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/manager/IMoGoPersonWarnPolylineManager.java +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/manager/IMoGoPersonWarnPolylineManager.java @@ -1,4 +1,4 @@ -package com.mogo.eagle.core.function.v2x.events.manager; +package com.mogo.eagle.function.biz.v2x.v2n.manager; import android.content.Context; diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/manager/IMoGoStopPolylineManager.java b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/manager/IMoGoStopPolylineManager.java similarity index 91% rename from core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/manager/IMoGoStopPolylineManager.java rename to core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/manager/IMoGoStopPolylineManager.java index e0cca0ed76..2df7a2d0fd 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/manager/IMoGoStopPolylineManager.java +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/manager/IMoGoStopPolylineManager.java @@ -1,4 +1,4 @@ -package com.mogo.eagle.core.function.v2x.events.manager; +package com.mogo.eagle.function.biz.v2x.v2n.manager; import android.content.Context; diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/manager/IMoGoV2XMarkerManager.java b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/manager/IMoGoV2XMarkerManager.java similarity index 95% rename from core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/manager/IMoGoV2XMarkerManager.java rename to core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/manager/IMoGoV2XMarkerManager.java index ed87273009..4118457e0c 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/manager/IMoGoV2XMarkerManager.java +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/manager/IMoGoV2XMarkerManager.java @@ -1,4 +1,4 @@ -package com.mogo.eagle.core.function.v2x.events.manager; +package com.mogo.eagle.function.biz.v2x.v2n.manager; import android.content.Context; diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/manager/IMoGoWarnPolylineManager.java b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/manager/IMoGoWarnPolylineManager.java similarity index 91% rename from core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/manager/IMoGoWarnPolylineManager.java rename to core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/manager/IMoGoWarnPolylineManager.java index a79527e857..b888d21d03 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/manager/IMoGoWarnPolylineManager.java +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/manager/IMoGoWarnPolylineManager.java @@ -1,4 +1,4 @@ -package com.mogo.eagle.core.function.v2x.events.manager; +package com.mogo.eagle.function.biz.v2x.v2n.manager; import android.content.Context; diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/manager/impl/MoGoPersonWarnPolylineManager.java b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/manager/impl/MoGoPersonWarnPolylineManager.java similarity index 88% rename from core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/manager/impl/MoGoPersonWarnPolylineManager.java rename to core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/manager/impl/MoGoPersonWarnPolylineManager.java index 3f73403da5..e1da74057e 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/manager/impl/MoGoPersonWarnPolylineManager.java +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/manager/impl/MoGoPersonWarnPolylineManager.java @@ -1,18 +1,17 @@ -package com.mogo.eagle.core.function.v2x.events.manager.impl; +package com.mogo.eagle.function.biz.v2x.v2n.manager.impl; import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_V2X; import android.content.Context; import com.alibaba.android.arouter.facade.annotation.Route; -import com.mogo.commons.AbsMogoApplication; import com.mogo.eagle.core.data.map.MogoLatLng; import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; -import com.mogo.eagle.core.function.v2x.events.consts.MoGoV2XServicePaths; -import com.mogo.eagle.core.function.v2x.events.consts.V2XConst; +import com.mogo.eagle.function.biz.v2x.v2n.consts.MoGoV2XServicePaths; +import com.mogo.eagle.function.biz.v2x.v2n.consts.V2XConst; import com.mogo.eagle.core.data.v2x.DrawLineInfo; -import com.mogo.eagle.core.function.v2x.events.manager.IMoGoPersonWarnPolylineManager; +import com.mogo.eagle.function.biz.v2x.v2n.manager.IMoGoPersonWarnPolylineManager; import com.mogo.map.overlay.IMogoOverlayManager; import com.mogo.map.overlay.IMogoPolyline; import com.mogo.map.overlay.MogoPolylineOptions; diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/manager/impl/MoGoStopPolylineManager.java b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/manager/impl/MoGoStopPolylineManager.java similarity index 89% rename from core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/manager/impl/MoGoStopPolylineManager.java rename to core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/manager/impl/MoGoStopPolylineManager.java index 287be0c2c7..806688aabf 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/manager/impl/MoGoStopPolylineManager.java +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/manager/impl/MoGoStopPolylineManager.java @@ -1,18 +1,17 @@ -package com.mogo.eagle.core.function.v2x.events.manager.impl; +package com.mogo.eagle.function.biz.v2x.v2n.manager.impl; import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_V2X; import android.content.Context; import com.alibaba.android.arouter.facade.annotation.Route; -import com.mogo.commons.AbsMogoApplication; import com.mogo.eagle.core.data.map.MogoLatLng; import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; -import com.mogo.eagle.core.function.v2x.events.consts.MoGoV2XServicePaths; -import com.mogo.eagle.core.function.v2x.events.consts.V2XConst; +import com.mogo.eagle.function.biz.v2x.v2n.consts.MoGoV2XServicePaths; +import com.mogo.eagle.function.biz.v2x.v2n.consts.V2XConst; import com.mogo.eagle.core.data.v2x.DrawLineInfo; -import com.mogo.eagle.core.function.v2x.events.manager.IMoGoStopPolylineManager; +import com.mogo.eagle.function.biz.v2x.v2n.manager.IMoGoStopPolylineManager; import com.mogo.map.overlay.IMogoOverlayManager; import com.mogo.map.overlay.IMogoPolyline; import com.mogo.map.overlay.MogoPolylineOptions; diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/manager/impl/MoGoV2XMarkerManager.java b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/manager/impl/MoGoV2XMarkerManager.java similarity index 95% rename from core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/manager/impl/MoGoV2XMarkerManager.java rename to core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/manager/impl/MoGoV2XMarkerManager.java index 932164de80..b8d394e893 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/manager/impl/MoGoV2XMarkerManager.java +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/manager/impl/MoGoV2XMarkerManager.java @@ -1,4 +1,4 @@ -package com.mogo.eagle.core.function.v2x.events.manager.impl; +package com.mogo.eagle.function.biz.v2x.v2n.manager.impl; import static com.mogo.commons.module.ServiceConst.CARD_TYPE_NOVELTY; import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_V2X; @@ -16,10 +16,10 @@ import com.mogo.eagle.core.data.map.entity.MarkerShowEntity; import com.mogo.eagle.core.data.map.entity.V2XRoadEventEntity; import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02ListenerManager; import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager; -import com.mogo.eagle.core.function.v2x.events.consts.MoGoV2XServicePaths; -import com.mogo.eagle.core.function.v2x.events.manager.IMoGoV2XMarkerManager; -import com.mogo.eagle.core.function.v2x.events.marker.V2XMarkerAdapter; -import com.mogo.eagle.core.function.v2x.events.utils.MapUtils; +import com.mogo.eagle.function.biz.v2x.v2n.consts.MoGoV2XServicePaths; +import com.mogo.eagle.function.biz.v2x.v2n.manager.IMoGoV2XMarkerManager; +import com.mogo.eagle.function.biz.v2x.v2n.marker.V2XMarkerAdapter; +import com.mogo.eagle.function.biz.v2x.v2n.utils.MapUtils; import com.mogo.eagle.core.data.v2x.V2XMarkerCardResult; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.map.marker.IMogoMarker; diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/manager/impl/MoGoWarnPolylineManager.java b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/manager/impl/MoGoWarnPolylineManager.java similarity index 92% rename from core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/manager/impl/MoGoWarnPolylineManager.java rename to core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/manager/impl/MoGoWarnPolylineManager.java index a5ed5eda32..b0ae820d1f 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/manager/impl/MoGoWarnPolylineManager.java +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/manager/impl/MoGoWarnPolylineManager.java @@ -1,17 +1,16 @@ -package com.mogo.eagle.core.function.v2x.events.manager.impl; +package com.mogo.eagle.function.biz.v2x.v2n.manager.impl; import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_V2X; import android.content.Context; import com.alibaba.android.arouter.facade.annotation.Route; -import com.mogo.commons.AbsMogoApplication; import com.mogo.eagle.core.data.map.MogoLatLng; import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; -import com.mogo.eagle.core.function.v2x.events.consts.MoGoV2XServicePaths; +import com.mogo.eagle.function.biz.v2x.v2n.consts.MoGoV2XServicePaths; import com.mogo.eagle.core.data.v2x.DrawLineInfo; -import com.mogo.eagle.core.function.v2x.events.manager.IMoGoWarnPolylineManager; +import com.mogo.eagle.function.biz.v2x.v2n.manager.IMoGoWarnPolylineManager; import com.mogo.map.overlay.IMogoOverlayManager; import com.mogo.map.overlay.IMogoPolyline; import com.mogo.map.overlay.MogoPolylineOptions; diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/marker/V2XMarkerAdapter.java b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/marker/V2XMarkerAdapter.java similarity index 98% rename from core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/marker/V2XMarkerAdapter.java rename to core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/marker/V2XMarkerAdapter.java index 12a6e872f0..4038b75603 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/marker/V2XMarkerAdapter.java +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/marker/V2XMarkerAdapter.java @@ -1,11 +1,11 @@ -package com.mogo.eagle.core.function.v2x.events.marker; +package com.mogo.eagle.function.biz.v2x.v2n.marker; import android.content.Context; import android.graphics.Bitmap; import com.mogo.eagle.core.data.enums.EventTypeEnumNew; import com.mogo.eagle.core.data.map.entity.V2XRoadEventEntity; import com.mogo.eagle.core.function.v2x.R; -import com.mogo.eagle.core.function.v2x.events.view.V2XMarkerRoadEventView; +import com.mogo.eagle.function.biz.v2x.v2n.view.V2XMarkerRoadEventView; import java.util.ArrayList; /** diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/http/V2XRefreshModel.kt b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/network/V2XRefreshModel.kt similarity index 88% rename from core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/http/V2XRefreshModel.kt rename to core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/network/V2XRefreshModel.kt index d24d8004c9..cbf3207f39 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/http/V2XRefreshModel.kt +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/network/V2XRefreshModel.kt @@ -1,4 +1,4 @@ -package com.mogo.eagle.core.function.v2x.internal.http +package com.mogo.eagle.function.biz.v2x.v2n.network import com.elegant.network.utils.GsonUtil import com.elegant.network.utils.SignUtil @@ -8,18 +8,12 @@ import com.mogo.cloud.passport.MoGoAiCloudClientConfig import com.mogo.commons.AbsMogoApplication import com.mogo.commons.constants.HostConst import com.mogo.commons.network.ParamsUtil -import com.mogo.eagle.core.data.enums.DataSourceType -import com.mogo.eagle.core.data.msgbox.MsgBoxBean -import com.mogo.eagle.core.data.msgbox.MsgBoxType -import com.mogo.eagle.core.data.msgbox.V2XMsg import com.mogo.eagle.core.data.v2x.V2XEventData import com.mogo.eagle.core.data.v2x.V2XLocation import com.mogo.eagle.core.data.v2x.V2XMarkerResponse -import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxManager -import com.mogo.eagle.core.function.v2x.events.V2XPoiLoader -import com.mogo.eagle.core.function.v2x.internal.http.api.V2XApiService -import com.mogo.eagle.core.function.v2x.internal.http.body.V2XRefreshEntity -import com.mogo.eagle.core.function.v2x.internal.http.callback.IV2XRefreshCallback +import com.mogo.eagle.function.biz.v2x.v2n.network.api.V2XApiService +import com.mogo.eagle.function.biz.v2x.v2n.network.body.V2XRefreshEntity +import com.mogo.eagle.function.biz.v2x.v2n.network.callback.IV2XRefreshCallback import com.mogo.eagle.core.network.MoGoRetrofitFactory import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/http/api/V2XApiService.kt b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/network/api/V2XApiService.kt similarity index 91% rename from core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/http/api/V2XApiService.kt rename to core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/network/api/V2XApiService.kt index 2ebb219093..2730863ae3 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/http/api/V2XApiService.kt +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/network/api/V2XApiService.kt @@ -1,4 +1,4 @@ -package com.mogo.eagle.core.function.v2x.internal.http.api +package com.mogo.eagle.function.biz.v2x.v2n.network.api import com.mogo.eagle.core.data.v2x.V2XEventResult import com.mogo.eagle.core.data.v2x.V2XMarkerResponse diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/http/body/V2XRefreshEntity.kt b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/network/body/V2XRefreshEntity.kt similarity index 93% rename from core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/http/body/V2XRefreshEntity.kt rename to core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/network/body/V2XRefreshEntity.kt index d99ce1dac4..fead17f6fb 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/http/body/V2XRefreshEntity.kt +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/network/body/V2XRefreshEntity.kt @@ -1,4 +1,4 @@ -package com.mogo.eagle.core.function.v2x.internal.http.body +package com.mogo.eagle.function.biz.v2x.v2n.network.body import androidx.annotation.Keep import com.mogo.eagle.core.data.v2x.V2XLocation diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/callback/IV2XCallback.kt b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/network/callback/IV2XCallback.kt similarity index 92% rename from core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/callback/IV2XCallback.kt rename to core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/network/callback/IV2XCallback.kt index 4a4d0e2b78..e4778e5baf 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/callback/IV2XCallback.kt +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/network/callback/IV2XCallback.kt @@ -1,4 +1,4 @@ -package com.mogo.eagle.core.function.v2x.internal.callback +package com.mogo.eagle.function.biz.v2x.v2n.network.callback import com.mogo.eagle.core.data.v2x.V2XEvent diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/http/callback/IV2XRefreshCallback.kt b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/network/callback/IV2XRefreshCallback.kt similarity index 67% rename from core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/http/callback/IV2XRefreshCallback.kt rename to core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/network/callback/IV2XRefreshCallback.kt index 3fb17ffef7..2dd97cb6be 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/http/callback/IV2XRefreshCallback.kt +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/network/callback/IV2XRefreshCallback.kt @@ -1,4 +1,4 @@ -package com.mogo.eagle.core.function.v2x.internal.http.callback +package com.mogo.eagle.function.biz.v2x.v2n.network.callback /** * 刷新回调 diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/receiver/SceneBroadcastReceiver.kt b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/receiver/SceneBroadcastReceiver.kt similarity index 85% rename from core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/receiver/SceneBroadcastReceiver.kt rename to core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/receiver/SceneBroadcastReceiver.kt index 44a19d8500..1d07fc9312 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/receiver/SceneBroadcastReceiver.kt +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/receiver/SceneBroadcastReceiver.kt @@ -1,4 +1,4 @@ -package com.mogo.eagle.core.function.v2x.events.receiver +package com.mogo.eagle.function.biz.v2x.v2n.receiver import android.content.BroadcastReceiver import android.content.Context @@ -6,8 +6,8 @@ import android.content.Intent import android.content.IntentFilter import androidx.localbroadcastmanager.content.LocalBroadcastManager import com.mogo.eagle.core.data.map.entity.V2XMessageEntity -import com.mogo.eagle.core.function.v2x.events.consts.V2XConst -import com.mogo.eagle.core.function.v2x.events.scenario.impl.V2XScenarioManager +import com.mogo.eagle.function.biz.v2x.v2n.consts.V2XConst +import com.mogo.eagle.function.biz.v2x.v2n.scenario.impl.V2XScenarioManager class SceneBroadcastReceiver : BroadcastReceiver() { diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/remove/MarkerRemoveManager.kt b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/remove/MarkerRemoveManager.kt similarity index 99% rename from core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/remove/MarkerRemoveManager.kt rename to core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/remove/MarkerRemoveManager.kt index 5afb5fc401..cc40d5d4ff 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/remove/MarkerRemoveManager.kt +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/remove/MarkerRemoveManager.kt @@ -1,4 +1,4 @@ -package com.mogo.eagle.core.function.v2x.events.remove +package com.mogo.eagle.function.biz.v2x.v2n.remove import android.os.Handler import android.os.HandlerThread diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/scenario/IV2XScenario.java b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/scenario/IV2XScenario.java similarity index 92% rename from core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/scenario/IV2XScenario.java rename to core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/scenario/IV2XScenario.java index 40ef63740f..99ed07daf8 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/scenario/IV2XScenario.java +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/scenario/IV2XScenario.java @@ -1,4 +1,4 @@ -package com.mogo.eagle.core.function.v2x.events.scenario; +package com.mogo.eagle.function.biz.v2x.v2n.scenario; import com.mogo.eagle.core.data.map.entity.V2XMessageEntity; diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/scenario/IV2XScenarioManager.java b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/scenario/IV2XScenarioManager.java similarity index 84% rename from core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/scenario/IV2XScenarioManager.java rename to core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/scenario/IV2XScenarioManager.java index 7e055dcca3..13e03f1f10 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/scenario/IV2XScenarioManager.java +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/scenario/IV2XScenarioManager.java @@ -1,4 +1,4 @@ -package com.mogo.eagle.core.function.v2x.events.scenario; +package com.mogo.eagle.function.biz.v2x.v2n.scenario; import com.mogo.eagle.core.data.map.entity.V2XMessageEntity; diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/scenario/impl/AbsV2XScenario.java b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/scenario/impl/AbsV2XScenario.java similarity index 88% rename from core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/scenario/impl/AbsV2XScenario.java rename to core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/scenario/impl/AbsV2XScenario.java index 88baed92e0..6708c38ef9 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/scenario/impl/AbsV2XScenario.java +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/scenario/impl/AbsV2XScenario.java @@ -1,11 +1,11 @@ -package com.mogo.eagle.core.function.v2x.events.scenario.impl; +package com.mogo.eagle.function.biz.v2x.v2n.scenario.impl; import androidx.annotation.Nullable; import com.mogo.eagle.core.data.map.entity.V2XMessageEntity; -import com.mogo.eagle.core.function.v2x.events.scenario.IV2XScenario; -import com.mogo.eagle.core.function.v2x.events.scenario.view.IV2XMarker; +import com.mogo.eagle.function.biz.v2x.v2n.scenario.IV2XScenario; +import com.mogo.eagle.function.biz.v2x.v2n.scenario.view.IV2XMarker; import java.util.concurrent.atomic.AtomicReference; diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/scenario/impl/V2XScenarioManager.java b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/scenario/impl/V2XScenarioManager.java similarity index 89% rename from core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/scenario/impl/V2XScenarioManager.java rename to core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/scenario/impl/V2XScenarioManager.java index d9d77b72df..20061490ec 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/scenario/impl/V2XScenarioManager.java +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/scenario/impl/V2XScenarioManager.java @@ -1,22 +1,18 @@ -package com.mogo.eagle.core.function.v2x.events.scenario.impl; +package com.mogo.eagle.function.biz.v2x.v2n.scenario.impl; import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_V2X; -import android.content.Intent; - import androidx.localbroadcastmanager.content.LocalBroadcastManager; import com.mogo.commons.module.status.MogoStatusManager; import com.mogo.eagle.core.data.config.HmiBuildConfig; import com.mogo.eagle.core.data.map.entity.V2XMessageEntity; import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager; -import com.mogo.eagle.core.function.v2x.events.consts.V2XConst; -import com.mogo.eagle.core.function.v2x.events.scenario.IV2XScenarioManager; -import com.mogo.eagle.core.function.v2x.events.scenario.scene.road.V2XRoadEventScenario; -import com.mogo.eagle.core.function.v2x.events.scenario.scene.warning.V2XFrontWarningScenario; +import com.mogo.eagle.function.biz.v2x.v2n.scenario.IV2XScenarioManager; +import com.mogo.eagle.function.biz.v2x.v2n.scenario.scene.road.V2XRoadEventScenario; +import com.mogo.eagle.function.biz.v2x.v2n.scenario.scene.warning.V2XFrontWarningScenario; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.eagle.core.utilcode.util.ThreadUtils; -import com.mogo.eagle.core.utilcode.util.Utils; import com.mogo.map.uicontroller.IMogoMapUIController; import com.mogo.map.uicontroller.VisualAngleMode; diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/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 similarity index 96% rename from core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/scenario/scene/airoad/AiRoadMarker.kt rename to core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/scenario/scene/airoad/AiRoadMarker.kt index c088868c50..91f0bbbf7a 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/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 @@ -1,4 +1,4 @@ -package com.mogo.eagle.core.function.v2x.events.scenario.scene.airoad +package com.mogo.eagle.function.biz.v2x.v2n.scenario.scene.airoad import android.animation.ArgbEvaluator import android.graphics.Color @@ -11,7 +11,7 @@ import com.mogo.eagle.core.data.map.MogoLatLng import com.mogo.eagle.core.data.map.entity.V2XRoadEventEntity import com.mogo.eagle.core.function.call.autopilot.* import com.mogo.eagle.core.function.call.map.* -import com.mogo.eagle.core.function.v2x.events.scenario.scene.road.V2XAiRoadEventMarker +import com.mogo.eagle.function.biz.v2x.v2n.scenario.scene.road.V2XAiRoadEventMarker import com.mogo.eagle.core.utilcode.mogo.logger.Logger import com.mogo.eagle.core.utilcode.util.DrivingDirectionUtils import com.mogo.map.MogoMap @@ -20,8 +20,8 @@ import com.mogo.map.overlay.MogoPolylineOptions import java.util.* import java.util.concurrent.atomic.AtomicReference import java.util.concurrent.ConcurrentHashMap -import com.mogo.eagle.core.function.v2x.events.remove.MarkerRemoveManager -import com.mogo.eagle.core.function.v2x.events.remove.MarkerWrapper +import com.mogo.eagle.function.biz.v2x.v2n.remove.MarkerRemoveManager +import com.mogo.eagle.function.biz.v2x.v2n.remove.MarkerWrapper /** * Ai云道路施工事件,道路颜色标记类 diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/scenario/scene/road/V2XAiRoadEventMarker.kt b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/scenario/scene/road/V2XAiRoadEventMarker.kt similarity index 88% rename from core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/scenario/scene/road/V2XAiRoadEventMarker.kt rename to core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/scenario/scene/road/V2XAiRoadEventMarker.kt index 2a1ee214bd..6ffc579935 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/scenario/scene/road/V2XAiRoadEventMarker.kt +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/scenario/scene/road/V2XAiRoadEventMarker.kt @@ -1,14 +1,13 @@ -package com.mogo.eagle.core.function.v2x.events.scenario.scene.road +package com.mogo.eagle.function.biz.v2x.v2n.scenario.scene.road import android.graphics.Color import com.mogo.eagle.core.data.enums.EventTypeEnumNew import com.mogo.eagle.core.data.map.MogoLatLng -import com.mogo.eagle.core.data.map.MogoLocation import com.mogo.eagle.core.data.map.entity.V2XRoadEventEntity import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager -import com.mogo.eagle.core.function.v2x.events.bridge.BridgeApi.context -import com.mogo.eagle.core.function.v2x.events.bridge.BridgeApi.v2xMarker -import com.mogo.eagle.core.function.v2x.events.remove.MarkerWrapper +import com.mogo.eagle.function.biz.v2x.v2n.bridge.BridgeApi.context +import com.mogo.eagle.function.biz.v2x.v2n.bridge.BridgeApi.v2xMarker +import com.mogo.eagle.function.biz.v2x.v2n.remove.MarkerWrapper import com.mogo.map.marker.IMogoMarker import com.mogo.map.overlay.IMogoPolyline import com.mogo.map.overlay.MogoPolylineOptions diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/scenario/scene/road/V2XRoadEventMarker.java b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/scenario/scene/road/V2XRoadEventMarker.java similarity index 87% rename from core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/scenario/scene/road/V2XRoadEventMarker.java rename to core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/scenario/scene/road/V2XRoadEventMarker.java index b97689f35b..992c0c3c33 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/scenario/scene/road/V2XRoadEventMarker.java +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/scenario/scene/road/V2XRoadEventMarker.java @@ -1,4 +1,4 @@ -package com.mogo.eagle.core.function.v2x.events.scenario.scene.road; +package com.mogo.eagle.function.biz.v2x.v2n.scenario.scene.road; import android.util.Log; import androidx.core.util.Pair; @@ -6,12 +6,12 @@ import com.mogo.eagle.core.data.enums.EventTypeEnumNew; import com.mogo.eagle.core.data.map.entity.MarkerExploreWay; import com.mogo.eagle.core.data.map.entity.MarkerLocation; import com.mogo.eagle.core.data.map.entity.V2XRoadEventEntity; -import com.mogo.eagle.core.function.v2x.events.bridge.BridgeApi; -import com.mogo.eagle.core.function.v2x.events.manager.IMoGoV2XMarkerManager; -import com.mogo.eagle.core.function.v2x.events.remove.MarkerWrapper; -import com.mogo.eagle.core.function.v2x.events.remove.MarkerRemoveManager; -import com.mogo.eagle.core.function.v2x.events.scenario.scene.airoad.AiRoadMarker; -import com.mogo.eagle.core.function.v2x.events.scenario.view.IV2XMarker; +import com.mogo.eagle.function.biz.v2x.v2n.bridge.BridgeApi; +import com.mogo.eagle.function.biz.v2x.v2n.manager.IMoGoV2XMarkerManager; +import com.mogo.eagle.function.biz.v2x.v2n.remove.MarkerWrapper; +import com.mogo.eagle.function.biz.v2x.v2n.remove.MarkerRemoveManager; +import com.mogo.eagle.function.biz.v2x.v2n.scenario.scene.airoad.AiRoadMarker; +import com.mogo.eagle.function.biz.v2x.v2n.scenario.view.IV2XMarker; import com.mogo.map.marker.IMogoMarker; import java.util.ArrayList; import java.util.List; diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/scenario/scene/road/V2XRoadEventScenario.java b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/scenario/scene/road/V2XRoadEventScenario.java similarity index 97% rename from core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/scenario/scene/road/V2XRoadEventScenario.java rename to core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/scenario/scene/road/V2XRoadEventScenario.java index c604e02cc3..27f28c1e21 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/scenario/scene/road/V2XRoadEventScenario.java +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/scenario/scene/road/V2XRoadEventScenario.java @@ -1,4 +1,4 @@ -package com.mogo.eagle.core.function.v2x.events.scenario.scene.road; +package com.mogo.eagle.function.biz.v2x.v2n.scenario.scene.road; import com.mogo.commons.AbsMogoApplication; import com.mogo.eagle.core.data.enums.EventTypeEnumNew; @@ -17,8 +17,8 @@ import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager import com.mogo.eagle.core.function.call.hmi.CallerHmiManager; import com.mogo.eagle.core.function.call.map.CallerVisualAngleManager; import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxManager; -import com.mogo.eagle.core.function.v2x.events.scenario.impl.AbsV2XScenario; -import com.mogo.eagle.core.function.v2x.events.scenario.view.IV2XMarker; +import com.mogo.eagle.function.biz.v2x.v2n.scenario.impl.AbsV2XScenario; +import com.mogo.eagle.function.biz.v2x.v2n.scenario.view.IV2XMarker; import com.mogo.eagle.core.network.utils.GsonUtil; import com.mogo.eagle.core.utilcode.mogo.logger.Logger; import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr; diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/scenario/scene/warning/V2XFrontWarningScenario.java b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/scenario/scene/warning/V2XFrontWarningScenario.java similarity index 96% rename from core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/scenario/scene/warning/V2XFrontWarningScenario.java rename to core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/scenario/scene/warning/V2XFrontWarningScenario.java index 9350454df4..18573dfa04 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/scenario/scene/warning/V2XFrontWarningScenario.java +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/scenario/scene/warning/V2XFrontWarningScenario.java @@ -1,4 +1,4 @@ -package com.mogo.eagle.core.function.v2x.events.scenario.scene.warning; +package com.mogo.eagle.function.biz.v2x.v2n.scenario.scene.warning; import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_V2X; @@ -21,8 +21,8 @@ import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisLocationGCJ02Liste import com.mogo.eagle.core.function.api.hmi.warning.IMoGoWarningStatusListener; import com.mogo.eagle.core.function.call.hmi.CallerHmiManager; import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxManager; -import com.mogo.eagle.core.function.v2x.events.scenario.impl.AbsV2XScenario; -import com.mogo.eagle.core.function.v2x.events.scenario.view.IV2XMarker; +import com.mogo.eagle.function.biz.v2x.v2n.scenario.impl.AbsV2XScenario; +import com.mogo.eagle.function.biz.v2x.v2n.scenario.view.IV2XMarker; import com.mogo.eagle.core.data.v2x.V2XWarningTarget; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/scenario/scene/warning/V2XWarningMarker.java b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/scenario/scene/warning/V2XWarningMarker.java similarity index 98% rename from core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/scenario/scene/warning/V2XWarningMarker.java rename to core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/scenario/scene/warning/V2XWarningMarker.java index c0ca15c5cb..8ad6643354 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/scenario/scene/warning/V2XWarningMarker.java +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/scenario/scene/warning/V2XWarningMarker.java @@ -1,4 +1,4 @@ -package com.mogo.eagle.core.function.v2x.events.scenario.scene.warning; +package com.mogo.eagle.function.biz.v2x.v2n.scenario.scene.warning; import static com.mogo.eagle.core.data.constants.DataTypes.TYPE_MARKER_CLOUD_STOP_LINE_DATA; import static com.mogo.eagle.core.data.constants.DataTypes.TYPE_MARKER_CLOUD_WARN_DATA; @@ -13,11 +13,11 @@ import com.mogo.eagle.core.data.map.MogoLocation; import com.mogo.eagle.core.data.v2x.DrawLineInfo; import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationWGS84ListenerManager; import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager; -import com.mogo.eagle.core.function.v2x.events.bridge.BridgeApi; -import com.mogo.eagle.core.function.v2x.events.manager.IMoGoPersonWarnPolylineManager; -import com.mogo.eagle.core.function.v2x.events.manager.IMoGoStopPolylineManager; -import com.mogo.eagle.core.function.v2x.events.manager.IMoGoWarnPolylineManager; -import com.mogo.eagle.core.function.v2x.events.scenario.view.IV2XMarker; +import com.mogo.eagle.function.biz.v2x.v2n.bridge.BridgeApi; +import com.mogo.eagle.function.biz.v2x.v2n.manager.IMoGoPersonWarnPolylineManager; +import com.mogo.eagle.function.biz.v2x.v2n.manager.IMoGoStopPolylineManager; +import com.mogo.eagle.function.biz.v2x.v2n.manager.IMoGoWarnPolylineManager; +import com.mogo.eagle.function.biz.v2x.v2n.scenario.view.IV2XMarker; import com.mogo.eagle.core.data.v2x.V2XLocation; import com.mogo.eagle.core.data.v2x.V2XWarningTarget; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/scenario/view/IV2XMarker.java b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/scenario/view/IV2XMarker.java similarity index 77% rename from core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/scenario/view/IV2XMarker.java rename to core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/scenario/view/IV2XMarker.java index 8dcf008880..7a88880088 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/scenario/view/IV2XMarker.java +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/scenario/view/IV2XMarker.java @@ -1,4 +1,4 @@ -package com.mogo.eagle.core.function.v2x.events.scenario.view; +package com.mogo.eagle.function.biz.v2x.v2n.scenario.view; /** * author : donghongyu diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/test/TestConsts.kt b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/test/TestConsts.kt similarity index 79% rename from core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/test/TestConsts.kt rename to core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/test/TestConsts.kt index 98e85df379..4aa9ccd60f 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/test/TestConsts.kt +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/test/TestConsts.kt @@ -1,4 +1,4 @@ -package com.mogo.eagle.core.function.v2x.events.test +package com.mogo.eagle.function.biz.v2x.v2n.test class TestConsts { diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/test/TestOnLineCarUtils.java b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/test/TestOnLineCarUtils.java similarity index 99% rename from core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/test/TestOnLineCarUtils.java rename to core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/test/TestOnLineCarUtils.java index 08a55061f4..8a0c63380c 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/test/TestOnLineCarUtils.java +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/test/TestOnLineCarUtils.java @@ -1,4 +1,4 @@ -package com.mogo.eagle.core.function.v2x.events.test; +package com.mogo.eagle.function.biz.v2x.v2n.test; import static com.mogo.eagle.core.data.map.entity.V2XMessageEntity.V2XTypeEnum.ALERT_ROAD_WARNING; diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/test/TestV2XReceiver.java b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/test/TestV2XReceiver.java similarity index 97% rename from core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/test/TestV2XReceiver.java rename to core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/test/TestV2XReceiver.java index acd5440e71..12ece21973 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/test/TestV2XReceiver.java +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/test/TestV2XReceiver.java @@ -1,4 +1,4 @@ -package com.mogo.eagle.core.function.v2x.events.test; +package com.mogo.eagle.function.biz.v2x.v2n.test; import android.content.BroadcastReceiver; import android.content.Context; @@ -10,7 +10,7 @@ import com.mogo.eagle.core.data.map.MogoLatLng; import com.mogo.eagle.core.data.map.entity.V2XMessageEntity; import com.mogo.eagle.core.data.map.entity.V2XRoadEventEntity; import com.mogo.eagle.core.data.v2x.V2XOptimalRouteDataRes; -import com.mogo.eagle.core.function.v2x.events.consts.V2XConst; +import com.mogo.eagle.function.biz.v2x.v2n.consts.V2XConst; import java.util.List; diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/utils/DistanceUtils.kt b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/utils/DistanceUtils.kt similarity index 96% rename from core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/utils/DistanceUtils.kt rename to core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/utils/DistanceUtils.kt index 43f59ca92c..89538c294e 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/internal/utils/DistanceUtils.kt +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/utils/DistanceUtils.kt @@ -1,4 +1,4 @@ -package com.mogo.eagle.core.function.v2x.internal.utils +package com.mogo.eagle.function.biz.v2x.v2n.utils import kotlin.math.asin import kotlin.math.cos diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/utils/EntityUtils.kt b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/utils/EntityUtils.kt similarity index 96% rename from core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/utils/EntityUtils.kt rename to core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/utils/EntityUtils.kt index 69c1369b52..89b9608339 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/utils/EntityUtils.kt +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/utils/EntityUtils.kt @@ -1,4 +1,4 @@ -package com.mogo.eagle.core.function.v2x.events.utils +package com.mogo.eagle.function.biz.v2x.v2n.utils import androidx.core.util.Pair import com.mogo.eagle.core.data.enums.EventTypeEnumNew.Companion.isRoadEvent @@ -7,7 +7,7 @@ import com.mogo.eagle.core.data.map.entity.MarkerLocation import com.mogo.eagle.core.data.map.entity.V2XRoadEventEntity import com.mogo.eagle.core.data.v2x.V2XMarkerCardResult import com.mogo.eagle.core.data.v2x.V2XRoadXData -import com.mogo.eagle.core.function.v2x.events.scenario.scene.airoad.AiRoadMarker +import com.mogo.eagle.function.biz.v2x.v2n.scenario.scene.airoad.AiRoadMarker import com.mogo.eagle.core.utilcode.util.CoordinateTransform import mogo.telematics.pad.MessagePad import roadwork.Road diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/utils/MapUtils.kt b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/utils/MapUtils.kt similarity index 96% rename from core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/utils/MapUtils.kt rename to core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/utils/MapUtils.kt index c49b645366..3615906cb1 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/utils/MapUtils.kt +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/utils/MapUtils.kt @@ -1,4 +1,4 @@ -package com.mogo.eagle.core.function.v2x.events.utils +package com.mogo.eagle.function.biz.v2x.v2n.utils import android.content.Context import android.graphics.Rect diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/view/V2XMarkerRoadEventView.kt b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/view/V2XMarkerRoadEventView.kt similarity index 95% rename from core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/view/V2XMarkerRoadEventView.kt rename to core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/view/V2XMarkerRoadEventView.kt index c9d1589194..dc1640cb25 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/view/V2XMarkerRoadEventView.kt +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/view/V2XMarkerRoadEventView.kt @@ -1,4 +1,4 @@ -package com.mogo.eagle.core.function.v2x.events.view +package com.mogo.eagle.function.biz.v2x.v2n.view import android.content.Context @@ -7,7 +7,7 @@ import android.view.LayoutInflater import androidx.constraintlayout.widget.ConstraintLayout import com.mogo.eagle.core.data.enums.EventTypeEnumNew import com.mogo.eagle.core.data.map.entity.V2XRoadEventEntity -import com.mogo.eagle.core.function.v2x.R +import com.mogo.eagle.core.function.biz.R import com.mogo.eagle.core.utilcode.util.ViewUtils import kotlinx.android.synthetic.main.view_marker_event_car.view.* diff --git a/core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi-1920x1000/v_to_x_marker_1.png b/core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi-1920x1000/v_to_x_marker_1.png similarity index 100% rename from core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi-1920x1000/v_to_x_marker_1.png rename to core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi-1920x1000/v_to_x_marker_1.png diff --git a/core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi-1920x1000/v_to_x_warning_car_red.png b/core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi-1920x1000/v_to_x_warning_car_red.png similarity index 100% rename from core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi-1920x1000/v_to_x_warning_car_red.png rename to core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi-1920x1000/v_to_x_warning_car_red.png diff --git a/core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_marker_1.png b/core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_marker_1.png similarity index 100% rename from core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_marker_1.png rename to core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_marker_1.png diff --git a/core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_car_red.png b/core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_car_red.png similarity index 100% rename from core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_car_red.png rename to core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_car_red.png diff --git a/core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00011.png b/core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00011.png similarity index 100% rename from core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00011.png rename to core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00011.png diff --git a/core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00012.png b/core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00012.png similarity index 100% rename from core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00012.png rename to core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00012.png diff --git a/core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00013.png b/core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00013.png similarity index 100% rename from core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00013.png rename to core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00013.png diff --git a/core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00014.png b/core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00014.png similarity index 100% rename from core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00014.png rename to core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00014.png diff --git a/core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00015.png b/core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00015.png similarity index 100% rename from core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00015.png rename to core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00015.png diff --git a/core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00016.png b/core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00016.png similarity index 100% rename from core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00016.png rename to core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00016.png diff --git a/core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00017.png b/core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00017.png similarity index 100% rename from core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00017.png rename to core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00017.png diff --git a/core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00018.png b/core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00018.png similarity index 100% rename from core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00018.png rename to core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00018.png diff --git a/core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00019.png b/core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00019.png similarity index 100% rename from core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00019.png rename to core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00019.png diff --git a/core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00020.png b/core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00020.png similarity index 100% rename from core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00020.png rename to core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00020.png diff --git a/core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00021.png b/core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00021.png similarity index 100% rename from core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00021.png rename to core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00021.png diff --git a/core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00022.png b/core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00022.png similarity index 100% rename from core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00022.png rename to core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00022.png diff --git a/core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00023.png b/core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00023.png similarity index 100% rename from core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00023.png rename to core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00023.png diff --git a/core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00024.png b/core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00024.png similarity index 100% rename from core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00024.png rename to core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00024.png diff --git a/core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00025.png b/core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00025.png similarity index 100% rename from core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00025.png rename to core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00025.png diff --git a/core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00026.png b/core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00026.png similarity index 100% rename from core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00026.png rename to core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00026.png diff --git a/core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00027.png b/core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00027.png similarity index 100% rename from core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00027.png rename to core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00027.png diff --git a/core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00028.png b/core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00028.png similarity index 100% rename from core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00028.png rename to core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00028.png diff --git a/core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00029.png b/core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00029.png similarity index 100% rename from core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00029.png rename to core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00029.png diff --git a/core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00030.png b/core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00030.png similarity index 100% rename from core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00030.png rename to core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00030.png diff --git a/core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00031.png b/core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00031.png similarity index 100% rename from core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00031.png rename to core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00031.png diff --git a/core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00032.png b/core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00032.png similarity index 100% rename from core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00032.png rename to core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00032.png diff --git a/core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00033.png b/core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00033.png similarity index 100% rename from core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00033.png rename to core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00033.png diff --git a/core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00034.png b/core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00034.png similarity index 100% rename from core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00034.png rename to core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00034.png diff --git a/core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00035.png b/core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00035.png similarity index 100% rename from core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00035.png rename to core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00035.png diff --git a/core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00036.png b/core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00036.png similarity index 100% rename from core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00036.png rename to core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00036.png diff --git a/core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00037.png b/core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00037.png similarity index 100% rename from core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00037.png rename to core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00037.png diff --git a/core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00038.png b/core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00038.png similarity index 100% rename from core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00038.png rename to core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00038.png diff --git a/core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00039.png b/core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00039.png similarity index 100% rename from core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00039.png rename to core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00039.png diff --git a/core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00040.png b/core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00040.png similarity index 100% rename from core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00040.png rename to core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00040.png diff --git a/core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00041.png b/core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00041.png similarity index 100% rename from core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00041.png rename to core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00041.png diff --git a/core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00042.png b/core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00042.png similarity index 100% rename from core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00042.png rename to core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00042.png diff --git a/core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00043.png b/core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00043.png similarity index 100% rename from core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00043.png rename to core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00043.png diff --git a/core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00044.png b/core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00044.png similarity index 100% rename from core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00044.png rename to core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00044.png diff --git a/core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00045.png b/core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00045.png similarity index 100% rename from core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00045.png rename to core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00045.png diff --git a/core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00046.png b/core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00046.png similarity index 100% rename from core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00046.png rename to core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00046.png diff --git a/core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00047.png b/core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00047.png similarity index 100% rename from core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00047.png rename to core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00047.png diff --git a/core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00048.png b/core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00048.png similarity index 100% rename from core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00048.png rename to core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_orange_00048.png diff --git a/core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00011.png b/core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00011.png similarity index 100% rename from core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00011.png rename to core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00011.png diff --git a/core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00012.png b/core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00012.png similarity index 100% rename from core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00012.png rename to core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00012.png diff --git a/core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00013.png b/core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00013.png similarity index 100% rename from core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00013.png rename to core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00013.png diff --git a/core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00014.png b/core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00014.png similarity index 100% rename from core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00014.png rename to core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00014.png diff --git a/core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00015.png b/core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00015.png similarity index 100% rename from core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00015.png rename to core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00015.png diff --git a/core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00016.png b/core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00016.png similarity index 100% rename from core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00016.png rename to core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00016.png diff --git a/core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00017.png b/core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00017.png similarity index 100% rename from core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00017.png rename to core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00017.png diff --git a/core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00018.png b/core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00018.png similarity index 100% rename from core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00018.png rename to core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00018.png diff --git a/core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00019.png b/core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00019.png similarity index 100% rename from core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00019.png rename to core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00019.png diff --git a/core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00020.png b/core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00020.png similarity index 100% rename from core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00020.png rename to core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00020.png diff --git a/core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00021.png b/core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00021.png similarity index 100% rename from core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00021.png rename to core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00021.png diff --git a/core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00022.png b/core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00022.png similarity index 100% rename from core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00022.png rename to core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00022.png diff --git a/core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00023.png b/core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00023.png similarity index 100% rename from core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00023.png rename to core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00023.png diff --git a/core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00024.png b/core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00024.png similarity index 100% rename from core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00024.png rename to core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00024.png diff --git a/core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00025.png b/core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00025.png similarity index 100% rename from core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00025.png rename to core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00025.png diff --git a/core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00026.png b/core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00026.png similarity index 100% rename from core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00026.png rename to core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00026.png diff --git a/core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00027.png b/core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00027.png similarity index 100% rename from core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00027.png rename to core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00027.png diff --git a/core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00028.png b/core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00028.png similarity index 100% rename from core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00028.png rename to core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00028.png diff --git a/core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00029.png b/core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00029.png similarity index 100% rename from core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00029.png rename to core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00029.png diff --git a/core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00030.png b/core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00030.png similarity index 100% rename from core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00030.png rename to core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00030.png diff --git a/core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00031.png b/core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00031.png similarity index 100% rename from core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00031.png rename to core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00031.png diff --git a/core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00032.png b/core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00032.png similarity index 100% rename from core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00032.png rename to core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00032.png diff --git a/core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00033.png b/core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00033.png similarity index 100% rename from core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00033.png rename to core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00033.png diff --git a/core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00034.png b/core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00034.png similarity index 100% rename from core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00034.png rename to core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00034.png diff --git a/core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00035.png b/core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00035.png similarity index 100% rename from core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00035.png rename to core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00035.png diff --git a/core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00036.png b/core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00036.png similarity index 100% rename from core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00036.png rename to core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00036.png diff --git a/core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00037.png b/core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00037.png similarity index 100% rename from core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00037.png rename to core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00037.png diff --git a/core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00038.png b/core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00038.png similarity index 100% rename from core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00038.png rename to core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00038.png diff --git a/core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00039.png b/core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00039.png similarity index 100% rename from core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00039.png rename to core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00039.png diff --git a/core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00040.png b/core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00040.png similarity index 100% rename from core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00040.png rename to core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00040.png diff --git a/core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00041.png b/core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00041.png similarity index 100% rename from core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00041.png rename to core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00041.png diff --git a/core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00042.png b/core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00042.png similarity index 100% rename from core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00042.png rename to core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00042.png diff --git a/core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00043.png b/core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00043.png similarity index 100% rename from core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00043.png rename to core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00043.png diff --git a/core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00044.png b/core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00044.png similarity index 100% rename from core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00044.png rename to core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00044.png diff --git a/core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00045.png b/core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00045.png similarity index 100% rename from core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00045.png rename to core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00045.png diff --git a/core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00046.png b/core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00046.png similarity index 100% rename from core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00046.png rename to core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00046.png diff --git a/core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00047.png b/core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00047.png similarity index 100% rename from core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00047.png rename to core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00047.png diff --git a/core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00048.png b/core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00048.png similarity index 100% rename from core/function-impl/mogo-core-function-v2x/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00048.png rename to core/function-impl/mogo-core-function-biz/src/main/res/drawable-xhdpi/v_to_x_warning_circle_red_00048.png diff --git a/core/function-impl/mogo-core-function-v2x/src/main/res/layout/view_marker_event_car.xml b/core/function-impl/mogo-core-function-biz/src/main/res/layout/view_marker_event_car.xml similarity index 100% rename from core/function-impl/mogo-core-function-v2x/src/main/res/layout/view_marker_event_car.xml rename to core/function-impl/mogo-core-function-biz/src/main/res/layout/view_marker_event_car.xml diff --git a/core/function-impl/mogo-core-function-v2x/src/main/res/layout/view_marker_event_road.xml b/core/function-impl/mogo-core-function-biz/src/main/res/layout/view_marker_event_road.xml similarity index 100% rename from core/function-impl/mogo-core-function-v2x/src/main/res/layout/view_marker_event_road.xml rename to core/function-impl/mogo-core-function-biz/src/main/res/layout/view_marker_event_road.xml diff --git a/core/function-impl/mogo-core-function-v2x/src/main/res/raw/scenario_road_event_data.json b/core/function-impl/mogo-core-function-biz/src/main/res/raw/scenario_road_event_data.json similarity index 100% rename from core/function-impl/mogo-core-function-v2x/src/main/res/raw/scenario_road_event_data.json rename to core/function-impl/mogo-core-function-biz/src/main/res/raw/scenario_road_event_data.json diff --git a/core/function-impl/mogo-core-function-v2x/src/main/res/raw/scenario_warning_event_data_left.json b/core/function-impl/mogo-core-function-biz/src/main/res/raw/scenario_warning_event_data_left.json similarity index 100% rename from core/function-impl/mogo-core-function-v2x/src/main/res/raw/scenario_warning_event_data_left.json rename to core/function-impl/mogo-core-function-biz/src/main/res/raw/scenario_warning_event_data_left.json diff --git a/core/function-impl/mogo-core-function-v2x/src/main/res/raw/scenario_warning_event_data_pedestrians.json b/core/function-impl/mogo-core-function-biz/src/main/res/raw/scenario_warning_event_data_pedestrians.json similarity index 100% rename from core/function-impl/mogo-core-function-v2x/src/main/res/raw/scenario_warning_event_data_pedestrians.json rename to core/function-impl/mogo-core-function-biz/src/main/res/raw/scenario_warning_event_data_pedestrians.json diff --git a/core/function-impl/mogo-core-function-v2x/src/main/res/raw/scenario_warning_event_data_right.json b/core/function-impl/mogo-core-function-biz/src/main/res/raw/scenario_warning_event_data_right.json similarity index 100% rename from core/function-impl/mogo-core-function-v2x/src/main/res/raw/scenario_warning_event_data_right.json rename to core/function-impl/mogo-core-function-biz/src/main/res/raw/scenario_warning_event_data_right.json diff --git a/core/function-impl/mogo-core-function-v2x/src/main/res/raw/test_coordinates.json b/core/function-impl/mogo-core-function-biz/src/main/res/raw/test_coordinates.json similarity index 100% rename from core/function-impl/mogo-core-function-v2x/src/main/res/raw/test_coordinates.json rename to core/function-impl/mogo-core-function-biz/src/main/res/raw/test_coordinates.json diff --git a/core/function-impl/mogo-core-function-v2x/src/main/res/raw/test_data_v2x_zuiyouluxian.json b/core/function-impl/mogo-core-function-biz/src/main/res/raw/test_data_v2x_zuiyouluxian.json similarity index 100% rename from core/function-impl/mogo-core-function-v2x/src/main/res/raw/test_data_v2x_zuiyouluxian.json rename to core/function-impl/mogo-core-function-biz/src/main/res/raw/test_data_v2x_zuiyouluxian.json diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/MainMoGoApplication.java b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/MainMoGoApplication.java index d1cead5ff1..1a12130971 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/MainMoGoApplication.java +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/MainMoGoApplication.java @@ -124,8 +124,6 @@ public abstract class MainMoGoApplication extends AbsMogoApplication { MogoModulePaths.addModuleFunctionServer(new MogoModule(MogoServicePaths.PATH_FUNC_BIZ, "IMoGoNoticeProvider")); // todo 后置 车聊聊,IM MogoModulePaths.addModuleFunctionServer(new MogoModule(ChatConsts.CHAT_PROVIDER_PATH, ChatConsts.CHAT_MODULE_NAME)); - // V2X 模块 - MogoModulePaths.addBaseModule(new MogoModule(MogoServicePaths.PATH_V2X_MODULE, "V2XProvider")); // 司机身份专属 if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) { // todo 后置 地图数据收集模块 diff --git a/core/function-impl/mogo-core-function-v2x/build.gradle b/core/function-impl/mogo-core-function-v2x/build.gradle index 8e6838c280..6458d99e0d 100644 --- a/core/function-impl/mogo-core-function-v2x/build.gradle +++ b/core/function-impl/mogo-core-function-v2x/build.gradle @@ -45,12 +45,12 @@ dependencies { implementation rootProject.ext.dependencies.androidxccorektx implementation rootProject.ext.dependencies.androidxappcompat implementation rootProject.ext.dependencies.androidxconstraintlayout - implementation rootProject.ext.dependencies.localbroadcastmanager + implementation rootProject.ext.dependencies.arouter implementation rootProject.ext.dependencies.rxandroid kapt rootProject.ext.dependencies.aroutercompiler - implementation rootProject.ext.dependencies.mogoaicloudtrafficlive + implementation rootProject.ext.dependencies.mogoaicloudtrafficlive if (Boolean.valueOf(USE_MAVEN_PACKAGE)) { implementation rootProject.ext.dependencies.mogocommons diff --git a/core/function-impl/mogo-core-function-v2x/src/main/AndroidManifest.xml b/core/function-impl/mogo-core-function-v2x/src/main/AndroidManifest.xml index 246d716c51..8224f27d8d 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/AndroidManifest.xml +++ b/core/function-impl/mogo-core-function-v2x/src/main/AndroidManifest.xml @@ -2,12 +2,7 @@ - - - - - - + \ 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/V2XProvider.kt b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/V2XProvider.kt deleted file mode 100644 index 214567d3fa..0000000000 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/V2XProvider.kt +++ /dev/null @@ -1,36 +0,0 @@ -package com.mogo.eagle.core.function.v2x - -import android.content.Context -import com.alibaba.android.arouter.facade.annotation.Route -import com.mogo.eagle.core.data.config.FunctionBuildConfig -import com.mogo.eagle.core.data.constants.MogoServicePaths.PATH_V2X_MODULE -import com.mogo.eagle.core.function.api.v2x.IV2XEventProvider -import com.mogo.eagle.core.function.v2x.events.V2XEventManager -import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils - -@Route(path = PATH_V2X_MODULE) -class V2XProvider : IV2XEventProvider { - - override val functionName: String - get() = "V2XProvider" - - override fun init(context: Context) { - if (AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode) && AppIdentityModeUtils.isPassenger(FunctionBuildConfig.appIdentityMode)) { - //不处理 - } else { - V2XEventManager.init(context) - } - } - - override fun queryWholeRoadEvents() { - V2XEventManager.queryWholeRoadEvents() - } - - override fun onDestroy() { - if (AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode) && AppIdentityModeUtils.isPassenger(FunctionBuildConfig.appIdentityMode)) { - //不处理 - } else { - V2XEventManager.onDestroy() - } - } -} \ No newline at end of file diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/constants/MogoServicePaths.java b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/constants/MogoServicePaths.java index c75a31e8cd..e7ef1a087a 100644 --- a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/constants/MogoServicePaths.java +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/constants/MogoServicePaths.java @@ -35,12 +35,6 @@ public class MogoServicePaths { @Deprecated public static final String PATH_FLOAT_VIEW_MANAGER = "/floatview/api"; - /** - * v2x 模块 - */ - @Deprecated - public static final String PATH_V2X_MODULE = "/v2x_api/module"; - /** * obu-mogo 模块 */ 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 360416ca62..a3e8171204 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 @@ -56,4 +56,8 @@ interface IMoGoFuncBizProvider : IMoGoFunctionServerProvider { fun fetchInfStructures() fun getAllV2XEvents() + + fun queryV2XEvents() + + } \ No newline at end of file diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/v2x/IV2XEventProvider.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/v2x/IV2XEventProvider.kt deleted file mode 100644 index 629ed5938d..0000000000 --- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/v2x/IV2XEventProvider.kt +++ /dev/null @@ -1,7 +0,0 @@ -package com.mogo.eagle.core.function.api.v2x - -import com.mogo.eagle.core.function.api.base.IMoGoFunctionServerProvider - -interface IV2XEventProvider: IMoGoFunctionServerProvider { - fun queryWholeRoadEvents() -} \ No newline at end of file diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerSmpManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerSmpManager.kt deleted file mode 100644 index 00b48eddf3..0000000000 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerSmpManager.kt +++ /dev/null @@ -1,75 +0,0 @@ -package com.mogo.eagle.core.function.call.map - -import android.os.Looper -import com.alibaba.android.arouter.launcher.ARouter -import com.mogo.eagle.core.data.constants.MogoServicePaths -import com.mogo.eagle.core.data.map.MogoLatLng -import com.mogo.eagle.core.function.api.v2x.IV2XEventProvider -import com.mogo.eagle.core.function.call.base.CallerBase -import com.mogo.eagle.core.utilcode.util.UiThreadHandler - -/** - * @author xiaoyuzhou - * @date 2021/9/17 6:15 下午 - * 小地图调用者管理,这里对外及其他模块提供小地图功能的调用,用啥写啥,不要过度设计,不允许直接将Provider暴露出去 - */ -object CallerSmpManager : CallerBase() { - - private val v2xProvider: IV2XEventProvider - get() = ARouter.getInstance().build(MogoServicePaths.PATH_V2X_MODULE) - .navigation() as IV2XEventProvider - - /** - * 绘制路径线 - */ - @JvmStatic - fun drawablePolyline(coordinates: List?) { -// mogoSmallMapProvider.drawablePolyline(coordinates) - } - - /** - * 清除路径线 - */ - @JvmStatic - fun clearPolyline() { -// mogoSmallMapProvider.clearPolyline() - } - - /** - * 显示面板 - */ - @JvmStatic - fun showPanel() { -// mogoSmallMapProvider.showPanel() - } - - /** - * 隐藏面板 - */ - @JvmStatic - fun hidePanel() { -// mogoSmallMapProvider.hidePanel() - } - - @JvmStatic - fun startQueryV2XEvents() { - if (Thread.currentThread() !== Looper.getMainLooper().thread) { - UiThreadHandler.post { - v2xProvider.queryWholeRoadEvents() - } - } else { - v2xProvider.queryWholeRoadEvents() - } - } - - @JvmStatic - fun clearV2XMarkers() { -// if (Thread.currentThread() !== Looper.getMainLooper().thread) { -// UiThreadHandler.post { -// mogoOverViewMapProvider.clearV2XMarkers() -// } -// } else { -// mogoOverViewMapProvider.clearV2XMarkers() -// } - } -} \ No newline at end of file From ae443b4d43aea5a74a32537cdd99f32330ac3ffe Mon Sep 17 00:00:00 2001 From: zhongchao Date: Fri, 17 Feb 2023 21:40:31 +0800 Subject: [PATCH 11/49] [2.13.0-arch-opt] merge problem --- .../eagle/function/biz/v2x/v2n/marker/V2XMarkerAdapter.java | 2 +- .../eagle/function/biz/v2x/v2n/test/TestOnLineCarUtils.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/marker/V2XMarkerAdapter.java b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/marker/V2XMarkerAdapter.java index 4038b75603..a144505d5c 100644 --- a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/marker/V2XMarkerAdapter.java +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/marker/V2XMarkerAdapter.java @@ -4,7 +4,7 @@ import android.content.Context; import android.graphics.Bitmap; import com.mogo.eagle.core.data.enums.EventTypeEnumNew; import com.mogo.eagle.core.data.map.entity.V2XRoadEventEntity; -import com.mogo.eagle.core.function.v2x.R; +import com.mogo.eagle.core.function.biz.R; import com.mogo.eagle.function.biz.v2x.v2n.view.V2XMarkerRoadEventView; import java.util.ArrayList; diff --git a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/test/TestOnLineCarUtils.java b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/test/TestOnLineCarUtils.java index 8a0c63380c..ed34ea7a0f 100644 --- a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/test/TestOnLineCarUtils.java +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/test/TestOnLineCarUtils.java @@ -7,8 +7,8 @@ import com.mogo.eagle.core.data.map.entity.MarkerLocation; import com.mogo.eagle.core.data.map.entity.V2XMessageEntity; import com.mogo.eagle.core.data.map.entity.V2XRoadEventEntity; import com.mogo.eagle.core.data.map.entity.V2XWarningEntity; -import com.mogo.eagle.core.function.v2x.R; import com.mogo.eagle.core.data.v2x.V2XOptimalRouteDataRes; +import com.mogo.eagle.core.function.biz.R; import com.mogo.eagle.core.network.utils.GsonUtil; import com.mogo.eagle.core.utilcode.util.Utils; From 51f3308cb23b908c202d2c265addbf85dba47b3b Mon Sep 17 00:00:00 2001 From: zhongchao Date: Fri, 17 Feb 2023 21:52:53 +0800 Subject: [PATCH 12/49] [2.13.0-arch-opt] remove v2x module and wait to union logic --- app/build.gradle | 1 - .../mogo-core-function-v2x/.gitignore | 1 - .../mogo-core-function-v2x/build.gradle | 68 ------------------- .../mogo-core-function-v2x/consumer-rules.pro | 0 .../mogo-core-function-v2x/gradle.properties | 3 - .../mogo-core-function-v2x/proguard-rules.pro | 21 ------ .../src/main/AndroidManifest.xml | 8 --- modules.txt | 1 - settings.gradle | 2 - 9 files changed, 105 deletions(-) delete mode 100644 core/function-impl/mogo-core-function-v2x/.gitignore delete mode 100644 core/function-impl/mogo-core-function-v2x/build.gradle delete mode 100644 core/function-impl/mogo-core-function-v2x/consumer-rules.pro delete mode 100644 core/function-impl/mogo-core-function-v2x/gradle.properties delete mode 100644 core/function-impl/mogo-core-function-v2x/proguard-rules.pro delete mode 100644 core/function-impl/mogo-core-function-v2x/src/main/AndroidManifest.xml diff --git a/app/build.gradle b/app/build.gradle index bd4379bfe4..f9c79c925d 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -369,7 +369,6 @@ dependencies { implementation project(':tts:tts-pad') implementation project(':core:function-impl:mogo-core-function-hmi') implementation project(':core:function-impl:mogo-core-function-map') - implementation project(':core:function-impl:mogo-core-function-v2x') implementation project(':core:function-impl:mogo-core-function-datacenter') implementation project(':core:function-impl:mogo-core-function-devatools') implementation project(':core:function-impl:mogo-core-function-chat') diff --git a/core/function-impl/mogo-core-function-v2x/.gitignore b/core/function-impl/mogo-core-function-v2x/.gitignore deleted file mode 100644 index 42afabfd2a..0000000000 --- a/core/function-impl/mogo-core-function-v2x/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/build \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-v2x/build.gradle b/core/function-impl/mogo-core-function-v2x/build.gradle deleted file mode 100644 index 6458d99e0d..0000000000 --- a/core/function-impl/mogo-core-function-v2x/build.gradle +++ /dev/null @@ -1,68 +0,0 @@ -plugins { - id 'com.android.library' - id 'kotlin-android' - id 'kotlin-android-extensions' - id 'kotlin-kapt' - id 'com.alibaba.arouter' -} -android { - compileSdkVersion rootProject.ext.android.compileSdkVersion - defaultConfig { - minSdkVersion rootProject.ext.android.minSdkVersion - targetSdkVersion rootProject.ext.android.targetSdkVersion - versionCode Integer.valueOf(VERSION_CODE) - versionName getValueFromRootProperties("${project.name.replace("-", "_").toUpperCase()}_VERSION") - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - consumerProguardFiles 'consumer-rules.pro' - //ARouter apt 参数 - kapt { - useBuildCache = false - arguments { - arg("AROUTER_MODULE_NAME", project.getName()) - } - } - } - - buildTypes { - release { - minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' - } - } - - compileOptions { - sourceCompatibility JavaVersion.VERSION_1_8 - targetCompatibility JavaVersion.VERSION_1_8 - } - -} - -dependencies { - implementation fileTree(dir: 'libs', include: ['*.jar']) - implementation rootProject.ext.dependencies.kotlinstdlibjdk7 - implementation rootProject.ext.dependencies.coroutinescore - implementation rootProject.ext.dependencies.coroutinesandroid - implementation rootProject.ext.dependencies.androidxccorektx - implementation rootProject.ext.dependencies.androidxappcompat - implementation rootProject.ext.dependencies.androidxconstraintlayout - - implementation rootProject.ext.dependencies.arouter - implementation rootProject.ext.dependencies.rxandroid - kapt rootProject.ext.dependencies.aroutercompiler - - implementation rootProject.ext.dependencies.mogoaicloudtrafficlive - - if (Boolean.valueOf(USE_MAVEN_PACKAGE)) { - implementation rootProject.ext.dependencies.mogocommons - implementation rootProject.ext.dependencies.mogo_core_utils - implementation rootProject.ext.dependencies.mogo_core_function_call - implementation rootProject.ext.dependencies.mogo_core_res - } else { - implementation project(":foudations:mogo-commons") - implementation project(':core:mogo-core-utils') - implementation project(':core:mogo-core-function-call') - implementation project(':core:mogo-core-res') - } -} - -apply from: new File(rootProject.rootDir, "gradle/upload.gradle").toString() diff --git a/core/function-impl/mogo-core-function-v2x/consumer-rules.pro b/core/function-impl/mogo-core-function-v2x/consumer-rules.pro deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/core/function-impl/mogo-core-function-v2x/gradle.properties b/core/function-impl/mogo-core-function-v2x/gradle.properties deleted file mode 100644 index 63866596d3..0000000000 --- a/core/function-impl/mogo-core-function-v2x/gradle.properties +++ /dev/null @@ -1,3 +0,0 @@ -GROUP=com.mogo.eagle.core.function.impl -POM_ARTIFACT_ID=v2x -VERSION_CODE=1 diff --git a/core/function-impl/mogo-core-function-v2x/proguard-rules.pro b/core/function-impl/mogo-core-function-v2x/proguard-rules.pro deleted file mode 100644 index 481bb43481..0000000000 --- a/core/function-impl/mogo-core-function-v2x/proguard-rules.pro +++ /dev/null @@ -1,21 +0,0 @@ -# Add project specific ProGuard rules here. -# You can control the set of applied configuration files using the -# proguardFiles setting in build.gradle. -# -# For more details, see -# http://developer.android.com/guide/developing/tools/proguard.html - -# If your project uses WebView with JS, uncomment the following -# and specify the fully qualified class name to the JavaScript interface -# class: -#-keepclassmembers class fqcn.of.javascript.interface.for.webview { -# public *; -#} - -# Uncomment this to preserve the line number information for -# debugging stack traces. -#-keepattributes SourceFile,LineNumberTable - -# If you keep the line number information, uncomment this to -# hide the original source file name. -#-renamesourcefileattribute SourceFile \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-v2x/src/main/AndroidManifest.xml b/core/function-impl/mogo-core-function-v2x/src/main/AndroidManifest.xml deleted file mode 100644 index 8224f27d8d..0000000000 --- a/core/function-impl/mogo-core-function-v2x/src/main/AndroidManifest.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/modules.txt b/modules.txt index acc4c7544b..a44a7cf029 100644 --- a/modules.txt +++ b/modules.txt @@ -20,7 +20,6 @@ :core:function-impl:mogo-core-function-datacenter :core:function-impl:mogo-core-function-hmi :core:function-impl:mogo-core-function-map -:core:function-impl:mogo-core-function-v2x :core:function-impl:mogo-core-function-chat :core:function-impl:mogo-core-function-devatools :core:function-impl:mogo-core-function-biz diff --git a/settings.gradle b/settings.gradle index 45b91c2c77..b04aa2b3f4 100644 --- a/settings.gradle +++ b/settings.gradle @@ -26,8 +26,6 @@ include ':core:function-impl:mogo-core-function-hmi' // 小地图控件 // 地图控件,HD-高精地图 include ':core:function-impl:mogo-core-function-map' -// v2x预警业务,本地+云端预警 -include ':core:function-impl:mogo-core-function-v2x' // 车聊聊业务 include ':core:function-impl:mogo-core-function-chat' // 业务biz From fe11d1fe6b9f2b2146f6f5bb6c4afc7662be0db5 Mon Sep 17 00:00:00 2001 From: zhongchao Date: Mon, 20 Feb 2023 14:03:10 +0800 Subject: [PATCH 13/49] [2.13.0-arch-opt] view check --- .../hmi/ui/setting/AccelerationFloatWindow.kt | 2 +- .../hmi/ui/setting/IPCReportWindow.kt | 2 +- .../hmi/ui/tools/AutoPilotAndCheckView.kt | 13 +- .../function/hmi/ui/tools/BusOperationView.kt | 2 +- .../function/hmi/ui/widget/BlueToothView.kt | 12 +- .../function/hmi/ui/widget/CheckSystemView.kt | 5 +- .../hmi/ui/widget/CircularProgressView.kt | 27 +- .../hmi/ui/widget/SteeringWheelView.java | 252 ------------------ .../hmi/ui/widget/SteeringWheelView.kt | 192 +++++++++++++ .../hmi/ui/widget/SystemVersionView.kt | 8 - .../call/map/CallerMapUIServiceManager.kt | 1 + 11 files changed, 227 insertions(+), 289 deletions(-) delete mode 100644 core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/SteeringWheelView.java create mode 100644 core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/SteeringWheelView.kt diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/AccelerationFloatWindow.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/AccelerationFloatWindow.kt index dc9b62ce55..79da994fb5 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/AccelerationFloatWindow.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/AccelerationFloatWindow.kt @@ -33,7 +33,7 @@ class AccelerationFloatWindow constructor(activity: Activity) : View.OnTouchList private var mInScreenY = 0f init { - initFloatWindow(); + initFloatWindow() } private fun initFloatWindow() { diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/IPCReportWindow.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/IPCReportWindow.kt index e5a1a90541..df35a63998 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/IPCReportWindow.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/IPCReportWindow.kt @@ -65,7 +65,7 @@ class IPCReportWindow constructor(activity: Activity) : View.OnTouchListener { private var ipcWarningReportList: List? = null//警告上报列表 init { - initFloatWindow(); + initFloatWindow() } private fun initFloatWindow() { diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/tools/AutoPilotAndCheckView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/tools/AutoPilotAndCheckView.kt index b9b5274d05..4a40e3c053 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/tools/AutoPilotAndCheckView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/tools/AutoPilotAndCheckView.kt @@ -45,7 +45,9 @@ internal class AutoPilotAndCheckView @JvmOverloads constructor( defStyleAttr ), IMoGoAutopilotStatusListener { - private val TAG = "AutoPilotAndCheckView" + companion object{ + private const val TAG = "AutoPilotAndCheckView" + } private var clickListener: ClickListener? = null private var keyBoardUtil: KeyBoardUtil? = null @@ -57,10 +59,11 @@ internal class AutoPilotAndCheckView @JvmOverloads constructor( initView() } - companion object { - private var maxAcceleration: Double = 2.0 - private var speedLimit: Int = 0 - } + @Volatile + private var maxAcceleration: Double = 2.0 + + @Volatile + private var speedLimit: Int = 0 @SuppressLint("ClickableViewAccessibility") private fun initView() { diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/tools/BusOperationView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/tools/BusOperationView.kt index 526ffa33cd..ce6bab6d96 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/tools/BusOperationView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/tools/BusOperationView.kt @@ -30,7 +30,7 @@ class BusOperationView @JvmOverloads constructor( context?.let { actvAccountPhone.text = phoneMask(SharedPrefs.getInstance(it).getString("och_account","")) } - clickPersonalRightView(); + clickPersonalRightView() } private fun initPersonalIcon() { diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/BlueToothView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/BlueToothView.kt index 3ed347d792..6c968f7269 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/BlueToothView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/BlueToothView.kt @@ -9,8 +9,8 @@ import com.mogo.eagle.core.function.api.devatools.IMoGoDevaToolsListener import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsListenerManager import com.mogo.eagle.core.function.hmi.R import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr +import com.mogo.eagle.core.utilcode.util.ThreadUtils import kotlinx.android.synthetic.main.view_blue_tooth.view.* -import kotlinx.android.synthetic.main.view_status_bar.view.* /** * 魔戒蓝牙控件 @@ -42,10 +42,12 @@ class BlueToothView @JvmOverloads constructor( override fun mofangStatus(status: Boolean) { super.mofangStatus(status) - if (status) { - mofangView.setImageResource(R.drawable.icon_bluetooth_p) - } else { - mofangView.setImageResource(R.drawable.blue_tooth) + ThreadUtils.runOnUiThread { + if (status) { + mofangView.setImageResource(R.drawable.icon_bluetooth_p) + } else { + mofangView.setImageResource(R.drawable.blue_tooth) + } } } diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/CheckSystemView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/CheckSystemView.kt index 4fe3463158..b07b0292b1 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/CheckSystemView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/CheckSystemView.kt @@ -15,6 +15,7 @@ import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.function.hmi.R import com.mogo.eagle.core.function.hmi.notification.WarningFloat import com.mogo.eagle.core.function.hmi.ui.tools.DockerRebootDialog +import com.mogo.eagle.core.utilcode.util.ThreadUtils import com.mogo.eagle.core.utilcode.util.ToastUtils import kotlinx.android.synthetic.main.view_check_system.view.* @@ -106,7 +107,9 @@ class CheckSystemView @JvmOverloads constructor( override fun onAutopilotStatusResponse(autoPilotStatusInfo: AutopilotStatusInfo) { connectStatus = autoPilotStatusInfo.connectStatus autopilotStatus = autoPilotStatusInfo.state - setViewStatus() + ThreadUtils.runOnUiThread { + setViewStatus() + } } private fun setViewStatus() { diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/CircularProgressView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/CircularProgressView.kt index 722878c7a7..96bccbed01 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/CircularProgressView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/CircularProgressView.kt @@ -8,7 +8,6 @@ import android.util.AttributeSet import android.util.DisplayMetrics import android.view.View import android.view.animation.LinearInterpolator -import android.view.animation.OvershootInterpolator import androidx.core.content.ContextCompat import com.mogo.eagle.core.function.hmi.R @@ -22,7 +21,6 @@ class CircularProgressView @JvmOverloads constructor( : View(context, attrs, defStyleAttr) { val typedArray: TypedArray = context.obtainStyledAttributes(attrs, R.styleable.CircularProgressView) - val TAG: String = "CircularProgressView" // 绘制画笔 private val mBackPaint: Paint = Paint() @@ -66,17 +64,17 @@ class CircularProgressView @JvmOverloads constructor( } else { mConvertColorsArray = null } - typedArray.recycle(); + typedArray.recycle() } override fun onMeasure(widthMeasureSpec: Int, heightMeasureSpec: Int) { super.onMeasure(widthMeasureSpec, heightMeasureSpec) - val viewWide = getMeasuredWidth() - getPaddingLeft() - getPaddingRight(); - val viewHigh = getMeasuredHeight() - getPaddingTop() - getPaddingBottom(); + val viewWide = measuredWidth - paddingLeft - paddingRight + val viewHigh = measuredHeight - paddingTop - paddingBottom val mRectLength = ((if (viewWide > viewHigh) viewHigh else viewWide) - if (mBackPaint.strokeWidth > mProgPaint.strokeWidth) mBackPaint.strokeWidth else mProgPaint.strokeWidth).toInt() - val mRectL = getPaddingLeft() + (viewWide - mRectLength) / 2 - val mRectT = getPaddingTop() + (viewHigh - mRectLength) / 2 + val mRectL = paddingLeft + (viewWide - mRectLength) / 2 + val mRectT = paddingTop + (viewHigh - mRectLength) / 2 mRectF = RectF(mRectL.toFloat(), mRectT.toFloat(), (mRectL + mRectLength).toFloat(), (mRectT + mRectLength).toFloat()) @@ -94,13 +92,13 @@ class CircularProgressView @JvmOverloads constructor( return } val position = FloatArray(2) - position[0] = 0.0f; + position[0] = 0.0f position[1] = mProgress.toFloat() * 0.01f val sweepGradient = SweepGradient((measuredWidth / 2).toFloat(), (measuredHeight / 2).toFloat(), mConvertColorsArray!!, position) val matrix = Matrix() matrix.setRotate(-90F, (measuredWidth / 2).toFloat(), (measuredHeight / 2).toFloat()) sweepGradient.setLocalMatrix(matrix); - mProgPaint.setShader(sweepGradient) + mProgPaint.shader = sweepGradient } override fun onDraw(canvas: Canvas?) { @@ -109,7 +107,7 @@ class CircularProgressView @JvmOverloads constructor( mRectF?.let { it1 -> it.drawArc(it1, 0.0f, 360.0f, false, mBackPaint) } mRectF?.let { it1 -> sweepGradient() - var degree: Float = 3.6f * (mProgress.toFloat()) + val degree: Float = 3.6f * (mProgress.toFloat()) if(mProgress>=0) { it.drawArc(it1, 275.0f, degree, false, mProgPaint) }else{ @@ -121,8 +119,8 @@ class CircularProgressView @JvmOverloads constructor( } fun setBlurMaskFilter(blur: BlurMaskFilter.Blur, radius: Float) { - var blur: BlurMaskFilter = BlurMaskFilter(radius, blur) - mProgPaint.setMaskFilter(blur) + val temp = BlurMaskFilter(radius, blur) + mProgPaint.maskFilter = temp invalidate() } @@ -222,12 +220,11 @@ class CircularProgressView @JvmOverloads constructor( return } mConvertColorsArray = it.copyOf() - mConvertColorsArray?.let { + mConvertColorsArray?.let { color -> mProgPaint.shader = LinearGradient(0f, 0f, 0f, - getMeasuredWidth().toFloat(), it, null, Shader.TileMode.MIRROR) + measuredWidth.toFloat(), color, null, Shader.TileMode.MIRROR) } } } - } \ 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/SteeringWheelView.java b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/SteeringWheelView.java deleted file mode 100644 index f21e6f73e2..0000000000 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/SteeringWheelView.java +++ /dev/null @@ -1,252 +0,0 @@ -package com.mogo.eagle.core.function.hmi.ui.widget; - -import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_BUS_P; - -import android.content.Context; -import android.graphics.BlurMaskFilter; -import android.util.AttributeSet; -import android.view.LayoutInflater; -import android.view.View; -import android.view.animation.RotateAnimation; -import android.widget.ImageView; -import android.widget.TextView; - -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; -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.function.api.autopilot.IMoGoAutopilotStatusListener; -import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisGearStateListener; -import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisSteeringStateListener; -import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager; -import com.mogo.eagle.core.function.call.autopilot.CallerChassisGearStateListenerManager; -import com.mogo.eagle.core.function.call.autopilot.CallerChassisSteeringStateListenerManager; -import com.mogo.eagle.core.function.hmi.R; -import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils; -import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; -import com.mogo.eagle.core.utilcode.util.ThreadUtils; - -import org.jetbrains.annotations.NotNull; - -import chassis.Chassis; -import mogo.telematics.pad.MessagePad; -import mogo_msg.MogoReportMsg; -import system_master.SystemStatusInfo; - -/** - * @author Jing - * @description 方向盘 - * 方向盘跟随CAN数据做旋转 - * 档位随CAN数据做切换和高亮显示 - * @since: 4/7/22 - */ -public class SteeringWheelView extends ConstraintLayout implements - IMoGoChassisSteeringStateListener, - IMoGoChassisGearStateListener { - private static final String TAG = "SteeringWheelView"; - private ImageView autopilotIV; - private TextView steeringTVL; - private TextView steeringTVR; - private TapPositionView tapPositionView; - private CircularProgressView steeringCircularV; - private CircularProgressView steeringCircularVAlpha; - private RotateAnimation rotateAnimation; - private float fromDegrees = 0;//方向盘旋转起始位置 - - public SteeringWheelView(@NonNull Context context) { - super(context); - } - - public SteeringWheelView(@NonNull Context context, @Nullable AttributeSet attrs) { - super(context, attrs); - if (AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode)) { - LayoutInflater.from(context).inflate(R.layout.hmi_steering_wheel_bus, this); - } else { - LayoutInflater.from(context).inflate(R.layout.hmi_steering_wheel_taxi, this); - } - initView(); - CallerAutoPilotStatusListenerManager.INSTANCE.addListener(TAG, mGoAutopilotStatusListener); - CallerChassisGearStateListenerManager.INSTANCE.addListener(TAG, this); - CallerChassisSteeringStateListenerManager.INSTANCE.addListener(TAG, this); - tapPositionView.updateWithGear(Chassis.GearPosition.GEAR_R); - } - - private void initView() { - autopilotIV = (ImageView) findViewById(R.id.autopilot_iv); - steeringTVL = findViewById(R.id.steering_tv_left); - steeringTVR = findViewById(R.id.steering_tv_right); - tapPositionView = findViewById(R.id.tap_position); - steeringCircularV = findViewById(R.id.steering_circular); - steeringCircularV.setBackWidth(8); - steeringCircularV.setBackColor(R.color.hmi_light_back_bg); - steeringCircularV.setProgress((int) (0 * 100) / 360, 20); - steeringCircularV.setProgColor(R.color.hmi_light_blue, R.color.hmi_dark_blue); - if (AppIdentityModeUtils.isTaxi(FunctionBuildConfig.appIdentityMode)) { - steeringCircularVAlpha = findViewById(R.id.steering_circular_alpha); - steeringCircularVAlpha.setProgress((int) (0 * 100) / 360, 20); - steeringCircularV.setProgColor(R.color.hmi_dark_blue, R.color.hmi_light_blue); - steeringCircularVAlpha.setBackWidth(8); - steeringCircularVAlpha.setBackColor(R.color.hmi_clear_00); - steeringCircularVAlpha.setProgColor(R.color.hmi_light_blue_alpha_ff, R.color.hmi_light_blue_alpha_00); - steeringCircularVAlpha.setBlurMaskFilter(BlurMaskFilter.Blur.NORMAL, 12); - } - } - - public SteeringWheelView(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr) { - super(context, attrs, defStyleAttr); - } - - public SteeringWheelView(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr, int defStyleRes) { - super(context, attrs, defStyleAttr, defStyleRes); - } - - private final IMoGoAutopilotStatusListener mGoAutopilotStatusListener = new IMoGoAutopilotStatusListener() { - - @Override - public void onAutopilotRouteLineId(long lineId) { - - } - - @Override - public void onAutopilotIpcConnectStatusChanged(int status, @Nullable String reason) { - } - - @Override - public void onAutopilotArriveAtStation(@org.jetbrains.annotations.Nullable MessagePad.ArrivalNotification arrivalNotification) { - - } - - @Override - public void onAutopilotGuardian(@Nullable MogoReportMsg.MogoReportMessage guardianInfo) { - - } - - @Override - public void onAutopilotStatusResponse(@NotNull AutopilotStatusInfo autopilotStatusInfo) { - ThreadUtils.runOnUiThread(new Runnable() { - @Override - public void run() { - if (autopilotStatusInfo == null) return; - int state = autopilotStatusInfo.getState(); - CallerLogger.INSTANCE.d(M_BUS_P + TAG, "state = %s", state); - if (autopilotIV != null) { - if (state == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING) { - if (AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode)) { - // TODO - - } else { - autopilotIV.setImageResource(R.drawable.bg_auto); - } - } else if (state == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE) { - if (AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode)) { - // TODO - - } else { - autopilotIV.setImageResource(R.drawable.bg_auto_nor); - } - } else if (state == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE) { - if (AppIdentityModeUtils.isBus(FunctionBuildConfig.appIdentityMode)) { - // TODO - - } else { - autopilotIV.setImageResource(R.drawable.bg_auto_nor); - } - } - } else { - CallerLogger.INSTANCE.d(TAG, "autopilotIV=null"); - } - } - }); - } - - @Override - public void onAutopilotSNRequest() { - - } - - @Override - public void onAutopilotStatusRespByQuery(@NonNull SystemStatusInfo.StatusInfo status) { - - } - }; - - /** - * 方向盘转向角 左+右- - * @param steering - */ - @Override - public void onAutopilotSteeringData(float steering) { - if (Math.abs(steering) < 1) { - steering = 0; - } - float steeringValue = steering; - ThreadUtils.runOnUiThread(new Runnable() { - @Override - public void run() { - if (steeringTVL != null && steeringValue > 0) { - steeringTVR.setVisibility(View.INVISIBLE); - steeringTVL.setVisibility(View.VISIBLE); - steeringTVL.setText(String.valueOf((int) steeringValue) + "°"); - } else if (steeringTVR != null && steeringValue <= 0) { - steeringTVL.setVisibility(View.INVISIBLE); - steeringTVR.setVisibility(View.VISIBLE); - steeringTVR.setText(String.valueOf((int) -steeringValue) + "°"); - } else { - CallerLogger.INSTANCE.d(TAG, "onAutopilotSteeringData error"); - } - animationWithSteeringData(-steeringValue); - if (steeringCircularV != null) { - steeringCircularV.setProgress((int) (-steeringValue * 100) / 360, 20); - } - if (steeringCircularVAlpha != null) { - steeringCircularVAlpha.setProgress((int) (-steeringValue * 100) / 360, 20); - } - } - }); - - } - - /** - * 档位 - * @param gear - */ - @Override - public void onAutopilotGearData(@NotNull Chassis.GearPosition gear) { - ThreadUtils.runOnUiThread(new Runnable() { - @Override - public void run() { - CallerLogger.INSTANCE.d(TAG, "乘客屏档位" + gear.toString()); - if (tapPositionView != null) { - tapPositionView.updateWithGear(gear); - } - } - }); - - } - - /** - * 方向盘随CAN数据做方向和角度旋转 - * 参数1从哪一个旋转角度开始 - * 参数2:转到什么角度 - * 后4个参数用于设置围绕着旋转的圆的圆心在哪里 - * 参数3:肯定x轴坐标的类型,有ABSOLUT绝对坐标、RELATIVE_TO_SELF相对于自身坐标、RELATIVE_TO_PARENT相对于父控件的坐标 - * 参数4:x轴的值,0.5f代表是以自身这个控件的一半长度为x轴 - * 参数5:肯定y轴坐标的类型 - * 参数6:y轴的值,0.5f代表是以自身这个控件的一半长度为x轴 - * - * @param steering - */ - private void animationWithSteeringData(float steering) { - rotateAnimation = new RotateAnimation(fromDegrees, steering, - RotateAnimation.RELATIVE_TO_SELF, 0.5f, - RotateAnimation.RELATIVE_TO_SELF, 0.5f); - rotateAnimation.setDuration(20);//旋转时长 - rotateAnimation.setFillAfter(true);//旋转后保持原状 - autopilotIV.clearAnimation(); - autopilotIV.startAnimation(rotateAnimation); - fromDegrees = steering; - } - -} diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/SteeringWheelView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/SteeringWheelView.kt new file mode 100644 index 0000000000..9a0cecc4ff --- /dev/null +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/SteeringWheelView.kt @@ -0,0 +1,192 @@ +package com.mogo.eagle.core.function.hmi.ui.widget + +import android.content.Context +import android.graphics.BlurMaskFilter +import android.util.AttributeSet +import android.view.LayoutInflater +import android.view.View +import android.view.animation.RotateAnimation +import android.widget.ImageView +import android.widget.TextView +import androidx.constraintlayout.widget.ConstraintLayout +import chassis.Chassis.GearPosition +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.autopilot.IMoGoChassisGearStateListener +import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisSteeringStateListener +import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager +import com.mogo.eagle.core.function.call.autopilot.CallerChassisGearStateListenerManager +import com.mogo.eagle.core.function.call.autopilot.CallerChassisSteeringStateListenerManager +import com.mogo.eagle.core.function.hmi.R +import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils.isBus +import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils.isTaxi +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d +import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS_P +import com.mogo.eagle.core.utilcode.util.ThreadUtils +import kotlin.math.abs + +/** + * @author Jing + * @description 方向盘 + * 方向盘跟随CAN数据做旋转 + * 档位随CAN数据做切换和高亮显示 + * @since: 4/7/22 + */ +class SteeringWheelView : ConstraintLayout, IMoGoChassisSteeringStateListener, + IMoGoChassisGearStateListener { + private var autopilotIV: ImageView? = null + private var steeringTVL: TextView? = null + private var steeringTVR: TextView? = null + private var tapPositionView: TapPositionView? = null + private var steeringCircularV: CircularProgressView? = null + private var steeringCircularVAlpha: CircularProgressView? = null + private var rotateAnimation: RotateAnimation? = null + private var fromDegrees = 0f //方向盘旋转起始位置 + + constructor(context: Context) : super(context) {} + constructor(context: Context, attrs: AttributeSet?) : super(context, attrs) { + if (isBus(FunctionBuildConfig.appIdentityMode)) { + LayoutInflater.from(context).inflate(R.layout.hmi_steering_wheel_bus, this) + } else { + LayoutInflater.from(context).inflate(R.layout.hmi_steering_wheel_taxi, this) + } + initView() + CallerAutoPilotStatusListenerManager.addListener(TAG, mGoAutopilotStatusListener) + CallerChassisGearStateListenerManager.addListener(TAG, this) + CallerChassisSteeringStateListenerManager.addListener(TAG, this) + tapPositionView?.updateWithGear(GearPosition.GEAR_R) + } + + private fun initView() { + autopilotIV = findViewById(R.id.autopilot_iv) as ImageView + steeringTVL = findViewById(R.id.steering_tv_left) + steeringTVR = findViewById(R.id.steering_tv_right) + tapPositionView = findViewById(R.id.tap_position) + steeringCircularV = findViewById(R.id.steering_circular) + steeringCircularV?.setBackWidth(8) + steeringCircularV?.setBackColor(R.color.hmi_light_back_bg) + steeringCircularV?.setProgress((0 * 100) / 360, 20) + steeringCircularV?.setProgColor(R.color.hmi_light_blue, R.color.hmi_dark_blue) + if (isTaxi(FunctionBuildConfig.appIdentityMode)) { + steeringCircularVAlpha = findViewById(R.id.steering_circular_alpha) + steeringCircularVAlpha?.setProgress((0 * 100) / 360, 20) + steeringCircularV?.setProgColor(R.color.hmi_dark_blue, R.color.hmi_light_blue) + steeringCircularVAlpha?.setBackWidth(8) + steeringCircularVAlpha?.setBackColor(R.color.hmi_clear_00) + steeringCircularVAlpha?.setProgColor( + R.color.hmi_light_blue_alpha_ff, + R.color.hmi_light_blue_alpha_00 + ) + steeringCircularVAlpha?.setBlurMaskFilter(BlurMaskFilter.Blur.NORMAL, 12f) + } + } + + constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : super( + context, + attrs, + defStyleAttr + ) { + } + + private val mGoAutopilotStatusListener: IMoGoAutopilotStatusListener = + object : IMoGoAutopilotStatusListener { + override fun onAutopilotStatusResponse(autoPilotStatusInfo: AutopilotStatusInfo) { + ThreadUtils.runOnUiThread { + val state = autoPilotStatusInfo.state + d("$M_BUS_P$TAG", "state = %s", state) + if (autopilotIV != null) { + if (state == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING) { + if (!isBus(FunctionBuildConfig.appIdentityMode)) { + autopilotIV?.setImageResource(R.drawable.bg_auto) + } + } else if (state == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE) { + if (!isBus(FunctionBuildConfig.appIdentityMode)) { + autopilotIV?.setImageResource(R.drawable.bg_auto_nor) + } + } else if (state == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE) { + if (!isBus(FunctionBuildConfig.appIdentityMode)) { + autopilotIV?.setImageResource(R.drawable.bg_auto_nor) + } + } + } else { + d("$M_BUS_P$TAG", "autopilotIV=null") + } + } + } + } + + /** + * 方向盘转向角 左+右- + * @param steering + */ + override fun onAutopilotSteeringData(steering: Float) { + var temp = steering + if (abs(steering) < 1) { + temp = 0f + } + val steeringValue = temp + ThreadUtils.runOnUiThread { + if (steeringTVL != null && steeringValue > 0) { + steeringTVR?.visibility = INVISIBLE + steeringTVL?.visibility = VISIBLE + steeringTVL?.text = "${steeringValue}°" + } else if (steeringTVR != null && steeringValue <= 0) { + steeringTVL?.visibility = INVISIBLE + steeringTVR?.visibility = VISIBLE + steeringTVR?.text = "${-steeringValue}°" + } else { + d(TAG, "onAutopilotSteeringData error") + } + animationWithSteeringData(-steeringValue) + if (steeringCircularV != null) { + steeringCircularV?.setProgress((-steeringValue * 100).toInt() / 360, 20) + } + if (steeringCircularVAlpha != null) { + steeringCircularVAlpha?.setProgress((-steeringValue * 100).toInt() / 360, 20) + } + } + } + + /** + * 档位 + * @param gear + */ + override fun onAutopilotGearData(gear: GearPosition) { + ThreadUtils.runOnUiThread { + d(TAG, "乘客屏档位$gear") + if (tapPositionView != null) { + tapPositionView?.updateWithGear(gear) + } + } + } + + /** + * 方向盘随CAN数据做方向和角度旋转 + * 参数1从哪一个旋转角度开始 + * 参数2:转到什么角度 + * 后4个参数用于设置围绕着旋转的圆的圆心在哪里 + * 参数3:肯定x轴坐标的类型,有ABSOLUT绝对坐标、RELATIVE_TO_SELF相对于自身坐标、RELATIVE_TO_PARENT相对于父控件的坐标 + * 参数4:x轴的值,0.5f代表是以自身这个控件的一半长度为x轴 + * 参数5:肯定y轴坐标的类型 + * 参数6:y轴的值,0.5f代表是以自身这个控件的一半长度为x轴 + * + * @param steering + */ + private fun animationWithSteeringData(steering: Float) { + rotateAnimation = RotateAnimation( + fromDegrees, steering, + RotateAnimation.RELATIVE_TO_SELF, 0.5f, + RotateAnimation.RELATIVE_TO_SELF, 0.5f + ) + rotateAnimation?.duration = 20 //旋转时长 + rotateAnimation?.fillAfter = true //旋转后保持原状 + autopilotIV?.clearAnimation() + autopilotIV?.startAnimation(rotateAnimation) + fromDegrees = steering + } + + companion object { + private const val TAG = "SteeringWheelView" + } +} \ 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/SystemVersionView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/SystemVersionView.kt index 1ae6ab1b7d..7c8ea47b26 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 @@ -69,14 +69,6 @@ class SystemVersionView @JvmOverloads constructor( ivPadVersion.setOnClickListener { CallerLogger.i("$M_HMI$$TAG", "pad version view clicked") CallerDevaToolsManager.queryAppUpgrade() - //弹框和下载回调 -// showUpgradeDialog( -// "", -// "", -// "", -// "", -// "1" -// ) } //工控机版本视图点击事件 diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerMapUIServiceManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerMapUIServiceManager.kt index 1c5104a623..a2a6fd34bf 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerMapUIServiceManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerMapUIServiceManager.kt @@ -43,6 +43,7 @@ object CallerMapUIServiceManager { return serviceProvider?.overlayManager } + //todo emArrow fun getGDLocationServer(context: Context): IMogoGDLocationClient?{ return serviceProvider?.getGDLocationServer(context) } From ca1832210a4f7e4ab6e19a41af2fad0efb6d9f56 Mon Sep 17 00:00:00 2001 From: zhongchao Date: Mon, 20 Feb 2023 16:41:12 +0800 Subject: [PATCH 14/49] [2.13.0-arch-opt] fix bug of pnc action view thread problem and config upload role problem ,plus remove impl of module-api and call --- .../location/MoGoLocationDispatcher.kt | 2 +- .../trace/SyncConfig.kt | 2 + .../function/hmi/ui/vehicle/PncActionsView.kt | 67 ++++++++++--------- .../mogo/eagle/core/data/app/AppConfigInfo.kt | 5 +- core/mogo-core-function-api/build.gradle | 10 ++- core/mogo-core-function-call/build.gradle | 6 +- .../call/map/CallerMapUIServiceManager.kt | 1 - .../CallerObuLocationWGS84ListenerManager.kt | 1 - .../utilcode/mogo/AppIdentityModeUtils.kt | 1 - .../adas/high/bean/AutopilotStatistics.java | 2 +- 10 files changed, 46 insertions(+), 51 deletions(-) diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/location/MoGoLocationDispatcher.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/location/MoGoLocationDispatcher.kt index 93e8d1f7f2..dc052cf491 100644 --- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/location/MoGoLocationDispatcher.kt +++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/location/MoGoLocationDispatcher.kt @@ -33,7 +33,7 @@ object MoGoLocationDispatcher : IMoGoObuLocationWGS84Listener, AMapLocationListener { - private val TAG = "MoGoLocationManager" + private const val TAG = "MoGoLocationManager" private var mCityCode: String? = null private var mapLocation: AMapLocation? = null diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/trace/SyncConfig.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/trace/SyncConfig.kt index 240afd4230..7a5ad33a75 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/trace/SyncConfig.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/trace/SyncConfig.kt @@ -10,6 +10,7 @@ import com.mogo.eagle.core.data.deva.chain.ChainConstant import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager import com.mogo.eagle.core.function.call.telematic.CallerTelematicManager import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils +import com.mogo.eagle.core.utilcode.mogo.getMisChannelCode import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_DEVA import com.mogo.eagle.core.utilcode.util.NetworkUtils @@ -38,6 +39,7 @@ object SyncConfig { AppConfigInfo.mapSdkOptVersion = DebugConfig.getMapOptVersion() AppConfigInfo.isConnectNet = NetworkUtils.isConnected(context) AppConfigInfo.isConnectSocket = MogoStatusManager.getInstance().isSocketOnLine + AppConfigInfo.role = AppIdentityModeUtils.getMisChannelCode(FunctionBuildConfig.appIdentityMode) when { AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode) -> {// 司机端 AppConfigInfo.isDriver = true diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/vehicle/PncActionsView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/vehicle/PncActionsView.kt index 5cf624ff40..1b792da246 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/vehicle/PncActionsView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/vehicle/PncActionsView.kt @@ -94,48 +94,51 @@ class PncActionsView @JvmOverloads constructor( @BizConfig(FOUNDATION, "", BIZ_PNC_ACTIONS) override fun pncActions(planningActionMsg: MessagePad.PlanningActionMsg) { - mAutoPilotStatusInfo?.let { - if (it.state == STATUS_AUTOPILOT_RUNNING) { + try { + mAutoPilotStatusInfo?.let { UiThreadHandler.post { - var actions: String? = null - planningActionMsg.actionMsg?.let { it -> - try { - actions = PncActionsHelper.getAction( - it.drivingState.number, - it.drivingAction.number - ) - } catch (e: Exception) { - e.printStackTrace() + if (it.state == STATUS_AUTOPILOT_RUNNING) { + var actions: String? = null + planningActionMsg.actionMsg?.let { it -> + try { + actions = PncActionsHelper.getAction( + it.drivingState.number, + it.drivingAction.number + ) + } catch (e: Exception) { + e.printStackTrace() + } + //如果是存在云端红绿灯数据条件下,设置云端数据 + if (PncActionsHelper.isWaitingTrafficlight( + it.drivingState.number, + it.drivingAction.number + ) + && mTrafficLightResult != null + && getWaitTrafficLightTime().isNotBlank() + ) { + actions += ",预计${getWaitTrafficLightTime()}秒后通过" + } else { + mTrafficLightResult = null + } } - //如果是存在云端红绿灯数据条件下,设置云端数据 - if (PncActionsHelper.isWaitingTrafficlight( - it.drivingState.number, - it.drivingAction.number - ) - && mTrafficLightResult != null - && getWaitTrafficLightTime().isNotBlank() - ) { - actions += ",预计${getWaitTrafficLightTime()}秒后通过" + // update view + if (actions.isNullOrEmpty()) { + this.background = null + tvHmiPncActions.text = "" } else { - mTrafficLightResult = null + this.background = + AppCompatResources.getDrawable(context, bgResources) + tvHmiPncActions.text = actions } - } - // update view - if (actions.isNullOrEmpty()) { + } else { this.background = null tvHmiPncActions.text = "" - } else { - this.background = - AppCompatResources.getDrawable(context, bgResources) - tvHmiPncActions.text = actions } } - } else { - this.background = null - tvHmiPncActions.text = "" } + } catch (e: Exception) { + e.printStackTrace() } - } override fun onTrafficLightStatus(trafficLightResult: TrafficLightResult) { diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/app/AppConfigInfo.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/app/AppConfigInfo.kt index ac11b12d1f..621d26a7a9 100644 --- a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/app/AppConfigInfo.kt +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/app/AppConfigInfo.kt @@ -1,9 +1,6 @@ package com.mogo.eagle.core.data.app import android.os.Build -import com.mogo.eagle.core.data.config.FunctionBuildConfig -import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils -import com.mogo.eagle.core.utilcode.mogo.getMisChannelCode import com.mogo.eagle.core.utilcode.util.AppUtils /** @@ -62,7 +59,7 @@ object AppConfigInfo { var netMode: Int = 3 // 角色 - var role: Int = AppIdentityModeUtils.getMisChannelCode(FunctionBuildConfig.appIdentityMode) + var role: Int = 0 // 是否可以网络连接 var isConnectNet: Boolean = false diff --git a/core/mogo-core-function-api/build.gradle b/core/mogo-core-function-api/build.gradle index 8672b4a8da..f1f7db0430 100644 --- a/core/mogo-core-function-api/build.gradle +++ b/core/mogo-core-function-api/build.gradle @@ -43,18 +43,16 @@ android { dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation rootProject.ext.dependencies.kotlinstdlibjdk7 + implementation rootProject.ext.dependencies.arouter kapt rootProject.ext.dependencies.aroutercompiler - implementation rootProject.ext.dependencies.coroutinescore - implementation rootProject.ext.dependencies.coroutinesandroid - implementation project(':libraries:mogo-obu') if (Boolean.valueOf(USE_MAVEN_PACKAGE)) { - implementation rootProject.ext.dependencies.mogo_core_data - compileOnly project(path: ':libraries:mogo-adas') + compileOnly rootProject.ext.dependencies.mogo_core_data compileOnly rootProject.ext.dependencies.mogomapapi } else { - implementation project(':core:mogo-core-data') + compileOnly project(':core:mogo-core-data') + compileOnly project(':libraries:mogo-obu') compileOnly project(':libraries:mogo-adas') compileOnly project(':libraries:mogo-map-api') } diff --git a/core/mogo-core-function-call/build.gradle b/core/mogo-core-function-call/build.gradle index 13a6502f25..f256ef0177 100644 --- a/core/mogo-core-function-call/build.gradle +++ b/core/mogo-core-function-call/build.gradle @@ -43,14 +43,11 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation rootProject.ext.dependencies.kotlinstdlibjdk7 - implementation rootProject.ext.dependencies.arouter kapt rootProject.ext.dependencies.aroutercompiler // MoGo 数据埋点工具 implementation rootProject.ext.dependencies.analytics - compileOnly rootProject.ext.dependencies.mogocustommap - implementation project(':libraries:mogo-obu') if (Boolean.valueOf(USE_MAVEN_PACKAGE)) { implementation rootProject.ext.dependencies.mogo_core_data @@ -59,7 +56,8 @@ dependencies { } else { implementation project(':core:mogo-core-utils') implementation project(':foudations:mogo-commons') - implementation project(':libraries:mogo-adas') + compileOnly project(':libraries:mogo-adas') + compileOnly project(':libraries:mogo-obu') api project(':libraries:mogo-map-api') api project(':core:mogo-core-function-api') } diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerMapUIServiceManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerMapUIServiceManager.kt index a2a6fd34bf..1c5104a623 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerMapUIServiceManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerMapUIServiceManager.kt @@ -43,7 +43,6 @@ object CallerMapUIServiceManager { return serviceProvider?.overlayManager } - //todo emArrow fun getGDLocationServer(context: Context): IMogoGDLocationClient?{ return serviceProvider?.getGDLocationServer(context) } diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/obu/CallerObuLocationWGS84ListenerManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/obu/CallerObuLocationWGS84ListenerManager.kt index ac9b5179ed..36a8c6e9d0 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/obu/CallerObuLocationWGS84ListenerManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/obu/CallerObuLocationWGS84ListenerManager.kt @@ -2,7 +2,6 @@ package com.mogo.eagle.core.function.call.obu import com.mogo.eagle.core.function.api.obu.IMoGoObuLocationWGS84Listener import com.mogo.eagle.core.function.call.base.CallerBase -import com.mogo.support.obu.model.MogoObuHvBasicsData import mogo.telematics.pad.MessagePad /** diff --git a/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/mogo/AppIdentityModeUtils.kt b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/mogo/AppIdentityModeUtils.kt index ccab18785c..b4dd06db5a 100644 --- a/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/mogo/AppIdentityModeUtils.kt +++ b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/mogo/AppIdentityModeUtils.kt @@ -1,6 +1,5 @@ package com.mogo.eagle.core.utilcode.mogo - fun AppIdentityModeUtils.getMisChannelCode(appIdentityMode: String): Int { return when { isTaxi(appIdentityMode) && isPassenger(appIdentityMode) -> 1 diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/bean/AutopilotStatistics.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/bean/AutopilotStatistics.java index cba060b13e..c7aff7feee 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/bean/AutopilotStatistics.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/bean/AutopilotStatistics.java @@ -6,7 +6,7 @@ import mogo.telematics.pad.MessagePad; import mogo_msg.MogoReportMsg; /** - * 自动驾驶启动统计 + * 自动驾驶启动统计 todo 凤坤,后续封装成pb,或者放入adas-data */ public class AutopilotStatistics { From 6d2deb6582210e762c9fcd3714a35cd2ef9aeec6 Mon Sep 17 00:00:00 2001 From: lixiaopeng Date: Mon, 20 Feb 2023 18:20:20 +0800 Subject: [PATCH 15/49] =?UTF-8?q?[dev=5Farch=5Fopt=5F3.0]=20=E5=B0=81?= =?UTF-8?q?=E8=A3=85obu=E6=98=BE=E7=A4=BA=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../eagle/function/biz/FuncBizProvider.kt | 3 + .../biz/v2x/obu/V2xObuEventManager.kt | 56 +++++++++++++++++++ .../obu/MogoPrivateObuNewManager.kt | 14 +---- .../api/obu/IMoGoObuSaveMessageListener.kt | 18 ++++++ .../obucombine/IMoGoObuDcCombineListener.kt | 1 - .../CallerObuSaveMessageListenerManager.kt | 22 ++++++++ .../CallerObuDcCombineListenerManager.kt | 40 ------------- 7 files changed, 101 insertions(+), 53 deletions(-) create mode 100644 core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/obu/V2xObuEventManager.kt create mode 100644 core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/obu/IMoGoObuSaveMessageListener.kt create mode 100644 core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/obu/CallerObuSaveMessageListenerManager.kt 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 d4b9bc0d22..d1336af45f 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 @@ -13,6 +13,7 @@ import com.mogo.eagle.function.biz.dispatch.DispatchAutoPilotManager.Companion.d import com.mogo.eagle.function.biz.monitoring.CronTaskManager.Companion.cronTaskManager import com.mogo.eagle.function.biz.notice.NoticeSocketManager.Companion.noticeSocketManager import com.mogo.eagle.function.biz.notice.network.NoticeNetWorkManager +import com.mogo.eagle.function.biz.v2x.obu.V2xObuEventManager import com.mogo.eagle.function.biz.v2x.overview.OverViewDataManager import com.mogo.eagle.function.biz.v2x.overview.db.OverviewDb import com.mogo.eagle.function.biz.v2x.road.LineUploadManager @@ -44,6 +45,7 @@ class FuncBizProvider : IMoGoFuncBizProvider { if(AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)){ LineUploadManager.getInstance(context)?.init() } + V2xObuEventManager.init(context) // RedLightWarningManager.INSTANCE.listenTrafficLight() } @@ -110,6 +112,7 @@ class FuncBizProvider : IMoGoFuncBizProvider { LineUploadManager.getInstance(it)?.onDestroy() } } + V2xObuEventManager.release() // RedLightWarningManager.INSTANCE.onDestroy() } } \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/obu/V2xObuEventManager.kt b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/obu/V2xObuEventManager.kt new file mode 100644 index 0000000000..7677124647 --- /dev/null +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/obu/V2xObuEventManager.kt @@ -0,0 +1,56 @@ +package com.mogo.eagle.function.biz.v2x.obu + +import android.content.Context +import com.mogo.eagle.core.data.enums.DataSourceType +import com.mogo.eagle.core.data.msgbox.MsgBoxBean +import com.mogo.eagle.core.data.msgbox.MsgBoxType +import com.mogo.eagle.core.data.msgbox.V2XMsg +import com.mogo.eagle.core.function.api.obu.IMoGoObuSaveMessageListener +import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxManager +import com.mogo.eagle.core.function.call.obu.CallerObuSaveMessageListenerManager + +/** + * 处理obu分发出来,在消息盒子展示的消息 + */ +object V2xObuEventManager : IMoGoObuSaveMessageListener { + + private const val TAG = "V2xObuEventManager" + + fun init(context: Context) { + registerListener() + } + + private fun registerListener() { + CallerObuSaveMessageListenerManager.addListener(TAG,this) + } + + private fun unRegisterListener() { + CallerObuSaveMessageListenerManager.removeListener(TAG) + } + + /** + * @param type 事件id,类似与uuid + * @param content 事件内容 + * @param tts 事件语音播报 + */ + override fun onMoGoObuSaveMessage(type: String, content: String, tts: String) { + CallerMsgBoxManager.saveMsgBox( + MsgBoxBean( + MsgBoxType.V2X, + V2XMsg( + type, + content, + tts + ) + ).apply { + sourceType = DataSourceType.OBU + } + ) + } + + fun release() { + unRegisterListener() + } + +} + diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoPrivateObuNewManager.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoPrivateObuNewManager.kt index 7ab13fcfb4..fcba382bc8 100644 --- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoPrivateObuNewManager.kt +++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoPrivateObuNewManager.kt @@ -18,6 +18,7 @@ import com.mogo.eagle.core.function.call.map.CallerVisualAngleManager import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxManager import com.mogo.eagle.core.function.call.obu.CallerObuConnectListenerManager import com.mogo.eagle.core.function.call.obu.CallerObuLocationWGS84ListenerManager +import com.mogo.eagle.core.function.call.obu.CallerObuSaveMessageListenerManager import com.mogo.eagle.core.function.call.obu.CallerObuWarningListenerManager import com.mogo.eagle.core.function.call.v2x.CallerLimitingVelocityListenerManager import com.mogo.eagle.core.function.call.v2x.CallerTrafficLightListenerManager @@ -968,18 +969,7 @@ class MogoPrivateObuNewManager private constructor() { * 保存obu直连数据到消息盒子 */ private fun saveObuData(type: String, content: String, tts: String) { - CallerMsgBoxManager.saveMsgBox( - MsgBoxBean( - MsgBoxType.V2X, - V2XMsg( - type, - content, - tts - ) - ).apply { - sourceType = DataSourceType.OBU - } - ) + CallerObuSaveMessageListenerManager.invokeObuSaveMessage(type, content, tts) } /** diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/obu/IMoGoObuSaveMessageListener.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/obu/IMoGoObuSaveMessageListener.kt new file mode 100644 index 0000000000..ec5e0531fd --- /dev/null +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/obu/IMoGoObuSaveMessageListener.kt @@ -0,0 +1,18 @@ +package com.mogo.eagle.core.function.api.obu + +/** + * OBU 数据保存 + * @author lixiaopeng + * @date 2023-02-01 + */ +interface IMoGoObuSaveMessageListener { + + /** + * @param type 事件id,类似与uuid + * @param content 事件内容 + * @param tts 事件语音播报 + * + */ + fun onMoGoObuSaveMessage(type: String, content: String, tts: String) + +} \ No newline at end of file diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/obucombine/IMoGoObuDcCombineListener.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/obucombine/IMoGoObuDcCombineListener.kt index 942102318c..16c52fd6d9 100644 --- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/obucombine/IMoGoObuDcCombineListener.kt +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/obucombine/IMoGoObuDcCombineListener.kt @@ -13,5 +13,4 @@ interface IMoGoObuDcCombineListener { */ 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/obu/CallerObuSaveMessageListenerManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/obu/CallerObuSaveMessageListenerManager.kt new file mode 100644 index 0000000000..3865080049 --- /dev/null +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/obu/CallerObuSaveMessageListenerManager.kt @@ -0,0 +1,22 @@ +package com.mogo.eagle.core.function.call.obu + +import com.mogo.eagle.core.function.api.obu.IMoGoObuSaveMessageListener +import com.mogo.eagle.core.function.api.obu.IMoGoObuWarningRsiListener +import com.mogo.eagle.core.function.call.base.CallerBase +import com.mogo.support.obu.ObuScene + +/** + * OBU 保存到数据中心,展示在消息盒子的数据 + * + */ +object CallerObuSaveMessageListenerManager : CallerBase() { + + fun invokeObuSaveMessage(type: String, content: String, tts: String) { + M_LISTENERS.forEach { + val tag = it.key + val listener = it.value + listener.onMoGoObuSaveMessage(type, content, tts) + } + } + +} \ No newline at end of file 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 index 2ecbf31c29..5e86cc9b9e 100644 --- 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 @@ -1,7 +1,5 @@ package com.mogo.eagle.core.function.call.obucombine -import androidx.annotation.Nullable -import com.mogo.eagle.core.function.api.obu.IMoGoObuStatusListener import com.mogo.eagle.core.function.api.obucombine.IMoGoObuDcCombineListener import com.mogo.eagle.core.function.call.base.CallerBase import mogo.v2x.ObuWarningEvent @@ -15,44 +13,6 @@ object CallerObuDcCombineListenerManager : CallerBase private val M_DC_COMBINE_LISTENERS: ConcurrentHashMap = ConcurrentHashMap() - /** - * 添加 obu和dc数据通道 监听 - * @param tag 标记,用来注销监听使用 - * @param listener 监听回调 - */ -// fun addListener( -// @Nullable tag: String, -// @Nullable listener: IMoGoObuDcCombineListener -// ) { -// if (M_DC_COMBINE_LISTENERS.containsKey(tag)) { -// return -// } -// M_DC_COMBINE_LISTENERS[tag] = listener -// } - - /** - * 删除监听 - * @param tag 标记,用来注销监听使用 - */ -// fun removeListener(@Nullable tag: String) { -// if (!M_DC_COMBINE_LISTENERS.containsKey(tag)) { -// return -// } -// M_DC_COMBINE_LISTENERS.remove(tag) -// } - - /** - * 删除自动驾驶按钮选中监听 - * @param listener 要删除的监听对象 - */ -// fun removeListener(@Nullable listener: IMoGoObuDcCombineListener) { -// M_DC_COMBINE_LISTENERS.forEach { -// if (it.value == listener) { -// M_DC_COMBINE_LISTENERS.remove(it.key) -// } -// } -// } - /** * v2i数据 */ From 312744e4ee887b4b42fb4a07a75b569603f3dfd6 Mon Sep 17 00:00:00 2001 From: zhongchao Date: Mon, 20 Feb 2023 19:10:11 +0800 Subject: [PATCH 16/49] [2.13.0-arch-opt]analytics move to foundation --- .../och/bus/util/BusAnalyticsManager.java | 9 ++- .../sweeper/util/SweeperAnalyticsManager.java | 6 +- .../utils/TaxiPassengerAnalyticsManager.java | 8 +-- .../och/taxi/utils/TaxiAnalyticsManager.java | 8 +-- .../facade/analytics/ChatAnalyticsFacade.kt | 6 +- .../mogo-core-function-hmi/build.gradle | 2 +- .../eagle/core/function/main/MainActivity.kt | 4 +- .../startup/stageone/HttpDnsStartUp.kt | 8 +-- .../function/api/chat/biz/IMoGoChatFacade.kt | 2 +- core/mogo-core-function-call/build.gradle | 7 +-- ...llerChassisLocationGCJ02ListenerManager.kt | 1 - foudations/mogo-commons/build.gradle | 20 +++++-- .../commons/analytics/AnalyticsUtils.java | 56 ------------------- .../mogo/commons/utils/MogoAnalyticUtils.kt | 6 +- 14 files changed, 46 insertions(+), 97 deletions(-) delete mode 100644 foudations/mogo-commons/src/main/java/com/mogo/commons/analytics/AnalyticsUtils.java rename core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/analytics/AnalyticsManager.kt => foudations/mogo-commons/src/main/java/com/mogo/commons/utils/MogoAnalyticUtils.kt (93%) diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/util/BusAnalyticsManager.java b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/util/BusAnalyticsManager.java index eaefe8db87..a8af2bdb38 100644 --- a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/util/BusAnalyticsManager.java +++ b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/util/BusAnalyticsManager.java @@ -2,14 +2,13 @@ package com.mogo.och.bus.util; import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_BUS; -import android.annotation.SuppressLint; import android.text.TextUtils; import com.mogo.cloud.passport.MoGoAiCloudClientConfig; import com.mogo.commons.debug.DebugConfig; import com.mogo.eagle.core.data.app.AppConfigInfo; import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener; -import com.mogo.eagle.core.function.call.analytics.AnalyticsManager; +import com.mogo.commons.utils.MogoAnalyticUtils; import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.eagle.core.utilcode.util.DateTimeUtils; @@ -60,7 +59,7 @@ public class BusAnalyticsManager { , CallerAutoPilotStatusListenerManager.INSTANCE.getAutoPilotStatusInfo().getState() == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING); - AnalyticsManager.INSTANCE.track(mStartAutopilotKey, mStartAutopilotParams); + MogoAnalyticUtils.INSTANCE.track(mStartAutopilotKey, mStartAutopilotParams); clearStartAutopilotParams();//清空参数数据,防止误传 } @@ -111,7 +110,7 @@ public class BusAnalyticsManager { clearStartAutopilotFailureMSG(); removeWaitingCallback(); mStartAutopilotParams.put(BusConst.EVENT_PARAM_START_RESULT, true); - AnalyticsManager.INSTANCE.track(mStartAutopilotKey, mStartAutopilotParams); + MogoAnalyticUtils.INSTANCE.track(mStartAutopilotKey, mStartAutopilotParams); clearStartAutopilotParams();//清空参数数据,防止误传 } else { @@ -143,6 +142,6 @@ public class BusAnalyticsManager { params.put(BusConst.EVENT_PARAM_END_NAME, endName); params.put(BusConst.EVENT_PARAM_LINE_ID, lineId); params.put(BusConst.EVENT_PARAM_UNABLE_START_REASON, reason); - AnalyticsManager.INSTANCE.track(BusConst.EVENT_KEY_AP_UNABLE_START_REASON, params); + MogoAnalyticUtils.INSTANCE.track(BusConst.EVENT_KEY_AP_UNABLE_START_REASON, params); } } diff --git a/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/util/SweeperAnalyticsManager.java b/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/util/SweeperAnalyticsManager.java index 76f43e4388..16832a6c2b 100644 --- a/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/util/SweeperAnalyticsManager.java +++ b/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/util/SweeperAnalyticsManager.java @@ -6,7 +6,7 @@ import com.mogo.cloud.passport.MoGoAiCloudClientConfig; import com.mogo.commons.debug.DebugConfig; import com.mogo.eagle.core.data.app.AppConfigInfo; import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener; -import com.mogo.eagle.core.function.call.analytics.AnalyticsManager; +import com.mogo.commons.utils.MogoAnalyticUtils; import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager; import com.mogo.eagle.core.utilcode.util.DateTimeUtils; import com.mogo.eagle.core.utilcode.util.UiThreadHandler; @@ -39,7 +39,7 @@ public class SweeperAnalyticsManager { mStartAutopilotParams.put(SweeperConst.EVENT_PARAM_START_RESULT , CallerAutoPilotStatusListenerManager.INSTANCE.getAutoPilotStatusInfo().getState() == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING); - AnalyticsManager.INSTANCE.track(mStartAutopilotKey, mStartAutopilotParams); + MogoAnalyticUtils.INSTANCE.track(mStartAutopilotKey, mStartAutopilotParams); }; /** @@ -73,7 +73,7 @@ public class SweeperAnalyticsManager { UiThreadHandler.removeCallbacks(startAutopilotRunnable); } mStartAutopilotParams.put(SweeperConst.EVENT_PARAM_START_RESULT, true); - AnalyticsManager.INSTANCE.track(mStartAutopilotKey, mStartAutopilotParams); + MogoAnalyticUtils.INSTANCE.track(mStartAutopilotKey, mStartAutopilotParams); } else { UiThreadHandler.postDelayed(startAutopilotRunnable, SweeperConst.LOOP_PERIOD_15S); } diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/utils/TaxiPassengerAnalyticsManager.java b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/utils/TaxiPassengerAnalyticsManager.java index 4ce2b41afb..5b55a89cca 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/utils/TaxiPassengerAnalyticsManager.java +++ b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/utils/TaxiPassengerAnalyticsManager.java @@ -8,7 +8,7 @@ import com.mogo.cloud.passport.MoGoAiCloudClientConfig; import com.mogo.commons.debug.DebugConfig; import com.mogo.eagle.core.data.app.AppConfigInfo; import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener; -import com.mogo.eagle.core.function.call.analytics.AnalyticsManager; +import com.mogo.commons.utils.MogoAnalyticUtils; import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.eagle.core.utilcode.util.DateTimeUtils; @@ -63,7 +63,7 @@ public class TaxiPassengerAnalyticsManager { , CallerAutoPilotStatusListenerManager.INSTANCE.getAutoPilotStatusInfo().getState() == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING); - AnalyticsManager.INSTANCE.track(mStartAutopilotKey, mStartAutopilotParams); + MogoAnalyticUtils.INSTANCE.track(mStartAutopilotKey, mStartAutopilotParams); clearStartAutopilotParams();//清空参数数据,防止误传 } @@ -114,7 +114,7 @@ public class TaxiPassengerAnalyticsManager { clearStartAutopilotFailureMSG(); removeWaitingCallback(); mStartAutopilotParams.put(TaxiPassengerConst.EVENT_PARAM_START_RESULT, true); - AnalyticsManager.INSTANCE.track(mStartAutopilotKey, mStartAutopilotParams); + MogoAnalyticUtils.INSTANCE.track(mStartAutopilotKey, mStartAutopilotParams); clearStartAutopilotParams(); } else { @@ -146,6 +146,6 @@ public class TaxiPassengerAnalyticsManager { params.put(TaxiPassengerConst.EVENT_PARAM_END_NAME, endName); params.put(TaxiPassengerConst.EVENT_PARAM_ORDER_NUMBER, orderNo); params.put(TaxiPassengerConst.EVENT_PARAM_UNABLE_START_REASON, reason); - AnalyticsManager.INSTANCE.track(TaxiPassengerConst.EVENT_KEY_AP_UNABLE_START_REASON, params); + MogoAnalyticUtils.INSTANCE.track(TaxiPassengerConst.EVENT_KEY_AP_UNABLE_START_REASON, params); } } diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/utils/TaxiAnalyticsManager.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/utils/TaxiAnalyticsManager.java index dbdce513fa..51b18b574f 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/utils/TaxiAnalyticsManager.java +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/utils/TaxiAnalyticsManager.java @@ -7,7 +7,7 @@ import com.mogo.cloud.passport.MoGoAiCloudClientConfig; import com.mogo.commons.debug.DebugConfig; import com.mogo.eagle.core.data.app.AppConfigInfo; import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener; -import com.mogo.eagle.core.function.call.analytics.AnalyticsManager; +import com.mogo.commons.utils.MogoAnalyticUtils; import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.eagle.core.utilcode.util.DateTimeUtils; @@ -66,7 +66,7 @@ public class TaxiAnalyticsManager { mStartAutopilotParams.put(TaxiConst.EVENT_PARAM_START_RESULT, CallerAutoPilotStatusListenerManager.INSTANCE.getAutoPilotStatusInfo().getState() == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING); - AnalyticsManager.INSTANCE.track(mStartAutopilotKey, mStartAutopilotParams); + MogoAnalyticUtils.INSTANCE.track(mStartAutopilotKey, mStartAutopilotParams); clearStartAutopilotParams();//清空参数数据,防止误传 } @@ -112,7 +112,7 @@ public class TaxiAnalyticsManager { clearStartAutopilotFailureMSG(); removeWaitingCallback(); mStartAutopilotParams.put(TaxiConst.EVENT_PARAM_START_RESULT, true); - AnalyticsManager.INSTANCE.track(mStartAutopilotKey, mStartAutopilotParams); + MogoAnalyticUtils.INSTANCE.track(mStartAutopilotKey, mStartAutopilotParams); clearStartAutopilotParams();//清空参数数据,防止误传 } else { @@ -144,6 +144,6 @@ public class TaxiAnalyticsManager { params.put(TaxiConst.EVENT_PARAM_END_NAME, endName); params.put(TaxiConst.EVENT_PARAM_ORDER_NUMBER, orderNo); params.put(TaxiConst.EVENT_PARAM_UNABLE_START_REASON, reason); - AnalyticsManager.INSTANCE.track(TaxiConst.EVENT_KEY_AP_UNABLE_START_REASON, params); + MogoAnalyticUtils.INSTANCE.track(TaxiConst.EVENT_KEY_AP_UNABLE_START_REASON, params); } } diff --git a/core/function-impl/mogo-core-function-chat/src/main/java/com/mogo/eagle/core/function/chat/facade/analytics/ChatAnalyticsFacade.kt b/core/function-impl/mogo-core-function-chat/src/main/java/com/mogo/eagle/core/function/chat/facade/analytics/ChatAnalyticsFacade.kt index 089872c90a..405ecd2ff8 100644 --- a/core/function-impl/mogo-core-function-chat/src/main/java/com/mogo/eagle/core/function/chat/facade/analytics/ChatAnalyticsFacade.kt +++ b/core/function-impl/mogo-core-function-chat/src/main/java/com/mogo/eagle/core/function/chat/facade/analytics/ChatAnalyticsFacade.kt @@ -1,11 +1,11 @@ package com.mogo.eagle.core.function.chat.facade.analytics -import com.mogo.commons.analytics.AnalyticsUtils +import com.mogo.commons.utils.MogoAnalyticUtils import com.mogo.eagle.core.function.api.chat.biz.IMoGoAnalyticsFacade object ChatAnalyticsFacade: IMoGoAnalyticsFacade { - override fun track(eventType: String, data: Map?) { - AnalyticsUtils.track(eventType, data) + override fun track(eventType: String, data: MutableMap) { + MogoAnalyticUtils.track(eventType, data) } } \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/build.gradle b/core/function-impl/mogo-core-function-hmi/build.gradle index 5229ec0dd4..51edc43054 100644 --- a/core/function-impl/mogo-core-function-hmi/build.gradle +++ b/core/function-impl/mogo-core-function-hmi/build.gradle @@ -87,7 +87,7 @@ dependencies { api project(':test:crashreport-apmbyte') compileOnly project(':core:function-impl:mogo-core-function-datacenter') - compileOnly project(':foudations:mogo-commons') + implementation project(':foudations:mogo-commons') api project(':core:mogo-core-res') compileOnly project(':core:mogo-core-utils') compileOnly project(':core:mogo-core-function-call') diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/MainActivity.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/MainActivity.kt index 7cd3cc458d..814487cf90 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/MainActivity.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/MainActivity.kt @@ -14,7 +14,7 @@ import com.kwai.koom.nativeoom.leakmonitor.LeakListener import com.kwai.koom.nativeoom.leakmonitor.LeakMonitor.start import com.kwai.koom.nativeoom.leakmonitor.LeakMonitorConfig import com.kwai.koom.nativeoom.leakmonitor.LeakRecord -import com.mogo.commons.analytics.AnalyticsUtils +import com.mogo.commons.utils.MogoAnalyticUtils import com.mogo.commons.context.ContextHolderUtil import com.mogo.commons.debug.DebugConfig import com.mogo.commons.module.status.MogoStatusManager @@ -169,7 +169,7 @@ open class MainActivity : MvpActivity(), MainView, properties["app_launch_hotStartTime"] = hotStartTime } } - AnalyticsUtils.track("app_launch_time", properties) + MogoAnalyticUtils.track("app_launch_time", properties) } } 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 9437ee5b85..8291a547b5 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 @@ -11,6 +11,7 @@ import com.mogo.cloud.passport.IMoGoTokenCallback import com.mogo.cloud.passport.MoGoAiCloudClient import com.mogo.cloud.passport.MoGoAiCloudClientConfig import com.mogo.commons.AbsMogoApplication +import com.mogo.commons.utils.MogoAnalyticUtils import com.mogo.commons.constants.SharedPrefsConstants import com.mogo.commons.debug.DebugConfig import com.mogo.commons.module.status.MogoStatusManager @@ -23,7 +24,6 @@ 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.api.autopilot.IMoGoChassisLocationGCJ02Listener -import com.mogo.eagle.core.function.call.analytics.AnalyticsManager import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02ListenerManager import com.mogo.eagle.core.function.call.cloud.CallerCloudListenerManager import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager @@ -218,14 +218,14 @@ class HttpDnsStartUp : AndroidStartup() { //初始化网络配置 NetConfigUtils.init() // 初始化埋点 - AnalyticsManager.init(context, DebugConfig.isDebug()) + MogoAnalyticUtils.init(context, DebugConfig.isDebug()) // 加入启动统计 val mStartParams: HashMap = HashMap() mStartParams["start_time"] = TimeUtils.getNowMills() mStartParams["app_version"] = AppUtils.getAppVersionName() - mStartParams["app_flavor"] = DebugConfig.getProductFlavor(); + mStartParams["app_flavor"] = DebugConfig.getProductFlavor() mStartParams["app_identity_mode"] = FunctionBuildConfig.appIdentityMode - AnalyticsManager.track("app_start_time", mStartParams) + MogoAnalyticUtils.track("app_start_time", mStartParams) } } diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/chat/biz/IMoGoChatFacade.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/chat/biz/IMoGoChatFacade.kt index e77c682d31..321527e84d 100644 --- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/chat/biz/IMoGoChatFacade.kt +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/chat/biz/IMoGoChatFacade.kt @@ -200,5 +200,5 @@ interface IMoGoMediaFacade { interface IMoGoAnalyticsFacade { - fun track(eventType: String, data: Map? = hashMapOf()) + fun track(eventType: String, data: MutableMap = hashMapOf()) } \ No newline at end of file diff --git a/core/mogo-core-function-call/build.gradle b/core/mogo-core-function-call/build.gradle index f256ef0177..343680a5b4 100644 --- a/core/mogo-core-function-call/build.gradle +++ b/core/mogo-core-function-call/build.gradle @@ -46,16 +46,13 @@ dependencies { implementation rootProject.ext.dependencies.arouter kapt rootProject.ext.dependencies.aroutercompiler - // MoGo 数据埋点工具 - implementation rootProject.ext.dependencies.analytics - if (Boolean.valueOf(USE_MAVEN_PACKAGE)) { implementation rootProject.ext.dependencies.mogo_core_data implementation rootProject.ext.dependencies.mogo_core_utils implementation rootProject.ext.dependencies.mogocommons } else { - implementation project(':core:mogo-core-utils') - implementation project(':foudations:mogo-commons') + compileOnly project(':core:mogo-core-utils') + compileOnly project(':core:mogo-core-data') compileOnly project(':libraries:mogo-adas') compileOnly project(':libraries:mogo-obu') api project(':libraries:mogo-map-api') diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerChassisLocationGCJ02ListenerManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerChassisLocationGCJ02ListenerManager.kt index 1edd553d64..671a05f57a 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerChassisLocationGCJ02ListenerManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerChassisLocationGCJ02ListenerManager.kt @@ -6,7 +6,6 @@ import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisLocationGCJ02Liste import com.mogo.eagle.core.function.call.base.CallerBase import com.mogo.eagle.core.utilcode.mogo.logger.Logger import com.mogo.eagle.core.utilcode.util.CoordinateTransform -import com.mogo.eagle.core.utilcode.util.FileUtils import com.mogo.eagle.core.utilcode.util.TimeUtils /** diff --git a/foudations/mogo-commons/build.gradle b/foudations/mogo-commons/build.gradle index 296811e92f..40dba94f37 100644 --- a/foudations/mogo-commons/build.gradle +++ b/foudations/mogo-commons/build.gradle @@ -1,4 +1,10 @@ -apply plugin: 'com.android.library' +plugins { + id 'com.android.library' + id 'kotlin-android' + id 'kotlin-android-extensions' + id 'kotlin-kapt' + id 'com.alibaba.arouter' +} android { compileSdkVersion rootProject.ext.android.compileSdkVersion @@ -36,13 +42,18 @@ android { dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) + implementation rootProject.ext.dependencies.kotlinstdlibjdk7 + implementation rootProject.ext.dependencies.androidxappcompat - implementation rootProject.ext.dependencies.analytics implementation rootProject.ext.dependencies.arouter annotationProcessor rootProject.ext.dependencies.aroutercompiler implementation rootProject.ext.dependencies.rxjava - implementation rootProject.ext.dependencies.mogoaicloudrealtime + implementation rootProject.ext.dependencies.amapnavi3dmap + implementation rootProject.ext.dependencies.analytics + + api 'org.greenrobot:eventbus:3.1.1' + api rootProject.ext.dependencies.androidautoSize if (Boolean.valueOf(USE_MAVEN_PACKAGE)) { api rootProject.ext.dependencies.mogoaicloudservicesdk @@ -60,8 +71,7 @@ dependencies { api project(':core:mogo-core-network') } - api 'org.greenrobot:eventbus:3.1.1' - api rootProject.ext.dependencies.androidautoSize + } apply from: new File(rootProject.rootDir, "gradle/upload.gradle").toString() \ No newline at end of file diff --git a/foudations/mogo-commons/src/main/java/com/mogo/commons/analytics/AnalyticsUtils.java b/foudations/mogo-commons/src/main/java/com/mogo/commons/analytics/AnalyticsUtils.java deleted file mode 100644 index de9951913a..0000000000 --- a/foudations/mogo-commons/src/main/java/com/mogo/commons/analytics/AnalyticsUtils.java +++ /dev/null @@ -1,56 +0,0 @@ -package com.mogo.commons.analytics; - - -import android.content.Context; - -import com.elegant.analytics.Analytics; -import com.elegant.analytics.AnalyticsConfig; -import com.elegant.analytics.IAnalyticsParamsProvider; -import com.elegant.analytics.UploadMode; -import com.mogo.commons.AbsMogoApplication; -import com.mogo.commons.debug.DebugConfig; -import com.mogo.commons.network.ParamsUtil; - -import java.util.Map; - -import androidx.annotation.Keep; - -/** - * @author congtaowang - * @since 2019-12-23 - *

- * 埋点 - */ -public class AnalyticsUtils { - - @Keep - public static void init( Context context ) { - // 1 - debug 近实时上报,积累一条埋点上报,或者积累3秒上报一次。 - // 2 - 本地缓存,聚合上报,积累30条埋点上报,或者积累60秒上报一次。 - AnalyticsConfig.getInstance( context ).setAppKey( "0915430e5fdcbb553391f2a35cb8489f" ); - AnalyticsConfig.getInstance( context ).setUploadMode( DebugConfig.isDebug() ? UploadMode.instant : UploadMode.cache ); - AnalyticsConfig.getInstance( context ).setShouldLog( DebugConfig.isDebug() ); - AnalyticsConfig.getInstance( AbsMogoApplication.getApp() ).setParamsProvider(new IAnalyticsParamsProvider() { - @Override - public Map< String, Object > staticParams() { - return ParamsUtil.getAnalyticsCustomParams(); - } - - @Override - public Map< String, Object > dynamicParams() { - return null; - } - } ); - Analytics.getInstance().start( context ); - } - - /** - * 埋点 - * - * @param event 事件名称 - * @param properties 事件参数 - */ - public static void track( String event, Map< String, Object > properties ) { - Analytics.getInstance().track( event, properties ); - } -} diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/analytics/AnalyticsManager.kt b/foudations/mogo-commons/src/main/java/com/mogo/commons/utils/MogoAnalyticUtils.kt similarity index 93% rename from core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/analytics/AnalyticsManager.kt rename to foudations/mogo-commons/src/main/java/com/mogo/commons/utils/MogoAnalyticUtils.kt index 7fb33492fb..14a63addb2 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/analytics/AnalyticsManager.kt +++ b/foudations/mogo-commons/src/main/java/com/mogo/commons/utils/MogoAnalyticUtils.kt @@ -1,4 +1,4 @@ -package com.mogo.eagle.core.function.call.analytics +package com.mogo.commons.utils import android.content.Context import androidx.annotation.Keep @@ -15,7 +15,7 @@ import com.mogo.eagle.core.utilcode.util.AppUtils * 埋点&数据统计 管理 * @author donghongyu */ -object AnalyticsManager { +object MogoAnalyticUtils { @Keep fun init(context: Context?, isDebug: Boolean) { @@ -45,7 +45,7 @@ object AnalyticsManager { * @param event 事件名称 * @param properties 事件参数 */ - fun track(event: String?, properties: HashMap) { + fun track(event: String?, properties: MutableMap) { Analytics.getInstance().track(event, properties) } From 31aa2ef23e924033e5a6d0cb024d57e1cd04bd01 Mon Sep 17 00:00:00 2001 From: zhongchao Date: Mon, 20 Feb 2023 19:27:38 +0800 Subject: [PATCH 17/49] [2.13.0-arch-opt]fix bug of analytics --- .../mogo/eagle/core/function/main/MainMoGoApplication.java | 4 ++++ .../eagle/core/function/startup/stageone/HttpDnsStartUp.kt | 2 -- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/MainMoGoApplication.java b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/MainMoGoApplication.java index 1a12130971..1e80ca8ec3 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/MainMoGoApplication.java +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/MainMoGoApplication.java @@ -9,8 +9,10 @@ import android.os.Process; import com.bytedance.boost_multidex.BoostMultiDex; import com.mogo.cloud.socket.SocketBuildConfig; import com.mogo.commons.AbsMogoApplication; +import com.mogo.commons.debug.DebugConfig; import com.mogo.commons.module.MogoModule; import com.mogo.commons.module.MogoModulePaths; +import com.mogo.commons.utils.MogoAnalyticUtils; import com.mogo.eagle.core.data.config.FunctionBuildConfig; import com.mogo.eagle.core.data.constants.MogoServicePaths; import com.mogo.eagle.core.function.api.chat.biz.ChatConsts; @@ -111,6 +113,8 @@ public abstract class MainMoGoApplication extends AbsMogoApplication { } catch (Exception e) { e.printStackTrace(); } + // 初始化埋点 + MogoAnalyticUtils.INSTANCE.init(this, DebugConfig.isDebug()); SocketBuildConfig.isPrintLog = false; // 初始化DevaTools,开始链路记录 CallerDevaToolsManager.INSTANCE.init(); 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 8291a547b5..8f4b6de3f7 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 @@ -217,8 +217,6 @@ class HttpDnsStartUp : AndroidStartup() { ThreadPoolService.execute { //初始化网络配置 NetConfigUtils.init() - // 初始化埋点 - MogoAnalyticUtils.init(context, DebugConfig.isDebug()) // 加入启动统计 val mStartParams: HashMap = HashMap() mStartParams["start_time"] = TimeUtils.getNowMills() From 06df5b98ddc0fe57ed2c3cd6c371bc551f6dd4f3 Mon Sep 17 00:00:00 2001 From: zhongchao Date: Mon, 20 Feb 2023 22:14:08 +0800 Subject: [PATCH 18/49] [2.13.0-arch-opt] update aiCloudsdk version --- .../passenger/model/BusPassengerModel.java | 2 +- .../com/mogo/och/bus/model/BusOrderModel.java | 2 +- .../utils/CoordinateCalculateRouteUtil.java | 2 +- .../och/sweeper/model/SweeperOrderModel.java | 2 +- .../passenger/model/TaxiPassengerModel.java | 2 +- .../com/mogo/och/taxi/model/TaxiModel.java | 2 +- .../biz/dispatch/DispatchAutoPilotManager.kt | 2 +- .../notice/network/NoticeNetWorkManager.java | 1 - .../manager/impl/MoGoV2XMarkerManager.java | 2 +- .../biz/v2x/v2n/remove/MarkerRemoveManager.kt | 2 +- .../v2n/scenario/scene/airoad/AiRoadMarker.kt | 2 +- .../scene/warning/V2XWarningMarker.java | 2 +- .../ui/notice/traffic/NoticeTrafficDialog.kt | 2 +- .../function/business/identify/TrackObj.java | 2 +- .../impl/marker/drawer/MarkerDrawer.java | 2 +- .../core/function/smp/MarkerDrawerManager.kt | 2 +- .../core/function/smp/view/SmallMapView.kt | 2 +- .../core/utilcode/util/CoordinateUtils.java | 132 ++++++++++++++++++ gradle.properties | 18 +-- .../mogo/map/utils/PointInterpolatorUtil.java | 2 +- 20 files changed, 158 insertions(+), 27 deletions(-) create mode 100644 core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/CoordinateUtils.java diff --git a/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/model/BusPassengerModel.java b/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/model/BusPassengerModel.java index 1d1af8189c..3167458fd6 100644 --- a/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/model/BusPassengerModel.java +++ b/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/model/BusPassengerModel.java @@ -15,7 +15,6 @@ import androidx.annotation.Nullable; import com.amap.api.maps.model.LatLng; import com.mogo.aicloud.services.socket.MogoAiCloudSocketManager; -import com.mogo.cloud.commons.utils.CoordinateUtils; import com.mogo.commons.debug.DebugConfig; import com.mogo.commons.module.intent.IMogoIntentListener; import com.mogo.commons.module.intent.IntentManager; @@ -35,6 +34,7 @@ import com.mogo.eagle.core.network.utils.GsonUtil; import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr; +import com.mogo.eagle.core.utilcode.util.CoordinateUtils; import com.mogo.eagle.core.utilcode.util.NetworkUtils; import com.mogo.eagle.core.utilcode.util.ToastUtils; import com.mogo.och.bus.passenger.R; diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/model/BusOrderModel.java b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/model/BusOrderModel.java index 041657e1a7..2e21bd4ea7 100644 --- a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/model/BusOrderModel.java +++ b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/model/BusOrderModel.java @@ -16,7 +16,6 @@ import com.alibaba.android.arouter.launcher.ARouter; import com.amap.api.maps.model.LatLng; import com.elegant.network.utils.GsonUtil; import com.mogo.aicloud.services.socket.IMogoOnMessageListener; -import com.mogo.cloud.commons.utils.CoordinateUtils; import com.mogo.commons.AbsMogoApplication; import com.mogo.commons.module.status.IMogoStatusChangedListener; import com.mogo.commons.module.status.MogoStatusManager; @@ -33,6 +32,7 @@ import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListener import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02ListenerManager; import com.mogo.eagle.core.function.call.autopilot.CallerPlanningRottingListenerManager; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; +import com.mogo.eagle.core.utilcode.util.CoordinateUtils; import com.mogo.eagle.core.utilcode.util.NetworkUtils; import com.mogo.eagle.core.utilcode.util.ToastUtils; import com.mogo.eagle.core.utilcode.util.UiThreadHandler; diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/utils/CoordinateCalculateRouteUtil.java b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/utils/CoordinateCalculateRouteUtil.java index b09a1dbc29..9ba9f943fd 100644 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/utils/CoordinateCalculateRouteUtil.java +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/utils/CoordinateCalculateRouteUtil.java @@ -5,9 +5,9 @@ import android.location.Location; import com.amap.api.maps.CoordinateConverter; import com.amap.api.maps.model.LatLng; -import com.mogo.cloud.commons.utils.CoordinateUtils; import com.mogo.eagle.core.data.map.MogoLocation; import com.mogo.eagle.core.utilcode.mogo.logger.Logger; +import com.mogo.eagle.core.utilcode.util.CoordinateUtils; import java.util.ArrayList; import java.util.HashMap; diff --git a/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/model/SweeperOrderModel.java b/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/model/SweeperOrderModel.java index fc5b4c548e..2754b324a4 100644 --- a/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/model/SweeperOrderModel.java +++ b/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/model/SweeperOrderModel.java @@ -10,7 +10,6 @@ import androidx.annotation.Nullable; import com.amap.api.maps.model.LatLng; import com.elegant.network.utils.GsonUtil; -import com.mogo.cloud.commons.utils.CoordinateUtils; import com.mogo.commons.AbsMogoApplication; import com.mogo.commons.module.status.IMogoStatusChangedListener; import com.mogo.commons.module.status.MogoStatusManager; @@ -28,6 +27,7 @@ import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationWGS84Lis import com.mogo.eagle.core.function.call.autopilot.CallerPlanningRottingListenerManager; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.eagle.core.utilcode.mogo.logger.Logger; +import com.mogo.eagle.core.utilcode.util.CoordinateUtils; import com.mogo.eagle.core.utilcode.util.NetworkUtils; import com.mogo.eagle.core.utilcode.util.ToastUtils; import com.mogo.och.common.module.utils.CoordinateCalculateRouteUtil; diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerModel.java b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerModel.java index 8f52315f09..bfef8a0271 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerModel.java +++ b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerModel.java @@ -14,7 +14,6 @@ import com.amap.api.maps.model.LatLng; import com.amap.api.navi.model.NaviLatLng; import com.elegant.network.utils.GsonUtil; import com.mogo.aicloud.services.socket.MogoAiCloudSocketManager; -import com.mogo.cloud.commons.utils.CoordinateUtils; import com.mogo.commons.debug.DebugConfig; import com.mogo.commons.module.intent.IMogoIntentListener; import com.mogo.commons.module.intent.IntentManager; @@ -41,6 +40,7 @@ import com.mogo.eagle.core.function.call.v2x.CallerLimitingVelocityListenerManag import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr; +import com.mogo.eagle.core.utilcode.util.CoordinateUtils; import com.mogo.eagle.core.utilcode.util.NetworkUtils; import com.mogo.eagle.core.utilcode.util.ToastUtils; import com.mogo.eagle.core.utilcode.util.UiThreadHandler; diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiModel.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiModel.java index 188faf6027..8fd06b5aa6 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiModel.java +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiModel.java @@ -16,7 +16,6 @@ import com.alibaba.android.arouter.launcher.ARouter; import com.amap.api.maps.model.LatLng; import com.elegant.network.utils.GsonUtil; import com.mogo.aicloud.services.socket.IMogoOnMessageListener; -import com.mogo.cloud.commons.utils.CoordinateUtils; import com.mogo.commons.module.intent.IMogoIntentListener; import com.mogo.commons.module.intent.IntentManager; import com.mogo.commons.module.status.IMogoStatusChangedListener; @@ -36,6 +35,7 @@ import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02Lis import com.mogo.eagle.core.function.call.autopilot.CallerPlanningRottingListenerManager; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr; +import com.mogo.eagle.core.utilcode.util.CoordinateUtils; import com.mogo.eagle.core.utilcode.util.NetworkUtils; import com.mogo.eagle.core.utilcode.util.ToastUtils; import com.mogo.eagle.core.utilcode.util.UiThreadHandler; diff --git a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/dispatch/DispatchAutoPilotManager.kt b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/dispatch/DispatchAutoPilotManager.kt index 78070b1ec4..c7c48c012e 100644 --- a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/dispatch/DispatchAutoPilotManager.kt +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/dispatch/DispatchAutoPilotManager.kt @@ -5,7 +5,6 @@ import android.os.Handler import android.os.Message import com.mogo.aicloud.services.socket.IMogoOnMessageListener import com.mogo.aicloud.services.socket.MogoAiCloudSocketManager -import com.mogo.cloud.commons.utils.CoordinateUtils import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters import com.mogo.eagle.core.data.autopilot.AutopilotRouteInfo import com.mogo.eagle.core.data.dispatch.DispatchAdasAutoPilotLocReceiverBean @@ -21,6 +20,7 @@ import com.mogo.eagle.core.function.call.hmi.CallerHmiListenerManager import com.mogo.eagle.core.function.call.hmi.CallerHmiManager import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant +import com.mogo.eagle.core.utilcode.util.CoordinateUtils import com.mogo.eagle.function.biz.dispatch.network.DispatchServiceModel.Companion.DISPATCH_RESULT_AFFIRM import com.mogo.eagle.function.biz.dispatch.network.DispatchServiceModel.Companion.DISPATCH_RESULT_MANUAL_CANCEL import com.mogo.eagle.function.biz.dispatch.network.DispatchServiceModel.Companion.DISPATCH_RESULT_TIMER_CANCEL diff --git a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/notice/network/NoticeNetWorkManager.java b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/notice/network/NoticeNetWorkManager.java index 7234f941ad..9ea866b68c 100644 --- a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/notice/network/NoticeNetWorkManager.java +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/notice/network/NoticeNetWorkManager.java @@ -2,7 +2,6 @@ package com.mogo.eagle.function.biz.notice.network; import android.util.ArrayMap; -import com.mogo.cloud.network.NetConstants; import com.mogo.cloud.network.RetrofitFactory; import com.mogo.cloud.passport.MoGoAiCloudClient; import com.mogo.commons.constants.HostConst; diff --git a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/manager/impl/MoGoV2XMarkerManager.java b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/manager/impl/MoGoV2XMarkerManager.java index b8d394e893..006662d122 100644 --- a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/manager/impl/MoGoV2XMarkerManager.java +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/manager/impl/MoGoV2XMarkerManager.java @@ -6,7 +6,6 @@ import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_V2X import android.content.Context; import com.alibaba.android.arouter.facade.annotation.Route; -import com.mogo.cloud.commons.utils.CoordinateUtils; import com.mogo.eagle.core.data.enums.EventTypeEnumNew; import com.mogo.eagle.core.data.map.MogoLatLng; import com.mogo.eagle.core.data.map.MogoLocation; @@ -22,6 +21,7 @@ import com.mogo.eagle.function.biz.v2x.v2n.marker.V2XMarkerAdapter; import com.mogo.eagle.function.biz.v2x.v2n.utils.MapUtils; import com.mogo.eagle.core.data.v2x.V2XMarkerCardResult; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; +import com.mogo.eagle.core.utilcode.util.CoordinateUtils; import com.mogo.map.marker.IMogoMarker; import com.mogo.map.marker.IMogoMarkerClickListener; import com.mogo.map.marker.MogoMarkerOptions; diff --git a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/remove/MarkerRemoveManager.kt b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/remove/MarkerRemoveManager.kt index cc40d5d4ff..ee8a0c7372 100644 --- a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/remove/MarkerRemoveManager.kt +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/remove/MarkerRemoveManager.kt @@ -3,10 +3,10 @@ package com.mogo.eagle.function.biz.v2x.v2n.remove import android.os.Handler import android.os.HandlerThread import android.util.Log -import com.mogo.cloud.commons.utils.CoordinateUtils import com.mogo.eagle.core.data.map.MogoLocation import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02ListenerManager import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationWGS84ListenerManager +import com.mogo.eagle.core.utilcode.util.CoordinateUtils import com.mogo.eagle.core.utilcode.util.DrivingDirectionUtils import com.mogo.map.marker.IMogoMarker import com.mogo.map.overlay.IMogoPolyline 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 91f0bbbf7a..279ec76a4e 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 @@ -6,7 +6,6 @@ import android.os.Handler import android.os.Looper import android.view.animation.DecelerateInterpolator import androidx.core.util.Pair -import com.mogo.cloud.commons.utils.* import com.mogo.eagle.core.data.map.MogoLatLng import com.mogo.eagle.core.data.map.entity.V2XRoadEventEntity import com.mogo.eagle.core.function.call.autopilot.* @@ -22,6 +21,7 @@ import java.util.concurrent.atomic.AtomicReference import java.util.concurrent.ConcurrentHashMap import com.mogo.eagle.function.biz.v2x.v2n.remove.MarkerRemoveManager import com.mogo.eagle.function.biz.v2x.v2n.remove.MarkerWrapper +import com.mogo.eagle.core.utilcode.util.CoordinateUtils /** * Ai云道路施工事件,道路颜色标记类 diff --git a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/scenario/scene/warning/V2XWarningMarker.java b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/scenario/scene/warning/V2XWarningMarker.java index 8ad6643354..1fcf53c350 100644 --- a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/scenario/scene/warning/V2XWarningMarker.java +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/scenario/scene/warning/V2XWarningMarker.java @@ -4,7 +4,6 @@ import static com.mogo.eagle.core.data.constants.DataTypes.TYPE_MARKER_CLOUD_STO import static com.mogo.eagle.core.data.constants.DataTypes.TYPE_MARKER_CLOUD_WARN_DATA; import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_V2X; -import com.mogo.cloud.commons.utils.CoordinateUtils; import com.mogo.commons.AbsMogoApplication; import com.mogo.commons.module.status.MogoStatusManager; import com.mogo.commons.utils.Trigonometric; @@ -22,6 +21,7 @@ import com.mogo.eagle.core.data.v2x.V2XLocation; import com.mogo.eagle.core.data.v2x.V2XWarningTarget; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.eagle.core.utilcode.mogo.thread.WorkThreadHandler; +import com.mogo.eagle.core.utilcode.util.CoordinateUtils; import com.mogo.eagle.core.utilcode.util.UiThreadHandler; import com.mogo.map.marker.IMogoMarkerManager; import com.mogo.map.overlay.IMogoPolyline; diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/notice/traffic/NoticeTrafficDialog.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/notice/traffic/NoticeTrafficDialog.kt index 0b1490ef68..732f534784 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/notice/traffic/NoticeTrafficDialog.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/notice/traffic/NoticeTrafficDialog.kt @@ -8,7 +8,6 @@ import android.widget.TextView import androidx.lifecycle.LifecycleObserver import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.StaggeredGridLayoutManager -import com.mogo.cloud.commons.utils.CoordinateUtils import com.mogo.cloud.passport.MoGoAiCloudClientConfig import com.mogo.commons.module.status.IMogoStatusChangedListener import com.mogo.commons.module.status.MogoStatusManager @@ -31,6 +30,7 @@ import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.e import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant import com.mogo.eagle.core.utilcode.util.BitmapHelper +import com.mogo.eagle.core.utilcode.util.CoordinateUtils import com.mogo.eagle.core.utilcode.util.DateTimeUtils import com.mogo.eagle.core.widget.media.video.NoticeSimpleSmallVideoPlayer import com.shuyu.gsyvideoplayer.GSYVideoManager diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/identify/TrackObj.java b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/identify/TrackObj.java index 512ef7bc19..0a1d3829b7 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/identify/TrackObj.java +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/identify/TrackObj.java @@ -4,12 +4,12 @@ import static com.mogo.eagle.core.function.business.identify.TrackManager.LIMIT_ import android.annotation.SuppressLint; -import com.mogo.cloud.commons.utils.CoordinateUtils; import com.mogo.eagle.core.data.enums.TrafficTypeEnum; import com.mogo.eagle.core.data.map.CenterLine; import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager; import com.mogo.eagle.core.utilcode.geometry.S2CellId; import com.mogo.eagle.core.utilcode.geometry.S2LatLng; +import com.mogo.eagle.core.utilcode.util.CoordinateUtils; import java.util.Arrays; import java.util.Comparator; diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/impl/marker/drawer/MarkerDrawer.java b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/impl/marker/drawer/MarkerDrawer.java index 7195182391..30e4103320 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/impl/marker/drawer/MarkerDrawer.java +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/impl/marker/drawer/MarkerDrawer.java @@ -2,7 +2,6 @@ package com.mogo.eagle.core.function.impl.marker.drawer; import android.text.TextUtils; -import com.mogo.cloud.commons.utils.CoordinateUtils; import com.mogo.commons.AbsMogoApplication; import com.mogo.commons.module.status.MogoStatusManager; import com.mogo.eagle.core.data.enums.EventTypeEnumNew; @@ -16,6 +15,7 @@ import com.mogo.eagle.core.function.impl.marker.view.EmptyMarkerView; import com.mogo.eagle.core.function.impl.marker.view.IMarkerView; import com.mogo.eagle.core.function.impl.marker.view.MapMarkerAdapter; import com.mogo.eagle.core.function.impl.marker.view.OnlineCarMarkerView; +import com.mogo.eagle.core.utilcode.util.CoordinateUtils; import com.mogo.map.MogoMarkerManager; import com.mogo.map.marker.IMogoMarker; import com.mogo.map.marker.IMogoMarkerClickListener; diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/smp/MarkerDrawerManager.kt b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/smp/MarkerDrawerManager.kt index 9ce14cf8ba..f78a2c274e 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/smp/MarkerDrawerManager.kt +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/smp/MarkerDrawerManager.kt @@ -4,7 +4,7 @@ import android.content.Context import android.util.Log import com.amap.api.maps.CoordinateConverter import com.amap.api.maps.model.LatLng -import com.mogo.cloud.commons.utils.CoordinateUtils +import com.mogo.eagle.core.utilcode.util.CoordinateUtils import io.reactivex.Observable import io.reactivex.ObservableOnSubscribe import io.reactivex.android.schedulers.AndroidSchedulers diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/smp/view/SmallMapView.kt b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/smp/view/SmallMapView.kt index a452a17994..3578eb3ce4 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/smp/view/SmallMapView.kt +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/smp/view/SmallMapView.kt @@ -10,7 +10,6 @@ import android.widget.RelativeLayout import androidx.annotation.UiThread import com.amap.api.maps.* import com.amap.api.maps.model.* -import com.mogo.cloud.commons.utils.CoordinateUtils import com.mogo.eagle.core.data.autopilot.AutopilotStatusInfo import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.data.map.MogoLatLng @@ -27,6 +26,7 @@ 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.mogo.logger.scene.SceneConstant +import com.mogo.eagle.core.utilcode.util.CoordinateUtils import com.mogo.eagle.core.utilcode.util.UiThreadHandler import mogo.telematics.pad.MessagePad import kotlin.math.floor diff --git a/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/CoordinateUtils.java b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/CoordinateUtils.java new file mode 100644 index 0000000000..ffe4576d6d --- /dev/null +++ b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/CoordinateUtils.java @@ -0,0 +1,132 @@ +package com.mogo.eagle.core.utilcode.util; + +import org.jetbrains.annotations.NotNull; + +import java.math.BigDecimal; + +/** + * @author donghongyu + */ +public class CoordinateUtils { + + /** + * @param lon1 + * @param lat1 + * @param lon2 + * @param lat2 + * @return 两坐标的距离 单位:米(M) + */ + public static float calculateLineDistance( double lon1, double lat1, double lon2, double lat2 ) { + try { + double var2 = lon1; + double var4 = lat1; + double var6 = lon2; + double var8 = lat2; + var2 *= 0.01745329251994329D; + var4 *= 0.01745329251994329D; + var6 *= 0.01745329251994329D; + var8 *= 0.01745329251994329D; + double var10 = Math.sin( var2 ); + double var12 = Math.sin( var4 ); + double var14 = Math.cos( var2 ); + double var16 = Math.cos( var4 ); + double var18 = Math.sin( var6 ); + double var20 = Math.sin( var8 ); + double var22 = Math.cos( var6 ); + double var24 = Math.cos( var8 ); + double[] var28 = new double[3]; + double[] var29 = new double[3]; + var28[0] = var16 * var14; + var28[1] = var16 * var10; + var28[2] = var12; + var29[0] = var24 * var22; + var29[1] = var24 * var18; + var29[2] = var20; + return ( float ) ( Math.asin( Math.sqrt( ( var28[0] - var29[0] ) * ( var28[0] - var29[0] ) + ( var28[1] - var29[1] ) * ( var28[1] - var29[1] ) + ( var28[2] - var29[2] ) * ( var28[2] - var29[2] ) ) / 2.0D ) * 1.27420015798544E7D ); + } catch ( Throwable var26 ) { + var26.printStackTrace(); + return 0.0F; + } + } + + + // ------ + private static final double x_PI = 52.35987755982988D; + private static final double PI = 3.141592653589793D; + private static final double a = 6378245.0D; + private static final double ee = 0.006693421622965943D; + + public static final boolean outOfChina( double lat, double lng ) { + return lng <= 73.66D || lng >= 135.05D || lat <= 3.86D || lat >= 53.55D; + } + + private static final double transformLat( double lng, double lat ) { + double ret = -100.0D + 2.0D * lng + 3.0D * lat + 0.2D * lat * lat + 0.1D * lng * lat + 0.2D * Math.sqrt( Math.abs( lng ) ); + ret += ( 20.0D * Math.sin( 6.0D * lng * 3.141592653589793D ) + 20.0D * Math.sin( 2.0D * lng * 3.141592653589793D ) ) * 2.0D / 3.0D; + ret += ( 20.0D * Math.sin( lat * 3.141592653589793D ) + 40.0D * Math.sin( lat / 3.0D * 3.141592653589793D ) ) * 2.0D / 3.0D; + ret += ( 160.0D * Math.sin( lat / 12.0D * 3.141592653589793D ) + ( double ) 320 * Math.sin( lat * 3.141592653589793D / 30.0D ) ) * 2.0D / 3.0D; + return ret; + } + + private static final double transformLon( double lng, double lat ) { + double ret = 300.0D + lng + 2.0D * lat + 0.1D * lng * lng + 0.1D * lng * lat + 0.1D * Math.sqrt( Math.abs( lng ) ); + ret += ( 20.0D * Math.sin( 6.0D * lng * 3.141592653589793D ) + 20.0D * Math.sin( 2.0D * lng * 3.141592653589793D ) ) * 2.0D / 3.0D; + ret += ( 20.0D * Math.sin( lng * 3.141592653589793D ) + 40.0D * Math.sin( lng / 3.0D * 3.141592653589793D ) ) * 2.0D / 3.0D; + ret += ( 150.0D * Math.sin( lng / 12.0D * 3.141592653589793D ) + 300.0D * Math.sin( lng / 30.0D * 3.141592653589793D ) ) * 2.0D / 3.0D; + return ret; + } + + @NotNull + // World Geodetic System ==> Mars Geodetic System + public static final double[] transformWgsToGcj( double wgLat, double wgLon ) { + double[] point = new double[2]; + if ( outOfChina( wgLat, wgLon ) ) { + point[0] = wgLon; + point[1] = wgLat; + return point; + } else { + double dLat = transformLat( wgLon - 105.0D, wgLat - 35.0D ); + double dLon = transformLon( wgLon - 105.0D, wgLat - 35.0D ); + double radLat = wgLat / 180.0D * 3.141592653589793D; + double magic = Math.sin( radLat ); + magic = ( double ) 1 - 0.006693421622965943D * magic * magic; + double sqrtMagic = Math.sqrt( magic ); + dLat = dLat * 180.0D / ( 6335552.717000426D / ( magic * sqrtMagic ) * 3.141592653589793D ); + dLon = dLon * 180.0D / ( 6378245.0D / sqrtMagic * Math.cos( radLat ) * 3.141592653589793D ); + double mgLat = wgLat + dLat; + double mgLon = wgLon + dLon; + point[0] = dealRound( mgLon ); + point[1] = dealRound( mgLat ); + return point; + } + } + + @NotNull + public static final double[] transformGcj02toWgs84( double lat, double lng ) { + double[] var10000; + if ( outOfChina( lat, lng ) ) { + var10000 = new double[]{lng, lat}; + } else { + double dlat = transformLat( lng - 105.0D, lat - 35.0D ); + double dlng = transformLon( lng - 105.0D, lat - 35.0D ); + double radlat = lat / 180.0D * 3.141592653589793D; + double magic = Math.sin( radlat ); + magic = ( double ) 1 - 0.006693421622965943D * magic * magic; + double sqrtmagic = Math.sqrt( magic ); + dlat = dlat * 180.0D / ( 6335552.717000426D / ( magic * sqrtmagic ) * 3.141592653589793D ); + dlng = dlng * 180.0D / ( 6378245.0D / sqrtmagic * Math.cos( radlat ) * 3.141592653589793D ); + double mglat = lat + dlat; + double mglng = lng + dlng; + var10000 = new double[]{dealRound( lng * ( double ) 2 - mglng ), dealRound( lat * ( double ) 2 - mglat )}; + } + + return var10000; + } + + private static final double dealRound( double value ) { + BigDecimal bg = new BigDecimal( value ); + double result = bg.setScale( 6, 4 ).doubleValue(); + return result; + } + +} diff --git a/gradle.properties b/gradle.properties index dd72d41281..d9fedbc60f 100644 --- a/gradle.properties +++ b/gradle.properties @@ -66,23 +66,23 @@ SERVICE_BIZ_VERSION=1.2.4 LOGLIB_VERSION=1.5.10 ######## MogoAiCloudSDK Version ######## # 网络请求LOGLIB_VERSION -MOGO_NETWORK_VERSION=1.4.4.2 +MOGO_NETWORK_VERSION=1.4.4.4 # 鉴权 -MOGO_PASSPORT_VERSION=1.4.4.2 +MOGO_PASSPORT_VERSION=1.4.4.4 # 常链接 -MOGO_SOCKET_VERSION=1.4.4.2 +MOGO_SOCKET_VERSION=1.4.4.4 # 数据采集 -MOGO_REALTIME_VERSION=1.4.4.2 +MOGO_REALTIME_VERSION=1.4.4.4 # 探路,道路事件发布,获取 -MOGO_TANLU_VERSION=1.4.4.2 +MOGO_TANLU_VERSION=1.4.4.4 # 直播推流 -MOGO_LIVE_VERSION=1.4.4.2 +MOGO_LIVE_VERSION=1.4.4.4 # 直播拉流 -MOGO_TRAFFICLIVE_VERSION=1.4.4.2 +MOGO_TRAFFICLIVE_VERSION=1.4.4.4 # 定位服务 -MOGO_LOCATION_VERSION=1.4.4.2 +MOGO_LOCATION_VERSION=1.4.4.4 # 远程通讯模块 -MOGO_TELEMATIC_VERSION=1.4.4.2 +MOGO_TELEMATIC_VERSION=1.4.4.4 ######## MogoAiCloudSDK Version ######## # 自研地图 MAP_SDK_VERSION=2.10.0.2_test_01 diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/utils/PointInterpolatorUtil.java b/libraries/mogo-map/src/main/java/com/mogo/map/utils/PointInterpolatorUtil.java index 063da4fb7c..a985d9b90c 100644 --- a/libraries/mogo-map/src/main/java/com/mogo/map/utils/PointInterpolatorUtil.java +++ b/libraries/mogo-map/src/main/java/com/mogo/map/utils/PointInterpolatorUtil.java @@ -1,9 +1,9 @@ package com.mogo.map.utils; -import com.mogo.cloud.commons.utils.CoordinateUtils; import com.mogo.eagle.core.data.map.LonLatPoint; import com.mogo.eagle.core.data.map.MogoLatLng; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; +import com.mogo.eagle.core.utilcode.util.CoordinateUtils; import java.util.ArrayList; import java.util.List; From 82b8a08320130b95d21e092603e1511bfe04b6ca Mon Sep 17 00:00:00 2001 From: lixiaopeng Date: Tue, 21 Feb 2023 10:30:53 +0800 Subject: [PATCH 19/49] =?UTF-8?q?[dev=5Farch=5Fopt=5F3.0]=20=E4=BC=98?= =?UTF-8?q?=E5=8C=96obu?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../biz/v2x/obu/V2xObuEventManager.kt | 5 +- .../datacenter/obu/MogoObuDcCombineManager.kt | 112 ++++++++---------- .../obu/MogoPrivateObuNewManager.kt | 31 ++--- .../api/obu/IMoGoObuSaveMessageListener.kt | 6 +- .../CallerObuSaveMessageListenerManager.kt | 5 +- 5 files changed, 69 insertions(+), 90 deletions(-) diff --git a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/obu/V2xObuEventManager.kt b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/obu/V2xObuEventManager.kt index 7677124647..85f54b0207 100644 --- a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/obu/V2xObuEventManager.kt +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/obu/V2xObuEventManager.kt @@ -13,7 +13,6 @@ import com.mogo.eagle.core.function.call.obu.CallerObuSaveMessageListenerManager * 处理obu分发出来,在消息盒子展示的消息 */ object V2xObuEventManager : IMoGoObuSaveMessageListener { - private const val TAG = "V2xObuEventManager" fun init(context: Context) { @@ -33,7 +32,7 @@ object V2xObuEventManager : IMoGoObuSaveMessageListener { * @param content 事件内容 * @param tts 事件语音播报 */ - override fun onMoGoObuSaveMessage(type: String, content: String, tts: String) { + override fun onMoGoObuSaveMessage(type: String, content: String, tts: String, source: DataSourceType) { CallerMsgBoxManager.saveMsgBox( MsgBoxBean( MsgBoxType.V2X, @@ -43,7 +42,7 @@ object V2xObuEventManager : IMoGoObuSaveMessageListener { tts ) ).apply { - sourceType = DataSourceType.OBU + sourceType = source } ) } diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoObuDcCombineManager.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoObuDcCombineManager.kt index f76929ab06..4eb626a00a 100644 --- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoObuDcCombineManager.kt +++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoObuDcCombineManager.kt @@ -16,19 +16,16 @@ import com.mogo.eagle.core.function.api.obu.IMoGoObuWarningSpatListener import com.mogo.eagle.core.function.call.hmi.CallerHmiManager import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxManager -import com.mogo.eagle.core.function.call.obu.CallerObuMapMathListenerManager -import com.mogo.eagle.core.function.call.obu.CallerObuWarningRsiListenerManager -import com.mogo.eagle.core.function.call.obu.CallerObuWarningRsmListenerManager -import com.mogo.eagle.core.function.call.obu.CallerObuWarningSpatListenerManager +import com.mogo.eagle.core.function.call.obu.* import com.mogo.eagle.core.function.call.v2x.CallerLimitingVelocityListenerManager import com.mogo.eagle.core.function.call.v2x.CallerTrafficLightListenerManager +import com.mogo.eagle.core.function.datacenter.obu.utils.TrafficDataConvertUtilsNew import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_OBU import com.mogo.support.obu.ObuScene import com.mogo.support.obu.constants.MogoObuConstants import kotlin.math.roundToInt - /** * * @author lixiaopeng @@ -78,7 +75,6 @@ class MogoObuDcCombineManager private constructor() : IMoGoObuWarningRsiListener onMogoObuMapMath(mapMatchData) } - /** * RSI预警信息 CvxRtiThreatIndInfo(交通标志预警(前方限速、前方学校等等),交通事件预警(前方拥堵、前方积水等等)) */ @@ -140,9 +136,6 @@ class MogoObuDcCombineManager private constructor() : IMoGoObuWarningRsiListener //车内标牌 MogoObuConstants.RSI_SCENE_TYPE.IVS.toString() -> { when (rsiWarningData.warningMsgList[0].signSerialNum) { -// MogoObuConstants.RTS.RTI_TYPE_INTERSECTION -> { //十字路口 -// appId = V2iEventTypeEnum.TYPE_ID_NTERSECTION.poiType -// } MogoObuConstants.RTS.RTI_TYPE_SHAPR_TURNS -> { //急转弯 appId = EventTypeEnumNew.TYPE_ID_SHAPR_TURNS.poiType } @@ -191,10 +184,6 @@ class MogoObuDcCombineManager private constructor() : IMoGoObuWarningRsiListener MogoObuConstants.RTS.RTI_TYPE_SPEED_LIMIT -> { //限速 appId = EventTypeEnumNew.TYPE_USECASE_ID_ROAD_SPEED_LIMIT.poiType } -// MogoObuConstants.RTS.RTI_TYPE_GO_STRAIGHT_TURN_RIGHT -> { //直行或右转 -// appId = -// EventTypeEnumNew.TYPE_USECASE_ID_GO_STRAIGHT_TURN_RIGHT.poiType -// } MogoObuConstants.RTS.RTI_TYPE_BUS_WARNING -> { //公交提醒 appId = EventTypeEnumNew.TYPE_USECASE_ID_BUS_WARNING.poiType } @@ -296,25 +285,50 @@ class MogoObuDcCombineManager private constructor() : IMoGoObuWarningRsiListener ) // 交通参与者类型 0x0:未知 UNKNOWN | 1机动车 2:非机动车 NON_MOTOR | 3:行人 PEDESTRIAN 4:obu if (rsmWarningData != null && rsmWarningData.participant != null) { - var v2xType = "" - if (rsmWarningData.participant.ptcType == 1) { //机动车 - v2xType = - EventTypeEnumNew.TYPE_USECASE_ID_VRUCW_MOTOR_VEHICLES.poiType + var v2xType = if (rsmWarningData.participant.ptcType == 1) { //机动车 + EventTypeEnumNew.TYPE_USECASE_ID_VRUCW_MOTOR_VEHICLES.poiType } else if (rsmWarningData.participant.ptcType == 2) { //非机动车 - v2xType = - EventTypeEnumNew.TYPE_USECASE_ID_VRUCW_NOT_MOTOR_VEHICLES.poiType + EventTypeEnumNew.TYPE_USECASE_ID_VRUCW_NOT_MOTOR_VEHICLES.poiType } else if (rsmWarningData.participant.ptcType == 3) { //行人 - v2xType = - EventTypeEnumNew.TYPE_USECASE_ID_VRUCW_PERSON.poiType + EventTypeEnumNew.TYPE_USECASE_ID_VRUCW_PERSON.poiType } else { //未知 - v2xType = EventTypeEnumNew.TYPE_ERROR.poiType + EventTypeEnumNew.TYPE_ERROR.poiType } val ttsContent = EventTypeEnumNew.getWarningTts(v2xType) val alertContent = EventTypeEnumNew.getWarningContent(v2xType) var level = -1 - val direction = - getMessageDirection(rsmWarningData.participant.targetPosition) //TODO 只有一个 + val direction = getMessageDirection(rsmWarningData.participant.targetPosition) + //模型的显示 + when (rsmWarningData.status) { + MogoObuConstants.STATUS.ADD -> { // 添加 + // 更新数据,模型变色的时候是不是update,如果不是更新,可能导致模型不变色,(add的时候,是否有level高的) TODO + TrafficDataConvertUtilsNew.cvxPtcThreatIndInfo2TrafficData(rsmWarningData) + ?.let { + CallerMapUIServiceManager.getMarkerService() + ?.updateITrafficThreatLevelInfo(it) + } + } + + MogoObuConstants.STATUS.UPDATE -> { // 更新 + } + + MogoObuConstants.STATUS.DELETE -> { // 删除 + // 更新数据 TODO 删除原来的,改变颜色,删除marker。不影响别的模型添加 + TrafficDataConvertUtilsNew.cvxPtcThreatIndInfo2TrafficData(rsmWarningData) + ?.let { + // 事件结束,还原交通参与者颜色 + it.threatLevel = 0x01 + CallerMapUIServiceManager.getMarkerService() + ?.updateITrafficThreatLevelInfo(it) + } + + //删除弱势交通元素 + CallerMapUIServiceManager.getMarkerService() + ?.removeCvxRvInfoIndInfo(rsmWarningData.participant.ptcId.toString()) + } + } + if (rsmWarningData.warningMsg != null && rsmWarningData.warningMsg.warningDataList != null && rsmWarningData.warningMsg.warningDataList.size > 0) { level = rsmWarningData.warningMsg.warningDataList[0].warningLevel CallerLogger.d( @@ -323,45 +337,36 @@ class MogoObuDcCombineManager private constructor() : IMoGoObuWarningRsiListener rsmWarningData.warningMsg.warningDataList[0].status } --v2xType--- $v2xType ---alertContent = $alertContent ---ttsContent= $ttsContent" ) - when (rsmWarningData.warningMsg.warningDataList[0].status) { MogoObuConstants.STATUS.ADD -> { // 添加 + //更新模型的颜色 + TrafficDataConvertUtilsNew.cvxPtcThreatIndInfo2TrafficData(rsmWarningData) + ?.let { + CallerMapUIServiceManager.getMarkerService() + ?.updateITrafficThreatLevelInfo(it) + } + + if (alertContent.isEmpty() || ttsContent.isEmpty()) { + return + } saveObuToDcData(v2xType, alertContent, ttsContent) showWarning(v2xType, alertContent, ttsContent, direction) - - // 更新数据 TODO -// TrafficDataConvertUtils.cvxPtcThreatIndInfo2TrafficData(rsmWarningData)?.let { -//// TrafficMarkerDrawer.updateITrafficThreatLevelInfo(it) -// CallerMapUIServiceManager.getMarkerService() -// ?.updateITrafficThreatLevelInfo(it) -// } } MogoObuConstants.STATUS.UPDATE -> {// 更新 } - // 删除 - MogoObuConstants.STATUS.DELETE -> { + MogoObuConstants.STATUS.DELETE -> { // 删除 // 关闭警告红边 CallerHmiManager.dismissWarning(WarningDirectionEnum.ALERT_WARNING_ALL) - // 更新数据 TODO 由于obu通过域控需要转换单位,这里临时转换,后面3.0不需要转换 -// TrafficDataConvertUtils.cvxPtcThreatIndInfo2TrafficData(rsmWarningData)?.let { -// // 事件结束,还原交通参与者颜色 -// it.threatLevel = 0x01 -//// TrafficMarkerDrawer.updateITrafficThreatLevelInfo(it) -// CallerMapUIServiceManager.getMarkerService() -// ?.updateITrafficThreatLevelInfo(it) -// } //删除弱势交通元素 CallerMapUIServiceManager.getMarkerService() ?.removeCvxRvInfoIndInfo(rsmWarningData.participant.ptcId.toString()) -// TrafficMarkerDrawer.removeCvxRvInfoIndInfo(rsmWarningData.participantOfOne.ptcID.toString()) } } } } } - } /** @@ -383,10 +388,6 @@ class MogoObuDcCombineManager private constructor() : IMoGoObuWarningRsiListener * 地图匹配 是OBU算法输出地图匹配结果,主车匹配道路哪条路或者哪条车道 */ fun onMogoObuMapMath(data: ObuScene.MapMatchData?) { - CallerLogger.d( - "${M_OBU}${TAG}", - "MogoObuDcCombineManager onMogoObuMapMath HmiBuildConfig.isShowObuLimitSpeedView = " + HmiBuildConfig.isShowObuLimitSpeedView - ) if (HmiBuildConfig.isShowObuLimitSpeedView) { if (data != null) { CallerLogger.d( @@ -398,7 +399,7 @@ class MogoObuDcCombineManager private constructor() : IMoGoObuWarningRsiListener } --- data.speedMaxLimit = ${data.speedMaxLimit}" ) when (data.status) { - MogoObuConstants.STATUS.ADD -> { // 添加 TODO + MogoObuConstants.STATUS.ADD -> { // 添加 CallerLimitingVelocityListenerManager.invokeUnion( (data.speedMaxLimit * 0.02 * 3.6).roundToInt().toInt(), DataSourceType.OBU @@ -598,18 +599,7 @@ class MogoObuDcCombineManager private constructor() : IMoGoObuWarningRsiListener * 保存obu通过工控机传输的数据到消息盒子 */ private fun saveObuToDcData(type: String, content: String, tts: String) { - CallerMsgBoxManager.saveMsgBox( - MsgBoxBean( - MsgBoxType.V2X, - V2XMsg( - type, - content, - tts - ) - ).apply { - sourceType = DataSourceType.TELEMATIC - } - ) + CallerObuSaveMessageListenerManager.invokeObuSaveMessage(type, content, tts, DataSourceType.TELEMATIC) } /** diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoPrivateObuNewManager.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoPrivateObuNewManager.kt index fcba382bc8..9c814152eb 100644 --- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoPrivateObuNewManager.kt +++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoPrivateObuNewManager.kt @@ -107,7 +107,7 @@ class MogoPrivateObuNewManager private constructor() { fun setObuLog(isChecked: Boolean) { ObuManager.getInstance().setEnableLog(isChecked) - val builder: com.mogo.support.obu.option.MogoObuLog.Builder = + val builder: MogoObuLog.Builder = MogoObuLog.newBuilder().setEnableStdio(isChecked) if (isChecked) { builder.setStdioLevel(MogoObuLogLevel.DBG) @@ -437,27 +437,19 @@ class MogoPrivateObuNewManager private constructor() { if (HmiBuildConfig.isShowObuWeaknessTrafficView) { // 交通参与者类型 0x0:未知 UNKNOWN | 1机动车 2:非机动车 NON_MOTOR | 3:行人 PEDESTRIAN 4:obu if (data != null && data.participant != null) { - var v2xType = "" - if (data.participant.ptcType == 1) { //机动车 - v2xType = - EventTypeEnumNew.TYPE_USECASE_ID_VRUCW_MOTOR_VEHICLES.poiType + var v2xType = if (data.participant.ptcType == 1) { //机动车 + EventTypeEnumNew.TYPE_USECASE_ID_VRUCW_MOTOR_VEHICLES.poiType } else if (data.participant.ptcType == 2) { //非机动车 - v2xType = - EventTypeEnumNew.TYPE_USECASE_ID_VRUCW_NOT_MOTOR_VEHICLES.poiType + EventTypeEnumNew.TYPE_USECASE_ID_VRUCW_NOT_MOTOR_VEHICLES.poiType } else if (data.participant.ptcType == 3) { //行人 - v2xType = - EventTypeEnumNew.TYPE_USECASE_ID_VRUCW_PERSON.poiType + EventTypeEnumNew.TYPE_USECASE_ID_VRUCW_PERSON.poiType } else { //未知 - v2xType = EventTypeEnumNew.TYPE_ERROR.poiType + EventTypeEnumNew.TYPE_ERROR.poiType } - val ttsContent = EventTypeEnumNew.getWarningTts(v2xType) - val alertContent = - EventTypeEnumNew.getWarningContent(v2xType) + val alertContent = EventTypeEnumNew.getWarningContent(v2xType) var level = -1 val direction = getMessageDirection(data.participant.targetPosition) - - //物体数据绘制 CallerLogger.d( "$M_OBU${MogoObuConst.TAG_MOGO_NEW_OBU}", "onMogoObuRsmWarning ---- data.status = ${data.status} ---data.participant.ptcId = ${data.participant.ptcId} ---data.participant.ptcType = ${data.participant.ptcType} ---data.warningMsg = ${data.warningMsg} -----data = ${data.toString()}" @@ -745,11 +737,6 @@ class MogoPrivateObuNewManager private constructor() { v2xType = EventTypeEnumNew.TYPE_USECASE_ID_EVW.poiType } - // 这里处理固定的提示信息,包括了<紧急车辆提醒> - else -> { - // ttsContent = EventTypeEnumNew.getWarningTts(appId.toString()) - // alertContent = EventTypeEnumNew.getWarningContent(appId.toString()) - } } when (status) { @@ -830,9 +817,9 @@ class MogoPrivateObuNewManager private constructor() { MogoObuConstants.STATUS.DELETE -> { // 移除顶部弹窗 CallerTrafficLightListenerManager.disableTrafficLight() + CallerTrafficLightListenerManager.invokeTrafficLightDisapper() isShowGreenWave = false isShowRunRedLight = false - CallerTrafficLightListenerManager.invokeTrafficLightDisapper() } } } @@ -969,7 +956,7 @@ class MogoPrivateObuNewManager private constructor() { * 保存obu直连数据到消息盒子 */ private fun saveObuData(type: String, content: String, tts: String) { - CallerObuSaveMessageListenerManager.invokeObuSaveMessage(type, content, tts) + CallerObuSaveMessageListenerManager.invokeObuSaveMessage(type, content, tts, DataSourceType.OBU) } /** diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/obu/IMoGoObuSaveMessageListener.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/obu/IMoGoObuSaveMessageListener.kt index ec5e0531fd..03b914b51c 100644 --- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/obu/IMoGoObuSaveMessageListener.kt +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/obu/IMoGoObuSaveMessageListener.kt @@ -1,5 +1,7 @@ package com.mogo.eagle.core.function.api.obu +import com.mogo.eagle.core.data.enums.DataSourceType + /** * OBU 数据保存 * @author lixiaopeng @@ -11,8 +13,8 @@ interface IMoGoObuSaveMessageListener { * @param type 事件id,类似与uuid * @param content 事件内容 * @param tts 事件语音播报 - * + * @param sourceType 来源 */ - fun onMoGoObuSaveMessage(type: String, content: String, tts: String) + fun onMoGoObuSaveMessage(type: String, content: String, tts: String, sourceType: DataSourceType) } \ No newline at end of file diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/obu/CallerObuSaveMessageListenerManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/obu/CallerObuSaveMessageListenerManager.kt index 3865080049..95b48fdfc7 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/obu/CallerObuSaveMessageListenerManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/obu/CallerObuSaveMessageListenerManager.kt @@ -1,5 +1,6 @@ package com.mogo.eagle.core.function.call.obu +import com.mogo.eagle.core.data.enums.DataSourceType import com.mogo.eagle.core.function.api.obu.IMoGoObuSaveMessageListener import com.mogo.eagle.core.function.api.obu.IMoGoObuWarningRsiListener import com.mogo.eagle.core.function.call.base.CallerBase @@ -11,11 +12,11 @@ import com.mogo.support.obu.ObuScene */ object CallerObuSaveMessageListenerManager : CallerBase() { - fun invokeObuSaveMessage(type: String, content: String, tts: String) { + fun invokeObuSaveMessage(type: String, content: String, tts: String, sourceType: DataSourceType) { M_LISTENERS.forEach { val tag = it.key val listener = it.value - listener.onMoGoObuSaveMessage(type, content, tts) + listener.onMoGoObuSaveMessage(type, content, tts, sourceType) } } From 82c740d67d9ec1035a141ec9bc53fd7782b0e2bf Mon Sep 17 00:00:00 2001 From: lixiaopeng Date: Tue, 21 Feb 2023 10:38:40 +0800 Subject: [PATCH 20/49] =?UTF-8?q?[dev=5Farch=5Fopt=5F3.0]=20=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0obu=E9=80=9A=E8=BF=87=E5=B7=A5=E6=8E=A7=E6=9C=BA?= =?UTF-8?q?=E9=80=9A=E9=81=93=EF=BC=8C=E7=BA=A2=E7=BB=BF=E7=81=AF=E7=8A=B6?= =?UTF-8?q?=E6=80=81=E7=9A=84=E9=87=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../datacenter/obu/MogoObuDcCombineManager.kt | 35 ++++++++----------- .../obu/MogoPrivateObuNewManager.kt | 21 ++++++----- 2 files changed, 27 insertions(+), 29 deletions(-) diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoObuDcCombineManager.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoObuDcCombineManager.kt index 4eb626a00a..d97e5a1c5d 100644 --- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoObuDcCombineManager.kt +++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoObuDcCombineManager.kt @@ -247,11 +247,6 @@ class MogoObuDcCombineManager private constructor() : IMoGoObuWarningRsiListener MogoObuConstants.STATUS.ADD -> { saveObuToDcData(appId, alertContent, ttsContent) showWarning(appId, alertContent, ttsContent, direction) - // 更新数据,是否需要 -// TrafficDataConvertUtilsNew.cvxRtiThreatIndInfo2TrafficData(rsiWarningData)?.let { -// CallerMapUIServiceManager.getMarkerService() -// ?.updateITrafficThreatLevelInfo(it) -// } } MogoObuConstants.STATUS.UPDATE -> { // 更新 @@ -261,14 +256,6 @@ class MogoObuDcCombineManager private constructor() : IMoGoObuWarningRsiListener MogoObuConstants.STATUS.DELETE -> { // 关闭警告红边 CallerHmiManager.dismissWarning(WarningDirectionEnum.ALERT_WARNING_NON) - // 更新数据,删除标牌? -// TrafficDataConvertUtilsNew.cvxRtiThreatIndInfo2TrafficData(rsiWarningData) -// ?.let { -// // 事件结束,还原车辆颜色 -// it.threatLevel = 0x01 -// CallerMapUIServiceManager.getMarkerService() -// ?.updateITrafficInfo(it) -// } } } } @@ -285,14 +272,19 @@ class MogoObuDcCombineManager private constructor() : IMoGoObuWarningRsiListener ) // 交通参与者类型 0x0:未知 UNKNOWN | 1机动车 2:非机动车 NON_MOTOR | 3:行人 PEDESTRIAN 4:obu if (rsmWarningData != null && rsmWarningData.participant != null) { - var v2xType = if (rsmWarningData.participant.ptcType == 1) { //机动车 - EventTypeEnumNew.TYPE_USECASE_ID_VRUCW_MOTOR_VEHICLES.poiType - } else if (rsmWarningData.participant.ptcType == 2) { //非机动车 - EventTypeEnumNew.TYPE_USECASE_ID_VRUCW_NOT_MOTOR_VEHICLES.poiType - } else if (rsmWarningData.participant.ptcType == 3) { //行人 - EventTypeEnumNew.TYPE_USECASE_ID_VRUCW_PERSON.poiType - } else { //未知 - EventTypeEnumNew.TYPE_ERROR.poiType + var v2xType = when (rsmWarningData.participant.ptcType) { + 1 -> { //机动车 + EventTypeEnumNew.TYPE_USECASE_ID_VRUCW_MOTOR_VEHICLES.poiType + } + 2 -> { //非机动车 + EventTypeEnumNew.TYPE_USECASE_ID_VRUCW_NOT_MOTOR_VEHICLES.poiType + } + 3 -> { //行人 + EventTypeEnumNew.TYPE_USECASE_ID_VRUCW_PERSON.poiType + } + else -> { //未知 + EventTypeEnumNew.TYPE_ERROR.poiType + } } val ttsContent = EventTypeEnumNew.getWarningTts(v2xType) val alertContent = @@ -470,6 +462,7 @@ class MogoObuDcCombineManager private constructor() : IMoGoObuWarningRsiListener MogoObuConstants.STATUS.DELETE -> { // 移除顶部弹窗,当收不到信号的时候触发一次 CallerTrafficLightListenerManager.disableTrafficLight() + CallerTrafficLightListenerManager.invokeTrafficLightDisapper() isShowGreenWave = false isShowRunRedLight = false } diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoPrivateObuNewManager.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoPrivateObuNewManager.kt index 9c814152eb..3dcdaea07f 100644 --- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoPrivateObuNewManager.kt +++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoPrivateObuNewManager.kt @@ -437,14 +437,19 @@ class MogoPrivateObuNewManager private constructor() { if (HmiBuildConfig.isShowObuWeaknessTrafficView) { // 交通参与者类型 0x0:未知 UNKNOWN | 1机动车 2:非机动车 NON_MOTOR | 3:行人 PEDESTRIAN 4:obu if (data != null && data.participant != null) { - var v2xType = if (data.participant.ptcType == 1) { //机动车 - EventTypeEnumNew.TYPE_USECASE_ID_VRUCW_MOTOR_VEHICLES.poiType - } else if (data.participant.ptcType == 2) { //非机动车 - EventTypeEnumNew.TYPE_USECASE_ID_VRUCW_NOT_MOTOR_VEHICLES.poiType - } else if (data.participant.ptcType == 3) { //行人 - EventTypeEnumNew.TYPE_USECASE_ID_VRUCW_PERSON.poiType - } else { //未知 - EventTypeEnumNew.TYPE_ERROR.poiType + var v2xType = when (data.participant.ptcType) { + 1 -> { //机动车 + EventTypeEnumNew.TYPE_USECASE_ID_VRUCW_MOTOR_VEHICLES.poiType + } + 2 -> { //非机动车 + EventTypeEnumNew.TYPE_USECASE_ID_VRUCW_NOT_MOTOR_VEHICLES.poiType + } + 3 -> { //行人 + EventTypeEnumNew.TYPE_USECASE_ID_VRUCW_PERSON.poiType + } + else -> { //未知 + EventTypeEnumNew.TYPE_ERROR.poiType + } } val ttsContent = EventTypeEnumNew.getWarningTts(v2xType) val alertContent = EventTypeEnumNew.getWarningContent(v2xType) From 822bbabcc6e94042bd613fd82f270a08f59d9639 Mon Sep 17 00:00:00 2001 From: xinfengkun Date: Tue, 21 Feb 2023 11:47:41 +0800 Subject: [PATCH 21/49] =?UTF-8?q?[opt3.0][adas=20lib]=20M1=E9=A1=B6?= =?UTF-8?q?=E7=81=AF=E6=8E=A7=E5=88=B6=E6=8B=86=E8=A7=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../zhidao/support/adas/high/AdasChannel.java | 23 +++++++++++++----- .../zhidao/support/adas/high/AdasManager.java | 24 +++++++++++++------ .../support/adas/high/IAdasNetCommApi.java | 15 ++++++++---- 3 files changed, 45 insertions(+), 17 deletions(-) diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasChannel.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasChannel.java index 9ef9c6deb1..2ebc54828d 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasChannel.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasChannel.java @@ -1285,17 +1285,28 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec } /** - * 金旅M1顶灯控制 + * 金旅M1顶灯1控制 * - * @param switch1Cmd //0: default, 1: 开启顶灯1, 2: 关闭顶灯1 - * @param switch2Cmd //0: default, 1: 开启顶灯2, 2: 关闭顶灯2 + * @param switchCmd //0: default, 1: 开启顶灯, 2: 关闭顶灯 * @return boolean */ @Override - public boolean sendRoboBusJinlvM1MainLampCmd(int switch1Cmd, int switch2Cmd) { + public boolean sendRoboBusJinlvM1MainLamp1Cmd(int switchCmd) { return sendRoboBusJinlvM1TaskCmd(SpecialVehicleTaskCmdOuterClass.RoboBusJinlvM1Cmd.newBuilder() - .setMainLamp1Cmd(switch1Cmd) - .setMainLamp2Cmd(switch2Cmd) + .setMainLamp1Cmd(switchCmd) + .build()); + } + + /** + * 金旅M1顶灯2控制 + * + * @param switchCmd //0: default, 1: 开启顶灯, 2: 关闭顶灯 + * @return boolean + */ + @Override + public boolean sendRoboBusJinlvM1MainLamp2Cmd(int switchCmd) { + return sendRoboBusJinlvM1TaskCmd(SpecialVehicleTaskCmdOuterClass.RoboBusJinlvM1Cmd.newBuilder() + .setMainLamp2Cmd(switchCmd) .build()); } diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasManager.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasManager.java index 463223afc8..74bb199b85 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasManager.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasManager.java @@ -663,21 +663,31 @@ public class AdasManager implements IAdasNetCommApi { } /** - * 金旅M1顶灯控制 + * 金旅M1顶灯1控制 * - * @param switch1Cmd //0: default, 1: 开启顶灯1, 2: 关闭顶灯1 - * @param switch2Cmd //0: default, 1: 开启顶灯2, 2: 关闭顶灯2 + * @param switchCmd //0: default, 1: 开启顶灯, 2: 关闭顶灯 * @return boolean */ @Override - public boolean sendRoboBusJinlvM1MainLampCmd(int switch1Cmd, int switch2Cmd) { - return mChannel != null && mChannel.sendRoboBusJinlvM1MainLampCmd(switch1Cmd, switch2Cmd); + public boolean sendRoboBusJinlvM1MainLamp1Cmd(int switchCmd) { + return mChannel != null && mChannel.sendRoboBusJinlvM1MainLamp1Cmd(switchCmd); } /** - * 金旅M1车门控制 + * 金旅M1顶灯2控制 * - * @param switchCmd //0: default, 1: 开启车门, 2: 关闭车门 + * @param switchCmd //0: default, 1: 开启顶灯, 2: 关闭顶灯 + * @return boolean + */ + @Override + public boolean sendRoboBusJinlvM1MainLamp2Cmd(int switchCmd) { + return mChannel != null && mChannel.sendRoboBusJinlvM1MainLamp2Cmd(switchCmd); + } + + /** + * 金旅M1小灯(氛围灯)控制 + * + * @param switchCmd //0: default, 1: 开启小灯(氛围灯), 2: 关闭小灯(氛围灯) * @return boolean */ @Override diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/IAdasNetCommApi.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/IAdasNetCommApi.java index 74fc34769a..2eddd3c226 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/IAdasNetCommApi.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/IAdasNetCommApi.java @@ -366,13 +366,20 @@ public interface IAdasNetCommApi { boolean sendRoboBusJinlvM1HeaderCmd(int switchCmd, int windSpeedCmd); /** - * 金旅M1顶灯控制 + * 金旅M1顶灯1控制 * - * @param switch1Cmd //0: default, 1: 开启顶灯1, 2: 关闭顶灯1 - * @param switch2Cmd //0: default, 1: 开启顶灯2, 2: 关闭顶灯2 + * @param switchCmd //0: default, 1: 开启顶灯, 2: 关闭顶灯 * @return boolean */ - boolean sendRoboBusJinlvM1MainLampCmd(int switch1Cmd, int switch2Cmd); + boolean sendRoboBusJinlvM1MainLamp1Cmd(int switchCmd); + + /** + * 金旅M1顶灯2控制 + * + * @param switchCmd //0: default, 1: 开启顶灯, 2: 关闭顶灯 + * @return boolean + */ + boolean sendRoboBusJinlvM1MainLamp2Cmd(int switchCmd); /** * 金旅M1小灯(氛围灯)控制 From 7f96b416c817d3969fc8610eba030b0bc3861c5a Mon Sep 17 00:00:00 2001 From: zhongchao Date: Tue, 21 Feb 2023 10:53:10 +0800 Subject: [PATCH 22/49] [2.13.0-arch-opt] update socket reconnect and fix httpdns reconnect logic --- .../startup/stageone/HttpDnsStartUp.kt | 128 ++++++++++-------- .../core/data/deva/chain/ChainConstant.kt | 1 + .../services/socket/IMogoSocketManager.java | 5 + .../socket/MogoAiCloudSocketManager.java | 5 + gradle.properties | 18 +-- 5 files changed, 93 insertions(+), 64 deletions(-) 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 8f4b6de3f7..9728f6827a 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 @@ -11,15 +11,16 @@ import com.mogo.cloud.passport.IMoGoTokenCallback import com.mogo.cloud.passport.MoGoAiCloudClient import com.mogo.cloud.passport.MoGoAiCloudClientConfig import com.mogo.commons.AbsMogoApplication -import com.mogo.commons.utils.MogoAnalyticUtils import com.mogo.commons.constants.SharedPrefsConstants import com.mogo.commons.debug.DebugConfig import com.mogo.commons.module.status.MogoStatusManager import com.mogo.commons.network.NetConfigUtils +import com.mogo.commons.utils.MogoAnalyticUtils import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_CLOUD_CONNECT_FAIL import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_CLOUD_CONNECT_LOST import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_CLOUD_CONNECT_SUCCESS +import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_ALIAS_CODE_CLOUD_RECONNECT import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_LINK_CLOUD import com.mogo.eagle.core.data.deva.chain.ChainConstant.Companion.CHAIN_LINK_LOG_CONNECT_STATUS import com.mogo.eagle.core.data.map.MogoLocation @@ -30,28 +31,35 @@ import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager 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 +import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_MAIN import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr import com.mogo.eagle.core.utilcode.util.* import com.rousetime.android_startup.AndroidStartup import com.zhjt.service.chain.ChainLog import com.zhjt.service.chain.TracingConstants.Endpoint.Companion.PAD +import kotlin.properties.Delegates class HttpDnsStartUp : AndroidStartup() { - private val TAG = "MogoApplication" + companion object { + private const val TAG = "HttpDnsStartUp" + } // 配置云服务API private val clientConfig by lazy { MoGoAiCloudClientConfig.getInstance() } - // 缓存IP地址 - private var cacheIp: String? = null - private var context: Context? = null private var gotToken = false + private var httpDnsSimpleLocation by Delegates.observable(getDefaultSimpleLocation()) { _, oldValue, newValue -> + if (oldValue.cityCode != newValue.cityCode) { + reConnectSocket(oldValue.cityCode, newValue.cityCode) + } + } + override fun callCreateOnMainThread() = true override fun waitOnMainThread() = false @@ -121,7 +129,10 @@ class HttpDnsStartUp : AndroidStartup() { override fun getCurrentLocation(): HttpDnsSimpleLocation { val envConfig = CallerDevaToolsManager.getEnvConfig() if (envConfig != null) { - return HttpDnsSimpleLocation(envConfig.cityCode, envConfig.lat, envConfig.lon) + // 更新 + httpDnsSimpleLocation = + HttpDnsSimpleLocation(envConfig.cityCode, envConfig.lat, envConfig.lon) + return httpDnsSimpleLocation } var mogoLocation: MogoLocation? = null val locationClient = @@ -129,49 +140,25 @@ class HttpDnsStartUp : AndroidStartup() { if (locationClient != null) { mogoLocation = locationClient } - val httpDnsSimpleLocation = - if (mogoLocation != null && mogoLocation.latitude != 0.0 && mogoLocation.longitude != 0.0) { - if (mogoLocation.cityCode.isNullOrEmpty() - && !CallerMapUIServiceManager.getGDLocationServer(context!!)?.lastCityCode.isNullOrEmpty() - ) { - HttpDnsSimpleLocation( - CallerMapUIServiceManager.getGDLocationServer(context!!)?.lastCityCode - ?: "010", - mogoLocation.latitude, - mogoLocation.longitude - ) - } else { - HttpDnsSimpleLocation( - mogoLocation.cityCode, - mogoLocation.latitude, - mogoLocation.longitude - ) - } + if (mogoLocation != null && mogoLocation.latitude != 0.0 && mogoLocation.longitude != 0.0) { + // 更新 + httpDnsSimpleLocation = if (mogoLocation.cityCode.isNullOrEmpty() + && !CallerMapUIServiceManager.getGDLocationServer(context!!)?.lastCityCode.isNullOrEmpty() + ) { + HttpDnsSimpleLocation( + CallerMapUIServiceManager.getGDLocationServer(context!!)?.lastCityCode + ?: "010", + mogoLocation.latitude, + mogoLocation.longitude + ) } else { - val ciyCode = - SharedPrefsMgr.getInstance( - AbsMogoApplication.getApp() - ) - .getString(SharedPrefsConstants.LOCATION_CITY_CODE) - val latitude = - SharedPrefsMgr.getInstance( - AbsMogoApplication.getApp() - ) - .getString(SharedPrefsConstants.LOCATION_LATITUDE) - val longitude = - SharedPrefsMgr.getInstance( - AbsMogoApplication.getApp() - ) - .getString(SharedPrefsConstants.LOCATION_LONGITUDE) - try { - HttpDnsSimpleLocation( - ciyCode, latitude.toDouble(), longitude.toDouble() - ) - } catch (e: NumberFormatException) { - // e.printStackTrace(); - HttpDnsSimpleLocation("010", 1.0, 1.0) - } + HttpDnsSimpleLocation( + mogoLocation.cityCode, + mogoLocation.latitude, + mogoLocation.longitude + ) } + } return httpDnsSimpleLocation } } @@ -186,10 +173,7 @@ class HttpDnsStartUp : AndroidStartup() { clientConfig.token = token // 由于存在token过期问题,在更新后会回调至此处,增加二次判定 if (!gotToken) { - CallerLogger.d( - SceneConstant.M_MAIN + TAG, - "onTokenGot token : $token , sn :$sn" - ) + CallerLogger.d("$M_MAIN$TAG", "onTokenGot token : $token , sn :$sn") CallerCloudListenerManager.invokeCloudTokenGot(token, sn) // 异步初始化NetConfig asyncInit() @@ -202,7 +186,7 @@ class HttpDnsStartUp : AndroidStartup() { override fun onError(code: Int, msg: String) { CallerLogger.d( - SceneConstant.M_MAIN + TAG, + "$M_MAIN$TAG", "初始化MogoAiCloudSdk failed ,reason : $msg , 未能开启长链服务和初始化Modules服务" ) } @@ -252,11 +236,8 @@ class HttpDnsStartUp : AndroidStartup() { private fun startSocketService() { CallerLogger.d(SceneConstant.M_MAIN + TAG, "startSocketService") val location = CallerChassisLocationGCJ02ListenerManager.getChassisLocationGCJ02() - // 关闭长链服务 - MogoAiCloudSocketManager.getInstance(context).destroy() MogoAiCloudSocketManager.getInstance(context) .registerLifecycleListener(10020, object : IMogoLifecycleListener { - @ChainLog( linkChainLog = CHAIN_LINK_LOG_CONNECT_STATUS, linkCode = CHAIN_LINK_CLOUD, @@ -319,4 +300,41 @@ class HttpDnsStartUp : AndroidStartup() { MogoAiCloudSocketManager.getInstance(context) .init(context, DebugConfig.getSocketAppId(), lat, lon) } + + @ChainLog( + linkChainLog = CHAIN_LINK_LOG_CONNECT_STATUS, + linkCode = CHAIN_LINK_CLOUD, + endpoint = PAD, + nodeAliasCode = CHAIN_ALIAS_CODE_CLOUD_RECONNECT, + paramIndexes = [0, 1], + clientPkFileName = "sn" + ) + private fun reConnectSocket(oldCityCode: String, newCityCode: String) { + MogoAiCloudSocketManager.getInstance(context).reConnect() + } + + private fun getDefaultSimpleLocation(): HttpDnsSimpleLocation { + val ciyCode = + SharedPrefsMgr.getInstance( + AbsMogoApplication.getApp() + ) + .getString(SharedPrefsConstants.LOCATION_CITY_CODE) + val latitude = + SharedPrefsMgr.getInstance( + AbsMogoApplication.getApp() + ) + .getString(SharedPrefsConstants.LOCATION_LATITUDE) + val longitude = + SharedPrefsMgr.getInstance( + AbsMogoApplication.getApp() + ) + .getString(SharedPrefsConstants.LOCATION_LONGITUDE) + try { + return HttpDnsSimpleLocation( + ciyCode, latitude.toDouble(), longitude.toDouble() + ) + } catch (e: NumberFormatException) { + return HttpDnsSimpleLocation("010", 1.0, 1.0) + } + } } \ No newline at end of file diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/deva/chain/ChainConstant.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/deva/chain/ChainConstant.kt index da65a90d98..b3b4418ca4 100644 --- a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/deva/chain/ChainConstant.kt +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/deva/chain/ChainConstant.kt @@ -58,6 +58,7 @@ class ChainConstant { const val CHAIN_ALIAS_CODE_CLOUD_CONNECT_FAIL = "CHAIN_ALIAS_CODE_CLOUD_CONNECT_FAIL" const val CHAIN_ALIAS_CODE_CLOUD_CONNECT_SUCCESS = "CHAIN_ALIAS_CODE_CLOUD_CONNECT_SUCCESS" + const val CHAIN_ALIAS_CODE_CLOUD_RECONNECT = "CHAIN_ALIAS_CODE_CLOUD_RECONNECT" const val CHAIN_ALIAS_CODE_CLOUD_CONNECT_LOST = "CHAIN_ALIAS_CODE_CLOUD_CONNECT_LOST" const val CHAIN_ALIAS_CODE_CLOUD_CONNECT_ERROR = "CHAIN_ALIAS_CODE_CLOUD_CONNECT_ERROR" const val CHAIN_ALIAS_CODE_HTTP_DNS_CHANGED = "CHAIN_ALIAS_CODE_HTTP_DNS_CHANGED" diff --git a/foudations/mogo-aicloud-services-sdk/src/main/java/com/mogo/aicloud/services/socket/IMogoSocketManager.java b/foudations/mogo-aicloud-services-sdk/src/main/java/com/mogo/aicloud/services/socket/IMogoSocketManager.java index 158b60f36c..54f1b65fd8 100644 --- a/foudations/mogo-aicloud-services-sdk/src/main/java/com/mogo/aicloud/services/socket/IMogoSocketManager.java +++ b/foudations/mogo-aicloud-services-sdk/src/main/java/com/mogo/aicloud/services/socket/IMogoSocketManager.java @@ -21,6 +21,11 @@ public interface IMogoSocketManager extends IProvider { */ void init( Context context, String appId , double lat, double lon); + /** + * 重新连接 + */ + void reConnect(); + /** * 注册消息监听 * diff --git a/foudations/mogo-aicloud-services-sdk/src/main/java/com/mogo/aicloud/services/socket/MogoAiCloudSocketManager.java b/foudations/mogo-aicloud-services-sdk/src/main/java/com/mogo/aicloud/services/socket/MogoAiCloudSocketManager.java index 5285ac617c..568bc72725 100644 --- a/foudations/mogo-aicloud-services-sdk/src/main/java/com/mogo/aicloud/services/socket/MogoAiCloudSocketManager.java +++ b/foudations/mogo-aicloud-services-sdk/src/main/java/com/mogo/aicloud/services/socket/MogoAiCloudSocketManager.java @@ -74,6 +74,11 @@ public class MogoAiCloudSocketManager extends ConnectionLifecycleListener implem SocketManager.getInstance().init(context, lat, lon); } + @Override + public void reConnect() { + SocketManager.getInstance().reConnect(); + } + @Override public void registerOnMessageListener(int msgType, IMogoOnMessageListener listener) { if (mListeners.containsKey(msgType)) { diff --git a/gradle.properties b/gradle.properties index d9fedbc60f..1459737491 100644 --- a/gradle.properties +++ b/gradle.properties @@ -66,23 +66,23 @@ SERVICE_BIZ_VERSION=1.2.4 LOGLIB_VERSION=1.5.10 ######## MogoAiCloudSDK Version ######## # 网络请求LOGLIB_VERSION -MOGO_NETWORK_VERSION=1.4.4.4 +MOGO_NETWORK_VERSION=1.4.4.5 # 鉴权 -MOGO_PASSPORT_VERSION=1.4.4.4 +MOGO_PASSPORT_VERSION=1.4.4.5 # 常链接 -MOGO_SOCKET_VERSION=1.4.4.4 +MOGO_SOCKET_VERSION=1.4.4.5 # 数据采集 -MOGO_REALTIME_VERSION=1.4.4.4 +MOGO_REALTIME_VERSION=1.4.4.5 # 探路,道路事件发布,获取 -MOGO_TANLU_VERSION=1.4.4.4 +MOGO_TANLU_VERSION=1.4.4.5 # 直播推流 -MOGO_LIVE_VERSION=1.4.4.4 +MOGO_LIVE_VERSION=1.4.4.5 # 直播拉流 -MOGO_TRAFFICLIVE_VERSION=1.4.4.4 +MOGO_TRAFFICLIVE_VERSION=1.4.4.5 # 定位服务 -MOGO_LOCATION_VERSION=1.4.4.4 +MOGO_LOCATION_VERSION=1.4.4.5 # 远程通讯模块 -MOGO_TELEMATIC_VERSION=1.4.4.4 +MOGO_TELEMATIC_VERSION=1.4.4.5 ######## MogoAiCloudSDK Version ######## # 自研地图 MAP_SDK_VERSION=2.10.0.2_test_01 From 1a3080fe84cd5eadcdfa8eb9f9cd1d5849d40133 Mon Sep 17 00:00:00 2001 From: zhongchao Date: Tue, 21 Feb 2023 10:59:05 +0800 Subject: [PATCH 23/49] [2.13.0-arch-opt] add point log --- .../function/startup/stageone/HttpDnsStartUp.kt | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) 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 9728f6827a..84e3b6a9c4 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 @@ -30,7 +30,6 @@ import com.mogo.eagle.core.function.call.cloud.CallerCloudListenerManager import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager 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 import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_MAIN import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr import com.mogo.eagle.core.utilcode.util.* @@ -98,7 +97,7 @@ class HttpDnsStartUp : AndroidStartup() { clientConfig.isUseOriginSocket = true // 设置是否输出网络日志 clientConfig.isShowNetDebugLog = false -// clientConfig.passportUrl //todo yakun +// clientConfig.passportUrl //todo 亚坤 // clientConfig.socketBaseUrl // clientConfig.socketTechUrl // 设置是否是直播推流的主播 @@ -234,7 +233,7 @@ class HttpDnsStartUp : AndroidStartup() { } private fun startSocketService() { - CallerLogger.d(SceneConstant.M_MAIN + TAG, "startSocketService") + CallerLogger.d("$M_MAIN$TAG","startSocketService") val location = CallerChassisLocationGCJ02ListenerManager.getChassisLocationGCJ02() MogoAiCloudSocketManager.getInstance(context) .registerLifecycleListener(10020, object : IMogoLifecycleListener { @@ -247,7 +246,7 @@ class HttpDnsStartUp : AndroidStartup() { clientPkFileName = "sn" ) override fun onConnectFailure() { - CallerLogger.d(SceneConstant.M_MAIN + TAG, "socket-onConnectFailure") + CallerLogger.d("$M_MAIN$TAG", "socket-onConnectFailure") MogoStatusManager.getInstance().setCloudSocketMode(TAG, false) } @@ -260,7 +259,7 @@ class HttpDnsStartUp : AndroidStartup() { clientPkFileName = "sn" ) override fun onConnectSuccess() { - CallerLogger.d(SceneConstant.M_MAIN + TAG, "socket-onConnectSuccess") + CallerLogger.d("$M_MAIN$TAG", "socket-onConnectSuccess") MogoStatusManager.getInstance().setCloudSocketMode(TAG, true) } @@ -273,7 +272,7 @@ class HttpDnsStartUp : AndroidStartup() { clientPkFileName = "sn" ) override fun onConnectLost() { - CallerLogger.d(SceneConstant.M_MAIN + TAG, "socket-onConnectLost") + CallerLogger.d("$M_MAIN$TAG", "socket-onConnectLost") MogoStatusManager.getInstance().setCloudSocketMode(TAG, false) } @@ -286,10 +285,7 @@ class HttpDnsStartUp : AndroidStartup() { clientPkFileName = "sn" ) override fun onError(code: String, msg: String?) { - CallerLogger.d( - SceneConstant.M_MAIN + TAG, - "socket-onError code : $code , msg : $msg" - ) + CallerLogger.d("$M_MAIN$TAG", "socket-onError code : $code , msg : $msg") } }) // 开启Socket长链服务 @@ -310,6 +306,7 @@ class HttpDnsStartUp : AndroidStartup() { clientPkFileName = "sn" ) private fun reConnectSocket(oldCityCode: String, newCityCode: String) { + CallerLogger.d("$M_MAIN$TAG", "reConnectSocket oldCityCode : $oldCityCode , newCityCode : $newCityCode") MogoAiCloudSocketManager.getInstance(context).reConnect() } From 497573e1d0d4c0caeebd10623c034dc47f003982 Mon Sep 17 00:00:00 2001 From: zhongchao Date: Tue, 21 Feb 2023 11:01:50 +0800 Subject: [PATCH 24/49] [2.13.0-arch-opt] renote the versionCodeView to fix bug --- .../mogo/eagle/core/function/hmi/ui/widget/VersionNameView.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/VersionNameView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/VersionNameView.kt index 28f464b10f..cbfbab04bf 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/VersionNameView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/VersionNameView.kt @@ -60,7 +60,7 @@ class VersionNameView @JvmOverloads constructor( @SuppressLint("SetTextI18n") private fun showCurrentPadVersion() { tvAppVersionName?.let { -// it.text = "APP:${AppUtils.getAppVersionName()}" + it.text = "APP:${AppUtils.getAppVersionName()}" } } From eb569532828fc7221bd86a83c6f2b2838206027f Mon Sep 17 00:00:00 2001 From: zhongchao Date: Tue, 21 Feb 2023 11:55:52 +0800 Subject: [PATCH 25/49] [2.13.0-arch-opt] update ai cloud sdk version --- .../startup/stageone/HttpDnsStartUp.kt | 6 +++--- gradle.properties | 18 +++++++++--------- 2 files changed, 12 insertions(+), 12 deletions(-) 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 84e3b6a9c4..a5ad0ae66e 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 @@ -326,12 +326,12 @@ class HttpDnsStartUp : AndroidStartup() { AbsMogoApplication.getApp() ) .getString(SharedPrefsConstants.LOCATION_LONGITUDE) - try { - return HttpDnsSimpleLocation( + return try { + HttpDnsSimpleLocation( ciyCode, latitude.toDouble(), longitude.toDouble() ) } catch (e: NumberFormatException) { - return HttpDnsSimpleLocation("010", 1.0, 1.0) + HttpDnsSimpleLocation("010", 1.0, 1.0) } } } \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index 1459737491..84fbc00de8 100644 --- a/gradle.properties +++ b/gradle.properties @@ -66,23 +66,23 @@ SERVICE_BIZ_VERSION=1.2.4 LOGLIB_VERSION=1.5.10 ######## MogoAiCloudSDK Version ######## # 网络请求LOGLIB_VERSION -MOGO_NETWORK_VERSION=1.4.4.5 +MOGO_NETWORK_VERSION=1.4.4.7 # 鉴权 -MOGO_PASSPORT_VERSION=1.4.4.5 +MOGO_PASSPORT_VERSION=1.4.4.7 # 常链接 -MOGO_SOCKET_VERSION=1.4.4.5 +MOGO_SOCKET_VERSION=1.4.4.7 # 数据采集 -MOGO_REALTIME_VERSION=1.4.4.5 +MOGO_REALTIME_VERSION=1.4.4.7 # 探路,道路事件发布,获取 -MOGO_TANLU_VERSION=1.4.4.5 +MOGO_TANLU_VERSION=1.4.4.7 # 直播推流 -MOGO_LIVE_VERSION=1.4.4.5 +MOGO_LIVE_VERSION=1.4.4.7 # 直播拉流 -MOGO_TRAFFICLIVE_VERSION=1.4.4.5 +MOGO_TRAFFICLIVE_VERSION=1.4.4.7 # 定位服务 -MOGO_LOCATION_VERSION=1.4.4.5 +MOGO_LOCATION_VERSION=1.4.4.7 # 远程通讯模块 -MOGO_TELEMATIC_VERSION=1.4.4.5 +MOGO_TELEMATIC_VERSION=1.4.4.7 ######## MogoAiCloudSDK Version ######## # 自研地图 MAP_SDK_VERSION=2.10.0.2_test_01 From 76f3470d7410c0380bb365162c46833c3991c031 Mon Sep 17 00:00:00 2001 From: chenfufeng Date: Tue, 21 Feb 2023 12:14:42 +0800 Subject: [PATCH 26/49] =?UTF-8?q?[Opt3.0]=E6=9A=B4=E9=9C=B2=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E7=BB=99=E4=B8=8A=E5=B1=82=E4=B8=9A=E5=8A=A1=E4=BD=BF?= =?UTF-8?q?=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../autopilot/MoGoAutopilotControlProvider.kt | 34 +++++++++++++++++- .../IMoGoAutopilotControlProvider.kt | 22 ++++++++++++ .../CallerAutoPilotControlManager.kt | 35 +++++++++++++++++++ 3 files changed, 90 insertions(+), 1 deletion(-) diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/MoGoAutopilotControlProvider.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/MoGoAutopilotControlProvider.kt index f460537065..fa5f14ed05 100644 --- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/MoGoAutopilotControlProvider.kt +++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/MoGoAutopilotControlProvider.kt @@ -2,7 +2,6 @@ package com.mogo.eagle.core.function.datacenter.autopilot import android.Manifest.permission import android.content.Context -import android.util.Log import androidx.annotation.RequiresPermission import chassis.SpecialVehicleTaskCmdOuterClass import com.alibaba.android.arouter.facade.annotation.Route @@ -737,4 +736,37 @@ class MoGoAutopilotControlProvider : MessageType.TYPE_RECEIVE_POINT_CLOUD) } } + + override fun sendRoboBusJinlvM1FrontDoorCmd(switchCmd: Int): Boolean { + return AdasManager.getInstance().sendRoboBusJinlvM1FrontDoorCmd(switchCmd) + } + + override fun sendRoboBusJinlvM1AirConditionerCmd( + switchCmd: Int, + modeCmd: Int, + windSpeedCmd: Int, + temperatureCmd: Int + ): Boolean { + return AdasManager.getInstance().sendRoboBusJinlvM1AirConditionerCmd(switchCmd, modeCmd, windSpeedCmd, temperatureCmd) + } + + override fun sendRoboBusJinlvM1HeaderCmd(switchCmd: Int, windSpeedCmd: Int): Boolean { + return AdasManager.getInstance().sendRoboBusJinlvM1HeaderCmd(switchCmd, windSpeedCmd) + } + + override fun sendRoboBusJinlvM1MainLamp1Cmd(switchCmd: Int): Boolean { + return AdasManager.getInstance().sendRoboBusJinlvM1MainLamp1Cmd(switchCmd) + } + + override fun sendRoboBusJinlvM1MainLamp2Cmd(switchCmd: Int): Boolean { + return AdasManager.getInstance().sendRoboBusJinlvM1MainLamp2Cmd(switchCmd) + } + + override fun sendRoboBusJinlvM1SmallLampCmd(switchCmd: Int): Boolean { + return AdasManager.getInstance().sendRoboBusJinlvM1SmallLampCmd(switchCmd) + } + + override fun sendRoboBusJinlvM1TaskCmd(roboBusJinlvM1Cmd: SpecialVehicleTaskCmdOuterClass.RoboBusJinlvM1Cmd): Boolean { + return AdasManager.getInstance().sendRoboBusJinlvM1TaskCmd(roboBusJinlvM1Cmd) + } } \ No newline at end of file diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/autopilot/IMoGoAutopilotControlProvider.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/autopilot/IMoGoAutopilotControlProvider.kt index 559928123e..5559e67b9f 100644 --- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/autopilot/IMoGoAutopilotControlProvider.kt +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/autopilot/IMoGoAutopilotControlProvider.kt @@ -290,4 +290,26 @@ interface IMoGoAutopilotControlProvider : IMoGoFunctionServerProvider { * @param isDrawPointCloud 是否绘制点云 */ fun setIsDrawPointCloud(isDrawPointCloud: Boolean) + + fun sendRoboBusJinlvM1FrontDoorCmd(switchCmd: Int): Boolean + + fun sendRoboBusJinlvM1AirConditionerCmd( + switchCmd: Int, + modeCmd: Int, + windSpeedCmd: Int, + temperatureCmd: Int + ): Boolean + + fun sendRoboBusJinlvM1HeaderCmd(switchCmd: Int, windSpeedCmd: Int): Boolean + + fun sendRoboBusJinlvM1MainLamp1Cmd(switchCmd: Int): Boolean + + fun sendRoboBusJinlvM1MainLamp2Cmd(switchCmd: Int): Boolean + + /** + * 车门控制 + */ + fun sendRoboBusJinlvM1SmallLampCmd(switchCmd: Int): Boolean + + fun sendRoboBusJinlvM1TaskCmd(roboBusJinlvM1Cmd: SpecialVehicleTaskCmdOuterClass.RoboBusJinlvM1Cmd): Boolean } \ No newline at end of file diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerAutoPilotControlManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerAutoPilotControlManager.kt index e6089e167b..1980bf91db 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerAutoPilotControlManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerAutoPilotControlManager.kt @@ -415,4 +415,39 @@ object CallerAutoPilotControlManager { providerApi?.setIsDrawPointCloud(isDrawPointCloud) } + fun sendRoboBusJinlvM1FrontDoorCmd(switchCmd: Int): Boolean { + return providerApi?.sendRoboBusJinlvM1FrontDoorCmd(switchCmd) ?: false + } + + fun sendRoboBusJinlvM1AirConditionerCmd( + switchCmd: Int, + modeCmd: Int, + windSpeedCmd: Int, + temperatureCmd: Int + ): Boolean { + return providerApi?.sendRoboBusJinlvM1AirConditionerCmd(switchCmd, modeCmd, windSpeedCmd, temperatureCmd) ?: false + } + + fun sendRoboBusJinlvM1HeaderCmd(switchCmd: Int, windSpeedCmd: Int): Boolean { + return providerApi?.sendRoboBusJinlvM1HeaderCmd(switchCmd, windSpeedCmd) ?: false + } + + fun sendRoboBusJinlvM1MainLamp1Cmd(switchCmd: Int): Boolean { + return providerApi?.sendRoboBusJinlvM1MainLamp1Cmd(switchCmd) ?: false + } + + fun sendRoboBusJinlvM1MainLamp2Cmd(switchCmd: Int): Boolean { + return providerApi?.sendRoboBusJinlvM1MainLamp2Cmd(switchCmd) ?: false + } + + /** + * 车门控制 + */ + fun sendRoboBusJinlvM1SmallLampCmd(switchCmd: Int): Boolean { + return providerApi?.sendRoboBusJinlvM1SmallLampCmd(switchCmd) ?: false + } + + fun sendRoboBusJinlvM1TaskCmd(roboBusJinlvM1Cmd: SpecialVehicleTaskCmdOuterClass.RoboBusJinlvM1Cmd): Boolean { + return providerApi?.sendRoboBusJinlvM1TaskCmd(roboBusJinlvM1Cmd) ?: false + } } \ No newline at end of file From 719220cb6a60b5ed6eaf81137d57a84bce5e994e Mon Sep 17 00:00:00 2001 From: donghongyu Date: Tue, 21 Feb 2023 12:15:32 +0800 Subject: [PATCH 27/49] =?UTF-8?q?[dev=5Farch=5Fopt=5F3.0]=20[Change]=20[?= =?UTF-8?q?=201=E3=80=81=E5=A2=9E=E5=8A=A0=E5=B7=B2=E5=87=BA=E7=9B=91?= =?UTF-8?q?=E5=90=AC=E7=9A=84=E6=97=B6=E5=80=99=E5=B0=86Hz=E7=9B=B8?= =?UTF-8?q?=E5=85=B3=E7=9A=84=E8=AE=B0=E5=BD=95=E7=A7=BB=E9=99=A4=20]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: donghongyu --- ...llerChassisLocationGCJ02ListenerManager.kt | 2 -- .../core/function/call/base/CallerBase.kt | 20 +++++++++++++++++++ 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerChassisLocationGCJ02ListenerManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerChassisLocationGCJ02ListenerManager.kt index 671a05f57a..0c20a62a84 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerChassisLocationGCJ02ListenerManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerChassisLocationGCJ02ListenerManager.kt @@ -35,8 +35,6 @@ object CallerChassisLocationGCJ02ListenerManager : CallerBase { return } M_LISTENERS.remove(tag) + + if (!M_LISTENERS_HZ.containsKey(tag)) { + return + } + M_LISTENERS_HZ.remove(tag) + + if (!M_LISTENERS_HZ_LAST_SEND_TIME.containsKey(tag)) { + return + } + M_LISTENERS_HZ_LAST_SEND_TIME.remove(tag) } /** @@ -83,6 +93,16 @@ open class CallerBase { M_LISTENERS.forEach { if (it.value == listener) { M_LISTENERS.remove(it.key) + + if (!M_LISTENERS_HZ.containsKey(it.key)) { + return + } + M_LISTENERS_HZ.remove(it.key) + + if (!M_LISTENERS_HZ_LAST_SEND_TIME.containsKey(it.key)) { + return + } + M_LISTENERS_HZ_LAST_SEND_TIME.remove(it.key) } } } From b3b53d478f841f534cb674f6b37c282ee85db881 Mon Sep 17 00:00:00 2001 From: zhongchao Date: Tue, 21 Feb 2023 14:02:10 +0800 Subject: [PATCH 28/49] [2.13.0-arch-opt] add apm tag of car type --- .../utilcode/mogo/AppIdentityModeUtils.kt | 19 +++++++++++++------ .../apm/ApmCrashReportProvider.java | 3 +++ 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/mogo/AppIdentityModeUtils.kt b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/mogo/AppIdentityModeUtils.kt index b4dd06db5a..7037828edf 100644 --- a/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/mogo/AppIdentityModeUtils.kt +++ b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/mogo/AppIdentityModeUtils.kt @@ -25,7 +25,6 @@ object AppIdentityModeUtils { private const val SWEEPER = "Sweeper" - private fun getInfo(appIdentityMode: String): Array { val split = appIdentityMode.split("_") if (split.size == 3) { @@ -34,6 +33,14 @@ object AppIdentityModeUtils { return arrayOf("", "", "") } + fun getBuildCarType(appIdentityMode: String): String { + val (_, _, carType) = getInfo(appIdentityMode) + if(carType.isNotEmpty()){ + return carType + } + return "" + } + /** * 是否是 司机端(这里不细分具体是:小巴、出租车等类型) * @@ -43,7 +50,7 @@ object AppIdentityModeUtils { @JvmStatic fun isDriver(appIdentityMode: String): Boolean { val (_, identity, _) = getInfo(appIdentityMode) - if (!identity.isEmpty()) { + if (identity.isNotEmpty()) { return identity == DRIVER } return false @@ -58,7 +65,7 @@ object AppIdentityModeUtils { @JvmStatic fun isPassenger(appIdentityMode: String): Boolean { val (_, identity, _) = getInfo(appIdentityMode) - if (!identity.isEmpty()) { + if (identity.isNotEmpty()) { return identity == PASSENGER } return false @@ -73,7 +80,7 @@ object AppIdentityModeUtils { @JvmStatic fun isBus(appIdentityMode: String): Boolean { val (bussness, _, _) = getInfo(appIdentityMode) - if (!bussness.isEmpty()) { + if (bussness.isNotEmpty()) { return bussness == BUS } return false @@ -88,7 +95,7 @@ object AppIdentityModeUtils { @JvmStatic fun isSweeper(appIdentityMode: String): Boolean { val (bussness, _, _) = getInfo(appIdentityMode) - if (!bussness.isEmpty()) { + if (bussness.isNotEmpty()) { return bussness == SWEEPER } return false @@ -103,7 +110,7 @@ object AppIdentityModeUtils { @JvmStatic fun isTaxi(appIdentityMode: String): Boolean { val (bussness, _, _) = getInfo(appIdentityMode) - if (!bussness.isEmpty()) { + if (bussness.isNotEmpty()) { return bussness == TAXI } return false diff --git a/test/crashreport-apmbyte/src/main/java/com/mogo/test/crashreport/apm/ApmCrashReportProvider.java b/test/crashreport-apmbyte/src/main/java/com/mogo/test/crashreport/apm/ApmCrashReportProvider.java index ac22671363..ac143c2920 100644 --- a/test/crashreport-apmbyte/src/main/java/com/mogo/test/crashreport/apm/ApmCrashReportProvider.java +++ b/test/crashreport-apmbyte/src/main/java/com/mogo/test/crashreport/apm/ApmCrashReportProvider.java @@ -13,6 +13,8 @@ import com.bytedance.apm.insight.ApmInsightInitConfig; import com.mogo.commons.constants.SharedPrefsConstants; import com.mogo.commons.debug.DebugConfig; import com.mogo.eagle.core.data.bindingcar.CarInfo; +import com.mogo.eagle.core.data.config.FunctionBuildConfig; +import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr; import com.mogo.eagle.core.utilcode.util.CommonUtils; @@ -96,6 +98,7 @@ public class ApmCrashReportProvider implements ITestCrashReportProvider { crash.addTags("CITYCODE", mCityCode); crash.addTags("LATITUDE", mLat); crash.addTags("LONGITUTE", mLogt); + crash.addTags("CAR_TYPE", AppIdentityModeUtils.INSTANCE.getBuildCarType(FunctionBuildConfig.appIdentityMode)); // crash.setReportUrl("www.xxx.com"); // 私有化部署:私有化部署才配置上报地址 // crash.addTags("key", "value"); // 自定义筛选tag, 按需添加、可多次覆盖 From b192238894a490268fea33385e189540e75a07a0 Mon Sep 17 00:00:00 2001 From: xinfengkun Date: Tue, 21 Feb 2023 15:35:52 +0800 Subject: [PATCH 29/49] =?UTF-8?q?[opt3.0][adas=20lib]=201.=E8=83=BD?= =?UTF-8?q?=E5=90=A6=E5=90=AF=E5=8A=A8=E8=87=AA=E9=A9=BE=E6=A3=80=E6=B5=8B?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E5=85=BC=E5=AE=B9MAP250=E4=BB=A5=E4=B8=8B?= =?UTF-8?q?=E7=89=88=E6=9C=AC=EF=BC=9B2.=E8=8E=B7=E5=8F=96=E8=BD=A6?= =?UTF-8?q?=E6=9C=BA=E5=9F=BA=E7=A1=80=E4=BF=A1=E6=81=AF=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=A4=9A=E6=AC=A1=E8=8E=B7=E5=8F=96=E9=80=BB?= =?UTF-8?q?=E8=BE=91=EF=BC=8C=E7=9B=AE=E5=89=8D=E4=BC=9A=E5=B0=9D=E8=AF=95?= =?UTF-8?q?3=E6=AC=A1=E8=8E=B7=E5=8F=96=EF=BC=9B3.=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E9=94=99=E5=88=AB=E5=AD=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../autopilot/adapter/MoGoAdasListenerImpl.kt | 4 +- .../hmi/ui/setting/DebugSettingView.kt | 4 +- .../main/res/layout/view_debug_setting.xml | 2 +- .../IMoGoChassisGearStateListener.kt | 4 +- .../CallerChassisBrakeStateListenerManager.kt | 2 +- .../CallerChassisGearStateListenerManager.kt | 4 +- .../zhidao/support/adas/high/AdasChannel.java | 40 ++- .../zhidao/support/adas/high/AdasOptions.java | 2 +- .../ability/AutopilotAbility230.java | 118 ++++++++ .../ability/AutopilotAbility250.java} | 143 ++------- .../ability/AutopilotAbilityManager.java | 274 ++++++++++++++++++ .../adas/high/msg/CarConfigRespMessage.java | 2 + .../adas/high/msg/ChassisStatesMessage.java | 2 +- .../adas/high/msg/StatusQueryRespMessage.java | 2 +- .../adas/high/msg/VehicleStateMessage.java | 4 +- 15 files changed, 479 insertions(+), 128 deletions(-) create mode 100644 libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/autopilot/ability/AutopilotAbility230.java rename libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/{AutopilotAbilityManager.java => autopilot/ability/AutopilotAbility250.java} (61%) create mode 100644 libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/autopilot/ability/AutopilotAbilityManager.java diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/adapter/MoGoAdasListenerImpl.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/adapter/MoGoAdasListenerImpl.kt index e2703257ff..6374bb350c 100644 --- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/adapter/MoGoAdasListenerImpl.kt +++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/adapter/MoGoAdasListenerImpl.kt @@ -173,7 +173,7 @@ class MoGoAdasListenerImpl : OnAdasListener { CallerChassisLamplightListenerManager.invokeAutopilotBrakeLightData(vehicleState.brakeLightStatus) //方向盘转向角数据 CallerChassisSteeringStateListenerManager.invokeAutopilotSteeringData(vehicleState.steering) - //挂挡档位数据 + //挂档档位数据 CallerChassisGearStateListenerManager.invokeAutopilotGearData(vehicleState.gear) //加速度 CallerChassisAccStateListenerManager.invokeAutopilotAcc(vehicleState.accel) @@ -237,7 +237,7 @@ class MoGoAdasListenerImpl : OnAdasListener { } chassisStates.gearSystemStates?.let { gearSystemStates -> gearSystemStates.gearPosition?.let { - //挂挡档位数据 + //挂档档位数据 CallerChassisGearStateListenerManager.invokeAutopilotGearData(it) } } 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 0c0f7961b4..3c7341be2d 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 @@ -1921,12 +1921,12 @@ internal class DebugSettingView @JvmOverloads constructor( } /** - * 车辆挂挡档位 + * 车辆挂档档位 * @param gear 档位 */ override fun onAutopilotGearData(gear: Chassis.GearPosition) { ThreadUtils.runOnUiThread { - tvGearInfo.text = "挂挡档位:${gear}" + tvGearInfo.text = "挂档档位:${gear}" } } 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 5bfa8302c6..e8ac4d98e0 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 @@ -1008,7 +1008,7 @@ style="@style/DebugSettingText" android:layout_width="match_parent" android:layout_height="wrap_content" - android:text="挂挡档位:" /> + android:text="挂档档位:" /> () { diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerChassisGearStateListenerManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerChassisGearStateListenerManager.kt index 907e4b0553..30d52e1a72 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerChassisGearStateListenerManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerChassisGearStateListenerManager.kt @@ -5,12 +5,12 @@ import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisGearStateListener import com.mogo.eagle.core.function.call.base.CallerBase /** - * 车辆挂挡档位 回调监听 + * 车辆挂档档位 回调监听 */ object CallerChassisGearStateListenerManager : CallerBase() { /** - * 车辆挂挡档位 + * 车辆挂档档位 * @param gear 档位 */ fun invokeAutopilotGearData(gear: Chassis.GearPosition) { diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasChannel.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasChannel.java index 2ebc54828d..298d893a2c 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasChannel.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasChannel.java @@ -23,7 +23,6 @@ import androidx.annotation.Nullable; import com.google.protobuf.InvalidProtocolBufferException; import com.zhidao.support.adas.high.bean.AutopilotStatistics; import com.zhidao.support.adas.high.bean.VersionCompatibility; -import com.zhidao.support.adas.high.common.AutopilotAbilityManager; import com.zhidao.support.adas.high.common.AutopilotReview; import com.zhidao.support.adas.high.common.ByteUtil; import com.zhidao.support.adas.high.common.Constants; @@ -34,6 +33,7 @@ import com.zhidao.support.adas.high.common.MessageType; import com.zhidao.support.adas.high.common.ProtocolStatus; import com.zhidao.support.adas.high.common.ReceiveTimeoutManager; import com.zhidao.support.adas.high.common.RegexUtils; +import com.zhidao.support.adas.high.common.autopilot.ability.AutopilotAbilityManager; import com.zhidao.support.adas.high.msg.IMsg; import com.zhidao.support.adas.high.msg.MyMessageFactory; import com.zhidao.support.adas.high.protocol.RawData; @@ -129,6 +129,7 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec * 乘客屏无法进行注册或取消注册,因为乘客屏无法感知司机屏与工控机连接状态。无法重置已注册或未注册接口列表 */ private SubscribeInterface subscribeInterface; + private Timer carConfigReqTimer;//车辆基础信息请求 多次请求防止无法收到基础信息情况出现 public void setOnMultiDeviceListener(OnMultiDeviceListener onMultiDeviceListener) { this.onMultiDeviceListener = onMultiDeviceListener; @@ -535,7 +536,7 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec @Override public void onWebSocketConnectSuccess(String ipAddress, int port) { - sendCarConfigReq(); + startCarConfigReq(); ipcConnectedIp = ipAddress; ipcConnectedPort = port; subscribeInterface = new SubscribeInterface(this); @@ -662,6 +663,7 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec if (status == Constants.IPC_CONNECTION_STATUS.DISCONNECTED) { AdasManager.getInstance().setCarConfig(null); stopDispatchHandler(); + stopCarConfigReq(); } if (adasConnectStatusListener != null) { adasConnectStatusListener.onConnectionIPCStatus(ipcConnectionStatus.get(), reason); @@ -775,6 +777,40 @@ public class AdasChannel implements IAdasNetCommApi, FpgaSocket.IWebSocketConnec CupidLogUtils.setEnableLog(isEnableLog); } + //车辆基础信息请求 + private void startCarConfigReq() { + if (carConfigReqTimer == null) { + carConfigReqTimer = new Timer(); + carConfigReqTimer.schedule(new TimerTask() { + int num = 0; + + @Override + public void run() { + if (getIpcConnectionStatus() == Constants.IPC_CONNECTION_STATUS.CONNECTED) { + if (AdasManager.getInstance().getCarConfig() == null) { + num++; + if (num > 3) { + CupidLogUtils.i(TAG, "最后一次也未获取到车机基础信息"); + stopCarConfigReq(); + } else { + CupidLogUtils.i(TAG, "第" + num + "次获取车机基础信息"); + sendCarConfigReq(); + } + } else { + stopCarConfigReq(); + } + } + } + }, 10, 2000L); + } + } + + private synchronized void stopCarConfigReq() { + if (carConfigReqTimer != null) { + carConfigReqTimer.cancel(); + carConfigReqTimer = null; + } + } /**************************************************************************************************************************/ /** diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasOptions.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasOptions.java index 9caee97d94..3c38a18599 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasOptions.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasOptions.java @@ -1,6 +1,6 @@ package com.zhidao.support.adas.high; -import com.zhidao.support.adas.high.common.AutopilotAbilityManager; +import com.zhidao.support.adas.high.common.autopilot.ability.AutopilotAbilityManager; import com.zhidao.support.adas.high.subscribe.SubscribeInterfaceOptions; import java.util.HashSet; diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/autopilot/ability/AutopilotAbility230.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/autopilot/ability/AutopilotAbility230.java new file mode 100644 index 0000000000..9c6ce3ea4c --- /dev/null +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/autopilot/ability/AutopilotAbility230.java @@ -0,0 +1,118 @@ +package com.zhidao.support.adas.high.common.autopilot.ability; + +import com.zhidao.support.adas.high.OnAdasListener; + +import java.util.Timer; +import java.util.TimerTask; +import java.util.regex.Pattern; + +import chassis.Chassis; +import chassis.ChassisStatesOuterClass; + +/** + * 是否可以启动自动驾驶能力检测 工控机版本>=230&& <250 使用此类 + * 目前监控了底盘的一些状态和查询节点状态应答的数据 + * 没有使用监控事件报告的原因是因为,部分异常没进行正常恢复通知,例如收到了异常监控数据,但是异常恢复之后没有恢复的通知 + *

+ * 此定时器不能停止 鹰眼中存在UI更新依赖循环查询系统状态 + */ +public class AutopilotAbility230 { + private static final String TAG = AutopilotAbility230.class.getSimpleName(); + private static final long DEFAULT_DETECTION_TIME = 3 * 1000L;//默认检测时间 + private volatile Timer timer; + private ChassisStatesOuterClass.ChassisStates chassisStates; + + public AutopilotAbility230() { + } + + + public void setChassisStates(ChassisStatesOuterClass.ChassisStates chassisStates) { + this.chassisStates = chassisStates; + } + + private void onCallback() { + //金旅、开沃小巴乘客端 不能启动自动驾驶 + if (AutopilotAbilityManager.getInstance().isBusPassenger()) { + return; + } + boolean isAutopilotAbility = true;//是否能启动自动驾驶 + String unableAutopilotReason = null;//不能启动自动驾驶原因 + //检测底盘相关 + if (chassisStates != null) { + if (chassisStates.hasBrakeSystemStates()) { + float brake = chassisStates.getBrakeSystemStates().getBrakePedalResponsePosition(); + if (brake > 0) { + isAutopilotAbility = false; + unableAutopilotReason = "制动踏板被踩下"; + } + } + if (isAutopilotAbility) { + /** + * 档位状态判断 目前判断的车型包括 东风Taxi 红旗Taxi 金旅Bus 金旅M1 金旅M1 福田清扫车 开沃 + * TODO 如果 identityMode 未赋值以及目前已知其他车型判断逻辑跟东风Taxi和红旗 走 + */ + //开沃任何档位都能启动自驾 + if (!AutopilotAbilityManager.getInstance().isBusDriverVan()) { + if (chassisStates.hasGearSystemStates()) { + Chassis.GearPosition gear = chassisStates.getGearSystemStates().getGearPosition(); + //金旅Bus和清扫车 档位不正常 + if (AutopilotAbilityManager.getInstance().isBusDriver()) { + if (gear == Chassis.GearPosition.GEAR_N || gear == Chassis.GearPosition.GEAR_R) { + isAutopilotAbility = false; + unableAutopilotReason = "档位不正常"; + } + } else if (AutopilotAbilityManager.getInstance().isSweeperDriverFutian()) { + if (gear == Chassis.GearPosition.GEAR_N) { + isAutopilotAbility = false; + unableAutopilotReason = "档位不正常"; + } + } else { + //东风Taxi和红旗 司机端和乘客端 档位不正常 + if (gear == Chassis.GearPosition.GEAR_P || gear == Chassis.GearPosition.GEAR_R) { + isAutopilotAbility = false; + unableAutopilotReason = "档位不正常"; + } + } + } + } + } + + //TODO 关于手刹:不同车型的实现不同所以目前没法使用此字段 +// if (isAutopilotAbility) { +// //电子驻车制动系统 +// if (chassisStates.hasEpbSystemStates()) { +// ChassisStatesOuterClass.EPBSystemStates epb = chassisStates.getEpbSystemStates(); +// if (epb.hasEpbEnableState()){ +// epb.getEpbWorkState(); +// } +// } +// } + } + if (AutopilotAbilityManager.getInstance().getListener() != null) { + AutopilotAbilityManager.getInstance().getListener().onAutopilotAbility(isAutopilotAbility, unableAutopilotReason); + } + } + + public synchronized void start() { + if (timer == null) { + timer = new Timer(); + timer.schedule(new TimerTask() { + @Override + public void run() { + onCallback(); + } + }, 2000L, DEFAULT_DETECTION_TIME);//延迟执行,避免刚连接成功后底盘信息无法及时同步 + } + } + + public synchronized void stop() { + if (timer != null) { + timer.cancel(); + timer = null; + } + this.chassisStates = null; + } + + + +} diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/AutopilotAbilityManager.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/autopilot/ability/AutopilotAbility250.java similarity index 61% rename from libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/AutopilotAbilityManager.java rename to libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/autopilot/ability/AutopilotAbility250.java index 03ec76b745..01bf359101 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/AutopilotAbilityManager.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/autopilot/ability/AutopilotAbility250.java @@ -1,106 +1,41 @@ -package com.zhidao.support.adas.high.common; +package com.zhidao.support.adas.high.common.autopilot.ability; -import android.os.Handler; import android.os.Message; -import android.text.TextUtils; import com.zhidao.support.adas.high.AdasManager; -import com.zhidao.support.adas.high.OnAdasListener; import java.util.List; import java.util.Timer; import java.util.TimerTask; -import java.util.regex.Matcher; -import java.util.regex.Pattern; import chassis.Chassis; import chassis.ChassisStatesOuterClass; import system_master.SystemStatusInfo; /** - * 是否可以启动自动驾驶能力检测 + * 是否可以启动自动驾驶能力检测 工控机版本>=250使用此类 * 目前监控了底盘的一些状态和查询节点状态应答的数据 * 没有使用监控事件报告的原因是因为,部分异常没进行正常恢复通知,例如收到了异常监控数据,但是异常恢复之后没有恢复的通知 *

* 此定时器不能停止 鹰眼中存在UI更新依赖循环查询系统状态 */ -public class AutopilotAbilityManager { - private static final String TAG = AutopilotAbilityManager.class.getSimpleName(); +public class AutopilotAbility250 { + private static final String TAG = AutopilotAbility250.class.getSimpleName(); private static final int WHAT_TIMEOUT = 0; private static final int DEFAULT_TIMEOUT = 1500; private static final long DEFAULT_DETECTION_TIME = 3 * 1000L;//默认检测时间 private static final String[] NODE_INFO_STATE = {"未知状态 ", "依赖未就绪 ", "启动中 ", "运行 ", "停止 ", "无法启动状态 ", "人为启动状态 ", "人为关闭状态 "}; - private static volatile AutopilotAbilityManager INSTANCE; - private OnAdasListener listener; private volatile Timer timer; - private final Pattern pattern = Pattern.compile("\\d+.\\d+.\\d+"); private ChassisStatesOuterClass.ChassisStates chassisStates; - private Handler handler; - private OnAutopilotAbilityListener onAutopilotAbilityListener; - /** - * 身份/车型 - */ - private String identityMode; - public interface OnAutopilotAbilityListener { - void onStatusQuery();//查询是被调用 + public AutopilotAbility250() { } - /** - * 身份规则定义根据app/productFlavors/README.md - * * taxi司机屏 Taxi_Driver_Base (东风、红旗司机端) - * * taxi乘客屏 Taxi_Passenger_Base (东风、红旗乘客端) - * * bus司机屏 Bus_Driver_Base (金旅小巴司机端) - * * Bus_Driver_Van (开沃小巴司机端) - * * bus乘客屏 Bus_Passenger_Base (金旅、开沃小巴乘客端) - * * Bus_Passenger_M1 (M1小巴乘客端) - * * Bus_Passenger_M2 (M2小巴乘客端) - * * 清扫车 Sweeper_Driver_FT (福田清扫车司机端) - *

- * 此定义不区分角色,只区分业务线和车型 - */ - private interface IDENTITY_MODE { - String TAXI_DRIVER_BASE = "Taxi_Driver_Base";//(东风、红旗司机端) - String TAXI_PASSENGER_BASE = "Taxi_Passenger_Base";//(东风、红旗乘客端) - String BUS_DRIVER_BASE = "Bus_Driver_Base";//(金旅小巴司机端) - String BUS_DRIVER_VAN = "Bus_Driver_Van";//(开沃小巴司机端) - String BUS_PASSENGER_BASE = "Bus_Passenger_Base";//(金旅、开沃小巴乘客端) - String BUS_PASSENGER_M1 = "Bus_Passenger_M1";//(M1小巴乘客端) - String BUS_PASSENGER_M2 = "Bus_Passenger_M2";//(M2小巴乘客端) - String SWEEPER_DRIVER_FT = "Sweeper_Driver_FT";//(福田清扫车司机端) - } - - - public void setIdentityMode(String identityMode) { - this.identityMode = identityMode; - } - - public void setOnAdasListener(OnAdasListener listener) { - this.listener = listener; - } - - public void setOnAutopilotAbilityListener(OnAutopilotAbilityListener onAutopilotAbilityListener) { - this.onAutopilotAbilityListener = onAutopilotAbilityListener; - } - - private AutopilotAbilityManager() { - } - - public static AutopilotAbilityManager getInstance() { - if (INSTANCE == null) { - synchronized (AutopilotAbilityManager.class) { - if (INSTANCE == null) { - INSTANCE = new AutopilotAbilityManager(); - } - } - } - return INSTANCE; - } public void setStatusInfo(SystemStatusInfo.StatusInfo statusInfo) { - if (handler != null) { - if (handler.hasMessages(WHAT_TIMEOUT)) - handler.removeMessages(WHAT_TIMEOUT); + if (AutopilotAbilityManager.getInstance().getHandler() != null) { + if (AutopilotAbilityManager.getInstance().getHandler().hasMessages(WHAT_TIMEOUT)) + AutopilotAbilityManager.getInstance().getHandler().removeMessages(WHAT_TIMEOUT); } onCallback(statusInfo); } @@ -111,7 +46,7 @@ public class AutopilotAbilityManager { private void onCallback(SystemStatusInfo.StatusInfo statusInfo) { //金旅、开沃小巴乘客端 不能启动自动驾驶 - if (IDENTITY_MODE.BUS_PASSENGER_BASE.equalsIgnoreCase(identityMode)) { + if (AutopilotAbilityManager.getInstance().isBusPassenger()) { return; } boolean isAutopilotAbility = true;//是否能启动自动驾驶 @@ -122,20 +57,7 @@ public class AutopilotAbilityManager { if (statusInfo.hasMasterVersion()) { //截取Master Version String masterVersion = statusInfo.getMasterVersion(); - if (!TextUtils.isEmpty(masterVersion)) { - try { - Matcher matcher = pattern.matcher(masterVersion); - if (matcher.find()) { - String group = matcher.group(); - if (!TextUtils.isEmpty(group)) { - String v = group.split("\\.")[0]; - version = Integer.parseInt(v); - } - } - } catch (Exception e) { - e.printStackTrace(); - } - } + version = AutopilotAbilityManager.getInstance().parseVersion(false, masterVersion); } //如果 maser version 大于1,还需要判断AutoPilotReady字段是否存在,以确保MAP版本和SSM Maser版本不陪配情况逻辑能正常执行 if (version > 1 && statusInfo.hasAutoPilotReady()) { @@ -204,24 +126,26 @@ public class AutopilotAbilityManager { * 档位状态判断 目前判断的车型包括 东风Taxi 红旗Taxi 金旅Bus 金旅M1 金旅M1 福田清扫车 开沃 * TODO 如果 identityMode 未赋值以及目前已知其他车型判断逻辑跟东风Taxi和红旗 走 */ - if (chassisStates.hasGearSystemStates()) { - Chassis.GearPosition gear = chassisStates.getGearSystemStates().getGearPosition(); - if (TextUtils.isEmpty(identityMode)) { - identityMode = ""; - } - //开沃任何档位都能启动自驾 - if (!IDENTITY_MODE.BUS_DRIVER_VAN.equalsIgnoreCase(identityMode)) { + //开沃任何档位都能启动自驾 + if (!AutopilotAbilityManager.getInstance().isBusDriverVan()) { + if (chassisStates.hasGearSystemStates()) { + Chassis.GearPosition gear = chassisStates.getGearSystemStates().getGearPosition(); //金旅Bus和清扫车 档位不正常 - if (IDENTITY_MODE.BUS_DRIVER_BASE.equalsIgnoreCase(identityMode) || IDENTITY_MODE.SWEEPER_DRIVER_FT.equalsIgnoreCase(identityMode)) { + if (AutopilotAbilityManager.getInstance().isBusDriver()) { if (gear == Chassis.GearPosition.GEAR_N || gear == Chassis.GearPosition.GEAR_R) { isAutopilotAbility = false; - unableAutopilotReason = "挡位不正常"; + unableAutopilotReason = "档位不正常"; + } + } else if (AutopilotAbilityManager.getInstance().isSweeperDriverFutian()) { + if (gear == Chassis.GearPosition.GEAR_N) { + isAutopilotAbility = false; + unableAutopilotReason = "档位不正常"; } } else { //东风Taxi和红旗 司机端和乘客端 档位不正常 if (gear == Chassis.GearPosition.GEAR_P || gear == Chassis.GearPosition.GEAR_R) { isAutopilotAbility = false; - unableAutopilotReason = "挡位不正常"; + unableAutopilotReason = "档位不正常"; } } } @@ -239,8 +163,8 @@ public class AutopilotAbilityManager { // } // } } - if (listener != null) { - listener.onAutopilotAbility(isAutopilotAbility, unableAutopilotReason); + if (AutopilotAbilityManager.getInstance().getListener() != null) { + AutopilotAbilityManager.getInstance().getListener().onAutopilotAbility(isAutopilotAbility, unableAutopilotReason); } } @@ -250,14 +174,14 @@ public class AutopilotAbilityManager { timer.schedule(new TimerTask() { @Override public void run() { - if (onAutopilotAbilityListener != null) { - onAutopilotAbilityListener.onStatusQuery(); + if (AutopilotAbilityManager.getInstance().getOnAutopilotAbilityListener() != null) { + AutopilotAbilityManager.getInstance().getOnAutopilotAbilityListener().onStatusQuery(); } AdasManager.getInstance().sendStatusQueryReq(); - if (handler != null) { - if (handler.hasMessages(WHAT_TIMEOUT)) - handler.removeMessages(WHAT_TIMEOUT); - handler.sendEmptyMessageDelayed(WHAT_TIMEOUT, DEFAULT_TIMEOUT); + if (AutopilotAbilityManager.getInstance().getHandler() != null) { + if (AutopilotAbilityManager.getInstance().getHandler().hasMessages(WHAT_TIMEOUT)) + AutopilotAbilityManager.getInstance().getHandler().removeMessages(WHAT_TIMEOUT); + AutopilotAbilityManager.getInstance().getHandler().sendEmptyMessageDelayed(WHAT_TIMEOUT, DEFAULT_TIMEOUT); } } }, 2000L, DEFAULT_DETECTION_TIME);//延迟执行,避免刚连接成功后底盘信息无法及时同步 @@ -269,18 +193,15 @@ public class AutopilotAbilityManager { timer.cancel(); timer = null; } - handler = null; this.chassisStates = null; } - public void setHandler(Handler handler) { - this.handler = handler; - } - public void onHandleMessage(Message msg) { if (msg.what == WHAT_TIMEOUT) { onCallback(null); } } + + } diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/autopilot/ability/AutopilotAbilityManager.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/autopilot/ability/AutopilotAbilityManager.java new file mode 100644 index 0000000000..1e80fe6805 --- /dev/null +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/autopilot/ability/AutopilotAbilityManager.java @@ -0,0 +1,274 @@ +package com.zhidao.support.adas.high.common.autopilot.ability; + +import android.os.Handler; +import android.os.Message; +import android.text.TextUtils; +import android.util.Log; + +import com.zhidao.support.adas.high.AdasManager; +import com.zhidao.support.adas.high.OnAdasListener; +import com.zhidao.support.adas.high.common.Constants; +import com.zhidao.support.adas.high.common.CupidLogUtils; + +import java.util.Timer; +import java.util.TimerTask; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import chassis.ChassisStatesOuterClass; +import mogo.telematics.pad.MessagePad; +import system_master.SystemStatusInfo; + +/** + * 是否可以启动自动驾驶能力检测 + * 目前监控了底盘的一些状态和查询节点状态应答的数据 + * 没有使用监控事件报告的原因是因为,部分异常没进行正常恢复通知,例如收到了异常监控数据,但是异常恢复之后没有恢复的通知 + *

+ * 此定时器不能停止 鹰眼中存在UI更新依赖循环查询系统状态 + */ +public class AutopilotAbilityManager { + private static final String TAG = AutopilotAbilityManager.class.getSimpleName(); + private static volatile AutopilotAbilityManager INSTANCE; + private OnAdasListener listener; + private final Pattern pattern = Pattern.compile("\\d+\\.\\d+\\.\\d+"); + private Handler handler; + private OnAutopilotAbilityListener onAutopilotAbilityListener; + private int dockerVersion = -1;//工控机版本 + private AutopilotAbility230 autopilotAbility230; + private AutopilotAbility250 autopilotAbility250; + private Timer startTimer; + /** + * 身份/车型 + */ + private String identityMode; + + public interface OnAutopilotAbilityListener { + void onStatusQuery();//查询是被调用 + } + + /** + * 身份规则定义根据app/productFlavors/README.md + * * taxi司机屏 Taxi_Driver_Base (东风、红旗司机端) + * * taxi乘客屏 Taxi_Passenger_Base (东风、红旗乘客端) + * * bus司机屏 Bus_Driver_Base (金旅小巴司机端) + * * Bus_Driver_Van (开沃小巴司机端) + * * bus乘客屏 Bus_Passenger_Base (金旅、开沃小巴乘客端) + * * Bus_Passenger_M1 (M1小巴乘客端) + * * Bus_Passenger_M2 (M2小巴乘客端) + * * 清扫车 Sweeper_Driver_FT (福田清扫车司机端) + *

+ * 此定义不区分角色,只区分业务线和车型 + */ + private interface IDENTITY_MODE { + String TAXI_DRIVER_BASE = "Taxi_Driver_Base";//(东风、红旗司机端) + String TAXI_PASSENGER_BASE = "Taxi_Passenger_Base";//(东风、红旗乘客端) + String BUS_DRIVER_BASE = "Bus_Driver_Base";//(金旅小巴司机端) + String BUS_DRIVER_VAN = "Bus_Driver_Van";//(开沃小巴司机端) + String BUS_PASSENGER_BASE = "Bus_Passenger_Base";//(金旅、开沃小巴乘客端) + String BUS_PASSENGER_M1 = "Bus_Passenger_M1";//(M1小巴乘客端) + String BUS_PASSENGER_M2 = "Bus_Passenger_M2";//(M2小巴乘客端) + String SWEEPER_DRIVER_FT = "Sweeper_Driver_FT";//(福田清扫车司机端) + } + + private AutopilotAbilityManager() { + } + + public static AutopilotAbilityManager getInstance() { + if (INSTANCE == null) { + synchronized (AutopilotAbilityManager.class) { + if (INSTANCE == null) { + INSTANCE = new AutopilotAbilityManager(); + } + } + } + return INSTANCE; + } + + public void setIdentityMode(String identityMode) { + this.identityMode = identityMode; + } + + public void setCarConfig(MessagePad.CarConfigResp carConfig) { + if (dockerVersion == -1) { + String v = carConfig.getDockVersion(); + int version = parseVersion(true, v); + if (version != -1) { + stopTimer(); + dockerVersion = version; + Log.i("dddd", "工控机版本=" + dockerVersion); + initAutopilotAbility(); + } + } + } + + public void setOnAdasListener(OnAdasListener listener) { + this.listener = listener; + } + + public OnAdasListener getListener() { + return listener; + } + + public void setHandler(Handler handler) { + this.handler = handler; + } + + public Handler getHandler() { + return handler; + } + + public void setOnAutopilotAbilityListener(OnAutopilotAbilityListener onAutopilotAbilityListener) { + this.onAutopilotAbilityListener = onAutopilotAbilityListener; + } + + public OnAutopilotAbilityListener getOnAutopilotAbilityListener() { + return onAutopilotAbilityListener; + } + + + public void setStatusInfo(SystemStatusInfo.StatusInfo statusInfo) { + if (autopilotAbility250 != null) { + autopilotAbility250.setStatusInfo(statusInfo); + } + } + + public void setChassisStates(ChassisStatesOuterClass.ChassisStates chassisStates) { + if (autopilotAbility230 != null) { + autopilotAbility230.setChassisStates(chassisStates); + } + if (autopilotAbility250 != null) { + autopilotAbility250.setChassisStates(chassisStates); + } + } + + public void onHandleMessage(Message msg) { + if (autopilotAbility250 != null) { + autopilotAbility250.onHandleMessage(msg); + } + } + + private void initAutopilotAbility() { + if (dockerVersion >= 250) { + stop230(); + if (autopilotAbility250 == null) { + autopilotAbility250 = new AutopilotAbility250(); + autopilotAbility250.start(); + } + } else { + stop250(); + if (autopilotAbility230 == null) { + autopilotAbility230 = new AutopilotAbility230(); + autopilotAbility230.start(); + } + + } + } + + private void stop230() { + if (autopilotAbility230 != null) { + autopilotAbility230.stop(); + autopilotAbility230 = null; + } + } + + private void stop250() { + if (autopilotAbility250 != null) { + autopilotAbility250.stop(); + autopilotAbility250 = null; + } + } + + private void stopTimer() { + if (startTimer != null) { + startTimer.cancel(); + startTimer = null; + } + } + + /** + * 连接工控机成功调用此函数,如果dockerVersion还未获取到将启动最低版本的启动自动驾驶能力检测 + * 此函数为保险措施 以防无法获取工控机版本时 也能 正常执行逻辑 + */ + public synchronized void start() { + if (startTimer == null) { + startTimer = new Timer(); + startTimer.schedule(new TimerTask() { + @Override + public void run() { + if (dockerVersion == -1 && AdasManager.getInstance().getIpcConnectionStatus() == Constants.IPC_CONNECTION_STATUS.CONNECTED) { + dockerVersion = 230; + initAutopilotAbility(); + } + } + }, 8000L);//延迟执行,避免刚连接成功后底盘信息无法及时同步 + } + + } + + public synchronized void stop() { + stopTimer(); + stop230(); + stop250(); + handler = null; + dockerVersion = -1; + } + + + /** + * 解析版本 格式 xxx.xxx.xxx(x的数量不固定) + * + * @param isUserAll 是否使用全部截取数据 true:表示 12.34.56 截取之后 123456 false:表示12.34.56 截取之后 12 + * @param ver 版本字符串 + * @return -1表示解析失败 + */ + public int parseVersion(boolean isUserAll, String ver) { + int version = -1; + if (!TextUtils.isEmpty(ver)) { + try { + Matcher matcher = pattern.matcher(ver); + if (matcher.find()) { + String group = matcher.group(); + if (!TextUtils.isEmpty(group)) { + if (isUserAll) { + group = group.replace(".", ""); + } else { + group = group.split("\\.")[0]; + } + version = Integer.parseInt(group); + } + } + } catch (Exception e) { + CupidLogUtils.e(TAG, "版本解析失败=" + ver, e); + } + } + return version; + } + + /** + * 金旅、开沃小巴乘客端 + */ + public boolean isBusPassenger() { + return IDENTITY_MODE.BUS_PASSENGER_BASE.equalsIgnoreCase(identityMode); + } + + /** + * 开沃小巴司机端 + */ + public boolean isBusDriverVan() { + return IDENTITY_MODE.BUS_DRIVER_VAN.equalsIgnoreCase(identityMode); + } + + /** + * 金旅小巴司机端 + */ + public boolean isBusDriver() { + return IDENTITY_MODE.BUS_DRIVER_BASE.equalsIgnoreCase(identityMode); + } + + /** + * 福田清扫车司机端 + */ + public boolean isSweeperDriverFutian() { + return IDENTITY_MODE.SWEEPER_DRIVER_FT.equalsIgnoreCase(identityMode); + } +} diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/CarConfigRespMessage.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/CarConfigRespMessage.java index 61c6d1b9f4..7a63aed0b6 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/CarConfigRespMessage.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/CarConfigRespMessage.java @@ -7,6 +7,7 @@ import com.zhidao.support.adas.high.AdasChannel; import com.zhidao.support.adas.high.AdasManager; import com.zhidao.support.adas.high.OnAdasListener; import com.zhidao.support.adas.high.common.CupidLogUtils; +import com.zhidao.support.adas.high.common.autopilot.ability.AutopilotAbilityManager; import com.zhidao.support.adas.high.protocol.RawData; import mogo.telematics.pad.MessagePad; @@ -20,6 +21,7 @@ public class CarConfigRespMessage extends MyAbstractMessageHandler { public void handlerMsg(RawData raw, OnAdasListener adasListener) throws InvalidProtocolBufferException { MessagePad.CarConfigResp carConfigResp = MessagePad.CarConfigResp.parser().parseFrom(raw.originalData.toByteArray(), raw.getOffsetValue(), raw.getPackageLengthValue() - raw.getOffsetValue()); AdasChannel.calculateTimeConsumingOnDispatchRaw("车机基础信息应答", raw.receiveTime); + AutopilotAbilityManager.getInstance().setCarConfig(carConfigResp); AdasManager.getInstance().setCarConfig(carConfigResp); long nowTime = 0; if (CupidLogUtils.isEnableLog()) diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/ChassisStatesMessage.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/ChassisStatesMessage.java index 081a1a9a58..edb7d6f1a0 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/ChassisStatesMessage.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/ChassisStatesMessage.java @@ -2,7 +2,7 @@ package com.zhidao.support.adas.high.msg; import com.google.protobuf.InvalidProtocolBufferException; import com.zhidao.support.adas.high.OnAdasListener; -import com.zhidao.support.adas.high.common.AutopilotAbilityManager; +import com.zhidao.support.adas.high.common.autopilot.ability.AutopilotAbilityManager; import com.zhidao.support.adas.high.protocol.RawData; import chassis.ChassisStatesOuterClass; diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/StatusQueryRespMessage.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/StatusQueryRespMessage.java index be81f42258..2d37f3ced7 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/StatusQueryRespMessage.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/StatusQueryRespMessage.java @@ -5,7 +5,7 @@ import android.os.SystemClock; import com.google.protobuf.InvalidProtocolBufferException; import com.zhidao.support.adas.high.AdasChannel; import com.zhidao.support.adas.high.OnAdasListener; -import com.zhidao.support.adas.high.common.AutopilotAbilityManager; +import com.zhidao.support.adas.high.common.autopilot.ability.AutopilotAbilityManager; import com.zhidao.support.adas.high.common.CupidLogUtils; import com.zhidao.support.adas.high.protocol.RawData; diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/VehicleStateMessage.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/VehicleStateMessage.java index 0b3575b12a..567249f372 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/VehicleStateMessage.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/msg/VehicleStateMessage.java @@ -5,7 +5,7 @@ import android.os.SystemClock; import com.google.protobuf.InvalidProtocolBufferException; import com.zhidao.support.adas.high.AdasChannel; import com.zhidao.support.adas.high.OnAdasListener; -import com.zhidao.support.adas.high.common.AutopilotAbilityManager; +import com.zhidao.support.adas.high.common.autopilot.ability.AutopilotAbilityManager; import com.zhidao.support.adas.high.common.CupidLogUtils; import com.zhidao.support.adas.high.protocol.RawData; @@ -141,7 +141,7 @@ public class VehicleStateMessage extends MyAbstractMessageHandler { ChassisStatesOuterClass.GearSystemStates.Builder gearSystemStates = null; if (vehicleState.hasGear()) { gearSystemStates = ChassisStatesOuterClass.GearSystemStates.newBuilder(); - //挂挡档位数据 + //档位数据 gearSystemStates.setGearPosition(vehicleState.getGear());//鹰眼已用 } if (vehicleState.hasGearSwitchInference()) { From 961e1eb102ad965a4f5c4656f2ea9e5f1d692983 Mon Sep 17 00:00:00 2001 From: xinfengkun Date: Tue, 21 Feb 2023 16:58:06 +0800 Subject: [PATCH 30/49] =?UTF-8?q?[opt3.0][adas=20lib]=20=E8=87=AA=E5=8A=A8?= =?UTF-8?q?=E9=A9=BE=E9=A9=B6=E5=90=AF=E5=8A=A8=E7=BB=9F=E8=AE=A1=E5=AF=B9?= =?UTF-8?q?=E8=B1=A1=E4=B8=8B=E6=B2=89=E5=88=B0adas-data=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module/manager/OCHAdasAbilityManager.java | 2 +- .../zhidao/adas/client/ui/MainActivity.java | 2 +- .../zhidao/adas/magic/ui/MainActivity.java | 2 +- .../autopilot/adapter/MoGoAdasListenerImpl.kt | 2 +- .../IMoGoAutopilotStatisticsListener.kt | 2 +- ...allerAutopilotStatisticsListenerManager.kt | 2 +- .../adas/data}/bean/AutopilotStatistics.java | 27 ++++++++++++++----- .../zhidao/support/adas/high/AdasChannel.java | 2 +- .../support/adas/high/OnAdasListener.java | 2 +- .../adas/high/common/AutopilotReview.java | 9 ++++--- .../support/adas/high/common/Constants.java | 17 ------------ .../support/adas/high/common/Define.java | 7 ++--- 12 files changed, 38 insertions(+), 38 deletions(-) rename libraries/{mogo-adas/src/main/java/com/zhidao/support/adas/high => mogo-adas-data/src/main/java/com/zhjt/mogo/adas/data}/bean/AutopilotStatistics.java (55%) diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/OCHAdasAbilityManager.java b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/OCHAdasAbilityManager.java index 83332d1bb8..e97c0b6b34 100644 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/OCHAdasAbilityManager.java +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/manager/OCHAdasAbilityManager.java @@ -10,7 +10,7 @@ import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotActionsListene import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotStatisticsListenerManager; import com.mogo.eagle.core.utilcode.mogo.logger.Logger; import com.mogo.och.common.module.callback.OchAdasStartFailureCallback; -import com.zhidao.support.adas.high.bean.AutopilotStatistics; +import com.zhjt.mogo.adas.data.bean.AutopilotStatistics; /** * Created on 2022/10/9 diff --git a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/MainActivity.java b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/MainActivity.java index 50ddaa22bc..08ae38336b 100644 --- a/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/MainActivity.java +++ b/app_ipc_monitoring/src/main/java/com/zhidao/adas/client/ui/MainActivity.java @@ -100,7 +100,7 @@ import com.zhidao.support.adas.high.AdasOptions; import com.zhidao.support.adas.high.OnAdasConnectStatusListener; import com.zhidao.support.adas.high.OnAdasListener; import com.zhidao.support.adas.high.OnMultiDeviceListener; -import com.zhidao.support.adas.high.bean.AutopilotStatistics; +import com.zhjt.mogo.adas.data.bean.AutopilotStatistics; import com.zhidao.support.adas.high.bean.VersionCompatibility; import com.zhidao.support.adas.high.common.ByteUtil; import com.zhidao.support.adas.high.common.Constants.IPC_CONNECTION_STATUS; diff --git a/app_mogo_magic_ring/src/main/java/com/zhidao/adas/magic/ui/MainActivity.java b/app_mogo_magic_ring/src/main/java/com/zhidao/adas/magic/ui/MainActivity.java index 685f84610c..3c1ea13ce0 100644 --- a/app_mogo_magic_ring/src/main/java/com/zhidao/adas/magic/ui/MainActivity.java +++ b/app_mogo_magic_ring/src/main/java/com/zhidao/adas/magic/ui/MainActivity.java @@ -45,7 +45,7 @@ import com.zhidao.support.adas.high.AdasManager; import com.zhidao.support.adas.high.AdasOptions; import com.zhidao.support.adas.high.OnAdasConnectStatusListener; import com.zhidao.support.adas.high.OnAdasListener; -import com.zhidao.support.adas.high.bean.AutopilotStatistics; +import com.zhjt.mogo.adas.data.bean.AutopilotStatistics; import com.zhidao.support.adas.high.bean.VersionCompatibility; import com.zhidao.support.adas.high.common.Constants.IPC_CONNECTION_STATUS; import com.zhidao.support.adas.high.common.CupidLogUtils; diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/adapter/MoGoAdasListenerImpl.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/adapter/MoGoAdasListenerImpl.kt index 6374bb350c..8247a0ea90 100644 --- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/adapter/MoGoAdasListenerImpl.kt +++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/adapter/MoGoAdasListenerImpl.kt @@ -59,7 +59,7 @@ import com.mogo.eagle.core.utilcode.mogo.logger.Logger import com.mogo.support.obu.ObuScene import com.zhidao.support.adas.high.AdasManager import com.zhidao.support.adas.high.OnAdasListener -import com.zhidao.support.adas.high.bean.AutopilotStatistics +import com.zhjt.mogo.adas.data.bean.AutopilotStatistics import com.zhidao.support.adas.high.common.ProtocolStatus import com.zhjt.service.chain.ChainLog import com.zhjt.service.chain.TracingConstants.Endpoint.Companion.PAD diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/autopilot/IMoGoAutopilotStatisticsListener.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/autopilot/IMoGoAutopilotStatisticsListener.kt index 8bb5d83d75..f084eeeb5c 100644 --- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/autopilot/IMoGoAutopilotStatisticsListener.kt +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/autopilot/IMoGoAutopilotStatisticsListener.kt @@ -1,6 +1,6 @@ package com.mogo.eagle.core.function.api.autopilot -import com.zhidao.support.adas.high.bean.AutopilotStatistics +import com.zhjt.mogo.adas.data.bean.AutopilotStatistics /** * 启动自动驾驶状态统计监听 diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerAutopilotStatisticsListenerManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerAutopilotStatisticsListenerManager.kt index ef6b958436..f4940f5b4f 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerAutopilotStatisticsListenerManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerAutopilotStatisticsListenerManager.kt @@ -2,7 +2,7 @@ package com.mogo.eagle.core.function.call.autopilot import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatisticsListener import com.mogo.eagle.core.function.call.base.CallerBase -import com.zhidao.support.adas.high.bean.AutopilotStatistics +import com.zhjt.mogo.adas.data.bean.AutopilotStatistics object CallerAutopilotStatisticsListenerManager : CallerBase() { diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/bean/AutopilotStatistics.java b/libraries/mogo-adas-data/src/main/java/com/zhjt/mogo/adas/data/bean/AutopilotStatistics.java similarity index 55% rename from libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/bean/AutopilotStatistics.java rename to libraries/mogo-adas-data/src/main/java/com/zhjt/mogo/adas/data/bean/AutopilotStatistics.java index c7aff7feee..487e386140 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/bean/AutopilotStatistics.java +++ b/libraries/mogo-adas-data/src/main/java/com/zhjt/mogo/adas/data/bean/AutopilotStatistics.java @@ -1,23 +1,38 @@ -package com.zhidao.support.adas.high.bean; +package com.zhjt.mogo.adas.data.bean; -import com.zhidao.support.adas.high.common.Define; import mogo.telematics.pad.MessagePad; import mogo_msg.MogoReportMsg; /** - * 自动驾驶启动统计 todo 凤坤,后续封装成pb,或者放入adas-data + * 自动驾驶启动统计 */ public class AutopilotStatistics { + /** + * 启动自动驾驶后的状态 + */ + public interface AUTOPILOT_START_STATUS { + /** + * 成功 + */ + int SUCCESSFUL = 0; + /** + * 失败 + */ + int FAILED = 1; + /** + * 取消 + */ + int CANCEL = 2; + } /** * 启动自动驾驶后状态 * 0 成功 * 1 失败 * 2 取消 - * {@link com.zhidao.support.adas.high.common.Constants.AUTOPILOT_START_STATUS} + * {@link AUTOPILOT_START_STATUS} */ - @Define.AutopilotStartStatus public final int status; /** @@ -36,7 +51,7 @@ public class AutopilotStatistics { */ public final MogoReportMsg.MogoReportMessage failedMessage; - public AutopilotStatistics(@Define.AutopilotStartStatus int status, long usedTime, MessagePad.SetAutopilotModeReq req, MogoReportMsg.MogoReportMessage failedMessage) { + public AutopilotStatistics(int status, long usedTime, MessagePad.SetAutopilotModeReq req, MogoReportMsg.MogoReportMessage failedMessage) { this.status = status; this.usedTime = usedTime; this.req = req; diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasChannel.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasChannel.java index 298d893a2c..b174d75da2 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasChannel.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/AdasChannel.java @@ -21,7 +21,7 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import com.google.protobuf.InvalidProtocolBufferException; -import com.zhidao.support.adas.high.bean.AutopilotStatistics; +import com.zhjt.mogo.adas.data.bean.AutopilotStatistics; import com.zhidao.support.adas.high.bean.VersionCompatibility; import com.zhidao.support.adas.high.common.AutopilotReview; import com.zhidao.support.adas.high.common.ByteUtil; diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/OnAdasListener.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/OnAdasListener.java index ff3d6b8b67..8a5318bf1e 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/OnAdasListener.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/OnAdasListener.java @@ -1,7 +1,7 @@ package com.zhidao.support.adas.high; import com.mogo.support.obu.ObuScene; -import com.zhidao.support.adas.high.bean.AutopilotStatistics; +import com.zhjt.mogo.adas.data.bean.AutopilotStatistics; import com.zhidao.support.adas.high.common.ProtocolStatus; import bag_manager.BagManagerOuterClass; diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/AutopilotReview.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/AutopilotReview.java index 16f62686fd..3ad3ca761b 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/AutopilotReview.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/AutopilotReview.java @@ -4,7 +4,8 @@ import android.os.SystemClock; import androidx.annotation.NonNull; -import com.zhidao.support.adas.high.bean.AutopilotStatistics; + +import com.zhjt.mogo.adas.data.bean.AutopilotStatistics; import java.util.Timer; import java.util.TimerTask; @@ -60,7 +61,7 @@ public class AutopilotReview { startReq = req; startTime = SystemClock.elapsedRealtime(); } else { - onCallback(Constants.AUTOPILOT_START_STATUS.CANCEL); + onCallback(AutopilotStatistics.AUTOPILOT_START_STATUS.CANCEL); } } @@ -72,7 +73,7 @@ public class AutopilotReview { public void onReportResult(MogoReportMsg.MogoReportMessage message) { if (startReq != null && message != null) { failedMessage = message; - onCallback(Constants.AUTOPILOT_START_STATUS.FAILED); + onCallback(AutopilotStatistics.AUTOPILOT_START_STATUS.FAILED); } } @@ -83,7 +84,7 @@ public class AutopilotReview { */ public void onAutopilotResult(MessagePad.AutopilotState state) { if (startReq != null && state != null && state.getState() == 2) { - onCallback(Constants.AUTOPILOT_START_STATUS.SUCCESSFUL); + onCallback(AutopilotStatistics.AUTOPILOT_START_STATUS.SUCCESSFUL); } } } diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/Constants.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/Constants.java index 2591484ac9..503d7f8eb2 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/Constants.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/Constants.java @@ -110,23 +110,6 @@ public class Constants { } - /** - * 启动自动驾驶后的状态 - */ - public interface AUTOPILOT_START_STATUS { - /** - * 成功 - */ - int SUCCESSFUL = 0; - /** - * 失败 - */ - int FAILED = 1; - /** - * 取消 - */ - int CANCEL = 2; - } /** * 使用底盘数据类型 diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/Define.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/Define.java index 4ef4b6830c..598ccc3f8c 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/Define.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/Define.java @@ -3,6 +3,7 @@ package com.zhidao.support.adas.high.common; import androidx.annotation.IntDef; import com.zhidao.support.adas.high.bean.VersionCompatibility; +import com.zhjt.mogo.adas.data.bean.AutopilotStatistics; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; @@ -47,9 +48,9 @@ public final class Define { public @interface SubscribeType { } - @IntDef(flag = true, value = {Constants.AUTOPILOT_START_STATUS.SUCCESSFUL, - Constants.AUTOPILOT_START_STATUS.FAILED, - Constants.AUTOPILOT_START_STATUS.CANCEL}) + @IntDef(flag = true, value = {AutopilotStatistics.AUTOPILOT_START_STATUS.SUCCESSFUL, + AutopilotStatistics.AUTOPILOT_START_STATUS.FAILED, + AutopilotStatistics.AUTOPILOT_START_STATUS.CANCEL}) @Retention(RetentionPolicy.SOURCE) public @interface AutopilotStartStatus { } From 36f49d3a51ce6a6eccf609227bf8c151f6d2a0fb Mon Sep 17 00:00:00 2001 From: chenfufeng Date: Thu, 12 Jan 2023 16:15:49 +0800 Subject: [PATCH 31/49] =?UTF-8?q?[2.13.2][fix]=E8=A7=A3=E5=86=B3=E6=B1=87?= =?UTF-8?q?=E6=80=BB=E6=B6=88=E6=81=AF=E5=9B=BE=E6=A0=87=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit (cherry picked from commit f04d790c7389af33d4efa2e24a1b90f30e7594cd) --- .../mogo/eagle/core/function/msgbox/DataManager.kt | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/msgbox/DataManager.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/msgbox/DataManager.kt index 4e0cb392df..e17b432a38 100644 --- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/msgbox/DataManager.kt +++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/msgbox/DataManager.kt @@ -87,7 +87,16 @@ object DataManager { msg.timestamp = System.currentTimeMillis() msg.bean2Json = GsonUtils.toJson(msg.bean) when (type) { - MsgBoxType.V2X, MsgBoxType.OBU, MsgBoxType.NOTICE, MsgBoxType.OPERATION -> { + MsgBoxType.V2X -> { + // 汇总消息不存数据库 + if (msg.sourceType != DataSourceType.SUMMARY) { + synchronized(this) { + notifyList.add(msg) + } + } + CallerMsgBoxListenerManager.invokeListener(MsgCategory.NOTICE, msg) + } + MsgBoxType.OBU, MsgBoxType.NOTICE, MsgBoxType.OPERATION -> { synchronized(this) { notifyList.add(msg) } From 0f17b2185f7ea074bb44b9dc95f81e6ded273e4c Mon Sep 17 00:00:00 2001 From: chenfufeng Date: Mon, 20 Feb 2023 12:02:44 +0800 Subject: [PATCH 32/49] =?UTF-8?q?[2.14.0][Opt]=E5=8D=87=E7=BA=A7=E9=AB=98?= =?UTF-8?q?=E5=BE=B7=E5=9C=B0=E5=9B=BE=E7=89=88=E6=9C=AC=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E5=AF=B9=E5=BA=94=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../function/hmi/ui/map/OfflineMapDialog.kt | 10 +++++ .../mogo-core-function-map/build.gradle | 1 - .../call/map/CallerMapUIServiceManager.kt | 4 ++ .../com/mogo/map/hdcache/IHdCacheListener.kt | 2 + .../uicontroller/IMogoMapUIController.java | 2 + .../java/com/mogo/map/AMapViewWrapper.java | 42 +++++++++++++++---- .../com/mogo/map/MogoMapUIController.java | 7 ++++ .../map/uicontroller/AMapUIController.java | 7 ++++ 8 files changed, 66 insertions(+), 9 deletions(-) diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/map/OfflineMapDialog.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/map/OfflineMapDialog.kt index 0adbe08c49..b1db9d6a14 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/map/OfflineMapDialog.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/map/OfflineMapDialog.kt @@ -81,6 +81,9 @@ class OfflineMapDialog(context: Context): BaseFloatDialog(context) { } okView?.setOnClickListener { + if (isLoading) { + CallerMapUIServiceManager.cancelDownloadCacheData() + } dismiss() } } @@ -90,6 +93,12 @@ class OfflineMapDialog(context: Context): BaseFloatDialog(context) { override fun onMapHdCacheProgress(cityId: Int, progress: Double) { updateProgress(progress.toInt()) } + + override fun onMapHdCacheResult(cityId: Int, state: Int) { + if (state == 0) {// 失败 + showNewContent(isLoading = false, false) + } + } }) } @@ -131,6 +140,7 @@ class OfflineMapDialog(context: Context): BaseFloatDialog(context) { @SuppressLint("UseCompatLoadingForDrawables") private fun showNewContent(isLoading: Boolean, isSuccess: Boolean) { + this.isLoading = isLoading change2NewStyle() when { isLoading -> { diff --git a/core/function-impl/mogo-core-function-map/build.gradle b/core/function-impl/mogo-core-function-map/build.gradle index 0cf7bfaf30..87b0a3c14a 100644 --- a/core/function-impl/mogo-core-function-map/build.gradle +++ b/core/function-impl/mogo-core-function-map/build.gradle @@ -60,7 +60,6 @@ dependencies { implementation rootProject.ext.dependencies.mogocustommap implementation rootProject.ext.dependencies.amapnavi3dmap -// implementation rootProject.ext.dependencies.amaplocation implementation rootProject.ext.dependencies.androidxroomruntime kapt rootProject.ext.dependencies.androidxroomcompiler diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerMapUIServiceManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerMapUIServiceManager.kt index 1c5104a623..bf7f44b92b 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerMapUIServiceManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerMapUIServiceManager.kt @@ -46,4 +46,8 @@ object CallerMapUIServiceManager { fun getGDLocationServer(context: Context): IMogoGDLocationClient?{ return serviceProvider?.getGDLocationServer(context) } + + fun cancelDownloadCacheData() { + serviceProvider?.mapUIController?.cancelDownloadCacheData() + } } \ No newline at end of file diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/hdcache/IHdCacheListener.kt b/libraries/mogo-map-api/src/main/java/com/mogo/map/hdcache/IHdCacheListener.kt index 4761e40fff..9492c60ba7 100644 --- a/libraries/mogo-map-api/src/main/java/com/mogo/map/hdcache/IHdCacheListener.kt +++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/hdcache/IHdCacheListener.kt @@ -2,4 +2,6 @@ package com.mogo.map.hdcache interface IHdCacheListener { fun onMapHdCacheProgress(cityId: Int, progress: Double) + + fun onMapHdCacheResult(cityId: Int, state: Int)// 0失败,1成功 } \ No newline at end of file diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/uicontroller/IMogoMapUIController.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/uicontroller/IMogoMapUIController.java index 8235fe8a36..93093c74f7 100644 --- a/libraries/mogo-map-api/src/main/java/com/mogo/map/uicontroller/IMogoMapUIController.java +++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/uicontroller/IMogoMapUIController.java @@ -358,4 +358,6 @@ public interface IMogoMapUIController { * @return */ boolean isCityDataCached(); + + void cancelDownloadCacheData(); } 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 68c15404f3..0becb4a9c9 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 @@ -58,6 +58,7 @@ import com.mogo.map.utils.ResIdCache; import com.zhidaoauto.map.sdk.open.MapAutoApi; import com.zhidaoauto.map.sdk.open.abs.MapStatusListener; import com.zhidaoauto.map.sdk.open.abs.OnCameraChangeListener; +import com.zhidaoauto.map.sdk.open.abs.OnHdDataDownByCityListener; import com.zhidaoauto.map.sdk.open.abs.OnMapClickListener; import com.zhidaoauto.map.sdk.open.abs.OnMapLoadedListener; import com.zhidaoauto.map.sdk.open.abs.OnMapStyleListener; @@ -1051,17 +1052,35 @@ public class AMapViewWrapper implements IMogoMapView, Integer id = HDMapUtils.getHDCityCode(gdCityCode); if (id != null) { hdCacheListener = listener; - mMapView.getMapAutoViewHelper().cacheHDDataByCity(id, (cityId, progress) -> { - if (Thread.currentThread() == Looper.getMainLooper().getThread()) { - if (hdCacheListener != null) { - hdCacheListener.onMapHdCacheProgress(cityId, progress * 100); - } - } else { - UiThreadHandler.post(() -> { + mMapView.getMapAutoViewHelper().cacheHDDataByCity(id, new OnHdDataDownByCityListener() { + @Override + public void onMapHDDataCacheProgressByCity(int cityId, double progress) { + if (Thread.currentThread() == Looper.getMainLooper().getThread()) { if (hdCacheListener != null) { hdCacheListener.onMapHdCacheProgress(cityId, progress * 100); } - }); + } else { + UiThreadHandler.post(() -> { + if (hdCacheListener != null) { + hdCacheListener.onMapHdCacheProgress(cityId, progress * 100); + } + }); + } + } + + @Override + public void onMapHDDataCacheStateByCity(int i, int state) {// 0失败,1成功 + if (Thread.currentThread() == Looper.getMainLooper().getThread()) { + if (hdCacheListener != null) { + hdCacheListener.onMapHdCacheResult(i, state); + } + } else { + UiThreadHandler.post(() -> { + if (hdCacheListener != null) { + hdCacheListener.onMapHdCacheResult(i, state); + } + }); + } } }); } @@ -1086,4 +1105,11 @@ public class AMapViewWrapper implements IMogoMapView, } return true; } + + @Override + public void cancelDownloadCacheData() { + if (mMapView.getMapAutoViewHelper() != null) { + mMapView.getMapAutoViewHelper().cancelCacheHDData(); + } + } } diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapUIController.java b/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapUIController.java index fbbb4ab578..4dca845c89 100644 --- a/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapUIController.java +++ b/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapUIController.java @@ -466,4 +466,11 @@ public class MogoMapUIController implements IMogoMapUIController { } return true; } + + @Override + public void cancelDownloadCacheData() { + if (mDelegate != null) { + mDelegate.cancelDownloadCacheData(); + } + } } diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/uicontroller/AMapUIController.java b/libraries/mogo-map/src/main/java/com/mogo/map/uicontroller/AMapUIController.java index f48f36cc66..98bc405067 100644 --- a/libraries/mogo-map/src/main/java/com/mogo/map/uicontroller/AMapUIController.java +++ b/libraries/mogo-map/src/main/java/com/mogo/map/uicontroller/AMapUIController.java @@ -405,4 +405,11 @@ public class AMapUIController implements IMogoMapUIController { } return true; } + + @Override + public void cancelDownloadCacheData() { + if (mClient != null) { + mClient.cancelDownloadCacheData(); + } + } } From eb12c0d4bcbdd6e936b9ada1a50bc62e772e1b10 Mon Sep 17 00:00:00 2001 From: chenfufeng Date: Mon, 20 Feb 2023 13:31:49 +0800 Subject: [PATCH 33/49] =?UTF-8?q?[2.14.0][Fix]=E8=A7=A3=E5=86=B3Taxi?= =?UTF-8?q?=E4=B9=98=E5=AE=A2=E5=B1=8F=E6=89=93=E5=8C=85=E6=8A=A5=E9=94=99?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../taxi/passenger/model/TaxiPassengerGeocodeSearchModel.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerGeocodeSearchModel.java b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerGeocodeSearchModel.java index 213ab2d358..c43702af78 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerGeocodeSearchModel.java +++ b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerGeocodeSearchModel.java @@ -55,10 +55,10 @@ public class TaxiPassengerGeocodeSearchModel implements GeocodeSearch.OnGeocodeS //通过经纬度逆地理编码得到位置 try { mGeocodeSearch = new GeocodeSearch(mContext); + mGeocodeSearch.setOnGeocodeSearchListener(this); } catch (AMapException e) { e.printStackTrace(); } - mGeocodeSearch.setOnGeocodeSearchListener(this); timer = new Timer(); timerTask = new TimerTask() { @Override From 24bb64cf3f9e21fc7466abd8302df0a1a6ce6e38 Mon Sep 17 00:00:00 2001 From: chenfufeng Date: Mon, 20 Feb 2023 18:52:03 +0800 Subject: [PATCH 34/49] =?UTF-8?q?[2.14.0][Fix]=E8=A7=A3=E5=86=B3=E9=AB=98?= =?UTF-8?q?=E7=B2=BE=E5=9C=B0=E5=9B=BE=E7=BC=93=E5=AD=98=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=88=9D=E5=A7=8B=E7=8A=B6=E6=80=81=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../eagle/core/function/call/map/CallerMapUIServiceManager.kt | 2 +- .../mogo-map/src/main/java/com/mogo/map/AMapViewWrapper.java | 2 +- .../src/main/java/com/mogo/map/MogoMapUIController.java | 2 +- .../main/java/com/mogo/map/uicontroller/AMapUIController.java | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerMapUIServiceManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerMapUIServiceManager.kt index bf7f44b92b..6db8e65512 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerMapUIServiceManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerMapUIServiceManager.kt @@ -36,7 +36,7 @@ object CallerMapUIServiceManager { } fun isCityDataCached(): Boolean { - return serviceProvider?.mapUIController?.isCityDataCached ?: true + return serviceProvider?.mapUIController?.isCityDataCached ?: false } fun getOverlayManager(): IMogoOverlayManager?{ 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 0becb4a9c9..09aea37182 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 @@ -1103,7 +1103,7 @@ public class AMapViewWrapper implements IMogoMapView, } } } - return true; + return false; } @Override diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapUIController.java b/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapUIController.java index 4dca845c89..9554442fea 100644 --- a/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapUIController.java +++ b/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapUIController.java @@ -464,7 +464,7 @@ public class MogoMapUIController implements IMogoMapUIController { if (mDelegate != null) { return mDelegate.isCityDataCached(); } - return true; + return false; } @Override diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/uicontroller/AMapUIController.java b/libraries/mogo-map/src/main/java/com/mogo/map/uicontroller/AMapUIController.java index 98bc405067..090f1ccbd4 100644 --- a/libraries/mogo-map/src/main/java/com/mogo/map/uicontroller/AMapUIController.java +++ b/libraries/mogo-map/src/main/java/com/mogo/map/uicontroller/AMapUIController.java @@ -403,7 +403,7 @@ public class AMapUIController implements IMogoMapUIController { if (mClient != null) { return mClient.isCityDataCached(); } - return true; + return false; } @Override From c37d2b162df9ca825e42dd13e0c4edf11d460b30 Mon Sep 17 00:00:00 2001 From: chenfufeng Date: Tue, 21 Feb 2023 16:20:49 +0800 Subject: [PATCH 35/49] =?UTF-8?q?[2.14.0][Fix]=E8=A7=A3=E5=86=B3=E9=AB=98?= =?UTF-8?q?=E7=B2=BE=E5=9C=B0=E5=9B=BE=E7=BC=93=E5=AD=98=E4=BA=A4=E4=BA=92?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mogo/eagle/core/function/hmi/ui/map/OfflineMapDialog.kt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/map/OfflineMapDialog.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/map/OfflineMapDialog.kt index b1db9d6a14..e7c083b27e 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/map/OfflineMapDialog.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/map/OfflineMapDialog.kt @@ -60,8 +60,8 @@ class OfflineMapDialog(context: Context): BaseFloatDialog(context) { leftView?.setOnClickListener { when { isConfirm -> { - cacheHDOfflineData() showNewContent(isLoading = true, false) + cacheHDOfflineData() } else -> { dismiss() @@ -72,6 +72,7 @@ class OfflineMapDialog(context: Context): BaseFloatDialog(context) { rightView?.setOnClickListener { when { isRetry -> { + showNewContent(isLoading = true, false) cacheHDOfflineData() } else -> { @@ -160,11 +161,14 @@ class OfflineMapDialog(context: Context): BaseFloatDialog(context) { downloadResultImg?.background = ContextCompat.getDrawable(context, R.drawable.download_success_icon) } else -> { + isRetry = true + isConfirm = false offlineTitleView?.text = context.resources.getString(R.string.offline_download_failure) okView?.visibility = View.GONE progressBar?.visibility = View.GONE downloadPercentView?.visibility = View.GONE leftView?.visibility = View.VISIBLE + leftView?.text = context.resources.getString(R.string.ok_tip) rightView?.visibility = View.VISIBLE vertLineView?.visibility = View.VISIBLE rightView?.text = context.resources.getString(R.string.retry) From 189521c508ebaabd12db4af264e9a0d3b24028a0 Mon Sep 17 00:00:00 2001 From: chenfufeng Date: Tue, 21 Feb 2023 16:21:18 +0800 Subject: [PATCH 36/49] =?UTF-8?q?[2.14.0][Fix]=E8=A7=A3=E5=86=B3=E5=90=88?= =?UTF-8?q?=E5=B9=B6=E6=97=B6=E5=B0=91=E5=AF=BC=E5=8C=85=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/mogo/eagle/core/function/msgbox/DataManager.kt | 1 + 1 file changed, 1 insertion(+) diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/msgbox/DataManager.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/msgbox/DataManager.kt index e17b432a38..9dc9637ff1 100644 --- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/msgbox/DataManager.kt +++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/msgbox/DataManager.kt @@ -2,6 +2,7 @@ package com.mogo.eagle.core.function.msgbox import android.content.Context import android.os.Looper +import com.mogo.eagle.core.data.enums.DataSourceType import com.mogo.eagle.core.data.msgbox.* import com.mogo.eagle.core.data.report.ReportEntity import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxListenerManager From 6fa458a31fd91118396d0fe898449b57b79df959 Mon Sep 17 00:00:00 2001 From: chenfufeng Date: Tue, 21 Feb 2023 17:12:28 +0800 Subject: [PATCH 37/49] =?UTF-8?q?[Opt3.0][Update]=E5=8D=87=E7=BA=A7?= =?UTF-8?q?=E6=B4=B1=E6=B5=B7=E5=9C=B0=E5=9B=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 84fbc00de8..0af01e8d99 100644 --- a/gradle.properties +++ b/gradle.properties @@ -85,7 +85,7 @@ MOGO_LOCATION_VERSION=1.4.4.7 MOGO_TELEMATIC_VERSION=1.4.4.7 ######## MogoAiCloudSDK Version ######## # 自研地图 -MAP_SDK_VERSION=2.10.0.2_test_01 +MAP_SDK_VERSION=2.10.0.9 MAP_SDK_OPERATION_VERSION=1.1.4.1 # websocket WEBSOCKET_VERSION=1.1.7 From b976791e0ebf3d2f993b714298d53d2a2268cbfe Mon Sep 17 00:00:00 2001 From: donghongyu Date: Tue, 21 Feb 2023 18:17:01 +0800 Subject: [PATCH 38/49] =?UTF-8?q?[dev=5Farch=5Fopt=5F3.0]=20[Change]=20[?= =?UTF-8?q?=201=E3=80=81=E8=A7=A3=E9=99=A4=E6=95=B0=E6=8D=AE=E4=B8=AD?= =?UTF-8?q?=E5=BF=83=E5=AF=B9=E9=AB=98=E5=BE=B7=E5=9C=B0=E5=9B=BE=E7=9A=84?= =?UTF-8?q?=E4=BE=9D=E8=B5=96=20]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: donghongyu --- .../build.gradle | 1 - .../location/MoGoLocationDispatcher.kt | 105 +++---------- .../map/listener/IGaoDeMapLocationListener.kt | 2 +- .../CallerGaoDeMapLocationListenerManager.kt | 24 +++ .../mogo/map/location/GDLocationClient.java | 101 ------------ .../com/mogo/map/location/GDLocationClient.kt | 147 ++++++++++++++++++ 6 files changed, 192 insertions(+), 188 deletions(-) create mode 100644 core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerGaoDeMapLocationListenerManager.kt delete mode 100644 libraries/mogo-map/src/main/java/com/mogo/map/location/GDLocationClient.java create mode 100644 libraries/mogo-map/src/main/java/com/mogo/map/location/GDLocationClient.kt diff --git a/core/function-impl/mogo-core-function-datacenter/build.gradle b/core/function-impl/mogo-core-function-datacenter/build.gradle index 70e7c4ac08..fab4051ccf 100644 --- a/core/function-impl/mogo-core-function-datacenter/build.gradle +++ b/core/function-impl/mogo-core-function-datacenter/build.gradle @@ -55,7 +55,6 @@ dependencies { implementation rootProject.ext.dependencies.androidxroomktx implementation rootProject.ext.dependencies.mogoaicloudtelematic - implementation rootProject.ext.dependencies.amapnavi3dmap implementation project(':libraries:mogo-obu') implementation project(':libraries:mogo-adas') diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/location/MoGoLocationDispatcher.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/location/MoGoLocationDispatcher.kt index dc052cf491..945490bfd2 100644 --- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/location/MoGoLocationDispatcher.kt +++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/location/MoGoLocationDispatcher.kt @@ -1,26 +1,21 @@ package com.mogo.eagle.core.function.datacenter.location -import com.amap.api.location.AMapLocation -import com.amap.api.location.AMapLocationClient -import com.amap.api.location.AMapLocationClientOption -import com.amap.api.location.AMapLocationListener import com.mogo.commons.AbsMogoApplication import com.mogo.commons.constants.SharedPrefsConstants import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.data.enums.DataSourceType import com.mogo.eagle.core.data.map.MogoLocation import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisGnssListener +import com.mogo.eagle.core.function.api.map.listener.IGaoDeMapLocationListener import com.mogo.eagle.core.function.api.obu.IMoGoObuLocationWGS84Listener import com.mogo.eagle.core.function.call.autopilot.CallerChassisGnssListenerManager import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02ListenerManager import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationWGS84ListenerManager +import com.mogo.eagle.core.function.call.map.CallerGaoDeMapLocationListenerManager import com.mogo.eagle.core.function.call.obu.CallerObuLocationWGS84ListenerManager import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr -import com.mogo.eagle.core.utilcode.util.CoordinateTransform import com.mogo.eagle.core.utilcode.util.MultiDisplayUtils import com.mogo.eagle.core.utilcode.util.TimeUtils -import com.mogo.eagle.core.utilcode.util.Utils -import com.mogo.support.obu.model.MogoObuHvBasicsData import mogo.telematics.pad.MessagePad /** @@ -31,12 +26,11 @@ import mogo.telematics.pad.MessagePad object MoGoLocationDispatcher : IMoGoChassisGnssListener, IMoGoObuLocationWGS84Listener, - AMapLocationListener { + IGaoDeMapLocationListener { private const val TAG = "MoGoLocationManager" private var mCityCode: String? = null - private var mapLocation: AMapLocation? = null /** * 最后一次工控机GNSS返回更新的位置 @@ -54,33 +48,10 @@ object MoGoLocationDispatcher : private var lastGaoDeLocation: MogoLocation = MogoLocation() fun initListener() { - // 高德SDK隐私政策 - AMapLocationClient.updatePrivacyShow(Utils.getApp(), true, true) - AMapLocationClient.updatePrivacyAgree(Utils.getApp(), true) - - try { - val mLocationClient = AMapLocationClient(Utils.getApp()) - - //初始化定位参数 - //声明mLocationOption对象 - val mLocationOption = AMapLocationClientOption() - //设置定位监听 - mLocationClient.setLocationListener(this) - //设置定位模式为高精度模式,Battery_Saving为低功耗模式,Device_Sensors是仅设备模式 - mLocationOption.locationMode = AMapLocationClientOption.AMapLocationMode.Hight_Accuracy - //设置定位间隔,单位毫秒,默认为2000ms - mLocationOption.interval = 1000 - //设置定位参数 - mLocationClient.setLocationOption(mLocationOption) - // 启动定位监听 - mLocationClient.startLocation() - } catch (e: Exception) { - e.printStackTrace() - } - // 初始化监听订阅工控机位置信息 CallerChassisGnssListenerManager.addListener(TAG, this) CallerObuLocationWGS84ListenerManager.addListener(TAG, this) + CallerGaoDeMapLocationListenerManager.addListener(TAG, this) } override fun onChassisGnss(gnssInfo: MessagePad.GnssInfo) { @@ -88,13 +59,13 @@ object MoGoLocationDispatcher : lastGnssLocation.gnssInfo = gnssInfo lastGnssLocation.lastReceiveTime = TimeUtils.getNowMills() // 将高德中的一些用于业务的数据进行融合,例如:CityCode、address等 - mapLocation?.let { + lastGaoDeLocation.let { //agps 高德 //agps_rtk 高德-高精 lastGnssLocation.locType = 1000 // 定位类型为WGS84进行转译的坐标 lastGnssLocation.satellite = 4 - lastGnssLocation.cityName = it.city + lastGnssLocation.cityName = it.cityName lastGnssLocation.cityCode = it.cityCode lastGnssLocation.provider = it.provider lastGnssLocation.address = it.address @@ -128,79 +99,42 @@ object MoGoLocationDispatcher : MultiDisplayUtils.getOtherDisplay() } + /** * 高德地图位置改变回调 - * @param aMapLocation 位置信息 + * @param mogoLocation 位置信息 */ - override fun onLocationChanged(aMapLocation: AMapLocation) { - mapLocation = aMapLocation - // 更新GNSS 信息 - lastGaoDeLocation.lastReceiveTime = TimeUtils.getNowMills() - - // 将高德中的一些用于业务的数据进行融合,例如:CityCode、address等 - mapLocation?.let { - // 转换 GCJ02-->WGS84 坐标 - val wgs84Location = - CoordinateTransform.GCJ02ToWGS84(it.longitude, it.latitude) - - lastGaoDeLocation.longitude = wgs84Location[0] - lastGaoDeLocation.latitude = wgs84Location[1] - lastGaoDeLocation.heading = it.bearing.toDouble() - lastGaoDeLocation.gnssSpeed = it.speed - lastGaoDeLocation.altitude = it.altitude - lastGaoDeLocation.satelliteTime = it.time - lastGaoDeLocation.lastReceiveTime = TimeUtils.getNowMills() - - lastGaoDeLocation.locType = 1 // 定位类型为高德坐标(网路或者硬件定位) - lastGaoDeLocation.satellite = 4 - - lastGaoDeLocation.cityName = it.city - lastGaoDeLocation.cityCode = it.cityCode - lastGaoDeLocation.provider = it.provider - lastGaoDeLocation.address = it.address - lastGaoDeLocation.district = it.district - lastGaoDeLocation.province = it.province - lastGaoDeLocation.adCode = it.adCode - lastGaoDeLocation.locationDetail = it.locationDetail - lastGaoDeLocation.poiName = it.poiName - lastGaoDeLocation.aoiName = it.aoiName - lastGaoDeLocation.street = it.street - lastGaoDeLocation.streetNum = it.streetNum - lastGaoDeLocation.description = it.description - lastGaoDeLocation.buildingId = it.buildingId - lastGaoDeLocation.floor = it.floor - lastGaoDeLocation.errorCode = it.errorCode - lastGaoDeLocation.errorInfo = it.errorInfo - } + override fun onMoGoLocationChanged(mogoLocation: MogoLocation) { + // 更新GaoDe 信息 + lastGaoDeLocation = mogoLocation // 计算最后一次工控机同步的定位是否超时,如果超时则切换为高德地图定位,暂定超过30秒需要切换 if (1 == FunctionBuildConfig.gpsProvider) { - if (TimeUtils.getNowMills() - lastGnssLocation.lastReceiveTime > 30000) { + if (TimeUtils.getNowMills() - lastGnssLocation.lastReceiveTime > 10000) { syncGaoDeLocation() } } else if (2 == FunctionBuildConfig.gpsProvider) { - if (TimeUtils.getNowMills() - lastOBULocation.lastReceiveTime > 30000) { + if (TimeUtils.getNowMills() - lastOBULocation.lastReceiveTime > 10000) { syncGaoDeLocation() } } - // 本地SP缓存城市Code - val cityCode = aMapLocation.cityCode + val cityCode = mogoLocation.cityCode if (cityCode != null && cityCode.isNotEmpty()) { - mCityCode = aMapLocation.cityCode + mCityCode = mogoLocation.cityCode SharedPrefsMgr.getInstance(AbsMogoApplication.getApp()) .putString(SharedPrefsConstants.LOCATION_CITY_CODE, cityCode) SharedPrefsMgr.getInstance(AbsMogoApplication.getApp()) .putString( SharedPrefsConstants.LOCATION_LATITUDE, - aMapLocation.latitude.toString() + mogoLocation.latitude.toString() ) SharedPrefsMgr.getInstance(AbsMogoApplication.getApp()) .putString( SharedPrefsConstants.LOCATION_LONGITUDE, - aMapLocation.longitude.toString() + mogoLocation.longitude.toString() ) } @@ -236,13 +170,13 @@ object MoGoLocationDispatcher : lastOBULocation.lastReceiveTime = TimeUtils.getNowMills() // 将高德中的一些用于业务的数据进行融合,例如:CityCode、address等 - mapLocation?.let { + lastGaoDeLocation.let { //agps 高德 //agps_rtk 高德-高精 lastOBULocation.locType = 1000 // 定位类型为WGS84进行转译的坐标 lastOBULocation.satellite = 4 - lastOBULocation.cityName = it.city + lastOBULocation.cityName = it.cityName lastOBULocation.cityCode = it.cityCode lastOBULocation.provider = it.provider lastOBULocation.address = it.address @@ -274,4 +208,5 @@ object MoGoLocationDispatcher : ) } } + } \ No newline at end of file diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/map/listener/IGaoDeMapLocationListener.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/map/listener/IGaoDeMapLocationListener.kt index 872df234ce..e45c2b085d 100644 --- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/map/listener/IGaoDeMapLocationListener.kt +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/map/listener/IGaoDeMapLocationListener.kt @@ -14,5 +14,5 @@ interface IGaoDeMapLocationListener { * * @param location 新定位点 */ - fun onLocationChanged(location: MogoLocation, from: Int, isGps: Boolean) + fun onMoGoLocationChanged(location: MogoLocation) } \ No newline at end of file diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerGaoDeMapLocationListenerManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerGaoDeMapLocationListenerManager.kt new file mode 100644 index 0000000000..5c0f09e2dd --- /dev/null +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerGaoDeMapLocationListenerManager.kt @@ -0,0 +1,24 @@ +package com.mogo.eagle.core.function.call.map + +import com.mogo.eagle.core.data.map.MogoLocation +import com.mogo.eagle.core.function.api.map.listener.IGaoDeMapLocationListener +import com.mogo.eagle.core.function.call.base.CallerBase + +/** + * 高德地图定位监听 + */ +object CallerGaoDeMapLocationListenerManager : CallerBase() { + + /** + * 高德位置改变监听 + */ + @Synchronized + fun invokeMoGoLocationChanged(location: MogoLocation) { + M_LISTENERS.forEach { + val tag = it.key + val listener = it.value + listener.onMoGoLocationChanged(location) + } + } + +} \ No newline at end of file diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/location/GDLocationClient.java b/libraries/mogo-map/src/main/java/com/mogo/map/location/GDLocationClient.java deleted file mode 100644 index 2dfa892d3d..0000000000 --- a/libraries/mogo-map/src/main/java/com/mogo/map/location/GDLocationClient.java +++ /dev/null @@ -1,101 +0,0 @@ -package com.mogo.map.location; - -import android.content.Context; - -import com.amap.api.location.AMapLocation; -import com.amap.api.location.AMapLocationClient; -import com.amap.api.location.AMapLocationClientOption; -import com.amap.api.location.AMapLocationListener; -import com.mogo.commons.AbsMogoApplication; -import com.mogo.commons.constants.SharedPrefsConstants; -import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr; - -/** - * 封装高德地图通过设备GPS获取到的位置信息,频率1s一次,坐标系为CJC20 - * 这里的数据仅用于非高精度业务 - */ -public class GDLocationClient implements AMapLocationListener, IMogoGDLocationClient { - - private volatile static GDLocationClient gdLocationClient; - private static final byte[] obj = new byte[0]; - - public static GDLocationClient getInstance(Context context) { - if (gdLocationClient == null) { - synchronized (obj) { - if (gdLocationClient == null) { - gdLocationClient = new GDLocationClient(context); - } - } - } - return gdLocationClient; - } - - //声明LocationClient对象 - private AMapLocationClient mLocationClient; - private String mCityCode; - private AMapLocation mapLocation; - - private GDLocationClient(Context context) { - AMapLocationClient.updatePrivacyShow(context, true, true); - AMapLocationClient.updatePrivacyAgree(context, true); - try { - mLocationClient = new AMapLocationClient(context); - - //初始化定位参数 - //声明mLocationOption对象 - AMapLocationClientOption mLocationOption = new AMapLocationClientOption(); - //设置定位监听 - mLocationClient.setLocationListener(this); - //设置定位模式为高精度模式,Battery_Saving为低功耗模式,Device_Sensors是仅设备模式 - mLocationOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Hight_Accuracy); - //设置定位间隔,单位毫秒,默认为2000ms - mLocationOption.setInterval(1000); - //设置定位参数 - mLocationClient.setLocationOption(mLocationOption); - } catch (Exception e) { - e.printStackTrace(); - } - } - - @Override - public void start() { - if (mLocationClient != null) { - mLocationClient.startLocation(); - } - } - - @Override - public void stop() { - if (mLocationClient != null) { - mLocationClient.stopLocation(); - } - } - - @Override - public void onLocationChanged(AMapLocation aMapLocation) { - if (aMapLocation != null) { - mapLocation = aMapLocation; - String cityCode = aMapLocation.getCityCode(); - if (cityCode != null && !cityCode.isEmpty()) { - mCityCode = aMapLocation.getCityCode(); - SharedPrefsMgr.getInstance(AbsMogoApplication.getApp()) - .putString(SharedPrefsConstants.LOCATION_CITY_CODE, cityCode); - } - } - } - - @Override - public String getLastCityCode() { - return mCityCode; - } - - @Override - public double getLastLat() { - return mapLocation != null ? mapLocation.getLatitude() : 0.0; - } - - @Override - public double getLastLon() { - return mapLocation != null ? mapLocation.getLongitude() : 0.0; - } -} diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/location/GDLocationClient.kt b/libraries/mogo-map/src/main/java/com/mogo/map/location/GDLocationClient.kt new file mode 100644 index 0000000000..8945ded1cf --- /dev/null +++ b/libraries/mogo-map/src/main/java/com/mogo/map/location/GDLocationClient.kt @@ -0,0 +1,147 @@ +package com.mogo.map.location + +import android.content.Context +import com.amap.api.location.AMapLocation +import com.amap.api.location.AMapLocationClient +import com.amap.api.location.AMapLocationClientOption +import com.amap.api.location.AMapLocationListener +import com.mogo.commons.AbsMogoApplication +import com.mogo.commons.constants.SharedPrefsConstants +import com.mogo.eagle.core.data.map.MogoLocation +import com.mogo.eagle.core.function.call.map.CallerGaoDeMapLocationListenerManager +import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr +import com.mogo.eagle.core.utilcode.util.CoordinateTransform +import com.mogo.eagle.core.utilcode.util.TimeUtils + +/** + * 封装高德地图通过设备GPS获取到的位置信息,频率1s一次,坐标系为CJC20 + * 这里的数据仅用于非高精度业务 + */ +class GDLocationClient private constructor(context: Context) : AMapLocationListener, + IMogoGDLocationClient { + //声明LocationClient对象 + private lateinit var mLocationClient: AMapLocationClient + private var mCityCode: String = "" + private var mapLocation: AMapLocation? = null + + /** + * 最后一次高德定位返回的位置信息 + */ + private var lastGaoDeLocation: MogoLocation = MogoLocation() + + init { + AMapLocationClient.updatePrivacyShow(context, true, true) + AMapLocationClient.updatePrivacyAgree(context, true) + try { + mLocationClient = AMapLocationClient(context) + + //初始化定位参数 + //声明mLocationOption对象 + val mLocationOption = AMapLocationClientOption() + //设置定位监听 + mLocationClient.setLocationListener(this) + //设置定位模式为高精度模式,Battery_Saving为低功耗模式,Device_Sensors是仅设备模式 + mLocationOption.locationMode = AMapLocationClientOption.AMapLocationMode.Hight_Accuracy + //设置定位间隔,单位毫秒,默认为2000ms + mLocationOption.interval = 1000 + //设置定位参数 + mLocationClient.setLocationOption(mLocationOption) + } catch (e: Exception) { + e.printStackTrace() + } + } + + override fun start() { + if (mLocationClient != null) { + mLocationClient.startLocation() + } + } + + override fun stop() { + if (mLocationClient != null) { + mLocationClient.stopLocation() + } + } + + override fun onLocationChanged(aMapLocation: AMapLocation) { + // 更新GNSS 信息 + lastGaoDeLocation.lastReceiveTime = TimeUtils.getNowMills() + + // 将高德中的一些用于业务的数据进行融合,例如:CityCode、address等 + mapLocation?.let { + // 转换 GCJ02-->WGS84 坐标 + val wgs84Location = + CoordinateTransform.GCJ02ToWGS84(it.longitude, it.latitude) + + lastGaoDeLocation.longitude = wgs84Location[0] + lastGaoDeLocation.latitude = wgs84Location[1] + lastGaoDeLocation.heading = it.bearing.toDouble() + lastGaoDeLocation.gnssSpeed = it.speed + lastGaoDeLocation.altitude = it.altitude + lastGaoDeLocation.satelliteTime = it.time + lastGaoDeLocation.lastReceiveTime = TimeUtils.getNowMills() + + lastGaoDeLocation.locType = 1 // 定位类型为高德坐标(网路或者硬件定位) + lastGaoDeLocation.satellite = 4 + + lastGaoDeLocation.cityName = it.city + lastGaoDeLocation.cityCode = it.cityCode + lastGaoDeLocation.provider = it.provider + lastGaoDeLocation.address = it.address + lastGaoDeLocation.district = it.district + lastGaoDeLocation.province = it.province + lastGaoDeLocation.adCode = it.adCode + lastGaoDeLocation.locationDetail = it.locationDetail + lastGaoDeLocation.poiName = it.poiName + lastGaoDeLocation.aoiName = it.aoiName + lastGaoDeLocation.street = it.street + lastGaoDeLocation.streetNum = it.streetNum + lastGaoDeLocation.description = it.description + lastGaoDeLocation.buildingId = it.buildingId + lastGaoDeLocation.floor = it.floor + lastGaoDeLocation.errorCode = it.errorCode + lastGaoDeLocation.errorInfo = it.errorInfo + } + + // 回掉给监听者 + CallerGaoDeMapLocationListenerManager.invokeMoGoLocationChanged(lastGaoDeLocation) + + mapLocation = aMapLocation + val cityCode = aMapLocation.cityCode + if (cityCode != null && !cityCode.isEmpty()) { + mCityCode = aMapLocation.cityCode + SharedPrefsMgr.getInstance(AbsMogoApplication.getApp()) + .putString(SharedPrefsConstants.LOCATION_CITY_CODE, cityCode) + } + } + + override fun getLastCityCode(): String { + return mCityCode + } + + override fun getLastLat(): Double { + return if (mapLocation != null) mapLocation!!.latitude else 0.0 + } + + override fun getLastLon(): Double { + return if (mapLocation != null) mapLocation!!.longitude else 0.0 + } + + companion object { + @Volatile + private var gdLocationClient: GDLocationClient? = null + private val obj = ByteArray(0) + + @JvmStatic + fun getInstance(context: Context): GDLocationClient? { + if (gdLocationClient == null) { + synchronized(obj) { + if (gdLocationClient == null) { + gdLocationClient = GDLocationClient(context) + } + } + } + return gdLocationClient + } + } +} \ No newline at end of file From d99ee9ba6feeca3ee56ff7bd96240e1f92308f69 Mon Sep 17 00:00:00 2001 From: donghongyu Date: Tue, 21 Feb 2023 18:17:06 +0800 Subject: [PATCH 39/49] =?UTF-8?q?[dev=5Farch=5Fopt=5F3.0]=20[Change]=20[?= =?UTF-8?q?=201=E3=80=81=E8=A7=A3=E9=99=A4=E6=95=B0=E6=8D=AE=E4=B8=AD?= =?UTF-8?q?=E5=BF=83=E5=AF=B9=E9=AB=98=E5=BE=B7=E5=9C=B0=E5=9B=BE=E7=9A=84?= =?UTF-8?q?=E4=BE=9D=E8=B5=96=20]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: donghongyu --- .../core/function/startup/stageone/HttpDnsStartUp.kt | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) 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 a5ad0ae66e..34b96faae4 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 @@ -141,8 +141,9 @@ class HttpDnsStartUp : AndroidStartup() { } if (mogoLocation != null && mogoLocation.latitude != 0.0 && mogoLocation.longitude != 0.0) { // 更新 - httpDnsSimpleLocation = if (mogoLocation.cityCode.isNullOrEmpty() - && !CallerMapUIServiceManager.getGDLocationServer(context!!)?.lastCityCode.isNullOrEmpty() + httpDnsSimpleLocation = if ( + mogoLocation.cityCode.isNullOrEmpty() && + !CallerMapUIServiceManager.getGDLocationServer(context!!)?.lastCityCode.isNullOrEmpty() ) { HttpDnsSimpleLocation( CallerMapUIServiceManager.getGDLocationServer(context!!)?.lastCityCode @@ -233,7 +234,7 @@ class HttpDnsStartUp : AndroidStartup() { } private fun startSocketService() { - CallerLogger.d("$M_MAIN$TAG","startSocketService") + CallerLogger.d("$M_MAIN$TAG", "startSocketService") val location = CallerChassisLocationGCJ02ListenerManager.getChassisLocationGCJ02() MogoAiCloudSocketManager.getInstance(context) .registerLifecycleListener(10020, object : IMogoLifecycleListener { @@ -306,7 +307,10 @@ class HttpDnsStartUp : AndroidStartup() { clientPkFileName = "sn" ) private fun reConnectSocket(oldCityCode: String, newCityCode: String) { - CallerLogger.d("$M_MAIN$TAG", "reConnectSocket oldCityCode : $oldCityCode , newCityCode : $newCityCode") + CallerLogger.d( + "$M_MAIN$TAG", + "reConnectSocket oldCityCode : $oldCityCode , newCityCode : $newCityCode" + ) MogoAiCloudSocketManager.getInstance(context).reConnect() } From 1b1724668c9cbbe90ecfdcdc46c0810e1d3518f4 Mon Sep 17 00:00:00 2001 From: lixiaopeng Date: Tue, 21 Feb 2023 18:33:27 +0800 Subject: [PATCH 40/49] =?UTF-8?q?[dev=5Farch=5Fopt=5F3.0]=20=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E9=AD=94=E6=96=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../function/biz/v2x/v2n/consts/V2XConst.java | 2 +- .../mofang/MoFangManager.kt | 233 +++++++++++++++++- .../function/hmi/ui/setting/SOPSettingView.kt | 1 - .../function/main/MainLauncherActivity.java | 228 +---------------- .../api/mofang/IMoGoMoFangListener.kt | 17 ++ .../mofang/CallerMofangListenerManager.kt | 21 ++ 6 files changed, 275 insertions(+), 227 deletions(-) create mode 100644 core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/mofang/IMoGoMoFangListener.kt create mode 100644 core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/mofang/CallerMofangListenerManager.kt diff --git a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/consts/V2XConst.java b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/consts/V2XConst.java index c2f4fd35d5..049d25ada1 100644 --- a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/consts/V2XConst.java +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/consts/V2XConst.java @@ -20,6 +20,6 @@ public class V2XConst { /** * V2X预警日志tag */ - public static final String LOG_NAME_WARN = "liyz"; + public static final String LOG_NAME_WARN = "PersonWarn"; } diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/mofang/MoFangManager.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/mofang/MoFangManager.kt index 23a07755f4..2d2f43601e 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/mofang/MoFangManager.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/mofang/MoFangManager.kt @@ -7,18 +7,33 @@ import android.content.BroadcastReceiver import android.content.Context import android.content.Intent import android.content.IntentFilter +import android.view.KeyEvent +import com.mogo.commons.context.ContextHolderUtil import com.mogo.eagle.core.data.mofang.MfConstants +import com.mogo.eagle.core.function.api.mofang.IMoGoMoFangListener +import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager.sendOperatorChangeLaneLeft +import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager.sendOperatorChangeLaneRight +import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager.sendOperatorSetAcceleratedSpeed +import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager.sendOperatorSetHorn +import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager.startAutoPilot +import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsListenerManager.invokeMoFangStatus +import com.mogo.eagle.core.function.call.mofang.CallerMofangListenerManager import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.e import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_F import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr +import com.mogo.eagle.core.utilcode.util.ToastUtils +import com.mogo.eagle.core.utilcode.util.UiThreadHandler +import java.util.* /** * 魔方连接状态和设备管理 */ @SuppressLint("StaticFieldLeak") -class MoFangManager private constructor() { +class MoFangManager private constructor() : IMoGoMoFangListener{ companion object { val moFangManager: MoFangManager by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { @@ -31,6 +46,29 @@ class MoFangManager private constructor() { private lateinit var mBluetoothAdapter: BluetoothAdapter private var isMfConnect: Boolean = false //添加状态判断 + private val isShowToast = false //toast 控制,自测使用 + private var startPressTime: Long = 0 //开始按键时间 + private var isPressEnd = false //按键是否结束 + @Volatile + private var isCombinationKey = 0 //是否是组合按键 1单击,2长按,3组合 + private var pressADownTime: Long = 0 + private var pressAUpTime: Long = 0 + private var pressBDownTime: Long = 0 + private var pressBUpTime: Long = 0 + private var pressCDownTime: Long = 0 + private var pressCUpTime: Long = 0 + private var pressDDownTime: Long = 0 + private var pressDUpTime: Long = 0 + private var pressEDownTime: Long = 0 + private var pressEUpTime: Long = 0 + + private val clickTime = 300 //单击 + private val clickTimeInterval = 330 + private val longPressTime = 670 + private val longPressTimeInterval = 700 + private var timerHorn: Timer? = null + private var timerAcc: Timer? = null + fun init(context: Context) { mContext = context @@ -41,6 +79,12 @@ class MoFangManager private constructor() { } mBluetoothAdapter.startDiscovery() showBondedDevice(mBluetoothAdapter) + + CallerMofangListenerManager.addListener(TAG, this) + } + + fun release() { + CallerMofangListenerManager.removeListener(TAG) } /** @@ -89,7 +133,7 @@ class MoFangManager private constructor() { private val bluetoothMonitorReceiver: BroadcastReceiver = object : BroadcastReceiver() { override fun onReceive(context: Context, intent: Intent) { when (intent.action) { - BluetoothAdapter.ACTION_STATE_CHANGED -> { //中间状态 TODO + BluetoothAdapter.ACTION_STATE_CHANGED -> { //中间状态 CallerLogger.d("$M_F${TAG}","bluetoothMonitorReceiver ACTION_STATE_CHANGED action = ${intent.action}") } @@ -115,5 +159,190 @@ class MoFangManager private constructor() { } } + /** + * 魔方按键处理 + */ + override fun onMofangHandle(keyCode: Int, action: Int): Boolean { + val bluetoothName = SharedPrefsMgr.getInstance(ContextHolderUtil.getContext()).getString(MfConstants.BLUETOOTH_NAME) + if (bluetoothName == "MINI_KEYBOARD") { + if (!isPressEnd) { + isPressEnd = true + startPressTime = System.currentTimeMillis() + } + e(M_F + "MoFangManager", + "dispatchKeyEvent ------ bluetoothName = $bluetoothName ---code = $keyCode -----action = $action ") + if (keyCode == KeyEvent.KEYCODE_A) { //单击 -1,长按无操作,AB组合-2 + if (action == KeyEvent.ACTION_DOWN) { + pressADownTime = System.currentTimeMillis() + d(M_F + "MoFangManager", + "dispatchKeyEvent A down pressADownTime = " + pressADownTime + "---" + (pressADownTime - startPressTime) + "----isCombinationKey = " + isCombinationKey + "--pressBDownTime = " + pressBDownTime) + if (pressADownTime - startPressTime in (clickTimeInterval + 1) until longPressTime && pressBDownTime > 0) { + if (isShowToast) { + ToastUtils.showShort("方块 A 按AB组合 +1 ") + } + sendAcc(true, +1.0) + isCombinationKey = 3 + } + if (isCombinationKey != 3 && isCombinationKey != 1) { + if (pressADownTime - startPressTime > longPressTimeInterval) { + if (isShowToast) { + ToastUtils.showShort("方块 长按A -2 ") + } + sendAcc(true, -2.0) + isCombinationKey = 2 + } + } + } else if (action == KeyEvent.ACTION_UP) { + pressAUpTime = System.currentTimeMillis() + d(M_F + "MoFangManager", + "dispatchKeyEvent A up pressAUpTime = " + pressAUpTime + "---" + (pressAUpTime - startPressTime) + "--pressBDownTime = " + pressBDownTime + "---isCombinationKey = $isCombinationKey") + if (pressAUpTime - startPressTime < clickTime && isCombinationKey != 3) { + isCombinationKey = 1 + if (isShowToast) { + ToastUtils.showShort("方块 单击A -1 ") + } + sendAcc(true, -1.0) + } + pressADownTime = 0 + isPressEnd = false + UiThreadHandler.postDelayed({ isCombinationKey = 0 }, 300) + } + } else if (keyCode == KeyEvent.KEYCODE_B) { //单击复原,长按+1,AB组合-2 + if (action == KeyEvent.ACTION_DOWN) { + pressBDownTime = System.currentTimeMillis() + d(M_F + "MoFangManager", + "dispatchKeyEvent B down pressBDownTime = " + pressBDownTime + "--差-" + (pressBDownTime - startPressTime) + "---isCombinationKey = " + isCombinationKey + "--pressADownTime = " + pressADownTime + ) + if (pressBDownTime - startPressTime > clickTimeInterval && pressBDownTime - startPressTime < longPressTime && pressADownTime > 0) { + if (isShowToast) { + ToastUtils.showShort("方块 B 按AB组合 +1 ") + } + sendAcc(true, +1.0) + isCombinationKey = 3 + } + if (isCombinationKey != 3 && isCombinationKey != 1) { + if (pressBDownTime - startPressTime > longPressTimeInterval) { + if (isShowToast) { + ToastUtils.showShort("方块 长按B 无操作 ") + } + isCombinationKey = 2 + } + } + } else if (action == KeyEvent.ACTION_UP) { + pressBUpTime = System.currentTimeMillis() + d(M_F + "MoFangManager", + "dispatchKeyEvent B up pressBUpTime = " + pressBUpTime + "--差-" + (pressBUpTime - startPressTime) + "--pressADownTime = " + pressADownTime + "----isCombinationKey = $isCombinationKey") + if (pressBUpTime - startPressTime < clickTime && isCombinationKey != 3) { + if (isShowToast) { + ToastUtils.showShort("方块 单击B 0 ") + } + sendAcc(false, 0.0) + isCombinationKey = 1 + } + pressBDownTime = 0 + isPressEnd = false + UiThreadHandler.postDelayed({ isCombinationKey = 0 }, 300) + } + } else if (keyCode == KeyEvent.KEYCODE_C) { //单击左变道,长按无操作 + if (action == KeyEvent.ACTION_DOWN) { + pressCDownTime = System.currentTimeMillis() + d(M_F + "MoFangManager", + "dispatchKeyEvent 方块 长按C 无操作 time dif = " + (pressCDownTime - startPressTime)) + if (pressCDownTime - startPressTime > longPressTimeInterval) { + if (isShowToast) { + ToastUtils.showShort("方块 长按C 无操作 ") + } + } + } else if (action == KeyEvent.ACTION_UP) { + pressCUpTime = System.currentTimeMillis() + isPressEnd = false + d(M_F + "MoFangManager", + "dispatchKeyEvent 方块 单击C ← 向左变道 time dif = " + (pressCUpTime - startPressTime)) + if (pressCUpTime - startPressTime < clickTime) { + if (isShowToast) { + ToastUtils.showShort("方块 单击C ← 向左变道 ") + } + sendOperatorChangeLaneLeft() + } + } + } else if (keyCode == KeyEvent.KEYCODE_D) { //单击向右变道,双击无操作 + if (action == KeyEvent.ACTION_DOWN) { + pressDDownTime = System.currentTimeMillis() + d(M_F + "MoFangManager", + "dispatchKeyEvent 方块 长按D 无操作 time dif = " + (pressDDownTime - startPressTime)) + if (pressDDownTime - startPressTime > longPressTimeInterval) { + if (isShowToast) { + ToastUtils.showShort("方块 长按D 无操作 ") + } + } + } else if (action == KeyEvent.ACTION_UP) { + pressDUpTime = System.currentTimeMillis() + isPressEnd = false + d(M_F + "MoFangManager", + "dispatchKeyEvent 方块 单击D → 向右变道 time dif = " + (pressDUpTime - startPressTime)) + if (pressDUpTime - startPressTime < clickTime) { + if (isShowToast) { + ToastUtils.showShort("方块 单击D → 向右变道 ") + } + sendOperatorChangeLaneRight() + } + } + } else if (keyCode == KeyEvent.KEYCODE_E) { //单击启动自驾,长按鸣笛 + if (action == KeyEvent.ACTION_DOWN) { + pressEDownTime = System.currentTimeMillis() + d(M_F + "MoFangManager", + "dispatchKeyEvent 方块 长按E 鸣笛 time dif = " + (pressEDownTime - startPressTime)) + if (pressEDownTime - startPressTime > longPressTimeInterval) { + if (isShowToast) { + ToastUtils.showShort("方块 长按E 鸣笛 ") + } + sendOperatorSetHorn(1.0) + if (timerHorn == null) { + timerHorn = Timer() + } + timerHorn!!.schedule(object : TimerTask() { + override fun run() { + sendOperatorSetHorn(2.0) + timerHorn = null + } + }, 500) + } + } else if (action == KeyEvent.ACTION_UP) { + pressEUpTime = System.currentTimeMillis() + isPressEnd = false + d(M_F + "MoFangManager", + "方块 单击E 开启自动驾驶 time dif = " + (pressEUpTime - startPressTime)) + if (pressEUpTime - startPressTime < clickTime) { + if (isShowToast) { + ToastUtils.showShort("方块 单击E 开启自动驾驶 ") + } + startAutoPilot(getAutoPilotStatusInfo().autopilotControlParameters) + } + } + } + } + return true + } + + @Synchronized + private fun sendAcc(isSend: Boolean, acc: Double) { + if (isSend) { + if (timerAcc == null) { + timerAcc = Timer() + timerAcc!!.schedule(object : TimerTask() { + override fun run() { + sendOperatorSetAcceleratedSpeed(acc) + } + }, 0, 500) + } + } else { + if (timerAcc != null) { + timerAcc!!.cancel() + timerAcc = null + } + sendOperatorSetAcceleratedSpeed(acc) + } + } + } diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/SOPSettingView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/SOPSettingView.kt index 2b6dadfb77..d7f34d5901 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/SOPSettingView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/SOPSettingView.kt @@ -117,7 +117,6 @@ internal class SOPSettingView @JvmOverloads constructor( tbObuToDcView.setOnCheckedChangeListener { _, isChecked -> // 默认开启 HmiBuildConfig.isShowObuToDcV2iView = !isChecked -// Log.d("liyz", "HmiBuildConfig.isShowObuToDcV2iView = " + HmiBuildConfig.isShowObuToDcV2iView) } //红绿灯标识 diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/MainLauncherActivity.java b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/MainLauncherActivity.java index a80465d6a3..7049008ae7 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/MainLauncherActivity.java +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/MainLauncherActivity.java @@ -3,7 +3,6 @@ package com.mogo.eagle.core.function.main; import static com.mogo.eagle.core.data.deva.chain.ChainConstant.CHAIN_ALIAS_CODE_START_UP; import static com.mogo.eagle.core.data.deva.chain.ChainConstant.CHAIN_LINK_INIT; import static com.mogo.eagle.core.data.deva.chain.ChainConstant.CHAIN_LINK_LOG_CONNECT_STATUS; -import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_F; import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_HMI; import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_MAIN; @@ -21,20 +20,15 @@ import com.mogo.commons.debug.DebugConfig; import com.mogo.commons.module.intent.IMogoIntentListener; import com.mogo.commons.module.intent.IntentManager; import com.mogo.eagle.core.data.config.FunctionBuildConfig; -import com.mogo.eagle.core.data.mofang.MfConstants; import com.mogo.eagle.core.function.api.base.IMoGoFunctionProvider; import com.mogo.eagle.core.function.api.setting.IMoGoSkinModeChangeListener; -import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager; -import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager; +import com.mogo.eagle.core.function.call.mofang.CallerMofangListenerManager; import com.mogo.eagle.core.function.call.setting.CallerSkinModeListenerManager; import com.mogo.eagle.core.function.hmi.R; import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; -import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr; import com.mogo.eagle.core.utilcode.util.ActivityUtils; import com.mogo.eagle.core.utilcode.util.MultiDisplayUtils; -import com.mogo.eagle.core.utilcode.util.ToastUtils; -import com.mogo.eagle.core.utilcode.util.UiThreadHandler; import com.rousetime.android_startup.model.CostTimesModel; import com.zhjt.service.chain.ChainLog; import com.zhjt.service.chain.TracingConstants; @@ -43,8 +37,6 @@ import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.Subscribe; import java.util.List; -import java.util.Timer; -import java.util.TimerTask; /** * 针对作为Launcher的情况,做个性化操作 @@ -57,31 +49,6 @@ public class MainLauncherActivity extends MainActivity implements IMogoIntentLis private final static Handler handlerV2XEvent = new Handler(); private static Runnable runnableV2XEvent; - private volatile double accelerated;//加速度 - private Timer timerHorn; - private Timer timerAcc; - - private boolean isShowToast = false; //toast 控制 - private long startPressTime = 0; //开始按减时间 - private boolean isPressEnd = false; //按键是否结束 - private volatile int isCombinationKey = 0; //是否是组合按键 1单击,2长按,3组合 - private long pressADownTime = 0; - private long pressAUpTime = 0; - private long pressBDownTime = 0; - private long pressBUpTime = 0; - private long pressCDownTime = 0; - private long pressCUpTime = 0; - private long pressDDownTime = 0; - private long pressDUpTime = 0; - private long pressEDownTime = 0; - private long pressEUpTime = 0; - - private int clickTime = 300; //单击 - private int clickTimeInterval = 330; - private int longPressTime = 670; - private int longPressTimeInterval = 700; - - @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -240,200 +207,15 @@ public class MainLauncherActivity extends MainActivity implements IMogoIntentLis */ @Override public boolean dispatchKeyEvent(KeyEvent event) { - CallerLogger.INSTANCE.d(M_F + "MoFangManager", "dispatchKeyEvent code = " + event.getKeyCode() + "--action = " + event.getAction() + "----" + event); - String bluetoothName = SharedPrefsMgr.getInstance(getContext()).getString(MfConstants.BLUETOOTH_NAME); - if (!isPressEnd) { - CallerLogger.INSTANCE.d(M_F + "MoFangManager","dispatchKeyEvent ---1--- bluetoothName = " + bluetoothName); + if(CallerMofangListenerManager.INSTANCE.invokeMofangHandle(event.getKeyCode(), event.getAction())) { + return true; + } else { + return super.dispatchKeyEvent(event); } - if (bluetoothName.equals("MINI_KEYBOARD")) { - if (!isPressEnd) { - isPressEnd = true; - startPressTime = System.currentTimeMillis(); - } - CallerLogger.INSTANCE.d(M_F + "MoFangManager","dispatchKeyEvent ---2--- bluetoothName = " + bluetoothName + "--- code = " + event.getKeyCode() + "--action = " + event.getAction()); - if (event.getKeyCode() == KeyEvent.KEYCODE_A) { //单击 -1,长按无操作,AB组合-2 - if (event.getAction() == KeyEvent.ACTION_DOWN) { - pressADownTime = System.currentTimeMillis(); - CallerLogger.INSTANCE.d(M_F + "MoFangManager", "dispatchKeyEvent A down pressADownTime = " + pressADownTime + "---" + (pressADownTime - startPressTime) + "----isCombinationKey = " + isCombinationKey + "--pressBDownTime = " + pressBDownTime); - if ((pressADownTime - startPressTime) > clickTimeInterval && (pressADownTime - startPressTime) < longPressTime && pressBDownTime > 0) { - if (isShowToast) { - ToastUtils.showShort("方块 A 按AB组合 +1 "); - } - sendAcc(true, +1); - isCombinationKey = 3; - } - - if (isCombinationKey != 3 && isCombinationKey != 1) { - if ((pressADownTime - startPressTime) > longPressTimeInterval) { - if (isShowToast) { - ToastUtils.showShort("方块 长按A -2 "); - } - sendAcc(true, -2); - isCombinationKey = 2; - } - } - } else if (event.getAction() == KeyEvent.ACTION_UP) { - pressAUpTime = System.currentTimeMillis(); - CallerLogger.INSTANCE.d(M_F + "MoFangManager", "dispatchKeyEvent A up pressAUpTime = " + pressAUpTime + "---" + (pressAUpTime - startPressTime) + "--pressBDownTime = " + pressBDownTime); - if ((pressAUpTime - startPressTime) < clickTime && isCombinationKey != 3) { - isCombinationKey = 1; - if (isShowToast) { - ToastUtils.showShort("方块 单击A -1 "); - } - sendAcc(true, -1); - } - pressADownTime = 0; - isPressEnd = false; - UiThreadHandler.postDelayed(new Runnable() { - @Override - public void run() { - isCombinationKey = 0; - } - }, 300); - } - return true; - } else if (event.getKeyCode() == KeyEvent.KEYCODE_B) { //单击复原,长按+1,AB组合-2 - if (event.getAction() == KeyEvent.ACTION_DOWN) { - pressBDownTime = System.currentTimeMillis(); - CallerLogger.INSTANCE.d(M_F + "MoFangManager", "dispatchKeyEvent B down pressBDownTime = " + pressBDownTime + "--差-" + (pressBDownTime - startPressTime) + "---isCombinationKey = " + isCombinationKey + "--pressADownTime = " + pressADownTime); - if ((pressBDownTime - startPressTime) > clickTimeInterval && (pressBDownTime - startPressTime) < longPressTime && pressADownTime > 0) { - if (isShowToast) { - ToastUtils.showShort("方块 B 按AB组合 +1 "); - } - sendAcc(true, +1); - isCombinationKey = 3; - } - if (isCombinationKey != 3 && isCombinationKey != 1) { - if ((pressBDownTime - startPressTime) > longPressTimeInterval) { - if (isShowToast) { - ToastUtils.showShort("方块 长按B 无操作 "); - } - isCombinationKey = 2; - } - } - } else if (event.getAction() == KeyEvent.ACTION_UP) { - pressBUpTime = System.currentTimeMillis(); - CallerLogger.INSTANCE.d(M_F + "MoFangManager", "dispatchKeyEvent B up pressBUpTime = " + pressBUpTime + "--差-" + (pressBUpTime - startPressTime) + "--pressADownTime = " + pressADownTime); - if ((pressBUpTime - startPressTime) < clickTime && isCombinationKey != 3) { - if (isShowToast) { - ToastUtils.showShort("方块 单击B 0 "); - } - sendAcc(false, 0.0); - isCombinationKey = 1; - } - pressBDownTime = 0; - isPressEnd = false; - - UiThreadHandler.postDelayed(new Runnable() { - @Override - public void run() { - isCombinationKey = 0; - } - }, 300); - } - return true; - } else if (event.getKeyCode() == KeyEvent.KEYCODE_C) { //单击左变道,长按无操作 - if (event.getAction() == KeyEvent.ACTION_DOWN) { - pressCDownTime = System.currentTimeMillis(); - CallerLogger.INSTANCE.d(M_F + "MoFangManager", "dispatchKeyEvent 方块 长按C 无操作 time dif = " + (pressCDownTime - startPressTime)); - if ((pressCDownTime - startPressTime) > longPressTimeInterval) { - if (isShowToast) { - ToastUtils.showShort("方块 长按C 无操作 "); - } - } - } else if (event.getAction() == KeyEvent.ACTION_UP) { - pressCUpTime = System.currentTimeMillis(); - isPressEnd = false; - CallerLogger.INSTANCE.d(M_F + "MoFangManager", "dispatchKeyEvent 方块 单击C ← 向左变道 time dif = " + (pressCUpTime - startPressTime)); - if ((pressCUpTime - startPressTime) < clickTime) { - if (isShowToast) { - ToastUtils.showShort("方块 单击C ← 向左变道 "); - } - CallerAutoPilotControlManager.INSTANCE.sendOperatorChangeLaneLeft(); - } - } - return true; - } else if (event.getKeyCode() == KeyEvent.KEYCODE_D) { //单击向右变道,双击无操作 - if (event.getAction() == KeyEvent.ACTION_DOWN) { - pressDDownTime = System.currentTimeMillis(); - CallerLogger.INSTANCE.d(M_F + "MoFangManager", "dispatchKeyEvent 方块 长按D 无操作 time dif = " + (pressDDownTime - startPressTime)); - if ((pressDDownTime - startPressTime) > longPressTimeInterval) { - if (isShowToast) { - ToastUtils.showShort("方块 长按D 无操作 "); - } - } - } else if (event.getAction() == KeyEvent.ACTION_UP) { - pressDUpTime = System.currentTimeMillis(); - isPressEnd = false; - CallerLogger.INSTANCE.d(M_F + "MoFangManager", "dispatchKeyEvent 方块 单击D → 向右变道 time dif = " + (pressDUpTime - startPressTime)); - if ((pressDUpTime - startPressTime) < clickTime) { - if (isShowToast) { - ToastUtils.showShort("方块 单击D → 向右变道 "); - } - CallerAutoPilotControlManager.INSTANCE.sendOperatorChangeLaneRight(); - } - } - return true; - } else if (event.getKeyCode() == KeyEvent.KEYCODE_E) { //单击启动自驾,长按鸣笛 - if (event.getAction() == KeyEvent.ACTION_DOWN) { - pressEDownTime = System.currentTimeMillis(); - CallerLogger.INSTANCE.d(M_F + "MoFangManager", "dispatchKeyEvent 方块 长按E 鸣笛 time dif = " + (pressEDownTime - startPressTime)); - if ((pressEDownTime - startPressTime) > longPressTimeInterval) { - if (isShowToast) { - ToastUtils.showShort("方块 长按E 鸣笛 "); - } - CallerAutoPilotControlManager.INSTANCE.sendOperatorSetHorn(1); - if (timerHorn == null) { - timerHorn = new Timer(); - } - timerHorn.schedule(new TimerTask() { - @Override - public void run() { - CallerAutoPilotControlManager.INSTANCE.sendOperatorSetHorn(2); - timerHorn = null; - } - }, 500); - } - } else if (event.getAction() == KeyEvent.ACTION_UP) { - pressEUpTime = System.currentTimeMillis(); - isPressEnd = false; - CallerLogger.INSTANCE.d(M_F + "MoFangManager", "方块 单击E 开启自动驾驶 time dif = " + (pressEUpTime - startPressTime)); - if ((pressEUpTime - startPressTime) < clickTime) { - if (isShowToast) { - ToastUtils.showShort("方块 单击E 开启自动驾驶 "); - } - CallerAutoPilotControlManager.INSTANCE.startAutoPilot(CallerAutoPilotStatusListenerManager.INSTANCE.getAutoPilotStatusInfo().getAutopilotControlParameters()); - } - } - return true; - } - } - return super.dispatchKeyEvent(event); } @Override public void onSkinModeChange(int skinMode) { } - private synchronized void sendAcc(boolean isSend, double acc) { - if (isSend) { - accelerated = acc; - if (timerAcc == null) { - timerAcc = new Timer(); - timerAcc.schedule(new TimerTask() { - @Override - public void run() { - CallerAutoPilotControlManager.INSTANCE.sendOperatorSetAcceleratedSpeed(accelerated); - } - }, 0, 500); - } - } else { - if (timerAcc != null) { - timerAcc.cancel(); - timerAcc = null; - } - CallerAutoPilotControlManager.INSTANCE.sendOperatorSetAcceleratedSpeed(acc); - } - } - } diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/mofang/IMoGoMoFangListener.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/mofang/IMoGoMoFangListener.kt new file mode 100644 index 0000000000..802113f5dc --- /dev/null +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/mofang/IMoGoMoFangListener.kt @@ -0,0 +1,17 @@ +package com.mogo.eagle.core.function.api.mofang + + +/** + * 魔方数据的数据处理 + * @author lixiaopeng + * @date 2023-02-20 + */ +interface IMoGoMoFangListener { + /** + * 魔方数据的数据处理 + * @param keyCode 按键类型 + * @param action 按键状态 + */ + fun onMofangHandle(keyCode: Int, action: Int): Boolean + +} \ No newline at end of file diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/mofang/CallerMofangListenerManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/mofang/CallerMofangListenerManager.kt new file mode 100644 index 0000000000..0464d323e1 --- /dev/null +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/mofang/CallerMofangListenerManager.kt @@ -0,0 +1,21 @@ +package com.mogo.eagle.core.function.call.mofang + +import com.mogo.eagle.core.function.api.mofang.IMoGoMoFangListener +import com.mogo.eagle.core.function.call.base.CallerBase + +/** + * 魔方按键的处理 + */ +object CallerMofangListenerManager : CallerBase() { + fun invokeMofangHandle(keyCode: Int, action: Int): Boolean { + var isConsume = false + M_LISTENERS.forEach { + val tag = it.key + val listener = it.value + if (listener.onMofangHandle(keyCode, action)) + isConsume = true + } + return isConsume + } + +} \ No newline at end of file From daf12ce529aff0b7227d3e93d100fc162d808ba4 Mon Sep 17 00:00:00 2001 From: lixiaopeng Date: Tue, 21 Feb 2023 18:45:50 +0800 Subject: [PATCH 41/49] =?UTF-8?q?[dev=5Farch=5Fopt=5F3.0]=20=E5=88=A0?= =?UTF-8?q?=E9=99=A4=E5=A4=9A=E4=BD=99=E5=BC=95=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/function/datacenter/obu/MoGoObuProvider.kt | 3 --- .../function/datacenter/obu/MogoObuDcCombineManager.kt | 4 ---- .../function/datacenter/obu/MogoPrivateObuNewManager.kt | 9 --------- 3 files changed, 16 deletions(-) diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MoGoObuProvider.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MoGoObuProvider.kt index 0e6f1f200d..3e55c6a63f 100644 --- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MoGoObuProvider.kt +++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MoGoObuProvider.kt @@ -2,16 +2,13 @@ package com.mogo.eagle.core.function.datacenter.obu import android.content.Context import com.alibaba.android.arouter.facade.annotation.Route -import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.data.constants.MoGoConfig import com.mogo.eagle.core.data.constants.MogoServicePaths import com.mogo.eagle.core.function.api.obu.IMoGoObuProvider -import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_OBU import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr import com.mogo.eagle.core.utilcode.util.CommonUtils -import com.mogo.support.obu.MogoObuManager /** * @author xiaoyuzhou diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoObuDcCombineManager.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoObuDcCombineManager.kt index d97e5a1c5d..c5e9c8b345 100644 --- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoObuDcCombineManager.kt +++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoObuDcCombineManager.kt @@ -6,16 +6,12 @@ import com.mogo.eagle.core.data.enums.DataSourceType import com.mogo.eagle.core.data.enums.EventTypeEnumNew import com.mogo.eagle.core.data.enums.TrafficLightEnum import com.mogo.eagle.core.data.enums.WarningDirectionEnum -import com.mogo.eagle.core.data.msgbox.MsgBoxBean -import com.mogo.eagle.core.data.msgbox.MsgBoxType -import com.mogo.eagle.core.data.msgbox.V2XMsg import com.mogo.eagle.core.function.api.obu.IMoGoObuWarningMapListener import com.mogo.eagle.core.function.api.obu.IMoGoObuWarningRsiListener import com.mogo.eagle.core.function.api.obu.IMoGoObuWarningRsmListener import com.mogo.eagle.core.function.api.obu.IMoGoObuWarningSpatListener import com.mogo.eagle.core.function.call.hmi.CallerHmiManager import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager -import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxManager import com.mogo.eagle.core.function.call.obu.* import com.mogo.eagle.core.function.call.v2x.CallerLimitingVelocityListenerManager import com.mogo.eagle.core.function.call.v2x.CallerTrafficLightListenerManager diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoPrivateObuNewManager.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoPrivateObuNewManager.kt index 3dcdaea07f..ec299f6d9c 100644 --- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoPrivateObuNewManager.kt +++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoPrivateObuNewManager.kt @@ -4,18 +4,13 @@ import android.content.Context import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.data.config.HmiBuildConfig import com.mogo.eagle.core.data.enums.* -import com.mogo.eagle.core.data.msgbox.MsgBoxBean -import com.mogo.eagle.core.data.msgbox.MsgBoxType -import com.mogo.eagle.core.data.msgbox.V2XMsg import com.mogo.eagle.core.function.api.hmi.warning.IMoGoWarningStatusListener import com.mogo.eagle.core.function.api.map.angle.Default import com.mogo.eagle.core.function.api.map.angle.TooClose import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager -import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotIdentifyListenerManager import com.mogo.eagle.core.function.call.hmi.CallerHmiManager import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager import com.mogo.eagle.core.function.call.map.CallerVisualAngleManager -import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxManager import com.mogo.eagle.core.function.call.obu.CallerObuConnectListenerManager import com.mogo.eagle.core.function.call.obu.CallerObuLocationWGS84ListenerManager import com.mogo.eagle.core.function.call.obu.CallerObuSaveMessageListenerManager @@ -856,10 +851,6 @@ class MogoPrivateObuNewManager private constructor() { 1 -> {//闯红灯 V2I_RLVW_VIOLATION_TYPE_RUNNING_RED_LIGHT 一个红灯周期只显示一次 if (!isShowRunRedLight) { isShowRunRedLight = true - CallerLogger.d( - "$M_OBU${MogoObuConst.TAG_MOGO_NEW_OBU}", - "changeTrafficLightStatus 闯红灯 --------> " - ) ttsContent = EventTypeEnumNew.getWarningTts(EventTypeEnumNew.TYPE_USECASE_ID_IVP_RED.poiType) alertContent = From 70630f2d5a55cbf8dece225868210250466da5a4 Mon Sep 17 00:00:00 2001 From: zhongchao Date: Tue, 21 Feb 2023 14:26:20 +0800 Subject: [PATCH 42/49] [2.13.0-arch-opt] update socket ai cloud sdk version --- README.md | 1 - app/build.gradle | 1 - config.gradle | 6 ---- .../mogo-core-function-map/consumer-rules.pro | 1 - gradle.properties | 28 ++++++------------- 5 files changed, 9 insertions(+), 28 deletions(-) diff --git a/README.md b/README.md index 34b016a07e..699ee30b1b 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,6 @@ repositories { mogo-och 使用到的依赖 implementation "com.mogo.commons:mogo-utils:2.0.63" implementation "com.mogo.commons:mogo-commons:2.0.63" -implementation "com.mogo.module:module-common:2.0.63" implementation "com.mogo.eagle.core:data:0.0.6" implementation "com.mogo.eagle.core.function:call:0.0.6" diff --git a/app/build.gradle b/app/build.gradle index f9c79c925d..38eaa76d91 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -356,7 +356,6 @@ dependencies { implementation rootProject.ext.dependencies.mogocommons implementation rootProject.ext.dependencies.mogo_core_utils implementation rootProject.ext.dependencies.mogo_core_function_map - implementation rootProject.ext.dependencies.mogo_core_function_v2x implementation rootProject.ext.dependencies.mogo_core_function_datacenter implementation rootProject.ext.dependencies.mogo_core_function_devatools implementation rootProject.ext.dependencies.mogo_core_function_chat diff --git a/config.gradle b/config.gradle index fab8cfd576..fd51e09b27 100644 --- a/config.gradle +++ b/config.gradle @@ -125,10 +125,6 @@ ext { mogocustommap : "com.zhidaoauto.machine:map:${MAP_SDK_VERSION}", mogocustommapoperational : "com.zhidaoauto.map:operational:${MAP_SDK_OPERATION_VERSION}", - modulemap : "com.mogo.module:module-map:${MOGO_MODULE_MAP_VERSION}", - - // V2X - moduleV2x : "com.mogo.module:module-v2x:${MOGO_MODULE_V2X_VERSION}", // 基础服务实现 mogowebsocket : "com.mogo.module.carchatting:module-carchatt-socket:${WEBSOCKET_VERSION}", mogologlib : "com.mogo.module:module-loglib:${LOGLIB_VERSION}", @@ -169,8 +165,6 @@ ext { mogo_core_function_devatools : "com.mogo.eagle.core.function.impl:devatools:${MOGO_CORE_FUNCTION_DEVATOOLS_VERSION}", mogo_core_function_hmi : "com.mogo.eagle.core.function.impl:hmi:${MOGO_CORE_FUNCTION_HMI_VERSION}", mogo_core_function_map : "com.mogo.eagle.core.function.impl:map:${MOGO_CORE_FUNCTION_MAP_VERSION}", - mogo_core_function_obu_mogo : "com.mogo.eagle.core.function.impl:obu-mogo:${MOGO_CORE_FUNCTION_OBU_MOGO_VERSION}", - mogo_core_function_v2x : "com.mogo.eagle.core.function.impl:v2x:${MOGO_CORE_FUNCTION_V2X_VERSION}", mogo_core_function_api : "com.mogo.eagle.core.function:api:${MOGO_CORE_FUNCTION_API_VERSION}", mogo_core_function_call : "com.mogo.eagle.core.function:call:${MOGO_CORE_FUNCTION_CALL_VERSION}", mogo_core_data : "com.mogo.eagle.core:data:${MOGO_CORE_DATA_VERSION}", diff --git a/core/function-impl/mogo-core-function-map/consumer-rules.pro b/core/function-impl/mogo-core-function-map/consumer-rules.pro index b294e7f5c4..77b92e3614 100644 --- a/core/function-impl/mogo-core-function-map/consumer-rules.pro +++ b/core/function-impl/mogo-core-function-map/consumer-rules.pro @@ -1,4 +1,3 @@ --keep class com.mogo.module.small.map.*{*;} -keep class com.android.internal.policy.MyPhoneLayoutInflater{*;} -keep class com.amap.api.col.n3.*{*;} diff --git a/gradle.properties b/gradle.properties index 0af01e8d99..89a64966b2 100644 --- a/gradle.properties +++ b/gradle.properties @@ -66,23 +66,23 @@ SERVICE_BIZ_VERSION=1.2.4 LOGLIB_VERSION=1.5.10 ######## MogoAiCloudSDK Version ######## # 网络请求LOGLIB_VERSION -MOGO_NETWORK_VERSION=1.4.4.7 +MOGO_NETWORK_VERSION=1.4.4.8 # 鉴权 -MOGO_PASSPORT_VERSION=1.4.4.7 +MOGO_PASSPORT_VERSION=1.4.4.8 # 常链接 -MOGO_SOCKET_VERSION=1.4.4.7 +MOGO_SOCKET_VERSION=1.4.4.8 # 数据采集 -MOGO_REALTIME_VERSION=1.4.4.7 +MOGO_REALTIME_VERSION=1.4.4.8 # 探路,道路事件发布,获取 -MOGO_TANLU_VERSION=1.4.4.7 +MOGO_TANLU_VERSION=1.4.4.8 # 直播推流 -MOGO_LIVE_VERSION=1.4.4.7 +MOGO_LIVE_VERSION=1.4.4.8 # 直播拉流 -MOGO_TRAFFICLIVE_VERSION=1.4.4.7 +MOGO_TRAFFICLIVE_VERSION=1.4.4.8 # 定位服务 -MOGO_LOCATION_VERSION=1.4.4.7 +MOGO_LOCATION_VERSION=1.4.4.8 # 远程通讯模块 -MOGO_TELEMATIC_VERSION=1.4.4.7 +MOGO_TELEMATIC_VERSION=1.4.4.8 ######## MogoAiCloudSDK Version ######## # 自研地图 MAP_SDK_VERSION=2.10.0.9 @@ -99,8 +99,6 @@ versionName=3.0.0 ################# 新架构模块Maven版本管理 ################# MOGO_CORE_FUNCTION_HMI_VERSION=0.0.58.10 MOGO_CORE_FUNCTION_MAP_VERSION=0.0.58.10 -MOGO_CORE_FUNCTION_OBU_MOGO_VERSION=0.0.58.10 -MOGO_CORE_FUNCTION_V2X_VERSION=0.0.58.10 MOGO_CORE_DATA_VERSION=0.0.58.10 MOGO_CORE_FUNCTION_API_VERSION=0.0.58.10 MOGO_CORE_FUNCTION_CALL_VERSION=0.0.58.10 @@ -113,8 +111,6 @@ MOGO_CORE_NETWORK_VERSION=0.0.58.10 MOGO_COMMONS_VERSION=2.1.16.10 MOGO_MAP_VERSION=2.1.16.10 MOGO_MAP_API_VERSION=2.1.16.10 -MOGO_MODULE_MAP_VERSION=2.1.16.10 -MOGO_MODULE_V2X_VERSION=2.1.16.10 # obu MOGO_MODULE_OBU_MOGO_VERSION=2.1.16.10 # bugly @@ -138,11 +134,6 @@ MOGO_OCH_TAXI_VERSION=2.0.66 # mogoAiCloud sdk services MOGO_AICLOUD_SERVICES_SDK_VERSION=2.1.16.10 -################# 旧版本架构模块版本 ################# - - - - # ADAS LIB Maven配置(用于地图部门测试使用,鹰眼项目中使用本地依赖) # ADAS_LIB_GROUP=com.zhidao.support.adas ADAS_LIB_POM_ARTIFACT_ID=high @@ -152,6 +143,5 @@ ADAS_DATA_LIB_GROUP=com.zhjt.mogo.adas.data ADAS_DATA_LIB_POM_ARTIFACT_ID=adas-data ADAS_DATA_LIB_CHILD_VERSION=.0 - # 线程优化版本 THREAD_OPT_VERSION=4.0.0 From db8bb54efacc0dc24fdbf58dd20b950e6163f1ac Mon Sep 17 00:00:00 2001 From: zhongchao Date: Tue, 21 Feb 2023 17:59:49 +0800 Subject: [PATCH 43/49] [2.13.0-arch-opt] .. --- .../com/mogo/launcher/startup/ConfigStartUp.kt | 2 +- .../hmi/ui/setting/DebugSettingView.kt | 5 ----- .../smp/view/ISmallMapDirectionView.java | 18 ------------------ .../res/layout/module_small_map_fragment.xml | 17 ----------------- 4 files changed, 1 insertion(+), 41 deletions(-) delete mode 100644 core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/smp/view/ISmallMapDirectionView.java delete mode 100644 core/function-impl/mogo-core-function-map/src/main/res/layout/module_small_map_fragment.xml diff --git a/app/src/main/java/com/mogo/launcher/startup/ConfigStartUp.kt b/app/src/main/java/com/mogo/launcher/startup/ConfigStartUp.kt index 1335dc0e52..a149317547 100644 --- a/app/src/main/java/com/mogo/launcher/startup/ConfigStartUp.kt +++ b/app/src/main/java/com/mogo/launcher/startup/ConfigStartUp.kt @@ -101,7 +101,7 @@ object ConfigStartUp { } val mapParams = MapParams.init() - mapParams.setDebugMode(false) //todo 1-使用本地地图数据,0-使用在线地图数据 + mapParams.setDebugMode(false) // 1-使用本地地图数据,0-使用在线地图数据 //.setDataFileSource(1) .setDebugMode(false) .setCoordinateType(MapParams.COORDINATETYPE_GCJ02) 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 3c7341be2d..05606d4bba 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 @@ -662,11 +662,6 @@ internal class DebugSettingView @JvmOverloads constructor( FunctionBuildConfig.isIgnoreConditionsDrawAutopilotTrajectoryData = isChecked } - //TODO - tbIsDrawPath.setOnCheckedChangeListener { _, isChecked -> - - } - // 初始化 GSP数据源 数据 rgGpsProvider.check( when (FunctionBuildConfig.gpsProvider) { diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/smp/view/ISmallMapDirectionView.java b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/smp/view/ISmallMapDirectionView.java deleted file mode 100644 index 7f2fb52fc9..0000000000 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/smp/view/ISmallMapDirectionView.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.mogo.eagle.core.function.smp.view; - -/** - * @author xiaoyuzhou - * @date 2021/6/24 11:33 上午 - */ -public interface ISmallMapDirectionView { - - /** - * 绘制路径线 - */ - void drawablePolyline(); - - /** - * 清除路径线 - */ - void clearPolyline(); -} diff --git a/core/function-impl/mogo-core-function-map/src/main/res/layout/module_small_map_fragment.xml b/core/function-impl/mogo-core-function-map/src/main/res/layout/module_small_map_fragment.xml deleted file mode 100644 index 39ed764704..0000000000 --- a/core/function-impl/mogo-core-function-map/src/main/res/layout/module_small_map_fragment.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - \ No newline at end of file From 68bf70246740e024d892b463c24ab0f20b76fcc4 Mon Sep 17 00:00:00 2001 From: zhongchao Date: Tue, 21 Feb 2023 20:11:09 +0800 Subject: [PATCH 44/49] [2.13.0-arch-opt] remove brake and turn --- .../src/main/res/layout/bus_p_base_fragment.xml | 9 --------- .../src/main/res/layout/bus_base_fragment.xml | 8 -------- .../src/main/res/layout/sweeper_base_fragment.xml | 8 -------- .../src/main/res/layout/taxi_p_base_fragment.xml | 9 --------- .../src/main/res/layout/taxi_base_fragment.xml | 8 -------- 5 files changed, 42 deletions(-) diff --git a/OCH/mogo-och-bus-passenger/src/main/res/layout/bus_p_base_fragment.xml b/OCH/mogo-och-bus-passenger/src/main/res/layout/bus_p_base_fragment.xml index 96b90db2b4..608ac59429 100644 --- a/OCH/mogo-och-bus-passenger/src/main/res/layout/bus_p_base_fragment.xml +++ b/OCH/mogo-och-bus-passenger/src/main/res/layout/bus_p_base_fragment.xml @@ -47,15 +47,6 @@ android:layout_width="match_parent" android:layout_height="match_parent"/> - - - - - - - - - - - - - - - Date: Wed, 22 Feb 2023 11:47:37 +0800 Subject: [PATCH 45/49] =?UTF-8?q?[opt3.0]=E6=B6=88=E6=81=AF=E7=9B=92?= =?UTF-8?q?=E5=AD=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hmi/ui/msgbox/DriverMsgBoxBubbleView.kt | 11 +- .../hmi/ui/msgbox/DriverMsgBoxListView.kt | 3 + .../hmi/ui/msgbox/MMsgBoxBubbleView.kt | 79 ++++++++ .../hmi/ui/msgbox/MMsgBoxButtonView.kt | 85 +++++++++ .../function/hmi/ui/msgbox/MMsgBoxListView.kt | 105 +++++++++++ .../msgbox/adapter/DriverMsgBoxListAdapter.kt | 20 ++ .../ui/msgbox/adapter/MMsgBoxBubbleAdapter.kt | 178 ++++++++++++++++++ .../ui/msgbox/adapter/MMsgBoxListAdapter.kt | 152 +++++++++++++++ .../drawable-xhdpi/icon_msg_box_m_normal.png | Bin 0 -> 23003 bytes .../drawable-xhdpi/icon_msg_box_m_select.png | Bin 0 -> 25166 bytes .../main/res/drawable/rv_divider_line_m.xml | 8 + .../main/res/drawable/selector_msg_box_m.xml | 5 + .../main/res/layout/item_m_msg_box_notice.xml | 85 +++++++++ .../res/layout/item_m_msg_box_summary.xml | 82 ++++++++ .../main/res/layout/item_m_msg_box_v2x.xml | 52 +++++ .../res/layout/item_m_msg_list_notice.xml | 83 ++++++++ .../res/layout/item_m_msg_list_summary.xml | 79 ++++++++ .../main/res/layout/item_m_msg_list_v2x.xml | 47 +++++ .../res/layout/item_msg_box_ipc_report.xml | 18 +- .../res/layout/item_msg_box_operation.xml | 2 +- .../res/layout/layout_m_msg_box_bubble.xml | 8 + .../main/res/layout/layout_m_msg_box_list.xml | 38 ++++ .../res/layout/view_m1_msg_box_button.xml | 30 +++ 23 files changed, 1164 insertions(+), 6 deletions(-) create mode 100644 core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/MMsgBoxBubbleView.kt create mode 100644 core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/MMsgBoxButtonView.kt create mode 100644 core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/MMsgBoxListView.kt create mode 100644 core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/MMsgBoxBubbleAdapter.kt create mode 100644 core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/MMsgBoxListAdapter.kt create mode 100644 core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_msg_box_m_normal.png create mode 100644 core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_msg_box_m_select.png create mode 100644 core/function-impl/mogo-core-function-hmi/src/main/res/drawable/rv_divider_line_m.xml create mode 100644 core/function-impl/mogo-core-function-hmi/src/main/res/drawable/selector_msg_box_m.xml create mode 100644 core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_msg_box_notice.xml create mode 100644 core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_msg_box_summary.xml create mode 100644 core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_msg_box_v2x.xml create mode 100644 core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_msg_list_notice.xml create mode 100644 core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_msg_list_summary.xml create mode 100644 core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_msg_list_v2x.xml create mode 100644 core/function-impl/mogo-core-function-hmi/src/main/res/layout/layout_m_msg_box_bubble.xml create mode 100644 core/function-impl/mogo-core-function-hmi/src/main/res/layout/layout_m_msg_box_list.xml create mode 100644 core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_m1_msg_box_button.xml 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 93ae969800..dc08cb75f7 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 @@ -7,6 +7,7 @@ import android.view.LayoutInflater import android.view.View import androidx.constraintlayout.widget.ConstraintLayout import androidx.recyclerview.widget.LinearLayoutManager +import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.data.msgbox.MsgBoxBean import com.mogo.eagle.core.data.msgbox.MsgCategory import com.mogo.eagle.core.function.api.datacenter.msgbox.IMsgBoxListener @@ -83,9 +84,13 @@ class DriverMsgBoxBubbleView @JvmOverloads constructor( if(isShowData){ CallerMsgBoxEventListenerManager.invokeUpdateTipListener(true) if(category == MsgCategory.RECORD_BAG){ - //弹出被动录包弹窗 - CallerDevaToolsManager.onReceiveBadCaseRecord(msgBoxBean,context as Activity,true) - }else{ + if(!FunctionBuildConfig.isDemoMode){ + //弹出被动录包弹窗 + CallerDevaToolsManager.onReceiveBadCaseRecord(msgBoxBean,context as Activity,true) + } + } else if(category == MsgCategory.SYS_INFO){ + //todo 过滤MAP系统异常报警 + } else{ clMsgBubbleLayout.visibility = View.VISIBLE dataList.add(msgBoxBean) driverMsgBoxBubbleAdapter?.setData(dataList) 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 0a24a50f88..75e5e6f583 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 @@ -7,6 +7,7 @@ import android.view.LayoutInflater import android.view.View import androidx.constraintlayout.widget.ConstraintLayout import androidx.recyclerview.widget.LinearLayoutManager +import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.data.msgbox.MsgBoxBean import com.mogo.eagle.core.data.msgbox.MsgCategory import com.mogo.eagle.core.function.api.datacenter.msgbox.IMsgBoxEventListener @@ -17,6 +18,7 @@ import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxManager import com.mogo.eagle.core.function.hmi.R import com.mogo.eagle.core.function.hmi.ui.msgbox.adapter.DriverMsgBoxListAdapter import com.mogo.eagle.core.function.msgbox.MsgBoxConfig +import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils import com.mogo.eagle.core.utilcode.util.UiThreadHandler import kotlinx.android.synthetic.main.layout_driver_msg_box_list.view.* import org.greenrobot.eventbus.EventBus @@ -244,6 +246,7 @@ class DriverMsgBoxListView @JvmOverloads constructor( notifyData() ipcReportList?.let { linearLayoutManager?.scrollToPositionWithOffset(it.indexOf(msgBoxBean),0) + driverMsgBoxListAdapter?.setReportShowData(msgBoxBean) } } } \ 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/msgbox/MMsgBoxBubbleView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/MMsgBoxBubbleView.kt new file mode 100644 index 0000000000..0c4c752c14 --- /dev/null +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/MMsgBoxBubbleView.kt @@ -0,0 +1,79 @@ +package com.mogo.eagle.core.function.hmi.ui.msgbox + +import android.app.Activity +import android.content.Context +import android.util.AttributeSet +import android.view.LayoutInflater +import androidx.constraintlayout.widget.ConstraintLayout +import androidx.recyclerview.widget.LinearLayoutManager +import com.mogo.eagle.core.data.msgbox.MsgBoxBean +import com.mogo.eagle.core.data.msgbox.MsgBoxType +import com.mogo.eagle.core.data.msgbox.MsgCategory +import com.mogo.eagle.core.function.api.datacenter.msgbox.IMsgBoxListener +import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxEventListenerManager +import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxListenerManager +import com.mogo.eagle.core.function.hmi.R +import com.mogo.eagle.core.function.hmi.ui.msgbox.adapter.MMsgBoxBubbleAdapter +import com.mogo.eagle.core.function.msgbox.MsgBoxConfig +import com.mogo.eagle.core.utilcode.util.UiThreadHandler +import kotlinx.android.synthetic.main.layout_m_msg_box_bubble.view.* + +class MMsgBoxBubbleView @JvmOverloads constructor( + context: Context, + attrs: AttributeSet? = null, + defStyleAttr: Int = 0 +) : ConstraintLayout(context, attrs, defStyleAttr), IMsgBoxListener { + + private val TAG = "MMsgBoxBubbleView" + private val dataList :ArrayList = ArrayList() + private var mMsgBoxBubbleAdapter: MMsgBoxBubbleAdapter?= null + private var isShowData = true + + init { + LayoutInflater.from(context).inflate(R.layout.layout_m_msg_box_bubble, this, true) + initView() + } + + private fun initView(){ + val linearLayoutManager = LinearLayoutManager(context) + linearLayoutManager.orientation = LinearLayoutManager.VERTICAL + mMsgBoxBubbleAdapter = MMsgBoxBubbleAdapter(context as Activity) + rvMBubbleList.adapter = mMsgBoxBubbleAdapter + rvMBubbleList.layoutManager = linearLayoutManager + } + + /** + * 是否展示接收消息,消息盒子打开状态下不再展示气泡消息 + * @param show true 展示;false 不展示 + */ + fun isShowData(show: Boolean){ + isShowData = show + } + + override fun onDataChanged(category: MsgCategory, msgBoxList: MsgBoxBean) { + UiThreadHandler.post { + if(category == MsgCategory.NOTICE){ + if(msgBoxList.type == MsgBoxType.NOTICE || msgBoxList.type == MsgBoxType.V2X + || msgBoxList.type == MsgBoxType.OBU){ + MsgBoxConfig.noticeList.add(msgBoxList) + if(isShowData){ + CallerMsgBoxEventListenerManager.invokeUpdateTipListener(true) + dataList.add(msgBoxList) + mMsgBoxBubbleAdapter?.setData(dataList) + } + } + } + } + } + + override fun onAttachedToWindow() { + super.onAttachedToWindow() + CallerMsgBoxListenerManager.addListener(TAG,this) + } + + override fun onDetachedFromWindow() { + super.onDetachedFromWindow() + CallerMsgBoxListenerManager.removeListener(TAG) + } + +} \ 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/msgbox/MMsgBoxButtonView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/MMsgBoxButtonView.kt new file mode 100644 index 0000000000..0509cdba13 --- /dev/null +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/MMsgBoxButtonView.kt @@ -0,0 +1,85 @@ +package com.mogo.eagle.core.function.hmi.ui.msgbox + +import android.content.Context +import android.util.AttributeSet +import android.view.LayoutInflater +import android.view.View +import androidx.constraintlayout.widget.ConstraintLayout +import com.mogo.eagle.core.data.msgbox.MsgBoxBean +import com.mogo.eagle.core.function.api.datacenter.msgbox.IMsgBoxEventListener +import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxEventListenerManager +import com.mogo.eagle.core.function.hmi.R +import kotlinx.android.synthetic.main.view_m1_msg_box_button.view.* + +class MMsgBoxButtonView @JvmOverloads constructor( + context: Context, + attrs: AttributeSet? = null, + defStyleAttr: Int = 0 +): ConstraintLayout(context, attrs, defStyleAttr), IMsgBoxEventListener { + + companion object { + const val TAG = "MMsgBoxButtonView" + } + + private var clickListener: ClickListener? = null + + init{ + LayoutInflater.from(context).inflate(R.layout.view_m1_msg_box_button, this, true) + initView() + } + + private fun initView(){ + cbMsgBoxM1.setOnCheckedChangeListener { _, isChecked -> + clickListener?.showMsgBoxList(isChecked) + msgBoxMTipView.visibility = View.GONE + } + } + + override fun onAttachedToWindow() { + super.onAttachedToWindow() + CallerMsgBoxEventListenerManager.addListener(TAG,this) + } + + override fun onDetachedFromWindow() { + super.onDetachedFromWindow() + CallerMsgBoxEventListenerManager.removeListener(TAG) + } + + override fun onSummaryClickEvent() { + + } + + /** + * 更新新消息提醒红点 + * @param isShow true:展示;false:不展示 + */ + override fun onUpdateTipEvent(isShow: Boolean) { + if(isShow){ + msgBoxMTipView.visibility = View.VISIBLE + }else{ + msgBoxMTipView.visibility = View.GONE + } + } + + override fun onBubbleOperationClickEvent(msgBoxBean: MsgBoxBean) { + cbMsgBoxM1.performClick() + } + + override fun onBubbleV2XClickEvent(msgBoxBean: MsgBoxBean) { + cbMsgBoxM1.performClick() + } + + override fun onBubbleReportClickEvent(msgBoxBean: MsgBoxBean) { + cbMsgBoxM1.performClick() + } + + fun setClickListener(clickListener: ClickListener) { + this.clickListener = clickListener + } + + interface ClickListener{ + fun showMsgBoxList(show: Boolean) + } + + +} \ 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/msgbox/MMsgBoxListView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/MMsgBoxListView.kt new file mode 100644 index 0000000000..6b71ed67b8 --- /dev/null +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/MMsgBoxListView.kt @@ -0,0 +1,105 @@ +package com.mogo.eagle.core.function.hmi.ui.msgbox + +import android.app.Activity +import android.content.Context +import android.util.AttributeSet +import android.view.LayoutInflater +import androidx.constraintlayout.widget.ConstraintLayout +import androidx.recyclerview.widget.DividerItemDecoration +import androidx.recyclerview.widget.LinearLayoutManager +import com.mogo.eagle.core.data.msgbox.MsgBoxBean +import com.mogo.eagle.core.data.msgbox.MsgBoxType +import com.mogo.eagle.core.data.msgbox.MsgCategory +import com.mogo.eagle.core.function.api.datacenter.msgbox.IMsgBoxEventListener +import com.mogo.eagle.core.function.api.datacenter.msgbox.IMsgBoxListener +import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxEventListenerManager +import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxListenerManager +import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxManager +import com.mogo.eagle.core.function.hmi.R +import com.mogo.eagle.core.function.hmi.ui.msgbox.adapter.MMsgBoxListAdapter +import com.mogo.eagle.core.utilcode.util.ResourceUtils.getDrawable +import com.mogo.eagle.core.utilcode.util.UiThreadHandler +import kotlinx.android.synthetic.main.layout_m_msg_box_list.view.* + +class MMsgBoxListView @JvmOverloads constructor( + context: Context, + attrs: AttributeSet? = null, + defStyleAttr: Int = 0 +) : ConstraintLayout(context, attrs, defStyleAttr), IMsgBoxListener, IMsgBoxEventListener { + + private val TAG = "MMsgBoxListView" + var mMsgBoxListAdapter: MMsgBoxListAdapter?= null + private var noticeList: ArrayList ?= null + + init{ + LayoutInflater.from(context).inflate(R.layout.layout_m_msg_box_list, this, true) + initView() + } + + private fun initView(){ + val linearLayoutManager = LinearLayoutManager(context) + linearLayoutManager.orientation = LinearLayoutManager.VERTICAL + val divider = DividerItemDecoration(context, linearLayoutManager.orientation) + getDrawable(R.drawable.rv_divider_line_m)?.let { divider.setDrawable(it) } + mMsgBoxListAdapter = MMsgBoxListAdapter(context as Activity) + rvMList.adapter = mMsgBoxListAdapter + rvMList.layoutManager = linearLayoutManager + rvMList.addItemDecoration(divider) + //获取通知消息列表 + noticeList= CallerMsgBoxManager.getCachedNotifyData() as ArrayList? + noticeList = noticeList?.let { ArrayList(it.reversed()) } + noticeList?.let { + mMsgBoxListAdapter?.setData(it) + } + + } + + override fun onDataChanged(category: MsgCategory, msgBoxList: MsgBoxBean) { + UiThreadHandler.post{ + if(category == MsgCategory.NOTICE){ + if(msgBoxList.type == MsgBoxType.NOTICE || msgBoxList.type == MsgBoxType.V2X + || msgBoxList.type == MsgBoxType.OBU){ + noticeList?.add(0,msgBoxList) + noticeList?.let { + mMsgBoxListAdapter?.setData(it) + } + } + } + } + } + + override fun onAttachedToWindow() { + super.onAttachedToWindow() + CallerMsgBoxListenerManager.addListener(TAG,this) + CallerMsgBoxEventListenerManager.addListener(TAG,this) + } + + override fun onDetachedFromWindow() { + super.onDetachedFromWindow() + CallerMsgBoxListenerManager.removeListener(TAG) + CallerMsgBoxEventListenerManager.removeListener(TAG) + } + + override fun onSummaryClickEvent() { + + } + + override fun onUpdateTipEvent(isShow: Boolean) { + + } + + override fun onBubbleOperationClickEvent(msgBoxBean: MsgBoxBean) { + + } + + override fun onBubbleV2XClickEvent(msgBoxBean: MsgBoxBean) { + noticeList?.let { + rvMList.scrollToPosition(it.indexOf(msgBoxBean)) + } + } + + override fun onBubbleReportClickEvent(msgBoxBean: MsgBoxBean) { + + } + +} \ 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/msgbox/adapter/DriverMsgBoxListAdapter.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/DriverMsgBoxListAdapter.kt index 1968a19cfc..95ea8caef9 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/DriverMsgBoxListAdapter.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/DriverMsgBoxListAdapter.kt @@ -32,6 +32,7 @@ class DriverMsgBoxListAdapter(private val activity: Activity) : RecyclerView.Adapter() { private var data: List? = null + private var reportBean: MsgBoxBean ?= null private val operation: Int = 1 private val notice: Int = 2 @@ -50,6 +51,10 @@ class DriverMsgBoxListAdapter(private val activity: Activity) : notifyDataSetChanged() } + fun setReportShowData(reportClickBean: MsgBoxBean){ + reportBean = reportClickBean + } + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder { when (viewType) { record -> { @@ -103,6 +108,7 @@ class DriverMsgBoxListAdapter(private val activity: Activity) : } is MsgBoxIpcReportHolder -> { data?.let { it -> + val reportMsgBox = it[position] holder.tvReportTimeNormal.text = "时间:${TimeUtils.millis2String(it[position].timestamp)}" holder.tvReportTimeOpen.text = @@ -138,6 +144,7 @@ class DriverMsgBoxListAdapter(private val activity: Activity) : holder.tvReportTypeNormal.text = resultStr holder.tvReportTypeOpen.text = resultStr holder.tvReportReasonOpen.text = "原因:${reportEntity.msg}" + holder.tvReportSrcOpen.text = "消息来源:${reportEntity.src}" var actionStr = "" for (action in reportEntity.actionsList) { actionStr = @@ -152,6 +159,7 @@ class DriverMsgBoxListAdapter(private val activity: Activity) : null, null ) + holder.tvStatusSelect.text = "折叠" holder.ivReportImageNormal.visibility = View.GONE holder.tvReportLevelNormal.visibility = View.GONE holder.tvReportTimeNormal.visibility = View.GONE @@ -162,6 +170,7 @@ class DriverMsgBoxListAdapter(private val activity: Activity) : holder.tvReportTimeOpen.visibility = View.VISIBLE holder.tvReportTypeOpen.visibility = View.VISIBLE holder.tvReportReasonOpen.visibility = View.VISIBLE + holder.tvReportSrcOpen.visibility = View.VISIBLE holder.tvReportActionOpen.visibility = View.VISIBLE } else { holder.tvStatusSelect.setCompoundDrawablesWithIntrinsicBounds( @@ -170,6 +179,7 @@ class DriverMsgBoxListAdapter(private val activity: Activity) : null, null ) + holder.tvStatusSelect.text = "展开" holder.ivReportImageNormal.visibility = View.VISIBLE holder.tvReportLevelNormal.visibility = View.VISIBLE holder.tvReportTimeNormal.visibility = View.VISIBLE @@ -180,9 +190,16 @@ class DriverMsgBoxListAdapter(private val activity: Activity) : holder.tvReportTimeOpen.visibility = View.GONE holder.tvReportTypeOpen.visibility = View.GONE holder.tvReportReasonOpen.visibility = View.GONE + holder.tvReportSrcOpen.visibility = View.GONE holder.tvReportActionOpen.visibility = View.GONE } } + reportBean?.let { + if(reportMsgBox.timestamp == it.timestamp){ + holder.tvStatusSelect.performClick() + } + } + } } is MsgBoxOperation -> { @@ -200,6 +217,7 @@ class DriverMsgBoxListAdapter(private val activity: Activity) : null, null ) + holder.tvOperationStatusSelect.text = "折叠" holder.ivOperationImageNormal.visibility = View.GONE holder.tvOperationTitleNormal.visibility = View.GONE holder.tvOperationContentNormal.visibility = View.GONE @@ -214,6 +232,7 @@ class DriverMsgBoxListAdapter(private val activity: Activity) : null, null ) + holder.tvOperationStatusSelect.text = "展开" holder.ivOperationImageNormal.visibility = View.VISIBLE holder.tvOperationTitleNormal.visibility = View.VISIBLE holder.tvOperationContentNormal.visibility = View.VISIBLE @@ -329,6 +348,7 @@ class DriverMsgBoxListAdapter(private val activity: Activity) : var tvReportTimeOpen: TextView = itemView.findViewById(R.id.tvReportTimeOpen) var tvReportTypeOpen: TextView = itemView.findViewById(R.id.tvReportTypeOpen) var tvReportReasonOpen: TextView = itemView.findViewById(R.id.tvReportReasonOpen) + var tvReportSrcOpen: TextView = itemView.findViewById(R.id.tvReportSrcOpen) var tvReportActionOpen: TextView = itemView.findViewById(R.id.tvReportActionOpen) } diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/MMsgBoxBubbleAdapter.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/MMsgBoxBubbleAdapter.kt new file mode 100644 index 0000000000..057bdf0cb6 --- /dev/null +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/MMsgBoxBubbleAdapter.kt @@ -0,0 +1,178 @@ +package com.mogo.eagle.core.function.hmi.ui.msgbox.adapter + +import android.app.Activity +import android.os.CountDownTimer +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.mogo.eagle.core.data.enums.DataSourceType +import com.mogo.eagle.core.data.enums.EventTypeEnumNew +import com.mogo.eagle.core.data.msgbox.* +import com.mogo.eagle.core.utilcode.mogo.glide.GlideApp +import com.mogo.eagle.core.function.call.hmi.CallerHmiManager +import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxEventListenerManager +import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxManager +import com.mogo.eagle.core.function.hmi.R +import com.mogo.eagle.core.utilcode.mogo.glide.transform.GlideRoundedCornersTransform +import com.mogo.eagle.core.utilcode.util.TimeUtils +import com.mogo.eagle.core.utilcode.util.TimeUtils.getHourMinFormat +import com.mogo.eagle.core.widget.RoundCanClickConstraintLayout + +class MMsgBoxBubbleAdapter(private val activity: Activity): RecyclerView.Adapter() { + + private var data: ArrayList ?= null + + private val notice: Int = 1 + private val v2x: Int = 2 + private val summary: Int = 3 + + var countDownTimer: CountDownTimer?=null + + fun setData(data: ArrayList){ + this.data = data + if(data.size>3){ + data.removeAt(0) + } + notifyDataSetChanged() + } + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder { + return when (viewType) { + notice -> { + val view = LayoutInflater.from(parent.context).inflate(R.layout.item_m_msg_box_notice,parent,false) + BubbleNoticeHolder(view) + } + summary -> { + val view = LayoutInflater.from(parent.context).inflate(R.layout.item_m_msg_box_summary,parent,false) + BubbleSummaryHolder(view) + } + else -> { + val view = LayoutInflater.from(parent.context).inflate(R.layout.item_m_msg_box_v2x,parent,false) + BubbleV2XHolder(view) + } + } + } + + override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) { + when (holder) { + is BubbleNoticeHolder -> { + data?.let { + val noticeFrCloudMsg = it[position].bean as NoticeFrCloudMsg + if(noticeFrCloudMsg.type == 0){ + val noticeNormalData = noticeFrCloudMsg.noticeNormalData + holder.tvMNoticeTime.text = TimeUtils.millis2String(it[position].timestamp,getHourMinFormat()) + holder.tvMNoticeContent.text = noticeNormalData?.content + GlideApp.with(activity).load(noticeNormalData?.imageUrl).placeholder(R.drawable.icon_passenger_operation) + .optionalTransform( + GlideRoundedCornersTransform( + 20f, + GlideRoundedCornersTransform.CornerType.ALL + ) + ).into(holder.ivMNoticeImage) + holder.tvMNoticeCheck.setOnClickListener { + //云公告 + noticeNormalData?.let { it1 -> CallerHmiManager.showNoticeNormalData(it1) } + } + }else if(noticeFrCloudMsg.type == 1){ + val noticeTrafficStylePushData = noticeFrCloudMsg.trafficPushData + holder.tvMNoticeTime.text = TimeUtils.millis2String(it[position].timestamp,getHourMinFormat()) + holder.tvMNoticeContent.text = noticeTrafficStylePushData?.content + GlideApp.with(activity).load(noticeTrafficStylePushData?.poiImgUrl).placeholder(R.drawable.icon_passenger_operation) + .optionalTransform( + GlideRoundedCornersTransform( + 20f, + GlideRoundedCornersTransform.CornerType.ALL + ) + ).into(holder.ivMNoticeImage) + holder.tvMNoticeCheck.setOnClickListener { + //云公告 + noticeTrafficStylePushData?.let { it1 -> CallerHmiManager.showTrafficBanner(it1) } + } + } + + } + } + is BubbleV2XHolder -> { + data?.let { + val msgBoxBean = it[position] + val v2XMsg = msgBoxBean.bean as V2XMsg + holder.tvMV2XTime.text = TimeUtils.millis2String(it[position].timestamp,getHourMinFormat()) + holder.tvMV2XContent.text = v2XMsg.content + holder.ivMV2XImage.setImageDrawable(activity.resources.getDrawable( + EventTypeEnumNew.getUpdateIconRes(v2XMsg.type))) + holder.clMVeXLayout.setOnClickListener { + CallerMsgBoxEventListenerManager.invokeBubbleV2XListener(msgBoxBean) + } + } + } + is BubbleSummaryHolder -> { + data?.let { + val summaryMsg= it[position].bean as V2XMsg + holder.tvMSummaryTime.text = TimeUtils.millis2String(it[position].timestamp,getHourMinFormat()) + holder.tvMSummaryContent.text = summaryMsg.content + holder.tvMSummaryCheck.setOnClickListener { + //跳转全览模式 +// CallerHmiManager.showSmallFragment() + CallerMsgBoxEventListenerManager.invokeSummaryListener() + } + } + } + } + + val msgBoxBean: MsgBoxBean = data!![position] + countDownTimer =object: CountDownTimer(CallerMsgBoxManager.getDismissTime(),1000){ + override fun onTick(p0: Long) { + + } + + override fun onFinish() { + data?.remove(msgBoxBean) + notifyDataSetChanged() +// notifyItemRemoved(index) +// notifyItemRangeChanged(index,recordTypeEntity.size-index) + } + + } + countDownTimer?.start() + } + + override fun getItemCount() = data?.size ?: 0 + + override fun getItemViewType(position: Int): Int { + return if(data!![position].type == MsgBoxType.NOTICE){ + notice + }else if(data!![position].type == MsgBoxType.V2X && data!![position].sourceType == DataSourceType.SUMMARY){ + summary + } else{ + v2x + } + } + + //Notice + class BubbleNoticeHolder(itemView: View): RecyclerView.ViewHolder(itemView){ + var ivMNoticeImage: ImageView = itemView.findViewById(R.id.ivMNoticeImage) + var tvMNoticeTitle: TextView = itemView.findViewById(R.id.tvMNoticeTitle) + var tvMNoticeContent: TextView = itemView.findViewById(R.id.tvMNoticeContent) + var tvMNoticeCheck: TextView = itemView.findViewById(R.id.tvMNoticeCheck) + var tvMNoticeTime: TextView = itemView.findViewById(R.id.tvMNoticeTime) + } + + //OBU、V2X + class BubbleV2XHolder(itemView: View): RecyclerView.ViewHolder(itemView){ + var ivMV2XImage: ImageView = itemView.findViewById(R.id.ivMV2XImage) + var tvMV2XTime: TextView = itemView.findViewById(R.id.tvMV2XTime) + var tvMV2XContent: TextView = itemView.findViewById(R.id.tvMV2XContent) + var clMVeXLayout: RoundCanClickConstraintLayout = itemView.findViewById(R.id.clMVeXLayout) + } + + //汇总消息 + class BubbleSummaryHolder(itemView: View): RecyclerView.ViewHolder(itemView){ + var tvMSummaryContent: TextView = itemView.findViewById(R.id.tvMSummaryContent) + var tvMSummaryCheck: TextView = itemView.findViewById(R.id.tvMSummaryCheck) + var tvMSummaryTime: TextView = itemView.findViewById(R.id.tvMSummaryTime) + } + +} \ 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/msgbox/adapter/MMsgBoxListAdapter.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/MMsgBoxListAdapter.kt new file mode 100644 index 0000000000..9e44371868 --- /dev/null +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/MMsgBoxListAdapter.kt @@ -0,0 +1,152 @@ +package com.mogo.eagle.core.function.hmi.ui.msgbox.adapter + +import android.app.Activity +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.TextView +import androidx.recyclerview.widget.RecyclerView +import com.mogo.eagle.core.data.enums.DataSourceType +import com.mogo.eagle.core.data.enums.EventTypeEnumNew +import com.mogo.eagle.core.data.msgbox.MsgBoxBean +import com.mogo.eagle.core.data.msgbox.MsgBoxType +import com.mogo.eagle.core.data.msgbox.NoticeFrCloudMsg +import com.mogo.eagle.core.data.msgbox.V2XMsg +import com.mogo.eagle.core.function.call.hmi.CallerHmiManager +import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxEventListenerManager +import com.mogo.eagle.core.function.hmi.R +import com.mogo.eagle.core.utilcode.mogo.glide.transform.GlideRoundedCornersTransform +import com.mogo.eagle.core.utilcode.util.TimeUtils +import com.mogo.eagle.core.utilcode.util.TimeUtils.getHourMinFormat +import com.mogo.eagle.core.utilcode.mogo.glide.GlideApp + +class MMsgBoxListAdapter(private val activity: Activity): RecyclerView.Adapter() { + + private var data: List ?= null + + private val notice: Int = 1 + private val v2x: Int = 2 + private val summary: Int = 3 + + fun setData(data: List){ + this.data = data + notifyDataSetChanged() + } + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder { + return when (viewType) { + notice -> { + val view = LayoutInflater.from(parent.context).inflate(R.layout.item_m_msg_list_notice,parent,false) + ListNoticeHolder(view) + } + summary -> { + val view = LayoutInflater.from(parent.context).inflate(R.layout.item_m_msg_list_summary,parent,false) + ListSummaryHolder(view) + } + else -> { + val view = LayoutInflater.from(parent.context).inflate(R.layout.item_m_msg_list_v2x,parent,false) + ListV2XHolder(view) + } + } + } + + override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) { + when (holder) { + is ListNoticeHolder -> { + data?.let { + val noticeFrCloudMsg = it[position].bean as NoticeFrCloudMsg + if(noticeFrCloudMsg.type == 0){ + val noticeNormalData = noticeFrCloudMsg.noticeNormalData + holder.tvMNoticeTime.text = TimeUtils.millis2String(it[position].timestamp,getHourMinFormat()) + holder.tvMNoticeContent.text = noticeNormalData?.content + GlideApp.with(activity).load(noticeNormalData?.imageUrl).placeholder(R.drawable.icon_notice_default) + .optionalTransform( + GlideRoundedCornersTransform( + 20f, + GlideRoundedCornersTransform.CornerType.ALL + ) + ).into(holder.ivMNoticeImage) + holder.tvMNoticeCheck.setOnClickListener { + //云公告 + noticeNormalData?.let { it1 -> CallerHmiManager.showNoticeNormalData(it1) } + } + }else if(noticeFrCloudMsg.type == 1){ + val noticeTrafficStylePushData = noticeFrCloudMsg.trafficPushData + holder.tvMNoticeTime.text = TimeUtils.millis2String(it[position].timestamp,getHourMinFormat()) + holder.tvMNoticeContent.text = noticeTrafficStylePushData?.content + GlideApp.with(activity).load(noticeTrafficStylePushData?.poiImgUrl).placeholder(R.drawable.icon_notice_default) + .optionalTransform( + GlideRoundedCornersTransform( + 20f, + GlideRoundedCornersTransform.CornerType.ALL + ) + ).into(holder.ivMNoticeImage) + holder.tvMNoticeCheck.setOnClickListener { + //云公告 + noticeTrafficStylePushData?.let { it1 -> CallerHmiManager.showTrafficBanner(it1) } + } + } + } + } + is ListV2XHolder -> { + data?.let { + val msgBoxBean = it[position] + val v2XMsg = msgBoxBean.bean as V2XMsg + holder.tvMV2XTime.text = TimeUtils.millis2String(it[position].timestamp,getHourMinFormat()) + holder.tvMV2XContent.text = v2XMsg.content + holder.ivMV2XImage.setImageDrawable(activity.resources.getDrawable( + EventTypeEnumNew.getUpdateIconRes(v2XMsg.type))) + } + } + is ListSummaryHolder -> { + data?.let { + val summaryMsg= it[position].bean as V2XMsg + holder.tvMSummaryTime.text = TimeUtils.millis2String(it[position].timestamp,getHourMinFormat()) + holder.tvMSummaryContent.text = summaryMsg.content + holder.tvMSummaryCheck.setOnClickListener { + //跳转全览模式 +// CallerHmiManager.showSmallFragment() + CallerMsgBoxEventListenerManager.invokeSummaryListener() + } + } + } + } + } + + override fun getItemCount() = data?.size ?: 0 + + override fun getItemViewType(position: Int): Int { + return if(data!![position].type == MsgBoxType.NOTICE){ + notice + }else if(data!![position].type == MsgBoxType.V2X && data!![position].sourceType == DataSourceType.SUMMARY){ + summary + } else{ + v2x + } + } + + //Notice + class ListNoticeHolder(itemView: View): RecyclerView.ViewHolder(itemView){ + var ivMNoticeImage: ImageView = itemView.findViewById(R.id.ivMNoticeImage) + var tvMNoticeTitle: TextView = itemView.findViewById(R.id.tvMNoticeTitle) + var tvMNoticeContent: TextView = itemView.findViewById(R.id.tvMNoticeContent) + var tvMNoticeCheck: TextView = itemView.findViewById(R.id.tvMNoticeCheck) + var tvMNoticeTime: TextView = itemView.findViewById(R.id.tvMNoticeTime) + } + + //OBU、V2X + class ListV2XHolder(itemView: View): RecyclerView.ViewHolder(itemView){ + var ivMV2XImage: ImageView = itemView.findViewById(R.id.ivMV2XImage) + var tvMV2XTime: TextView = itemView.findViewById(R.id.tvMV2XTime) + var tvMV2XContent: TextView = itemView.findViewById(R.id.tvMV2XContent) + } + + //汇总消息 + class ListSummaryHolder(itemView: View): RecyclerView.ViewHolder(itemView){ + var tvMSummaryContent: TextView = itemView.findViewById(R.id.tvMSummaryContent) + var tvMSummaryCheck: TextView = itemView.findViewById(R.id.tvMSummaryCheck) + var tvMSummaryTime: TextView = itemView.findViewById(R.id.tvMSummaryTime) + } + +} \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_msg_box_m_normal.png b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_msg_box_m_normal.png new file mode 100644 index 0000000000000000000000000000000000000000..858ead6571bc29a2524004a0077670aae8afc1f1 GIT binary patch literal 23003 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 literal 0 HcmV?d00001 diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/rv_divider_line_m.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/rv_divider_line_m.xml new file mode 100644 index 0000000000..dd0d2fa8c0 --- /dev/null +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/rv_divider_line_m.xml @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/selector_msg_box_m.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/selector_msg_box_m.xml new file mode 100644 index 0000000000..e1cbe83c46 --- /dev/null +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/selector_msg_box_m.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_msg_box_notice.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_msg_box_notice.xml new file mode 100644 index 0000000000..77fc05c317 --- /dev/null +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_msg_box_notice.xml @@ -0,0 +1,85 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_msg_box_summary.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_msg_box_summary.xml new file mode 100644 index 0000000000..c77dabafe0 --- /dev/null +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_msg_box_summary.xml @@ -0,0 +1,82 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_msg_box_v2x.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_msg_box_v2x.xml new file mode 100644 index 0000000000..27ae52a175 --- /dev/null +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_msg_box_v2x.xml @@ -0,0 +1,52 @@ + + + + + + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_msg_list_notice.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_msg_list_notice.xml new file mode 100644 index 0000000000..b57c76a7c4 --- /dev/null +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_msg_list_notice.xml @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_msg_list_summary.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_msg_list_summary.xml new file mode 100644 index 0000000000..319543cb67 --- /dev/null +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_msg_list_summary.xml @@ -0,0 +1,79 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_msg_list_v2x.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_msg_list_v2x.xml new file mode 100644 index 0000000000..deddc8f6e2 --- /dev/null +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_m_msg_list_v2x.xml @@ -0,0 +1,47 @@ + + + + + + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_msg_box_ipc_report.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_msg_box_ipc_report.xml index 5911e16c42..29e1165bfb 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_msg_box_ipc_report.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_msg_box_ipc_report.xml @@ -70,7 +70,7 @@ android:id="@+id/tvStatusSelect" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:text="折叠" + android:text="展开" android:textColor="#FFFFFFFF" android:textSize="24dp" app:layout_constraintTop_toTopOf="parent" @@ -163,12 +163,26 @@ /> + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/layout_m_msg_box_list.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/layout_m_msg_box_list.xml new file mode 100644 index 0000000000..70ec2ac202 --- /dev/null +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/layout_m_msg_box_list.xml @@ -0,0 +1,38 @@ + + + + + + + + + + + + + diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_m1_msg_box_button.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_m1_msg_box_button.xml new file mode 100644 index 0000000000..0eb0cb4f85 --- /dev/null +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_m1_msg_box_button.xml @@ -0,0 +1,30 @@ + + + + + + + + + + \ No newline at end of file From f78a32bbbcc7b9ac9848aad7352b1ddcf562e572 Mon Sep 17 00:00:00 2001 From: chenfufeng Date: Wed, 22 Feb 2023 14:44:21 +0800 Subject: [PATCH 46/49] =?UTF-8?q?[Opt3.0][Update]=E6=96=B0=E5=A2=9Eplannin?= =?UTF-8?q?g=E5=91=BD=E4=BB=A4=E7=9A=84=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../datacenter/autopilot/MoGoAutopilotControlProvider.kt | 4 ++++ .../function/api/autopilot/IMoGoAutopilotControlProvider.kt | 2 ++ .../function/call/autopilot/CallerAutoPilotControlManager.kt | 4 ++++ 3 files changed, 10 insertions(+) diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/MoGoAutopilotControlProvider.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/MoGoAutopilotControlProvider.kt index fa5f14ed05..e68500d7c7 100644 --- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/MoGoAutopilotControlProvider.kt +++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/autopilot/MoGoAutopilotControlProvider.kt @@ -769,4 +769,8 @@ class MoGoAutopilotControlProvider : override fun sendRoboBusJinlvM1TaskCmd(roboBusJinlvM1Cmd: SpecialVehicleTaskCmdOuterClass.RoboBusJinlvM1Cmd): Boolean { return AdasManager.getInstance().sendRoboBusJinlvM1TaskCmd(roboBusJinlvM1Cmd) } + + override fun sendPlanningCmd(cmd: Int): Boolean { + return AdasManager.getInstance().sendPlanningCmd(cmd) + } } \ No newline at end of file diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/autopilot/IMoGoAutopilotControlProvider.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/autopilot/IMoGoAutopilotControlProvider.kt index 5559e67b9f..e1c50cce6c 100644 --- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/autopilot/IMoGoAutopilotControlProvider.kt +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/autopilot/IMoGoAutopilotControlProvider.kt @@ -312,4 +312,6 @@ interface IMoGoAutopilotControlProvider : IMoGoFunctionServerProvider { fun sendRoboBusJinlvM1SmallLampCmd(switchCmd: Int): Boolean fun sendRoboBusJinlvM1TaskCmd(roboBusJinlvM1Cmd: SpecialVehicleTaskCmdOuterClass.RoboBusJinlvM1Cmd): Boolean + + fun sendPlanningCmd(cmd: Int): Boolean } \ No newline at end of file diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerAutoPilotControlManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerAutoPilotControlManager.kt index 1980bf91db..1140e23f39 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerAutoPilotControlManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/autopilot/CallerAutoPilotControlManager.kt @@ -450,4 +450,8 @@ object CallerAutoPilotControlManager { fun sendRoboBusJinlvM1TaskCmd(roboBusJinlvM1Cmd: SpecialVehicleTaskCmdOuterClass.RoboBusJinlvM1Cmd): Boolean { return providerApi?.sendRoboBusJinlvM1TaskCmd(roboBusJinlvM1Cmd) ?: false } + + fun sendPlanningCmd(cmd: Int): Boolean { + return providerApi?.sendPlanningCmd(cmd) ?: false + } } \ No newline at end of file From 956a1a2712d1177940da0bbf3e876a49f0054739 Mon Sep 17 00:00:00 2001 From: xuxinchao Date: Wed, 22 Feb 2023 14:52:00 +0800 Subject: [PATCH 47/49] =?UTF-8?q?[opt3.0]=E8=BF=90=E8=90=A5=E9=9D=A2?= =?UTF-8?q?=E6=9D=BFUI=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../function/hmi/ui/setting/SOPSettingView.kt | 46 +- .../src/main/res/layout/view_sop_setting.xml | 543 +++++++++--------- 2 files changed, 291 insertions(+), 298 deletions(-) diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/SOPSettingView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/SOPSettingView.kt index d7f34d5901..ffd67f3131 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/SOPSettingView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/SOPSettingView.kt @@ -45,6 +45,7 @@ internal class SOPSettingView @JvmOverloads constructor( } private fun initView() { + sopLayout.setOnClickListener { } //绕障类功能开关 tbObstacleAvoidance.isChecked = FunctionBuildConfig.isDetouring tbObstacleAvoidance.setOnCheckedChangeListener { _, isChecked -> @@ -144,7 +145,10 @@ internal class SOPSettingView @JvmOverloads constructor( // 演示模式,上一次勾选的数据 tbDemoMode.isChecked = FunctionBuildConfig.isDemoMode // 演示模式 - tbDemoMode.setOnCheckedChangeListener { _, _ -> + tbDemoMode.setOnCheckedChangeListener { compoundButton, _ -> + if(!compoundButton.isPressed){ + return@setOnCheckedChangeListener + } FunctionBuildConfig.isDemoMode = !FunctionBuildConfig.isDemoMode CallerHmiManager.updateStatusBarLeftView(FunctionBuildConfig.isDemoMode, "demoMode", DemoModeView(context)) CallerAutoPilotControlManager.setDemoMode(FunctionBuildConfig.isDemoMode) @@ -162,7 +166,10 @@ internal class SOPSettingView @JvmOverloads constructor( // 雨天模式,上一次勾选的数据 tbRainMode.isChecked = FunctionBuildConfig.isRainMode //雨天模式 - tbRainMode.setOnCheckedChangeListener { _, isChecked -> + tbRainMode.setOnCheckedChangeListener { compoundButton, isChecked -> + if(!compoundButton.isPressed){ + return@setOnCheckedChangeListener + } CallerAutoPilotControlManager.setRainMode(isChecked) FunctionBuildConfig.isRainMode = isChecked } @@ -251,11 +258,8 @@ internal class SOPSettingView @JvmOverloads constructor( private val timerTaskRefresh = object : TimerTask(){ override fun run() { UiThreadHandler.post{ - if(FunctionBuildConfig.isDemoMode){ - tbDemoMode.text = "关闭美化模式" - }else{ - tbDemoMode.text = "开启美化模式" - } + tbDemoMode.isChecked = FunctionBuildConfig.isDemoMode + tbRainMode.isChecked = FunctionBuildConfig.isRainMode } } @@ -265,39 +269,27 @@ internal class SOPSettingView @JvmOverloads constructor( when (type) { FuncBizConfig.BIZ_BEAUTY_MODE -> { tbDemoMode.isClickable = !lock - val (left,top,right,bottom) = tbDemoMode.currentPadding() - if (lock) { - tbDemoMode.background = - resources.getDrawable(R.drawable.radio_button_lock_background) - } else { - tbDemoMode.background = - resources.getDrawable(R.drawable.radio_button_normal_background_right) + if(lock){ + tbDemoMode.visibility = View.INVISIBLE + }else{ + tbDemoMode.visibility = View.VISIBLE } - tbDemoMode.setPadding(left,top,right,bottom) } FuncBizConfig.BIZ_RAIN_MODE -> { tbRainMode.isClickable = !lock - val (left,top,right,bottom) = tbRainMode.currentPadding() if (lock) { - tbRainMode.background = - resources.getDrawable(R.drawable.radio_button_lock_background) + tbRainMode.visibility = View.INVISIBLE } else { - tbRainMode.background = - resources.getDrawable(R.drawable.radio_button_normal_background_right) + tbRainMode.visibility = View.VISIBLE } - tbRainMode.setPadding(left,top,right,bottom) } FuncBizConfig.BIZ_PNC_WARNING -> { tbMarkingObstacles.isClickable = !lock - val (left,top,right,bottom) = tbMarkingObstacles.currentPadding() if (lock) { - tbMarkingObstacles.background = - resources.getDrawable(R.drawable.radio_button_lock_background) + tbMarkingObstacles.visibility = View.INVISIBLE } else { - tbMarkingObstacles.background = - resources.getDrawable(R.drawable.radio_button_normal_background_right) + tbMarkingObstacles.visibility = View.VISIBLE } - tbMarkingObstacles.setPadding(left,top,right,bottom) } } } diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_sop_setting.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_sop_setting.xml index 8c7522b317..4558cc99a4 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_sop_setting.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_sop_setting.xml @@ -1,297 +1,298 @@ - + android:background="#FFFFFF"> - + - + + - - - - - - - - - - + + - + + - + + - + + - + + - + + - + + - + - + - + - - + - + - + - + - + -