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 2ae8c4c315..470cad6b88 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 @@ -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.NoticeNormalBannerView 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.utils.logger.Logger import kotlinx.android.synthetic.main.fragment_hmi.* @@ -33,7 +34,7 @@ import kotlinx.android.synthetic.main.fragment_hmi.* * 预警图层 */ class MoGoHmiFragment : MvpFragment(), - MoGoWarningContract.View { + MoGoWarningContract.View { private val TAG = "MoGoHmiFragment" @@ -92,11 +93,11 @@ class MoGoHmiFragment : MvpFragment */ @Synchronized override fun showWarningV2X( - v2xType: Int, - alertContent: String?, - ttsContent: String?, - tag: String?, - listenerIMoGo: IMoGoWarningStatusListener? + v2xType: Int, + alertContent: String?, + ttsContent: String?, + tag: String?, + listenerIMoGo: IMoGoWarningStatusListener? ) { activity?.let { @@ -105,9 +106,9 @@ class MoGoHmiFragment : MvpFragment notificationView.setWarningIcon(EventTypeEnum.getWarningIcon(v2xType.toString())) notificationView.setWarningContent( - alertContent ?: EventTypeEnum.getWarningContent( - v2xType.toString() - ) + alertContent ?: EventTypeEnum.getWarningContent( + v2xType.toString() + ) ) if (mWarningFloat != null && mWarningFloat!!.config.floatTag != tag) { @@ -115,47 +116,47 @@ class MoGoHmiFragment : MvpFragment } mWarningFloat = WarningFloat.with(it) - .setTag(tag) - .setLayout(notificationView) - .setSidePattern(SidePattern.RESULT_RIGHT) - .setCountDownTime(5000) - .setGravity(Gravity.CENTER_HORIZONTAL, offsetY = 110) - .setImmersionStatusBar(true) - .addWarningStatusListener(listenerIMoGo) - .addWarningStatusListener(object : IMoGoWarningStatusListener { - override fun onShow() { - // 创建弹窗成功才进行TTS播报 - Logger.d( - "MoGoWarningFragment", - "mWarningFloat = $mWarningFloat---ttsContent = $ttsContent" - ) - if (mWarningFloat != null && !TextUtils.isEmpty(ttsContent)) { - Logger.d("MoGoWarningFragment", "---> ttsContent = $ttsContent") - AIAssist.getInstance(activity) - .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() + .setTag(tag) + .setLayout(notificationView) + .setSidePattern(SidePattern.RESULT_RIGHT) + .setCountDownTime(5000) + .setGravity(Gravity.CENTER_HORIZONTAL, offsetY = 110) + .setImmersionStatusBar(true) + .addWarningStatusListener(listenerIMoGo) + .addWarningStatusListener(object : IMoGoWarningStatusListener { + override fun onShow() { + // 创建弹窗成功才进行TTS播报 + Logger.d( + "MoGoWarningFragment", + "mWarningFloat = $mWarningFloat---ttsContent = $ttsContent" + ) + if (mWarningFloat != null && !TextUtils.isEmpty(ttsContent)) { + Logger.d("MoGoWarningFragment", "---> ttsContent = $ttsContent") + AIAssist.getInstance(activity) + .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() + } - override fun exitAnim( - view: View, - params: WindowManager.LayoutParams, - windowManager: WindowManager, - sidePattern: SidePattern - ): Animator? = - super.exitAnim(view, params, windowManager, sidePattern)?.setDuration(200) - }) - .show() + override fun exitAnim( + view: View, + params: WindowManager.LayoutParams, + windowManager: WindowManager, + sidePattern: SidePattern + ): Animator? = + super.exitAnim(view, params, windowManager, sidePattern)?.setDuration(200) + }) + .show() } } @@ -252,47 +253,49 @@ class MoGoHmiFragment : MvpFragment * @param trafficStylePushData */ override fun showNoticeForTrafficWithData(trafficStylePushData: NoticeTrafficStylePushData) { - activity.let { - val noticeBannerView = this.context?.let { it1 -> NoticeBannerView(it1) } - noticeBannerView?.refreshWithData(trafficStylePushData) - mWarningFloat = it?.let { it1 -> - noticeBannerView?.let { it2 -> - 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播报 + ThreadUtils.runOnUiThread { + activity.let { + val noticeBannerView = this.context?.let { it1 -> NoticeBannerView(it1) } + noticeBannerView?.refreshWithData(trafficStylePushData) + mWarningFloat = it?.let { it1 -> + noticeBannerView?.let { it2 -> + 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() - } + } + }) + .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 exitAnim( + view: View, + params: WindowManager.LayoutParams, + windowManager: WindowManager, + sidePattern: SidePattern + ): Animator? = + super.exitAnim(view, params, windowManager, sidePattern) + ?.setDuration(200) + }) + .show() + } } } } @@ -365,40 +368,40 @@ class MoGoHmiFragment : MvpFragment } }) cameraViewFloat = WarningFloat.with(it) - .setTag("CameraListFloat") - .setLayout(cameraListView!!) - .setSidePattern(SidePattern.RIGHT) - .setLocation(1742, 280) - .setImmersionStatusBar(true) - .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() - } + .setTag("CameraListFloat") + .setLayout(cameraListView!!) + .setSidePattern(SidePattern.RIGHT) + .setLocation(1742, 280) + .setImmersionStatusBar(true) + .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) - }) - .addWarningStatusListener(object : IMoGoWarningStatusListener { - override fun onDismiss() { - cameraViewFloat = null - cameraListView = null - ivCameraIcon.setBackgroundResource(R.drawable.icon_camera_nor) - } - }) - .show() + override fun exitAnim( + view: View, + params: WindowManager.LayoutParams, + windowManager: WindowManager, + sidePattern: SidePattern + ): Animator? = + super.exitAnim(view, params, windowManager, sidePattern) + ?.setDuration(200) + }) + .addWarningStatusListener(object : IMoGoWarningStatusListener { + override fun onDismiss() { + cameraViewFloat = null + cameraListView = null + ivCameraIcon.setBackgroundResource(R.drawable.icon_camera_nor) + } + }) + .show() } else { cameraViewFloat?.show() } diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/notice/NoticeTrafficDialog.java b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/notice/NoticeTrafficDialog.java index 411941f5eb..ec9d485ba0 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/notice/NoticeTrafficDialog.java +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/notice/NoticeTrafficDialog.java @@ -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.NoticeValue; 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.hmi.R; import com.mogo.eagle.core.widget.media.video.NoticeSimpleSmallVideoPlayer; @@ -155,7 +156,7 @@ public class NoticeTrafficDialog extends BaseFloatDialog { * 0不接收 1接受 发起自动驾驶任务,显示引导线 */ 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) { startAutoPilot(); } @@ -177,6 +178,7 @@ public class NoticeTrafficDialog extends BaseFloatDialog { AutopilotControlParameters.AutoPilotLonLat endLocation = new AutopilotControlParameters.AutoPilotLonLat (mTrafficStyleInfo.getLon(), mTrafficStyleInfo.getLat()); parameters.endLatLon = endLocation; + CallerAutoPilotManager.INSTANCE.startAutoPilot(parameters); } /**