From 3d1a2d70fc5b102a86f3366ec74c7fb8a44d3383 Mon Sep 17 00:00:00 2001 From: zhongchao Date: Tue, 26 Jan 2021 18:58:37 +0800 Subject: [PATCH] fix bug --- .idea/gradle.xml | 1 + .../java/com/mogo/cloud/RealTimeActivity.java | 14 +++---- .../realtime/Interface/RealTimeProvider.java | 23 +--------- .../core/SimpleLocationCorrectStrategy.java | 2 +- .../realtime/core/SnapshotUploadInTime.java | 6 +-- .../mogo/realtime/socket/SocketHandler.java | 42 +++++++++++++------ .../RealTimeProviderDelegateManager.java} | 14 +++---- .../{Imp => spi}/RealTimeProviderImp.java | 31 +------------- 8 files changed, 51 insertions(+), 82 deletions(-) rename modules/mogo-realtime/src/main/java/com/mogo/realtime/{Imp/RealTimeDelegateManager.java => spi/RealTimeProviderDelegateManager.java} (64%) rename modules/mogo-realtime/src/main/java/com/mogo/realtime/{Imp => spi}/RealTimeProviderImp.java (56%) diff --git a/.idea/gradle.xml b/.idea/gradle.xml index 54349e6..7abdbfc 100644 --- a/.idea/gradle.xml +++ b/.idea/gradle.xml @@ -23,6 +23,7 @@ diff --git a/app/src/main/java/com/mogo/cloud/RealTimeActivity.java b/app/src/main/java/com/mogo/cloud/RealTimeActivity.java index ca5afa3..f9ab3c4 100644 --- a/app/src/main/java/com/mogo/cloud/RealTimeActivity.java +++ b/app/src/main/java/com/mogo/cloud/RealTimeActivity.java @@ -32,18 +32,18 @@ public class RealTimeActivity extends AppCompatActivity { snapshotStartButton = findViewById(R.id.snapshotStart); snapshotStartButton.setOnClickListener(view -> { if (MoGoAiCloudClient.getInstance().getAiCloudClientConfig().isNeedUploadCoordinatesDurationInTime()) { - SnapshotUploadInTime.getInstance().start(getApplicationContext(), "com.mogo.launcher", new IMogoCloudOnMsgListener() { - @Override - public void onMsgReceived(MogoSnapshotSetData mogoSnapshotSetData) { - - } - }); +// SnapshotUploadInTime.getInstance().start(getApplicationContext(), "com.mogo.launcher", new IMogoCloudOnMsgListener() { +// @Override +// public void onMsgReceived(MogoSnapshotSetData mogoSnapshotSetData) { +// +// } +// }); } }); snapshotStopButton = findViewById(R.id.snapshotStart); snapshotStopButton.setOnClickListener(view -> { - SnapshotUploadInTime.getInstance().stop(); +// SnapshotUploadInTime.getInstance().stop(); }); } 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 95e7367..9f48137 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 @@ -17,30 +17,9 @@ public interface RealTimeProvider { */ List getLastADASRecognizedResult(); - /** - * 云平台数据下发 消息监听 - * - * @param listener 回调 - */ - void registerOnMessageListener(IMogoCloudOnMsgListener listener); - - /** - * 云平台数据下发 取消消息监听 - * - * @param listener 回调 - */ - void unRegisterOnMessageListener(IMogoCloudOnMsgListener listener); - /** * 发送消息,由外部传入 */ List getLocationMsg(); - /** - * 计算两点之间的距离 - * - * @param p1 - * @param p2 - * @return - */ - float calculateLineDistance( MogoLatLng p1, MogoLatLng p2 ) throws Exception; + } diff --git a/modules/mogo-realtime/src/main/java/com/mogo/realtime/core/SimpleLocationCorrectStrategy.java b/modules/mogo-realtime/src/main/java/com/mogo/realtime/core/SimpleLocationCorrectStrategy.java index dcf44b6..110002d 100644 --- a/modules/mogo-realtime/src/main/java/com/mogo/realtime/core/SimpleLocationCorrectStrategy.java +++ b/modules/mogo-realtime/src/main/java/com/mogo/realtime/core/SimpleLocationCorrectStrategy.java @@ -2,7 +2,7 @@ package com.mogo.realtime.core; import android.os.SystemClock; -import com.mogo.realtime.Imp.RealTimeProviderImp; +import com.mogo.realtime.spi.RealTimeProviderImp; import com.mogo.realtime.entity.CloudLocationInfo; import com.mogo.realtime.util.LocationParseUtil; import com.mogo.realtime.util.MogoLatLng; diff --git a/modules/mogo-realtime/src/main/java/com/mogo/realtime/core/SnapshotUploadInTime.java b/modules/mogo-realtime/src/main/java/com/mogo/realtime/core/SnapshotUploadInTime.java index ad850f9..e648d68 100644 --- a/modules/mogo-realtime/src/main/java/com/mogo/realtime/core/SnapshotUploadInTime.java +++ b/modules/mogo-realtime/src/main/java/com/mogo/realtime/core/SnapshotUploadInTime.java @@ -3,7 +3,7 @@ package com.mogo.realtime.core; import android.content.Context; import com.mogo.cloud.passport.MoGoAiCloudClient; -import com.mogo.realtime.Imp.RealTimeProviderImp; +import com.mogo.realtime.spi.RealTimeProviderImp; import com.mogo.realtime.location.MogoRTKLocation; import com.mogo.realtime.socket.IMogoCloudOnMsgListener; import com.mogo.realtime.socket.SocketHandler; @@ -37,13 +37,13 @@ public class SnapshotUploadInTime implements UploadInTimeHandler.IUploadInTimeLi sInstance = null; } - public void start(Context context, String appId, IMogoCloudOnMsgListener listener) { + public void start(Context context, String appId) { //开启内部定位 if (!isUseExternalLocation) { MogoRTKLocation.getInstance().init(); } //开启长链服务 - SocketHandler.getInstance().initSocket(context, appId, listener); + SocketHandler.getInstance().initSocket(context, appId); SocketHandler.getInstance().resetUploadDelayListener(resetTime -> UploadInTimeHandler.getInstance().resetUploadDelay(resetTime) ); diff --git a/modules/mogo-realtime/src/main/java/com/mogo/realtime/socket/SocketHandler.java b/modules/mogo-realtime/src/main/java/com/mogo/realtime/socket/SocketHandler.java index 9f0c032..81fabc5 100644 --- a/modules/mogo-realtime/src/main/java/com/mogo/realtime/socket/SocketHandler.java +++ b/modules/mogo-realtime/src/main/java/com/mogo/realtime/socket/SocketHandler.java @@ -9,13 +9,13 @@ import com.mogo.cloud.socket.IMogoCloudSocketOnMessageListener; import com.mogo.cloud.socket.MsgBody; import com.mogo.cloud.socket.SocketManager; import com.mogo.cloud.socket.WebSocketData; -import com.mogo.realtime.Imp.RealTimeProviderImp; import com.mogo.realtime.core.SimpleLocationCorrectStrategy; import com.mogo.realtime.entity.ADASRecognizedResult; import com.mogo.realtime.entity.CloudLocationInfo; import com.mogo.realtime.entity.LocationResult; import com.mogo.realtime.entity.MogoSnapshotSetData; import com.mogo.realtime.entity.OnePerSecondSendContent; +import com.mogo.realtime.spi.RealTimeProviderImp; import com.mogo.realtime.util.MortonCode; import com.mogo.utils.network.utils.GsonUtil; @@ -51,20 +51,32 @@ public class SocketHandler { return mInstance; } - /* - * useInner: 是否注册自己内部的监听 - * */ - public void initSocket(Context context, String appId, IMogoCloudOnMsgListener listener) { + /** + * 初始化长连接服务 + * + * @param context 上下文 + * @param appId 外部传入 + */ + public void initSocket(Context context, String appId) { SocketManager.getInstance().init(context, appId); SocketManager.getInstance().registerOnMessageListener(0x040002, onMessageListener); SocketManager.getInstance().registerOnMessageListener(0x040003, onMessageListener); - if (listener != null && !onMsgListenerList.contains(listener)) { - onMsgListenerList.add(listener); + } + + public void registerOnMsgListener(IMogoCloudOnMsgListener onMsgListener) { + if (onMsgListener != null && !onMsgListenerList.contains(onMsgListener)) { + onMsgListenerList.add(onMsgListener); + } + } + + public void unRegisterOnMsgListener(IMogoCloudOnMsgListener onMsgListener) { + if (onMsgListener != null) { + onMsgListenerList.remove(onMsgListener); } } public void resetUploadDelayListener(IMogoCloudOnAckListener onAckListener) { - if(onAckListener != null){ + if (onAckListener != null) { onAckListenerList.add(onAckListener); } } @@ -85,8 +97,10 @@ public class SocketHandler { if (webSocketData.getUpUtcTime() > 0) { long nextDelay = webSocketData.getUpUtcTime() - serverTime; if (!MoGoAiCloudClient.getInstance().getAiCloudClientConfig().getIsUseExternalLocation()) { - for (IMogoCloudOnAckListener ackListener:onAckListenerList) { - ackListener.onAck(nextDelay); + for (IMogoCloudOnAckListener ackListener : onAckListenerList) { + if (ackListener != null) { + ackListener.onAck(nextDelay); + } } } } @@ -99,15 +113,17 @@ public class SocketHandler { return; } for (IMogoCloudOnMsgListener listener : onMsgListenerList) { - listener.onMsgReceived(data); + if (listener != null) { + listener.onMsgReceived(data); + } } } } }; public void sendMsg(List cloudLocationInfo) { - if(cloudLocationInfo == null){ - Log.e(TAG,"请检查传入数组对象为Null"); + if (cloudLocationInfo == null) { + Log.e(TAG, "请检查传入数组对象为Null"); return; } CloudLocationInfo lastInfo = null; diff --git a/modules/mogo-realtime/src/main/java/com/mogo/realtime/Imp/RealTimeDelegateManager.java b/modules/mogo-realtime/src/main/java/com/mogo/realtime/spi/RealTimeProviderDelegateManager.java similarity index 64% rename from modules/mogo-realtime/src/main/java/com/mogo/realtime/Imp/RealTimeDelegateManager.java rename to modules/mogo-realtime/src/main/java/com/mogo/realtime/spi/RealTimeProviderDelegateManager.java index 6c1739e..d831371 100644 --- a/modules/mogo-realtime/src/main/java/com/mogo/realtime/Imp/RealTimeDelegateManager.java +++ b/modules/mogo-realtime/src/main/java/com/mogo/realtime/spi/RealTimeProviderDelegateManager.java @@ -1,4 +1,4 @@ -package com.mogo.realtime.Imp; +package com.mogo.realtime.spi; import com.elegant.spi.AbstractDelegateManager; @@ -8,22 +8,22 @@ import com.mogo.realtime.Interface.RealTimeProvider; /** * 提供RealTime SPI接口实例对象管理类 */ -class RealTimeDelegateManager extends AbstractDelegateManager { - private static RealTimeDelegateManager sInstance = null; +class RealTimeProviderDelegateManager extends AbstractDelegateManager { + private static RealTimeProviderDelegateManager sInstance = null; private RealTimeProvider mRealTimeProvider = null; - public static RealTimeDelegateManager getInstance() { + public static RealTimeProviderDelegateManager getInstance() { if (sInstance == null) { - synchronized (RealTimeDelegateManager.class) { + synchronized (RealTimeProviderDelegateManager.class) { if (sInstance == null) { - sInstance = new RealTimeDelegateManager(); + sInstance = new RealTimeProviderDelegateManager(); } } } return sInstance; } - public RealTimeDelegateManager() { + public RealTimeProviderDelegateManager() { loadDelegates(MoGoAiCloudClient.getInstance().getContext(), RealTimeProvider.class, new DelegateListener() { @Override public void onDelegate(String unit, RealTimeProvider p) { 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/spi/RealTimeProviderImp.java similarity index 56% rename from modules/mogo-realtime/src/main/java/com/mogo/realtime/Imp/RealTimeProviderImp.java rename to modules/mogo-realtime/src/main/java/com/mogo/realtime/spi/RealTimeProviderImp.java index b0b4b61..355528f 100644 --- a/modules/mogo-realtime/src/main/java/com/mogo/realtime/Imp/RealTimeProviderImp.java +++ b/modules/mogo-realtime/src/main/java/com/mogo/realtime/spi/RealTimeProviderImp.java @@ -1,10 +1,8 @@ -package com.mogo.realtime.Imp; +package com.mogo.realtime.spi; import com.mogo.realtime.Interface.RealTimeProvider; import com.mogo.realtime.entity.ADASRecognizedResult; import com.mogo.realtime.entity.CloudLocationInfo; -import com.mogo.realtime.socket.IMogoCloudOnMsgListener; -import com.mogo.realtime.util.MogoLatLng; import java.util.List; @@ -28,7 +26,7 @@ public class RealTimeProviderImp implements RealTimeProvider { } public RealTimeProviderImp() { - mDelegate = (RealTimeProvider) RealTimeDelegateManager.getInstance(); + mDelegate = (RealTimeProvider) RealTimeProviderDelegateManager.getInstance(); } @Override @@ -39,23 +37,6 @@ public class RealTimeProviderImp implements RealTimeProvider { return null; } - @Override - public void registerOnMessageListener(IMogoCloudOnMsgListener listener) { - if (mDelegate != null) { - mDelegate.registerOnMessageListener(listener); - } - } - - @Override - public void unRegisterOnMessageListener(IMogoCloudOnMsgListener listener) { - if (listener == null) { - return; - } - if (mDelegate != null) { - mDelegate.unRegisterOnMessageListener(listener); - } - } - @Override public List getLocationMsg() { if (mDelegate != null) { @@ -64,12 +45,4 @@ public class RealTimeProviderImp implements RealTimeProvider { return null; } - @Override - public float calculateLineDistance(MogoLatLng p1, MogoLatLng p2) throws Exception { - if (mDelegate != null) { - mDelegate.calculateLineDistance(p1, p2); - } - return 0; - } - }