fix bug
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
package com.mogo.realtime.spi;
|
||||
|
||||
|
||||
import com.elegant.spi.AbstractDelegateManager;
|
||||
import com.mogo.cloud.passport.MoGoAiCloudClient;
|
||||
import com.mogo.realtime.Interface.RealTimeProvider;
|
||||
|
||||
/**
|
||||
* 提供RealTime SPI接口实例对象管理类
|
||||
*/
|
||||
class RealTimeProviderDelegateManager extends AbstractDelegateManager<RealTimeProvider> {
|
||||
private static RealTimeProviderDelegateManager sInstance = null;
|
||||
private RealTimeProvider mRealTimeProvider = null;
|
||||
|
||||
public static RealTimeProviderDelegateManager getInstance() {
|
||||
if (sInstance == null) {
|
||||
synchronized (RealTimeProviderDelegateManager.class) {
|
||||
if (sInstance == null) {
|
||||
sInstance = new RealTimeProviderDelegateManager();
|
||||
}
|
||||
}
|
||||
}
|
||||
return sInstance;
|
||||
}
|
||||
|
||||
public RealTimeProviderDelegateManager() {
|
||||
loadDelegates(MoGoAiCloudClient.getInstance().getContext(), RealTimeProvider.class, new DelegateListener<RealTimeProvider>() {
|
||||
@Override
|
||||
public void onDelegate(String unit, RealTimeProvider p) {
|
||||
mRealTimeProvider = p;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public RealTimeProvider getRealTimeProvider(){
|
||||
return mRealTimeProvider;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
package com.mogo.realtime.spi;
|
||||
|
||||
import com.mogo.realtime.Interface.RealTimeProvider;
|
||||
import com.mogo.realtime.entity.ADASRecognizedResult;
|
||||
import com.mogo.realtime.entity.CloudLocationInfo;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* RealTime Provider SPI 单例对象
|
||||
*/
|
||||
public class RealTimeProviderImp implements RealTimeProvider {
|
||||
|
||||
private static volatile RealTimeProviderImp sInstance = null;
|
||||
private final RealTimeProvider mDelegate;
|
||||
|
||||
public static RealTimeProviderImp getInstance() {
|
||||
if (sInstance == null) {
|
||||
synchronized (RealTimeProviderImp.class) {
|
||||
if (sInstance == null) {
|
||||
sInstance = new RealTimeProviderImp();
|
||||
}
|
||||
}
|
||||
}
|
||||
return sInstance;
|
||||
}
|
||||
|
||||
public RealTimeProviderImp() {
|
||||
mDelegate = (RealTimeProvider) RealTimeProviderDelegateManager.getInstance();
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ADASRecognizedResult> getLastADASRecognizedResult() {
|
||||
if (mDelegate != null) {
|
||||
return mDelegate.getLastADASRecognizedResult();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<CloudLocationInfo> getLocationMsg() {
|
||||
if (mDelegate != null) {
|
||||
mDelegate.getLocationMsg();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user