[Update] 升级ARouter 版本,支持Fragment单利

[Change] 修改地图层、HMI层加载方式,采用ARouter方式获取Fragment实例进行加载;废弃MoGoWarningProvider使用MoGoHmiFragment接管IMoGoWaringProvider实现

Signed-off-by: donghongyu <donghongyu@zhidaoauto.com>
This commit is contained in:
donghongyu
2021-11-10 19:11:04 +08:00
parent 8580551598
commit cc7870fa9f
27 changed files with 233 additions and 540 deletions

2
.idea/misc.xml generated
View File

@@ -77,7 +77,7 @@
</map> </map>
</option> </option>
</component> </component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="11" project-jdk-type="JavaSDK"> <component name="ProjectRootManager" version="2" languageLevel="JDK_11" default="true" project-jdk-name="11" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/build/classes" /> <output url="file://$PROJECT_DIR$/build/classes" />
</component> </component>
</project> </project>

View File

@@ -21,7 +21,7 @@ adb pull /sdcard/Android/data/com.mogo.launcher.f/log/20211022
// 顶部弹窗场景,控制展示 // 顶部弹窗场景,控制展示
adb shell am broadcast -a com.hmi.v2x.notification --ez v2xIsShow true --es tag "200011" --ei v2xType 20011 --es alertContent "测试外部传入数据" --es ttsContent "测试TTS" adb shell am broadcast -a com.hmi.v2x.notification --ez v2xIsShow true --es tag "200011" --ei v2xType 20011 --es alertContent "测试外部传入数据" --es ttsContent "测试TTS"
// 关闭顶部弹窗 // 关闭顶部弹窗
adb shell am broadcast -a com.hmi.v2x.notification --ez v2xIsShow false --es tag "20008" adb shell am broadcast -a com.hmi.v2x.notification --ez v2xIsShow false --es tag "200011"
// 控制红绿灯 // 控制红绿灯
adb shell am broadcast -a com.hmi.v2x.trafficlight --ez trafficLightIsShow true --ei trafficLightCheckType 1 adb shell am broadcast -a com.hmi.v2x.trafficlight --ez trafficLightIsShow true --ei trafficLightCheckType 1

View File

