Merge branch 'hj' into dev_MogoAP_eagle-1030_211020_8.0.14

This commit is contained in:
liujing
2021-11-10 11:26:58 +08:00
2 changed files with 125 additions and 120 deletions

View File

@@ -23,6 +23,7 @@ import com.mogo.eagle.core.function.hmi.ui.camera.CameraListView
import com.mogo.eagle.core.function.hmi.ui.notice.NoticeBannerView import com.mogo.eagle.core.function.hmi.ui.notice.NoticeBannerView
import com.mogo.eagle.core.function.hmi.ui.notice.NoticeNormalBannerView import com.mogo.eagle.core.function.hmi.ui.notice.NoticeNormalBannerView
import com.mogo.eagle.core.function.hmi.ui.widget.V2XNotificationView import com.mogo.eagle.core.function.hmi.ui.widget.V2XNotificationView
import com.mogo.eagle.core.utilcode.util.ThreadUtils
import com.mogo.module.common.enums.EventTypeEnum import com.mogo.module.common.enums.EventTypeEnum
import com.mogo.utils.logger.Logger import com.mogo.utils.logger.Logger
import kotlinx.android.synthetic.main.fragment_hmi.* import kotlinx.android.synthetic.main.fragment_hmi.*
@@ -33,7 +34,7 @@ import kotlinx.android.synthetic.main.fragment_hmi.*
* 预警图层 * 预警图层
*/ */
class MoGoHmiFragment : MvpFragment<MoGoWarningContract.View?, WaringPresenter?>(), class MoGoHmiFragment : MvpFragment<MoGoWarningContract.View?, WaringPresenter?>(),
MoGoWarningContract.View { MoGoWarningContract.View {
private val TAG = "MoGoHmiFragment" private val TAG = "MoGoHmiFragment"
@@ -92,11 +93,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 {
@@ -105,9 +106,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) {
@@ -115,47 +116,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_RIGHT)
.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()
} }
} }
@@ -252,47 +253,49 @@ class MoGoHmiFragment : MvpFragment<MoGoWarningContract.View?, WaringPresenter?>
* @param trafficStylePushData * @param trafficStylePushData
*/ */
override fun showNoticeForTrafficWithData(trafficStylePushData: NoticeTrafficStylePushData) { override fun showNoticeForTrafficWithData(trafficStylePushData: NoticeTrafficStylePushData) {
activity.let { ThreadUtils.runOnUiThread {
val noticeBannerView = this.context?.let { it1 -> NoticeBannerView(it1) } activity.let {
noticeBannerView?.refreshWithData(trafficStylePushData) val noticeBannerView = this.context?.let { it1 -> NoticeBannerView(it1) }
mWarningFloat = it?.let { it1 -> noticeBannerView?.refreshWithData(trafficStylePushData)
noticeBannerView?.let { it2 -> mWarningFloat = it?.let { it1 ->
WarningFloat.with(it1) noticeBannerView?.let { it2 ->
.setTag(tag) WarningFloat.with(it1)
.setLayout(it2) .setTag(tag)
.setSidePattern(SidePattern.TOP) .setLayout(it2)
.setCountDownTime(60*1000*3) .setSidePattern(SidePattern.TOP)
.setGravity(Gravity.CENTER_HORIZONTAL, offsetY = 110) .setCountDownTime(60 * 1000 * 3)
.setImmersionStatusBar(true) .setGravity(Gravity.CENTER_HORIZONTAL, offsetY = 110)
.addWarningStatusListener(null) .setImmersionStatusBar(true)
.addWarningStatusListener(object : IMoGoWarningStatusListener { .addWarningStatusListener(null)
override fun onShow() { .addWarningStatusListener(object : IMoGoWarningStatusListener {
// 创建弹窗成功才进行TTS播报 override fun onShow() {
// 创建弹窗成功才进行TTS播报
// AIAssist.getInstance(activity) // AIAssist.getInstance(activity)
// .speakTTSVoice("") // .speakTTSVoice("")
} }
}) })
.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()
}
} }
} }
} }
@@ -365,40 +368,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()
} }

View File

@@ -17,6 +17,7 @@ import com.mogo.eagle.core.data.notice.NoticeTrafficStyleInfo;
import com.mogo.eagle.core.data.notice.NoticeTrafficStylePushData; import com.mogo.eagle.core.data.notice.NoticeTrafficStylePushData;
import com.mogo.eagle.core.data.notice.NoticeValue; import com.mogo.eagle.core.data.notice.NoticeValue;
import com.mogo.eagle.core.function.api.notice.NoticeNetCallBack; import com.mogo.eagle.core.function.api.notice.NoticeNetCallBack;
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotManager;
import com.mogo.eagle.core.function.call.notice.CallerNoticeManager; import com.mogo.eagle.core.function.call.notice.CallerNoticeManager;
import com.mogo.eagle.core.function.hmi.R; import com.mogo.eagle.core.function.hmi.R;
import com.mogo.eagle.core.widget.media.video.NoticeSimpleSmallVideoPlayer; import com.mogo.eagle.core.widget.media.video.NoticeSimpleSmallVideoPlayer;
@@ -155,7 +156,7 @@ public class NoticeTrafficDialog extends BaseFloatDialog {
* 0不接收 1接受 发起自动驾驶任务,显示引导线 * 0不接收 1接受 发起自动驾驶任务,显示引导线
*/ */
private void feedBackTraffic(int i) { private void feedBackTraffic(int i) {
CallerNoticeManager.getNoticeProvider().feedBackNoticeTraffic(mPushData.getInfoId(), MoGoAiCloudClientConfig.getInstance().getSn(), 1); CallerNoticeManager.getNoticeProvider().feedBackNoticeTraffic(mPushData.getInfoId(), MoGoAiCloudClientConfig.getInstance().getSn(), i);
if (i == 1) { if (i == 1) {
startAutoPilot(); startAutoPilot();
} }
@@ -177,6 +178,7 @@ public class NoticeTrafficDialog extends BaseFloatDialog {
AutopilotControlParameters.AutoPilotLonLat endLocation = new AutopilotControlParameters.AutoPilotLonLat AutopilotControlParameters.AutoPilotLonLat endLocation = new AutopilotControlParameters.AutoPilotLonLat
(mTrafficStyleInfo.getLon(), mTrafficStyleInfo.getLat()); (mTrafficStyleInfo.getLon(), mTrafficStyleInfo.getLat());
parameters.endLatLon = endLocation; parameters.endLatLon = endLocation;
CallerAutoPilotManager.INSTANCE.startAutoPilot(parameters);
} }
/** /**