分离Record回调监听管理。
以后这种监听没有特定关系的均需要单独管理

Signed-off-by: donghongyu <donghongyu@zhidaoauto.com>
This commit is contained in:
donghongyu
2022-04-06 19:32:18 +08:00
parent e1508a3f0f
commit 2b4b2f2119
13 changed files with 127 additions and 74 deletions

View File

@@ -24,9 +24,10 @@ import com.mogo.commons.mvp.Presenter;
import com.mogo.commons.voice.AIAssist;
import com.mogo.eagle.core.data.config.HmiBuildConfig;
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotIdentifyListener;
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotRecordListener;
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener;
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager;
import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotIdentifyListenerManager;
import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotRecordListenerManager;
import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager;
import com.mogo.eagle.core.function.call.hmi.CallerHmiManager;
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
@@ -53,7 +54,7 @@ import record_cache.RecordPanelOuterClass;
*
* @author tongchenfei
*/
public abstract class BaseBusTabFragment<V extends IView, P extends Presenter<V>> extends MvpFragment<V, P> implements IMogoMapListener, IMoGoAutopilotIdentifyListener {
public abstract class BaseBusTabFragment<V extends IView, P extends Presenter<V>> extends MvpFragment<V, P> implements IMogoMapListener, IMoGoAutopilotRecordListener {
private static final String TAG = "BaseOchFragment";
@@ -218,7 +219,7 @@ public abstract class BaseBusTabFragment<V extends IView, P extends Presenter<V>
if (mBadcaseBtn != null) {
CallerDevaToolsManager.INSTANCE.initBadCase(mBadcaseBtn, null, null);
if (!HmiBuildConfig.isShowBadCaseView) {
CallerAutopilotIdentifyListenerManager.INSTANCE.addListener(TAG, this);
CallerAutopilotRecordListenerManager.INSTANCE.addListener(TAG, this);
}
}
//设置升级小红点提示 默认隐藏
@@ -230,7 +231,7 @@ public abstract class BaseBusTabFragment<V extends IView, P extends Presenter<V>
public void onDestroyView() {
super.onDestroyView();
if (!HmiBuildConfig.isShowBadCaseView) {
CallerAutopilotIdentifyListenerManager.INSTANCE.removeListener(TAG);
CallerAutopilotRecordListenerManager.INSTANCE.removeListener(TAG);
}
}
@@ -242,9 +243,6 @@ public abstract class BaseBusTabFragment<V extends IView, P extends Presenter<V>
}
}
@Override
public void onAutopilotWarnMessage(MessagePad.Warn warn) {
}
/**
* 测试到站

View File

@@ -342,6 +342,7 @@ public class BusFragment extends BaseBusTabFragment<BusFragment, BusPresenter>
}
}
@Override
public void debugAutoPilotStatus(int status) {
mPresenter.debugAutoPilotStatus(status);
}
@@ -364,8 +365,4 @@ public class BusFragment extends BaseBusTabFragment<BusFragment, BusPresenter>
}
}
@Override
public void onAutopilotIdentifyDataUpdate(List<MessagePad.TrackedObject> trafficData) {
}
}

View File

@@ -28,11 +28,11 @@ import com.mogo.commons.mvp.Presenter;
import com.mogo.commons.voice.AIAssist;
import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters;
import com.mogo.eagle.core.data.config.HmiBuildConfig;
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotIdentifyListener;
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotRecordListener;
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener;
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotManager;
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager;
import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotIdentifyListenerManager;
import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotRecordListenerManager;
import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager;
import com.mogo.eagle.core.function.call.hmi.CallerHmiManager;
import com.mogo.eagle.core.function.call.map.CallerSmpManager;
@@ -46,7 +46,6 @@ import com.mogo.module.common.constants.DataTypes;
import com.mogo.module.common.view.OnPreventFastClickListener;
import com.mogo.och.taxi.R;
import mogo.telematics.pad.MessagePad;
import record_cache.RecordPanelOuterClass;
@@ -57,7 +56,7 @@ import record_cache.RecordPanelOuterClass;
*
* @author tongchenfei
*/
public abstract class BaseTaxiTabFragment<V extends IView, P extends Presenter<V>> extends MvpFragment<V, P> implements IMogoMapListener, IMoGoAutopilotIdentifyListener {
public abstract class BaseTaxiTabFragment<V extends IView, P extends Presenter<V>> extends MvpFragment<V, P> implements IMogoMapListener, IMoGoAutopilotRecordListener {
private static final String TAG = "BaseOchFragment";
private LinearLayout ctvAutopilotStatus;
@@ -160,7 +159,7 @@ public abstract class BaseTaxiTabFragment<V extends IView, P extends Presenter<V
if (mBadcaseBtn != null) {
CallerDevaToolsManager.INSTANCE.initBadCase(mBadcaseBtn, null, null);
if (!HmiBuildConfig.isShowBadCaseView) {
CallerAutopilotIdentifyListenerManager.INSTANCE.addListener(TAG, this);
CallerAutopilotRecordListenerManager.INSTANCE.addListener(TAG, this);
}
}
//设置升级小红点提示 默认隐藏
@@ -270,7 +269,7 @@ public abstract class BaseTaxiTabFragment<V extends IView, P extends Presenter<V
public void onDestroyView() {
super.onDestroyView();
if (!HmiBuildConfig.isShowBadCaseView) {
CallerAutopilotIdentifyListenerManager.INSTANCE.removeListener(TAG);
CallerAutopilotRecordListenerManager.INSTANCE.removeListener(TAG);
}
}
@@ -281,10 +280,6 @@ public abstract class BaseTaxiTabFragment<V extends IView, P extends Presenter<V
}
}
@Override
public void onAutopilotWarnMessage(MessagePad.Warn warn) {
}
public void showNotice(String notice) {
getActivity().runOnUiThread(() -> {
AIAssist.getInstance(getContext()).speakTTSVoice(notice);
@@ -472,7 +467,9 @@ public abstract class BaseTaxiTabFragment<V extends IView, P extends Presenter<V
public void changeOperationViewVisible(int visible) {
getActivity().runOnUiThread(() -> {
if (tvOperationStatus == null) return;
if (tvOperationStatus == null) {
return;
}
tvOperationStatus.setVisibility(visible);
});
}

View File

@@ -573,8 +573,4 @@ public class TaxiFragment extends BaseTaxiTabFragment<TaxiFragment, TaxiPresente
}
}
@Override
public void onAutopilotIdentifyDataUpdate(List<MessagePad.TrackedObject> trafficData) {
}
}