@@ -17,7 +17,7 @@ buildscript {
dependencies { dependencies {
classpath 'com.android.tools.build:gradle:3.5.3' classpath 'com.android.tools.build:gradle:3.5.3'
classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.31' classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.31'
classpath "com.alibaba:arouter-register:1.0.4-mogo" classpath "com.alibaba:arouter-register:1.0.8-mogo"
classpath 'com.hujiang.aspectjx:gradle-android-plugin-aspectjx:2.0.4' classpath 'com.hujiang.aspectjx:gradle-android-plugin-aspectjx:2.0.4'
// classpath "com.bytedance.android.byteX:base-plugin:0.3.0" // classpath "com.bytedance.android.byteX:base-plugin:0.3.0"
// classpath "com.mogo.cloud:hook:${HOOK_LOG_VERSION}" // classpath "com.mogo.cloud:hook:${HOOK_LOG_VERSION}"

View File

@@ -50,8 +50,8 @@ ext {
rxjava : "io.reactivex.rxjava2:rxjava:2.2.2", rxjava : "io.reactivex.rxjava2:rxjava:2.2.2",
rxandroid : "io.reactivex.rxjava2:rxandroid:2.1.1", rxandroid : "io.reactivex.rxjava2:rxandroid:2.1.1",
// arouter // arouter
arouter : "com.alibaba:arouter-api:1.0.4-mogo", arouter : "com.alibaba:arouter-api:1.0.8-mogo",
aroutercompiler : "com.alibaba:arouter-compiler:1.0.4-mogo", aroutercompiler : "com.alibaba:arouter-compiler:1.0.8-mogo",
// glide // glide
glide : 'com.github.bumptech.glide:glide:4.8.0', glide : 'com.github.bumptech.glide:glide:4.8.0',
glideokhttp3 : 'com.github.bumptech.glide:okhttp3-integration:4.8.0', glideokhttp3 : 'com.github.bumptech.glide:okhttp3-integration:4.8.0',

View File

@@ -10,6 +10,7 @@ import com.mogo.service.IMogoServiceApis
import com.mogo.eagle.core.data.constants.MogoServicePaths import com.mogo.eagle.core.data.constants.MogoServicePaths
import com.mogo.eagle.core.data.notice.NoticeNormalData import com.mogo.eagle.core.data.notice.NoticeNormalData
import com.mogo.eagle.core.function.api.hmi.warning.IMoGoWaringProvider import com.mogo.eagle.core.function.api.hmi.warning.IMoGoWaringProvider
import com.mogo.eagle.core.function.call.hmi.CallerHmiManager
import com.mogo.eagle.core.utilcode.util.SharedPrefs import com.mogo.eagle.core.utilcode.util.SharedPrefs
import com.mogo.utils.logger.Logger import com.mogo.utils.logger.Logger
@@ -23,14 +24,12 @@ class NoticeNormalBroadcastReceiver : BroadcastReceiver() {
companion object { companion object {
private const val TAG = "NoticeNormalBroadcastReceiver" private const val TAG = "NoticeNormalBroadcastReceiver"
private var mMogoServiceApis: IMogoServiceApis? = null private var mMogoServiceApis: IMogoServiceApis? = null
private var mIMoGoWaringProvider: IMoGoWaringProvider? = null
} }
override fun onReceive(context: Context, intent: Intent) { override fun onReceive(context: Context, intent: Intent) {
try { try {
mMogoServiceApis = ARouter.getInstance().build(MogoServicePaths.PATH_SERVICE_APIS) mMogoServiceApis = ARouter.getInstance().build(MogoServicePaths.PATH_SERVICE_APIS)
.navigation(context) as IMogoServiceApis .navigation(context) as IMogoServiceApis
mIMoGoWaringProvider = mMogoServiceApis!!.waringProviderApi
// 分发场景 // 分发场景
dispatchShowWaring("11", "官方公告", "测试普通云公告普通云公告普通云公告普通云公告普通云公告普通云公告普通云公告哈哈哈哈哈哈好好", dispatchShowWaring("11", "官方公告", "测试普通云公告普通云公告普通云公告普通云公告普通云公告普通云公告普通云公告哈哈哈哈哈哈好好",
@@ -60,6 +59,6 @@ class NoticeNormalBroadcastReceiver : BroadcastReceiver() {
data.videoUrl = videoUrl data.videoUrl = videoUrl
data.fileType = fileType data.fileType = fileType
mIMoGoWaringProvider!!.showNoticeNormalData(data) CallerHmiManager.showNoticeNormalData(data)
} }
} }

View File

@@ -4,10 +4,10 @@ import android.content.BroadcastReceiver
import android.content.Context import android.content.Context
import android.content.Intent import android.content.Intent
import com.alibaba.android.arouter.launcher.ARouter import com.alibaba.android.arouter.launcher.ARouter
import com.mogo.eagle.core.data.constants.MogoServicePaths
import com.mogo.eagle.core.function.call.hmi.CallerHmiManager
import com.mogo.eagle.core.function.hmi.WaringConst import com.mogo.eagle.core.function.hmi.WaringConst
import com.mogo.service.IMogoServiceApis import com.mogo.service.IMogoServiceApis
import com.mogo.eagle.core.data.constants.MogoServicePaths
import com.mogo.eagle.core.function.api.hmi.warning.IMoGoWaringProvider
import com.mogo.utils.logger.Logger import com.mogo.utils.logger.Logger
/** /**
@@ -21,14 +21,12 @@ class V2XLimitingVelocityBroadcastReceiver : BroadcastReceiver() {
companion object { companion object {
private const val TAG = "V2XLimitingVelocityBroadcastReceiver" private const val TAG = "V2XLimitingVelocityBroadcastReceiver"
private var mMogoServiceApis: IMogoServiceApis? = null private var mMogoServiceApis: IMogoServiceApis? = null
private var mIMoGoWaringProvider: IMoGoWaringProvider? = null
} }
override fun onReceive(context: Context, intent: Intent) { override fun onReceive(context: Context, intent: Intent) {
try { try {
mMogoServiceApis = ARouter.getInstance().build(MogoServicePaths.PATH_SERVICE_APIS) mMogoServiceApis = ARouter.getInstance().build(MogoServicePaths.PATH_SERVICE_APIS)
.navigation(context) as IMogoServiceApis .navigation(context) as IMogoServiceApis
mIMoGoWaringProvider = mMogoServiceApis!!.waringProviderApi
mContext = context mContext = context
val limitingVelocityIsShow = val limitingVelocityIsShow =
@@ -64,13 +62,13 @@ class V2XLimitingVelocityBroadcastReceiver : BroadcastReceiver() {
* @param limitingVelocitySpeed 限速速度 * @param limitingVelocitySpeed 限速速度
*/ */
private fun dispatchShowWaring(limitingVelocitySpeed: Int) { private fun dispatchShowWaring(limitingVelocitySpeed: Int) {
mIMoGoWaringProvider!!.showLimitingVelocity(limitingVelocitySpeed) CallerHmiManager.showLimitingVelocity(limitingVelocitySpeed)
} }
/** /**
* 关闭限速标志 * 关闭限速标志
*/ */
private fun dispatchCloseWaring() { private fun dispatchCloseWaring() {
mIMoGoWaringProvider!!.disableLimitingVelocity() CallerHmiManager.disableLimitingVelocity()
} }
} }

View File

@@ -4,10 +4,10 @@ import android.content.BroadcastReceiver
import android.content.Context import android.content.Context
import android.content.Intent import android.content.Intent
import com.alibaba.android.arouter.launcher.ARouter import com.alibaba.android.arouter.launcher.ARouter
import com.mogo.eagle.core.data.constants.MogoServicePaths
import com.mogo.eagle.core.function.call.hmi.CallerHmiManager
import com.mogo.eagle.core.function.hmi.WaringConst import com.mogo.eagle.core.function.hmi.WaringConst
import com.mogo.service.IMogoServiceApis import com.mogo.service.IMogoServiceApis
import com.mogo.eagle.core.data.constants.MogoServicePaths
import com.mogo.eagle.core.function.api.hmi.warning.IMoGoWaringProvider
import com.mogo.utils.logger.Logger import com.mogo.utils.logger.Logger
/** /**
@@ -21,14 +21,12 @@ class V2XTrafficLightBroadcastReceiver : BroadcastReceiver() {
companion object { companion object {
private const val TAG = "V2XTrafficLightBroadcastReceiver" private const val TAG = "V2XTrafficLightBroadcastReceiver"
private var mMogoServiceApis: IMogoServiceApis? = null private var mMogoServiceApis: IMogoServiceApis? = null
private var mIMoGoWaringProvider: IMoGoWaringProvider? = null
} }
override fun onReceive(context: Context, intent: Intent) { override fun onReceive(context: Context, intent: Intent) {
try { try {
mMogoServiceApis = ARouter.getInstance().build(MogoServicePaths.PATH_SERVICE_APIS) mMogoServiceApis = ARouter.getInstance().build(MogoServicePaths.PATH_SERVICE_APIS)
.navigation(context) as IMogoServiceApis .navigation(context) as IMogoServiceApis
mIMoGoWaringProvider = mMogoServiceApis!!.waringProviderApi
mContext = context mContext = context
val trafficLightIsShow = val trafficLightIsShow =
@@ -64,13 +62,13 @@ class V2XTrafficLightBroadcastReceiver : BroadcastReceiver() {
* @param trafficLightCheckType 选中的交通的灯 0-都是默认1-红2-黄3-绿 * @param trafficLightCheckType 选中的交通的灯 0-都是默认1-红2-黄3-绿
*/ */
private fun dispatchShowWaring(trafficLightCheckType: Int) { private fun dispatchShowWaring(trafficLightCheckType: Int) {
mIMoGoWaringProvider!!.showWarningTrafficLight(trafficLightCheckType) CallerHmiManager.showWarningTrafficLight(trafficLightCheckType)
} }
/** /**
* 关闭交通灯 * 关闭交通灯
*/ */
private fun dispatchCloseWaring() { private fun dispatchCloseWaring() {
mIMoGoWaringProvider!!.disableWarningTrafficLight() CallerHmiManager.disableWarningTrafficLight()
} }
} }

View File

@@ -4,11 +4,11 @@ import android.content.BroadcastReceiver
import android.content.Context import android.content.Context
import android.content.Intent import android.content.Intent
import com.alibaba.android.arouter.launcher.ARouter import com.alibaba.android.arouter.launcher.ARouter
import com.mogo.module.common.enums.EventTypeEnum
import com.mogo.eagle.core.function.hmi.WaringConst
import com.mogo.service.IMogoServiceApis
import com.mogo.eagle.core.data.constants.MogoServicePaths import com.mogo.eagle.core.data.constants.MogoServicePaths
import com.mogo.eagle.core.function.api.hmi.warning.IMoGoWaringProvider import com.mogo.eagle.core.function.call.hmi.CallerHmiManager
import com.mogo.eagle.core.function.hmi.WaringConst
import com.mogo.module.common.enums.EventTypeEnum
import com.mogo.service.IMogoServiceApis
import com.mogo.utils.logger.Logger import com.mogo.utils.logger.Logger
/** /**
@@ -22,14 +22,12 @@ class V2XWarningBroadcastReceiver : BroadcastReceiver() {
companion object { companion object {
private const val TAG = "V2XWarningBroadcastReceiver" private const val TAG = "V2XWarningBroadcastReceiver"
private var mMogoServiceApis: IMogoServiceApis? = null private var mMogoServiceApis: IMogoServiceApis? = null
private var mIMoGoWaringProvider: IMoGoWaringProvider? = null
} }
override fun onReceive(context: Context, intent: Intent) { override fun onReceive(context: Context, intent: Intent) {
try { try {
mMogoServiceApis = ARouter.getInstance().build(MogoServicePaths.PATH_SERVICE_APIS) mMogoServiceApis = ARouter.getInstance().build(MogoServicePaths.PATH_SERVICE_APIS)
.navigation(context) as IMogoServiceApis .navigation(context) as IMogoServiceApis
mIMoGoWaringProvider = mMogoServiceApis!!.waringProviderApi
mContext = context mContext = context
val v2xIsShow = val v2xIsShow =
intent.getBooleanExtra(WaringConst.BROADCAST_V2X_IS_SHOW_EXTRA_KEY, false) intent.getBooleanExtra(WaringConst.BROADCAST_V2X_IS_SHOW_EXTRA_KEY, false)
@@ -60,9 +58,7 @@ class V2XWarningBroadcastReceiver : BroadcastReceiver() {
* 分发处理关闭场景 * 分发处理关闭场景
*/ */
private fun dispatchCloseWaring(tag: String?) { private fun dispatchCloseWaring(tag: String?) {
mIMoGoWaringProvider!!.disableWarningV2X( CallerHmiManager.disableWarningV2X(tag)
tag
)
} }
/** /**
@@ -80,9 +76,9 @@ class V2XWarningBroadcastReceiver : BroadcastReceiver() {
tag: String? tag: String?
) { ) {
if (EventTypeEnum.TYPE_USECASE_ID_IVP.poiType == v2xType.toString()) { if (EventTypeEnum.TYPE_USECASE_ID_IVP.poiType == v2xType.toString()) {
mIMoGoWaringProvider!!.showLimitingVelocity(1) CallerHmiManager.showLimitingVelocity(1)
} }
mIMoGoWaringProvider!!.showWarningV2X( CallerHmiManager.showWarningV2X(
v2xType, v2xType,
alertContent, alertContent,
ttsContent, ttsContent,

View File

@@ -1,18 +1,24 @@
package com.mogo.eagle.core.function.hmi.ui package com.mogo.eagle.core.function.hmi.ui
import android.animation.Animator import android.animation.Animator
import android.content.Context
import android.text.TextUtils import android.text.TextUtils
import android.util.Log import android.util.Log
import android.view.Gravity import android.view.Gravity
import android.view.View import android.view.View
import android.view.WindowManager import android.view.WindowManager
import android.view.animation.OvershootInterpolator import android.view.animation.OvershootInterpolator
import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentActivity
import com.alibaba.android.arouter.facade.annotation.Route
import com.mogo.commons.mvp.MvpFragment import com.mogo.commons.mvp.MvpFragment
import com.mogo.commons.voice.AIAssist import com.mogo.commons.voice.AIAssist
import com.mogo.eagle.core.data.camera.CameraEntity import com.mogo.eagle.core.data.camera.CameraEntity
import com.mogo.eagle.core.data.constants.MoGoFragmentPaths
import com.mogo.eagle.core.data.enums.WarningDirectionEnum import com.mogo.eagle.core.data.enums.WarningDirectionEnum
import com.mogo.eagle.core.data.notice.NoticeNormalData import com.mogo.eagle.core.data.notice.NoticeNormalData
import com.mogo.eagle.core.data.notice.NoticeTrafficStylePushData import com.mogo.eagle.core.data.notice.NoticeTrafficStylePushData
import com.mogo.eagle.core.function.api.hmi.warning.IMoGoWaringProvider
import com.mogo.eagle.core.function.api.hmi.warning.IMoGoWarningStatusListener import com.mogo.eagle.core.function.api.hmi.warning.IMoGoWarningStatusListener
import com.mogo.eagle.core.function.call.monitor.CallerMonitorManager import com.mogo.eagle.core.function.call.monitor.CallerMonitorManager
import com.mogo.eagle.core.function.hmi.R import com.mogo.eagle.core.function.hmi.R
@@ -33,20 +39,31 @@ import kotlinx.android.synthetic.main.fragment_hmi.*
* @date 2021/8/3 2:40 下午 * @date 2021/8/3 2:40 下午
* 预警图层 * 预警图层
*/ */
@Route(path = MoGoFragmentPaths.PATH_FRAGMENT_HMI)
class MoGoHmiFragment : MvpFragment<MoGoWarningContract.View?, WaringPresenter?>(), class MoGoHmiFragment : MvpFragment<MoGoWarningContract.View?, WaringPresenter?>(),
MoGoWarningContract.View { IMoGoWaringProvider,
MoGoWarningContract.View {
private val TAG = "MoGoHmiFragment" private val TAG = "MoGoHmiFragment"
private var mWarningFloat: WarningFloat.Builder? = null private var mWarningFloat: WarningFloat.Builder? = null
private var cameraListView: CameraListView? = null private var cameraListView: CameraListView? = null
private var cameraViewFloat: WarningFloat.Builder? = null private var cameraViewFloat: WarningFloat.Builder? = null
override fun init(context: Context?) {
Log.d(TAG, "init")
}
override fun vipIdentification(visible: Boolean) { override fun vipIdentification(visible: Boolean) {
flVipIdentificationView.visibility = if (visible) View.VISIBLE else View.GONE flVipIdentificationView.visibility = if (visible) View.VISIBLE else View.GONE
} }
override fun createCoverage(activity: FragmentActivity?, containerId: Int?): Fragment? {
return null
}
override val functionName: String
get() = TAG
override fun initViews() { override fun initViews() {
ivCameraIcon.setOnClickListener { ivCameraIcon.setOnClickListener {
if (cameraViewFloat == null) { if (cameraViewFloat == null) {
@@ -93,11 +110,11 @@ class MoGoHmiFragment : MvpFragment<MoGoWarningContract.View?, WaringPresenter?>
*/ */
@Synchronized @Synchronized
override fun showWarningV2X( override fun showWarningV2X(
v2xType: Int, v2xType: Int,
alertContent: String?, alertContent: String?,
ttsContent: String?, ttsContent: String?,
tag: String?, tag: String?,
listenerIMoGo: IMoGoWarningStatusListener? listenerIMoGo: IMoGoWarningStatusListener?
) { ) {
activity?.let { activity?.let {
@@ -106,9 +123,9 @@ class MoGoHmiFragment : MvpFragment<MoGoWarningContract.View?, WaringPresenter?>
notificationView.setWarningIcon(EventTypeEnum.getWarningIcon(v2xType.toString())) notificationView.setWarningIcon(EventTypeEnum.getWarningIcon(v2xType.toString()))
notificationView.setWarningContent( notificationView.setWarningContent(
alertContent ?: EventTypeEnum.getWarningContent( alertContent ?: EventTypeEnum.getWarningContent(
v2xType.toString() v2xType.toString()
) )
) )
if (mWarningFloat != null && mWarningFloat!!.config.floatTag != tag) { if (mWarningFloat != null && mWarningFloat!!.config.floatTag != tag) {
@@ -116,47 +133,47 @@ class MoGoHmiFragment : MvpFragment<MoGoWarningContract.View?, WaringPresenter?>
} }
mWarningFloat = WarningFloat.with(it) mWarningFloat = WarningFloat.with(it)
.setTag(tag) .setTag(tag)
.setLayout(notificationView) .setLayout(notificationView)
.setSidePattern(SidePattern.RESULT_RIGHT) .setSidePattern(SidePattern.RESULT_TOP)
.setCountDownTime(5000) .setCountDownTime(5000)
.setGravity(Gravity.CENTER_HORIZONTAL, offsetY = 110) .setGravity(Gravity.CENTER_HORIZONTAL, offsetY = 110)
.setImmersionStatusBar(true) .setImmersionStatusBar(true)
.addWarningStatusListener(listenerIMoGo) .addWarningStatusListener(listenerIMoGo)
.addWarningStatusListener(object : IMoGoWarningStatusListener { .addWarningStatusListener(object : IMoGoWarningStatusListener {
override fun onShow() { override fun onShow() {
// 创建弹窗成功才进行TTS播报 // 创建弹窗成功才进行TTS播报
Logger.d( Logger.d(
"MoGoWarningFragment", "MoGoWarningFragment",
"mWarningFloat = $mWarningFloat---ttsContent = $ttsContent" "mWarningFloat = $mWarningFloat---ttsContent = $ttsContent"
) )
if (mWarningFloat != null && !TextUtils.isEmpty(ttsContent)) { if (mWarningFloat != null && !TextUtils.isEmpty(ttsContent)) {
Logger.d("MoGoWarningFragment", "---> ttsContent = $ttsContent") Logger.d("MoGoWarningFragment", "---> ttsContent = $ttsContent")
AIAssist.getInstance(activity) AIAssist.getInstance(activity)
.speakTTSVoice(ttsContent) .speakTTSVoice(ttsContent)
} }
}
})
.setAnimator(object : DefaultAnimator() {
override fun enterAnim(
view: View,
params: WindowManager.LayoutParams,
windowManager: WindowManager,
sidePattern: SidePattern
): Animator? =
super.enterAnim(view, params, windowManager, sidePattern)?.apply {
interpolator = OvershootInterpolator()
} }
})
.setAnimator(object : DefaultAnimator() {
override fun enterAnim(
view: View,
params: WindowManager.LayoutParams,
windowManager: WindowManager,
sidePattern: SidePattern
): Animator? =
super.enterAnim(view, params, windowManager, sidePattern)?.apply {
interpolator = OvershootInterpolator()
}
override fun exitAnim( override fun exitAnim(
view: View, view: View,
params: WindowManager.LayoutParams, params: WindowManager.LayoutParams,
windowManager: WindowManager, windowManager: WindowManager,
sidePattern: SidePattern sidePattern: SidePattern
): Animator? = ): Animator? =
super.exitAnim(view, params, windowManager, sidePattern)?.setDuration(200) super.exitAnim(view, params, windowManager, sidePattern)?.setDuration(200)
}) })
.show() .show()
} }
} }
@@ -165,7 +182,7 @@ class MoGoHmiFragment : MvpFragment<MoGoWarningContract.View?, WaringPresenter?>
* 关闭指定floatTag 的 VR下V2X预警弹窗 * 关闭指定floatTag 的 VR下V2X预警弹窗
* @param tag 弹窗标识 * @param tag 弹窗标识
*/ */
override fun disableWarningV2X(tag: String) { override fun disableWarningV2X(tag: String?) {
activity?.let { activity?.let {
WarningFloat.dismiss(tag) WarningFloat.dismiss(tag)
} }
@@ -252,7 +269,7 @@ class MoGoHmiFragment : MvpFragment<MoGoWarningContract.View?, WaringPresenter?>
* 展示云公告顶部弹窗 * 展示云公告顶部弹窗
* @param trafficStylePushData * @param trafficStylePushData
*/ */
override fun showNoticeForTrafficWithData(trafficStylePushData: NoticeTrafficStylePushData) { override fun showNoticeForTrafficWithData(trafficStylePushData: NoticeTrafficStylePushData?) {
ThreadUtils.runOnUiThread { ThreadUtils.runOnUiThread {
activity.let { activity.let {
val noticeBannerView = this.context?.let { it1 -> NoticeBannerView(it1) } val noticeBannerView = this.context?.let { it1 -> NoticeBannerView(it1) }
@@ -260,58 +277,10 @@ class MoGoHmiFragment : MvpFragment<MoGoWarningContract.View?, WaringPresenter?>
mWarningFloat = it?.let { it1 -> mWarningFloat = it?.let { it1 ->
noticeBannerView?.let { it2 -> noticeBannerView?.let { it2 ->
WarningFloat.with(it1) WarningFloat.with(it1)
.setTag(tag)
.setLayout(it2)
.setSidePattern(SidePattern.TOP)
.setCountDownTime(60 * 1000 * 3)
.setGravity(Gravity.CENTER_HORIZONTAL, offsetY = 110)
.setImmersionStatusBar(true)
.addWarningStatusListener(null)
.addWarningStatusListener(object : IMoGoWarningStatusListener {
override fun onShow() {
// 创建弹窗成功才进行TTS播报
// AIAssist.getInstance(activity)
// .speakTTSVoice("")
}
})
.setAnimator(object : DefaultAnimator() {
override fun enterAnim(
view: View,
params: WindowManager.LayoutParams,
windowManager: WindowManager,
sidePattern: SidePattern
): Animator? =
super.enterAnim(view, params, windowManager, sidePattern)?.apply {
interpolator = OvershootInterpolator()
}
override fun exitAnim(
view: View,
params: WindowManager.LayoutParams,
windowManager: WindowManager,
sidePattern: SidePattern
): Animator? =
super.exitAnim(view, params, windowManager, sidePattern)
?.setDuration(200)
})
.show()
}
}
}
}
}
override fun showNoticeNormalData(normalData: NoticeNormalData) {
activity.let {
val noticeBannerView = this.context?.let { it1 -> NoticeNormalBannerView(it1) }
noticeBannerView?.setPushData(normalData)
mWarningFloat = it?.let { it1 ->
noticeBannerView?.let { it2 ->
WarningFloat.with(it1)
.setTag(tag) .setTag(tag)
.setLayout(it2) .setLayout(it2)
.setSidePattern(SidePattern.TOP) .setSidePattern(SidePattern.TOP)
.setCountDownTime(10000) .setCountDownTime(60 * 1000 * 3)
.setGravity(Gravity.CENTER_HORIZONTAL, offsetY = 110) .setGravity(Gravity.CENTER_HORIZONTAL, offsetY = 110)
.setImmersionStatusBar(true) .setImmersionStatusBar(true)
.addWarningStatusListener(null) .addWarningStatusListener(null)
@@ -324,25 +293,74 @@ class MoGoHmiFragment : MvpFragment<MoGoWarningContract.View?, WaringPresenter?>
}) })
.setAnimator(object : DefaultAnimator() { .setAnimator(object : DefaultAnimator() {
override fun enterAnim( override fun enterAnim(
view: View, view: View,
params: WindowManager.LayoutParams, params: WindowManager.LayoutParams,
windowManager: WindowManager, windowManager: WindowManager,
sidePattern: SidePattern sidePattern: SidePattern
): Animator? = ): Animator? =
super.enterAnim(view, params, windowManager, sidePattern)?.apply { super.enterAnim(view, params, windowManager, sidePattern)
?.apply {
interpolator = OvershootInterpolator() interpolator = OvershootInterpolator()
} }
override fun exitAnim( override fun exitAnim(
view: View, view: View,
params: WindowManager.LayoutParams, params: WindowManager.LayoutParams,
windowManager: WindowManager, windowManager: WindowManager,
sidePattern: SidePattern sidePattern: SidePattern
): Animator? = ): Animator? =
super.exitAnim(view, params, windowManager, sidePattern) super.exitAnim(view, params, windowManager, sidePattern)
?.setDuration(200) ?.setDuration(200)
}) })
.show() .show()
}
}
}
}
}
override fun showNoticeNormalData(normalData: NoticeNormalData?) {
activity.let {
val noticeBannerView = this.context?.let { it1 -> NoticeNormalBannerView(it1) }
noticeBannerView?.setPushData(normalData)
mWarningFloat = it?.let { it1 ->
noticeBannerView?.let { it2 ->
WarningFloat.with(it1)
.setTag(tag)
.setLayout(it2)
.setSidePattern(SidePattern.TOP)
.setCountDownTime(10000)
.setGravity(Gravity.CENTER_HORIZONTAL, offsetY = 110)
.setImmersionStatusBar(true)
.addWarningStatusListener(null)
.addWarningStatusListener(object : IMoGoWarningStatusListener {
override fun onShow() {
// 创建弹窗成功才进行TTS播报
// AIAssist.getInstance(activity)
// .speakTTSVoice("")
}
})
.setAnimator(object : DefaultAnimator() {
override fun enterAnim(
view: View,
params: WindowManager.LayoutParams,
windowManager: WindowManager,
sidePattern: SidePattern
): Animator? =
super.enterAnim(view, params, windowManager, sidePattern)?.apply {
interpolator = OvershootInterpolator()
}
override fun exitAnim(
view: View,
params: WindowManager.LayoutParams,
windowManager: WindowManager,
sidePattern: SidePattern
): Animator? =
super.exitAnim(view, params, windowManager, sidePattern)
?.setDuration(200)
})
.show()
} }
} }
} }
@@ -368,40 +386,40 @@ class MoGoHmiFragment : MvpFragment<MoGoWarningContract.View?, WaringPresenter?>
} }
}) })
cameraViewFloat = WarningFloat.with(it) cameraViewFloat = WarningFloat.with(it)
.setTag("CameraListFloat") .setTag("CameraListFloat")
.setLayout(cameraListView!!) .setLayout(cameraListView!!)
.setSidePattern(SidePattern.RIGHT) .setSidePattern(SidePattern.RIGHT)
.setLocation(1742, 280) .setLocation(1742, 280)
.setImmersionStatusBar(true) .setImmersionStatusBar(true)
.setAnimator(object : DefaultAnimator() { .setAnimator(object : DefaultAnimator() {
override fun enterAnim( override fun enterAnim(
view: View, view: View,
params: WindowManager.LayoutParams, params: WindowManager.LayoutParams,
windowManager: WindowManager, windowManager: WindowManager,
sidePattern: SidePattern sidePattern: SidePattern
): Animator? = ): Animator? =
super.enterAnim(view, params, windowManager, sidePattern) super.enterAnim(view, params, windowManager, sidePattern)
?.apply { ?.apply {
interpolator = OvershootInterpolator() interpolator = OvershootInterpolator()
} }
override fun exitAnim( override fun exitAnim(
view: View, view: View,
params: WindowManager.LayoutParams, params: WindowManager.LayoutParams,
windowManager: WindowManager, windowManager: WindowManager,
sidePattern: SidePattern sidePattern: SidePattern
): Animator? = ): Animator? =
super.exitAnim(view, params, windowManager, sidePattern) super.exitAnim(view, params, windowManager, sidePattern)
?.setDuration(200) ?.setDuration(200)
}) })
.addWarningStatusListener(object : IMoGoWarningStatusListener { .addWarningStatusListener(object : IMoGoWarningStatusListener {
override fun onDismiss() { override fun onDismiss() {
cameraViewFloat = null cameraViewFloat = null
cameraListView = null cameraListView = null
ivCameraIcon.setBackgroundResource(R.drawable.icon_camera_nor) ivCameraIcon.setBackgroundResource(R.drawable.icon_camera_nor)
} }
}) })
.show() .show()
} else { } else {
cameraViewFloat?.show() cameraViewFloat?.show()
} }
@@ -421,4 +439,5 @@ class MoGoHmiFragment : MvpFragment<MoGoWarningContract.View?, WaringPresenter?>
Log.d(TAG, "onDestroy") Log.d(TAG, "onDestroy")
} }
} }

