From ec9c5d92351f35e1ac910fddcd36c987052434d8 Mon Sep 17 00:00:00 2001 From: lixiaopeng Date: Tue, 9 Nov 2021 17:05:56 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=BC=B9=E6=A1=86=E6=96=B0?= =?UTF-8?q?=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/function/hmi/ui/MoGoHmiFragment.kt | 50 +++++++++-- .../hmi/ui/notice/NoticeBannerView.java | 1 - .../function/hmi/ui/notice/NoticeFloatView.kt | 2 +- .../hmi/ui/notice/NoticeNormalBannerView.java | 85 +++++++++++++++++++ .../media/video/NoticeSimpleVideoPlayer.kt | 6 -- 5 files changed, 130 insertions(+), 14 deletions(-) create mode 100644 core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/notice/NoticeNormalBannerView.java 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 df34d85e24..fa6ce56464 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 @@ -22,6 +22,7 @@ import com.mogo.eagle.core.function.hmi.notification.enums.SidePattern 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.NoticeFloatView +import com.mogo.eagle.core.function.hmi.ui.notice.NoticeNormalBannerView import com.mogo.eagle.core.function.hmi.ui.widget.V2XNotificationView import com.mogo.module.common.enums.EventTypeEnum import com.mogo.utils.logger.Logger @@ -294,14 +295,51 @@ class MoGoHmiFragment : MvpFragment } } - - var floatView: NoticeFloatView? = null - override fun showNoticeNormalData(normalData: NoticeNormalData) { - if (floatView == null) { - floatView = this.context?.let { NoticeFloatView(it) } + 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() + } + } } - floatView?.pushBeanChanged(normalData) } private fun showCameraList(cameraList: List?) { diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/notice/NoticeBannerView.java b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/notice/NoticeBannerView.java index bc1f61d8b8..0228e80e54 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/notice/NoticeBannerView.java +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/notice/NoticeBannerView.java @@ -35,7 +35,6 @@ public class NoticeBannerView extends ConstraintLayout { public NoticeBannerView(@NonNull Context context) { super(context); mContext = context; - SharedPrefs.getInstance(context).putInt("videoType", 2); //小的视频播放ui LayoutInflater.from(context).inflate(R.layout.notice_push_top_banner, this); initView(); } diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/notice/NoticeFloatView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/notice/NoticeFloatView.kt index 395a3333a7..cf9b45d759 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/notice/NoticeFloatView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/notice/NoticeFloatView.kt @@ -24,6 +24,7 @@ import com.mogo.utils.glide.GlideRoundedCornersTransform /** * 云公告弹框view + * 未来可能删除,这种是老的实现方式 */ class NoticeFloatView constructor( private val context: Context @@ -127,7 +128,6 @@ class NoticeFloatView constructor( init { inflateView(R.layout.notice_push_top_banner) - SharedPrefs.getInstance(context).putInt("videoType", 1) //大的播放器 } private var topViewStatusListener = object : IMogoTopViewStatusListener { diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/notice/NoticeNormalBannerView.java b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/notice/NoticeNormalBannerView.java new file mode 100644 index 0000000000..ae9e3ee3f5 --- /dev/null +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/notice/NoticeNormalBannerView.java @@ -0,0 +1,85 @@ +package com.mogo.eagle.core.function.hmi.ui.notice; + +import android.content.Context; +import android.util.AttributeSet; +import android.view.LayoutInflater; +import android.view.View; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.constraintlayout.widget.ConstraintLayout; + +import com.mogo.eagle.core.data.notice.NoticeNormalData; +import com.mogo.eagle.core.data.notice.NoticeTrafficStyleInfo; +import com.mogo.eagle.core.data.notice.NoticeTrafficStylePushData; +import com.mogo.eagle.core.function.hmi.R; +import com.mogo.eagle.core.utilcode.util.SharedPrefs; +import com.mogo.utils.glide.GlideApp; +import com.mogo.utils.glide.GlideRoundedCornersTransform; + +/** + * @author lixiaopeng + * @description 云公告顶部弹框 + * @since: 10/26/21 + */ +public class NoticeNormalBannerView extends ConstraintLayout { + private ImageView styleImageView; + private ImageView iconImageView; + private TextView noticePushTitle; + private TextView noticePushContent; + private TextView noticeBannerCheck; + private NoticeCheckDialog pushCheckDialog; + private Context mContext; + private NoticeNormalData mPushData; + + public NoticeNormalBannerView(@NonNull Context context) { + super(context); + mContext = context; + LayoutInflater.from(context).inflate(R.layout.notice_push_top_banner, this); + initView(); + } + + public NoticeNormalBannerView(@NonNull Context context, @Nullable AttributeSet attrs) { + super(context, attrs); + } + + public NoticeNormalBannerView(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr) { + super(context, attrs, defStyleAttr); + } + + public NoticeNormalBannerView(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr, int defStyleRes) { + super(context, attrs, defStyleAttr, defStyleRes); + } + + public void setPushData(NoticeNormalData pushData) { + mPushData = pushData; + noticePushTitle.setText(pushData.getTitle()); + noticePushContent.setText(pushData.getContent()); + if (pushData.getFileType() == 1) { //1 是图片, 2 是视频 + iconImageView.setVisibility(View.GONE); + } else { + iconImageView.setVisibility(View.VISIBLE); + } + + GlideApp.with(this).load(pushData.getImageUrl()).optionalTransform(new GlideRoundedCornersTransform(30f, GlideRoundedCornersTransform.CornerType.LEFT)).into(styleImageView); + + } + + public void initView() { + styleImageView = findViewById(R.id.notice_push_style_image); + iconImageView = findViewById(R.id.notice_push_icon_video); + noticePushTitle = findViewById(R.id.notice_push_title); + noticePushContent = findViewById(R.id.notice_push_content); + noticeBannerCheck = findViewById(R.id.notice_push_banner_check); + + noticeBannerCheck.setOnClickListener(v -> { + if (pushCheckDialog == null) { + pushCheckDialog = new NoticeCheckDialog(mContext); + } + pushCheckDialog.showCheckDialog(mPushData); + }); + } + +} diff --git a/core/mogo-core-res/src/main/java/com/mogo/eagle/core/widget/media/video/NoticeSimpleVideoPlayer.kt b/core/mogo-core-res/src/main/java/com/mogo/eagle/core/widget/media/video/NoticeSimpleVideoPlayer.kt index 311b231698..04abb58a55 100644 --- a/core/mogo-core-res/src/main/java/com/mogo/eagle/core/widget/media/video/NoticeSimpleVideoPlayer.kt +++ b/core/mogo-core-res/src/main/java/com/mogo/eagle/core/widget/media/video/NoticeSimpleVideoPlayer.kt @@ -62,12 +62,6 @@ class NoticeSimpleVideoPlayer : StandardGSYVideoPlayer { } override fun getLayoutId(): Int { - Log.d("liyz", "NoticeSimpleVideoPlayer --- getLayoutId type = " + SharedPrefs.getInstance(context).getInt("videoType", 0)) -// if (SharedPrefs.getInstance(context).getInt("videoType", 0) == 1) { //大播放器 -// return R.layout.item_notice_video -// } -// return R.layout.item_notice_video_small - return R.layout.item_notice_video }