[6.2.6][小智形象] 添加v2n小智形象状态回调

This commit is contained in:
renwj
2023-12-18 15:48:27 +08:00
parent dec66f0eee
commit 70ae305978
8 changed files with 130 additions and 0 deletions

View File

@@ -23,6 +23,9 @@ import com.mogo.eagle.core.data.enums.WarningDirectionEnum
import com.mogo.eagle.core.data.map.Infrastructure
import com.mogo.eagle.core.function.api.hmi.warning.IMoGoHmiProvider
import com.mogo.eagle.core.function.api.hmi.warning.IMoGoWarningStatusListener
import com.mogo.eagle.core.function.api.hmi.xiaozhi.event.Event
import com.mogo.eagle.core.function.api.hmi.xiaozhi.listener.OnXiaoZhiStateChangeListener
import com.mogo.eagle.core.function.api.hmi.xiaozhi.state.State
import com.mogo.eagle.core.function.call.hmi.CallerHmiViewControlListenerManager
import com.mogo.eagle.core.function.call.v2x.CallerTrafficLightListenerManager
import com.mogo.eagle.core.function.call.v2x.CallerTurnLightListenerManager
@@ -40,6 +43,7 @@ import com.mogo.eagle.core.function.hmi.ui.tools.ToBindingCarDialog
import com.mogo.eagle.core.function.hmi.ui.tools.UpgradeAppDialog
import com.mogo.eagle.core.function.hmi.ui.utils.HmiActionLog
import com.mogo.eagle.core.function.hmi.ui.widget.StatusBarView
import com.mogo.eagle.core.function.hmi.xiaozhi.XiaoZhiStateManager
import com.mogo.eagle.core.utilcode.floating.MoGoPopWindow
import com.mogo.eagle.core.utilcode.kotlin.safeCancel
import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
@@ -77,6 +81,8 @@ class MoGoHmiProvider : IMoGoHmiProvider {
private val isPlayingTts by lazy { AtomicBoolean(false) }
private val xiaozhi by lazy { XiaoZhiStateManager() }
override fun init(context: Context?) {
this.context = context
@@ -381,4 +387,15 @@ class MoGoHmiProvider : IMoGoHmiProvider {
MogoStatusManager.getInstance().setTaxiUnmanedDriverLineRoutingVerifyMode(TAG, isMode)
}
override fun registerXiaoZhiStatusChangeListener(listener: OnXiaoZhiStateChangeListener) {
xiaozhi.addListener(listener)
}
override fun unRegisterXiaoZhiStatusChangedListener(listener: OnXiaoZhiStateChangeListener) {
xiaozhi.removeListener(listener)
}
override fun notifyXiaoZhiStatusChanged(event: Event, state: State) {
xiaozhi.notify(event, state)
}
}

View File

@@ -0,0 +1,35 @@
package com.mogo.eagle.core.function.hmi.xiaozhi
import android.content.Context
import com.mogo.eagle.core.function.api.hmi.xiaozhi.IXiaoZhiStateManager
import com.mogo.eagle.core.function.api.hmi.xiaozhi.event.Event
import com.mogo.eagle.core.function.api.hmi.xiaozhi.listener.OnXiaoZhiStateChangeListener
import com.mogo.eagle.core.function.api.hmi.xiaozhi.state.State
import java.util.concurrent.CopyOnWriteArrayList
internal class XiaoZhiStateManager: IXiaoZhiStateManager {
private val listeners by lazy { CopyOnWriteArrayList<OnXiaoZhiStateChangeListener>() }
override fun init(context: Context?) {}
override fun addListener(listener: OnXiaoZhiStateChangeListener) {
if (listeners.contains(listener)) {
return
}
listeners.add(listener)
}
override fun removeListener(listener: OnXiaoZhiStateChangeListener) {
if (!listeners.contains(listener)) {
return
}
listeners.remove(listener)
}
override fun notify(event: Event, state: State) {
listeners.forEach {
it.onChanged(event, state)
}
}
}