View File

@@ -15,128 +15,5 @@ interface MoGoWarningContract {
interface View : IView { interface View : IView {
/**
* 隐藏 脉速表
* @param visibility View.VISIBLE, View.INVISIBLE,View.GONE
*/
fun setSpeedChartViewVisibility(visibility: Int)
/**
* 隐藏 自动驾驶触发 按钮
* @param visibility View.VISIBLE, View.INVISIBLE,View.GONE
*/
fun setAutopilotStatusViewVisibility(visibility: Int)
/**
* 隐藏 切换视角 按钮
* @param visibility View.VISIBLE, View.INVISIBLE,View.GONE
*/
fun setPerspectiveSwitchViewVisibility(visibility: Int)
/**
* 隐藏 检测状态 按钮
* @param visibility View.VISIBLE, View.INVISIBLE,View.GONE
*/
fun setCheckStatusViewVisibility(visibility: Int)
/**
* 展示VR下V2X预警
*
* @param v2xType V2X类型
* @param alertContent 提醒文本
* @param ttsContent tts语音播报消息
* @param tag tag绑定弹窗的标志
*/
fun showWarningV2X(
v2xType: Int,
alertContent: String?,
ttsContent: String?,
tag: String?,
listenerIMoGo: IMoGoWarningStatusListener?
)
/**
* 关闭指定floatTag 的 VR下V2X预警弹窗
* @param tag 弹窗标识
*/
fun disableWarningV2X(tag: String)
/**
* 展示红绿灯预警
*
* @param checkLightId 0-都是默认1-红2-黄3-绿
*/
fun showWarningTrafficLight(checkLightId: Int)
/**
* 关闭红绿灯预警
*/
fun disableWarningTrafficLight()
/**
* 修改红灯倒计时
*/
fun changeCountdownRed(redNum: Int)
/**
* 修改黄灯倒计时
*/
fun changeCountdownYellow(yellowNum: Int)
/**
* 修改绿灯倒计时
*/
fun changeCountdownGreen(greenNum: Int)
/**
* @param readNum 红灯倒计时
* @param yellowNum 黄灯倒计时
* @param greenNum 绿灯倒计时
*/
fun changeCountdownTrafficLightNum(readNum: Int, yellowNum: Int, greenNum: Int)
/**
* 展示限速预警
*
* @param limitingSpeed 限速速度
*/
fun showLimitingVelocity(limitingSpeed: Int)
/**
* 关闭限速预警
*/
fun disableLimitingVelocity()
/**
* 展示指定方位上的红框预警
* @param direction
* @see WarningDirectionEnum
*/
fun showWarning(direction: WarningDirectionEnum)
/**
* 展示指定方位上的红框预警
* @param direction
* @see WarningDirectionEnum
* @param closeTime 倒计时
*/
fun showWarning(direction: WarningDirectionEnum, closeTime: Long)
/**
* 展示云公告顶部弹窗
* @param trafficStylePushData
*/
fun showNoticeForTrafficWithData(trafficStylePushData: NoticeTrafficStylePushData)
/**
* 展示普通云公告
* @param normalData
*/
fun showNoticeNormalData(normalData: NoticeNormalData)
/**
* 展示VIP标识
*/
fun vipIdentification(visible: Boolean)
} }
} }

