diff --git a/main-extensions/mogo-module-main-launcher/src/main/java/com/zhidao/mogo/module/main/launcher/MainLauncherActivity.java b/main-extensions/mogo-module-main-launcher/src/main/java/com/zhidao/mogo/module/main/launcher/MainLauncherActivity.java index 77a83e18e8..bfc57b63b5 100644 --- a/main-extensions/mogo-module-main-launcher/src/main/java/com/zhidao/mogo/module/main/launcher/MainLauncherActivity.java +++ b/main-extensions/mogo-module-main-launcher/src/main/java/com/zhidao/mogo/module/main/launcher/MainLauncherActivity.java @@ -2,11 +2,13 @@ package com.zhidao.mogo.module.main.launcher; import android.content.Intent; import android.os.Bundle; +import android.os.Handler; import android.os.Process; import android.text.TextUtils; import android.util.Log; import android.view.View; import android.widget.FrameLayout; +import android.widget.ImageView; import androidx.annotation.Nullable; @@ -38,13 +40,18 @@ import static com.mogo.module.common.entity.V2XMessageEntity.V2XTypeEnum.ALERT_T public class MainLauncherActivity extends MainActivity implements IMogoIntentListener, IMogoStatusChangedListener, IV2XListener { private static final String TAG = "MainLauncherActivity"; protected boolean mIsHomeKeyDown = false; + private static Handler handlerV2XEvent = new Handler(); + private static Runnable runnableV2XEvent; + private static final int COUNT_DOWN_TIMER = 1_000; + private static final int ALL_EXPIRE_TIMER = 3_000; + private static int EXPIRE_TIMER = ALL_EXPIRE_TIMER; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); DebugConfig.setNeedRequestUserInfo(true); Log.d(TAG, "onCreate"); - mServiceApis.getV2XListenerManager().registerIntentListener(MogoReceiver.ACTION_V2X_FRONT_WARNING,this); + mServiceApis.getV2XListenerManager().registerIntentListener(MogoReceiver.ACTION_V2X_FRONT_WARNING, this); mServiceApis.getStatusManagerApi().registerStatusChangedListener(TAG, StatusDescriptor.VR_MODE, this); } @@ -131,7 +138,8 @@ public class MainLauncherActivity extends MainActivity implements IMogoIntentLis super.onDestroy(); mServiceApis.getStatusManagerApi().unregisterStatusChangedListener(TAG, StatusDescriptor.VR_MODE, this); - mServiceApis.getV2XListenerManager().unregisterIntentListener(TAG,this); + mServiceApis.getV2XListenerManager().unregisterIntentListener(TAG, this); + stopCountDown(); try { // acc off 之后会出现进程还在,但是页面被杀的情况,这个直接杀掉进程,然后让整个进程重启 Process.killProcess(Process.myPid()); @@ -178,28 +186,59 @@ public class MainLauncherActivity extends MainActivity implements IMogoIntentLis mWarningLeft.setVisibility(View.GONE); mWarningRight.setVisibility(View.GONE); mWarningBottom.setVisibility(View.GONE); + startCountDownWithView(mWarningTop); break; case ALERT_THE_FRONT_CRASH_WARNING_LEFT: mWarningLeft.setVisibility(View.VISIBLE); mWarningTop.setVisibility(View.GONE); mWarningRight.setVisibility(View.GONE); mWarningBottom.setVisibility(View.GONE); + startCountDownWithView(mWarningLeft); break; case ALERT_THE_FRONT_CRASH_WARNING_RIGHT: mWarningRight.setVisibility(View.VISIBLE); mWarningTop.setVisibility(View.GONE); mWarningLeft.setVisibility(View.GONE); mWarningBottom.setVisibility(View.GONE); + startCountDownWithView(mWarningRight); break; case ALERT_THE_FRONT_CRASH_WARNING_BOTTOM: mWarningBottom.setVisibility(View.VISIBLE); mWarningRight.setVisibility(View.GONE); mWarningTop.setVisibility(View.GONE); mWarningLeft.setVisibility(View.GONE); + startCountDownWithView(mWarningBottom); break; default: break; } } + /* + * 预警蒙层显示时间为3秒 + * */ + private void startCountDownWithView(ImageView view) { + if (runnableV2XEvent == null) { + runnableV2XEvent = () -> { + EXPIRE_TIMER = EXPIRE_TIMER - COUNT_DOWN_TIMER; + Logger.d(TAG, "当前蒙层显示时间为 :" + EXPIRE_TIMER / COUNT_DOWN_TIMER + " 秒"); + if (EXPIRE_TIMER > 0) { + handlerV2XEvent.postDelayed(runnableV2XEvent, COUNT_DOWN_TIMER); + } else { + view.setVisibility(View.GONE); + stopCountDown(); + } + }; + } else { + handlerV2XEvent.removeCallbacks(runnableV2XEvent); + } + handlerV2XEvent.postDelayed(runnableV2XEvent, COUNT_DOWN_TIMER); + } + + private void stopCountDown() { + if (handlerV2XEvent != null && runnableV2XEvent != null) { + handlerV2XEvent.removeCallbacks(runnableV2XEvent); + runnableV2XEvent = null; + } + } } diff --git a/modules/mogo-module-v2x/src/main/res/layout/window_test_console.xml b/modules/mogo-module-v2x/src/main/res/layout/window_test_console.xml index 0d8ba1418f..2e1d5e64cb 100644 --- a/modules/mogo-module-v2x/src/main/res/layout/window_test_console.xml +++ b/modules/mogo-module-v2x/src/main/res/layout/window_test_console.xml @@ -245,7 +245,7 @@ android:layout_height="wrap_content" android:layout_marginEnd="@dimen/dp_10" android:layout_marginBottom="@dimen/dp_10" - android:background="#1EBD85" + android:background="#FF0606" android:padding="@dimen/dp_10" android:text="前车碰撞预警" android:textColor="#FFFFFF"