完成了弹窗 show disable 功能

This commit is contained in:
董宏宇
2021-08-06 16:34:57 +08:00
parent 1b658d60af
commit 48b4492938
6 changed files with 41 additions and 14 deletions

View File

@@ -7,6 +7,7 @@ package com.mogo.module.hmi;
public class WaringConst {
public static String MODULE_NAME = "MODULE_LEFT_PANEL";
public static String BROADCAST_V2X_IS_SHOW_EXTRA_KEY = "v2xIsShow";
public static String BROADCAST_V2X_TYPE_EXTRA_KEY = "v2xType";
public static String BROADCAST_V2X_ALERT_CONTENT_EXTRA_KEY = "alertContent";
public static String BROADCAST_V2X_TTS_CONTENT_EXTRA_KEY = "ttsContent";

View File

@@ -9,7 +9,6 @@ import com.mogo.service.IMogoServiceApis
import com.mogo.service.MogoServicePaths
import com.mogo.service.warning.IMoGoWaringProvider
import com.mogo.utils.logger.Logger
import kotlin.random.Random
/**
* V2X 预警广播接收。用于跨应用,跨进程,内部也可以通过这种方式弹出预警提示框
@@ -31,29 +30,49 @@ class WarningBroadcastReceiver : BroadcastReceiver() {
.navigation(context) as IMogoServiceApis
mIMoGoWaringProvider = mMogoServiceApis!!.waringProviderApi
mContext = context
val v2xIsShow =
intent.getBooleanExtra(WaringConst.BROADCAST_V2X_IS_SHOW_EXTRA_KEY, false)
val v2xType =
intent.getIntExtra(WaringConst.BROADCAST_V2X_TYPE_EXTRA_KEY, 0)
val alertContent =
intent.getStringExtra(WaringConst.BROADCAST_V2X_ALERT_CONTENT_EXTRA_KEY)
val ttsContent =
intent.getStringExtra(WaringConst.BROADCAST_V2X_TTS_CONTENT_EXTRA_KEY)
Logger.d(TAG, "v2xType:$v2xType alertContent:$alertContent ttsContent:$ttsContent")
// 分发场景
dispatchWaring(v2xType, alertContent, ttsContent, Random.nextDouble().toString())
val tag =
intent.getStringExtra(WaringConst.BROADCAST_V2X_TAG_EXTRA_KEY)
Logger.d(
TAG,
"v2xType:$v2xType alertContent:$alertContent ttsContent:$ttsContent tag:$tag"
)
if (v2xIsShow) {
// 分发场景
dispatchShowWaring(v2xType, alertContent, ttsContent, tag)
} else {
dispatchCloseWaring(tag)
}
} catch (e: Exception) {
e.printStackTrace()
}
}
/**
* 分发处理场景
* 分发处理关闭场景
*/
private fun dispatchCloseWaring(tag: String?) {
mIMoGoWaringProvider!!.disableWarningV2X(
tag
)
}
/**
* 分发处理展示场景
*
* @param v2xType V2X类型
* @param alertContent 提醒文本
* @param ttsContent tts语音播报消息
* @param tag tag绑定弹窗的标志
*/
private fun dispatchWaring(
private fun dispatchShowWaring(
v2xType: Int,
alertContent: String?,
ttsContent: String?,
@@ -65,6 +84,5 @@ class WarningBroadcastReceiver : BroadcastReceiver() {
ttsContent,
tag
)
}
}

View File

@@ -88,8 +88,14 @@ class MoGoWarningFragment : MvpFragment<MoGoWarningContract.View?, WaringPresent
}
}
/**
* 关闭指定floatTag 的 VR下V2X预警弹窗
* @param tag 弹窗标识
*/
override fun disableWarningV2X(tag: String) {
activity?.let {
WarningFloat.dismiss(tag)
}
}
override fun showWarningTrafficLight(checkLightId: Int) {

View File

@@ -71,13 +71,15 @@ public class MoGoWarningProvider implements IMoGoWaringProvider {
mMoGoWarningFragment.disableLimitingVelocity();
}
@Override
public void disableWarningV2X(@NonNull String tag) {
}
@Override
public void showWarningV2X(int v2xType, @Nullable String alertContent, @Nullable String ttsContent, @Nullable String tag) {
mMoGoWarningFragment.showWarningV2X(v2xType, alertContent, ttsContent, tag);
}
@Override
public void disableWarningV2X(String tag) {
mMoGoWarningFragment.disableWarningV2X(tag);
}
}