View File

@@ -1,41 +0,0 @@
package com.mogo.eagle.core.function.map;
import androidx.annotation.NonNull;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.mogo.commons.mvp.MvpFragment;
import com.mogo.eagle.core.data.constants.MoGoFragmentPaths;
import com.mogo.utils.logger.Logger;
/**
* @author donghongyu
* @since 2021-11-09
* 高精度地图层UI
*/
@Route(path = MoGoFragmentPaths.PATH_FRAGMENT_MAP)
public class MoGoHDMapFragment extends MvpFragment<MoGoMapView, MoGoMapPresenter> implements MoGoMapView {
private static final String TAG = "MoGoHDMapFragment";
@Override
protected int getLayoutId() {
return R.layout.function_map_fragment_hd_map;
}
@Override
public String getTagName() {
return TAG;
}
@Override
protected void initViews() {
Logger.d(TAG, "initViews");
}
@NonNull
@Override
protected MoGoMapPresenter createPresenter() {
return new MoGoMapPresenter(this);
}
}

View File

@@ -1,9 +0,0 @@
package com.mogo.eagle.core.function.map;
import com.mogo.commons.mvp.Presenter;
public class MoGoMapPresenter extends Presenter<MoGoMapView> {
public MoGoMapPresenter(MoGoMapView view) {
super(view);
}
}

