From c46652636b4ad52d59a5fc94e8939044c7abf99d Mon Sep 17 00:00:00 2001 From: zhongchao Date: Fri, 5 Nov 2021 23:02:54 +0800 Subject: [PATCH] rebase --- .idea/misc.xml | 7 + .../com/mogo/launcher/MogoApplication.java | 2 + .../core/function/hmi/ui/MoGoHmiFragment.kt | 4 + .../function/hmi/ui/MoGoWarningContract.kt | 5 + .../hmi/ui/widget/VipIdentificationView.kt | 30 ++ .../hmi/warning/MoGoWarningProvider.kt | 4 + .../v2x_vip_identification_vr.png | Bin 0 -> 8183 bytes .../src/main/res/layout/fragment_hmi.xml | 8 + .../res/layout/view_vip_identification.xml | 18 ++ .../mogo-core-function-v2x/build.gradle | 8 + .../eagle/core/function/v2x/V2XProvider.kt | 24 ++ .../v2x/trafficlight/TrafficLightConst.kt | 26 ++ .../trafficlight/TrafficLightHMIManager.kt | 66 +++++ .../v2x/trafficlight/TrafficLightProvider.kt | 45 +++ .../core/MogoTrafficLightManager.kt | 134 +++++++++ .../core/TrafficLightThreadHandler.kt | 64 ++++ .../network/TrafficLightApiService.kt | 27 ++ .../network/TrafficLightNetWorkModel.kt | 123 ++++++++ .../core/function/v2x/vip/VipCarManager.kt | 141 +++++++++ .../eagle/core/function/v2x/占位文件.java | 0 .../com/mogo/eagle/core/data/BaseResponse.kt | 5 + .../core/data/constants/MogoServicePaths.java | 11 + .../data/trafficlight/BaseLaneInfoList.kt | 6 + .../trafficlight/ChangeLightRequestData.kt | 9 + .../data/trafficlight/RoadIDRequestData.kt | 5 + .../core/data/trafficlight/RoadIDResult.kt | 16 + .../data/trafficlight/TrafficLightDetail.kt | 12 + .../trafficlight/TrafficLightRequestData.kt | 12 + .../data/trafficlight/TrafficLightResult.kt | 14 + .../data/trafficlight/TrafficLightStatus.kt | 37 +++ .../mogo/eagle/core/data/v2x/VipMessage.kt | 10 + .../api/hmi/warning/IMoGoWaringProvider.kt | 15 +- .../trafficlight/IMoGoTrafficLightListener.kt | 13 + .../api/trafficlight/ITrafficLightProvider.kt | 26 ++ .../function/call/hmi/CallerHmiManager.kt | 8 + .../CallTrafficLightListenerManager.kt | 66 +++++ .../trafficlight/CallTrafficLightManager.kt | 20 ++ .../icon_warning_v2x_vip_turn_light.png | Bin 0 -> 12324 bytes .../res/values-xhdpi-2560x1440/dimens.xml | 4 + .../src/main/res/values/dimens.xml | 4 + .../mogo/thread}/WorkThreadHandler.java | 2 +- foudations/mogo-utils/build.gradle | 7 + .../com/mogo/utils/network}/CoroutineDSL.kt | 46 ++- .../utils/network/exception/ApiException.kt | 10 + .../network/exception/CommonException.kt | 19 ++ modules/mogo-module-authorize/build.gradle | 4 + .../src/main/AndroidManifest.xml | 10 - .../module/carchatting/biz/CallChatCenter.kt | 4 +- .../module/carchatting/biz/CallChatManager.kt | 2 +- .../com/mogo/module/carchatting/biz/Test.kt | 13 - .../module/carchatting/net/CoroutineDSL.kt | 8 +- .../mogo/module/carchatting/net/HttpApi.kt | 2 +- .../mogo/module/carchatting/net/Repository.kt | 2 +- .../carchatting/view/CallingWindowManager.kt | 35 ++- .../view/TeamInvitationWindowManager.kt | 3 +- .../module/carchatting/view/UserDialog.kt | 7 - .../carchatting/view/UserWindowManager.kt | 15 +- .../carchatting/view/VehicleTeamModel.kt | 2 +- modules/mogo-module-chat/build.gradle | 25 +- .../java/com/mogo/chat/base/BaseController.kt | 5 +- .../java/com/mogo/chat/base/BaseRepository.kt | 1 + .../java/com/mogo/chat/base/BaseResponse.kt | 13 - .../com/mogo/chat/exception/ApiException.kt | 15 - .../mogo/chat/exception/CallApiException.kt | 15 + .../mogo/chat/exception/CommonException.kt | 1 + .../com/mogo/chat/model/ChatServiceModel.kt | 2 +- .../java/com/mogo/chat/model/FocusModel.kt | 2 +- .../java/com/mogo/chat/model/FriendModel.kt | 2 +- .../com/mogo/chat/model/bean/OnLineStatus.kt | 3 - .../mogo/chat/model/control/ChatController.kt | 6 +- .../chat/model/control/MatchController.kt | 4 +- .../model/control/VehicleTeamController.kt | 5 +- .../main/java/com/mogo/chat/net/HttpApi.kt | 2 +- .../mogo/chat/service/ChatServiceHandler.kt | 121 +++++--- modules/mogo-module-common/build.gradle | 4 +- .../mogo/module/common/drawer/BaseDrawer.java | 2 +- .../common/drawer/RoadConditionDrawer.java | 3 +- .../common/drawer/TrafficMarkerDrawer.kt | 2 +- .../mogo/module/common/enums/EventTypeEnum.kt | 275 ++++++++++-------- modules/mogo-module-search/build.gradle | 4 + .../module/navi/manager/AddressManager.kt | 2 +- .../com/mogo/module/service/MogoServices.java | 2 +- .../service/intent/MockIntentHandler.java | 2 +- .../mocktools/DataCollectionHandler.java | 2 +- .../strategy/CarIconDisplayStrategy.java | 2 +- .../timedelay/TimeDelayUploadManager.java | 2 +- modules/mogo-module-share/build.gradle | 3 + .../com/mogo/module/share/TanluManager.java | 1 - .../v2x/fragment/V2XSurroundingFragment.java | 2 +- .../presenter/ScenarioHistoryPresenter.java | 2 +- .../v2x/presenter/ShareEventsPresenter.java | 6 +- .../scene/park/V2XIllegalParkMarker.java | 4 +- .../scene/warning/V2XWarningMarker.java | 2 +- 93 files changed, 1439 insertions(+), 325 deletions(-) create mode 100644 core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/VipIdentificationView.kt create mode 100644 core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/v2x_vip_identification_vr.png create mode 100644 core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_vip_identification.xml create mode 100644 core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/V2XProvider.kt create mode 100644 core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/trafficlight/TrafficLightConst.kt create mode 100644 core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/trafficlight/TrafficLightHMIManager.kt create mode 100644 core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/trafficlight/TrafficLightProvider.kt create mode 100644 core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/trafficlight/core/MogoTrafficLightManager.kt create mode 100644 core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/trafficlight/core/TrafficLightThreadHandler.kt create mode 100644 core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/trafficlight/network/TrafficLightApiService.kt create mode 100644 core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/trafficlight/network/TrafficLightNetWorkModel.kt create mode 100644 core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/vip/VipCarManager.kt delete mode 100644 core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/占位文件.java create mode 100644 core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/BaseResponse.kt create mode 100644 core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/trafficlight/BaseLaneInfoList.kt create mode 100644 core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/trafficlight/ChangeLightRequestData.kt create mode 100644 core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/trafficlight/RoadIDRequestData.kt create mode 100644 core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/trafficlight/RoadIDResult.kt create mode 100644 core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/trafficlight/TrafficLightDetail.kt create mode 100644 core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/trafficlight/TrafficLightRequestData.kt create mode 100644 core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/trafficlight/TrafficLightResult.kt create mode 100644 core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/trafficlight/TrafficLightStatus.kt create mode 100644 core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/v2x/VipMessage.kt create mode 100644 core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/trafficlight/IMoGoTrafficLightListener.kt create mode 100644 core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/trafficlight/ITrafficLightProvider.kt create mode 100644 core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/trafficlight/CallTrafficLightListenerManager.kt create mode 100644 core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/trafficlight/CallTrafficLightManager.kt create mode 100644 core/mogo-core-res/src/main/function-hmi-res/drawable-xxhdpi/icon_warning_v2x_vip_turn_light.png rename {foudations/mogo-utils/src/main/java/com/mogo/utils => core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/mogo/thread}/WorkThreadHandler.java (97%) rename {modules/mogo-module-chat/src/main/java/com/mogo/chat/net => foudations/mogo-utils/src/main/java/com/mogo/utils/network}/CoroutineDSL.kt (62%) create mode 100644 foudations/mogo-utils/src/main/java/com/mogo/utils/network/exception/ApiException.kt create mode 100644 foudations/mogo-utils/src/main/java/com/mogo/utils/network/exception/CommonException.kt delete mode 100644 modules/mogo-module-carchatting/src/main/java/com/mogo/module/carchatting/biz/Test.kt delete mode 100644 modules/mogo-module-chat/src/main/java/com/mogo/chat/base/BaseResponse.kt delete mode 100644 modules/mogo-module-chat/src/main/java/com/mogo/chat/exception/ApiException.kt create mode 100644 modules/mogo-module-chat/src/main/java/com/mogo/chat/exception/CallApiException.kt diff --git a/.idea/misc.xml b/.idea/misc.xml index 5d572339ef..69dd353cde 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -16,6 +16,12 @@ + + + + + + @@ -64,6 +70,7 @@ + diff --git a/app/src/main/java/com/mogo/launcher/MogoApplication.java b/app/src/main/java/com/mogo/launcher/MogoApplication.java index b79437d81e..22f2afcbb2 100644 --- a/app/src/main/java/com/mogo/launcher/MogoApplication.java +++ b/app/src/main/java/com/mogo/launcher/MogoApplication.java @@ -319,6 +319,8 @@ public class MogoApplication extends AbsMogoApplication { // widgets 模块 MogoModulePaths.addModuleFunction(new MogoModule(MogoServicePaths.PATH_V2X_WARNING, "IMoGoWaringProvider")); + // V2X 模块 + MogoModulePaths.addBaseModule(new MogoModule(MogoServicePaths.PATH_V2X_MODULE, "V2XProvider")); // 自动驾驶系统检测模块 MogoModulePaths.addBaseModule(new MogoModule(MogoServicePaths.PATH_CHECK, "CheckProvider")); // 推送模块 diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiFragment.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiFragment.kt index c012eac757..10a8769628 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiFragment.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiFragment.kt @@ -373,4 +373,8 @@ class MoGoHmiFragment : MvpFragment override fun onDestroy() { super.onDestroy() } + override fun vipIdentification(visible: Boolean) { + flVipIdentificationView.visibility = if (visible) View.VISIBLE else View.GONE + } + } \ 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/MoGoWarningContract.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoWarningContract.kt index c1692dae3f..fe505c8970 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoWarningContract.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoWarningContract.kt @@ -133,5 +133,10 @@ interface MoGoWarningContract { * @param normalData */ fun showNoticeNormal(normalData: NoticeNormalData) + + /** + * 展示VIP标识 + */ + fun vipIdentification(visible: 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/widget/VipIdentificationView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/VipIdentificationView.kt new file mode 100644 index 0000000000..9ebfc434dc --- /dev/null +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/VipIdentificationView.kt @@ -0,0 +1,30 @@ +package com.mogo.eagle.core.function.hmi.ui.widget + +import android.content.Context +import android.util.AttributeSet +import android.view.LayoutInflater +import androidx.constraintlayout.widget.ConstraintLayout +import com.mogo.eagle.core.function.hmi.R +import com.mogo.utils.UiThreadHandler +import kotlinx.android.synthetic.main.view_vip_identification.view.* + +/** + * VIP标识控件 + */ +class VipIdentificationView @JvmOverloads constructor( + context: Context, + attrs: AttributeSet? = null, + defStyleAttr: Int = 0 +) : ConstraintLayout(context, attrs, defStyleAttr) { + + init { + LayoutInflater.from(context).inflate(R.layout.view_vip_identification, this, true) + } + + fun setVipIdentificationVisible(visible: Boolean) { + UiThreadHandler.post { + ivVipIdentification.visibility = visibility + } + } + +} \ 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/warning/MoGoWarningProvider.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/warning/MoGoWarningProvider.kt index 884d2cc8db..5459b2225e 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/warning/MoGoWarningProvider.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/warning/MoGoWarningProvider.kt @@ -120,6 +120,10 @@ class MoGoWarningProvider : IMoGoWaringProvider { } } + override fun vipIdentification(visible: Boolean) { + mMoGoHmiFragment?.vipIdentification(visible) + } + override fun onDestroy() { Log.d(TAG, "onDestroy") } diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/v2x_vip_identification_vr.png b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/v2x_vip_identification_vr.png new file mode 100644 index 0000000000000000000000000000000000000000..b4f1cc779cab9bc48ed0ac35524e170c62c6f093 GIT binary patch literal 8183 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 literal 0 HcmV?d00001 diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/fragment_hmi.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/fragment_hmi.xml index d061568580..a856e8ea80 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/fragment_hmi.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/fragment_hmi.xml @@ -24,6 +24,14 @@ app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintTop_toTopOf="parent" /> + + + + + + + \ 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 0cf2df7226..39259f338f 100644 --- a/core/function-impl/mogo-core-function-v2x/build.gradle +++ b/core/function-impl/mogo-core-function-v2x/build.gradle @@ -43,6 +43,8 @@ android { 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 @@ -54,11 +56,17 @@ dependencies { implementation rootProject.ext.dependencies.adasHigh if (Boolean.valueOf(USE_MAVEN_PACKAGE)) { + implementation rootProject.ext.dependencies.mogoutils //TODO 待将util中网络请求部分转移完毕后解除依赖关系 + implementation rootProject.ext.dependencies.modulecommon + implementation rootProject.ext.dependencies.mogo_core_data implementation rootProject.ext.dependencies.mogo_core_utils implementation rootProject.ext.dependencies.mogo_core_function_api implementation rootProject.ext.dependencies.mogo_core_function_call } else { + implementation project(":foudations:mogo-utils") //TODO 待将util中网络请求部分转移完毕后解除依赖关系 + implementation project(':modules:mogo-module-common') + implementation project(':core:mogo-core-data') implementation project(':core:mogo-core-utils') implementation project(':core:mogo-core-function-api') 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 new file mode 100644 index 0000000000..5b9758baec --- /dev/null +++ b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/V2XProvider.kt @@ -0,0 +1,24 @@ +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.constants.MogoServicePaths.PATH_V2X_MODULE +import com.mogo.eagle.core.function.api.base.IMoGoFunctionServerProvider +import com.mogo.eagle.core.function.call.trafficlight.CallTrafficLightManager +import com.mogo.eagle.core.function.v2x.vip.VipCarManager + +@Route(path = PATH_V2X_MODULE) +class V2XProvider : IMoGoFunctionServerProvider { + + override val functionName: String + get() = "V2XProvider" + + override fun init(context: Context) { + CallTrafficLightManager.getTrafficLightProvider().initTrafficLightServer(context) + VipCarManager.INSTANCE.initServer(context) + } + + override fun onDestroy() { + VipCarManager.INSTANCE.destroy() + } +} \ 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/trafficlight/TrafficLightConst.kt b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/trafficlight/TrafficLightConst.kt new file mode 100644 index 0000000000..bb1dc56689 --- /dev/null +++ b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/trafficlight/TrafficLightConst.kt @@ -0,0 +1,26 @@ +package com.mogo.eagle.core.function.v2x.trafficlight + +import com.mogo.commons.debug.DebugConfig + +class TrafficLightConst { + + companion object { + const val MODULE_NAME = "MODULE_V2X_TRAFFIC_LIGHT" + + private const val HOST_DEV = "http://dzt-test.zhidaozhixing.com" + private const val HOST_TEST = "http://dzt-test.zhidaozhixing.com" + private const val HOST_DEMO = "http://dzt-show.zhidaozhixing.com" + private const val HOST_PRODUCT = "http://dzt.zhidaozhixing.com" + + fun getNetHost(): String { + return when (DebugConfig.getNetMode()) { + DebugConfig.NET_MODE_DEV -> HOST_DEV + DebugConfig.NET_MODE_QA -> HOST_TEST + DebugConfig.NET_MODE_DEMO -> HOST_DEMO + else -> HOST_PRODUCT + } + } + } +} + + diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/trafficlight/TrafficLightHMIManager.kt b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/trafficlight/TrafficLightHMIManager.kt new file mode 100644 index 0000000000..77d9c1ae24 --- /dev/null +++ b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/trafficlight/TrafficLightHMIManager.kt @@ -0,0 +1,66 @@ +package com.mogo.eagle.core.function.v2x.trafficlight + +import android.content.Context +import com.mogo.eagle.core.data.trafficlight.* +import com.mogo.eagle.core.function.call.hmi.CallerHmiManager + +class TrafficLightHMIManager { + + companion object { + const val TAG = "TrafficLightHMIManager" + + val INSTANCE: TrafficLightHMIManager by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { + TrafficLightHMIManager() + } + } + + private var mContext: Context? = null + private var initView: Boolean = false + + fun init(context: Context) { + mContext = context + } + + fun updateTrafficLight(trafficLightResult: TrafficLightResult) { + if (!initView) { + initView = true + CallerHmiManager.showWarningTrafficLight(0) + } + //todo 需要确认场景是否一致 +// val leftTrafficLightStatus = trafficLightResult.laneList.left +// callerHMIToChangeLight(leftTrafficLightStatus) +// +// val midTrafficLightStatus = trafficLightResult.laneList.mid +// callerHMIToChangeLight(midTrafficLightStatus) +// +// val rightTrafficLightStatus = trafficLightResult.laneList.right +// callerHMIToChangeLight(rightTrafficLightStatus) + } + + private fun callerHMIToChangeLight(trafficLightStatus: TrafficLightStatus) { + when { + trafficLightStatus.isGreen() -> { + CallerHmiManager.showWarningTrafficLight(3) + if (trafficLightStatus.remain != 99999) { + CallerHmiManager.changeCountdownGreen(trafficLightStatus.remain) + } + } + trafficLightStatus.isFlashGreen() -> { + CallerHmiManager.showWarningTrafficLight(3) + CallerHmiManager.changeCountdownGreen(trafficLightStatus.remain) + } + trafficLightStatus.isYellow() -> { + CallerHmiManager.showWarningTrafficLight(2) + CallerHmiManager.changeCountdownYellow(trafficLightStatus.remain) + } + trafficLightStatus.isRed() -> { + CallerHmiManager.showWarningTrafficLight(1) + CallerHmiManager.changeCountdownRed(trafficLightStatus.remain) + } + } + } + + fun hideTrafficLight() { + CallerHmiManager.disableWarningTrafficLight() + } +} \ 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/trafficlight/TrafficLightProvider.kt b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/trafficlight/TrafficLightProvider.kt new file mode 100644 index 0000000000..6bf1237f1b --- /dev/null +++ b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/trafficlight/TrafficLightProvider.kt @@ -0,0 +1,45 @@ +package com.mogo.eagle.core.function.v2x.trafficlight + +import android.content.Context +import com.alibaba.android.arouter.facade.annotation.Route +import com.mogo.eagle.core.data.constants.MogoServicePaths +import com.mogo.eagle.core.data.trafficlight.TrafficLightDetail +import com.mogo.eagle.core.function.api.trafficlight.ITrafficLightProvider +import com.mogo.eagle.core.function.v2x.trafficlight.TrafficLightConst.Companion.MODULE_NAME +import com.mogo.eagle.core.function.v2x.trafficlight.core.MogoTrafficLightManager +import com.mogo.utils.logger.Logger + +@Route(path = MogoServicePaths.PATH_TRAFFIC_LIGHT) +class TrafficLightProvider : ITrafficLightProvider { + + override val functionName: String + get() = MODULE_NAME + + override fun init(context: Context) { + + } + + override fun initTrafficLightServer(context: Context) { + MogoTrafficLightManager.INSTANCE.initServer(context) + TrafficLightHMIManager.INSTANCE.init(context) + } + + override fun getTrafficLightCurrentState(): TrafficLightDetail? { + return MogoTrafficLightManager.INSTANCE.getTrafficLightCurrentState() + } + + override fun turnLightToGreen( + lightId: Int, + crossingNo: String, + heading: Double, + onSuccess: (() -> Unit), + onError: ((String) -> Unit) + ) { + return MogoTrafficLightManager.INSTANCE.turnLightToGreen(lightId, crossingNo,heading,onSuccess, onError) + } + + override fun onDestroy() { + //todo MogoTrafficLightManager onDestroy + } + +} \ 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/trafficlight/core/MogoTrafficLightManager.kt b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/trafficlight/core/MogoTrafficLightManager.kt new file mode 100644 index 0000000000..82430b304a --- /dev/null +++ b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/trafficlight/core/MogoTrafficLightManager.kt @@ -0,0 +1,134 @@ +package com.mogo.eagle.core.function.v2x.trafficlight.core + +import android.content.Context +import android.location.Location +import android.os.Handler +import com.mogo.cloud.commons.utils.CoordinateUtils +import com.mogo.eagle.core.data.map.MogoLatLng +import com.mogo.eagle.core.data.trafficlight.TrafficLightDetail +import com.mogo.eagle.core.data.trafficlight.TrafficLightResult +import com.mogo.eagle.core.function.call.trafficlight.CallTrafficLightListenerManager +import com.mogo.eagle.core.function.v2x.trafficlight.TrafficLightHMIManager +import com.mogo.eagle.core.function.v2x.trafficlight.core.TrafficLightThreadHandler.Companion.MSG_WHAT_LOOP_SEARCH_CROSS_ROAD +import com.mogo.eagle.core.function.v2x.trafficlight.core.TrafficLightThreadHandler.Companion.MSG_WHAT_LOOP_SEARCH_TRAFFIC_LIGHT +import com.mogo.eagle.core.function.v2x.trafficlight.core.TrafficLightThreadHandler.Companion.MSG_WHAT_STOP_SEARCH_CROSS_ROAD +import com.mogo.eagle.core.function.v2x.trafficlight.core.TrafficLightThreadHandler.Companion.MSG_WHAT_STOP_SEARCH_TRAFFIC_LIGHT +import com.mogo.eagle.core.function.v2x.trafficlight.network.TrafficLightNetWorkModel +import com.mogo.eagle.core.utilcode.mogo.thread.WorkThreadHandler +import com.mogo.map.navi.IMogoCarLocationChangedListener2 +import com.mogo.module.common.MogoApisHandler +import com.mogo.utils.logger.Logger + +class MogoTrafficLightManager : IMogoCarLocationChangedListener2 { + + companion object { + + const val TAG = "MogoTrafficLightManager" + + val INSTANCE: MogoTrafficLightManager by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { + MogoTrafficLightManager() + } + } + + private var mContext: Context? = null + private val trafficLightNetWorkModel = TrafficLightNetWorkModel() + private var mLocation: Location? = null + private var roadId: String? = null + private var trafficLightResult: TrafficLightResult? = null + + private var mThreadHandler: Handler? = null + + fun initServer(context: Context) { + mContext = context + MogoApisHandler.getInstance().apis.registerCenterApi.registerCarLocationChangedListener(TAG, this) + Logger.d(TAG, "ready to start mThreadHandler") + mThreadHandler = + TrafficLightThreadHandler(WorkThreadHandler.newInstance("TrafficLight").looper, + { + Logger.d(TAG, "loop search roadID , mLocation : $mLocation") + mLocation?.let { it -> + val tileId = + MogoApisHandler.getInstance().apis.mapServiceApi.mapUIController.getTileId( + it.longitude, + it.latitude + ) + trafficLightNetWorkModel.requestRoadID(tileId, it.latitude, it.longitude, { + mThreadHandler!!.sendEmptyMessage(MSG_WHAT_STOP_SEARCH_CROSS_ROAD) + roadId = it + }, { + Logger.d(TAG, "request road id error : $it") + }) + } + }, { + //stop loop search road id + trafficLightNetWorkModel.cancelRequestRoadID() + //开始请求红绿灯 + mThreadHandler!!.sendEmptyMessage(MSG_WHAT_LOOP_SEARCH_TRAFFIC_LIGHT) + }, { + //start loop traffic light + mLocation?.let { + trafficLightNetWorkModel.requestTrafficLight( + it.latitude, it.longitude, it.bearing.toDouble(), roadId!!, { result -> + trafficLightResult = result + TrafficLightHMIManager.INSTANCE.updateTrafficLight(result) + CallTrafficLightListenerManager.invokeTrafficLightStatus(result) + }, + { errorMsg -> + Logger.d(TAG, "request Traffic Light error : $errorMsg") + }) + } + }, { + //stop loop traffic light + trafficLightNetWorkModel.cancelRequestTrafficLight() + //刚经过红绿灯,加入3秒延时请求路口ID + mThreadHandler!!.sendEmptyMessageDelayed( + MSG_WHAT_LOOP_SEARCH_CROSS_ROAD, + 3_000L + ) + }) + mThreadHandler!!.sendEmptyMessageDelayed(MSG_WHAT_LOOP_SEARCH_CROSS_ROAD, 5_000L) + } + + fun getTrafficLightCurrentState(): TrafficLightDetail? { + trafficLightResult?.let { + return it.laneList + } + return null + } + + fun turnLightToGreen( + lightId: Int, + crossingNo: String, + heading: Double, + onSuccess: (() -> Unit), + onError: ((String) -> Unit) + ) { + trafficLightNetWorkModel.turnLightToGreen(lightId, crossingNo, heading, onSuccess, onError) + } + + override fun onCarLocationChanged(latLng: MogoLatLng?) { + + } + + override fun onCarLocationChanged2(latLng: Location?) { + latLng?.let { + mLocation = latLng + + // 检测是否开过路口,开过路口则停止读灯。并重置 trafficLightResult 值为 null + if (trafficLightResult != null + && (CoordinateUtils.calculateLineDistance( + it.longitude, + it.latitude, + trafficLightResult!!.lon, + trafficLightResult!!.lat + ) < 5) + ) { + trafficLightResult = null + TrafficLightHMIManager.INSTANCE.hideTrafficLight() + CallTrafficLightListenerManager.resetTrafficLightData() + mThreadHandler!!.sendEmptyMessage(MSG_WHAT_STOP_SEARCH_TRAFFIC_LIGHT) + } + } + } + +} \ 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/trafficlight/core/TrafficLightThreadHandler.kt b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/trafficlight/core/TrafficLightThreadHandler.kt new file mode 100644 index 0000000000..9bddcf3ac6 --- /dev/null +++ b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/trafficlight/core/TrafficLightThreadHandler.kt @@ -0,0 +1,64 @@ +package com.mogo.eagle.core.function.v2x.trafficlight.core + +import android.os.Handler +import android.os.Looper +import android.os.Message +import com.mogo.eagle.core.function.v2x.trafficlight.TrafficLightConst +import com.mogo.utils.logger.Logger + +class TrafficLightThreadHandler : Handler { + + private var loopSearchCrossRoad: (() -> Unit)? = null + private var stopSearchCrossRoad: (() -> Unit)? = null + private var loopSearchTrafficLight: (() -> Unit)? = null + private var stopSearchTrafficLight: (() -> Unit)? = null + + constructor( + looper: Looper, + loopSearchCrossRoad: (() -> Unit), + stopSearchCrossRoad: (() -> Unit), + loopSearchTrafficLight: (() -> Unit), + stopSearchTrafficLight: (() -> Unit) + ) : super(looper) { + this.loopSearchCrossRoad = loopSearchCrossRoad + this.stopSearchCrossRoad = stopSearchCrossRoad + this.loopSearchTrafficLight = loopSearchTrafficLight + this.stopSearchTrafficLight = stopSearchTrafficLight + } + + companion object { + const val MSG_WHAT_LOOP_SEARCH_CROSS_ROAD = 1 + const val MSG_WHAT_STOP_SEARCH_CROSS_ROAD = 2 + const val MSG_WHAT_LOOP_SEARCH_TRAFFIC_LIGHT = 3 + const val MSG_WHAT_STOP_SEARCH_TRAFFIC_LIGHT = 4 + } + + override fun handleMessage(msg: Message) { + super.handleMessage(msg) + when (msg.what) { + MSG_WHAT_LOOP_SEARCH_CROSS_ROAD -> { + //handler轮询,后续从地图处获取到车道线(前提获取车道线没有异步调用),来优化轮询时长 + Logger.d(TrafficLightConst.MODULE_NAME,"MSG_WHAT_LOOP_SEARCH_CROSS_ROAD") + loopSearchCrossRoad?.invoke() + sendEmptyMessageDelayed(MSG_WHAT_LOOP_SEARCH_CROSS_ROAD,1_000L) + } + MSG_WHAT_STOP_SEARCH_CROSS_ROAD -> { + if(hasMessages(MSG_WHAT_LOOP_SEARCH_CROSS_ROAD)){ + removeMessages(MSG_WHAT_LOOP_SEARCH_CROSS_ROAD) + } + stopSearchCrossRoad?.invoke() + } + MSG_WHAT_LOOP_SEARCH_TRAFFIC_LIGHT -> { + loopSearchTrafficLight?.invoke() + sendEmptyMessageDelayed(MSG_WHAT_LOOP_SEARCH_TRAFFIC_LIGHT,500L) + } + MSG_WHAT_STOP_SEARCH_TRAFFIC_LIGHT -> { + if(hasMessages(MSG_WHAT_LOOP_SEARCH_TRAFFIC_LIGHT)){ + removeMessages(MSG_WHAT_LOOP_SEARCH_TRAFFIC_LIGHT) + } + stopSearchTrafficLight?.invoke() + } + } + } + +} \ 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/trafficlight/network/TrafficLightApiService.kt b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/trafficlight/network/TrafficLightApiService.kt new file mode 100644 index 0000000000..6badf1f773 --- /dev/null +++ b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/trafficlight/network/TrafficLightApiService.kt @@ -0,0 +1,27 @@ +package com.mogo.eagle.core.function.v2x.trafficlight.network + +import com.mogo.eagle.core.data.BaseResponse +import com.mogo.eagle.core.data.trafficlight.RoadIDResult +import com.mogo.eagle.core.data.trafficlight.TrafficLightResult +import retrofit2.http.FieldMap +import retrofit2.http.FormUrlEncoded +import retrofit2.http.POST + +interface TrafficLightApiService { + + //获取前方路口RoadID + @FormUrlEncoded + @POST("ai-roadInfo-service/cross/near") + suspend fun getFrontRoadID(@FieldMap roadID: Map): BaseResponse + + //获取前方红绿灯状态 + @FormUrlEncoded + @POST("mec-etl-server/light//bgd/channel/realTime") + suspend fun getTrafficLight(@FieldMap status: Map): BaseResponse + + //变灯 + @FormUrlEncoded + @POST("mec-etl-server/light/bdg/newTask") + suspend fun changeLight(@FieldMap turnLight: Map): BaseResponse + +} \ 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/trafficlight/network/TrafficLightNetWorkModel.kt b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/trafficlight/network/TrafficLightNetWorkModel.kt new file mode 100644 index 0000000000..aabdac0ea3 --- /dev/null +++ b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/trafficlight/network/TrafficLightNetWorkModel.kt @@ -0,0 +1,123 @@ +package com.mogo.eagle.core.function.v2x.trafficlight.network + +import com.google.gson.Gson +import com.mogo.cloud.network.RetrofitFactory +import com.mogo.cloud.passport.MoGoAiCloudClientConfig +import com.mogo.eagle.core.data.BaseResponse +import com.mogo.eagle.core.data.trafficlight.* +import com.mogo.eagle.core.function.v2x.trafficlight.TrafficLightConst +import com.mogo.utils.network.apiCall +import com.mogo.utils.network.cancel +import com.mogo.utils.network.request + +class TrafficLightNetWorkModel { + + private fun getNetWorkApi(baseUrl: String = TrafficLightConst.getNetHost()): TrafficLightApiService { + return RetrofitFactory.getInstanceNoCallAdapter(baseUrl)!! + .create(TrafficLightApiService::class.java) + } + + fun requestRoadID( + tileID: Long, + lat: Double, + lon: Double, + onSuccess: ((String) -> Unit), + onError: ((String) -> Unit), + ) { + request>("requestRoadID") { + val map = hashMapOf() + start { + val roadIDRequestData = RoadIDRequestData(tileID, lat, lon) + map["sn"] = MoGoAiCloudClientConfig.getInstance().sn + map["data"] = Gson().toJson(roadIDRequestData) + } + loader { + apiCall { + getNetWorkApi().getFrontRoadID(map) + } + } + onSuccess { + if(it.result!= null){ + onSuccess.invoke(it.result.crossId) + }else{ + onSuccess.invoke("11078") + } + } + onError { + if (it.message != null) { + onError.invoke(it.message!!) + } + } + } + } + + fun cancelRequestRoadID() { + cancel("requestRoadID") + } + + fun requestTrafficLight( + lat: Double, + lon: Double, + bearing: Double, + roadId: String, + onSuccess: ((TrafficLightResult) -> Unit), + onError: ((String) -> Unit), + ) { + request>("requestTrafficLight") { + val map = hashMapOf() + start { + val trafficLightRequestData = TrafficLightRequestData(lat, lon, bearing, roadId) + map["sn"] = MoGoAiCloudClientConfig.getInstance().sn + map["data"] = Gson().toJson(trafficLightRequestData) + } + loader { + apiCall { + getNetWorkApi().getTrafficLight(map) + } + } + onSuccess { + onSuccess.invoke(it.result) + } + onError { + if (it.message != null) { + onError.invoke(it.message!!) + } + } + } + } + + fun cancelRequestTrafficLight() { + cancel("requestTrafficLight") + } + + fun turnLightToGreen( + lightId: Int, + crossingNo: String, + heading: Double, + onSuccess: (() -> Unit), + onError: ((String) -> Unit) + ) { + request> { + val map = hashMapOf() + start { + val trafficLightRequestData = ChangeLightRequestData(lightId,crossingNo,heading) + map["sn"] = MoGoAiCloudClientConfig.getInstance().sn + map["data"] = Gson().toJson(trafficLightRequestData) + } + loader { + apiCall { + getNetWorkApi().changeLight(map) + } + } + onSuccess { + onSuccess.invoke() + } + onError { + if (it.message != null) { + onError.invoke(it.message!!) + } + } + } + } + +} \ 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/vip/VipCarManager.kt b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/vip/VipCarManager.kt new file mode 100644 index 0000000000..d3c0d29fc6 --- /dev/null +++ b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/vip/VipCarManager.kt @@ -0,0 +1,141 @@ +package com.mogo.eagle.core.function.v2x.vip + +import android.content.Context +import android.location.Location +import com.mogo.cloud.commons.utils.CoordinateUtils +import com.mogo.eagle.core.data.map.MogoLatLng +import com.mogo.eagle.core.data.trafficlight.TrafficLightResult +import com.mogo.eagle.core.data.trafficlight.turnRedAtOnce +import com.mogo.eagle.core.data.v2x.VipMessage +import com.mogo.eagle.core.function.api.hmi.warning.IMoGoWarningStatusListener +import com.mogo.eagle.core.function.api.trafficlight.IMoGoTrafficLightListener +import com.mogo.eagle.core.function.call.hmi.CallerHmiManager +import com.mogo.eagle.core.function.call.trafficlight.CallTrafficLightListenerManager +import com.mogo.eagle.core.function.v2x.trafficlight.core.MogoTrafficLightManager +import com.mogo.map.location.MogoLocation +import com.mogo.map.navi.IMogoCarLocationChangedListener2 +import com.mogo.module.common.MogoApisHandler +import com.mogo.module.common.enums.EventTypeEnum +import com.mogo.service.cloud.socket.IMogoOnMessageListener +import com.mogo.utils.logger.Logger + +class VipCarManager : IMogoOnMessageListener, IMoGoTrafficLightListener, + IMogoCarLocationChangedListener2 { + + companion object { + + const val TAG = "VipCarManager" + + val INSTANCE: VipCarManager by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { + VipCarManager() + } + } + + private var mContext: Context? = null + private var mLocation: Location? = null + private var turnLightEnd = true + private var result: TrafficLightResult? = null + + override fun init(context: Context?) { + Logger.d(TAG, "init provider") + } + + fun initServer(context: Context) { + mContext = context + MogoApisHandler.getInstance().apis.registerCenterApi.registerCarLocationChangedListener(TAG, this) + MogoApisHandler.getInstance().apis.getSocketManagerApi(context) + .registerOnMessageListener(401025, this) + } + + override fun target(): Class { + return VipMessage::class.java + } + + override fun onMsgReceived(vipMessage: VipMessage?) { + vipMessage?.let { + when (it.vipType) { + 0 -> { + CallerHmiManager.vipIdentification(false) + CallTrafficLightListenerManager.unRegisterTrafficLightListener(TAG) + } + 1 -> { + CallerHmiManager.vipIdentification(true) + CallTrafficLightListenerManager.registerTrafficLightListener(TAG, this) + } + } + } + } + + override fun onTrafficLightStatus(trafficLightResult: TrafficLightResult) { + turnLight() + this.result = trafficLightResult + //如果上次结果和本次灯态结果变化比较大,则已变灯,控制HMI展示弹窗 + if ((result!!.laneList.mid.remain - trafficLightResult.laneList.mid.remain) > 3) { + CallerHmiManager.showWarningV2X(EventTypeEnum.TYPE_VIP_IDENTIFICATION.poiType.toInt(), + "", + EventTypeEnum.TYPE_VIP_IDENTIFICATION.tts, + EventTypeEnum.TYPE_VIP_IDENTIFICATION.poiType, + object : IMoGoWarningStatusListener { + override fun onShow() {} + override fun onDismiss() { + } + }) + } + + //可作为补偿措施,暂不启用 +// mLocation?.let { +// if (canGetThroughCross(it, trafficLightResult)) { +// turnLight() +// } +// } + } + + private fun canGetThroughCross( + it: MogoLocation, + trafficLightResult: TrafficLightResult + ): Boolean { + return if (CoordinateUtils.calculateLineDistance( + it.longitude, + it.latitude, + trafficLightResult.lon, + trafficLightResult.lat + ) < 20 + && turnLightEnd + && trafficLightResult.laneList.mid.turnRedAtOnce() + ) { + turnLightEnd = false + false + } else { + true + } + } + + private fun turnLight() { + result?.let { + MogoTrafficLightManager.INSTANCE.turnLightToGreen( + it.lightId, + it.crossId, + mLocation!!.bearing.toDouble(), { + Logger.d(TAG, "变灯请求成功") + }, { errorMsg -> + Logger.d(TAG, "变灯请求失败 msg : $errorMsg") + }) + } + } + + fun destroy() { + MogoApisHandler.getInstance().apis.getSocketManagerApi(mContext) + .unregisterLifecycleListener(401025) + mContext = null + } + + override fun onCarLocationChanged(latLng: MogoLatLng?) { + } + + override fun onCarLocationChanged2(latLng: Location?) { + latLng?.let { + mLocation = it + } + } + +} \ 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/占位文件.java b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/占位文件.java deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/BaseResponse.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/BaseResponse.kt new file mode 100644 index 0000000000..3e5649b218 --- /dev/null +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/BaseResponse.kt @@ -0,0 +1,5 @@ +package com.mogo.eagle.core.data + +class BaseResponse(val code: Int, val msg: String, val result: T) { + +} 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 6139a3b512..1645e0c300 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 @@ -334,6 +334,17 @@ public class MogoServicePaths { @Deprecated public static final String PATH_CHECK = "/check/api"; + /** + * v2x 模块 + */ + public static final String PATH_V2X_MODULE = "/v2x/module"; + + /** + * 红绿灯模块 + */ + @Keep + public static final String PATH_TRAFFIC_LIGHT = "/v2x/trafficlight"; + /** * 前方碰撞预警 未碰撞 */ diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/trafficlight/BaseLaneInfoList.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/trafficlight/BaseLaneInfoList.kt new file mode 100644 index 0000000000..fa38264246 --- /dev/null +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/trafficlight/BaseLaneInfoList.kt @@ -0,0 +1,6 @@ +package com.mogo.eagle.core.data.trafficlight + +//驶入路口需要经过路段 +class BaseLaneInfoList(val tileId: Int, val roadId: String, val laneNo: Int) { + +} \ No newline at end of file diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/trafficlight/ChangeLightRequestData.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/trafficlight/ChangeLightRequestData.kt new file mode 100644 index 0000000000..ddac2bda46 --- /dev/null +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/trafficlight/ChangeLightRequestData.kt @@ -0,0 +1,9 @@ +package com.mogo.eagle.core.data.trafficlight + +class ChangeLightRequestData( + val lightId: Int, //红绿灯ID + val crossingNo: String, //路口ID + val heading: Double, //行车航向角 + val action: String? = "" //保留字段,暂时没用 +) { +} \ No newline at end of file diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/trafficlight/RoadIDRequestData.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/trafficlight/RoadIDRequestData.kt new file mode 100644 index 0000000000..7d5ea6ab9d --- /dev/null +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/trafficlight/RoadIDRequestData.kt @@ -0,0 +1,5 @@ +package com.mogo.eagle.core.data.trafficlight + +//获取路口ID请求数据 +class RoadIDRequestData(val tileId: Long, val lat: Double, val lon: Double) { +} \ No newline at end of file diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/trafficlight/RoadIDResult.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/trafficlight/RoadIDResult.kt new file mode 100644 index 0000000000..1066b628cb --- /dev/null +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/trafficlight/RoadIDResult.kt @@ -0,0 +1,16 @@ +package com.mogo.eagle.core.data.trafficlight + +//车辆行驶前方100米范围内的 路口ID 查询结果 +/** + * RSCrossId : RS系统对应路口id + * crossId : ai云路口id + * distance : 当前车道需驶入到距离终点距离 + * baseLaneInfoList : 驶入路口需要经过路段 + */ +class RoadIDResult( + val RSCrossId: String, + val crossId: String, + val distance: Double, + val baseLaneInfoList: BaseLaneInfoList +) { +} \ No newline at end of file diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/trafficlight/TrafficLightDetail.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/trafficlight/TrafficLightDetail.kt new file mode 100644 index 0000000000..a9e8efb243 --- /dev/null +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/trafficlight/TrafficLightDetail.kt @@ -0,0 +1,12 @@ +package com.mogo.eagle.core.data.trafficlight + +/** + * 具体灯态信息 + */ +class TrafficLightDetail( + val left: TrafficLightStatus, //左灯 + val mid: TrafficLightStatus, //中间灯 + val right: TrafficLightStatus //右灯 +) { + +} \ No newline at end of file diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/trafficlight/TrafficLightRequestData.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/trafficlight/TrafficLightRequestData.kt new file mode 100644 index 0000000000..1f9fcd5bec --- /dev/null +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/trafficlight/TrafficLightRequestData.kt @@ -0,0 +1,12 @@ +package com.mogo.eagle.core.data.trafficlight + +/** + * 路口信号灯请求数据 + */ +class TrafficLightRequestData( + val lat: Double, + val lon: Double, + val bearing: Double, //航向角 + val roadId: String //路口ID +) { +} \ No newline at end of file diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/trafficlight/TrafficLightResult.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/trafficlight/TrafficLightResult.kt new file mode 100644 index 0000000000..0736ec429d --- /dev/null +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/trafficlight/TrafficLightResult.kt @@ -0,0 +1,14 @@ +package com.mogo.eagle.core.data.trafficlight + +/** + * 路口红绿灯请求返回数据 + */ +class TrafficLightResult( + val crossId: String, //roadID + val lat: Double, //纬度 + val lon: Double, //经度 + val direction: String, //航向角 + val lightId:Int, //红绿灯ID + val laneList: TrafficLightDetail //灯态具体信息 +) { +} \ No newline at end of file diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/trafficlight/TrafficLightStatus.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/trafficlight/TrafficLightStatus.kt new file mode 100644 index 0000000000..0a69985019 --- /dev/null +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/trafficlight/TrafficLightStatus.kt @@ -0,0 +1,37 @@ +package com.mogo.eagle.core.data.trafficlight + + +fun TrafficLightStatus.isRed(): Boolean { + return color == "R" +} + +fun TrafficLightStatus.isGreen(): Boolean { + return color == "G" +} + +fun TrafficLightStatus.isFlashGreen(): Boolean { + return color == "FG" +} + +fun TrafficLightStatus.isYellow(): Boolean { + return color == "Y" +} + +fun TrafficLightStatus.isBlack(): Boolean { + return color == "B" +} + +fun TrafficLightStatus.turnRedAtOnce(): Boolean { + return isFlashGreen() || isYellow() +} + +/** + * 红绿灯路口具体灯态信息 + */ +class TrafficLightStatus( + val phaseNo: String, //相位编号 + val color: String, //灯态: 红灯-R,绿灯-G,绿闪-FG,黄-Y,B-黑 + val remain: Int //倒计时-秒 +) { + +} \ No newline at end of file diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/v2x/VipMessage.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/v2x/VipMessage.kt new file mode 100644 index 0000000000..ab9fd581af --- /dev/null +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/v2x/VipMessage.kt @@ -0,0 +1,10 @@ +package com.mogo.eagle.core.data.v2x + +/** + * 变更Vip消息 + * timeOut: 超时时间 + * vipType: Vip --1 变成VIP,--0 撤销VIP + * content: VIP消息 + */ +class VipMessage(val timeOut: Long, val vipType: Int, val content: String) { +} \ 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 index 88e703e84c..624ec9de3b 100644 --- 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 @@ -45,11 +45,11 @@ interface IMoGoWaringProvider : IMoGoFunctionProvider { * @param tag tag绑定弹窗的标志 */ fun showWarningV2X( - v2xType: Int, - alertContent: String?, - ttsContent: String?, - tag: String?, - listenerIMoGo: IMoGoWarningStatusListener? + v2xType: Int, + alertContent: String?, + ttsContent: String?, + tag: String?, + listenerIMoGo: IMoGoWarningStatusListener? ) /** @@ -132,4 +132,9 @@ interface IMoGoWaringProvider : IMoGoFunctionProvider { * @param normalData 推送消息体 */ fun showNoticeNormalData(normalData: NoticeNormalData?) + + /** + * 展示VIP标识 + */ + fun vipIdentification(visible: Boolean) } \ No newline at end of file diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/trafficlight/IMoGoTrafficLightListener.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/trafficlight/IMoGoTrafficLightListener.kt new file mode 100644 index 0000000000..d5feef61a6 --- /dev/null +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/trafficlight/IMoGoTrafficLightListener.kt @@ -0,0 +1,13 @@ +package com.mogo.eagle.core.function.api.trafficlight + +import com.alibaba.android.arouter.facade.template.IProvider +import com.mogo.eagle.core.data.trafficlight.TrafficLightResult + +interface IMoGoTrafficLightListener :IProvider{ + + /** + * 当前红绿灯状态,包含红绿灯灯态,倒计时秒数,灯态经纬度,时间戳,剩余时间 + */ + fun onTrafficLightStatus(trafficLightResult: TrafficLightResult) + +} \ No newline at end of file diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/trafficlight/ITrafficLightProvider.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/trafficlight/ITrafficLightProvider.kt new file mode 100644 index 0000000000..90f34dd3f8 --- /dev/null +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/trafficlight/ITrafficLightProvider.kt @@ -0,0 +1,26 @@ +package com.mogo.eagle.core.function.api.trafficlight + +import android.content.Context +import com.mogo.eagle.core.data.trafficlight.TrafficLightDetail +import com.mogo.eagle.core.function.api.base.IMoGoFunctionServerProvider + +interface ITrafficLightProvider : IMoGoFunctionServerProvider { + + fun initTrafficLightServer(context: Context) + + /** + * 获取当前红绿灯数据状态 + */ + fun getTrafficLightCurrentState(): TrafficLightDetail? + + /** + * 变灯 + */ + fun turnLightToGreen( + lightId: Int, + crossingNo: String, + heading: Double, + onSuccess: (() -> Unit), + onError: ((String) -> Unit) + ) +} \ 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 1fa8193f60..0138c4fb7b 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 @@ -174,4 +174,12 @@ object CallerHmiManager : CallerBase() { fun showNormalBanner(noticeNormal: NoticeNormalData) { waringProviderApi.showNoticeNormalData(noticeNormal) } + + /** + * 展示VIP标识 + */ + fun vipIdentification(visible: Boolean){ + waringProviderApi.vipIdentification(visible) + } + } \ No newline at end of file diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/trafficlight/CallTrafficLightListenerManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/trafficlight/CallTrafficLightListenerManager.kt new file mode 100644 index 0000000000..ee96f69987 --- /dev/null +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/trafficlight/CallTrafficLightListenerManager.kt @@ -0,0 +1,66 @@ +package com.mogo.eagle.core.function.call.trafficlight + +import androidx.annotation.Nullable +import com.mogo.eagle.core.data.trafficlight.TrafficLightResult +import com.mogo.eagle.core.function.api.trafficlight.IMoGoTrafficLightListener +import com.mogo.eagle.core.utilcode.mogo.logger.Logger + +object CallTrafficLightListenerManager { + + private val TAG = "CallTrafficLightListenerManager" + + private val M_TRAFFIC_LIGHT_LISTENER: HashMap = + HashMap() + + private var trafficLightResult:TrafficLightResult? = null + + /** + * 添加监听 + * @param tag 标记,用来注销监听使用 + * @param listener 监听回调 + */ + fun registerTrafficLightListener( + @Nullable tag: String, + @Nullable listener: IMoGoTrafficLightListener + ) { + trafficLightResult?.let { + listener.onTrafficLightStatus(it) + } + M_TRAFFIC_LIGHT_LISTENER[tag] = listener + } + + /** + * 删除监听 + * @param tag 标记,用来注销监听使用 + */ + fun unRegisterTrafficLightListener(@Nullable tag: String) { + M_TRAFFIC_LIGHT_LISTENER.remove(tag) + } + + /** + * 删除自动驾驶按钮选中监听 + * @param listener 要删除的监听对象 + */ + fun unRegisterTrafficLightListener(@Nullable listener: IMoGoTrafficLightListener) { + M_TRAFFIC_LIGHT_LISTENER.forEach { + if (it.value == listener) { + M_TRAFFIC_LIGHT_LISTENER.remove(it.key) + } + } + } + + fun invokeTrafficLightStatus(trafficLightResult: TrafficLightResult) { + this.trafficLightResult = trafficLightResult + M_TRAFFIC_LIGHT_LISTENER.forEach { + val tag = it.key + Logger.d(TAG, "invokeTrafficLightStatus tag is : $tag") + val listener = it.value + listener.onTrafficLightStatus(trafficLightResult) + } + } + + fun resetTrafficLightData(){ + trafficLightResult = null + } + +} \ No newline at end of file diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/trafficlight/CallTrafficLightManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/trafficlight/CallTrafficLightManager.kt new file mode 100644 index 0000000000..efc7a7d7ee --- /dev/null +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/trafficlight/CallTrafficLightManager.kt @@ -0,0 +1,20 @@ +package com.mogo.eagle.core.function.call.trafficlight + +import com.mogo.eagle.core.data.constants.MogoServicePaths +import com.mogo.eagle.core.function.api.trafficlight.ITrafficLightProvider +import com.mogo.eagle.core.function.call.base.CallerBase + +object CallTrafficLightManager : CallerBase() { + + fun getTrafficLightProvider(): ITrafficLightProvider { + return getApiInstance( + ITrafficLightProvider::class.java, + MogoServicePaths.PATH_TRAFFIC_LIGHT + ) + } + + fun getTrafficLightCurrentState() { + getTrafficLightProvider().getTrafficLightCurrentState() + } + +} \ No newline at end of file diff --git a/core/mogo-core-res/src/main/function-hmi-res/drawable-xxhdpi/icon_warning_v2x_vip_turn_light.png b/core/mogo-core-res/src/main/function-hmi-res/drawable-xxhdpi/icon_warning_v2x_vip_turn_light.png new file mode 100644 index 0000000000000000000000000000000000000000..bba50f297aba6a7ea046ca29b7c5cde6b882d724 GIT binary patch literal 12324 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 70px + 104px + 104px + 40px + 30px 130px diff --git a/core/mogo-core-res/src/main/res/values/dimens.xml b/core/mogo-core-res/src/main/res/values/dimens.xml index 5728f320a9..da9a00d2e9 100644 --- a/core/mogo-core-res/src/main/res/values/dimens.xml +++ b/core/mogo-core-res/src/main/res/values/dimens.xml @@ -4,6 +4,10 @@ 300px 60px + 104px + 104px + 40px + 20px 110px diff --git a/foudations/mogo-utils/src/main/java/com/mogo/utils/WorkThreadHandler.java b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/mogo/thread/WorkThreadHandler.java similarity index 97% rename from foudations/mogo-utils/src/main/java/com/mogo/utils/WorkThreadHandler.java rename to core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/mogo/thread/WorkThreadHandler.java index 64d967c261..bd1442c6be 100644 --- a/foudations/mogo-utils/src/main/java/com/mogo/utils/WorkThreadHandler.java +++ b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/mogo/thread/WorkThreadHandler.java @@ -1,4 +1,4 @@ -package com.mogo.utils; +package com.mogo.eagle.core.utilcode.mogo.thread; import android.os.Handler; import android.os.HandlerThread; diff --git a/foudations/mogo-utils/build.gradle b/foudations/mogo-utils/build.gradle index c619e0f3ab..f7efc7fe2a 100644 --- a/foudations/mogo-utils/build.gradle +++ b/foudations/mogo-utils/build.gradle @@ -32,6 +32,8 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) api rootProject.ext.dependencies.glide implementation rootProject.ext.dependencies.kotlinstdlibjdk7 + implementation rootProject.ext.dependencies.coroutinescore + implementation rootProject.ext.dependencies.coroutinesandroid implementation rootProject.ext.dependencies.glideanno implementation rootProject.ext.dependencies.glideokhttp3 implementation rootProject.ext.dependencies.androidxannotation @@ -43,6 +45,11 @@ dependencies { api rootProject.ext.dependencies.mogoaicloudnetwork api rootProject.ext.dependencies.mogoaicloudpassport + if (Boolean.valueOf(RELEASE)) { + implementation rootProject.ext.dependencies.mogo_core_data + } else { + implementation project(':core:mogo-core-data') + } } apply from: new File(rootProject.rootDir, "gradle/upload.gradle").toString() diff --git a/modules/mogo-module-chat/src/main/java/com/mogo/chat/net/CoroutineDSL.kt b/foudations/mogo-utils/src/main/java/com/mogo/utils/network/CoroutineDSL.kt similarity index 62% rename from modules/mogo-module-chat/src/main/java/com/mogo/chat/net/CoroutineDSL.kt rename to foudations/mogo-utils/src/main/java/com/mogo/utils/network/CoroutineDSL.kt index 0ee5dcd7c3..bd3d643822 100644 --- a/modules/mogo-module-chat/src/main/java/com/mogo/chat/net/CoroutineDSL.kt +++ b/foudations/mogo-utils/src/main/java/com/mogo/utils/network/CoroutineDSL.kt @@ -1,14 +1,15 @@ -package com.mogo.chat.net +package com.mogo.utils.network import androidx.lifecycle.LifecycleOwner -import com.mogo.chat.exception.ApiException -import com.mogo.chat.exception.ApiException.Companion.NULL_REQUEST_DATA_API_EXCEPTION -import com.mogo.chat.exception.CommonException.Companion.NETWORK_EXCEPTION -import com.mogo.chat.exception.CommonException.Companion.NULL_EXCEPTION -import com.mogo.chat.base.BaseResponse +import com.mogo.eagle.core.data.BaseResponse +import com.mogo.utils.network.exception.ApiException +import com.mogo.utils.network.exception.CommonException.Companion.NETWORK_EXCEPTION +import com.mogo.utils.network.exception.CommonException.Companion.NULL_EXCEPTION +import com.mogo.utils.network.exception.CommonException.Companion.NULL_REQUEST_DATA_API_EXCEPTION import kotlinx.coroutines.* import java.net.SocketTimeoutException import java.net.UnknownHostException +import java.util.concurrent.ConcurrentHashMap import java.util.concurrent.TimeoutException class Request { @@ -24,7 +25,6 @@ class Request { private var addLifecycle: LifecycleOwner? = null - infix fun loader(loader: suspend () -> T) { this.loader = loader } @@ -49,8 +49,9 @@ class Request { this.addLifecycle = addLifecycle } - fun request() { + fun request(requestKey: String? = null) { + //todo list 缓存result ,在停止时关闭 GlobalScope.launch(context = Dispatchers.Main) { start?.invoke() @@ -58,9 +59,14 @@ class Request { val deferred = GlobalScope.async(Dispatchers.IO, start = CoroutineStart.LAZY) { loader() } + + requestKey?.let { + deferredMap[requestKey] = deferred as Deferred + } + val result = deferred.await() if (result != null && result is BaseResponse<*>) { - if (result.code == 0) { + if (result.code == 0 || result.code == 200) { onSuccess?.invoke(result) } else { throw ApiException(result.code, result.msg) @@ -81,12 +87,30 @@ class Request { else -> onError?.invoke(java.lang.Exception(e.message)) } } finally { + requestKey?.let { + if (deferredMap.contains(requestKey)) { + deferredMap.remove(requestKey) + } + } onComplete?.invoke() } } } + } -inline fun request(buildRequest: Request.() -> Unit) { - Request().apply(buildRequest).request() +inline fun request(requestKey: String? = "", buildRequest: Request.() -> Unit) { + Request().apply(buildRequest).request(requestKey) +} + +private val deferredMap = ConcurrentHashMap>() + +fun cancel(requestKey: String) { + if (deferredMap.contains(requestKey)) { + deferredMap[requestKey]!!.cancel(CancellationException("manual cancel !")) + } +} + +suspend fun apiCall(call: suspend () -> BaseResponse): BaseResponse { + return call.invoke() } diff --git a/foudations/mogo-utils/src/main/java/com/mogo/utils/network/exception/ApiException.kt b/foudations/mogo-utils/src/main/java/com/mogo/utils/network/exception/ApiException.kt new file mode 100644 index 0000000000..05ab7decfb --- /dev/null +++ b/foudations/mogo-utils/src/main/java/com/mogo/utils/network/exception/ApiException.kt @@ -0,0 +1,10 @@ +package com.mogo.utils.network.exception + +class ApiException : CommonException { + + constructor(code: Int, msg: String) : super(code, msg) + + fun getErrorMsg():String{ + return msg + } +} \ No newline at end of file diff --git a/foudations/mogo-utils/src/main/java/com/mogo/utils/network/exception/CommonException.kt b/foudations/mogo-utils/src/main/java/com/mogo/utils/network/exception/CommonException.kt new file mode 100644 index 0000000000..0ee1a1e525 --- /dev/null +++ b/foudations/mogo-utils/src/main/java/com/mogo/utils/network/exception/CommonException.kt @@ -0,0 +1,19 @@ +package com.mogo.utils.network.exception + +open class CommonException :Exception{ + + companion object{ + val NETWORK_EXCEPTION = CommonException(1, "network is error") + val NULL_EXCEPTION = CommonException(1, "exception is null") + val NULL_REQUEST_DATA_API_EXCEPTION = CommonException(1, "request data is null") + } + + protected var code: Int = 0 + protected var msg: String = "" + + constructor(code: Int, msg: String) : super(msg) { + this.code = code + this.msg = msg + } + +} \ No newline at end of file diff --git a/modules/mogo-module-authorize/build.gradle b/modules/mogo-module-authorize/build.gradle index 43e24f4ae1..18784e1f09 100644 --- a/modules/mogo-module-authorize/build.gradle +++ b/modules/mogo-module-authorize/build.gradle @@ -59,12 +59,16 @@ dependencies { implementation rootProject.ext.dependencies.mogocommons implementation rootProject.ext.dependencies.mogoserviceapi implementation rootProject.ext.dependencies.modulecommon + + implementation rootProject.ext.dependencies.mogo_core_utils + implementation rootProject.ext.dependencies.mogo_core_data } else { implementation project(":foudations:mogo-utils") implementation project(":foudations:mogo-commons") implementation project(':services:mogo-service-api') implementation project(":modules:mogo-module-common") + implementation project(':core:mogo-core-utils') implementation project(':core:mogo-core-data') } } diff --git a/modules/mogo-module-carchatting/src/main/AndroidManifest.xml b/modules/mogo-module-carchatting/src/main/AndroidManifest.xml index 1641da03d7..b7799dd97e 100644 --- a/modules/mogo-module-carchatting/src/main/AndroidManifest.xml +++ b/modules/mogo-module-carchatting/src/main/AndroidManifest.xml @@ -1,14 +1,4 @@ - - - - - - - - - - diff --git a/modules/mogo-module-carchatting/src/main/java/com/mogo/module/carchatting/biz/CallChatCenter.kt b/modules/mogo-module-carchatting/src/main/java/com/mogo/module/carchatting/biz/CallChatCenter.kt index db5a88ac08..0d0bb4abe1 100644 --- a/modules/mogo-module-carchatting/src/main/java/com/mogo/module/carchatting/biz/CallChatCenter.kt +++ b/modules/mogo-module-carchatting/src/main/java/com/mogo/module/carchatting/biz/CallChatCenter.kt @@ -15,6 +15,7 @@ import com.mogo.eagle.core.data.constants.MogoServicePaths.PATH_SERVICE_APIS import com.mogo.module.carchatting.R import com.mogo.module.carchatting.bean.UserInfo import com.mogo.module.carchatting.card.CallChatConstant.Companion.MODULE_NAME +import com.mogo.module.carchatting.card.CallChatConstant.Companion.TAG import com.mogo.module.carchatting.util.* import com.mogo.module.carchatting.view.CallingWindowManager.Companion.callingWindowManager import com.mogo.module.carchatting.view.MapViewManager.Companion.mapViewManager @@ -35,7 +36,6 @@ class CallChatCenter private constructor() : IBizCallChat.IBizCallBack, IVoiceCo IVoiceIntentListener { companion object { - const val TAG: String = "CallChatCenter" val callChatCenter by lazy(LazyThreadSafetyMode.SYNCHRONIZED) { CallChatCenter() @@ -383,6 +383,7 @@ class CallChatCenter private constructor() : IBizCallChat.IBizCallBack, IVoiceCo private fun hideLauncherCallingView() { callWindowHideCallBack() callingWindowManager.hideCallingView() + callingWindowManager.hideIncomingView() } private fun callWindowShowCallBack() { @@ -407,6 +408,7 @@ class CallChatCenter private constructor() : IBizCallChat.IBizCallBack, IVoiceCo Logger.d(TAG, "answerCall") taskMainLaunch { callingWindowManager.hideIncomingView() + showLauncherCallingView() } } diff --git a/modules/mogo-module-carchatting/src/main/java/com/mogo/module/carchatting/biz/CallChatManager.kt b/modules/mogo-module-carchatting/src/main/java/com/mogo/module/carchatting/biz/CallChatManager.kt index 5947485aa0..935fdb405e 100644 --- a/modules/mogo-module-carchatting/src/main/java/com/mogo/module/carchatting/biz/CallChatManager.kt +++ b/modules/mogo-module-carchatting/src/main/java/com/mogo/module/carchatting/biz/CallChatManager.kt @@ -1,7 +1,6 @@ package com.mogo.module.carchatting.biz import com.google.gson.Gson -import com.mogo.chat.base.BaseResponse import com.mogo.chat.callcenter.* import com.mogo.chat.callcenter.CallController.Companion.callController import com.mogo.chat.callcenter.CallTypeManager.Companion.callTypeManager @@ -15,6 +14,7 @@ import com.mogo.chat.util.CallTimer.Companion.callTimer import com.mogo.chat.util.UserInfoHelper.currentCallType import com.mogo.chat.util.UserInfoHelper.tmpSenderInfo import com.mogo.chat.util.log +import com.mogo.eagle.core.data.BaseResponse import com.mogo.module.carchatting.R import com.mogo.module.carchatting.bean.EnthusiasmIndex import com.mogo.module.carchatting.bean.Result diff --git a/modules/mogo-module-carchatting/src/main/java/com/mogo/module/carchatting/biz/Test.kt b/modules/mogo-module-carchatting/src/main/java/com/mogo/module/carchatting/biz/Test.kt deleted file mode 100644 index 3bdc4f8dcb..0000000000 --- a/modules/mogo-module-carchatting/src/main/java/com/mogo/module/carchatting/biz/Test.kt +++ /dev/null @@ -1,13 +0,0 @@ -package com.mogo.module.carchatting.biz - -import android.content.BroadcastReceiver -import android.content.Context -import android.content.Intent -import com.mogo.module.carchatting.bean.UserInfo - -class Test:BroadcastReceiver() { - - override fun onReceive(context: Context?, intent: Intent?) { - CallChatCenter.callChatCenter.showIncomingCall(UserInfo("123",123,"","","","","","","","")) - } -} \ No newline at end of file diff --git a/modules/mogo-module-carchatting/src/main/java/com/mogo/module/carchatting/net/CoroutineDSL.kt b/modules/mogo-module-carchatting/src/main/java/com/mogo/module/carchatting/net/CoroutineDSL.kt index 942f10abbd..063f1c81f5 100644 --- a/modules/mogo-module-carchatting/src/main/java/com/mogo/module/carchatting/net/CoroutineDSL.kt +++ b/modules/mogo-module-carchatting/src/main/java/com/mogo/module/carchatting/net/CoroutineDSL.kt @@ -1,11 +1,11 @@ package com.mogo.module.carchatting.net import androidx.lifecycle.LifecycleOwner -import com.mogo.chat.base.BaseResponse -import com.mogo.chat.exception.ApiException -import com.mogo.chat.exception.ApiException.Companion.NULL_REQUEST_DATA_API_EXCEPTION +import com.mogo.chat.exception.CallApiException import com.mogo.chat.exception.CommonException.Companion.NETWORK_EXCEPTION import com.mogo.chat.exception.CommonException.Companion.NULL_EXCEPTION +import com.mogo.chat.exception.CommonException.Companion.NULL_REQUEST_DATA_API_EXCEPTION +import com.mogo.eagle.core.data.BaseResponse import kotlinx.coroutines.* import java.net.SocketTimeoutException import java.net.UnknownHostException @@ -63,7 +63,7 @@ class Request { if (result.code == 0) { onSuccess?.invoke(result) } else { - throw ApiException(result.code, result.msg) + throw CallApiException(result.code, result.msg) } } else { throw NULL_REQUEST_DATA_API_EXCEPTION diff --git a/modules/mogo-module-carchatting/src/main/java/com/mogo/module/carchatting/net/HttpApi.kt b/modules/mogo-module-carchatting/src/main/java/com/mogo/module/carchatting/net/HttpApi.kt index 8b09d70e94..eb5fae79af 100644 --- a/modules/mogo-module-carchatting/src/main/java/com/mogo/module/carchatting/net/HttpApi.kt +++ b/modules/mogo-module-carchatting/src/main/java/com/mogo/module/carchatting/net/HttpApi.kt @@ -1,7 +1,7 @@ package com.mogo.module.carchatting.net -import com.mogo.chat.base.BaseResponse import com.mogo.chat.model.bean.TeammateInfo +import com.mogo.eagle.core.data.BaseResponse import com.mogo.module.carchatting.bean.Result import retrofit2.http.FieldMap import retrofit2.http.FormUrlEncoded diff --git a/modules/mogo-module-carchatting/src/main/java/com/mogo/module/carchatting/net/Repository.kt b/modules/mogo-module-carchatting/src/main/java/com/mogo/module/carchatting/net/Repository.kt index 62cf2a49f4..44ef42d7d2 100644 --- a/modules/mogo-module-carchatting/src/main/java/com/mogo/module/carchatting/net/Repository.kt +++ b/modules/mogo-module-carchatting/src/main/java/com/mogo/module/carchatting/net/Repository.kt @@ -1,7 +1,7 @@ package com.mogo.module.carchatting.net import com.alibaba.android.arouter.launcher.ARouter -import com.mogo.chat.base.BaseResponse +import com.mogo.eagle.core.data.BaseResponse import com.mogo.eagle.core.data.constants.MogoServicePaths import com.mogo.service.IMogoServiceApis diff --git a/modules/mogo-module-carchatting/src/main/java/com/mogo/module/carchatting/view/CallingWindowManager.kt b/modules/mogo-module-carchatting/src/main/java/com/mogo/module/carchatting/view/CallingWindowManager.kt index d2f28bd6f7..8021797f80 100644 --- a/modules/mogo-module-carchatting/src/main/java/com/mogo/module/carchatting/view/CallingWindowManager.kt +++ b/modules/mogo-module-carchatting/src/main/java/com/mogo/module/carchatting/view/CallingWindowManager.kt @@ -21,7 +21,6 @@ import com.mogo.commons.debug.DebugConfig import com.mogo.commons.debug.DebugConfig.CAR_MACHINE_TYPE_BYD import com.mogo.module.carchatting.R import com.mogo.module.carchatting.bean.UserInfo -import com.mogo.module.carchatting.biz.CallChatCenter import com.mogo.module.carchatting.view.VrModeHelper.Companion.vrModeHelper import com.mogo.module.common.MogoApisHandler import com.mogo.module.common.glide.SkinAbleBitmapTarget @@ -94,7 +93,7 @@ class CallingWindowManager private constructor() : IVoiceIntentListener { quitVehicleTeam: () -> Unit, moveToCenter: () -> Unit ) { - Logger.d(CallChatCenter.TAG, "CallingWindowManager init --->") + Logger.d(TAG, "CallingWindowManager init --->") this.mContext = context this.serviceApi = serviceApi this.match = match @@ -106,7 +105,7 @@ class CallingWindowManager private constructor() : IVoiceIntentListener { } private fun initView() { - Logger.d(CallChatCenter.TAG, "CallingWindowManager initView --->") + Logger.d(TAG, "CallingWindowManager initView --->") launcherCallingView = vrModeHelper.getCallingWindowLayoutView(mContext!!) launcherCallingView?.setOnClickListener { } launcherCallingView?.let { view -> @@ -176,27 +175,27 @@ class CallingWindowManager private constructor() : IVoiceIntentListener { fun showInitView() { if (DebugConfig.getCarMachineType() != CAR_MACHINE_TYPE_BYD) { - Logger.d(CallChatCenter.TAG, "showInitView Mogo车机不执行") + Logger.d(TAG, "showInitView Mogo车机不执行") return } if (launcherCallingView == null) { - Logger.d(CallChatCenter.TAG, "展示Launcher浮窗 showInitView") + Logger.d(TAG, "展示Launcher浮窗 showInitView") initView() showCallingWindow() - Logger.d(CallChatCenter.TAG, "添加浮窗成功 showInitView") + Logger.d(TAG, "添加浮窗成功 showInitView") } } fun showMatchingView() { if (launcherCallingView == null) { - Logger.d(CallChatCenter.TAG, "展示Launcher浮窗 showMatchingView") + Logger.d(TAG, "展示Launcher浮窗 showMatchingView") initView() matchView?.visibility = View.GONE moduleCarchattingTeamRlView?.visibility = View.GONE callingView?.visibility = View.GONE matchingView?.visibility = View.VISIBLE showCallingWindow() - Logger.d(CallChatCenter.TAG, "添加浮窗成功 showMatchingView") + Logger.d(TAG, "添加浮窗成功 showMatchingView") } } @@ -205,7 +204,7 @@ class CallingWindowManager private constructor() : IVoiceIntentListener { hangUpIncomingBack: () -> Unit ) { Logger.d( - CallChatCenter.TAG, + TAG, "展示Launcher来电浮窗 showIncomingView===$isLauncherCallingViewShown" ) this.agreeIncomingBack = agreeIncomingBack @@ -253,7 +252,7 @@ class CallingWindowManager private constructor() : IVoiceIntentListener { params.topMargin = y.toInt() serviceApi?.windowManagerApi?.addView(launcherIncomingView, params, true) isLauncherIncomingViewShown = true - Logger.d(CallChatCenter.TAG, "添加浮窗成功 addIncomingView===$isLauncherCallingViewShown") + Logger.d(TAG, "添加浮窗成功 addIncomingView===$isLauncherCallingViewShown") } } @@ -261,14 +260,14 @@ class CallingWindowManager private constructor() : IVoiceIntentListener { currentUserInfo: UserInfo?, hangUpCallBack: () -> Unit ) { - Logger.d(CallChatCenter.TAG, "展示Launcher浮窗 showCallingView===$isLauncherCallingViewShown") + Logger.d(TAG, "展示Launcher浮窗 showCallingView===$isLauncherCallingViewShown") if (!isLauncherCallingViewShown) { addCallWindowView(hangUpCallBack) { refreshCallWindowData(currentUserInfo) } } else { Logger.d( - CallChatCenter.TAG, + TAG, "刷新Launcher浮窗数据 showCallingView===currentUserInfo :$currentUserInfo" ) refreshCallWindowData(currentUserInfo) @@ -294,7 +293,7 @@ class CallingWindowManager private constructor() : IVoiceIntentListener { showCallingWindow() refreshData.invoke() isLauncherCallingViewShown = true - Logger.d(CallChatCenter.TAG, "添加浮窗成功 addCallWindowView===$isLauncherCallingViewShown") + Logger.d(TAG, "添加浮窗成功 addCallWindowView===$isLauncherCallingViewShown") } private fun refreshCallWindowData(currentUserInfo: UserInfo?) { @@ -329,7 +328,7 @@ class CallingWindowManager private constructor() : IVoiceIntentListener { if (!isLauncherIncomingViewShown) { return } - Logger.d(CallChatCenter.TAG, "隐藏Launcher来电浮窗===$isLauncherCallingViewShown") + Logger.d(TAG, "隐藏Launcher来电浮窗===$isLauncherCallingViewShown") releaseAudioAndVoice() if (isLauncherIncomingViewShown) { isLauncherIncomingViewShown = false @@ -340,7 +339,7 @@ class CallingWindowManager private constructor() : IVoiceIntentListener { } fun hideCallingView() { - Logger.d(CallChatCenter.TAG, "隐藏Launcher浮窗===$isLauncherCallingViewShown") + Logger.d(TAG, "隐藏Launcher浮窗===$isLauncherCallingViewShown") if (isLauncherCallingViewShown) { callingTimer?.text = null callingNickName?.text = null @@ -360,13 +359,13 @@ class CallingWindowManager private constructor() : IVoiceIntentListener { } fun updateTimer(timeStr: String) { - Logger.d(CallChatCenter.TAG, "CallingWindowManager updateView===$timeStr") + Logger.d(TAG, "CallingWindowManager updateView===$timeStr") callingTimer?.text = timeStr } fun showVehicleTeamView() { Logger.d( - CallChatCenter.TAG, + TAG, "showVehicleTeamView isLauncherCallingViewShown ===$isLauncherCallingViewShown" ) if (!isLauncherCallingViewShown) { @@ -386,7 +385,7 @@ class CallingWindowManager private constructor() : IVoiceIntentListener { fun hideVehicleTeamView() { Logger.d( - CallChatCenter.TAG, + TAG, "hideVehicleTeamView isLauncherCallingViewShown ===$isLauncherCallingViewShown" ) callingView?.visibility = View.GONE diff --git a/modules/mogo-module-carchatting/src/main/java/com/mogo/module/carchatting/view/TeamInvitationWindowManager.kt b/modules/mogo-module-carchatting/src/main/java/com/mogo/module/carchatting/view/TeamInvitationWindowManager.kt index 73f3f55e89..58d80d64d4 100644 --- a/modules/mogo-module-carchatting/src/main/java/com/mogo/module/carchatting/view/TeamInvitationWindowManager.kt +++ b/modules/mogo-module-carchatting/src/main/java/com/mogo/module/carchatting/view/TeamInvitationWindowManager.kt @@ -9,6 +9,7 @@ import com.mogo.module.carchatting.R import com.mogo.module.carchatting.bean.UserInfo import com.mogo.module.carchatting.biz.CallChatCenter import com.mogo.module.carchatting.biz.CallChatCenter.Companion.callChatCenter +import com.mogo.module.carchatting.card.CallChatConstant.Companion.TAG import com.mogo.module.carchatting.view.VrModeHelper.Companion.vrModeHelper import com.mogo.module.carchatting.voice.IVoiceCommandListener import com.mogo.module.carchatting.voice.VoiceUtil @@ -89,7 +90,7 @@ class TeamInvitationWindowManager private constructor() { try { job = GlobalScope.launch(Dispatchers.Main) { delay(1000 * 20) - Logger.d(CallChatCenter.TAG, "refuseCall()--->executed") + Logger.d(TAG, "refuseCall()--->executed") callChatCenter.refuseCall(userInfo!!.sn) hideTeamInvitationView() } diff --git a/modules/mogo-module-carchatting/src/main/java/com/mogo/module/carchatting/view/UserDialog.kt b/modules/mogo-module-carchatting/src/main/java/com/mogo/module/carchatting/view/UserDialog.kt index d2dc3e168e..f79d481a38 100644 --- a/modules/mogo-module-carchatting/src/main/java/com/mogo/module/carchatting/view/UserDialog.kt +++ b/modules/mogo-module-carchatting/src/main/java/com/mogo/module/carchatting/view/UserDialog.kt @@ -11,7 +11,6 @@ import com.mogo.commons.AbsMogoApplication import com.mogo.module.carchatting.R import com.mogo.module.carchatting.bean.EnthusiasmIndex import com.mogo.module.carchatting.bean.UserInfo -import com.mogo.module.carchatting.biz.CallChatCenter import com.mogo.module.carchatting.biz.CallChatCenter.Companion.callChatCenter import com.mogo.module.carchatting.voice.IVoiceCommandListener import com.mogo.module.carchatting.voice.VoiceUtil @@ -52,7 +51,6 @@ class UserDialog : BaseFloatDialog { constructor(mogoDriverInfo: MogoDriverInfo, context: Context) : super(context) { driverInfo = mogoDriverInfo - Logger.i(CallChatCenter.TAG, "构造函数赋值 driverInfo:$driverInfo") initView() } @@ -83,12 +81,10 @@ class UserDialog : BaseFloatDialog { if (moduleCallChatRatingBar!!.visibility == View.VISIBLE) { moduleCallChatRatingBar!!.visibility = View.GONE } - Logger.i(CallChatCenter.TAG, "initView driverInfo sn === ${driverInfo?.sn}") val sn = driverInfo?.sn sn?.let { if (it != MoGoAiCloudClientConfig.getInstance().sn) { callChatCenter.updateUserCallStatus { status -> - Logger.i(CallChatCenter.TAG, "刷新用户信息打电话状态=== $status") if (status) { moduleCallChatUserCaller?.visibility = View.VISIBLE } @@ -101,7 +97,6 @@ class UserDialog : BaseFloatDialog { } private fun refreshUserWindowData() { - Logger.i(CallChatCenter.TAG, "refreshUserWindowData") val options: RequestOptions = RequestOptions().circleCrop() .placeholder(R.mipmap.module_carchatting_default_head_img) @@ -126,7 +121,6 @@ class UserDialog : BaseFloatDialog { } fun updateUserInfo(mogoDriverInfo: MogoDriverInfo?) { - Logger.i(CallChatCenter.TAG, "updateUserInfo 赋值前 mogoDriverInfo: $mogoDriverInfo") mogoDriverInfo?.let { driverInfo?.let { driverInfo -> if (driverInfo.userHead.isNullOrBlank()) { @@ -137,7 +131,6 @@ class UserDialog : BaseFloatDialog { } } } - Logger.i(CallChatCenter.TAG, "updateUserInfo 赋值后 driverInfo : $driverInfo , 准备更新用户信息") refreshUserWindowData() } diff --git a/modules/mogo-module-carchatting/src/main/java/com/mogo/module/carchatting/view/UserWindowManager.kt b/modules/mogo-module-carchatting/src/main/java/com/mogo/module/carchatting/view/UserWindowManager.kt index ad5233429d..5526edc369 100644 --- a/modules/mogo-module-carchatting/src/main/java/com/mogo/module/carchatting/view/UserWindowManager.kt +++ b/modules/mogo-module-carchatting/src/main/java/com/mogo/module/carchatting/view/UserWindowManager.kt @@ -3,6 +3,7 @@ package com.mogo.module.carchatting.view import com.mogo.commons.context.ContextHolderUtil import com.mogo.module.carchatting.bean.EnthusiasmIndex import com.mogo.module.carchatting.biz.CallChatCenter +import com.mogo.module.carchatting.card.CallChatConstant.Companion.TAG import com.mogo.utils.logger.Logger import com.zhidao.carchattingprovider.MogoDriverInfo @@ -26,7 +27,7 @@ class UserWindowManager private constructor() { mogoDriverInfo: MogoDriverInfo, userWindowListener: ((Boolean) -> Unit) ) { - Logger.d(CallChatCenter.TAG, "展示用户信息浮窗===mogoDriverInfo : $mogoDriverInfo") + Logger.d(TAG, "展示用户信息浮窗===mogoDriverInfo : $mogoDriverInfo") this.userWindowListener = userWindowListener val context = ContextHolderUtil.getContext() context?.let { @@ -34,22 +35,22 @@ class UserWindowManager private constructor() { userDialog = UserDialog(mogoDriverInfo, it) userDialog!!.show() userDialog!!.setOnDismissListener { - Logger.d(CallChatCenter.TAG, "主动隐藏用户信息浮窗===") + Logger.d(TAG, "主动隐藏用户信息浮窗===") userDialog = null this.userWindowListener?.invoke(false) this.userWindowListener = null } this.userWindowListener?.invoke(true) - Logger.d(CallChatCenter.TAG, "添加用户信息浮窗成功===") + Logger.d(TAG, "添加用户信息浮窗成功===") } else { - Logger.d(CallChatCenter.TAG, "刷新用户信息浮窗数据===mogoDriverInfo :$mogoDriverInfo") + Logger.d(TAG, "刷新用户信息浮窗数据===mogoDriverInfo :$mogoDriverInfo") updateUserInfo(mogoDriverInfo) } } } fun updateUserEnthusiasmIndex(enthusiasmIndex: EnthusiasmIndex) { - Logger.d(CallChatCenter.TAG, "刷新用户热心指数=== $enthusiasmIndex") + Logger.d(TAG, "刷新用户热心指数=== $enthusiasmIndex") userDialog?.let { if(it.isShowing){ userDialog?.updateUserEnthusiasmIndex(enthusiasmIndex) @@ -58,7 +59,7 @@ class UserWindowManager private constructor() { } fun updateUserInfo(mogoDriverInfo: MogoDriverInfo) { - Logger.d(CallChatCenter.TAG, "刷新用户信息=== $mogoDriverInfo") + Logger.d(TAG, "刷新用户信息=== $mogoDriverInfo") userDialog?.let { if(it.isShowing){ userDialog?.updateUserInfo(mogoDriverInfo) @@ -67,7 +68,7 @@ class UserWindowManager private constructor() { } fun hideUserView() { - Logger.d(CallChatCenter.TAG, "隐藏用户信息浮窗===") + Logger.d(TAG, "隐藏用户信息浮窗===") userDialog?.dismiss() userWindowListener?.invoke(false) userWindowListener = null diff --git a/modules/mogo-module-carchatting/src/main/java/com/mogo/module/carchatting/view/VehicleTeamModel.kt b/modules/mogo-module-carchatting/src/main/java/com/mogo/module/carchatting/view/VehicleTeamModel.kt index dd4c1747a6..91aa1ea0fd 100644 --- a/modules/mogo-module-carchatting/src/main/java/com/mogo/module/carchatting/view/VehicleTeamModel.kt +++ b/modules/mogo-module-carchatting/src/main/java/com/mogo/module/carchatting/view/VehicleTeamModel.kt @@ -1,8 +1,8 @@ package com.mogo.module.carchatting.view import com.google.gson.Gson -import com.mogo.chat.base.BaseResponse import com.mogo.chat.model.bean.TeammateInfo +import com.mogo.eagle.core.data.BaseResponse import com.mogo.module.carchatting.net.Repository import com.mogo.module.carchatting.net.request diff --git a/modules/mogo-module-chat/build.gradle b/modules/mogo-module-chat/build.gradle index 3f23219e72..69264033e9 100644 --- a/modules/mogo-module-chat/build.gradle +++ b/modules/mogo-module-chat/build.gradle @@ -78,24 +78,19 @@ dependencies { implementation rootProject.ext.dependencies.mogowebsocket if (Boolean.valueOf(USE_MAVEN_PACKAGE)) { - - implementation rootProject.ext.dependencies.mogomap - implementation rootProject.ext.dependencies.mogoutils - implementation rootProject.ext.dependencies.mogocommons - implementation rootProject.ext.dependencies.mogoserviceapi - implementation rootProject.ext.dependencies.modulecommon - - implementation rootProject.ext.dependencies.mogo_core_data + compileOnly rootProject.ext.dependencies.mogomap + compileOnly rootProject.ext.dependencies.mogoutils + compileOnly rootProject.ext.dependencies.mogoserviceapi + compileOnly rootProject.ext.dependencies.modulecommon } else { - - implementation project(":libraries:mogo-map") - implementation project(":foudations:mogo-utils") - implementation project(":foudations:mogo-commons") - implementation project(':services:mogo-service-api') + api project(":libraries:mogo-map") + api project(":foudations:mogo-utils") + api project(':services:mogo-service-api') implementation project(':modules:mogo-module-common') - - implementation project(':core:mogo-core-data') } + implementation project(':core:mogo-core-utils') + implementation project(':core:mogo-core-data') } + apply from: new File(rootProject.rootDir, "gradle/upload.gradle").toString() diff --git a/modules/mogo-module-chat/src/main/java/com/mogo/chat/base/BaseController.kt b/modules/mogo-module-chat/src/main/java/com/mogo/chat/base/BaseController.kt index 4712d13b6c..bdf676d454 100644 --- a/modules/mogo-module-chat/src/main/java/com/mogo/chat/base/BaseController.kt +++ b/modules/mogo-module-chat/src/main/java/com/mogo/chat/base/BaseController.kt @@ -5,16 +5,17 @@ import com.mogo.chat.model.ChatServiceModel import com.mogo.chat.model.bean.AllUnit import com.mogo.chat.model.bean.LocationCarsWithRadius import com.mogo.chat.model.bean.toSns -import com.mogo.chat.net.request import com.mogo.chat.util.UserInfoHelper import com.mogo.chat.util.log +import com.mogo.eagle.core.data.BaseResponse +import com.mogo.utils.network.request open class BaseController { val chatServiceModel: ChatServiceModel = ChatServiceModel() fun getUserInfo(onSuccess: (() -> Unit)? = null, onError: ((Exception) -> Unit)? = null) { - if (!UserInfoHelper.userInfo.sn.isBlank()) { + if (UserInfoHelper.userInfo.sn.isNotBlank()) { log(TAG, "userInfo getSn : ${UserInfoHelper.userInfo}") onSuccess?.invoke() return diff --git a/modules/mogo-module-chat/src/main/java/com/mogo/chat/base/BaseRepository.kt b/modules/mogo-module-chat/src/main/java/com/mogo/chat/base/BaseRepository.kt index 74f167e4cc..fcd41ef1db 100644 --- a/modules/mogo-module-chat/src/main/java/com/mogo/chat/base/BaseRepository.kt +++ b/modules/mogo-module-chat/src/main/java/com/mogo/chat/base/BaseRepository.kt @@ -13,6 +13,7 @@ import com.mogo.chat.util.UserInfoHelper.userInfo import com.mogo.chat.util.log import com.mogo.chat.util.sp.getRoomId import com.mogo.cloud.passport.MoGoAiCloudClientConfig +import com.mogo.eagle.core.data.BaseResponse import com.mogo.eagle.core.data.constants.MogoServicePaths import com.mogo.service.IMogoServiceApis diff --git a/modules/mogo-module-chat/src/main/java/com/mogo/chat/base/BaseResponse.kt b/modules/mogo-module-chat/src/main/java/com/mogo/chat/base/BaseResponse.kt deleted file mode 100644 index cdc6adb513..0000000000 --- a/modules/mogo-module-chat/src/main/java/com/mogo/chat/base/BaseResponse.kt +++ /dev/null @@ -1,13 +0,0 @@ -package com.mogo.chat.base - -import com.mogo.chat.constant.HttpConstants - -class BaseResponse(val code: Int, val msg: String, val result: T) { - - fun isSuccess(baseUrl: String): Boolean { - return when (baseUrl) { - HttpConstants.getBaseUrl() -> true - else -> false - } - } -} diff --git a/modules/mogo-module-chat/src/main/java/com/mogo/chat/exception/ApiException.kt b/modules/mogo-module-chat/src/main/java/com/mogo/chat/exception/ApiException.kt deleted file mode 100644 index 524e99d93e..0000000000 --- a/modules/mogo-module-chat/src/main/java/com/mogo/chat/exception/ApiException.kt +++ /dev/null @@ -1,15 +0,0 @@ -package com.mogo.chat.exception - -class ApiException : CommonException { - - companion object { - val NULL_REQUEST_DATA_API_EXCEPTION = ApiException(2, "request data is null") - val ENTER_ROOM_API_EXCEPTION = ApiException(3, "roomId is null or already enter room") - } - - constructor(code: Int, msg: String) : super(code, msg) - - fun getErrorMsg():String{ - return msg - } -} \ No newline at end of file diff --git a/modules/mogo-module-chat/src/main/java/com/mogo/chat/exception/CallApiException.kt b/modules/mogo-module-chat/src/main/java/com/mogo/chat/exception/CallApiException.kt new file mode 100644 index 0000000000..5a0fd605be --- /dev/null +++ b/modules/mogo-module-chat/src/main/java/com/mogo/chat/exception/CallApiException.kt @@ -0,0 +1,15 @@ +package com.mogo.chat.exception + +class CallApiException : CommonException { + + companion object { + + val ENTER_ROOM_API_EXCEPTION = CallApiException(3, "roomId is null or already enter room") + } + + constructor(code: Int, msg: String) : super(code, msg) + + fun getErrorMsg():String{ + return msg + } +} \ No newline at end of file diff --git a/modules/mogo-module-chat/src/main/java/com/mogo/chat/exception/CommonException.kt b/modules/mogo-module-chat/src/main/java/com/mogo/chat/exception/CommonException.kt index ec09f347a4..3204b5f03e 100644 --- a/modules/mogo-module-chat/src/main/java/com/mogo/chat/exception/CommonException.kt +++ b/modules/mogo-module-chat/src/main/java/com/mogo/chat/exception/CommonException.kt @@ -5,6 +5,7 @@ open class CommonException :Exception{ companion object{ val NETWORK_EXCEPTION = CommonException(1, "network is error") val NULL_EXCEPTION = CommonException(1, "exception is null") + val NULL_REQUEST_DATA_API_EXCEPTION = CommonException(1, "request data is null") } protected var code: Int = 0 diff --git a/modules/mogo-module-chat/src/main/java/com/mogo/chat/model/ChatServiceModel.kt b/modules/mogo-module-chat/src/main/java/com/mogo/chat/model/ChatServiceModel.kt index a58b36fb6a..6b903d7c90 100644 --- a/modules/mogo-module-chat/src/main/java/com/mogo/chat/model/ChatServiceModel.kt +++ b/modules/mogo-module-chat/src/main/java/com/mogo/chat/model/ChatServiceModel.kt @@ -1,11 +1,11 @@ package com.mogo.chat.model import com.mogo.chat.base.BaseRepository -import com.mogo.chat.base.BaseResponse import com.mogo.chat.constant.HttpConstants.Companion.getConfig import com.mogo.chat.model.bean.OnLineStatus import com.mogo.chat.model.bean.UserInfoBySns import com.mogo.chat.model.bean.UserInfoBySnsRequest +import com.mogo.eagle.core.data.BaseResponse class ChatServiceModel : BaseRepository() { diff --git a/modules/mogo-module-chat/src/main/java/com/mogo/chat/model/FocusModel.kt b/modules/mogo-module-chat/src/main/java/com/mogo/chat/model/FocusModel.kt index 5b12e79c6e..5d81253d7a 100644 --- a/modules/mogo-module-chat/src/main/java/com/mogo/chat/model/FocusModel.kt +++ b/modules/mogo-module-chat/src/main/java/com/mogo/chat/model/FocusModel.kt @@ -2,11 +2,11 @@ package com.mogo.chat.model import com.google.gson.Gson import com.mogo.chat.base.BaseRepository -import com.mogo.chat.base.BaseResponse import com.mogo.chat.model.bean.FocusBlackListRequest import com.mogo.chat.model.bean.FocusData import com.mogo.chat.model.bean.FriendRequest import com.mogo.cloud.passport.MoGoAiCloudClientConfig +import com.mogo.eagle.core.data.BaseResponse class FocusModel : BaseRepository() { diff --git a/modules/mogo-module-chat/src/main/java/com/mogo/chat/model/FriendModel.kt b/modules/mogo-module-chat/src/main/java/com/mogo/chat/model/FriendModel.kt index a8266c4078..77e4c8e7f0 100644 --- a/modules/mogo-module-chat/src/main/java/com/mogo/chat/model/FriendModel.kt +++ b/modules/mogo-module-chat/src/main/java/com/mogo/chat/model/FriendModel.kt @@ -2,11 +2,11 @@ package com.mogo.chat.model import com.google.gson.Gson import com.mogo.chat.base.BaseRepository -import com.mogo.chat.base.BaseResponse import com.mogo.chat.model.bean.FriendData import com.mogo.chat.model.bean.FriendOrSelfOnLine import com.mogo.chat.model.bean.FriendRequest import com.mogo.cloud.passport.MoGoAiCloudClientConfig +import com.mogo.eagle.core.data.BaseResponse class FriendModel : BaseRepository() { diff --git a/modules/mogo-module-chat/src/main/java/com/mogo/chat/model/bean/OnLineStatus.kt b/modules/mogo-module-chat/src/main/java/com/mogo/chat/model/bean/OnLineStatus.kt index f81d4fb40a..e8ece98a32 100644 --- a/modules/mogo-module-chat/src/main/java/com/mogo/chat/model/bean/OnLineStatus.kt +++ b/modules/mogo-module-chat/src/main/java/com/mogo/chat/model/bean/OnLineStatus.kt @@ -1,8 +1,5 @@ package com.mogo.chat.model.bean -fun OnLineStatus.onLine(): Boolean { - return carOnLine == 1 && onLine == 1 -} /** * carOnLine:ACC ON状态 1:在线 2:不在线 diff --git a/modules/mogo-module-chat/src/main/java/com/mogo/chat/model/control/ChatController.kt b/modules/mogo-module-chat/src/main/java/com/mogo/chat/model/control/ChatController.kt index 19faa1638d..95d2f16490 100644 --- a/modules/mogo-module-chat/src/main/java/com/mogo/chat/model/control/ChatController.kt +++ b/modules/mogo-module-chat/src/main/java/com/mogo/chat/model/control/ChatController.kt @@ -2,7 +2,6 @@ package com.mogo.chat.model.control import com.mogo.chat.R import com.mogo.chat.base.BaseController -import com.mogo.chat.base.BaseResponse import com.mogo.chat.callcenter.CallController.Companion.callController import com.mogo.chat.callcenter.CallTypeManager.Companion.callTypeManager import com.mogo.chat.callcenter.exchangeToCallType @@ -12,9 +11,8 @@ import com.mogo.chat.constant.CALL_TYPE_VOICE import com.mogo.chat.constant.PUSH_MSG_DENY_ENTER import com.mogo.chat.constant.PUSH_MSG_HANG_UP import com.mogo.chat.constant.TAG -import com.mogo.chat.exception.ApiException.Companion.ENTER_ROOM_API_EXCEPTION +import com.mogo.chat.exception.CallApiException.Companion.ENTER_ROOM_API_EXCEPTION import com.mogo.chat.model.bean.RoomInfo -import com.mogo.chat.net.request import com.mogo.chat.util.CallTimer.Companion.callTimer import com.mogo.chat.util.MediaController import com.mogo.chat.util.UserInfoHelper @@ -23,6 +21,8 @@ import com.mogo.chat.util.log import com.mogo.chat.util.sp.saveRoomId import com.mogo.chat.util.trackCall import com.mogo.commons.AbsMogoApplication +import com.mogo.eagle.core.data.BaseResponse +import com.mogo.utils.network.request object ChatController : BaseController(), IGMEEventCallBack { diff --git a/modules/mogo-module-chat/src/main/java/com/mogo/chat/model/control/MatchController.kt b/modules/mogo-module-chat/src/main/java/com/mogo/chat/model/control/MatchController.kt index 4499e004c7..2a952bdb80 100644 --- a/modules/mogo-module-chat/src/main/java/com/mogo/chat/model/control/MatchController.kt +++ b/modules/mogo-module-chat/src/main/java/com/mogo/chat/model/control/MatchController.kt @@ -3,18 +3,18 @@ package com.mogo.chat.model.control import com.mogo.chat.R import com.mogo.chat.aspect.DebugLog import com.mogo.chat.base.BaseController -import com.mogo.chat.base.BaseResponse import com.mogo.chat.callcenter.CallTypeManager.Companion.callTypeManager import com.mogo.chat.callcenter.IMType import com.mogo.chat.callcenter.canMatchTimeout import com.mogo.chat.constant.TAG import com.mogo.chat.model.bean.MatchRequestParam -import com.mogo.chat.net.request import com.mogo.chat.net.taskDelayAsync import com.mogo.chat.provider.ServiceApi import com.mogo.chat.util.* import com.mogo.chat.util.audio.AudioFocusUtil import com.mogo.commons.AbsMogoApplication +import com.mogo.eagle.core.data.BaseResponse +import com.mogo.utils.network.request import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Job import kotlinx.coroutines.withContext diff --git a/modules/mogo-module-chat/src/main/java/com/mogo/chat/model/control/VehicleTeamController.kt b/modules/mogo-module-chat/src/main/java/com/mogo/chat/model/control/VehicleTeamController.kt index b367e9000e..af7139271d 100644 --- a/modules/mogo-module-chat/src/main/java/com/mogo/chat/model/control/VehicleTeamController.kt +++ b/modules/mogo-module-chat/src/main/java/com/mogo/chat/model/control/VehicleTeamController.kt @@ -1,20 +1,19 @@ package com.mogo.chat.model.control import com.mogo.chat.base.BaseController -import com.mogo.chat.base.BaseResponse import com.mogo.chat.common.gme.IGMEEventCallBack import com.mogo.chat.constant.CALL_TYPE_VEHICLE_TEAM import com.mogo.chat.constant.PUSH_MSG_DENY_ENTER import com.mogo.chat.constant.PUSH_MSG_HANG_UP import com.mogo.chat.constant.TAG import com.mogo.chat.model.bean.CallRequestParam -import com.mogo.chat.net.request import com.mogo.chat.provider.ServiceApi import com.mogo.chat.util.UserInfoHelper import com.mogo.chat.util.log import com.mogo.chat.util.sp.getRoomId import com.mogo.cloud.passport.MoGoAiCloudClientConfig -import com.mogo.commons.network.Utils +import com.mogo.eagle.core.data.BaseResponse +import com.mogo.utils.network.request object VehicleTeamController : BaseController(), IGMEEventCallBack { diff --git a/modules/mogo-module-chat/src/main/java/com/mogo/chat/net/HttpApi.kt b/modules/mogo-module-chat/src/main/java/com/mogo/chat/net/HttpApi.kt index 37e772f232..cd17ba6d4a 100644 --- a/modules/mogo-module-chat/src/main/java/com/mogo/chat/net/HttpApi.kt +++ b/modules/mogo-module-chat/src/main/java/com/mogo/chat/net/HttpApi.kt @@ -1,7 +1,7 @@ package com.mogo.chat.net -import com.mogo.chat.base.BaseResponse import com.mogo.chat.model.bean.* +import com.mogo.eagle.core.data.BaseResponse import retrofit2.http.* interface HttpApi { diff --git a/modules/mogo-module-chat/src/main/java/com/mogo/chat/service/ChatServiceHandler.kt b/modules/mogo-module-chat/src/main/java/com/mogo/chat/service/ChatServiceHandler.kt index 3e2b3515fb..8732628ddf 100644 --- a/modules/mogo-module-chat/src/main/java/com/mogo/chat/service/ChatServiceHandler.kt +++ b/modules/mogo-module-chat/src/main/java/com/mogo/chat/service/ChatServiceHandler.kt @@ -2,7 +2,6 @@ package com.mogo.chat.service import com.google.gson.Gson import com.mogo.chat.base.BaseController -import com.mogo.chat.base.BaseResponse import com.mogo.chat.callcenter.CallTypeManager.Companion.callTypeManager import com.mogo.chat.callcenter.exchangeToCallType import com.mogo.chat.callcenter.isCalling @@ -12,11 +11,9 @@ import com.mogo.chat.constant.* import com.mogo.chat.model.bean.FocusStatus import com.mogo.chat.model.bean.OnLineStatus import com.mogo.chat.model.bean.UserInfoBySns -import com.mogo.chat.model.bean.onLine import com.mogo.chat.model.control.ChatController import com.mogo.chat.model.control.MatchController import com.mogo.chat.model.control.VehicleTeamController -import com.mogo.chat.net.request import com.mogo.chat.service.InvokeDataProxy.Companion.covertMapToSns import com.mogo.chat.util.UserInfoHelper.currentCallType import com.mogo.chat.util.UserInfoHelper.tmpSenderInfo @@ -24,13 +21,15 @@ import com.mogo.chat.util.log import com.mogo.chat.util.sp.setCarOnLineStatus import com.mogo.chat.util.trackHangUp import com.mogo.cloud.passport.MoGoAiCloudClientConfig +import com.mogo.eagle.core.data.BaseResponse +import com.mogo.utils.network.request object ChatServiceHandler : BaseController() { fun call( - snReceiver: String, - onSuccess: (() -> Unit), - onError: ((Exception) -> Unit) + snReceiver: String, + onSuccess: (() -> Unit), + onError: ((Exception) -> Unit) ) { queryUserInfo(snReceiver, { val map = Gson().fromJson>(it, Map::class.java) @@ -47,9 +46,9 @@ object ChatServiceHandler : BaseController() { } private fun realCall( - snReceiver: String, - onSuccess: (() -> Unit), - onError: ((Exception) -> Unit) + snReceiver: String, + onSuccess: (() -> Unit), + onError: ((Exception) -> Unit) ) { ChatController.call(snReceiver, 0, { onSuccess.invoke() @@ -63,7 +62,12 @@ object ChatServiceHandler : BaseController() { realHangUp(onSuccess, onError, roomId) } - fun refuseCall(sn: String?, onSuccess: () -> Unit, onError: (Exception) -> Unit, roomId: Int = -1) { + fun refuseCall( + sn: String?, + onSuccess: () -> Unit, + onError: (Exception) -> Unit, + roomId: Int = -1 + ) { var hangUpSn: String? = sn if (hangUpSn.isNullOrBlank()) { if (tmpSenderInfo.sn.isBlank()) { @@ -80,53 +84,92 @@ object ChatServiceHandler : BaseController() { currentCallType == CALL_TYPE_VEHICLE_TEAM -> { trackHangUp(CALL_TYPE_VEHICLE_TEAM, "2") log(TAG, "hangUp VehicleTeam") - VehicleTeamController.requestVehicleTeamConnectStatus(MoGoAiCloudClientConfig.getInstance().sn, PUSH_MSG_HANG_UP, CALL_TYPE_VEHICLE_TEAM, onSuccess, onError) + VehicleTeamController.requestVehicleTeamConnectStatus( + MoGoAiCloudClientConfig.getInstance().sn, + PUSH_MSG_HANG_UP, + CALL_TYPE_VEHICLE_TEAM, + onSuccess, + onError + ) } GMEApi.isRoomEntered() || callTypeManager.callStatus.isCalling() -> { trackHangUp(callTypeManager.callStatus.exchangeToCallType(), "2") log(TAG, "hangUp Call") - ChatController.requestConnectStatus(tmpSenderInfo.sn, PUSH_MSG_HANG_UP, onSuccess, onError, roomId) + ChatController.requestConnectStatus( + tmpSenderInfo.sn, + PUSH_MSG_HANG_UP, + onSuccess, + onError, + roomId + ) } else -> { - log(TAG, "realHangUp " + - "currentCallStatus : ${callTypeManager.callStatus} + " + - "currentCallType : $currentCallType") + log( + TAG, "realHangUp " + + "currentCallStatus : ${callTypeManager.callStatus} + " + + "currentCallType : $currentCallType" + ) } } } - private fun realRefuse(sn: String, onSuccess: () -> Unit, onError: (Exception) -> Unit, roomId: Int = -1) { + private fun realRefuse( + sn: String, + onSuccess: () -> Unit, + onError: (Exception) -> Unit, + roomId: Int = -1 + ) { log(TAG, "realRefuse currentCallType : $currentCallType ") when { currentCallType == CALL_TYPE_VEHICLE_TEAM -> { log(TAG, "refuse VehicleTeam") - VehicleTeamController.requestVehicleTeamConnectStatus(sn, PUSH_MSG_DENY_ENTER, CALL_TYPE_VEHICLE_TEAM, onSuccess, onError) + VehicleTeamController.requestVehicleTeamConnectStatus( + sn, + PUSH_MSG_DENY_ENTER, + CALL_TYPE_VEHICLE_TEAM, + onSuccess, + onError + ) } callTypeManager.callStatus.isReadyCalling() -> { log(TAG, "refuse call") - ChatController.requestConnectStatus(sn, PUSH_MSG_DENY_ENTER, onSuccess, onError, roomId) + ChatController.requestConnectStatus( + sn, + PUSH_MSG_DENY_ENTER, + onSuccess, + onError, + roomId + ) } else -> { - log(TAG, "realRefuse " + - "currentCallStatus : ${callTypeManager.callStatus} + " + - "currentCallType : $currentCallType") + log( + TAG, "realRefuse " + + "currentCallStatus : ${callTypeManager.callStatus} + " + + "currentCallType : $currentCallType" + ) } } } fun answer( - sn: String, - roomId: Int, - onSuccess: (() -> Unit)? = null, - onError: ((Exception) -> Unit)? = null + sn: String, + roomId: Int, + onSuccess: (() -> Unit)? = null, + onError: ((Exception) -> Unit)? = null ) { log(TAG, "answer currentCallType ==== $currentCallType") getUserInfo({ when (currentCallType) { CALL_TYPE_VEHICLE_TEAM -> { - VehicleTeamController.requestVehicleTeamConnectStatus(sn, PUSH_MSG_AGREE_ENTER, CALL_TYPE_VEHICLE_TEAM, { - onSuccess?.invoke() - }, onError) + VehicleTeamController.requestVehicleTeamConnectStatus( + sn, + PUSH_MSG_AGREE_ENTER, + CALL_TYPE_VEHICLE_TEAM, + { + onSuccess?.invoke() + }, + onError + ) } else -> { ChatController.requestConnectStatus(sn, PUSH_MSG_AGREE_ENTER, { @@ -141,10 +184,10 @@ object ChatServiceHandler : BaseController() { } fun startMatch( - flag: String, - onSuccess: () -> Unit, - onError: (Exception) -> Unit, - timeOut: () -> Unit + flag: String, + onSuccess: () -> Unit, + onError: (Exception) -> Unit, + timeOut: () -> Unit ) { getUserInfo({ MatchController.startMatch(flag, onSuccess, onError, timeOut) @@ -157,7 +200,11 @@ object ChatServiceHandler : BaseController() { MatchController.cancelMatch(onSuccess) } - fun inviteJoinVehicleTeam(invitedSn: String, onSuccess: () -> Unit, onError: (Exception) -> Unit) { + fun inviteJoinVehicleTeam( + invitedSn: String, + onSuccess: () -> Unit, + onError: (Exception) -> Unit + ) { VehicleTeamController.inviteJoinVehicleTeam(invitedSn, onSuccess, onError) } @@ -212,7 +259,7 @@ object ChatServiceHandler : BaseController() { onSuccess { val onLineStatus = it.result log(TAG, "onLineStatus : $onLineStatus") - onSuccess.invoke(onLineStatus.onLine()) + onSuccess.invoke(onLineStatus.carOnLine == 1 && onLineStatus.onLine == 1) } onError { onError.invoke(it) @@ -221,9 +268,9 @@ object ChatServiceHandler : BaseController() { } fun queryUserInfo( - sn: String, - onSuccess: (userInfo: String) -> Unit, - onError: (Exception) -> Unit + sn: String, + onSuccess: (userInfo: String) -> Unit, + onError: (Exception) -> Unit ) { request> { loader { diff --git a/modules/mogo-module-common/build.gradle b/modules/mogo-module-common/build.gradle index 6d3e794388..8bea5b66ea 100644 --- a/modules/mogo-module-common/build.gradle +++ b/modules/mogo-module-common/build.gradle @@ -76,7 +76,8 @@ dependencies { api rootProject.ext.dependencies.mogocommons api rootProject.ext.dependencies.mogoserviceapi implementation rootProject.ext.dependencies.callchatprovider - + + implementation rootProject.ext.dependencies.mogo_core_utils implementation rootProject.ext.dependencies.mogo_core_data implementation rootProject.ext.dependencies.mogo_core_function_call } else { @@ -87,6 +88,7 @@ dependencies { api project(':services:mogo-service-api') implementation project(':modules:mogo-module-carchattingprovider') + implementation project(':core:mogo-core-utils') implementation project(':core:mogo-core-data') implementation project(':core:mogo-core-function-call') } diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/BaseDrawer.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/BaseDrawer.java index 7ec534ea69..55fd0e3677 100644 --- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/BaseDrawer.java +++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/BaseDrawer.java @@ -14,13 +14,13 @@ import android.view.ViewGroup; import android.widget.TextView; import com.mogo.commons.AbsMogoApplication; +import com.mogo.eagle.core.utilcode.mogo.thread.WorkThreadHandler; import com.mogo.map.marker.IMogoMarker; import com.mogo.module.common.MogoApisHandler; import com.mogo.module.common.R; import com.mogo.module.common.constants.AdasRecognizedType; import com.mogo.module.common.datacenter.SnapshotLocationDataCenter; import com.mogo.module.common.drawer.bean.SpeedData; -import com.mogo.utils.WorkThreadHandler; import java.util.Collection; import java.util.Iterator; diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/RoadConditionDrawer.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/RoadConditionDrawer.java index 85d356b710..d2b1eeec01 100644 --- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/RoadConditionDrawer.java +++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/RoadConditionDrawer.java @@ -4,16 +4,15 @@ import android.view.animation.LinearInterpolator; import com.mogo.commons.AbsMogoApplication; import com.mogo.commons.debug.DebugConfig; +import com.mogo.eagle.core.utilcode.mogo.thread.WorkThreadHandler; import com.mogo.map.marker.IMogoMarker; import com.mogo.map.marker.IMogoMarkerClickListener; import com.mogo.map.marker.anim.OnMarkerAnimationListener; import com.mogo.module.common.ModuleNames; import com.mogo.module.common.MogoApisHandler; -import com.mogo.module.common.drawer.marker.RoadConditionInfoWindow3DAdapter; import com.mogo.module.common.entity.MarkerExploreWay; import com.mogo.module.common.entity.MarkerLocation; import com.mogo.module.common.entity.MarkerShowEntity; -import com.mogo.utils.WorkThreadHandler; import com.mogo.utils.logger.Logger; import java.util.List; diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/TrafficMarkerDrawer.kt b/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/TrafficMarkerDrawer.kt index efbc855319..64c6977d7b 100644 --- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/TrafficMarkerDrawer.kt +++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/drawer/TrafficMarkerDrawer.kt @@ -11,7 +11,7 @@ import com.mogo.module.common.MogoApisHandler import com.mogo.module.common.constants.DataTypes import com.mogo.eagle.core.data.traffic.TrafficData import com.mogo.eagle.core.data.enums.TrafficTypeEnum -import com.mogo.utils.WorkThreadHandler +import com.mogo.eagle.core.utilcode.mogo.thread.WorkThreadHandler import com.mogo.utils.logger.Logger import java.util.concurrent.ConcurrentHashMap diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/enums/EventTypeEnum.kt b/modules/mogo-module-common/src/main/java/com/mogo/module/common/enums/EventTypeEnum.kt index 18b11c830c..987d22a091 100644 --- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/enums/EventTypeEnum.kt +++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/enums/EventTypeEnum.kt @@ -18,12 +18,16 @@ enum class EventTypeEnum( GAS_STATION("10001", "加油站", content = "加油站附近", tts = "加油站"), //交通检查 - TRAFFIC_CHECK("10002", "交通检查", "前方交通检查", - R.drawable.v2x_icon_jiaotongjiancha_vr, "前方交通检查", "交通检查"), + TRAFFIC_CHECK( + "10002", "交通检查", "前方交通检查", + R.drawable.v2x_icon_jiaotongjiancha_vr, "前方交通检查", "交通检查" + ), //封路 - ROAD_CLOSED("10003", "封路", "前方封路", R.drawable.v2x_icon_fenglu_vr, - "前方封路", "道路封路"), + ROAD_CLOSED( + "10003", "封路", "前方封路", R.drawable.v2x_icon_fenglu_vr, + "前方封路", "道路封路" + ), //商场打折 SHOP_DISCOUNT("10004", ""), @@ -32,23 +36,31 @@ enum class EventTypeEnum( FOURS_4S("10005", ""), //施工 - FOURS_ROAD_WORK("10006", "道路施工", "前方施工", R.drawable.v2x_icon_daolushigong_vr, - "前方施工", "道路施工"), + FOURS_ROAD_WORK( + "10006", "道路施工", "前方施工", R.drawable.v2x_icon_daolushigong_vr, + "前方施工", "道路施工" + ), //拥堵 - FOURS_BLOCK_UP("10007", "道路拥堵", "前方拥堵", R.drawable.v2x_icon_yongdu_vr, - "前方道路拥堵", "道路拥堵"), + FOURS_BLOCK_UP( + "10007", "道路拥堵", "前方拥堵", R.drawable.v2x_icon_yongdu_vr, + "前方道路拥堵", "道路拥堵" + ), //积水 - FOURS_PONDING("10008", "道路积水", "前方道路积水", R.drawable.v2x_icon_jishui_vr, - "前方道路积水", "道路积水"), + FOURS_PONDING( + "10008", "道路积水", "前方道路积水", R.drawable.v2x_icon_jishui_vr, + "前方道路积水", "道路积水" + ), //超市打折 FOURS_SHOP_FREE("10009", ""), //浓雾 - FOURS_FOG("10010", "出现浓雾", "浓雾预警", R.drawable.v2x_icon_nongwu_vr, - "前方出现浓雾", "出现浓雾"), + FOURS_FOG( + "10010", "出现浓雾", "浓雾预警", R.drawable.v2x_icon_nongwu_vr, + "前方出现浓雾", "出现浓雾" + ), //结冰 FOURS_ICE("10011", "路面结冰", content = "前方路面结冰", tts = "路面结冰"), @@ -57,28 +69,40 @@ enum class EventTypeEnum( FOURS_PARKING("10012", "停车场", content = "停车场附近", tts = "停车场"), //事故 - FOURS_ACCIDENT("10013", "交通事故", "前方交通事故", R.drawable.v2x_icon_jiaotongshigu_vr, - "前方交通事故", "交通事故"), + FOURS_ACCIDENT( + "10013", "交通事故", "前方交通事故", R.drawable.v2x_icon_jiaotongshigu_vr, + "前方交通事故", "交通事故" + ), //重大事故 - FOURS_ACCIDENT_01("1001301", "交通事故", "前方交通事故", R.drawable.v2x_icon_jiaotongshigu_vr, - "前方交通事故", "交通事故"), + FOURS_ACCIDENT_01( + "1001301", "交通事故", "前方交通事故", R.drawable.v2x_icon_jiaotongshigu_vr, + "前方交通事故", "交通事故" + ), //特大事故 - FOURS_ACCIDENT_02("1001302", "交通事故", "前方交通事故", R.drawable.v2x_icon_jiaotongshigu_vr, - "前方交通事故", "交通事故"), + FOURS_ACCIDENT_02( + "1001302", "交通事故", "前方交通事故", R.drawable.v2x_icon_jiaotongshigu_vr, + "前方交通事故", "交通事故" + ), //较大事故 - FOURS_ACCIDENT_03("1001303", "交通事故", "前方交通事故", R.drawable.v2x_icon_jiaotongshigu_vr, - "前方交通事故", "交通事故"), + FOURS_ACCIDENT_03( + "1001303", "交通事故", "前方交通事故", R.drawable.v2x_icon_jiaotongshigu_vr, + "前方交通事故", "交通事故" + ), //一般事故 - FOURS_ACCIDENT_04("1001304", "交通事故", "前方交通事故", R.drawable.v2x_icon_jiaotongshigu_vr, - "前方交通事故", "交通事故"), + FOURS_ACCIDENT_04( + "1001304", "交通事故", "前方交通事故", R.drawable.v2x_icon_jiaotongshigu_vr, + "前方交通事故", "交通事故" + ), //轻微事故 - FOURS_ACCIDENT_05("1001305", "交通事故", "前方交通事故", R.drawable.v2x_icon_jiaotongshigu_vr, - "前方交通事故", "交通事故"), + FOURS_ACCIDENT_05( + "1001305", "交通事故", "前方交通事故", R.drawable.v2x_icon_jiaotongshigu_vr, + "前方交通事故", "交通事故" + ), //身边 FOURS_NEALY("10014", "身边事件"), @@ -123,220 +147,222 @@ enum class EventTypeEnum( TYPE_USECASE_ID_EBW( ObuConstants.USE_CASE_ID.EBW.toString(), "紧急制动预警", - poiTypeSrcVr=R.drawable.icon_warning_v2x_emergency_brake, - content="前车急刹车", + poiTypeSrcVr = R.drawable.icon_warning_v2x_emergency_brake, + content = "前车急刹车", tts = "前车急刹车" ), TYPE_USECASE_ID_FCW( ObuConstants.USE_CASE_ID.FCW.toString(), "前向碰撞预警", - poiTypeSrcVr=R.drawable.icon_warning_v2x_collision_warning, - content="前车碰撞预警", - tts="小心前车" + poiTypeSrcVr = R.drawable.icon_warning_v2x_collision_warning, + content = "前车碰撞预警", + tts = "小心前车" ), TYPE_USECASE_ID_ICW( ObuConstants.USE_CASE_ID.ICW.toString(), "交叉路口碰撞预警", - poiTypeSrcVr=R.drawable.icon_warning_v2x_collision_warning, - content="交叉路口碰撞预警", - tts="注意交叉路口车辆" + poiTypeSrcVr = R.drawable.icon_warning_v2x_collision_warning, + content = "交叉路口碰撞预警", + tts = "注意交叉路口车辆" ), TYPE_USECASE_ID_CLW( ObuConstants.USE_CASE_ID.CLW.toString(), "车辆失控预警", - poiTypeSrcVr=R.drawable.icon_warning_v2x_vehicle_control, - content="前%s失控预警", - tts="小心%s失控车辆" + poiTypeSrcVr = R.drawable.icon_warning_v2x_vehicle_control, + content = "前%s失控预警", + tts = "小心%s失控车辆" ), TYPE_USECASE_ID_DNPW( ObuConstants.USE_CASE_ID.DNPW.toString(), "逆向超车预警", - poiTypeSrcVr=R.drawable.icon_warning_v2x_reverse_overtaking, - content="逆向超车预警", - tts="注意对向来车" + poiTypeSrcVr = R.drawable.icon_warning_v2x_reverse_overtaking, + content = "逆向超车预警", + tts = "注意对向来车" ), TYPE_USECASE_ID_AVW( ObuConstants.USE_CASE_ID.AVW.toString(), "异常车辆提醒", - poiTypeSrcVr=R.drawable.icon_warning_v2x_abnormal_vehicle, - content="%s车异常", - tts="小心%s异常车辆" + poiTypeSrcVr = R.drawable.icon_warning_v2x_abnormal_vehicle, + content = "%s车异常", + tts = "小心%s异常车辆" ), TYPE_USECASE_ID_BSW( ObuConstants.USE_CASE_ID.BSW.toString(), "盲区预警", - poiTypeSrcVr=R.drawable.icon_warning_v2x_blind_area_collision, - content="%s后盲区预警", - tts="注意%s后车辆" + poiTypeSrcVr = R.drawable.icon_warning_v2x_blind_area_collision, + content = "%s后盲区预警", + tts = "注意%s后车辆" ), TYPE_USECASE_ID_LCW( ObuConstants.USE_CASE_ID.LCW.toString(), "变道预警", - poiTypeSrcVr=R.drawable.icon_warning_v2x_reverse_overtaking, - content="%s向变道预警", - tts="注意%s后车辆" + poiTypeSrcVr = R.drawable.icon_warning_v2x_reverse_overtaking, + content = "%s向变道预警", + tts = "注意%s后车辆" ),//注意左后车辆/注意右后车辆 TYPE_USECASE_ID_EVW( ObuConstants.USE_CASE_ID.EVW.toString(), "紧急车辆提醒", - poiTypeSrcVr=R.drawable.icon_warning_v2x_special_vehicle_access, - content="注意特种车辆通行", - tts="请避让特种车辆" + poiTypeSrcVr = R.drawable.icon_warning_v2x_special_vehicle_access, + content = "注意特种车辆通行", + tts = "请避让特种车辆" ), TYPE_USECASE_ID_VRUCW_PERSON( 0X2B0201.toString(), "弱势交通参与者碰撞预警", - poiTypeSrcVr=R.drawable.icon_warning_v2x_pedestrian_crossing, - content="注意行人", - tts="注意行人" + poiTypeSrcVr = R.drawable.icon_warning_v2x_pedestrian_crossing, + content = "注意行人", + tts = "注意行人" ),//行人/摩托车碰撞预警 TYPE_USECASE_ID_VRUCW_MOTORBIKE( 0X2B0202.toString(), "弱势交通参与者碰撞预警", - poiTypeSrcVr=R.drawable.icon_warning_v2x_motorcycle_collision, - content="注意摩托车", - tts="注意摩托车" + poiTypeSrcVr = R.drawable.icon_warning_v2x_motorcycle_collision, + content = "注意摩托车", + tts = "注意摩托车" ),//摩托车碰撞预警 TYPE_USECASE_ID_SLW( ObuConstants.USE_CASE_ID.SLW.toString(), "限速预警", - poiTypeSrcVr=R.drawable.icon_warning_v2x_over_speed, - content="已超速", - tts="已超速" + poiTypeSrcVr = R.drawable.icon_warning_v2x_over_speed, + content = "已超速", + tts = "已超速" ), TYPE_USECASE_ID_LTA( ObuConstants.USE_CASE_ID.LTA.toString(), "左转辅助", - poiTypeSrcVr=R.drawable.icon_warning_v2x_collision_warning, - content="左转碰撞预警", - tts="注意路口对向来车" + poiTypeSrcVr = R.drawable.icon_warning_v2x_collision_warning, + content = "左转碰撞预警", + tts = "注意路口对向来车" ), TYPE_USECASE_ID_HLW( ObuConstants.USE_CASE_ID.HLW.toString(), "道路危险情况预警", - poiTypeSrcVr=R.drawable.icon_warning_v2x_road_dangerous, - content="道路危险情况预警", - tts="前方路况危险,小心行驶" + poiTypeSrcVr = R.drawable.icon_warning_v2x_road_dangerous, + content = "道路危险情况预警", + tts = "前方路况危险,小心行驶" ),//(如果能给出具体的类别,则播报具体危险类别) TYPE_USECASE_ID_IVS( ObuConstants.USE_CASE_ID.IVS.toString(), "车内标牌", - poiTypeSrcVr=R.drawable.icon_warning_v2x_road_construction, - content="车内标牌", - tts="" + poiTypeSrcVr = R.drawable.icon_warning_v2x_road_construction, + content = "车内标牌", + tts = "" ), TYPE_USECASE_ID_TJW( ObuConstants.USE_CASE_ID.TJW.toString(), "前方拥堵提醒", - poiTypeSrcVr=R.drawable.icon_warning_v2x_congestion, - content="前方%d米道路拥堵", - tts="前方拥堵,减速慢行" + poiTypeSrcVr = R.drawable.icon_warning_v2x_congestion, + content = "前方%d米道路拥堵", + tts = "前方拥堵,减速慢行" ), TYPE_USECASE_ID_IVP( ObuConstants.USE_CASE_ID.IVP.toString(), "闯红灯预警", - poiTypeSrcVr=R.drawable.icon_warning_v2x_traffic_lights_red, - content="路口红灯,禁止通行", - tts="路口红灯,禁止通行" + poiTypeSrcVr = R.drawable.icon_warning_v2x_traffic_lights_red, + content = "路口红灯,禁止通行", + tts = "路口红灯,禁止通行" ), TYPE_USECASE_ID_IVP_GREEN( 0x2B091.toString(), "绿波通行", - poiTypeSrcVr=R.drawable.icon_warning_v2x_traffic_lights_green, - content="建议车速 %s KM/H", - tts="建议车速 %s KM/H" + poiTypeSrcVr = R.drawable.icon_warning_v2x_traffic_lights_green, + content = "建议车速 %s KM/H", + tts = "建议车速 %s KM/H" ), TYPE_USECASE_ID_COC( ObuConstants.USE_CASE_ID.COC.toString(), "预留", - poiTypeSrcVr=R.drawable.icon_warning_v2x_abnormal_vehicle, - content="路况预警", - tts="路况预警" + poiTypeSrcVr = R.drawable.icon_warning_v2x_abnormal_vehicle, + content = "路况预警", + tts = "路况预警" ), TYPE_USECASE_ID_ROAD_TRAMCAR( 0x2C01.toString(), "前方有轨电车提醒", - poiTypeSrcVr=R.drawable.icon_warning_v2x_tramcar, - content="注意前方有轨电车", - tts="注意前方有轨电车驶过" + poiTypeSrcVr = R.drawable.icon_warning_v2x_tramcar, + content = "注意前方有轨电车", + tts = "注意前方有轨电车驶过" ), TYPE_USECASE_ID_ROAD_TURN_LEFT_SHARP( 0x2C02.toString(), "前方左转急弯", - poiTypeSrcVr=R.drawable.icon_warning_v2x_turn_left_sharp, - content="注意前方左转急弯", - tts="前方路口左转急弯,减速慢行", + poiTypeSrcVr = R.drawable.icon_warning_v2x_turn_left_sharp, + content = "注意前方左转急弯", + tts = "前方路口左转急弯,减速慢行", ), TYPE_USECASE_ID_ROAD_TURN_RIGHT_SHARP( 0x2C03.toString(), "前方右转急弯", - poiTypeSrcVr=R.drawable.icon_warning_v2x_turn_right_sharp, - content="注意前方右转急弯", - tts="前方路口右转急弯,减速慢行" + poiTypeSrcVr = R.drawable.icon_warning_v2x_turn_right_sharp, + content = "注意前方右转急弯", + tts = "前方路口右转急弯,减速慢行" ), TYPE_USECASE_ID_ROAD_PEDESTRIAN_CROSSING( 0x2C04.toString(), "人行横道", - poiTypeSrcVr=R.drawable.icon_warning_v2x_pedestrian_crossing, - content="注意前方人行横道", - tts="前方人行横道,减速慢行" + poiTypeSrcVr = R.drawable.icon_warning_v2x_pedestrian_crossing, + content = "注意前方人行横道", + tts = "前方人行横道,减速慢行" ), TYPE_USECASE_ID_ROAD_PEDESTRIAN_SCHOOL( 0x2C05.toString(), "学校", - poiTypeSrcVr=R.drawable.icon_warning_v2x_school, - content="注意前方学校", - tts="前方学校,减速慢行" + poiTypeSrcVr = R.drawable.icon_warning_v2x_school, + content = "注意前方学校", + tts = "前方学校,减速慢行" ), TYPE_USECASE_ID_ROAD_COLLISION_WARNING( 0x2C06.toString(), "事故易发路段", - poiTypeSrcVr=R.drawable.icon_warning_v2x_collision_warning, - content="注意当前路段事故多发", - tts="当前路段事故多发,请小心驾驶" + poiTypeSrcVr = R.drawable.icon_warning_v2x_collision_warning, + content = "注意当前路段事故多发", + tts = "当前路段事故多发,请小心驾驶" ), TYPE_USECASE_ID_ROAD_ROUNDABOUTPNG( 0x2C07.toString(), "环岛行驶", - poiTypeSrcVr=R.drawable.icon_warning_v2x_roundaboutpng, - content="注意前方驶入环岛", - tts="即将驶入环岛,减速慢行" + poiTypeSrcVr = R.drawable.icon_warning_v2x_roundaboutpng, + content = "注意前方驶入环岛", + tts = "即将驶入环岛,减速慢行" ), TYPE_USECASE_ID_ROAD_TEST_SECTION( 0x2C08.toString(), "驾校考试路段", - poiTypeSrcVr=R.drawable.icon_warning_v2x_test_section, - content="注意前方驾校考试路段", - tts="驾校考试路段,请小心驾驶" + poiTypeSrcVr = R.drawable.icon_warning_v2x_test_section, + content = "注意前方驾校考试路段", + tts = "驾校考试路段,请小心驾驶" ), TYPE_USECASE_ID_ROAD_HUMP_BRIDGE( 0x2C09.toString(), "驼峰桥", - poiTypeSrcVr=R.drawable.icon_warning_v2x_hump_bridge, - content="注意前方驼峰桥", - tts="注意即将驶入驼峰桥,请小心驾驶" + poiTypeSrcVr = R.drawable.icon_warning_v2x_hump_bridge, + content = "注意前方驼峰桥", + tts = "注意即将驶入驼峰桥,请小心驾驶" ), TYPE_USECASE_ID_ROAD_NO_PARKING( 0x2C10.toString(), "禁止停车", - poiTypeSrcVr=R.drawable.icon_warning_v2x_no_parking, - content="注意当前路段禁止停车", - tts="当前路段,禁止停车" + poiTypeSrcVr = R.drawable.icon_warning_v2x_no_parking, + content = "注意当前路段禁止停车", + tts = "当前路段,禁止停车" ), TYPE_USECASE_ID_ROAD_GIVE_WAY( 0x2C11.toString(), "减速慢行", - poiTypeSrcVr=R.drawable.icon_warning_v2x_give_way, - content="注意路况复杂,减速慢行", - tts="路况复杂,减速慢行" + poiTypeSrcVr = R.drawable.icon_warning_v2x_give_way, + content = "注意路况复杂,减速慢行", + tts = "路况复杂,减速慢行" ), TYPE_ERROR( ObuConstants.USE_CASE_ID.ERROR.toString(), "未知/错误/异常", - poiTypeSrcVr=R.drawable.icon_warning_v2x_abnormal_vehicle, - content="", - tts="" - ); + poiTypeSrcVr = R.drawable.icon_warning_v2x_abnormal_vehicle, + content = "", + tts = "" + ), + + TYPE_VIP_IDENTIFICATION("10022", "", "", R.drawable.icon_warning_v2x_vip_turn_light, "VIP车辆优先通行", "已为您变灯,请优先通行"); companion object { @JvmStatic @@ -541,12 +567,12 @@ enum class EventTypeEnum( FOURS_PONDING.poiType -> FOURS_PONDING.tts FOURS_FOG.poiType -> FOURS_FOG.tts FOURS_ICE.poiType -> FOURS_ICE.tts - FOURS_ACCIDENT.poiType, FOURS_ACCIDENT_01.poiType, FOURS_ACCIDENT_02.poiType, + FOURS_ACCIDENT.poiType, FOURS_ACCIDENT_01.poiType, FOURS_ACCIDENT_02.poiType, FOURS_ACCIDENT_03.poiType, FOURS_ACCIDENT_04.poiType, FOURS_ACCIDENT_05.poiType -> FOURS_ACCIDENT.tts else -> "道路事件" } } - + @JvmStatic fun getTtsWithFeedback(poiType: String?): String { return when (poiType) { @@ -564,7 +590,7 @@ enum class EventTypeEnum( else -> "道路事件" } } - + @JvmStatic fun getAlarmContent(poiType: String?): String { return when (poiType) { @@ -634,7 +660,7 @@ enum class EventTypeEnum( else -> "实时路况" } } - + @JvmStatic fun getMarker3DRes(poiType: String?): Int { return when (poiType) { @@ -649,7 +675,7 @@ enum class EventTypeEnum( else -> 0 } } - + @JvmStatic fun getTypeNameTTS(type: String?): String { return when (type) { @@ -665,7 +691,7 @@ enum class EventTypeEnum( else -> "实时路况" } } - + @JvmStatic fun getUpdateIconRes(poiType: String?): Int { return when (poiType) { @@ -768,6 +794,7 @@ enum class EventTypeEnum( TYPE_USECASE_ID_ROAD_HUMP_BRIDGE.poiType -> TYPE_USECASE_ID_ROAD_HUMP_BRIDGE.poiTypeSrcVr TYPE_USECASE_ID_ROAD_NO_PARKING.poiType -> TYPE_USECASE_ID_ROAD_NO_PARKING.poiTypeSrcVr TYPE_USECASE_ID_ROAD_GIVE_WAY.poiType -> TYPE_USECASE_ID_ROAD_GIVE_WAY.poiTypeSrcVr + TYPE_VIP_IDENTIFICATION.poiType -> TYPE_VIP_IDENTIFICATION.poiTypeSrcVr TYPE_ERROR.poiType -> TYPE_ERROR.poiTypeSrcVr else -> TYPE_ERROR.poiTypeSrcVr } @@ -806,6 +833,7 @@ enum class EventTypeEnum( TYPE_USECASE_ID_ROAD_HUMP_BRIDGE.poiType -> TYPE_USECASE_ID_ROAD_HUMP_BRIDGE.content TYPE_USECASE_ID_ROAD_NO_PARKING.poiType -> TYPE_USECASE_ID_ROAD_NO_PARKING.content TYPE_USECASE_ID_ROAD_GIVE_WAY.poiType -> TYPE_USECASE_ID_ROAD_GIVE_WAY.content + TYPE_VIP_IDENTIFICATION.poiType -> TYPE_VIP_IDENTIFICATION.content FOURS_ROAD_WORK.poiType -> FOURS_ROAD_WORK.content TYPE_ERROR.poiType -> TYPE_ERROR.content else -> TYPE_ERROR.content @@ -845,6 +873,7 @@ enum class EventTypeEnum( TYPE_USECASE_ID_ROAD_HUMP_BRIDGE.poiType -> TYPE_USECASE_ID_ROAD_HUMP_BRIDGE.tts TYPE_USECASE_ID_ROAD_NO_PARKING.poiType -> TYPE_USECASE_ID_ROAD_NO_PARKING.tts TYPE_USECASE_ID_ROAD_GIVE_WAY.poiType -> TYPE_USECASE_ID_ROAD_GIVE_WAY.tts + TYPE_VIP_IDENTIFICATION.poiType -> TYPE_VIP_IDENTIFICATION.tts FOURS_ROAD_WORK.poiType -> FOURS_ROAD_WORK.tts TYPE_ERROR.poiType -> TYPE_ERROR.tts else -> TYPE_ERROR.tts diff --git a/modules/mogo-module-search/build.gradle b/modules/mogo-module-search/build.gradle index ae4a3a0fba..1605bf71be 100644 --- a/modules/mogo-module-search/build.gradle +++ b/modules/mogo-module-search/build.gradle @@ -60,6 +60,8 @@ dependencies { implementation rootProject.ext.dependencies.mogocommons implementation rootProject.ext.dependencies.mogoserviceapi implementation rootProject.ext.dependencies.modulecommon + + implementation rootProject.ext.dependencies.mogo_core_utils } else { implementation project(":foudations:mogo-utils") implementation project(":foudations:mogo-commons") @@ -67,6 +69,8 @@ dependencies { implementation project(':modules:mogo-module-common') implementation project(':core:mogo-core-data') + implementation project(':core:mogo-core-utils') + } implementation 'com.zhidaoauto.voice.controller:api:1.0.2' diff --git a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/manager/AddressManager.kt b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/manager/AddressManager.kt index 18a7b0aaf0..f4d0335873 100644 --- a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/manager/AddressManager.kt +++ b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/manager/AddressManager.kt @@ -12,7 +12,7 @@ import com.mogo.module.navi.cp.AddressHelper import com.mogo.module.navi.cp.PersonalInfoManager import com.mogo.module.navi.dao.SearchPoiDao import com.mogo.module.navi.database.AppDataBase -import com.mogo.utils.WorkThreadHandler +import com.mogo.eagle.core.utilcode.mogo.thread.WorkThreadHandler import com.mogo.utils.logger.Logger import io.reactivex.Observable import io.reactivex.ObservableOnSubscribe diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServices.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServices.java index 38b2acc9d9..156839d55e 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServices.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServices.java @@ -66,7 +66,7 @@ import com.mogo.service.statusmanager.IMogoStatusChangedListener; import com.mogo.service.statusmanager.IMogoStatusManager; import com.mogo.service.statusmanager.StatusDescriptor; import com.mogo.utils.NetworkUtils; -import com.mogo.utils.WorkThreadHandler; +import com.mogo.eagle.core.utilcode.mogo.thread.WorkThreadHandler; import com.mogo.utils.logger.Logger; import org.json.JSONObject; diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/intent/MockIntentHandler.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/intent/MockIntentHandler.java index 281c889ec4..67f459a76a 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/intent/MockIntentHandler.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/intent/MockIntentHandler.java @@ -46,7 +46,7 @@ import com.mogo.module.service.status.EnvStatusManager; import com.mogo.module.service.timedelay.TimeDelayUploadManager; import com.mogo.service.entrance.ButtonIndex; import com.mogo.utils.TipToast; -import com.mogo.utils.WorkThreadHandler; +import com.mogo.eagle.core.utilcode.mogo.thread.WorkThreadHandler; import com.mogo.utils.logger.Logger; import com.mogo.utils.network.utils.GsonUtil; import com.mogo.utils.storage.SharedPrefsMgr; diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/mocktools/DataCollectionHandler.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/mocktools/DataCollectionHandler.java index a62e92a18a..8f7b2b6419 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/mocktools/DataCollectionHandler.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/mocktools/DataCollectionHandler.java @@ -4,7 +4,7 @@ import android.os.Environment; import android.os.Handler; import android.os.Message; -import com.mogo.utils.WorkThreadHandler; +import com.mogo.eagle.core.utilcode.mogo.thread.WorkThreadHandler; import java.io.File; diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/strategy/CarIconDisplayStrategy.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/strategy/CarIconDisplayStrategy.java index 6b3a9399e8..db3dd75d60 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/strategy/CarIconDisplayStrategy.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/strategy/CarIconDisplayStrategy.java @@ -12,7 +12,7 @@ import com.mogo.map.uicontroller.CarCursorOption; import com.mogo.module.common.utils.CarSeries; import com.mogo.module.service.MarkerServiceHandler; import com.mogo.module.service.R; -import com.mogo.utils.WorkThreadHandler; +import com.mogo.eagle.core.utilcode.mogo.thread.WorkThreadHandler; import java.util.ArrayList; diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/timedelay/TimeDelayUploadManager.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/timedelay/TimeDelayUploadManager.java index 93341880b7..a9afda506a 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/timedelay/TimeDelayUploadManager.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/timedelay/TimeDelayUploadManager.java @@ -22,7 +22,7 @@ import com.mogo.realtime.api.MoGoAiCloudRealTime; import com.mogo.realtime.socket.IMogoCloudOnMsgListener; import com.mogo.service.adas.IMogoADASController; import com.mogo.service.cloud.socket.IMogoOnMessageListener; -import com.mogo.utils.WorkThreadHandler; +import com.mogo.eagle.core.utilcode.mogo.thread.WorkThreadHandler; import com.mogo.utils.logger.Logger; import com.mogo.utils.network.RequestOptions; import com.mogo.utils.network.utils.GsonUtil; diff --git a/modules/mogo-module-share/build.gradle b/modules/mogo-module-share/build.gradle index f7ff16ee11..3eb1ba5945 100644 --- a/modules/mogo-module-share/build.gradle +++ b/modules/mogo-module-share/build.gradle @@ -60,13 +60,16 @@ dependencies { implementation rootProject.ext.dependencies.modulecommon implementation rootProject.ext.dependencies.moduleservice + implementation rootProject.ext.dependencies.mogo_core_utils implementation rootProject.ext.dependencies.mogo_core_data + } else { implementation project(":foudations:mogo-utils") implementation project(":foudations:mogo-commons") implementation project(':modules:mogo-module-common') implementation project(':modules:mogo-module-service') + implementation project(':core:mogo-core-utils') implementation project(':core:mogo-core-data') } diff --git a/modules/mogo-module-share/src/main/java/com/mogo/module/share/TanluManager.java b/modules/mogo-module-share/src/main/java/com/mogo/module/share/TanluManager.java index 4d119ae8c3..893236063f 100644 --- a/modules/mogo-module-share/src/main/java/com/mogo/module/share/TanluManager.java +++ b/modules/mogo-module-share/src/main/java/com/mogo/module/share/TanluManager.java @@ -53,7 +53,6 @@ import com.mogo.utils.NetworkUtils; import com.mogo.utils.TipDrawable; import com.mogo.utils.TipToast; import com.mogo.utils.UiThreadHandler; -import com.mogo.utils.WorkThreadHandler; import com.mogo.utils.logger.Logger; import org.greenrobot.eventbus.EventBus; diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/fragment/V2XSurroundingFragment.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/fragment/V2XSurroundingFragment.java index 8154da3675..19e5b772eb 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/fragment/V2XSurroundingFragment.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/fragment/V2XSurroundingFragment.java @@ -48,7 +48,7 @@ import com.mogo.module.common.view.NetworkLoadingView; import com.mogo.module.v2x.view.SurroundingMarginDecoration; import com.mogo.service.IMogoServiceApis; import com.mogo.eagle.core.data.constants.MogoServicePaths; -import com.mogo.utils.WorkThreadHandler; +import com.mogo.eagle.core.utilcode.mogo.thread.WorkThreadHandler; import com.mogo.utils.logger.Logger; import org.greenrobot.eventbus.EventBus; diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/presenter/ScenarioHistoryPresenter.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/presenter/ScenarioHistoryPresenter.java index 43f7cfbd8c..74504b5d83 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/presenter/ScenarioHistoryPresenter.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/presenter/ScenarioHistoryPresenter.java @@ -5,7 +5,7 @@ import com.mogo.commons.mvp.Presenter; import com.mogo.module.common.entity.V2XHistoryScenarioData; import com.mogo.module.v2x.fragment.V2XScenarioHistoryFragment; import com.mogo.module.v2x.utils.V2XSQLiteUtils; -import com.mogo.utils.WorkThreadHandler; +import com.mogo.eagle.core.utilcode.mogo.thread.WorkThreadHandler; import java.util.List; diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/presenter/ShareEventsPresenter.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/presenter/ShareEventsPresenter.java index f2ba64eb21..8b43bebbb0 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/presenter/ShareEventsPresenter.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/presenter/ShareEventsPresenter.java @@ -2,12 +2,8 @@ package com.mogo.module.v2x.presenter; import com.mogo.commons.mvp.IView; import com.mogo.commons.mvp.Presenter; -import com.mogo.module.common.entity.V2XHistoryScenarioData; import com.mogo.module.v2x.fragment.V2XShareEventsFragment; -import com.mogo.module.v2x.utils.V2XSQLiteUtils; -import com.mogo.utils.WorkThreadHandler; - -import java.util.List; +import com.mogo.eagle.core.utilcode.mogo.thread.WorkThreadHandler; public class ShareEventsPresenter extends Presenter { diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/park/V2XIllegalParkMarker.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/park/V2XIllegalParkMarker.java index e80e54e152..0d4ff4972b 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/park/V2XIllegalParkMarker.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/park/V2XIllegalParkMarker.java @@ -1,6 +1,5 @@ package com.mogo.module.v2x.scenario.scene.park; -import android.content.Context; import android.graphics.Bitmap; import android.os.Handler; import android.view.animation.AccelerateInterpolator; @@ -19,11 +18,10 @@ import com.mogo.module.common.entity.MarkerShowEntity; import com.mogo.module.common.entity.V2XRoadEventEntity; import com.mogo.module.service.ServiceConst; import com.mogo.module.v2x.V2XServiceManager; -import com.mogo.module.v2x.marker.V2XMarkerAdapter; import com.mogo.module.v2x.scenario.view.IV2XMarker; import com.mogo.module.v2x.utils.MarkerUtils; import com.mogo.utils.ViewUtils; -import com.mogo.utils.WorkThreadHandler; +import com.mogo.eagle.core.utilcode.mogo.thread.WorkThreadHandler; import java.util.ArrayList; import java.util.List; diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/warning/V2XWarningMarker.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/warning/V2XWarningMarker.java index 9cdca34b82..289ba22aa7 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/warning/V2XWarningMarker.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/warning/V2XWarningMarker.java @@ -18,7 +18,7 @@ import com.mogo.module.v2x.entity.model.DrawLineInfo; import com.mogo.module.v2x.listener.V2XLocationListener; import com.mogo.module.v2x.scenario.view.IV2XMarker; import com.mogo.utils.UiThreadHandler; -import com.mogo.utils.WorkThreadHandler; +import com.mogo.eagle.core.utilcode.mogo.thread.WorkThreadHandler; import java.util.ArrayList; import java.util.Arrays;