diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/notice/NoticeCheckDialog.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/notice/NoticeCheckDialog.kt index 7c6d9025ba..467e6c1e12 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/notice/NoticeCheckDialog.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/notice/NoticeCheckDialog.kt @@ -11,6 +11,9 @@ import com.mogo.eagle.core.data.notice.NoticeNormalData import com.mogo.eagle.core.function.hmi.R import com.mogo.eagle.core.widget.media.video.NoticeSimpleVideoPlayer import com.mogo.module.common.dialog.BaseFloatDialog +import com.mogo.service.IMogoServiceApis +import com.mogo.service.statusmanager.IMogoStatusChangedListener +import com.mogo.service.statusmanager.StatusDescriptor import com.mogo.utils.BitmapHelper import com.mogo.utils.glide.GlideApp import com.shuyu.gsyvideoplayer.GSYVideoManager @@ -36,6 +39,12 @@ class NoticeCheckDialog(context: Context) : BaseFloatDialog(context) { private var mVideoUrl: String = "" private var playErrorImageView: ImageView? = null private var connectTextView: TextView? = null + private val mServiceApis: IMogoServiceApis? = null + private val statusChangedListenerForCheckNotice = IMogoStatusChangedListener { descriptor, isTrue -> + if (descriptor == StatusDescriptor.MAIN_PAGE_IS_BACKGROUND) { + dismiss() + } + } init { setContentView(R.layout.notice_dialog_check_with_accessory) @@ -79,6 +88,11 @@ class NoticeCheckDialog(context: Context) : BaseFloatDialog(context) { pushVideo!!.visibility = View.VISIBLE playVideo(mVideoUrl) } + mServiceApis?.statusManagerApi?.registerStatusChangedListener( + TAG, + StatusDescriptor.MAIN_PAGE_IS_BACKGROUND, + statusChangedListenerForCheckNotice + ) } @@ -202,6 +216,7 @@ class NoticeCheckDialog(context: Context) : BaseFloatDialog(context) { connectTextView?.visibility = View.VISIBLE playErrorImageView!!.visibility = View.VISIBLE } + override fun onPrepared(url: String, vararg objects: Any) {} override fun onClickStartIcon(url: String, vararg objects: Any) {} override fun onClickStartError(url: String, vararg objects: Any) {} @@ -226,5 +241,4 @@ class NoticeCheckDialog(context: Context) : BaseFloatDialog(context) { } - } \ 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/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 fdb1f14e8d..61aeca4c54 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 @@ -8,7 +8,7 @@ import android.widget.ImageView; import android.widget.TextView; import androidx.annotation.NonNull; -import androidx.recyclerview.widget.GridLayoutManager; +import androidx.lifecycle.LifecycleObserver; import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.StaggeredGridLayoutManager; @@ -24,7 +24,10 @@ import com.mogo.eagle.core.function.hmi.R; import com.mogo.eagle.core.widget.media.video.NoticeSimpleSmallVideoPlayer; import com.mogo.module.common.MogoApisHandler; import com.mogo.module.common.dialog.BaseFloatDialog; +import com.mogo.service.IMogoServiceApis; import com.mogo.service.imageloader.MogoImageView; +import com.mogo.service.statusmanager.IMogoStatusChangedListener; +import com.mogo.service.statusmanager.StatusDescriptor; import com.mogo.utils.BitmapHelper; import com.mogo.utils.glide.GlideApp; import com.mogo.utils.glide.GlideRoundedCornersTransform; @@ -43,7 +46,7 @@ import java.util.ArrayList; * http://wiki.zhidaohulian.com/pages/viewpage.action?pageId=66917475 根据infoId获取事故详情 * @since: 10/26/21 */ -public class NoticeTrafficDialog extends BaseFloatDialog { +public class NoticeTrafficDialog extends BaseFloatDialog implements LifecycleObserver { private String TAG = "AINotice"; private Context mContext; private RecyclerView mRecyclerView; @@ -59,6 +62,7 @@ public class NoticeTrafficDialog extends BaseFloatDialog { private NoticeTrafficAdapter adapter; private ArrayList dataArrayList = new ArrayList(); private NoticeTrafficStyleInfo.NoticeTrafficAccountInfo mTrafficStyleInfo; + private IMogoServiceApis mServiceApis; public NoticeTrafficDialog(@NonNull Context context, NoticeTrafficStylePushData pushData) { super(context); @@ -76,6 +80,8 @@ public class NoticeTrafficDialog extends BaseFloatDialog { setCanceledOnTouchOutside(true); playerShow();//视频播放器及接操作按钮 recyclerVie();//详情信息列表 + mServiceApis = MogoApisHandler.getInstance().getApis(); + mServiceApis.getStatusManagerApi().registerStatusChangedListener(TAG, StatusDescriptor.MAIN_PAGE_IS_BACKGROUND, statusChangedListenerForNotice); } /** @@ -285,7 +291,7 @@ public class NoticeTrafficDialog extends BaseFloatDialog { @Override public void onClickStartError(String url, Object... objects) { - Log.d(TAG, "onClickStartError"); + Log.e(TAG, "onClickStartError"); } @Override @@ -452,7 +458,17 @@ public class NoticeTrafficDialog extends BaseFloatDialog { @Override public void dismiss() { super.dismiss(); - Log.d("liyz", "trafficdialog dismiss"); + Log.d(TAG, "trafficdialog dismiss"); releasePlayer(); } + + private IMogoStatusChangedListener statusChangedListenerForNotice = new IMogoStatusChangedListener() { + @Override + public void onStatusChanged(StatusDescriptor descriptor, boolean isTrue) { + if (descriptor == StatusDescriptor.MAIN_PAGE_IS_BACKGROUND) { + Log.d("AINotice", "onStatusChanged==MAIN_PAGE_IS_BACKGROUND"); + dismiss(); + } + } + }; }