View File

@@ -1,6 +0,0 @@
package com.mogo.eagle.core.function.map;
import com.mogo.commons.mvp.IView;
public interface MoGoMapView extends IView {
}

View File

@@ -1,11 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<View
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#FFF" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -64,7 +64,7 @@ class NoticeSocketManager {
return; return;
} }
CallerHmiManager.INSTANCE.showNormalBanner(obj); CallerHmiManager.INSTANCE.showNoticeNormalData(obj);
} }
}; };

View File

@@ -1,6 +1,7 @@
package com.mogo.eagle.core.function.call.hmi package com.mogo.eagle.core.function.call.hmi
import com.mogo.eagle.core.data.constants.MogoServicePaths import com.alibaba.android.arouter.launcher.ARouter
import com.mogo.eagle.core.data.constants.MoGoFragmentPaths
import com.mogo.eagle.core.data.enums.WarningDirectionEnum import com.mogo.eagle.core.data.enums.WarningDirectionEnum
import com.mogo.eagle.core.data.notice.NoticeNormalData import com.mogo.eagle.core.data.notice.NoticeNormalData
import com.mogo.eagle.core.data.notice.NoticeTrafficStylePushData import com.mogo.eagle.core.data.notice.NoticeTrafficStylePushData
@@ -16,7 +17,7 @@ import com.mogo.eagle.core.function.call.base.CallerBase
*/ */
object CallerHmiManager : CallerBase() { object CallerHmiManager : CallerBase() {
private val waringProviderApi: IMoGoWaringProvider private val waringProviderApi: IMoGoWaringProvider
get() = getApiInstance(IMoGoWaringProvider::class.java, MogoServicePaths.PATH_HMI) get() = ARouter.getInstance().build(MoGoFragmentPaths.PATH_FRAGMENT_HMI).navigation() as IMoGoWaringProvider;
/** /**
* 隐藏 脉速表 * 隐藏 脉速表
@@ -170,14 +171,14 @@ object CallerHmiManager : CallerBase() {
* 普通公告弹窗 * 普通公告弹窗
* *
*/ */
fun showNormalBanner(noticeNormal: NoticeNormalData) { fun showNoticeNormalData(noticeNormal: NoticeNormalData) {
waringProviderApi.showNoticeNormalData(noticeNormal) waringProviderApi.showNoticeNormalData(noticeNormal)
} }
/** /**
* 展示VIP标识 * 展示VIP标识
*/ */
fun vipIdentification(visible: Boolean){ fun vipIdentification(visible: Boolean) {
waringProviderApi.vipIdentification(visible) waringProviderApi.vipIdentification(visible)
} }

View File

@@ -96,16 +96,6 @@ public class MainActivity extends MvpActivity<MainView, MainPresenter> implement
@Override @Override
protected void beforeSetContentView(Bundle savedInstanceState) { protected void beforeSetContentView(Bundle savedInstanceState) {
init(); init();
installSkinManager(savedInstanceState);
}
/**
* 安装皮肤支持
*
* @param savedInstanceState
*/
private void installSkinManager(Bundle savedInstanceState) {
mServiceApis.getMapServiceApi().getMapViewInstanceHandler().createMapViewInstance(this);
} }
@Override @Override
@@ -208,7 +198,7 @@ public class MainActivity extends MvpActivity<MainView, MainPresenter> implement
loadOthersModules(); loadOthersModules();
Log.i("timer", "cost " + (System.currentTimeMillis() - start) + "ms"); Log.i("timer", "cost " + (System.currentTimeMillis() - start) + "ms");
}); });
MogoModulesManager.getInstance().loadMapModule(R.id.module_main_id_map_fragment_container); loadFunctionMapView();
} else { } else {
loadOthersModules(); loadOthersModules();
} }
@@ -243,8 +233,8 @@ public class MainActivity extends MvpActivity<MainView, MainPresenter> implement
* 加载其它模块 * 加载其它模块
*/ */
protected void loadOthersModules() { protected void loadOthersModules() {
//loadFunctionFragment();
// 加载地图,触发地图加载完毕回调,在初始化其他卡片模块,保证卡片模块可以正确获取地图相关服务。 // 加载地图,触发地图加载完毕回调,在初始化其他卡片模块,保证卡片模块可以正确获取地图相关服务。
loadFunctionFragment();
loadContainerModules(); loadContainerModules();
MogoModulesManager.getInstance().loadModules(); MogoModulesManager.getInstance().loadModules();
MogoModulesManager.getInstance().loadFunctionModules(); MogoModulesManager.getInstance().loadFunctionModules();
@@ -270,9 +260,9 @@ public class MainActivity extends MvpActivity<MainView, MainPresenter> implement
} }
protected void loadContainerModules() { protected void loadContainerModules() {
//MogoModulesManager.getInstance().loadWaringModule(R.id.module_main_id_waring_fragment);
MogoModulesManager.getInstance().loadEntrancesModule(R.id.module_main_id_entrance_fragment_container); MogoModulesManager.getInstance().loadEntrancesModule(R.id.module_main_id_entrance_fragment_container);
MogoModulesManager.getInstance().loadEventPanelModule(R.id.module_main_id_event_panel_fragment_container); MogoModulesManager.getInstance().loadEventPanelModule(R.id.module_main_id_event_panel_fragment_container);
MogoModulesManager.getInstance().loadWaringModule(R.id.module_main_id_waring_fragment);
} }
@Override @Override
@@ -284,8 +274,17 @@ public class MainActivity extends MvpActivity<MainView, MainPresenter> implement
@Override @Override
public void loadFunctionFragment() { public void loadFunctionFragment() {
// 加载 HMI 框架
MvpFragment fragmentHdMap = (MvpFragment) ARouter.getInstance().build(MoGoFragmentPaths.PATH_FRAGMENT_HMI).navigation();
addFragment(fragmentHdMap, fragmentHdMap.getTagName(), R.id.module_main_id_waring_fragment);
}
/**
* 加载地图视图
*/
private void loadFunctionMapView() {
MvpFragment fragmentHdMap = (MvpFragment) ARouter.getInstance().build(MoGoFragmentPaths.PATH_FRAGMENT_MAP).navigation(); MvpFragment fragmentHdMap = (MvpFragment) ARouter.getInstance().build(MoGoFragmentPaths.PATH_FRAGMENT_MAP).navigation();
addFragment(fragmentHdMap, fragmentHdMap.getTagName(), R.id.module_main_id_hd_map_fragment_container); addFragment(fragmentHdMap, fragmentHdMap.getTagName(), R.id.module_main_id_map_fragment_container);
} }
@NonNull @NonNull
@@ -399,7 +398,6 @@ public class MainActivity extends MvpActivity<MainView, MainPresenter> implement
mMogoFragmentManager.unregisterMainFragmentStackTransactionListener(); mMogoFragmentManager.unregisterMainFragmentStackTransactionListener();
mMogoFragmentManager.destroy(); mMogoFragmentManager.destroy();
mMogoFragmentManager = null; mMogoFragmentManager = null;
mServiceApis.getMapServiceApi().getMapViewInstanceHandler().destroy();
mServiceApis.getMapServiceApi().getMapUIController().destroy(); mServiceApis.getMapServiceApi().getMapUIController().destroy();
AdasConfigApiController.getInstance().release(); AdasConfigApiController.getInstance().release();
mServiceApis.getAdasControllerApi().release(); mServiceApis.getAdasControllerApi().release();

