切换地图的逻辑修改

This commit is contained in:
wangcongtao
2020-10-25 11:08:46 +08:00
parent aafd2cd5db
commit 771e5eed13
44 changed files with 740 additions and 231 deletions

View File

@@ -24,6 +24,7 @@ import com.mogo.service.impl.singleton.SingletonsHolder;
import com.mogo.service.intent.IMogoIntentManager;
import com.mogo.service.launcher.IMogoLauncher;
import com.mogo.service.locationinfo.IMogoLocationInfoService;
import com.mogo.service.map.IMogoMapFrameController;
import com.mogo.service.map.IMogoMapService;
import com.mogo.service.module.IMogoActionManager;
import com.mogo.service.module.IMogoAddressManager;
@@ -210,32 +211,37 @@ public class MogoServiceApis implements IMogoServiceApis {
@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);
public IMogoTanluUiProvider getTanluUiApi() {
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 );
}
private static < T extends IProvider > T getApiInstance( Class< T > clazz, String path ) {

View File

@@ -0,0 +1,19 @@
package com.mogo.service.impl.adas;
public
/**
* @author congtaowang
* @since 2020/10/22
*
* 描述
*/
class AdasControlCommandParameter {
public String action;
public Object result;
public AdasControlCommandParameter( String action, Object result ) {
this.action = action;
this.result = result;
}
}

View File

@@ -1,10 +1,9 @@
package com.mogo.service.impl.adas;
import android.app.ActivityManager;
import android.app.Application;
import android.content.Context;
import android.content.Intent;
import android.content.pm.ApplicationInfo;
import android.text.TextUtils;
import android.util.Log;
import com.alibaba.android.arouter.facade.annotation.Route;
@@ -13,10 +12,13 @@ import com.mogo.map.uicontroller.EnumMapUI;
import com.mogo.module.common.utils.CarSeries;
import com.mogo.service.MogoServicePaths;
import com.mogo.service.adas.IMogoADASController;
import com.mogo.service.adas.IMogoAdasDataCallback;
import com.mogo.service.adas.RemoteControlAutoPilotParameters;
import com.mogo.service.impl.singleton.SingletonsHolder;
import com.mogo.service.statusmanager.IMogoStatusManager;
import com.mogo.utils.UiThreadHandler;
import com.mogo.utils.logger.Logger;
import com.mogo.utils.network.utils.GsonUtil;
import com.mogo.utils.storage.SharedPrefsMgr;
import com.zhidao.adasconfig.api.AdasConfigApiController;
import com.zhidao.adasconfig.common.config.EnumCarChatIncognitoMode;
@@ -24,9 +26,16 @@ import com.zhidao.adasconfig.common.config.EnumCarHeading;
import com.zhidao.adasconfig.common.config.EnumSkinStyle;
import com.zhidao.autopilot.support.api.AutopilotServiceManage;
import com.zhidao.autopilot.support.api.IAutopilotServiceStatusListener;
import com.zhidao.autopilot.support.api.IAutopolitDataCallBack;
import com.zhidao.support.adas.high.OnAdasListener;
import com.zhidao.support.adas.high.bean.RectInfo;
import com.zhidao.support.adas.high.bean.WarnMessageInfo;
import com.zhidao.support.adas.high.msg.MyMessageFactory;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.List;
import static com.mogo.module.common.utils.SPConst.getSpGuide;
@@ -56,6 +65,50 @@ public class MogoADASController implements IMogoADASController {
private boolean mIsReleased = true;
private List< IMogoAdasDataCallback > mAdasDataCallbackList = new ArrayList<>();
private OnAdasListener mOnAdasListener = new OnAdasListenerAdapter() {
@Override
public void onRectData( RectInfo rectInfo ) {
// 物体识别返回
Logger.d( TAG, "onRectData = %s", rectInfo.toString() );
}
@Override
public void onWarnMessage( WarnMessageInfo warnMessageInfo ) {
// 警告消息
Logger.d( TAG, "onWarnMessage = %s", warnMessageInfo.toString() );
}
};
private MyMessageFactory mAdasMessageFactory;
private IAutopolitDataCallBack mAutoPilotDataCallBack = new IAutopolitDataCallBack() {
@Override
public void sendMsg( String msg ) {
Logger.d( TAG, "收到adas数据回调: " + msg );
for ( IMogoAdasDataCallback callback : mAdasDataCallbackList ) {
callback.onAdasDataCallback( msg );
}
}
@Override
public void cameraEyeDetectResult( String detectResult ) {
try {
JSONObject jsonObjectWs = new JSONObject( detectResult );
String action = jsonObjectWs.optString( "action" );
if ( TextUtils.isEmpty( action ) ) {
Logger.w( TAG, "--->action is null" );
return;
}
mAdasMessageFactory.createMessage( action ).handlerMsg( GsonUtil.getGson(), mOnAdasListener, detectResult );
} catch ( JSONException e ) {
e.printStackTrace();
}
}
};
@Override
public void openADAS() {
showADAS();
@@ -89,7 +142,7 @@ public class MogoADASController implements IMogoADASController {
}
} );
invokeShowADASOperation();
AutopilotServiceManage.getInstance().registerAutopilotDataListener( mAutoPilotDataCallBack );
}
private void invokeShowADASOperation() {
@@ -157,6 +210,7 @@ public class MogoADASController implements IMogoADASController {
public void init( Context context ) {
AutopilotServiceManage.getInstance().init( context );
mIsReleased = false;
mAdasMessageFactory = new MyMessageFactory();
}
@Override
@@ -212,25 +266,23 @@ public class MogoADASController implements IMogoADASController {
}
@Override
public void aiCloudToAdasData( String json ) {
public void aiCloudToAdasData( RemoteControlAutoPilotParameters result ) {
try {
syncControlCmdToADAS( "aiCloudToStartAutopilot", json );
syncControlCmdToADAS( "aiCloudToStartAutopilot", result );
} catch ( Exception e ) {
Logger.e( TAG, e, "notifyAdas" );
Logger.e( TAG, e, "aiCloudToAdasData" );
}
}
/**
* @param action 操作执行
* @param json 指令数据
* @param action
* @param result
*/
private void syncControlCmdToADAS( String action, String json ) {
JSONObject jsonObject = new JSONObject();
private void syncControlCmdToADAS( String action, Object result ) {
AdasControlCommandParameter parameter = new AdasControlCommandParameter( action, result );
//位置信息 action是aiCloudToStartAutopilot
try {
jsonObject.put( "action", action );
jsonObject.put( "result", json );
AutopilotServiceManage.getInstance().aiCloudToAdasData( jsonObject.toString() );
AutopilotServiceManage.getInstance().aiCloudToAdasData( GsonUtil.jsonFromObject( parameter ) );
} catch ( Exception e ) {
e.printStackTrace();
}
@@ -239,6 +291,17 @@ public class MogoADASController implements IMogoADASController {
@Override
public void release() {
mIsReleased = true;
AutopilotServiceManage.getInstance().unRegisterAutopilotDataListener( mAutoPilotDataCallBack );
AutopilotServiceManage.getInstance().release();
}
@Override
public void addAdasDataCallback( IMogoAdasDataCallback callback ) {
}
@Override
public void removeAdasDataCallback( IMogoAdasDataCallback callback ) {
}
}

View File

@@ -0,0 +1,60 @@
package com.mogo.service.impl.adas;
import com.zhidao.support.adas.high.OnAdasListener;
import com.zhidao.support.adas.high.bean.AutopilotStatus;
import com.zhidao.support.adas.high.bean.CarLaneInfo;
import com.zhidao.support.adas.high.bean.CarStateInfo;
import com.zhidao.support.adas.high.bean.LightStatueInfo;
import com.zhidao.support.adas.high.bean.ObstaclesInfo;
import com.zhidao.support.adas.high.bean.RectInfo;
import com.zhidao.support.adas.high.bean.WarnMessageInfo;
public
/**
* @author congtaowang
* @since 2020/10/22
*
* 描述
*/
abstract class OnAdasListenerAdapter implements OnAdasListener {
@Override
public void onWarnMessage( WarnMessageInfo warnMessageInfo ) {
}
@Override
public void onVideoSize( int width, int height ) {
}
@Override
public void onRectData( RectInfo rectInfo ) {
}
@Override
public void onCarStateData( CarStateInfo carStateInfo ) {
}
@Override
public void onLightStateData( LightStatueInfo lightStatueInfo ) {
}
@Override
public void onObstaclesInfo( ObstaclesInfo obstaclesInfo ) {
}
@Override
public void onCarLaneInfo( CarLaneInfo carLaneInfo ) {
}
@Override
public void autopilotStatus( AutopilotStatus autopilotStatus ) {
}
}