[add] v2x数据改变->更新main状态 接口添加
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
package com.mogo.service.impl;
|
||||
|
||||
import android.content.Context;
|
||||
import android.util.Log;
|
||||
|
||||
import com.alibaba.android.arouter.facade.annotation.Route;
|
||||
import com.alibaba.android.arouter.facade.template.IProvider;
|
||||
@@ -46,6 +47,7 @@ import com.mogo.service.strategy.IMogoOnlineCarListPanelProvider;
|
||||
import com.mogo.service.strategy.IMogoRefreshStrategyController;
|
||||
import com.mogo.service.share.IMogoTanluProvider;
|
||||
import com.mogo.service.share.IMogoTanluUiProvider;
|
||||
import com.mogo.service.v2x.IV2XProvider;
|
||||
import com.mogo.service.windowview.IMogoTopViewManager;
|
||||
import com.mogo.service.windowview.IMogoWindowManager;
|
||||
import com.mogo.skin.support.IMogoSkinSupportInstaller;
|
||||
@@ -59,7 +61,7 @@ import com.mogo.utils.logger.Logger;
|
||||
* 描述
|
||||
*/
|
||||
|
||||
@Route( path = MogoServicePaths.PATH_SERVICE_APIS )
|
||||
@Route(path = MogoServicePaths.PATH_SERVICE_APIS)
|
||||
public class MogoServiceApis implements IMogoServiceApis {
|
||||
|
||||
private static final String TAG = "MogoServiceApis";
|
||||
@@ -72,18 +74,18 @@ public class MogoServiceApis implements IMogoServiceApis {
|
||||
}
|
||||
|
||||
@Override
|
||||
public IMogoSocketManager getSocketManagerApi( Context context ) {
|
||||
return getApiInstance( IMogoSocketManager.class, MogoServicePaths.PATH_SOCKET_MANAGER );
|
||||
public IMogoSocketManager getSocketManagerApi(Context context) {
|
||||
return getApiInstance(IMogoSocketManager.class, MogoServicePaths.PATH_SOCKET_MANAGER);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IMogoWebSocketManager getWebSocketManagerApi(Context context) {
|
||||
return getApiInstance( IMogoWebSocketManager.class, MogoServicePaths.PATH_WEB_SOCKET_MANAGER );
|
||||
return getApiInstance(IMogoWebSocketManager.class, MogoServicePaths.PATH_WEB_SOCKET_MANAGER);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IMogoFragmentManager getFragmentManagerApi() {
|
||||
return SingletonsHolder.get( IMogoFragmentManager.class );
|
||||
return SingletonsHolder.get(IMogoFragmentManager.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -98,163 +100,168 @@ public class MogoServiceApis implements IMogoServiceApis {
|
||||
|
||||
@Override
|
||||
public IMogoMapService getMapServiceApi() {
|
||||
return SingletonsHolder.get( IMogoMapService.class );
|
||||
return SingletonsHolder.get(IMogoMapService.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IMogoNetwork getNetworkApi() {
|
||||
return SingletonsHolder.get( IMogoNetwork.class );
|
||||
return SingletonsHolder.get(IMogoNetwork.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IMogoMsgCenter getMsgCenterApi() {
|
||||
return SingletonsHolder.get( IMogoMsgCenter.class );
|
||||
return SingletonsHolder.get(IMogoMsgCenter.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IMogoStatusManager getStatusManagerApi() {
|
||||
return SingletonsHolder.get( IMogoStatusManager.class );
|
||||
return SingletonsHolder.get(IMogoStatusManager.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void init( Context context ) {
|
||||
public void init(Context context) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
@Deprecated
|
||||
public synchronized IMogoCardManager getCardManagerApi() {
|
||||
return getApiInstance( IMogoCardManager.class, MogoServicePaths.PATH_CARD_MANAGER );
|
||||
return getApiInstance(IMogoCardManager.class, MogoServicePaths.PATH_CARD_MANAGER);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IMogoDataManager getDataManagerApi() {
|
||||
return getApiInstance( IMogoDataManager.class, MogoServicePaths.PATH_DATA_MANAGER );
|
||||
return getApiInstance(IMogoDataManager.class, MogoServicePaths.PATH_DATA_MANAGER);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IMogoRegisterCenter getRegisterCenterApi() {
|
||||
return getApiInstance( IMogoRegisterCenter.class, MogoServicePaths.PATH_REGISTER_CENTER );
|
||||
return getApiInstance(IMogoRegisterCenter.class, MogoServicePaths.PATH_REGISTER_CENTER);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IMogoSearchManager getSearchManagerApi() {
|
||||
return getApiInstance( IMogoSearchManager.class, MogoServicePaths.PATH_SEARCH_MANAGER );
|
||||
return getApiInstance(IMogoSearchManager.class, MogoServicePaths.PATH_SEARCH_MANAGER);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IMogoSettingManager getSettingManagerApi() {
|
||||
return getApiInstance( IMogoSettingManager.class, MogoServicePaths.PATH_SETTING_MANAGER );
|
||||
return getApiInstance(IMogoSettingManager.class, MogoServicePaths.PATH_SETTING_MANAGER);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IMogoWindowManager getWindowManagerApi() {
|
||||
return getApiInstance( IMogoWindowManager.class, MogoServicePaths.PATH_WINDOW_MANAGER );
|
||||
return getApiInstance(IMogoWindowManager.class, MogoServicePaths.PATH_WINDOW_MANAGER);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IMogoADASController getAdasControllerApi() {
|
||||
return getApiInstance( IMogoADASController.class, MogoServicePaths.PATH_ADAS_CONTROLLER );
|
||||
return getApiInstance(IMogoADASController.class, MogoServicePaths.PATH_ADAS_CONTROLLER);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IMogoActionManager getActionManagerApi() {
|
||||
return getApiInstance( IMogoActionManager.class, MogoServicePaths.PATH_ACTION_APIS );
|
||||
return getApiInstance(IMogoActionManager.class, MogoServicePaths.PATH_ACTION_APIS);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IMogoRefreshStrategyController getRefreshStrategyControllerApi() {
|
||||
return getApiInstance( IMogoRefreshStrategyController.class, MogoServicePaths.PATH_REFRESH_STRATEGY_API );
|
||||
return getApiInstance(IMogoRefreshStrategyController.class, MogoServicePaths.PATH_REFRESH_STRATEGY_API);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IMogoAddressManager getAddressManagerApi() {
|
||||
return getApiInstance( IMogoAddressManager.class, MogoServicePaths.PATH_ADDRESS_MANAGER );
|
||||
return getApiInstance(IMogoAddressManager.class, MogoServicePaths.PATH_ADDRESS_MANAGER);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IMogoLauncher getLauncherApi() {
|
||||
return getApiInstance( IMogoLauncher.class, MogoServicePaths.PATH_LAUNCHER_API );
|
||||
return getApiInstance(IMogoLauncher.class, MogoServicePaths.PATH_LAUNCHER_API);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IMogoEntranceButtonController getEntranceButtonController() {
|
||||
return getApiInstance( IMogoEntranceButtonController.class, MogoServicePaths.PATH_ENTRANCE_BUTTON_API );
|
||||
return getApiInstance(IMogoEntranceButtonController.class, MogoServicePaths.PATH_ENTRANCE_BUTTON_API);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IMogoTopViewManager getTopViewManager() {
|
||||
return getApiInstance( IMogoTopViewManager.class, MogoServicePaths.PATH_EXTENSIONS_TOP_VIEW_MANAGER );
|
||||
return getApiInstance(IMogoTopViewManager.class, MogoServicePaths.PATH_EXTENSIONS_TOP_VIEW_MANAGER);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IMogoMarkerService getMarkerService() {
|
||||
return getApiInstance( IMogoMarkerService.class, MogoServicePaths.PATH_MARKER_SERVICE );
|
||||
return getApiInstance(IMogoMarkerService.class, MogoServicePaths.PATH_MARKER_SERVICE);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IMogoShareManager getShareManager() {
|
||||
return getApiInstance( IMogoShareManager.class, MogoServicePaths.PATH_SHARE );
|
||||
return getApiInstance(IMogoShareManager.class, MogoServicePaths.PATH_SHARE);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IEventPanelProvider getEventPanelManager() {
|
||||
return getApiInstance( IEventPanelProvider.class, MogoServicePaths.PATH_EVENT_PANEL );
|
||||
return getApiInstance(IEventPanelProvider.class, MogoServicePaths.PATH_EVENT_PANEL);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IMogoLocationInfoService getLocationInfoApi() {
|
||||
return getApiInstance( IMogoLocationInfoService.class, MogoServicePaths.PATH_LOCATION_INFO );
|
||||
return getApiInstance(IMogoLocationInfoService.class, MogoServicePaths.PATH_LOCATION_INFO);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IMogoPassportManager getPassportManagerApi() {
|
||||
return getApiInstance( IMogoPassportManager.class, MogoServicePaths.PATH_PASSPORT );
|
||||
return getApiInstance(IMogoPassportManager.class, MogoServicePaths.PATH_PASSPORT);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IMogoAuthManager getAuthManagerApi() {
|
||||
return getApiInstance( IMogoAuthManager.class, MogoServicePaths.PATH_AGREEMENT );
|
||||
return getApiInstance(IMogoAuthManager.class, MogoServicePaths.PATH_AGREEMENT);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IMogoTanluProvider getTanluApi() {
|
||||
return getApiInstance( IMogoTanluProvider.class, MogoServicePaths.PATH_TANLU_API );
|
||||
return getApiInstance(IMogoTanluProvider.class, MogoServicePaths.PATH_TANLU_API);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IMogoMonitorProvider getMogoMonitorApi() {
|
||||
return getApiInstance( IMogoMonitorProvider.class, MogoServicePaths.PATH_MOGO_MONITOR );
|
||||
return getApiInstance(IMogoMonitorProvider.class, MogoServicePaths.PATH_MOGO_MONITOR);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IMogoTanluUiProvider getTanluUiApi() {
|
||||
return getApiInstance( IMogoTanluUiProvider.class, MogoServicePaths.PATH_TANLU_UI_API );
|
||||
return getApiInstance(IMogoTanluUiProvider.class, MogoServicePaths.PATH_TANLU_UI_API);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IMogoSkinSupportInstaller getSkinSupportInstallerApi() {
|
||||
return getApiInstance( IMogoSkinSupportInstaller.class, SkinSupportInstallerConstants.PATH );
|
||||
return getApiInstance(IMogoSkinSupportInstaller.class, SkinSupportInstallerConstants.PATH);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IMogoCrashWarnProvider getCrashWarnProvider() {
|
||||
return getApiInstance( IMogoCrashWarnProvider.class, MogoServicePaths.PATH_CRASH_WARNING );
|
||||
return getApiInstance(IMogoCrashWarnProvider.class, MogoServicePaths.PATH_CRASH_WARNING);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IMogoOnlineCarListPanelProvider getOnlineCarPanelApi() {
|
||||
return getApiInstance( IMogoOnlineCarListPanelProvider.class, MogoServicePaths.PATH_ONLINE_CAR_PANEL );
|
||||
return getApiInstance(IMogoOnlineCarListPanelProvider.class, MogoServicePaths.PATH_ONLINE_CAR_PANEL);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IMogoMapFrameController getMapFrameControllerApi() {
|
||||
return getApiInstance( IMogoMapFrameController.class, MogoServicePaths.PATH_MAP_FRAME_CONTROLLER );
|
||||
return getApiInstance(IMogoMapFrameController.class, MogoServicePaths.PATH_MAP_FRAME_CONTROLLER);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IMogoSmallMapProvider getSmallMapProviderApi() {
|
||||
return getApiInstance( IMogoSmallMapProvider.class, MogoServicePaths.PATH_SMALL_MAP );
|
||||
return getApiInstance(IMogoSmallMapProvider.class, MogoServicePaths.PATH_SMALL_MAP);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IV2XProvider getV2XListenerManager() {
|
||||
return getApiInstance(IV2XProvider.class, MogoServicePaths.PATH_V2X_FRONT_CRASH_WARNING);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -262,19 +269,19 @@ public class MogoServiceApis implements IMogoServiceApis {
|
||||
return getApiInstance(IMogoTrafficUploadProvider.class, MogoServicePaths.PATH_TRAFFIC_UPLOAD);
|
||||
}
|
||||
|
||||
private static < T extends IProvider > T getApiInstance( Class< T > clazz, String path ) {
|
||||
T inst = SingletonsHolder.get( clazz );
|
||||
if ( inst == null ) {
|
||||
synchronized ( sLock ) {
|
||||
inst = SingletonsHolder.get( clazz );
|
||||
if ( inst != null ) {
|
||||
private static <T extends IProvider> T getApiInstance(Class<T> clazz, String path) {
|
||||
T inst = SingletonsHolder.get(clazz);
|
||||
if (inst == null) {
|
||||
synchronized (sLock) {
|
||||
inst = SingletonsHolder.get(clazz);
|
||||
if (inst != null) {
|
||||
return inst;
|
||||
}
|
||||
T newInst = ( T ) ARouter.getInstance().build( path ).navigation();
|
||||
T newInst = (T) ARouter.getInstance().build(path).navigation();
|
||||
try {
|
||||
SingletonsHolder.registerApi( clazz, newInst );
|
||||
Logger.d( TAG, "keep IProvider instance to SingletonHolder: path = %s", path );
|
||||
} catch ( Exception e ) {
|
||||
SingletonsHolder.registerApi(clazz, newInst);
|
||||
Logger.d(TAG, "keep IProvider instance to SingletonHolder: path = %s", path);
|
||||
} catch (Exception e) {
|
||||
}
|
||||
return newInst;
|
||||
}
|
||||
|
||||
@@ -9,11 +9,13 @@ import com.mogo.service.impl.map.MogoMapService;
|
||||
import com.mogo.service.impl.network.MogoNetWorkService;
|
||||
import com.mogo.service.impl.statusmanager.MogoMsgCenter;
|
||||
import com.mogo.service.impl.statusmanager.MogoStatusManager;
|
||||
import com.mogo.service.impl.v2x.V2XManager;
|
||||
import com.mogo.service.map.IMogoMapService;
|
||||
import com.mogo.service.network.IMogoNetwork;
|
||||
import com.mogo.service.statusmanager.IMogoMsgCenter;
|
||||
import com.mogo.service.statusmanager.IMogoStatusManager;
|
||||
import com.mogo.service.strategy.IMogoRefreshStrategyController;
|
||||
import com.mogo.service.v2x.IV2XProvider;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
@@ -28,26 +30,27 @@ public class SingletonsHolder {
|
||||
|
||||
private static final String TAG = "SingletonsHolder";
|
||||
|
||||
private static final Map< Class, Object > sSingletons = new ConcurrentHashMap<>();
|
||||
private static final Map<Class, Object> sSingletons = new ConcurrentHashMap<>();
|
||||
|
||||
static {
|
||||
sSingletons.put( IMogoFragmentManager.class, new MogoFragmentManager() );
|
||||
sSingletons.put( IMogoMapService.class, new MogoMapService() );
|
||||
sSingletons.put( IMogoNetwork.class, new MogoNetWorkService() );
|
||||
sSingletons.put( IMogoMsgCenter.class, new MogoMsgCenter() );
|
||||
sSingletons.put( IMogoStatusManager.class, new MogoStatusManager() );
|
||||
sSingletons.put( IMogoDataManager.class, ARouter.getInstance().navigation( IMogoDataManager.class ) );
|
||||
sSingletons.put( IMogoRefreshStrategyController.class, ARouter.getInstance().navigation( IMogoRefreshStrategyController.class ) );
|
||||
sSingletons.put(IMogoFragmentManager.class, new MogoFragmentManager());
|
||||
sSingletons.put(IMogoMapService.class, new MogoMapService());
|
||||
sSingletons.put(IMogoNetwork.class, new MogoNetWorkService());
|
||||
sSingletons.put(IMogoMsgCenter.class, new MogoMsgCenter());
|
||||
sSingletons.put(IMogoStatusManager.class, new MogoStatusManager());
|
||||
sSingletons.put(IMogoDataManager.class, ARouter.getInstance().navigation(IMogoDataManager.class));
|
||||
sSingletons.put(IMogoRefreshStrategyController.class, ARouter.getInstance().navigation(IMogoRefreshStrategyController.class));
|
||||
sSingletons.put(IV2XProvider.class, new V2XManager());
|
||||
}
|
||||
|
||||
public static < T > T get( Class< T > clazz ) {
|
||||
return ( T ) sSingletons.get( clazz );
|
||||
public static <T> T get(Class<T> clazz) {
|
||||
return (T) sSingletons.get(clazz);
|
||||
}
|
||||
|
||||
public static < T extends IProvider > void registerApi( Class< ? extends IProvider > api, T impl ) throws Exception {
|
||||
if ( api == null || impl == null ) {
|
||||
public static <T extends IProvider> void registerApi(Class<? extends IProvider> api, T impl) throws Exception {
|
||||
if (api == null || impl == null) {
|
||||
return;
|
||||
}
|
||||
sSingletons.put( api, impl );
|
||||
sSingletons.put(api, impl);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,66 @@
|
||||
package com.mogo.service.impl.v2x;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.util.Log;
|
||||
|
||||
import com.alibaba.android.arouter.facade.annotation.Route;
|
||||
import com.mogo.service.MogoServicePaths;
|
||||
import com.mogo.service.intent.IMogoIntentListener;
|
||||
import com.mogo.service.v2x.IV2XListener;
|
||||
import com.mogo.service.v2x.IV2XProvider;
|
||||
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.concurrent.CopyOnWriteArrayList;
|
||||
|
||||
/**
|
||||
* @author liujing
|
||||
* @description 描述
|
||||
* @since: 2021/3/24
|
||||
*/
|
||||
@Route(path = MogoServicePaths.PATH_V2X_FRONT_CRASH_WARNING)
|
||||
public class V2XManager implements IV2XProvider {
|
||||
private Map<String, CopyOnWriteArrayList<IV2XListener>> mListeners = new ConcurrentHashMap<>();
|
||||
|
||||
@Override
|
||||
public void registerIntentListener(String intent, IV2XListener listener) {
|
||||
if (listener == null || intent == null) {
|
||||
Log.d("V2XManager", "listener/intent 为null");
|
||||
return;
|
||||
}
|
||||
Log.d("V2XManager", "intent=="+intent+"/listener=="+listener);
|
||||
if (!mListeners.containsKey(intent)) {
|
||||
mListeners.put(intent, new CopyOnWriteArrayList<>());
|
||||
}
|
||||
mListeners.get(intent).add(listener);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void unregisterIntentListener(String intent, IV2XListener listener) {
|
||||
if (mListeners.containsKey(intent)) {
|
||||
mListeners.get(intent).remove(listener);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void warningChangedWithType(int type, String command) {
|
||||
List<IV2XListener> listeners = mListeners.get(command);
|
||||
if (listeners != null && !listeners.isEmpty()) {
|
||||
Iterator<IV2XListener> iterator = listeners.iterator();
|
||||
while (iterator.hasNext()) {
|
||||
IV2XListener listener = iterator.next();
|
||||
if (listener != null) {
|
||||
listener.warningChangedWithType(type);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void init(Context context) {
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user