View File

@@ -27,13 +27,6 @@ public interface MogoModulesHandler {
*/ */
void loadFunctionModulesServer(); void loadFunctionModulesServer();
/**
* 加载地图
*
* @param containerId 容器id
*/
void loadMapModule(int containerId);
/** /**
* 加载所有应用 * 加载所有应用
* *
@@ -56,12 +49,6 @@ public interface MogoModulesHandler {
*/ */
void loadBaseModule(); void loadBaseModule();
/**
* 加载预警面板
*
* @param containerId
*/
void loadWaringModule(int containerId);
/** /**
* 加载事件面板 * 加载事件面板

View File

@@ -9,13 +9,12 @@ import com.alibaba.android.arouter.facade.template.IProvider;
import com.alibaba.android.arouter.launcher.ARouter; import com.alibaba.android.arouter.launcher.ARouter;
import com.mogo.eagle.core.function.api.base.IMoGoFunctionProvider; import com.mogo.eagle.core.function.api.base.IMoGoFunctionProvider;
import com.mogo.eagle.core.function.api.base.IMoGoFunctionServerProvider; import com.mogo.eagle.core.function.api.base.IMoGoFunctionServerProvider;
import com.mogo.eagle.core.utilcode.mogo.toast.ResourcesHelper;
import com.mogo.module.common.MogoApisHandler; import com.mogo.module.common.MogoApisHandler;
import com.mogo.module.common.MogoModule; import com.mogo.module.common.MogoModule;
import com.mogo.module.common.MogoModulePaths; import com.mogo.module.common.MogoModulePaths;
import com.mogo.module.main.MainActivity; import com.mogo.module.main.MainActivity;
import com.mogo.eagle.core.data.constants.MogoServicePaths;
import com.mogo.service.module.IMogoModuleProvider; import com.mogo.service.module.IMogoModuleProvider;
import com.mogo.eagle.core.utilcode.mogo.toast.ResourcesHelper;
import com.mogo.utils.logger.Logger; import com.mogo.utils.logger.Logger;
import java.util.Collection; import java.util.Collection;
@@ -129,14 +128,6 @@ public class MogoModulesManager implements MogoModulesHandler {
} }
} }
@Override
public void loadMapModule( int containerId ) {
Logger.d( TAG, "loadMapModule" );
IMogoModuleProvider provider = ( IMogoModuleProvider ) ARouter.getInstance()
.build( MogoModulePaths.PATH_MODULE_MAP )
.navigation( getContext() );
addFragment( provider, containerId );
}
@Override @Override
public void loadAppsListModule( int containerId ) { public void loadAppsListModule( int containerId ) {
@@ -172,14 +163,6 @@ public class MogoModulesManager implements MogoModulesHandler {
} }
} }
@Override
public void loadWaringModule(int containerId) {
IMoGoFunctionProvider provider = ( IMoGoFunctionProvider ) ARouter.getInstance()
.build( MogoServicePaths.PATH_HMI)
.navigation( getContext() );
addFragment( provider, containerId );
}
private IProvider loadBaseProvider(String path ) { private IProvider loadBaseProvider(String path ) {
try { try {
@@ -236,23 +219,6 @@ public class MogoModulesManager implements MogoModulesHandler {
.commitAllowingStateLoss(); .commitAllowingStateLoss();
} }
private void addFragment( IMoGoFunctionProvider provider, int containerId ) {
if ( provider == null ) {
Logger.e( TAG, "add fragment fail cause provider == null, container is %s", ResourcesHelper.getResNameById( getApplicationContext(), containerId ) );
return;
}
Fragment fragment = mActivity.getSupportFragmentManager().findFragmentByTag( provider.getFunctionName() );
if ( fragment == null ) {
fragment = provider.createCoverage( mActivity, null );
}
if ( fragment == null ) {
Logger.e( TAG, "add fragment fail cause fragment == null, container is %s", ResourcesHelper.getResNameById( getApplicationContext(), containerId ) );
return;
}
mActivity.getSupportFragmentManager().beginTransaction()
.replace( containerId, fragment, provider.getFunctionName() )
.commitAllowingStateLoss();
}
@Override @Override
public void onDestroy() { public void onDestroy() {

View File

@@ -13,12 +13,6 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" /> android:layout_height="match_parent" />
<!-- 地图 -->
<FrameLayout
android:id="@+id/module_main_id_hd_map_fragment_container"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<!--四个方向,碰撞预警--> <!--四个方向,碰撞预警-->
<FrameLayout <FrameLayout

View File

@@ -6,7 +6,9 @@ import android.os.Bundle;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.mogo.commons.mvp.MvpFragment; import com.mogo.commons.mvp.MvpFragment;
import com.mogo.eagle.core.data.constants.MoGoFragmentPaths;
import com.mogo.map.IMogoMap; import com.mogo.map.IMogoMap;
import com.mogo.map.IMogoUiSettings; import com.mogo.map.IMogoUiSettings;
import com.mogo.map.MogoMapView; import com.mogo.map.MogoMapView;
@@ -17,11 +19,13 @@ import com.mogo.service.map.IMogoMapFrameController;
import com.mogo.utils.logger.Logger; import com.mogo.utils.logger.Logger;
/** /**
* @author congtaowang * @author donghongyu
* @since 2019-12-23 * @since 2021-11-09
* 高精度地图层UI
* <p> * <p>
* 地图图层,地图操作都在这个图层完成 * 地图图层,地图操作都在这个图层完成
*/ */
@Route(path = MoGoFragmentPaths.PATH_FRAGMENT_MAP)
public class MapFragment extends MvpFragment< MapView, MapPresenter > implements MapView, IMogoMapFrameController { public class MapFragment extends MvpFragment< MapView, MapPresenter > implements MapView, IMogoMapFrameController {
private static final String TAG = "MapFragment"; private static final String TAG = "MapFragment";

View File

@@ -28,9 +28,7 @@ public class MapFragmentProvider implements IMogoModuleProvider {
@Override @Override
public Fragment createFragment( Context context, Bundle data ) { public Fragment createFragment( Context context, Bundle data ) {
MapFragment mMapFragment = new MapFragment(); return null;
mMapFragment.setArguments( data );
return mMapFragment;
} }
@NonNull @NonNull

View File

@@ -285,9 +285,5 @@ public interface IMogoServiceApis extends IProvider {
*/ */
IV2XProvider getV2XListenerManager(); IV2XProvider getV2XListenerManager();
/**
* warning 模块
*/
IMoGoWaringProvider getWaringProviderApi();
} }

View File

@@ -3,16 +3,15 @@ package com.mogo.service.map;
import com.alibaba.android.arouter.facade.template.IProvider; import com.alibaba.android.arouter.facade.template.IProvider;
import com.mogo.map.IDestroyable; import com.mogo.map.IDestroyable;
public
/** /**
* @author congtaowang * @author congtaowang
* @since 2020/10/23 * @since 2020/10/23
* * <p>
* 地图图层切换:高德地图 <-> 自研地图,过渡期使用 * 地图图层切换:高德地图 <-> 自研地图,过渡期使用
*/ */
interface IMogoMapFrameController extends IProvider, IDestroyable { public interface IMogoMapFrameController extends IProvider, IDestroyable {
void initDelegate( IMogoMapFrameController controller ); void initDelegate(IMogoMapFrameController controller);
/** /**
* 切换到高德2D * 切换到高德2D

View File

@@ -3,18 +3,13 @@ package com.mogo.service.map;
import android.content.Context; import android.content.Context;
import com.alibaba.android.arouter.facade.template.IProvider; import com.alibaba.android.arouter.facade.template.IProvider;
import com.mogo.map.CoordinatesTransformer;
import com.mogo.map.IMogoMapViewInstanceHandler;
import com.mogo.map.listener.IMogoHosListenerRegister; import com.mogo.map.listener.IMogoHosListenerRegister;
import com.mogo.map.location.IMogoLocationClient; import com.mogo.map.location.IMogoLocationClient;
import com.mogo.map.marker.IMogoMarkerManager; import com.mogo.map.marker.IMogoMarkerManager;
import com.mogo.map.navi.IMogoAimless; import com.mogo.map.navi.IMogoAimless;
import com.mogo.map.navi.IMogoNavi; import com.mogo.map.navi.IMogoNavi;
import com.mogo.map.overlay.IMogoOverlayManager; import com.mogo.map.overlay.IMogoOverlayManager;
import com.mogo.map.search.drive.IMogoRoadSearch;
import com.mogo.map.search.geo.IMogoGeoSearch; import com.mogo.map.search.geo.IMogoGeoSearch;
import com.mogo.map.search.inputtips.IMogoInputtipsSearch;
import com.mogo.map.search.inputtips.query.MogoInputtipsQuery;
import com.mogo.map.search.poisearch.IMogoPoiSearch; import com.mogo.map.search.poisearch.IMogoPoiSearch;
import com.mogo.map.search.poisearch.query.MogoPoiSearchQuery; import com.mogo.map.search.poisearch.query.MogoPoiSearchQuery;
import com.mogo.map.search.traffic.IMogoTrafficSearch; import com.mogo.map.search.traffic.IMogoTrafficSearch;
@@ -45,15 +40,6 @@ public interface IMogoMapService extends IProvider {
@Deprecated @Deprecated
IMogoLocationClient getLocationClient( Context context ); IMogoLocationClient getLocationClient( Context context );
/**
* 获取关键字搜索地址服务
*
* @param context
* @param query
* @return
*/
IMogoInputtipsSearch getInputtipsSearch( Context context, MogoInputtipsQuery query );
/** /**
* 地理编码或逆地理编码服务 * 地理编码或逆地理编码服务
* *
@@ -117,20 +103,6 @@ public interface IMogoMapService extends IProvider {
*/ */
IMogoOverlayManager getOverlayManager( Context context ); IMogoOverlayManager getOverlayManager( Context context );
/**
* 路线搜索
*
* @return
*/
IMogoRoadSearch getRoadSearchApi();
/**
* 地图实例
*
* @return
*/
IMogoMapViewInstanceHandler getMapViewInstanceHandler();
/** /**
* 交通态势查询 * 交通态势查询
* *
@@ -138,13 +110,6 @@ public interface IMogoMapService extends IProvider {
*/ */
IMogoTrafficSearch getTrafficSearchApi(); IMogoTrafficSearch getTrafficSearchApi();
/**
* 坐标转换工具
*
* @return
*/
CoordinatesTransformer getCoordinatesTransformer();
/** /**
* 获取地图版本号 * 获取地图版本号
* @return * @return

View File

@@ -6,7 +6,6 @@ import com.alibaba.android.arouter.facade.annotation.Route;
import com.alibaba.android.arouter.facade.template.IProvider; import com.alibaba.android.arouter.facade.template.IProvider;
import com.alibaba.android.arouter.launcher.ARouter; import com.alibaba.android.arouter.launcher.ARouter;
import com.mogo.eagle.core.data.constants.MogoServicePaths; import com.mogo.eagle.core.data.constants.MogoServicePaths;
import com.mogo.eagle.core.function.api.hmi.warning.IMoGoWaringProvider;
import com.mogo.service.IMogoServiceApis; import com.mogo.service.IMogoServiceApis;
import com.mogo.service.adas.IMogoADASController; import com.mogo.service.adas.IMogoADASController;
import com.mogo.service.analytics.IMogoAnalytics; import com.mogo.service.analytics.IMogoAnalytics;
@@ -236,11 +235,6 @@ public class MogoServiceApis implements IMogoServiceApis {
return getApiInstance(IV2XProvider.class, MogoServicePaths.PATH_V2X_FRONT_CRASH_WARNING); return getApiInstance(IV2XProvider.class, MogoServicePaths.PATH_V2X_FRONT_CRASH_WARNING);
} }
@Override
public IMoGoWaringProvider getWaringProviderApi() {
return getApiInstance(IMoGoWaringProvider.class, MogoServicePaths.PATH_HMI);
}
@Override @Override
public IMogoTrafficUploadProvider getTrafficUploadApi() { public IMogoTrafficUploadProvider getTrafficUploadApi() {
return getApiInstance(IMogoTrafficUploadProvider.class, MogoServicePaths.PATH_TRAFFIC_UPLOAD); return getApiInstance(IMogoTrafficUploadProvider.class, MogoServicePaths.PATH_TRAFFIC_UPLOAD);

View File

@@ -3,21 +3,16 @@ package com.mogo.service.impl.map;
import android.content.Context; import android.content.Context;
import com.alibaba.android.arouter.facade.annotation.Route; import com.alibaba.android.arouter.facade.annotation.Route;
import com.mogo.map.CoordinatesTransformer; import com.mogo.eagle.core.data.constants.MogoServicePaths;
import com.mogo.map.IMogoMapViewInstanceHandler;
import com.mogo.map.MogoAimless; import com.mogo.map.MogoAimless;
import com.mogo.map.MogoCoordinatesTransformer;
import com.mogo.map.MogoGeoSearch; import com.mogo.map.MogoGeoSearch;
import com.mogo.map.MogoInputtipsSearch;
import com.mogo.map.MogoLocationClient; import com.mogo.map.MogoLocationClient;
import com.mogo.map.MogoMap; import com.mogo.map.MogoMap;
import com.mogo.map.MogoMapUIController; import com.mogo.map.MogoMapUIController;
import com.mogo.map.MogoMapViewInstanceHandler;
import com.mogo.map.MogoMarkerManager; import com.mogo.map.MogoMarkerManager;
import com.mogo.map.MogoNavi; import com.mogo.map.MogoNavi;
import com.mogo.map.MogoOverlayManager; import com.mogo.map.MogoOverlayManager;
import com.mogo.map.MogoPoiSearch; import com.mogo.map.MogoPoiSearch;
import com.mogo.map.MogoRoadSearch;
import com.mogo.map.MogoTrafficSearch; import com.mogo.map.MogoTrafficSearch;
import com.mogo.map.listener.IMogoHosListenerRegister; import com.mogo.map.listener.IMogoHosListenerRegister;
import com.mogo.map.listener.MogoHosListenerRegister; import com.mogo.map.listener.MogoHosListenerRegister;
@@ -26,15 +21,11 @@ import com.mogo.map.marker.IMogoMarkerManager;
import com.mogo.map.navi.IMogoAimless; import com.mogo.map.navi.IMogoAimless;
import com.mogo.map.navi.IMogoNavi; import com.mogo.map.navi.IMogoNavi;
import com.mogo.map.overlay.IMogoOverlayManager; import com.mogo.map.overlay.IMogoOverlayManager;
import com.mogo.map.search.drive.IMogoRoadSearch;
import com.mogo.map.search.geo.IMogoGeoSearch; import com.mogo.map.search.geo.IMogoGeoSearch;
import com.mogo.map.search.inputtips.IMogoInputtipsSearch;
import com.mogo.map.search.inputtips.query.MogoInputtipsQuery;
import com.mogo.map.search.poisearch.IMogoPoiSearch; import com.mogo.map.search.poisearch.IMogoPoiSearch;
import com.mogo.map.search.poisearch.query.MogoPoiSearchQuery; import com.mogo.map.search.poisearch.query.MogoPoiSearchQuery;
import com.mogo.map.search.traffic.IMogoTrafficSearch; import com.mogo.map.search.traffic.IMogoTrafficSearch;
import com.mogo.map.uicontroller.IMogoMapUIController; import com.mogo.map.uicontroller.IMogoMapUIController;
import com.mogo.eagle.core.data.constants.MogoServicePaths;
import com.mogo.service.map.IMogoMapService; import com.mogo.service.map.IMogoMapService;
/** /**
@@ -43,47 +34,42 @@ import com.mogo.service.map.IMogoMapService;
* <p> * <p>
* 地图对外地接口 * 地图对外地接口
*/ */
@Route( path = MogoServicePaths.PATH_SERVICES_MAP ) @Route(path = MogoServicePaths.PATH_SERVICES_MAP)
public class MogoMapService implements IMogoMapService { public class MogoMapService implements IMogoMapService {
@Override @Override
public IMogoLocationClient getSingletonLocationClient( Context context ) { public IMogoLocationClient getSingletonLocationClient(Context context) {
return MogoLocationClient.getInstance( context ); return MogoLocationClient.getInstance(context);
} }
@Override @Override
public IMogoLocationClient getLocationClient( Context context ) { public IMogoLocationClient getLocationClient(Context context) {
return new MogoLocationClient( context ); return new MogoLocationClient(context);
} }
@Override @Override
public IMogoInputtipsSearch getInputtipsSearch( Context context, MogoInputtipsQuery query ) { public IMogoGeoSearch getGeoSearch(Context context) {
return new MogoInputtipsSearch( context, query ); return new MogoGeoSearch(context);
} }
@Override @Override
public IMogoGeoSearch getGeoSearch( Context context ) { public IMogoPoiSearch getPoiSearch(Context context, MogoPoiSearchQuery query) {
return new MogoGeoSearch( context ); return new MogoPoiSearch(context, query);
} }
@Override @Override
public IMogoPoiSearch getPoiSearch( Context context, MogoPoiSearchQuery query ) { public IMogoNavi getNavi(Context context) {
return new MogoPoiSearch( context, query ); return MogoNavi.getInstance(context);
} }
@Override @Override
public IMogoNavi getNavi( Context context ) { public IMogoAimless getAimless(Context context) {
return MogoNavi.getInstance( context ); return MogoAimless.getInstance(context);
} }
@Override @Override
public IMogoAimless getAimless( Context context ) { public IMogoMarkerManager getMarkerManager(Context context) {
return MogoAimless.getInstance( context ); return MogoMarkerManager.getInstance(context);
}
@Override
public IMogoMarkerManager getMarkerManager( Context context ) {
return MogoMarkerManager.getInstance( context );
} }
@Override @Override
@@ -97,30 +83,15 @@ public class MogoMapService implements IMogoMapService {
} }
@Override @Override
public IMogoOverlayManager getOverlayManager( Context context ) { public IMogoOverlayManager getOverlayManager(Context context) {
return MogoOverlayManager.getInstance(); return MogoOverlayManager.getInstance();
} }
@Override
public IMogoRoadSearch getRoadSearchApi() {
return new MogoRoadSearch();
}
@Override
public IMogoMapViewInstanceHandler getMapViewInstanceHandler() {
return MogoMapViewInstanceHandler.getInstance();
}
@Override @Override
public IMogoTrafficSearch getTrafficSearchApi() { public IMogoTrafficSearch getTrafficSearchApi() {
return new MogoTrafficSearch(); return new MogoTrafficSearch();
} }
@Override
public CoordinatesTransformer getCoordinatesTransformer() {
return MogoCoordinatesTransformer.getInstance();
}
@Override @Override
public String getMapVersion() { public String getMapVersion() {
if (MogoMap.getInstance().getMogoMap() != null) { if (MogoMap.getInstance().getMogoMap() != null) {
@@ -131,7 +102,7 @@ public class MogoMapService implements IMogoMapService {
} }
@Override @Override
public void init( Context context ) { public void init(Context context) {
} }
} }