View File

@@ -26,7 +26,7 @@ import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListener
import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotCarConfigListenerManager.invokeAutopilotCarConfigData
import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotCarStatusListenerManager.invokeAutopilotCarStateData
import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotIdentifyListenerManager.invokeAutopilotIdentifyDataUpdate
import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotIdentifyListenerManager.invokeAutopilotRecordResult
import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotRecordListenerManager.invokeAutopilotRecordResult
import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotIdentifyListenerManager.invokeAutopilotWarnMessage
import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotPlanningListenerManager.invokeAutopilotRotting
import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotPlanningListenerManager.invokeAutopilotTrajectory

View File

@@ -130,10 +130,6 @@ public class MoGoHandAdasMsgManager implements
}
@Override
public void onAutopilotRecordResult(RecordPanelOuterClass.RecordPanel recordPanel) {
}
@Override
public void onAutopilotCarConfig(@NotNull MessagePad.CarConfigResp carConfigResp) {

View File

@@ -8,11 +8,14 @@ import android.view.WindowManager
import android.widget.TextView
import androidx.fragment.app.FragmentActivity
import com.mogo.cloud.passport.MoGoAiCloudClientConfig
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotIdentifyListener
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotRecordListener
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotManager
import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotIdentifyListenerManager
import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotRecordListenerManager
import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager
import com.mogo.eagle.core.utilcode.kotlin.*
import com.mogo.eagle.core.utilcode.kotlin.PX
import com.mogo.eagle.core.utilcode.kotlin.onDetach
import com.mogo.eagle.core.utilcode.kotlin.safeCancel
import com.mogo.eagle.core.utilcode.kotlin.scope
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_DEVA
import com.mogo.eagle.core.utilcode.mogo.toast.TipToast
@@ -31,7 +34,6 @@ import com.zhjt.mogo_core_function_devatools.feedback.callback.IFeedbackCallback
import kotlinx.coroutines.*
import record_cache.RecordPanelOuterClass
import java.io.File
import java.lang.IllegalStateException
import java.text.SimpleDateFormat
import java.util.*
import kotlin.Result.Companion
@@ -77,7 +79,7 @@ internal object FeedbackManager {
record.scope.launch {
val taskId = presenter.getBadCaseTaskId()
val listener = object : IMoGoAutopilotIdentifyListener {
val listener = object : IMoGoAutopilotRecordListener {
override fun onAutopilotRecordResult(recordPanel: RecordPanelOuterClass.RecordPanel) {
super.onAutopilotRecordResult(recordPanel)
record.scope.launch {
@@ -109,9 +111,9 @@ internal object FeedbackManager {
}
}
}
CallerAutopilotIdentifyListenerManager.addListener("Feedback", listener)
CallerAutopilotRecordListenerManager.addListener("Feedback", listener)
record.onDetach {
CallerAutopilotIdentifyListenerManager.removeListener("Feedback")
CallerAutopilotRecordListenerManager.removeListener("Feedback")
hideFloat = null
}
record.text = "结束录制"

View File

@@ -20,14 +20,14 @@ import com.mogo.eagle.core.data.enums.SidePattern
import com.mogo.eagle.core.data.enums.WarningDirectionEnum
import com.mogo.eagle.core.data.notice.NoticeNormalData
import com.mogo.eagle.core.data.notice.NoticeTrafficStylePushData
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotIdentifyListener
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotRecordListener
import com.mogo.eagle.core.function.api.hmi.IMoGoHmiViewProxy
import com.mogo.eagle.core.function.api.hmi.view.IViewLimitingVelocity
import com.mogo.eagle.core.function.api.hmi.view.IViewNotification
import com.mogo.eagle.core.function.api.hmi.view.IViewTrafficLight
import com.mogo.eagle.core.function.api.hmi.warning.IMoGoWaringProvider
import com.mogo.eagle.core.function.api.hmi.warning.IMoGoWarningStatusListener
import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotIdentifyListenerManager
import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotRecordListenerManager
import com.mogo.eagle.core.function.call.check.CallerCheckManager
import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager
import com.mogo.eagle.core.function.call.map.CallerMapDataCollectorManager
@@ -64,7 +64,7 @@ class MoGoHmiFragment : MvpFragment<MoGoWarningContract.View?, WaringPresenter?>
IMoGoWaringProvider,
IMoGoHmiViewProxy,
MoGoWarningContract.View,
IMoGoAutopilotIdentifyListener {
IMoGoAutopilotRecordListener {
private val TAG = "MoGoHmiFragment"
// DebugSettingView
@@ -136,7 +136,7 @@ class MoGoHmiFragment : MvpFragment<MoGoWarningContract.View?, WaringPresenter?>
@OptIn(ExperimentalCoroutinesApi::class)
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
CallerAutopilotIdentifyListenerManager.addListener(TAG, this)
CallerAutopilotRecordListenerManager.addListener(TAG, this)
/*// TODO 这里后面需要改成独立进程通讯后台获取YUV
view.postDelayed({
@@ -167,7 +167,7 @@ class MoGoHmiFragment : MvpFragment<MoGoWarningContract.View?, WaringPresenter?>
override fun onDestroyView() {
super.onDestroyView()
CallerAutopilotIdentifyListenerManager.removeListener(TAG)
CallerAutopilotRecordListenerManager.removeListener(TAG)
}

View File

@@ -6,40 +6,38 @@ import com.alibaba.android.arouter.facade.annotation.Route;
import com.mogo.eagle.core.data.constants.MogoServicePaths;
import com.mogo.eagle.core.function.api.map.IMogoMapFrameController;
public
/**
* @author congtaowang
* @since 2020/10/23
*
* 描述
* <p>
* 地图控制交互层
*/
@Route( path = MogoServicePaths.PATH_MAP_FRAME_CONTROLLER )
class MapFrameController implements IMogoMapFrameController {
@Route(path = MogoServicePaths.PATH_MAP_FRAME_CONTROLLER)
public class MapFrameController implements IMogoMapFrameController {
private IMogoMapFrameController mController;
@Override
public void initDelegate( IMogoMapFrameController controller ) {
public void initDelegate(IMogoMapFrameController controller) {
mController = controller;
}
@Override
public void changeTo2dMode() {
if ( mController != null ) {
if (mController != null) {
mController.changeTo2dMode();
}
}
@Override
public void changeToVRMode() {
if ( mController != null ) {
if (mController != null) {
mController.changeToVRMode();
}
}
@Override
public void init( Context context ) {
public void init(Context context) {
}

View File

@@ -1,7 +1,6 @@
package com.mogo.eagle.core.function.api.autopilot
import mogo.telematics.pad.MessagePad
import record_cache.RecordPanelOuterClass
/**
* @author xiaoyuzhou
@@ -24,9 +23,4 @@ interface IMoGoAutopilotIdentifyListener {
*/
fun onAutopilotWarnMessage(warn: MessagePad.Warn?) {}
/**
* 采集结果回调
*/
fun onAutopilotRecordResult(recordPanel: RecordPanelOuterClass.RecordPanel) {}
}

View File

@@ -0,0 +1,17 @@
package com.mogo.eagle.core.function.api.autopilot
import record_cache.RecordPanelOuterClass
/**
* @author xiaoyuzhou
* @date 2021/11/1 5:57 下午
* 采集结果回调
*/
interface IMoGoAutopilotRecordListener {
/**
* 采集结果回调
*/
fun onAutopilotRecordResult(recordPanel: RecordPanelOuterClass.RecordPanel) {}
}

View File

@@ -4,7 +4,6 @@ import androidx.annotation.Nullable
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotIdentifyListener
import com.mogo.eagle.core.function.call.base.CallerBase
import mogo.telematics.pad.MessagePad
import record_cache.RecordPanelOuterClass
import java.util.concurrent.ConcurrentHashMap
/**
@@ -16,7 +15,7 @@ object CallerAutopilotIdentifyListenerManager : CallerBase() {
// 存储所有注册了监听的对象invokeXXXX进行遍历回调将信息同步
private val M_AUTOPILOT_IDENTIFY_LISTENERS: ConcurrentHashMap<String, IMoGoAutopilotIdentifyListener> =
ConcurrentHashMap()
ConcurrentHashMap()
/**
* 添加 域控制器感知数据 监听
@@ -24,8 +23,8 @@ object CallerAutopilotIdentifyListenerManager : CallerBase() {
* @param listener 监听回调
*/
fun addListener(
@Nullable tag: String,
@Nullable listener: IMoGoAutopilotIdentifyListener
@Nullable tag: String,
@Nullable listener: IMoGoAutopilotIdentifyListener
) {
if (M_AUTOPILOT_IDENTIFY_LISTENERS.containsKey(tag)) {
return
@@ -80,16 +79,5 @@ object CallerAutopilotIdentifyListenerManager : CallerBase() {
}
}
/**
* 采集任务记录回调
*/
fun invokeAutopilotRecordResult(recordPanel: RecordPanelOuterClass.RecordPanel) {
M_AUTOPILOT_IDENTIFY_LISTENERS.forEach {
val tag = it.key
val listener = it.value
listener.onAutopilotRecordResult(recordPanel)
}
}
}

View File

@@ -0,0 +1,70 @@
package com.mogo.eagle.core.function.call.autopilot
import androidx.annotation.Nullable
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotRecordListener
import com.mogo.eagle.core.function.call.base.CallerBase
import record_cache.RecordPanelOuterClass
import java.util.concurrent.ConcurrentHashMap
/**
* @author xiaoyuzhou
* @date 2021/9/30 5:48 下午
* 采集结果回调管理
*/
object CallerAutopilotRecordListenerManager : CallerBase() {
// 存储所有注册了监听的对象invokeXXXX进行遍历回调将信息同步
private val M_AUTOPILOT_RECORD_LISTENERS: ConcurrentHashMap<String, IMoGoAutopilotRecordListener> =
ConcurrentHashMap()
/**
* 添加 域控制器感知数据 监听
* @param tag 标记,用来注销监听使用
* @param listener 监听回调
*/
fun addListener(
@Nullable tag: String,
@Nullable listener: IMoGoAutopilotRecordListener
) {
if (M_AUTOPILOT_RECORD_LISTENERS.containsKey(tag)) {
return
}
M_AUTOPILOT_RECORD_LISTENERS[tag] = listener
}
/**
* 删除监听
* @param tag 标记,用来注销监听使用
*/
fun removeListener(@Nullable tag: String) {
if (!M_AUTOPILOT_RECORD_LISTENERS.containsKey(tag)) {
return
}
M_AUTOPILOT_RECORD_LISTENERS.remove(tag)
}
/**
* 删除自动驾驶按钮选中监听
* @param listener 要删除的监听对象
*/
fun removeListener(@Nullable listener: IMoGoAutopilotRecordListener) {
M_AUTOPILOT_RECORD_LISTENERS.forEach {
if (it.value == listener) {
M_AUTOPILOT_RECORD_LISTENERS.remove(it.key)
}
}
}
/**
* 采集任务记录回调
*/
fun invokeAutopilotRecordResult(recordPanel: RecordPanelOuterClass.RecordPanel) {
M_AUTOPILOT_RECORD_LISTENERS.forEach {
val tag = it.key
val listener = it.value
listener.onAutopilotRecordResult(recordPanel)
}
}
}