fix bug
This commit is contained in:
1
.idea/gradle.xml
generated
1
.idea/gradle.xml
generated
@@ -23,6 +23,7 @@
|
||||
</set>
|
||||
</option>
|
||||
<option name="resolveModulePerSourceSet" value="false" />
|
||||
<option name="useQualifiedModuleNames" value="true" />
|
||||
</GradleProjectSettings>
|
||||
</option>
|
||||
</component>
|
||||
|
||||
@@ -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();
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
@@ -17,30 +17,9 @@ public interface RealTimeProvider {
|
||||
*/
|
||||
List<ADASRecognizedResult> getLastADASRecognizedResult();
|
||||
|
||||
/**
|
||||
* 云平台数据下发 消息监听
|
||||
*
|
||||
* @param listener 回调
|
||||
*/
|
||||
void registerOnMessageListener(IMogoCloudOnMsgListener listener);
|
||||
|
||||
/**
|
||||
* 云平台数据下发 取消消息监听
|
||||
*
|
||||
* @param listener 回调
|
||||
*/
|
||||
void unRegisterOnMessageListener(IMogoCloudOnMsgListener listener);
|
||||
|
||||
/**
|
||||
* 发送消息,由外部传入
|
||||
*/
|
||||
List<CloudLocationInfo> getLocationMsg();
|
||||
/**
|
||||
* 计算两点之间的距离
|
||||
*
|
||||
* @param p1
|
||||
* @param p2
|
||||
* @return
|
||||
*/
|
||||
float calculateLineDistance( MogoLatLng p1, MogoLatLng p2 ) throws Exception;
|
||||
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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)
|
||||
);
|
||||
|
||||
@@ -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> cloudLocationInfo) {
|
||||
if(cloudLocationInfo == null){
|
||||
Log.e(TAG,"请检查传入数组对象为Null");
|
||||
if (cloudLocationInfo == null) {
|
||||
Log.e(TAG, "请检查传入数组对象为Null");
|
||||
return;
|
||||
}
|
||||
CloudLocationInfo lastInfo = null;
|
||||
|
||||
@@ -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<RealTimeProvider> {
|
||||
private static RealTimeDelegateManager sInstance = null;
|
||||
class RealTimeProviderDelegateManager extends AbstractDelegateManager<RealTimeProvider> {
|
||||
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<RealTimeProvider>() {
|
||||
@Override
|
||||
public void onDelegate(String unit, RealTimeProvider p) {
|
||||
@@ -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<CloudLocationInfo> 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;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user