修复TTS逻辑并解决合并3ee50537时产生的冲突

This commit is contained in:
chenfufeng
2021-09-14 11:04:15 +08:00
parent c29f4e21b6
commit 63c64cb28e
10 changed files with 153 additions and 70 deletions

View File

@@ -4,6 +4,7 @@ import android.content.Context
import android.view.View
import com.mogo.module.hmi.notification.enums.SidePattern
import com.mogo.module.hmi.notification.interfaces.OnFloatAnimator
import com.mogo.service.warning.WarningStatusListener
import com.mogo.utils.WindowUtils
import com.mogo.utils.logger.Logger
@@ -135,6 +136,13 @@ class WarningFloat {
fun setAnimator(floatAnimator: OnFloatAnimator?) =
apply { config.floatAnimator = floatAnimator }
/**
* 设置视图状态监听showdismiss
* @param listener 设置视图状态监听
*/
fun setWarningStatusListener(listener: WarningStatusListener?) =
apply { config.listener = listener }
/**
* 创建浮窗包括Activity浮窗和系统浮窗如若系统浮窗无权限先进行权限申请
*/

View File

@@ -119,6 +119,7 @@ internal class WarningFloatWindowHelper(
* 入场动画
*/
private fun enterAnim(floatingView: View) {
config.listener?.onShow()
if (frameLayout == null || config.isAnim) return
enterAnimator = AnimatorManager(frameLayout!!, params, windowManager, config)
.enterAnim()?.apply {
@@ -157,6 +158,7 @@ internal class WarningFloatWindowHelper(
* 退出动画
*/
fun exitAnim() {
config.listener?.onDismiss()
if (frameLayout == null || (config.isAnim && enterAnimator == null)) return
enterAnimator?.cancel()
val animator: Animator? =

View File

@@ -6,6 +6,7 @@ import com.mogo.module.hmi.notification.enums.ShowPattern
import com.mogo.module.hmi.notification.enums.SidePattern
import com.mogo.module.hmi.notification.interfaces.OnFloatAnimator
import com.mogo.module.hmi.notification.interfaces.OnFloatCallbacks
import com.mogo.service.warning.WarningStatusListener
/**
* @author xiaoyuzhou
@@ -52,6 +53,9 @@ data class WarningNotificationConfig(
// 出入动画
var floatAnimator: OnFloatAnimator? = DefaultAnimator(),
// 设置视图状态监听showdismiss
var listener: WarningStatusListener? = null,
// Callbacks
var callbacks: OnFloatCallbacks? = null,

View File

@@ -86,7 +86,8 @@ class V2XWarningBroadcastReceiver : BroadcastReceiver() {
v2xType,
alertContent,
ttsContent,
tag
tag,
null
)
}
}

View File

@@ -2,6 +2,7 @@ package com.mogo.module.hmi.ui
import com.mogo.commons.mvp.IView
import com.mogo.module.data.enums.WarningDirectionEnum
import com.mogo.service.warning.WarningStatusListener
/**
@@ -22,9 +23,10 @@ interface MoGoWarningContract {
*/
fun showWarningV2X(
v2xType: Int,
alertContent: String? = null,
ttsContent: String? = null,
tag: String? = null
alertContent: String?,
ttsContent: String?,
tag: String?,
listener: WarningStatusListener?
)
/**

View File

@@ -15,6 +15,7 @@ import com.mogo.module.hmi.notification.WarningFloat
import com.mogo.module.hmi.notification.anim.DefaultAnimator
import com.mogo.module.hmi.notification.enums.SidePattern
import com.mogo.module.hmi.ui.widget.V2XNotificationView
import com.mogo.service.warning.WarningStatusListener
import com.mogo.utils.logger.Logger
import kotlinx.android.synthetic.main.fragment_warning.*
@@ -51,6 +52,7 @@ class MoGoWarningFragment : MvpFragment<MoGoWarningContract.View?, WaringPresent
alertContent: String?,
ttsContent: String?,
tag: String?,
listener: WarningStatusListener?
) {
activity?.let {
@@ -75,6 +77,7 @@ class MoGoWarningFragment : MvpFragment<MoGoWarningContract.View?, WaringPresent
//.setCountDownTime(10000)
.setGravity(Gravity.CENTER_HORIZONTAL, offsetY = 110)
.setImmersionStatusBar(true)
.setWarningStatusListener(listener)
.setAnimator(object : DefaultAnimator() {
override fun enterAnim(
view: View,

View File

@@ -14,6 +14,7 @@ import com.mogo.module.hmi.ui.MoGoWarningFragment;
import com.mogo.service.MogoServicePaths;
import com.mogo.service.module.ModuleType;
import com.mogo.service.warning.IMoGoWaringProvider;
import com.mogo.service.warning.WarningStatusListener;
import com.mogo.utils.logger.Logger;
/**
@@ -93,8 +94,10 @@ public class MoGoWarningProvider implements IMoGoWaringProvider {
}
@Override
public void showWarningV2X(int v2xType, @Nullable String alertContent, @Nullable String ttsContent, @Nullable String tag) {
mMoGoWarningFragment.showWarningV2X(v2xType, alertContent, ttsContent, tag);
public void showWarningV2X(int v2xType, @Nullable String alertContent,
@Nullable String ttsContent, @Nullable String tag,
@Nullable WarningStatusListener listener) {
mMoGoWarningFragment.showWarningV2X(v2xType, alertContent, ttsContent, tag,listener);
}
@Override