From 13c1af272706abc3833a3bb413b76adaf6a5f5a4 Mon Sep 17 00:00:00 2001 From: liujing Date: Thu, 21 Jan 2021 20:18:42 +0800 Subject: [PATCH] =?UTF-8?q?[add]=20=E6=8E=A5=E5=8F=A3=E8=A1=A5=E5=85=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../realtime/Imp/RealTimeProviderImp.java | 33 +++++++-- .../realtime/Interface/RealTimeProvider.java | 32 ++++++++- .../connect/IMogoOnMessageListener.java | 14 ++++ .../com/mogo/realtime/connect/MsgBody.java | 71 +++++++++++++++++++ 4 files changed, 142 insertions(+), 8 deletions(-) create mode 100644 modules/mogo-realtime/src/main/java/com/mogo/realtime/connect/IMogoOnMessageListener.java create mode 100644 modules/mogo-realtime/src/main/java/com/mogo/realtime/connect/MsgBody.java diff --git a/modules/mogo-realtime/src/main/java/com/mogo/realtime/Imp/RealTimeProviderImp.java b/modules/mogo-realtime/src/main/java/com/mogo/realtime/Imp/RealTimeProviderImp.java index 7a326be..823d493 100644 --- a/modules/mogo-realtime/src/main/java/com/mogo/realtime/Imp/RealTimeProviderImp.java +++ b/modules/mogo-realtime/src/main/java/com/mogo/realtime/Imp/RealTimeProviderImp.java @@ -4,30 +4,51 @@ import android.content.Context; import com.mogo.cloud.passport.MoGoAiCloudClient; import com.mogo.realtime.Interface.RealTimeProvider; +import com.mogo.realtime.connect.IMogoOnMessageListener; +import com.mogo.realtime.connect.MsgBody; import com.mogo.realtime.constant.SnapshotUploadInTime; import com.mogo.realtime.entity.ADASRecognizedResult; import com.mogo.realtime.location.MogoRTKLocation; import java.util.List; +import java.util.Map; /** * @author liujing * @description 描述 * @since: 2021/1/21 */ -class RealTimeProviderImp implements RealTimeProvider { +public class RealTimeProviderImp implements RealTimeProvider { + private RealTimeProvider mDelegate; + @Override public List getLastADASRecognizedResult() { return null; } - @Override - public void init(Context context) { - MogoRTKLocation.getInstance().init(); - } - @Override public float getDistanceBetweenTwoPoints() { return 0; } + + @Override + public void init(Context context, String appId) { + if (mDelegate != null) { + mDelegate.init(context, appId); + } + } + + @Override + public void registerOnMessageListener(int msgType, IMogoOnMessageListener listener) { + if (mDelegate != null) { + mDelegate.registerOnMessageListener(msgType, listener); + } + } + + @Override + public void sendMsg(MsgBody body, IMogoOnMessageListener listener) { + if (mDelegate != null) { + mDelegate.sendMsg(body, listener); + } + } } diff --git a/modules/mogo-realtime/src/main/java/com/mogo/realtime/Interface/RealTimeProvider.java b/modules/mogo-realtime/src/main/java/com/mogo/realtime/Interface/RealTimeProvider.java index 69ca4ca..e94f957 100644 --- a/modules/mogo-realtime/src/main/java/com/mogo/realtime/Interface/RealTimeProvider.java +++ b/modules/mogo-realtime/src/main/java/com/mogo/realtime/Interface/RealTimeProvider.java @@ -2,9 +2,12 @@ package com.mogo.realtime.Interface; import android.content.Context; +import com.mogo.realtime.connect.IMogoOnMessageListener; +import com.mogo.realtime.connect.MsgBody; import com.mogo.realtime.entity.ADASRecognizedResult; import java.util.List; +import java.util.Map; /** * @author liujing @@ -19,7 +22,32 @@ public interface RealTimeProvider { */ List getLastADASRecognizedResult(); - void init(Context context); - + /* + * 两个点之间的距离 + * */ float getDistanceBetweenTwoPoints(); + + /** + * 初始化,各模块不用关心 + * + * @param context 上下文 + * @param appId 一般为包名,不参与通道的建立,一般用于发消息 + */ + void init(Context context, String appId); + + /** + * 注册消息监听 + * + * @param msgType 消息类型 + * @param listener 回调 + */ + void registerOnMessageListener(int msgType, IMogoOnMessageListener listener); + + /** + * 发送消息 + * + * @param body 消息体 + * @param listener 回执监听 + */ + void sendMsg(MsgBody body, IMogoOnMessageListener listener ); } diff --git a/modules/mogo-realtime/src/main/java/com/mogo/realtime/connect/IMogoOnMessageListener.java b/modules/mogo-realtime/src/main/java/com/mogo/realtime/connect/IMogoOnMessageListener.java new file mode 100644 index 0000000..136f8da --- /dev/null +++ b/modules/mogo-realtime/src/main/java/com/mogo/realtime/connect/IMogoOnMessageListener.java @@ -0,0 +1,14 @@ +package com.mogo.realtime.connect; + +/** + * @author congtaowang + * @since 2019-12-31 + *

+ * 消息回调 + */ +public interface IMogoOnMessageListener< T > { + + Class< T > target(); + + void onMsgReceived(T obj); +} diff --git a/modules/mogo-realtime/src/main/java/com/mogo/realtime/connect/MsgBody.java b/modules/mogo-realtime/src/main/java/com/mogo/realtime/connect/MsgBody.java new file mode 100644 index 0000000..e9f895d --- /dev/null +++ b/modules/mogo-realtime/src/main/java/com/mogo/realtime/connect/MsgBody.java @@ -0,0 +1,71 @@ +package com.mogo.realtime.connect; + +/** + * @author congtaowang + * @since 2019-12-31 + *

+ * 描述 + */ +public class MsgBody { + + /** + * 消息类型 + */ + private int mMsgType; + +// /** +// * 服务端分发,业务线 +// */ +// private int mProductLine = MogoCommon.Product.mogoBussiness_VALUE; +// +// /** +// * +// */ +// private int mHeaderType = MogoConnsvr.MsgType.mogoMsgTypeDispatchSvrNoRspReq_VALUE; + + /** + * 是否回执 + */ + private boolean mAck = false; + + /** + * 消息ID + */ + private final long mMsgId = System.currentTimeMillis(); + + /** + * 消息内容 + */ + private Object mContent; + + public MsgBody msgType( int msgType ) { + this.mMsgType = msgType; + return this; + } + + public MsgBody ack( boolean ack ) { + this.mAck = ack; + return this; + } + + public MsgBody content( Object object ) { + this.mContent = object; + return this; + } + + public int getMsgType() { + return mMsgType; + } + + public boolean isAck() { + return mAck; + } + + public long getMsgId() { + return mMsgId; + } + + public Object getContent() { + return mContent; + } +}