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;
- }
-
}