Merge branch 'qa_hengyang_base' of http://gitlab.zhidaoauto.com/ecos/yycp-service/Launcher into qa_hengyang_base
1
.idea/runConfigurations.xml
generated
@@ -3,6 +3,7 @@
|
|||||||
<component name="RunConfigurationProducerService">
|
<component name="RunConfigurationProducerService">
|
||||||
<option name="ignoredProducers">
|
<option name="ignoredProducers">
|
||||||
<set>
|
<set>
|
||||||
|
<option value="com.android.tools.idea.compose.preview.runconfiguration.ComposePreviewRunConfigurationProducer" />
|
||||||
<option value="org.jetbrains.plugins.gradle.execution.test.runner.AllInPackageGradleConfigurationProducer" />
|
<option value="org.jetbrains.plugins.gradle.execution.test.runner.AllInPackageGradleConfigurationProducer" />
|
||||||
<option value="org.jetbrains.plugins.gradle.execution.test.runner.TestClassGradleConfigurationProducer" />
|
<option value="org.jetbrains.plugins.gradle.execution.test.runner.TestClassGradleConfigurationProducer" />
|
||||||
<option value="org.jetbrains.plugins.gradle.execution.test.runner.TestMethodGradleConfigurationProducer" />
|
<option value="org.jetbrains.plugins.gradle.execution.test.runner.TestMethodGradleConfigurationProducer" />
|
||||||
|
|||||||
@@ -221,7 +221,7 @@ public class OchBusFragment extends BaseOchFragment< OchBusFragment, OchBusPrese
|
|||||||
isOperationStatus = launch;
|
isOperationStatus = launch;
|
||||||
if ( launch ) {
|
if ( launch ) {
|
||||||
tvOperationStatus.setText( "收车" );
|
tvOperationStatus.setText( "收车" );
|
||||||
showSlidePanle("滑动出发");
|
// showSlidePanle("滑动出发");
|
||||||
showPanel();
|
showPanel();
|
||||||
} else {
|
} else {
|
||||||
AIAssist.getInstance(getContext()).speakTTSVoice("已收车");
|
AIAssist.getInstance(getContext()).speakTTSVoice("已收车");
|
||||||
|
|||||||
@@ -0,0 +1,6 @@
|
|||||||
|
package com.mogo.och.taxi;
|
||||||
|
|
||||||
|
public interface IOperationChangedListener {
|
||||||
|
void onOperationChanged(boolean launch);
|
||||||
|
void onOrderStatusChanged(int status);
|
||||||
|
}
|
||||||
@@ -8,7 +8,10 @@ import com.alibaba.android.arouter.facade.annotation.Route;
|
|||||||
import com.mogo.module.common.MogoApisHandler;
|
import com.mogo.module.common.MogoApisHandler;
|
||||||
import com.mogo.och.IMogoOCH;
|
import com.mogo.och.IMogoOCH;
|
||||||
import com.mogo.och.OCHConstants;
|
import com.mogo.och.OCHConstants;
|
||||||
|
import com.mogo.och.taxi.ui.OCHTaxiFragment;
|
||||||
import com.mogo.och.taxi.ui.OCHTaxiUiController;
|
import com.mogo.och.taxi.ui.OCHTaxiUiController;
|
||||||
|
import com.mogo.service.statusmanager.IMogoStatusChangedListener;
|
||||||
|
import com.mogo.service.statusmanager.StatusDescriptor;
|
||||||
import com.mogo.utils.UiThreadHandler;
|
import com.mogo.utils.UiThreadHandler;
|
||||||
import com.mogo.utils.logger.Logger;
|
import com.mogo.utils.logger.Logger;
|
||||||
|
|
||||||
@@ -20,13 +23,17 @@ public
|
|||||||
* 网约车-出租车
|
* 网约车-出租车
|
||||||
*/
|
*/
|
||||||
@Route( path = OCHConstants.PATH )
|
@Route( path = OCHConstants.PATH )
|
||||||
class MogoOCHTaxi implements IMogoOCH {
|
class MogoOCHTaxi implements IMogoOCH , IMogoStatusChangedListener {
|
||||||
|
|
||||||
private static final String TAG = "MogoOCHTaxi";
|
private static final String TAG = "MogoOCHTaxi";
|
||||||
|
private OCHTaxiFragment ochTaxiFragment;
|
||||||
|
private FragmentActivity mActivity;
|
||||||
|
private int mContainerId;
|
||||||
@Override
|
@Override
|
||||||
public void init( FragmentActivity activity, int containerId ) {
|
public void init( FragmentActivity activity, int containerId ) {
|
||||||
MogoOCHTaxiModel.getInstance().init( activity.getApplicationContext() );
|
this.mActivity = activity;
|
||||||
|
this.mContainerId = containerId;
|
||||||
|
// MogoOCHTaxiModel.getInstance().init( activity.getApplicationContext() );
|
||||||
OCHTaxiUiController.getInstance().init( activity, containerId );
|
OCHTaxiUiController.getInstance().init( activity, containerId );
|
||||||
|
|
||||||
UiThreadHandler.postDelayed( () -> {
|
UiThreadHandler.postDelayed( () -> {
|
||||||
@@ -38,5 +45,36 @@ class MogoOCHTaxi implements IMogoOCH {
|
|||||||
@Override
|
@Override
|
||||||
public void init( Context context ) {
|
public void init( Context context ) {
|
||||||
Logger.d( TAG, "init" );
|
Logger.d( TAG, "init" );
|
||||||
|
MogoApisHandler.getInstance().getApis().getStatusManagerApi().registerStatusChangedListener("ochTaxi", StatusDescriptor.VR_MODE,this);
|
||||||
|
MogoApisHandler.getInstance().getApis().getStatusManagerApi().registerStatusChangedListener("ochTaxi", StatusDescriptor.TOP_VIEW,this);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void showFragment() {
|
||||||
|
if (ochTaxiFragment == null) {
|
||||||
|
Logger.d(TAG, "准备add fragment======");
|
||||||
|
ochTaxiFragment = new OCHTaxiFragment();
|
||||||
|
mActivity.getSupportFragmentManager().beginTransaction().add(mContainerId, ochTaxiFragment).commit();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
Logger.d(TAG, "准备show fragment");
|
||||||
|
mActivity.getSupportFragmentManager().beginTransaction().show(ochTaxiFragment).commit();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void hideFragment(){
|
||||||
|
if (ochTaxiFragment != null){
|
||||||
|
mActivity.getSupportFragmentManager().beginTransaction().hide(ochTaxiFragment).commit();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onStatusChanged(StatusDescriptor descriptor, boolean isTrue) {
|
||||||
|
if (descriptor == StatusDescriptor.VR_MODE){
|
||||||
|
if (isTrue){
|
||||||
|
showFragment();
|
||||||
|
MogoOCHTaxiModel.getInstance().init( mActivity.getApplicationContext() );
|
||||||
|
}else {
|
||||||
|
hideFragment();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,12 +5,12 @@ import android.content.Intent;
|
|||||||
import android.location.Location;
|
import android.location.Location;
|
||||||
import android.net.ConnectivityManager;
|
import android.net.ConnectivityManager;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
|
import android.util.Log;
|
||||||
|
|
||||||
import com.mogo.cloud.commons.utils.CoordinateUtils;
|
import com.mogo.cloud.commons.utils.CoordinateUtils;
|
||||||
import com.mogo.cloud.passport.MoGoAiCloudClientConfig;
|
import com.mogo.cloud.passport.MoGoAiCloudClientConfig;
|
||||||
import com.mogo.commons.data.BaseData;
|
import com.mogo.commons.data.BaseData;
|
||||||
import com.mogo.commons.network.SubscribeImpl;
|
import com.mogo.commons.network.SubscribeImpl;
|
||||||
import com.mogo.commons.network.Utils;
|
|
||||||
import com.mogo.map.MogoLatLng;
|
import com.mogo.map.MogoLatLng;
|
||||||
import com.mogo.map.navi.IMogoCarLocationChangedListener2;
|
import com.mogo.map.navi.IMogoCarLocationChangedListener2;
|
||||||
import com.mogo.module.common.MogoApisHandler;
|
import com.mogo.module.common.MogoApisHandler;
|
||||||
@@ -93,16 +93,18 @@ class MogoOCHTaxiModel {
|
|||||||
*/
|
*/
|
||||||
private boolean mIsArriveAtEndStation = false;
|
private boolean mIsArriveAtEndStation = false;
|
||||||
|
|
||||||
/**
|
// /**
|
||||||
* 乘客已到达上车站点
|
// * 乘客已到达上车站点
|
||||||
*/
|
// */
|
||||||
private boolean mIsUserArriveAtStartStation = false;
|
// private boolean mIsUserArriveAtStartStation = false;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询订单信息重试次数
|
* 查询订单信息重试次数
|
||||||
*/
|
*/
|
||||||
private int mRetryCounter = 0;
|
private int mRetryCounter = 0;
|
||||||
|
|
||||||
|
private int mOCHRHCarstatus = -1;
|
||||||
|
|
||||||
private Object readResolve() {
|
private Object readResolve() {
|
||||||
// 阻止反序列化,必须实现 Serializable 接口
|
// 阻止反序列化,必须实现 Serializable 接口
|
||||||
return sInstance;
|
return sInstance;
|
||||||
@@ -111,6 +113,9 @@ class MogoOCHTaxiModel {
|
|||||||
public void init( Context context ) {
|
public void init( Context context ) {
|
||||||
mContext = context.getApplicationContext();
|
mContext = context.getApplicationContext();
|
||||||
|
|
||||||
|
if (mOCHTaxiServiceApi == null){
|
||||||
|
mOCHTaxiServiceApi = MogoApisHandler.getInstance().getApis().getNetworkApi().create(OCHTaxiServiceApi.class, HostConst.OCH_DOMAIN);
|
||||||
|
}
|
||||||
MogoApisHandler.getInstance()
|
MogoApisHandler.getInstance()
|
||||||
.getApis()
|
.getApis()
|
||||||
.getSocketManagerApi( context )
|
.getSocketManagerApi( context )
|
||||||
@@ -130,6 +135,46 @@ class MogoOCHTaxiModel {
|
|||||||
if ( NetworkUtils.isConnected( mContext ) ) {
|
if ( NetworkUtils.isConnected( mContext ) ) {
|
||||||
restoreOrderInfo();
|
restoreOrderInfo();
|
||||||
}
|
}
|
||||||
|
if ( NetworkUtils.isConnected( mContext ) ) {
|
||||||
|
querryCarStatus();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void querryCarStatus() {
|
||||||
|
mOCHTaxiServiceApi.queryCarStatus( new OCHCarStatus (MoGoAiCloudClientConfig.getInstance().getSn(),0))
|
||||||
|
.subscribeOn(Schedulers.io())
|
||||||
|
.observeOn( AndroidSchedulers.mainThread() )
|
||||||
|
.subscribe( new SubscribeImpl< OCHCarStatusResponse >(RequestOptions.create(mContext)) {
|
||||||
|
@Override
|
||||||
|
public void onSuccess(OCHCarStatusResponse data) {
|
||||||
|
super.onSuccess(data);
|
||||||
|
Logger.e(TAG,"OCHCarStatusResponse:"+data.data.status);
|
||||||
|
mOCHRHCarstatus = data.data.status;
|
||||||
|
//更新view
|
||||||
|
OCHTaxiUiController.getInstance().onOperationChanged(mOCHRHCarstatus==1);
|
||||||
|
//刷新数据
|
||||||
|
updateData(mOCHRHCarstatus);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onError(Throwable e) {
|
||||||
|
super.onError(e);
|
||||||
|
Logger.e(TAG,"OCHCarStatusResponse:"+e.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onError(String message, int code) {
|
||||||
|
super.onError(message,code);
|
||||||
|
Logger.e(TAG,"OCHCarStatusResponse:"+message);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public void updateData(int status){
|
||||||
|
if (status == 1){
|
||||||
|
//查询订单
|
||||||
|
restoreOrderInfo();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -141,6 +186,7 @@ class MogoOCHTaxiModel {
|
|||||||
if ( mCurrentOCHOrder == null ) {
|
if ( mCurrentOCHOrder == null ) {
|
||||||
// 订单恢复
|
// 订单恢复
|
||||||
String orderInfo = SharedPrefsMgr.getInstance( mContext ).getString( SP_KEY_OCH_TAXI_ORDER );
|
String orderInfo = SharedPrefsMgr.getInstance( mContext ).getString( SP_KEY_OCH_TAXI_ORDER );
|
||||||
|
Logger.d(TAG,"restoreOrderInfo:"+orderInfo);
|
||||||
if ( !TextUtils.isEmpty( orderInfo ) ) {
|
if ( !TextUtils.isEmpty( orderInfo ) ) {
|
||||||
mCurrentOCHOrder = GsonUtil.objectFromJson( orderInfo, OCHTaxiOrderResponse.class );
|
mCurrentOCHOrder = GsonUtil.objectFromJson( orderInfo, OCHTaxiOrderResponse.class );
|
||||||
if ( mCurrentOCHOrder == null ) {
|
if ( mCurrentOCHOrder == null ) {
|
||||||
@@ -158,6 +204,28 @@ class MogoOCHTaxiModel {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// private void restoreOrderInfo_() {
|
||||||
|
// Logger.d( TAG, "重新查询订单状态" );
|
||||||
|
// mRetryCounter = 0;
|
||||||
|
// if ( mCurrentOCHOrder == null ) {
|
||||||
|
// // 订单恢复
|
||||||
|
// String orderInfo = SharedPrefsMgr.getInstance( mContext ).getString( SP_KEY_OCH_TAXI_ORDER );
|
||||||
|
// if ( !TextUtils.isEmpty( orderInfo ) ) {
|
||||||
|
// mCurrentOCHOrder = GsonUtil.objectFromJson( orderInfo, OCHTaxiOrderResponse.class );
|
||||||
|
// if ( mCurrentOCHOrder == null ) {
|
||||||
|
// // 解决本地没有缓存订单号的问题
|
||||||
|
// query2RestoreOrderStatus( null );
|
||||||
|
// } else {
|
||||||
|
// query2RestoreOrderStatus( mCurrentOCHOrder.orderNo );
|
||||||
|
// }
|
||||||
|
// } else {
|
||||||
|
// // 解决本地没有缓存订单号的问题
|
||||||
|
// query2RestoreOrderStatus( null );
|
||||||
|
// }
|
||||||
|
// } else {
|
||||||
|
// query2RestoreOrderStatus( mCurrentOCHOrder.orderNo );
|
||||||
|
// }
|
||||||
|
// }
|
||||||
/**
|
/**
|
||||||
* 查询订单状态,来恢复旧订单(因crash导致应用重启、断网没收到推送等)状态
|
* 查询订单状态,来恢复旧订单(因crash导致应用重启、断网没收到推送等)状态
|
||||||
* <p>
|
* <p>
|
||||||
@@ -171,62 +239,65 @@ class MogoOCHTaxiModel {
|
|||||||
* @param orderNo
|
* @param orderNo
|
||||||
*/
|
*/
|
||||||
private void query2RestoreOrderStatus( String orderNo ) {
|
private void query2RestoreOrderStatus( String orderNo ) {
|
||||||
|
Logger.e(TAG,"query2RestoreOrderStatus:"+orderNo);
|
||||||
queryOCHOrderStatus( orderNo, new OCHOrderStatusCallback< OCHTaxiOrderResponse2 >() {
|
queryOCHOrderStatus( orderNo, new OCHOrderStatusCallback< OCHTaxiOrderResponse2 >() {
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess( OCHTaxiOrderResponse2 data ) {
|
public void onSuccess( OCHTaxiOrderResponse2 data ) {
|
||||||
if ( data == null || data.result == null ) {
|
|
||||||
|
if ( data == null || data.data == null ) {
|
||||||
Logger.d( TAG, "订单已取消或已完成" );
|
Logger.d( TAG, "订单已取消或已完成" );
|
||||||
clearCurrentOCHOrder();
|
clearCurrentOCHOrder();
|
||||||
OCHTaxiUiController.getInstance().removeFragment();
|
OCHTaxiUiController.getInstance().onOrderStatusChanged(OCHOrderStatus.None.getCode());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
convertCurrentOrder( data );
|
convertCurrentOrder( data );
|
||||||
OCHOrderStatus status = OCHOrderStatus.valueOf( data.result.orderDispatchType );
|
OCHOrderStatus status = OCHOrderStatus.valueOf( data.data.orderDispatchType );
|
||||||
|
OCHTaxiUiController.getInstance().onOrderStatusChanged(data.data.orderDispatchType);
|
||||||
switch ( status ) {
|
switch ( status ) {
|
||||||
case Completed:
|
case Completed:
|
||||||
TipToast.shortTip( mContext.getString( R.string.module_och_taxi_order_completed ) );
|
TipToast.shortTip( mContext.getString( R.string.module_och_taxi_order_completed ) );
|
||||||
clearCurrentOCHOrder();
|
clearCurrentOCHOrder();
|
||||||
OCHTaxiUiController.getInstance().removeFragment();
|
// OCHTaxiUiController.getInstance().removeFragment();
|
||||||
break;
|
break;
|
||||||
case Cancel:
|
case Cancel:
|
||||||
TipToast.shortTip( mContext.getString( R.string.module_och_taxi_order_cancel ) );
|
TipToast.shortTip( mContext.getString( R.string.module_och_taxi_order_cancel ) );
|
||||||
clearCurrentOCHOrder();
|
clearCurrentOCHOrder();
|
||||||
OCHTaxiUiController.getInstance().removeFragment();
|
// OCHTaxiUiController.getInstance().removeFragment();
|
||||||
break;
|
break;
|
||||||
case ArriveAtEndStation:
|
case ArriveAtEndStation:
|
||||||
mIsArriveAtEndStation = true;
|
mIsArriveAtEndStation = true;
|
||||||
mIsArriveAtStartStation = false;
|
mIsArriveAtStartStation = false;
|
||||||
mIsOnTheWay2EndStation = false;
|
mIsOnTheWay2EndStation = false;
|
||||||
mIsUserArriveAtStartStation = false;
|
// mIsUserArriveAtStartStation = false;
|
||||||
OCHTaxiUiController.getInstance().addFragment();
|
// OCHTaxiUiController.getInstance().addFragment();
|
||||||
break;
|
break;
|
||||||
case ArriveAtStartStation:
|
case ArriveAtStartStation:
|
||||||
mIsArriveAtStartStation = true;
|
mIsArriveAtStartStation = true;
|
||||||
mIsArriveAtEndStation = false;
|
mIsArriveAtEndStation = false;
|
||||||
mIsOnTheWay2EndStation = false;
|
mIsOnTheWay2EndStation = false;
|
||||||
mIsUserArriveAtStartStation = false;
|
// mIsUserArriveAtStartStation = false;
|
||||||
OCHTaxiUiController.getInstance().addFragment();
|
// OCHTaxiUiController.getInstance().addFragment();
|
||||||
break;
|
break;
|
||||||
case UserArriveAtStartStation:
|
case UserArriveAtStartStation:
|
||||||
mIsArriveAtStartStation = true;
|
mIsArriveAtStartStation = true;
|
||||||
mIsArriveAtEndStation = false;
|
mIsArriveAtEndStation = false;
|
||||||
mIsOnTheWay2EndStation = false;
|
mIsOnTheWay2EndStation = false;
|
||||||
mIsUserArriveAtStartStation = true;
|
// mIsUserArriveAtStartStation = true;
|
||||||
OCHTaxiUiController.getInstance().addFragment();
|
// OCHTaxiUiController.getInstance().addFragment();
|
||||||
break;
|
break;
|
||||||
case OnTheWayToEndStation:
|
case OnTheWayToEndStation:
|
||||||
mIsArriveAtStartStation = false;
|
mIsArriveAtStartStation = false;
|
||||||
mIsArriveAtEndStation = false;
|
mIsArriveAtEndStation = false;
|
||||||
mIsOnTheWay2EndStation = true;
|
mIsOnTheWay2EndStation = true;
|
||||||
mIsUserArriveAtStartStation = false;
|
// mIsUserArriveAtStartStation = false;
|
||||||
OCHTaxiUiController.getInstance().addFragment();
|
// OCHTaxiUiController.getInstance().addFragment();
|
||||||
break;
|
break;
|
||||||
case OnTheWayToStartStation:
|
case OnTheWayToStartStation:
|
||||||
default:
|
default:
|
||||||
mIsArriveAtStartStation = false;
|
mIsArriveAtStartStation = false;
|
||||||
mIsArriveAtEndStation = false;
|
mIsArriveAtEndStation = false;
|
||||||
mIsOnTheWay2EndStation = false;
|
mIsOnTheWay2EndStation = false;
|
||||||
mIsUserArriveAtStartStation = false;
|
// mIsUserArriveAtStartStation = false;
|
||||||
mOrderMsgListener.onMsgReceived( mCurrentOCHOrder );
|
mOrderMsgListener.onMsgReceived( mCurrentOCHOrder );
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -256,24 +327,24 @@ class MogoOCHTaxiModel {
|
|||||||
if ( mCurrentOCHOrder == null ) {
|
if ( mCurrentOCHOrder == null ) {
|
||||||
mCurrentOCHOrder = new OCHTaxiOrderResponse();
|
mCurrentOCHOrder = new OCHTaxiOrderResponse();
|
||||||
}
|
}
|
||||||
mCurrentOCHOrder.orderNo = data.result.orderNo;
|
mCurrentOCHOrder.orderNo = data.data.orderNo;
|
||||||
mCurrentOCHOrder.orderDispatchType = data.result.orderDispatchType;
|
mCurrentOCHOrder.orderDispatchType = data.data.orderDispatchType;
|
||||||
mCurrentOCHOrder.endStation = data.result.endStation;
|
mCurrentOCHOrder.endStation = data.data.endStation;
|
||||||
mCurrentOCHOrder.startStation = data.result.startStation;
|
mCurrentOCHOrder.startStation = data.data.startStation;
|
||||||
mCurrentOCHOrder.travelDistance = data.result.travelDistance;
|
mCurrentOCHOrder.travelDistance = data.data.travelDistance;
|
||||||
mCurrentOCHOrder.orderType = data.result.orderType;
|
mCurrentOCHOrder.orderType = data.data.orderType;
|
||||||
mCurrentOCHOrder.drivingRoutes = new ArrayList<>();
|
mCurrentOCHOrder.drivingRoutes = new ArrayList<>();
|
||||||
OCHTaxiOrderResponse.OCHTaxiStation startStation = new OCHTaxiOrderResponse.OCHTaxiStation();
|
OCHTaxiOrderResponse.OCHTaxiStation startStation = new OCHTaxiOrderResponse.OCHTaxiStation();
|
||||||
startStation.lon = data.result.startStationCoordinate.get( 0 );
|
startStation.lon = data.data.startStationCoordinate.get( 0 );
|
||||||
startStation.lat = data.result.startStationCoordinate.get( 1 );
|
startStation.lat = data.data.startStationCoordinate.get( 1 );
|
||||||
startStation.siteId = data.result.startStationId;
|
startStation.siteId = data.data.startStationId;
|
||||||
startStation.siteName = data.result.startStation;
|
startStation.siteName = data.data.startStation;
|
||||||
mCurrentOCHOrder.drivingRoutes.add( startStation );
|
mCurrentOCHOrder.drivingRoutes.add( startStation );
|
||||||
OCHTaxiOrderResponse.OCHTaxiStation endStation = new OCHTaxiOrderResponse.OCHTaxiStation();
|
OCHTaxiOrderResponse.OCHTaxiStation endStation = new OCHTaxiOrderResponse.OCHTaxiStation();
|
||||||
endStation.lon = data.result.endStationCoordinate.get( 0 );
|
endStation.lon = data.data.endStationCoordinate.get( 0 );
|
||||||
endStation.lat = data.result.endStationCoordinate.get( 1 );
|
endStation.lat = data.data.endStationCoordinate.get( 1 );
|
||||||
endStation.siteId = data.result.endStationId;
|
endStation.siteId = data.data.endStationId;
|
||||||
endStation.siteName = data.result.endStation;
|
endStation.siteName = data.data.endStation;
|
||||||
mCurrentOCHOrder.drivingRoutes.add( endStation );
|
mCurrentOCHOrder.drivingRoutes.add( endStation );
|
||||||
|
|
||||||
cacheOrderInfo2Native( mCurrentOCHOrder );
|
cacheOrderInfo2Native( mCurrentOCHOrder );
|
||||||
@@ -294,6 +365,47 @@ class MogoOCHTaxiModel {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
public void changedOperationStatus() {
|
||||||
|
if ( mOCHRHCarstatus == -1){
|
||||||
|
querryCarStatus();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (checkCurrentOCHOrder()){
|
||||||
|
TipToast.shortTip( "订单未完成,无法下线收车" );
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
int status = mOCHRHCarstatus == 1 ? 0 : 1;
|
||||||
|
mOCHTaxiServiceApi.updateCarStatus(new OCHCarStatus(MoGoAiCloudClientConfig.getInstance().getSn(),status))
|
||||||
|
.subscribeOn(Schedulers.io())
|
||||||
|
.observeOn( AndroidSchedulers.mainThread() )
|
||||||
|
.subscribe( new SubscribeImpl< OCHCarStatusResponse >(RequestOptions.create(mContext)) {
|
||||||
|
@Override
|
||||||
|
public void onSuccess(OCHCarStatusResponse o) {
|
||||||
|
super.onSuccess(o);
|
||||||
|
mOCHRHCarstatus = o.data.status;
|
||||||
|
// mIsWork = mOCHRHCarstatus.status == 1;
|
||||||
|
// mOCHRHCarstatus.status = status;
|
||||||
|
OCHTaxiUiController.getInstance().onOperationChanged(mOCHRHCarstatus == 1);
|
||||||
|
updateData(mOCHRHCarstatus);
|
||||||
|
Logger.d(TAG,"changeCarStatus:"+status);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onError(Throwable e) {
|
||||||
|
super.onError(e);
|
||||||
|
Logger.d(TAG,"changeCarStatus:"+e.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onError(String message, int code) {
|
||||||
|
super.onError(message, code);
|
||||||
|
Logger.d(TAG,"changeCarStatus:"+message);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 自车定位
|
* 自车定位
|
||||||
*/
|
*/
|
||||||
@@ -301,12 +413,12 @@ class MogoOCHTaxiModel {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCarLocationChanged2( Location location ) {
|
public void onCarLocationChanged2( Location location ) {
|
||||||
Logger.d( TAG, "定位已判断是否达到上车站点: 起点(%s, %s), 当前位置(%s, %s)",
|
// Logger.d( TAG, "定位已判断是否达到上车站点: 起点(%s, %s), 当前位置(%s, %s)",
|
||||||
mCurrentOCHOrder.drivingRoutes.get( 0 ).lon,
|
// mCurrentOCHOrder.drivingRoutes.get( 0 ).lon,
|
||||||
mCurrentOCHOrder.drivingRoutes.get( 0 ).lat,
|
// mCurrentOCHOrder.drivingRoutes.get( 0 ).lat,
|
||||||
location.getLongitude(),
|
// location.getLongitude(),
|
||||||
location.getLatitude()
|
// location.getLatitude()
|
||||||
);
|
// );
|
||||||
onLocationChanged( location );
|
onLocationChanged( location );
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -331,9 +443,9 @@ class MogoOCHTaxiModel {
|
|||||||
if ( mIsArriveAtStartStation ) {
|
if ( mIsArriveAtStartStation ) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if ( mIsUserArriveAtStartStation ) {
|
// if ( mIsUserArriveAtStartStation ) {
|
||||||
return;
|
// return;
|
||||||
}
|
// }
|
||||||
judgeStartStation( location );
|
judgeStartStation( location );
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -392,14 +504,14 @@ class MogoOCHTaxiModel {
|
|||||||
return mIsArriveAtEndStation;
|
return mIsArriveAtEndStation;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
// /**
|
||||||
* 用户是否达到上车站点
|
// * 用户是否达到上车站点
|
||||||
*
|
// *
|
||||||
* @return
|
// * @return
|
||||||
*/
|
// */
|
||||||
public boolean isUserArriveAtStartStation() {
|
// public boolean isUserArriveAtStartStation() {
|
||||||
return mIsUserArriveAtStartStation;
|
// return mIsUserArriveAtStartStation;
|
||||||
}
|
// }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 设置去往终点状态
|
* 设置去往终点状态
|
||||||
@@ -446,7 +558,8 @@ class MogoOCHTaxiModel {
|
|||||||
if ( !isArriveAtStartStation() ) {
|
if ( !isArriveAtStartStation() ) {
|
||||||
registerCarLocationListener();
|
registerCarLocationListener();
|
||||||
}
|
}
|
||||||
OCHTaxiUiController.getInstance().addFragment();
|
// OCHTaxiUiController.getInstance().addFragment();
|
||||||
|
OCHTaxiUiController.getInstance().onOrderStatusChanged(mCurrentOCHOrder.orderDispatchType);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -510,7 +623,7 @@ class MogoOCHTaxiModel {
|
|||||||
break;
|
break;
|
||||||
case UserArriveAtStartStation:
|
case UserArriveAtStartStation:
|
||||||
mIsArriveAtStartStation = true;
|
mIsArriveAtStartStation = true;
|
||||||
mIsUserArriveAtStartStation = true;
|
// mIsUserArriveAtStartStation = true;
|
||||||
OCHTaxiUiController.getInstance().onUserArriveAtStartStation();
|
OCHTaxiUiController.getInstance().onUserArriveAtStartStation();
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@@ -576,11 +689,13 @@ class MogoOCHTaxiModel {
|
|||||||
if ( callback != null ) {
|
if ( callback != null ) {
|
||||||
callback.onError();
|
callback.onError();
|
||||||
}
|
}
|
||||||
|
Logger.e(TAG,"updateOCHOrderStatus:"+e.getMessage());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onError( String message, int code ) {
|
public void onError( String message, int code ) {
|
||||||
super.onError( message, code );
|
super.onError( message, code );
|
||||||
|
Logger.e(TAG,"updateOCHOrderStatus:"+message);
|
||||||
if ( callback != null ) {
|
if ( callback != null ) {
|
||||||
callback.onFail();
|
callback.onFail();
|
||||||
}
|
}
|
||||||
@@ -620,6 +735,7 @@ class MogoOCHTaxiModel {
|
|||||||
@Override
|
@Override
|
||||||
public void onError( String message, int code ) {
|
public void onError( String message, int code ) {
|
||||||
super.onError( message, code );
|
super.onError( message, code );
|
||||||
|
Logger.e("MogoOCHTaxi","queryOCHOrderStatus:"+message);
|
||||||
if ( callback != null ) {
|
if ( callback != null ) {
|
||||||
callback.onFail();
|
callback.onFail();
|
||||||
}
|
}
|
||||||
@@ -635,7 +751,7 @@ class MogoOCHTaxiModel {
|
|||||||
mIsArriveAtStartStation = false;
|
mIsArriveAtStartStation = false;
|
||||||
mIsArriveAtEndStation = false;
|
mIsArriveAtEndStation = false;
|
||||||
mIsOnTheWay2EndStation = false;
|
mIsOnTheWay2EndStation = false;
|
||||||
mIsUserArriveAtStartStation = false;
|
// mIsUserArriveAtStartStation = false;
|
||||||
SharedPrefsMgr.getInstance( mContext ).remove( SP_KEY_OCH_TAXI_ORDER );
|
SharedPrefsMgr.getInstance( mContext ).remove( SP_KEY_OCH_TAXI_ORDER );
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -646,8 +762,7 @@ class MogoOCHTaxiModel {
|
|||||||
*/
|
*/
|
||||||
public boolean checkCurrentOCHOrder() {
|
public boolean checkCurrentOCHOrder() {
|
||||||
if ( mCurrentOCHOrder != null
|
if ( mCurrentOCHOrder != null
|
||||||
&& mCurrentOCHOrder.drivingRoutes != null
|
&& mCurrentOCHOrder.drivingRoutes != null) {
|
||||||
&& mCurrentOCHOrder.drivingRoutes.size() >= 2 ) {
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
@@ -0,0 +1,20 @@
|
|||||||
|
package com.mogo.och.taxi;
|
||||||
|
|
||||||
|
import com.mogo.commons.data.BaseData;
|
||||||
|
|
||||||
|
public
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* 修改/查询网约车-出租车订单状态的数据结构
|
||||||
|
*/
|
||||||
|
class OCHCarStatus extends BaseData {
|
||||||
|
|
||||||
|
public String sn;// 不排除本地没有缓存订单号的情况
|
||||||
|
public int status; //0 收车 1出车
|
||||||
|
|
||||||
|
public OCHCarStatus(String sn,
|
||||||
|
int status ) {
|
||||||
|
this.sn = sn;
|
||||||
|
this.status = status;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,29 @@
|
|||||||
|
package com.mogo.och.taxi;
|
||||||
|
|
||||||
|
import com.mogo.commons.data.BaseData;
|
||||||
|
|
||||||
|
public
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* 修改/查询网约车-出租车订单状态的数据结构
|
||||||
|
*/
|
||||||
|
class OCHCarStatusResponse extends BaseData {
|
||||||
|
|
||||||
|
public String sn;// 不排除本地没有缓存订单号的情况
|
||||||
|
public int status; //0 收车 1出车
|
||||||
|
public Result data;
|
||||||
|
|
||||||
|
public OCHCarStatusResponse(String sn,
|
||||||
|
int status ) {
|
||||||
|
this.sn = sn;
|
||||||
|
this.status = status;
|
||||||
|
}
|
||||||
|
public static class Result{
|
||||||
|
public int id;
|
||||||
|
public String sn;
|
||||||
|
public String areaCode;
|
||||||
|
public String plateNumber;
|
||||||
|
public int status;
|
||||||
|
// String remark;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -13,7 +13,7 @@ public
|
|||||||
*/
|
*/
|
||||||
class OCHTaxiOrderResponse2 extends BaseData {
|
class OCHTaxiOrderResponse2 extends BaseData {
|
||||||
|
|
||||||
public Result result;
|
public Result data;
|
||||||
|
|
||||||
public static class Result {
|
public static class Result {
|
||||||
public String _id;
|
public String _id;
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ interface OCHTaxiServiceApi {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@Headers( {"Content-type:application/json;charset=UTF-8"} )
|
@Headers( {"Content-type:application/json;charset=UTF-8"} )
|
||||||
@POST( "/yycp-onlinecar-hailing/onlineCarHailing/order/updateOCHOrder/v1" )
|
@POST( "/yycp-onlinecar-hailing/onlineCarHailing/order/updateOCHOrderState/v1" )
|
||||||
Observable< BaseData > updateOrderStatus( @Body OCHTaxiOrderStatus status );
|
Observable< BaseData > updateOrderStatus( @Body OCHTaxiOrderStatus status );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -32,6 +32,20 @@ interface OCHTaxiServiceApi {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@Headers( {"Content-type:application/json;charset=UTF-8"} )
|
@Headers( {"Content-type:application/json;charset=UTF-8"} )
|
||||||
@POST( "/yycp-onlinecar-hailing/onlineCarHailing/order/queryOCHOrderDetails/v1" )
|
@POST( "/yycp-onlinecar-hailing/onlineCarHailing/order/queryOrderForCar/v1" )
|
||||||
Observable< OCHTaxiOrderResponse2 > queryOrder( @Body OCHTaxiOrderStatus status );
|
Observable< OCHTaxiOrderResponse2 > queryOrder( @Body OCHTaxiOrderStatus status );
|
||||||
|
/**
|
||||||
|
* 查询网约车状态
|
||||||
|
*/
|
||||||
|
@Headers({"Content-type:application/json;charset=UTF-8"})
|
||||||
|
@POST("/yycp-onlinecar-hailing/onlineCarHailing/order/queryTaxiCarStatus/v1")
|
||||||
|
Observable<OCHCarStatusResponse> queryCarStatus(@Body OCHCarStatus sn );
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新网约车状态
|
||||||
|
*/
|
||||||
|
@Headers({"Content-type:application/json;charset=UTF-8"})
|
||||||
|
@POST("/yycp-onlinecar-hailing/onlineCarHailing/order/updateTaxiCarStatus/v1")
|
||||||
|
Observable<OCHCarStatusResponse> updateCarStatus(@Body OCHCarStatus status );
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,12 +8,14 @@ import android.widget.TextView;
|
|||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
import com.mogo.cloud.commons.utils.CoordinateUtils;
|
import com.mogo.cloud.commons.utils.CoordinateUtils;
|
||||||
|
import com.mogo.commons.voice.AIAssist;
|
||||||
import com.mogo.map.MogoLatLng;
|
import com.mogo.map.MogoLatLng;
|
||||||
import com.mogo.map.navi.IMogoCarLocationChangedListener2;
|
import com.mogo.map.navi.IMogoCarLocationChangedListener2;
|
||||||
import com.mogo.module.common.MogoApisHandler;
|
import com.mogo.module.common.MogoApisHandler;
|
||||||
import com.mogo.och.BaseOchFragment;
|
import com.mogo.och.BaseOchFragment;
|
||||||
import com.mogo.och.taxi.IMogoADASAutoPilotStatusChangedListener;
|
import com.mogo.och.taxi.IMogoADASAutoPilotStatusChangedListener;
|
||||||
import com.mogo.och.taxi.IMogoOCHTaxiArriveCallback;
|
import com.mogo.och.taxi.IMogoOCHTaxiArriveCallback;
|
||||||
|
import com.mogo.och.taxi.IOperationChangedListener;
|
||||||
import com.mogo.och.taxi.MogoOCHTaxiModel;
|
import com.mogo.och.taxi.MogoOCHTaxiModel;
|
||||||
import com.mogo.och.taxi.OCHOrderStatus;
|
import com.mogo.och.taxi.OCHOrderStatus;
|
||||||
import com.mogo.och.taxi.OCHOrderStatusCallback;
|
import com.mogo.och.taxi.OCHOrderStatusCallback;
|
||||||
@@ -35,6 +37,7 @@ class OCHTaxiFragment extends BaseOchFragment< OCHTaxiView, OCHTaxiPresenter > i
|
|||||||
IMogoStatusChangedListener,
|
IMogoStatusChangedListener,
|
||||||
IMogoOCHTaxiArriveCallback,
|
IMogoOCHTaxiArriveCallback,
|
||||||
IMogoADASAutoPilotStatusChangedListener,
|
IMogoADASAutoPilotStatusChangedListener,
|
||||||
|
IOperationChangedListener,
|
||||||
IMogoCarLocationChangedListener2 {
|
IMogoCarLocationChangedListener2 {
|
||||||
|
|
||||||
public static final String TAG = "OCHTaxiFragment";
|
public static final String TAG = "OCHTaxiFragment";
|
||||||
@@ -52,7 +55,6 @@ class OCHTaxiFragment extends BaseOchFragment< OCHTaxiView, OCHTaxiPresenter > i
|
|||||||
private TextView mStartStationName;
|
private TextView mStartStationName;
|
||||||
private TextView mEndStationName;
|
private TextView mEndStationName;
|
||||||
private TextView mDistance;
|
private TextView mDistance;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getStationPanelViewId() {
|
public int getStationPanelViewId() {
|
||||||
return R.layout.module_och_taxi_panel;
|
return R.layout.module_och_taxi_panel;
|
||||||
@@ -62,6 +64,7 @@ class OCHTaxiFragment extends BaseOchFragment< OCHTaxiView, OCHTaxiPresenter > i
|
|||||||
public void restartAutopilot() {
|
public void restartAutopilot() {
|
||||||
// 在自动驾驶中,才会有重新开启自动驾驶的操作
|
// 在自动驾驶中,才会有重新开启自动驾驶的操作
|
||||||
if ( MogoOCHTaxiModel.getInstance().isOnTheWay2EndStation() ) {
|
if ( MogoOCHTaxiModel.getInstance().isOnTheWay2EndStation() ) {
|
||||||
|
Logger.d( TAG, "restartAutopilot" );
|
||||||
MogoOCHTaxiModel.getInstance().startAutoPilot();
|
MogoOCHTaxiModel.getInstance().startAutoPilot();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -74,9 +77,11 @@ class OCHTaxiFragment extends BaseOchFragment< OCHTaxiView, OCHTaxiPresenter > i
|
|||||||
mEndStationName = findViewById( R.id.module_och_taxi_order_end_station );
|
mEndStationName = findViewById( R.id.module_och_taxi_order_end_station );
|
||||||
mDistance = findViewById( R.id.module_och_taxi_order_distance );
|
mDistance = findViewById( R.id.module_och_taxi_order_distance );
|
||||||
|
|
||||||
showPanel();
|
// showPanel();
|
||||||
|
hidPanel();
|
||||||
initListeners();
|
initListeners();
|
||||||
updateOrderStatus();
|
// TODO: 2021/6/18 调整接口刷新时间
|
||||||
|
// updateOrderStatus();
|
||||||
if ( MogoApisHandler.getInstance()
|
if ( MogoApisHandler.getInstance()
|
||||||
.getApis()
|
.getApis()
|
||||||
.getStatusManagerApi()
|
.getStatusManagerApi()
|
||||||
@@ -85,8 +90,8 @@ class OCHTaxiFragment extends BaseOchFragment< OCHTaxiView, OCHTaxiPresenter > i
|
|||||||
} else {
|
} else {
|
||||||
flatMode();
|
flatMode();
|
||||||
}
|
}
|
||||||
// 出租车不需要开启按钮
|
|
||||||
tvOperationStatus.setVisibility(View.GONE);
|
tvOperationStatus.setVisibility(View.VISIBLE);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void initListeners() {
|
private void initListeners() {
|
||||||
@@ -96,6 +101,7 @@ class OCHTaxiFragment extends BaseOchFragment< OCHTaxiView, OCHTaxiPresenter > i
|
|||||||
.registerStatusChangedListener( TAG, StatusDescriptor.VR_MODE, this );
|
.registerStatusChangedListener( TAG, StatusDescriptor.VR_MODE, this );
|
||||||
OCHTaxiUiController.getInstance().setOCHTaxiArriveCallback( this );
|
OCHTaxiUiController.getInstance().setOCHTaxiArriveCallback( this );
|
||||||
OCHTaxiUiController.getInstance().setAutoPilotStatusChangedListener( this );
|
OCHTaxiUiController.getInstance().setAutoPilotStatusChangedListener( this );
|
||||||
|
OCHTaxiUiController.getInstance().setOperationChangeListener(this);
|
||||||
MogoApisHandler.getInstance()
|
MogoApisHandler.getInstance()
|
||||||
.getApis()
|
.getApis()
|
||||||
.getRegisterCenterApi()
|
.getRegisterCenterApi()
|
||||||
@@ -117,6 +123,12 @@ class OCHTaxiFragment extends BaseOchFragment< OCHTaxiView, OCHTaxiPresenter > i
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onChangeOperationStatus() {
|
||||||
|
super.onChangeOperationStatus();
|
||||||
|
MogoOCHTaxiModel.getInstance().changedOperationStatus();
|
||||||
|
}
|
||||||
|
|
||||||
private void vrMode() {
|
private void vrMode() {
|
||||||
if ( mRootView != null ) {
|
if ( mRootView != null ) {
|
||||||
mRootView.setVisibility(
|
mRootView.setVisibility(
|
||||||
@@ -151,15 +163,17 @@ class OCHTaxiFragment extends BaseOchFragment< OCHTaxiView, OCHTaxiPresenter > i
|
|||||||
} else if ( MogoOCHTaxiModel.getInstance().isArriveAtStartStation() ) {
|
} else if ( MogoOCHTaxiModel.getInstance().isArriveAtStartStation() ) {
|
||||||
Logger.d( TAG, "已经达到起点" );
|
Logger.d( TAG, "已经达到起点" );
|
||||||
mOrderStatus.setText( R.string.module_och_taxi_waiting );
|
mOrderStatus.setText( R.string.module_och_taxi_waiting );
|
||||||
if ( MogoOCHTaxiModel.getInstance().isUserArriveAtStartStation() ) {
|
// if ( MogoOCHTaxiModel.getInstance().isUserArriveAtStartStation() ) {
|
||||||
Logger.d( TAG, "乘客已上车" );
|
// Logger.d( TAG, "乘客已上车" );
|
||||||
slidePanelView.setVisibility( View.VISIBLE );
|
// slidePanelView.setVisibility( View.VISIBLE );
|
||||||
// if ( MogoApisHandler.getInstance().getApis().getAdasControllerApi().getAutopilotStatus() == IMogoAdasOCHCallback.STATUS_AUTOPILOT_ENABLE ) {
|
//// if ( MogoApisHandler.getInstance().getApis().getAdasControllerApi().getAutopilotStatus() == IMogoAdasOCHCallback.STATUS_AUTOPILOT_ENABLE ) {
|
||||||
// } else {
|
//// } else {
|
||||||
// slidePanelView.setVisibility( View.GONE );
|
//// slidePanelView.setVisibility( View.GONE );
|
||||||
// }
|
//// }
|
||||||
slidePanelView.setText( getString( R.string.module_och_taxi_arrive_at_start_station ) );
|
// slidePanelView.setText( getString( R.string.module_och_taxi_arrive_at_start_station ) );
|
||||||
}
|
// }
|
||||||
|
slidePanelView.setVisibility( View.VISIBLE );
|
||||||
|
slidePanelView.setText( getString( R.string.module_och_taxi_arrive_at_start_station ) );
|
||||||
} else if ( MogoOCHTaxiModel.getInstance().checkCurrentOCHOrder() ) {
|
} else if ( MogoOCHTaxiModel.getInstance().checkCurrentOCHOrder() ) {
|
||||||
Logger.d( TAG, "去往上车站点" );
|
Logger.d( TAG, "去往上车站点" );
|
||||||
slidePanelView.setVisibility( View.GONE );
|
slidePanelView.setVisibility( View.GONE );
|
||||||
@@ -247,6 +261,7 @@ class OCHTaxiFragment extends BaseOchFragment< OCHTaxiView, OCHTaxiPresenter > i
|
|||||||
.unregisterStatusChangedListener( TAG, StatusDescriptor.VR_MODE, this );
|
.unregisterStatusChangedListener( TAG, StatusDescriptor.VR_MODE, this );
|
||||||
OCHTaxiUiController.getInstance().setOCHTaxiArriveCallback( null );
|
OCHTaxiUiController.getInstance().setOCHTaxiArriveCallback( null );
|
||||||
OCHTaxiUiController.getInstance().setAutoPilotStatusChangedListener( null );
|
OCHTaxiUiController.getInstance().setAutoPilotStatusChangedListener( null );
|
||||||
|
OCHTaxiUiController.getInstance().setOperationChangeListener(null);
|
||||||
MogoApisHandler.getInstance()
|
MogoApisHandler.getInstance()
|
||||||
.getApis()
|
.getApis()
|
||||||
.getRegisterCenterApi()
|
.getRegisterCenterApi()
|
||||||
@@ -269,7 +284,7 @@ class OCHTaxiFragment extends BaseOchFragment< OCHTaxiView, OCHTaxiPresenter > i
|
|||||||
Logger.d( TAG, "更新状态成功" );
|
Logger.d( TAG, "更新状态成功" );
|
||||||
MogoOCHTaxiModel.getInstance().clearCurrentOCHOrder();
|
MogoOCHTaxiModel.getInstance().clearCurrentOCHOrder();
|
||||||
MogoOCHTaxiModel.getInstance().cancelAutopilot();
|
MogoOCHTaxiModel.getInstance().cancelAutopilot();
|
||||||
OCHTaxiUiController.getInstance().removeFragment();
|
OCHTaxiUiController.getInstance().onOrderStatusChanged(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -284,8 +299,8 @@ class OCHTaxiFragment extends BaseOchFragment< OCHTaxiView, OCHTaxiPresenter > i
|
|||||||
} );
|
} );
|
||||||
return;
|
return;
|
||||||
// 乘客已确认到达起点,前往下一站并开启自动驾驶
|
// 乘客已确认到达起点,前往下一站并开启自动驾驶
|
||||||
} else if ( MogoOCHTaxiModel.getInstance().isUserArriveAtStartStation()
|
} else if ( !MogoOCHTaxiModel.getInstance().isOnTheWay2EndStation() ) {
|
||||||
&& !MogoOCHTaxiModel.getInstance().isOnTheWay2EndStation() ) {
|
// MogoOCHTaxiModel.getInstance().isUserArriveAtStartStation() &&
|
||||||
MogoOCHTaxiModel.getInstance().startAutoPilot();
|
MogoOCHTaxiModel.getInstance().startAutoPilot();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -367,4 +382,32 @@ class OCHTaxiFragment extends BaseOchFragment< OCHTaxiView, OCHTaxiPresenter > i
|
|||||||
}
|
}
|
||||||
mLocation = location;
|
mLocation = location;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onOperationChanged(boolean launch) {
|
||||||
|
isOperationStatus = launch;
|
||||||
|
if ( launch ) {
|
||||||
|
tvOperationStatus.setText( "收车" );
|
||||||
|
// showSlidePanle("滑动出发");
|
||||||
|
// showPanel();
|
||||||
|
} else {
|
||||||
|
AIAssist.getInstance(getContext()).speakTTSVoice("已收车");
|
||||||
|
tvOperationStatus.setText("出车");
|
||||||
|
// hideSlidePanel();
|
||||||
|
// hidPanel();
|
||||||
|
}
|
||||||
|
// changeLayoutViewStatus(launch);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void changeLayoutViewStatus(boolean launch) {
|
||||||
|
getPanelView().setVisibility(launch ? View.VISIBLE : View.INVISIBLE);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onOrderStatusChanged(int status) {
|
||||||
|
getActivity().runOnUiThread(() -> {
|
||||||
|
getPanelView().setVisibility(status != 0 ? View.VISIBLE : View.INVISIBLE);
|
||||||
|
updateOrderStatus();
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ import androidx.fragment.app.FragmentManager;
|
|||||||
import com.mogo.module.common.MogoApisHandler;
|
import com.mogo.module.common.MogoApisHandler;
|
||||||
import com.mogo.och.taxi.IMogoADASAutoPilotStatusChangedListener;
|
import com.mogo.och.taxi.IMogoADASAutoPilotStatusChangedListener;
|
||||||
import com.mogo.och.taxi.IMogoOCHTaxiArriveCallback;
|
import com.mogo.och.taxi.IMogoOCHTaxiArriveCallback;
|
||||||
|
import com.mogo.och.taxi.IOperationChangedListener;
|
||||||
import com.mogo.och.taxi.MogoOCHTaxiModel;
|
import com.mogo.och.taxi.MogoOCHTaxiModel;
|
||||||
import com.mogo.utils.UiThreadHandler;
|
import com.mogo.utils.UiThreadHandler;
|
||||||
import com.mogo.utils.logger.Logger;
|
import com.mogo.utils.logger.Logger;
|
||||||
@@ -31,6 +32,7 @@ class OCHTaxiUiController implements IMogoOCHTaxiArriveCallback, IMogoADASAutoPi
|
|||||||
|
|
||||||
private IMogoOCHTaxiArriveCallback mOCHTaxiArriveCallback;
|
private IMogoOCHTaxiArriveCallback mOCHTaxiArriveCallback;
|
||||||
private IMogoADASAutoPilotStatusChangedListener mAutoPilotStatusChangedListener;
|
private IMogoADASAutoPilotStatusChangedListener mAutoPilotStatusChangedListener;
|
||||||
|
private IOperationChangedListener mOperationChangedLisnter;
|
||||||
|
|
||||||
private OCHTaxiUiController() {
|
private OCHTaxiUiController() {
|
||||||
}
|
}
|
||||||
@@ -101,6 +103,10 @@ class OCHTaxiUiController implements IMogoOCHTaxiArriveCallback, IMogoADASAutoPi
|
|||||||
this.mAutoPilotStatusChangedListener = autoPilotStatusChangedListener;
|
this.mAutoPilotStatusChangedListener = autoPilotStatusChangedListener;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setOperationChangeListener(IOperationChangedListener listener){
|
||||||
|
this.mOperationChangedLisnter = listener;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onTheWay2StartStation() {
|
public void onTheWay2StartStation() {
|
||||||
runOnUIThread( () -> {
|
runOnUIThread( () -> {
|
||||||
@@ -167,6 +173,8 @@ class OCHTaxiUiController implements IMogoOCHTaxiArriveCallback, IMogoADASAutoPi
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 进入鹰眼模式,设置手势缩放地图失效
|
* 进入鹰眼模式,设置手势缩放地图失效
|
||||||
*/
|
*/
|
||||||
@@ -178,4 +186,19 @@ class OCHTaxiUiController implements IMogoOCHTaxiArriveCallback, IMogoADASAutoPi
|
|||||||
.getMapUIController()
|
.getMapUIController()
|
||||||
.openVrMode( false );
|
.openVrMode( false );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void onOperationChanged(boolean b) {
|
||||||
|
runOnUIThread( () -> {
|
||||||
|
if (mOperationChangedLisnter != null){
|
||||||
|
mOperationChangedLisnter.onOperationChanged(b);
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
}
|
||||||
|
public void onOrderStatusChanged(int status){
|
||||||
|
runOnUIThread( () -> {
|
||||||
|
if (mOperationChangedLisnter != null){
|
||||||
|
mOperationChangedLisnter.onOrderStatusChanged(status);
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
|
android:id="@+id/module_och_taxi_layoutview"
|
||||||
android:layout_width="@dimen/module_mogo_och_autopilot_order_bg_width"
|
android:layout_width="@dimen/module_mogo_och_autopilot_order_bg_width"
|
||||||
android:layout_height="@dimen/module_mogo_och_autopilot_order_bg_height"
|
android:layout_height="@dimen/module_mogo_och_autopilot_order_bg_height"
|
||||||
android:orientation="vertical">
|
android:orientation="vertical">
|
||||||
@@ -72,6 +73,7 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="上车"
|
android:text="上车"
|
||||||
android:textColor="@color/module_och_taxi_order_start_station_anchor_textColor"
|
android:textColor="@color/module_och_taxi_order_start_station_anchor_textColor"
|
||||||
|
android:layout_marginRight="@dimen/module_och_taxi_order_text_marginRight"
|
||||||
android:textSize="@dimen/module_och_taxi_order_start_station_anchor_textSize"
|
android:textSize="@dimen/module_och_taxi_order_start_station_anchor_textSize"
|
||||||
android:textStyle="bold"
|
android:textStyle="bold"
|
||||||
app:layout_constraintBottom_toBottomOf="@+id/module_och_taxi_order_start_station"
|
app:layout_constraintBottom_toBottomOf="@+id/module_och_taxi_order_start_station"
|
||||||
@@ -116,6 +118,7 @@
|
|||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="下车"
|
android:text="下车"
|
||||||
|
android:layout_marginRight="@dimen/module_och_taxi_order_text_marginRight"
|
||||||
android:textColor="@color/module_och_taxi_order_end_station_anchor_textColor"
|
android:textColor="@color/module_och_taxi_order_end_station_anchor_textColor"
|
||||||
android:textSize="@dimen/module_och_taxi_order_end_station_anchor_textSize"
|
android:textSize="@dimen/module_och_taxi_order_end_station_anchor_textSize"
|
||||||
android:textStyle="bold"
|
android:textStyle="bold"
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
<dimen name="module_och_taxi_order_start_station_marginLeft">15px</dimen>
|
<dimen name="module_och_taxi_order_start_station_marginLeft">15px</dimen>
|
||||||
<dimen name="module_och_taxi_order_status_marginLeft">25px</dimen>
|
<dimen name="module_och_taxi_order_status_marginLeft">25px</dimen>
|
||||||
<dimen name="module_och_taxi_order_status_marginTop">25px</dimen>
|
<dimen name="module_och_taxi_order_status_marginTop">25px</dimen>
|
||||||
<dimen name="module_och_taxi_order_status_textSize">20px</dimen>
|
<dimen name="module_och_taxi_order_status_textSize">32px</dimen>
|
||||||
<dimen name="module_och_taxi_order_status_divider_height">1px</dimen>
|
<dimen name="module_och_taxi_order_status_divider_height">1px</dimen>
|
||||||
<dimen name="module_och_taxi_order_status_divider_marginLeft">20px</dimen>
|
<dimen name="module_och_taxi_order_status_divider_marginLeft">20px</dimen>
|
||||||
<dimen name="module_och_taxi_order_status_divider_marginTop">20px</dimen>
|
<dimen name="module_och_taxi_order_status_divider_marginTop">20px</dimen>
|
||||||
@@ -24,4 +24,5 @@
|
|||||||
<dimen name="module_och_taxi_order_distance_anchor_textSize">32px</dimen>
|
<dimen name="module_och_taxi_order_distance_anchor_textSize">32px</dimen>
|
||||||
<dimen name="module_och_taxi_order_distance_textSize">36px</dimen>
|
<dimen name="module_och_taxi_order_distance_textSize">36px</dimen>
|
||||||
<dimen name="module_och_taxi_order_distance_marginRight">17px</dimen>
|
<dimen name="module_och_taxi_order_distance_marginRight">17px</dimen>
|
||||||
|
<dimen name="module_och_taxi_order_text_marginRight">31.5px</dimen>
|
||||||
</resources>
|
</resources>
|
||||||
@@ -24,4 +24,5 @@
|
|||||||
<dimen name="module_och_taxi_order_distance_anchor_textSize">20px</dimen>
|
<dimen name="module_och_taxi_order_distance_anchor_textSize">20px</dimen>
|
||||||
<dimen name="module_och_taxi_order_distance_textSize">24px</dimen>
|
<dimen name="module_och_taxi_order_distance_textSize">24px</dimen>
|
||||||
<dimen name="module_och_taxi_order_distance_marginRight">17px</dimen>
|
<dimen name="module_och_taxi_order_distance_marginRight">17px</dimen>
|
||||||
|
<dimen name="module_och_taxi_order_text_marginRight">22.5px</dimen>
|
||||||
</resources>
|
</resources>
|
||||||
@@ -57,7 +57,7 @@ public class SlidePanelView extends View {
|
|||||||
private final Paint blockPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
|
private final Paint blockPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
|
||||||
private final Paint textPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
|
private final Paint textPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
|
||||||
|
|
||||||
private static int textSize = 40;
|
private static int textSize = 67;
|
||||||
private static int BLOCK_START_X = 15;
|
private static int BLOCK_START_X = 15;
|
||||||
private static int BLOCK_START_Y = 15;
|
private static int BLOCK_START_Y = 15;
|
||||||
private static int NORMAL_TEXT_MARGIN_LEFT = 40;
|
private static int NORMAL_TEXT_MARGIN_LEFT = 40;
|
||||||
|
|||||||
@@ -0,0 +1,16 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<item android:state_checked="true">
|
||||||
|
<shape android:shape="rectangle">
|
||||||
|
<corners android:bottomLeftRadius="30px" android:bottomRightRadius="70px" android:topLeftRadius="70px" android:topRightRadius="30px" />
|
||||||
|
<gradient android:angle="315" android:endColor="#2B6EFF" android:startColor="#2B6EFF" />
|
||||||
|
</shape>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<shape android:shape="rectangle">
|
||||||
|
<corners android:bottomLeftRadius="30px" android:bottomRightRadius="70px" android:topLeftRadius="70px" android:topRightRadius="30px" />
|
||||||
|
<gradient android:angle="315" android:endColor="#3B4577" android:startColor="#3B4577" />
|
||||||
|
</shape>
|
||||||
|
</item>
|
||||||
|
</selector>
|
||||||
|
|
||||||
|
Before Width: | Height: | Size: 4.8 KiB After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 2.3 KiB |
@@ -2,13 +2,13 @@
|
|||||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
<item android:state_checked="true">
|
<item android:state_checked="true">
|
||||||
<shape android:shape="rectangle">
|
<shape android:shape="rectangle">
|
||||||
<corners android:bottomLeftRadius="20px" android:bottomRightRadius="45px" android:topLeftRadius="45px" android:topRightRadius="20px" />
|
<corners android:bottomLeftRadius="30px" android:bottomRightRadius="70px" android:topLeftRadius="70px" android:topRightRadius="30px" />
|
||||||
<gradient android:angle="315" android:endColor="#2B6EFF" android:startColor="#2B6EFF" />
|
<gradient android:angle="315" android:endColor="#2B6EFF" android:startColor="#2B6EFF" />
|
||||||
</shape>
|
</shape>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<shape android:shape="rectangle">
|
<shape android:shape="rectangle">
|
||||||
<corners android:bottomLeftRadius="20px" android:bottomRightRadius="45px" android:topLeftRadius="45px" android:topRightRadius="20px" />
|
<corners android:bottomLeftRadius="30px" android:bottomRightRadius="70px" android:topLeftRadius="70px" android:topRightRadius="30px" />
|
||||||
<gradient android:angle="315" android:endColor="#3B4577" android:startColor="#3B4577" />
|
<gradient android:angle="315" android:endColor="#3B4577" android:startColor="#3B4577" />
|
||||||
</shape>
|
</shape>
|
||||||
</item>
|
</item>
|
||||||
|
|||||||
@@ -1,10 +1,14 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:shape="rectangle">
|
android:shape="oval">
|
||||||
<corners android:radius="@dimen/module_mogo_och_autopilot_status_bg_corner" />
|
<!-- <corners android:radius="@dimen/module_mogo_och_autopilot_status_bg_corner" />-->
|
||||||
<gradient
|
<gradient
|
||||||
android:startColor="#323C6F"
|
android:startColor="#323C6F"
|
||||||
android:endColor="#323C6F"
|
android:endColor="#323C6F"
|
||||||
android:angle="315"/>
|
android:angle="315"
|
||||||
|
/>
|
||||||
|
<size
|
||||||
|
android:width="120px"
|
||||||
|
android:height="120px"
|
||||||
|
/>
|
||||||
</shape>
|
</shape>
|
||||||
@@ -2,7 +2,7 @@
|
|||||||
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
|
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
<item>
|
<item>
|
||||||
<shape>
|
<shape>
|
||||||
<corners android:radius="17px" />
|
<corners android:radius="32px" />
|
||||||
<solid android:color="#3B4577"/>
|
<solid android:color="#3B4577"/>
|
||||||
</shape>
|
</shape>
|
||||||
</item>
|
</item>
|
||||||
@@ -12,7 +12,7 @@
|
|||||||
android:right="3px"
|
android:right="3px"
|
||||||
android:top="3px">
|
android:top="3px">
|
||||||
<shape>
|
<shape>
|
||||||
<corners android:radius="17px" />
|
<corners android:radius="32px" />
|
||||||
<solid android:color="#3B4577"/>
|
<solid android:color="#3B4577"/>
|
||||||
</shape>
|
</shape>
|
||||||
</item>
|
</item>
|
||||||
|
|||||||
@@ -31,7 +31,8 @@
|
|||||||
<dimen name="module_mogo_och_autopilot_order_bg_height">414px</dimen>
|
<dimen name="module_mogo_och_autopilot_order_bg_height">414px</dimen>
|
||||||
|
|
||||||
|
|
||||||
<dimen name="module_mogo_och_autopilot_status_text_size">44px</dimen>
|
<!-- <dimen name="module_mogo_och_autopilot_status_text_size">44px</dimen>-->
|
||||||
|
<dimen name="module_mogo_och_autopilot_status_text_size">49px</dimen>
|
||||||
<dimen name="module_mogo_och_autopilot_status_text_padding_top">13px</dimen>
|
<dimen name="module_mogo_och_autopilot_status_text_padding_top">13px</dimen>
|
||||||
<dimen name="module_mogo_och_autopilot_status_text_drawable_padding">12px</dimen>
|
<dimen name="module_mogo_och_autopilot_status_text_drawable_padding">12px</dimen>
|
||||||
<dimen name="module_mogo_och_autopilot_status_text_m_l">350px</dimen>
|
<dimen name="module_mogo_och_autopilot_status_text_m_l">350px</dimen>
|
||||||
|
|||||||
@@ -171,7 +171,9 @@ ext {
|
|||||||
|
|
||||||
// obu sdk
|
// obu sdk
|
||||||
obusdk : "com.zhidao.enterprise.smartv2x:smartv2x:1.0.0.3",
|
obusdk : "com.zhidao.enterprise.smartv2x:smartv2x:1.0.0.3",
|
||||||
mebulaobu : 'com.zhidao.support.nebulaobu:nebulaobu:1.0.0.3',
|
// mebulaobu : 'com.zhidao.support.nebulaobu:nebulaobu:1.0.0.3',
|
||||||
|
mogoobu : 'com.zhidao.support.obu:mogoobu:1.0.0.2',
|
||||||
|
|
||||||
// 左侧面板
|
// 左侧面板
|
||||||
moduleleftpanel : "com.mogo.module:module-left-panel:${MOGO_MODULE_LEFT_PANEL_VERSION}",
|
moduleleftpanel : "com.mogo.module:module-left-panel:${MOGO_MODULE_LEFT_PANEL_VERSION}",
|
||||||
// 左侧面板空实现
|
// 左侧面板空实现
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ public abstract class SubscribeImpl< T extends BaseData > implements Observer< T
|
|||||||
@Override
|
@Override
|
||||||
public void onNext( T o ) {
|
public void onNext( T o ) {
|
||||||
if ( o != null ) {
|
if ( o != null ) {
|
||||||
if ( o.code != 0 ) {
|
if ( o.code != 0 && o.code!= 200 ) {
|
||||||
onError( o.msg, o.code );
|
onError( o.msg, o.code );
|
||||||
} else {
|
} else {
|
||||||
onSuccess( o );
|
onSuccess( o );
|
||||||
|
|||||||
@@ -353,6 +353,9 @@ public class AMapViewWrapper implements IMogoMapView,
|
|||||||
setUIMode(ui);
|
setUIMode(ui);
|
||||||
break;
|
break;
|
||||||
case Type_VR:
|
case Type_VR:
|
||||||
|
if (DebugConfig.getCarMachineType() == DebugConfig.CAR_MACHINE_TYPE_LENOVO) {
|
||||||
|
mMapView.getMapAutoViewHelper().setScaleVRMode(true);
|
||||||
|
}
|
||||||
mMapView.getMapAutoViewHelper().setMapStyle(MapAutoApi.MAP_STYLE_VR);
|
mMapView.getMapAutoViewHelper().setMapStyle(MapAutoApi.MAP_STYLE_VR);
|
||||||
return;
|
return;
|
||||||
case Type_Light:
|
case Type_Light:
|
||||||
|
|||||||
@@ -100,6 +100,7 @@ public class ObjectUtils {
|
|||||||
.setFlat( opt.isFlat() )
|
.setFlat( opt.isFlat() )
|
||||||
.visible( opt.isVisible() )
|
.visible( opt.isVisible() )
|
||||||
.infoWindowEnable( opt.isInifoWindowEnable() )
|
.infoWindowEnable( opt.isInifoWindowEnable() )
|
||||||
|
.scale(opt.getScale())
|
||||||
.alpha( opt.getAlpha() )
|
.alpha( opt.getAlpha() )
|
||||||
// .draggable( opt.isDraggable() )
|
// .draggable( opt.isDraggable() )
|
||||||
.setInfoWindowOffset( opt.getOffsetX(), opt.getOffsetY() )
|
.setInfoWindowOffset( opt.getOffsetX(), opt.getOffsetY() )
|
||||||
|
|||||||
@@ -43,6 +43,9 @@ public class MogoMarkerOptions extends Observable {
|
|||||||
// 设置Marker覆盖物的透明度
|
// 设置Marker覆盖物的透明度
|
||||||
private float alpha = 1.0f;
|
private float alpha = 1.0f;
|
||||||
|
|
||||||
|
// 设置Marker覆盖物的缩放
|
||||||
|
private float scale = 1.0f;
|
||||||
|
|
||||||
// Marker覆盖物的坐标是否是Gps
|
// Marker覆盖物的坐标是否是Gps
|
||||||
private boolean isGps = false;
|
private boolean isGps = false;
|
||||||
|
|
||||||
@@ -220,6 +223,12 @@ public class MogoMarkerOptions extends Observable {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public MogoMarkerOptions scale( float scale ) {
|
||||||
|
this.scale = scale;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public MogoMarkerOptions gps( boolean gps ) {
|
public MogoMarkerOptions gps( boolean gps ) {
|
||||||
isGps = gps;
|
isGps = gps;
|
||||||
return this;
|
return this;
|
||||||
@@ -326,6 +335,10 @@ public class MogoMarkerOptions extends Observable {
|
|||||||
return alpha;
|
return alpha;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public float getScale() {
|
||||||
|
return scale;
|
||||||
|
}
|
||||||
|
|
||||||
public boolean isGps() {
|
public boolean isGps() {
|
||||||
return isGps;
|
return isGps;
|
||||||
}
|
}
|
||||||
@@ -403,6 +416,7 @@ public class MogoMarkerOptions extends Observable {
|
|||||||
", visible=" + visible +
|
", visible=" + visible +
|
||||||
", inifoWindowEnable=" + inifoWindowEnable +
|
", inifoWindowEnable=" + inifoWindowEnable +
|
||||||
", alpha=" + alpha +
|
", alpha=" + alpha +
|
||||||
|
" ,scale=" + scale+
|
||||||
", isGps=" + isGps +
|
", isGps=" + isGps +
|
||||||
", u=" + u +
|
", u=" + u +
|
||||||
", v=" + v +
|
", v=" + v +
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ dependencies {
|
|||||||
implementation rootProject.ext.dependencies.androidxappcompat
|
implementation rootProject.ext.dependencies.androidxappcompat
|
||||||
implementation rootProject.ext.dependencies.androidxconstraintlayout
|
implementation rootProject.ext.dependencies.androidxconstraintlayout
|
||||||
implementation rootProject.ext.dependencies.arouter
|
implementation rootProject.ext.dependencies.arouter
|
||||||
|
implementation rootProject.ext.dependencies.rxandroid
|
||||||
|
|
||||||
annotationProcessor rootProject.ext.dependencies.aroutercompiler
|
annotationProcessor rootProject.ext.dependencies.aroutercompiler
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,11 @@
|
|||||||
|
package com.mogo.module.adas;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by XuYong on 2021/5/28 15:24
|
||||||
|
*/
|
||||||
|
public class AdasConstant {
|
||||||
|
public static final String HOST_DEV = "http://dzt-test.zhidaohulian.com";
|
||||||
|
public static final String HOST_TEST = "http://dzt-test.zhidaohulian.com";
|
||||||
|
public static final String HOST_DEMO = "http://dzt-show.zhidaohulian.com";
|
||||||
|
public static final String HOST_PRODUCT = "https://dzt.zhidaohulian.com";
|
||||||
|
}
|
||||||
@@ -1,7 +1,14 @@
|
|||||||
package com.mogo.module.adas;
|
package com.mogo.module.adas;
|
||||||
|
|
||||||
|
import android.os.RemoteException;
|
||||||
|
|
||||||
import com.google.gson.Gson;
|
import com.google.gson.Gson;
|
||||||
|
import com.mogo.cloud.passport.MoGoAiCloudClientConfig;
|
||||||
|
import com.mogo.commons.data.BaseData;
|
||||||
|
import com.mogo.commons.network.SubscribeImpl;
|
||||||
|
import com.mogo.module.common.MogoApisHandler;
|
||||||
import com.mogo.utils.logger.Logger;
|
import com.mogo.utils.logger.Logger;
|
||||||
|
import com.mogo.utils.network.RequestOptions;
|
||||||
import com.mogo.utils.network.utils.GsonUtil;
|
import com.mogo.utils.network.utils.GsonUtil;
|
||||||
import com.zhidao.autopilotservice.model.AdasAIDLAutopilotArriveModel;
|
import com.zhidao.autopilotservice.model.AdasAIDLAutopilotArriveModel;
|
||||||
import com.zhidao.autopilotservice.model.AdasAIDLAutopilotStateModel;
|
import com.zhidao.autopilotservice.model.AdasAIDLAutopilotStateModel;
|
||||||
@@ -18,6 +25,18 @@ import com.zhidao.support.adas.high.bean.WarnMessageInfo;
|
|||||||
import com.zhidao.support.adas.high.common.MsgActionType;
|
import com.zhidao.support.adas.high.common.MsgActionType;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
|
import io.reactivex.Flowable;
|
||||||
|
import io.reactivex.android.schedulers.AndroidSchedulers;
|
||||||
|
import io.reactivex.annotations.NonNull;
|
||||||
|
import io.reactivex.disposables.Disposable;
|
||||||
|
import io.reactivex.functions.Consumer;
|
||||||
|
import io.reactivex.schedulers.Schedulers;
|
||||||
|
import okhttp3.MediaType;
|
||||||
|
import okhttp3.RequestBody;
|
||||||
|
|
||||||
|
import static com.mogo.commons.context.ContextHolderUtil.getContext;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by XuYong on 2021/4/25 14:43
|
* Created by XuYong on 2021/4/25 14:43
|
||||||
@@ -25,14 +44,22 @@ import java.util.ArrayList;
|
|||||||
public class AdasEventManager implements OnAdasListener, OnAdasMsgConnectStatusListener {
|
public class AdasEventManager implements OnAdasListener, OnAdasMsgConnectStatusListener {
|
||||||
|
|
||||||
private final String TAG = "AdasEventManager";
|
private final String TAG = "AdasEventManager";
|
||||||
|
|
||||||
private final Gson gson;
|
private final Gson gson;
|
||||||
|
|
||||||
private final ArrayList<AdasDataListener> iAdasEventListeners = new ArrayList<>();
|
private final ArrayList<AdasDataListener> iAdasEventListeners = new ArrayList<>();
|
||||||
private final ArrayList<AdasStatusListener> iAdasStatusListeners = new ArrayList<>();
|
private final ArrayList<AdasStatusListener> iAdasStatusListeners = new ArrayList<>();
|
||||||
|
private IAdasApiService mAdasApiService;
|
||||||
|
private Disposable uploadAutopilotStatus;
|
||||||
|
//自动驾驶状态
|
||||||
|
private int mCurrentAutopilotStatus = -1;
|
||||||
|
//自动驾驶车速度
|
||||||
|
private float mCurrentAutopilotSpeed = 0;
|
||||||
|
private Disposable mdDisposable;
|
||||||
|
//自动驾驶状态
|
||||||
|
private AutopilotStatus.ValuesBean mAutopilotStatus = null;
|
||||||
|
|
||||||
public AdasEventManager() {
|
public AdasEventManager() {
|
||||||
gson = GsonUtil.getGson();
|
gson = GsonUtil.getGson();
|
||||||
|
mAdasApiService = MogoApisHandler.getInstance().getApis().getNetworkApi().create( IAdasApiService.class, AdasConstant.HOST_PRODUCT );
|
||||||
}
|
}
|
||||||
|
|
||||||
public void addEventListener(AdasDataListener listener) {
|
public void addEventListener(AdasDataListener listener) {
|
||||||
@@ -65,6 +92,11 @@ public class AdasEventManager implements OnAdasListener, OnAdasMsgConnectStatusL
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void removeStatusListener() {
|
||||||
|
Logger.d(TAG,"注销adas状态事件监听");
|
||||||
|
iAdasStatusListeners.clear();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onWarnMessage(WarnMessageInfo warnMessageInfo) {
|
public void onWarnMessage(WarnMessageInfo warnMessageInfo) {
|
||||||
Logger.d(TAG,"onWarnMessage " + warnMessageInfo);
|
Logger.d(TAG,"onWarnMessage " + warnMessageInfo);
|
||||||
@@ -145,7 +177,6 @@ public class AdasEventManager implements OnAdasListener, OnAdasMsgConnectStatusL
|
|||||||
AutopilotStatus.ValuesBean autopilotStatusValues = autopilotStatus.getValues();
|
AutopilotStatus.ValuesBean autopilotStatusValues = autopilotStatus.getValues();
|
||||||
AutopilotStatus.ValuesBean mAutopilotStatus;
|
AutopilotStatus.ValuesBean mAutopilotStatus;
|
||||||
|
|
||||||
|
|
||||||
if (autopilotStatusValues != null) {
|
if (autopilotStatusValues != null) {
|
||||||
AdasAIDLAutopilotStateModel adasAIDLAutopilotStateModel=new AdasAIDLAutopilotStateModel();
|
AdasAIDLAutopilotStateModel adasAIDLAutopilotStateModel=new AdasAIDLAutopilotStateModel();
|
||||||
adasAIDLAutopilotStateModel.setReason(autopilotStatusValues.getReason());
|
adasAIDLAutopilotStateModel.setReason(autopilotStatusValues.getReason());
|
||||||
@@ -154,14 +185,15 @@ public class AdasEventManager implements OnAdasListener, OnAdasMsgConnectStatusL
|
|||||||
float speed = autopilotStatusValues.getSpeed();
|
float speed = autopilotStatusValues.getSpeed();
|
||||||
adasAIDLAutopilotStateModel.setState(state);
|
adasAIDLAutopilotStateModel.setState(state);
|
||||||
adasAIDLAutopilotStateModel.setSpeed(speed);
|
adasAIDLAutopilotStateModel.setSpeed(speed);
|
||||||
|
mCurrentAutopilotStatus = state;
|
||||||
|
mCurrentAutopilotSpeed = speed;
|
||||||
for (AdasDataListener listener:iAdasEventListeners) {
|
for (AdasDataListener listener:iAdasEventListeners) {
|
||||||
if (listener != null) {
|
if (listener != null) {
|
||||||
listener.notifyAutopilotState(adasAIDLAutopilotStateModel);
|
listener.notifyAutopilotState(adasAIDLAutopilotStateModel);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -174,8 +206,12 @@ public class AdasEventManager implements OnAdasListener, OnAdasMsgConnectStatusL
|
|||||||
if (endLatLon != null) {
|
if (endLatLon != null) {
|
||||||
AdasAIDLAutopilotArriveModel adasAIDLAutopilotArriveModel = new AdasAIDLAutopilotArriveModel();
|
AdasAIDLAutopilotArriveModel adasAIDLAutopilotArriveModel = new AdasAIDLAutopilotArriveModel();
|
||||||
adasAIDLAutopilotArriveModel.setCarType(result.getCarType());
|
adasAIDLAutopilotArriveModel.setCarType(result.getCarType());
|
||||||
adasAIDLAutopilotArriveModel.setLat(endLatLon.getLat());
|
double lon = endLatLon.getLon();
|
||||||
adasAIDLAutopilotArriveModel.setLon(endLatLon.getLon());
|
double lat = endLatLon.getLat();
|
||||||
|
adasAIDLAutopilotArriveModel.setLat(lat);
|
||||||
|
adasAIDLAutopilotArriveModel.setLon(lon);
|
||||||
|
Logger.d(TAG,"autopilotArrive reportSite");
|
||||||
|
reportSite(lon, lat);
|
||||||
for (AdasDataListener listener:iAdasEventListeners) {
|
for (AdasDataListener listener:iAdasEventListeners) {
|
||||||
if (listener != null) {
|
if (listener != null) {
|
||||||
listener.autopilotArrive(adasAIDLAutopilotArriveModel);
|
listener.autopilotArrive(adasAIDLAutopilotArriveModel);
|
||||||
@@ -197,6 +233,7 @@ public class AdasEventManager implements OnAdasListener, OnAdasMsgConnectStatusL
|
|||||||
for (AdasStatusListener listener :iAdasStatusListeners) {
|
for (AdasStatusListener listener :iAdasStatusListeners) {
|
||||||
listener.onServiceConnected();
|
listener.onServiceConnected();
|
||||||
}
|
}
|
||||||
|
updateDriveStatusTask();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -206,4 +243,78 @@ public class AdasEventManager implements OnAdasListener, OnAdasMsgConnectStatusL
|
|||||||
listener.onServiceDisconnected();
|
listener.onServiceDisconnected();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void updateDriveStatusTask() {
|
||||||
|
Logger.d(TAG,"updateDriveStatusTask");
|
||||||
|
mdDisposable = Flowable.interval(0,5, TimeUnit.SECONDS)
|
||||||
|
.subscribeOn(Schedulers.io())
|
||||||
|
.unsubscribeOn(Schedulers.io())
|
||||||
|
.observeOn(AndroidSchedulers.mainThread())
|
||||||
|
.subscribe(new Consumer<Long>() {
|
||||||
|
@Override
|
||||||
|
public void accept(@NonNull Long aLong) throws Exception {
|
||||||
|
updateDriveStatus();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
private void updateDriveStatus() {
|
||||||
|
String sn = MoGoAiCloudClientConfig.getInstance().getSn();
|
||||||
|
AutonomousDriveStatusBean request = new AutonomousDriveStatusBean(sn, mCurrentAutopilotStatus, mCurrentAutopilotSpeed);
|
||||||
|
RequestBody requestBody = RequestBody.create( MediaType.get( "application/json;charset=UTF-8" ), GsonUtil.jsonFromObject( request ) );
|
||||||
|
mAdasApiService.updateAutonomousDriveStatus(requestBody).
|
||||||
|
subscribeOn( Schedulers.io() ).observeOn( AndroidSchedulers.mainThread() )
|
||||||
|
.subscribe(new SubscribeImpl<BaseData>(RequestOptions.create(getContext())) {
|
||||||
|
@Override
|
||||||
|
public void onError(String message, int code) {
|
||||||
|
super.onError(message, code);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onError(Throwable e) {
|
||||||
|
super.onError(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onSuccess(BaseData o) {
|
||||||
|
super.onSuccess(o);
|
||||||
|
Logger.d(TAG,"updateDriveStatus success");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
private void reportSite( double lon, double lat) {
|
||||||
|
String sn = MoGoAiCloudClientConfig.getInstance().getSn();
|
||||||
|
ReportSiteBean reportSiteBean = new ReportSiteBean(sn, lon, lat);
|
||||||
|
RequestBody requestBody = RequestBody.create( MediaType.get( "application/json;charset=UTF-8" ), GsonUtil.jsonFromObject( reportSiteBean ) );
|
||||||
|
mAdasApiService.updateReportSite(requestBody).
|
||||||
|
subscribeOn( Schedulers.io() ).observeOn( AndroidSchedulers.mainThread() )
|
||||||
|
.subscribe(new SubscribeImpl<BaseData>(RequestOptions.create(getContext())) {
|
||||||
|
@Override
|
||||||
|
public void onError(String message, int code) {
|
||||||
|
super.onError(message, code);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onError(Throwable e) {
|
||||||
|
super.onError(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onSuccess(BaseData o) {
|
||||||
|
super.onSuccess(o);
|
||||||
|
Logger.d(TAG,"autopilotArrive success");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public AdasAIDLAutopilotStateModel autopilotStateCall() {
|
||||||
|
AdasAIDLAutopilotStateModel adasAIDLAutopilotStateModel=new AdasAIDLAutopilotStateModel();
|
||||||
|
if (mAutopilotStatus != null) {
|
||||||
|
adasAIDLAutopilotStateModel.setSpeed(mAutopilotStatus.getSpeed());
|
||||||
|
adasAIDLAutopilotStateModel.setState(mAutopilotStatus.getState());
|
||||||
|
adasAIDLAutopilotStateModel.setReason(mAutopilotStatus.getReason());
|
||||||
|
}
|
||||||
|
return adasAIDLAutopilotStateModel;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,6 +6,8 @@ import com.alibaba.android.arouter.facade.annotation.Route;
|
|||||||
import com.alibaba.android.arouter.facade.template.IProvider;
|
import com.alibaba.android.arouter.facade.template.IProvider;
|
||||||
import com.mogo.service.MogoServicePaths;
|
import com.mogo.service.MogoServicePaths;
|
||||||
import com.mogo.utils.logger.Logger;
|
import com.mogo.utils.logger.Logger;
|
||||||
|
import com.zhidao.autopilot.support.api.AutopilotServiceManage;
|
||||||
|
import com.zhidao.autopilotservice.model.AdasAIDLAutopilotStateModel;
|
||||||
import com.zhidao.support.adas.high.AdasManager;
|
import com.zhidao.support.adas.high.AdasManager;
|
||||||
|
|
||||||
|
|
||||||
@@ -51,8 +53,46 @@ public class AdasProvider implements IProvider {
|
|||||||
adasEventManager.removeStatusListener(listener);
|
adasEventManager.removeStatusListener(listener);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void removeAdasStatusListener() {
|
||||||
|
adasEventManager.removeStatusListener();
|
||||||
|
}
|
||||||
|
|
||||||
public void sendWsMessage(String msg) {
|
public void sendWsMessage(String msg) {
|
||||||
AdasManager.getInstance().aiCloudToAdasData(msg);
|
AdasManager.getInstance().aiCloudToAdasData(msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void cancelPolit() {
|
||||||
|
if (AdasManager.getInstance().isSocketConnect()) {
|
||||||
|
AdasManager.getInstance().controlAutopilotCarHead();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void hideAdas() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void showAdas() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void killAdas() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//原ADAS sdk中为空实现
|
||||||
|
public void settingCarModelListInfo(String msg) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//原ADAS sdk中为空实现
|
||||||
|
public void setSettingStatus(boolean show) {
|
||||||
|
}
|
||||||
|
|
||||||
|
//原ADAS sdk中为空实现
|
||||||
|
public void setUseAlgorithm(boolean open) {
|
||||||
|
}
|
||||||
|
|
||||||
|
public AdasAIDLAutopilotStateModel autopilotStateCall() {
|
||||||
|
return adasEventManager.autopilotStateCall();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,41 @@
|
|||||||
|
package com.mogo.module.adas;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by XuYong on 2021/5/28 16:12
|
||||||
|
*/
|
||||||
|
public class AutonomousDriveStatusBean {
|
||||||
|
|
||||||
|
private String sn;
|
||||||
|
private int status;
|
||||||
|
private float vehicleSpeed;
|
||||||
|
|
||||||
|
public AutonomousDriveStatusBean(String sn, int status, float vehicleSpeed) {
|
||||||
|
this.sn = sn;
|
||||||
|
this.status = status;
|
||||||
|
this.vehicleSpeed = vehicleSpeed;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getSn() {
|
||||||
|
return sn;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSn(String sn) {
|
||||||
|
this.sn = sn;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getStatus() {
|
||||||
|
return status;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setStatus(int status) {
|
||||||
|
this.status = status;
|
||||||
|
}
|
||||||
|
|
||||||
|
public float getVehicleSpeed() {
|
||||||
|
return vehicleSpeed;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setVehicleSpeed(float vehicleSpeed) {
|
||||||
|
this.vehicleSpeed = vehicleSpeed;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
package com.mogo.module.adas;
|
||||||
|
|
||||||
|
import com.mogo.commons.data.BaseData;
|
||||||
|
|
||||||
|
import io.reactivex.Observable;
|
||||||
|
import okhttp3.RequestBody;
|
||||||
|
import retrofit2.http.Body;
|
||||||
|
import retrofit2.http.Headers;
|
||||||
|
import retrofit2.http.POST;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by XuYong on 2021/5/28 14:24
|
||||||
|
*/
|
||||||
|
public interface IAdasApiService {
|
||||||
|
|
||||||
|
//上传自动驾驶状态接口
|
||||||
|
@Headers( {"Content-Type:application/json;charset=UTF-8"} )
|
||||||
|
@POST( "/yycp-carDataService/autonomousDrive/updateAutonomousDriveStatus" )
|
||||||
|
Observable<BaseData> updateAutonomousDriveStatus(@Body RequestBody requestBody );
|
||||||
|
//站点上报
|
||||||
|
@Headers( {"Content-Type:application/json;charset=UTF-8"} )
|
||||||
|
@POST( "/yycp-carDataService/autonomousDrive/reportSite" )
|
||||||
|
Observable<BaseData> updateReportSite(@Body RequestBody requestBody );
|
||||||
|
}
|
||||||
@@ -0,0 +1,40 @@
|
|||||||
|
package com.mogo.module.adas;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by XuYong on 2021/5/31 16:24
|
||||||
|
*/
|
||||||
|
public class ReportSiteBean {
|
||||||
|
private String sn;
|
||||||
|
private double lon;
|
||||||
|
private double lat;
|
||||||
|
|
||||||
|
public ReportSiteBean(String sn, double lon, double lat) {
|
||||||
|
this.sn = sn;
|
||||||
|
this.lon = lon;
|
||||||
|
this.lat = lat;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getSn() {
|
||||||
|
return sn;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSn(String sn) {
|
||||||
|
this.sn = sn;
|
||||||
|
}
|
||||||
|
|
||||||
|
public double getLon() {
|
||||||
|
return lon;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLon(double lon) {
|
||||||
|
this.lon = lon;
|
||||||
|
}
|
||||||
|
|
||||||
|
public double getLat() {
|
||||||
|
return lat;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLat(double lat) {
|
||||||
|
this.lat = lat;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -380,10 +380,6 @@ public class EntranceFragment extends MvpFragment<EntranceView, EntrancePresente
|
|||||||
mSwitchMapModeImage = (ImageView) findViewById(R.id.module_switch_model_icon);
|
mSwitchMapModeImage = (ImageView) findViewById(R.id.module_switch_model_icon);
|
||||||
mSwitchMapModeLayout.setOnClickListener(clickListener);
|
mSwitchMapModeLayout.setOnClickListener(clickListener);
|
||||||
mSwitchText = (TextView) findViewById(R.id.module_switch_model_text);
|
mSwitchText = (TextView) findViewById(R.id.module_switch_model_text);
|
||||||
|
|
||||||
if (DebugConfig.getCarMachineType() == DebugConfig.CAR_MACHINE_TYPE_LENOVO) {
|
|
||||||
enterVrMode();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private int debugPanelClickCount = 0;
|
private int debugPanelClickCount = 0;
|
||||||
@@ -393,7 +389,6 @@ public class EntranceFragment extends MvpFragment<EntranceView, EntrancePresente
|
|||||||
private Group groupFix;
|
private Group groupFix;
|
||||||
|
|
||||||
private void enterVrMode() {
|
private void enterVrMode() {
|
||||||
if (!localIsVrMode) {
|
|
||||||
tvEnterVrMode.setVisibility(View.GONE);
|
tvEnterVrMode.setVisibility(View.GONE);
|
||||||
mMove2CurrentLocation.setVisibility(View.GONE);
|
mMove2CurrentLocation.setVisibility(View.GONE);
|
||||||
mUploadRoadCondition.setVisibility(View.GONE);
|
mUploadRoadCondition.setVisibility(View.GONE);
|
||||||
@@ -415,11 +410,9 @@ public class EntranceFragment extends MvpFragment<EntranceView, EntrancePresente
|
|||||||
flSpeed.setVisibility(View.VISIBLE);
|
flSpeed.setVisibility(View.VISIBLE);
|
||||||
mSwitchMapModeLayout.setVisibility(View.VISIBLE);
|
mSwitchMapModeLayout.setVisibility(View.VISIBLE);
|
||||||
mApis.getV2XListenerManager().changeTipWindowStatusForListener(ACTION_V2X_REMOVE_TIP_WINDOW);
|
mApis.getV2XListenerManager().changeTipWindowStatusForListener(ACTION_V2X_REMOVE_TIP_WINDOW);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void exitVrMode() {
|
private void exitVrMode() {
|
||||||
if (localIsVrMode) {
|
|
||||||
EntranceViewHolder.getInstance().forceHideNoticeView();
|
EntranceViewHolder.getInstance().forceHideNoticeView();
|
||||||
tvEnterVrMode.setVisibility(View.VISIBLE);
|
tvEnterVrMode.setVisibility(View.VISIBLE);
|
||||||
mMove2CurrentLocation.setVisibility(View.VISIBLE);
|
mMove2CurrentLocation.setVisibility(View.VISIBLE);
|
||||||
@@ -443,7 +436,6 @@ public class EntranceFragment extends MvpFragment<EntranceView, EntrancePresente
|
|||||||
flSpeed.setVisibility(View.GONE);
|
flSpeed.setVisibility(View.GONE);
|
||||||
mSwitchMapModeLayout.setVisibility(View.GONE);
|
mSwitchMapModeLayout.setVisibility(View.GONE);
|
||||||
clTrafficLight.setVisibility(View.GONE);
|
clTrafficLight.setVisibility(View.GONE);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void debugCrashWarn() {
|
private void debugCrashWarn() {
|
||||||
@@ -722,29 +714,21 @@ public class EntranceFragment extends MvpFragment<EntranceView, EntrancePresente
|
|||||||
TopViewAnimHelper.getInstance().setIMogoMapUIController(mMApUIController);
|
TopViewAnimHelper.getInstance().setIMogoMapUIController(mMApUIController);
|
||||||
TopViewNoLinkageAnimHelper.getInstance().setIMogoMapUIController(mMApUIController);
|
TopViewNoLinkageAnimHelper.getInstance().setIMogoMapUIController(mMApUIController);
|
||||||
|
|
||||||
// 进入vr模式,不可缩放地图
|
|
||||||
if (DebugConfig.getCarMachineType() == DebugConfig.CAR_MACHINE_TYPE_LENOVO) {
|
|
||||||
UiThreadHandler.postDelayed(this::stepIntoVrMode, 3_500L);
|
|
||||||
}
|
|
||||||
|
|
||||||
mClickShareVoiceStrings =
|
mClickShareVoiceStrings =
|
||||||
getContext().getResources().getStringArray(R.array.click_share_voice_guide_array);
|
getContext().getResources().getStringArray(R.array.click_share_voice_guide_array);
|
||||||
mInnerGuideVoiceStrings =
|
mInnerGuideVoiceStrings =
|
||||||
getContext().getResources().getStringArray(R.array.search_voice_guide_inner_array);
|
getContext().getResources().getStringArray(R.array.search_voice_guide_inner_array);
|
||||||
mOuterGuideVoiceStrings =
|
mOuterGuideVoiceStrings =
|
||||||
getContext().getResources().getStringArray(R.array.search_voice_guide_outer_array);
|
getContext().getResources().getStringArray(R.array.search_voice_guide_outer_array);
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
//TODO 因为衡阳6.30交付没有2D模式,临时方案,进入vr模式,不可缩放地图
|
||||||
* 进入鹰眼模式,设置手势缩放地图失效
|
if (DebugConfig.getCarMachineType() == DebugConfig.CAR_MACHINE_TYPE_LENOVO) {
|
||||||
*/
|
// 进入鹰眼模式,设置手势缩放地图失效
|
||||||
private void stepIntoVrMode() {
|
Logger.d(TAG, "进入vr模式");
|
||||||
Logger.d(TAG, "进入vr模式");
|
mMApUIController.changeMapMode(EnumMapUI.Type_VR);
|
||||||
MogoApisHandler.getInstance()
|
MogoApisHandler.getInstance().getApis().getStatusManagerApi().setVrMode( TAG, true );
|
||||||
.getApis()
|
}
|
||||||
.getMapServiceApi()
|
|
||||||
.getMapUIController()
|
|
||||||
.openVrMode(false);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -7,9 +7,14 @@
|
|||||||
<!-- <stroke-->
|
<!-- <stroke-->
|
||||||
<!-- android:width="1dp"-->
|
<!-- android:width="1dp"-->
|
||||||
<!-- android:color="#182155" />-->
|
<!-- android:color="#182155" />-->
|
||||||
|
<!-- <corners-->
|
||||||
|
<!-- android:bottomLeftRadius="@dimen/dp_100"-->
|
||||||
|
<!-- android:bottomRightRadius="@dimen/dp_20"-->
|
||||||
|
<!-- android:topLeftRadius="@dimen/dp_20"-->
|
||||||
|
<!-- android:topRightRadius="@dimen/dp_100" />-->
|
||||||
<corners
|
<corners
|
||||||
android:bottomLeftRadius="@dimen/dp_100"
|
android:bottomLeftRadius="130px"
|
||||||
android:bottomRightRadius="@dimen/dp_20"
|
android:bottomRightRadius="30px"
|
||||||
android:topLeftRadius="@dimen/dp_20"
|
android:topLeftRadius="30px"
|
||||||
android:topRightRadius="@dimen/dp_100" />
|
android:topRightRadius="130px" />
|
||||||
</shape>
|
</shape>
|
||||||
@@ -5,7 +5,7 @@
|
|||||||
<dimen name="module_ext_speed_height">460px</dimen>
|
<dimen name="module_ext_speed_height">460px</dimen>
|
||||||
<dimen name="module_ext_arcView_width">320px</dimen>
|
<dimen name="module_ext_arcView_width">320px</dimen>
|
||||||
<dimen name="module_ext_arcView_height">320px</dimen>
|
<dimen name="module_ext_arcView_height">320px</dimen>
|
||||||
<dimen name="module_ext_arcView_stroke_with">15px</dimen>
|
<dimen name="module_ext_arcView_stroke_with">20px</dimen>
|
||||||
<dimen name="module_ext_arcView_center_text_size">110px</dimen>
|
<dimen name="module_ext_arcView_center_text_size">110px</dimen>
|
||||||
<dimen name="module_ext_arcView_des_text_size">40px</dimen>
|
<dimen name="module_ext_arcView_des_text_size">40px</dimen>
|
||||||
<dimen name="module_switch_map">279px</dimen>
|
<dimen name="module_switch_map">279px</dimen>
|
||||||
|
|||||||
@@ -69,7 +69,7 @@
|
|||||||
<item>提前看看出行路况,试试唤醒小智说,“中关村路况怎么样”</item>
|
<item>提前看看出行路况,试试唤醒小智说,“中关村路况怎么样”</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
|
|
||||||
<string name="module_map_model_normal">默认视角</string>
|
<string name="module_map_model_normal">近距视角</string>
|
||||||
<string name="module_map_model_faster">远距视角</string>
|
<string name="module_map_model_faster">远距视角</string>
|
||||||
|
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
@@ -437,7 +437,9 @@ public class MogoServices implements IMogoMapListener,
|
|||||||
// isNeedUploadCoordinatesDurationInTime() ) { //todo 实时在线车辆需要注释,否则在2D模式下不能展示
|
// isNeedUploadCoordinatesDurationInTime() ) { //todo 实时在线车辆需要注释,否则在2D模式下不能展示
|
||||||
// }
|
// }
|
||||||
//请求在线车辆数据,刷新地图在线车辆
|
//请求在线车辆数据,刷新地图在线车辆
|
||||||
MapMarkerManager.getInstance().getOnlineCarDataByAutoRefreshStrategy( ro.mLonLat );
|
if (!mLastStatusIsVr){
|
||||||
|
MapMarkerManager.getInstance().getOnlineCarDataByAutoRefreshStrategy( ro.mLonLat );
|
||||||
|
}
|
||||||
|
|
||||||
Logger.i( TAG, "刷新半径 = %s, 点 = %s, zoomLevel = %s, amount = %s", ro.mRadius, ro.mLonLat, mLastZoomLevel, ro.mAmount );
|
Logger.i( TAG, "刷新半径 = %s, 点 = %s, zoomLevel = %s, amount = %s", ro.mRadius, ro.mLonLat, mLastZoomLevel, ro.mAmount );
|
||||||
}
|
}
|
||||||
@@ -938,6 +940,8 @@ public class MogoServices implements IMogoMapListener,
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onMapModeChanged( EnumMapUI ui ) {
|
public void onMapModeChanged( EnumMapUI ui ) {
|
||||||
|
Log.i(TAG, "onMapModeChanged:" + ui);
|
||||||
|
clearAllData();
|
||||||
if ( ui == EnumMapUI.Type_VR ) {
|
if ( ui == EnumMapUI.Type_VR ) {
|
||||||
if ( !mLastStatusIsVr ) {
|
if ( !mLastStatusIsVr ) {
|
||||||
MogoApisHandler.getInstance().getApis().getStatusManagerApi().setVrMode( TAG, true );
|
MogoApisHandler.getInstance().getApis().getStatusManagerApi().setVrMode( TAG, true );
|
||||||
|
|||||||
@@ -8,7 +8,6 @@ import com.mogo.module.common.MogoApisHandler;
|
|||||||
import com.mogo.module.service.launchercard.LauncherCardRefresher;
|
import com.mogo.module.service.launchercard.LauncherCardRefresher;
|
||||||
import com.mogo.module.service.marker.MapMarkerManager;
|
import com.mogo.module.service.marker.MapMarkerManager;
|
||||||
import com.mogo.module.service.strategy.CarIconDisplayStrategy;
|
import com.mogo.module.service.strategy.CarIconDisplayStrategy;
|
||||||
import com.mogo.module.service.vrmode.VrModeController;
|
|
||||||
import com.mogo.service.statusmanager.IMogoStatusChangedListener;
|
import com.mogo.service.statusmanager.IMogoStatusChangedListener;
|
||||||
import com.mogo.service.statusmanager.StatusDescriptor;
|
import com.mogo.service.statusmanager.StatusDescriptor;
|
||||||
import com.mogo.utils.UiThreadHandler;
|
import com.mogo.utils.UiThreadHandler;
|
||||||
@@ -90,7 +89,6 @@ abstract class StatusChangedAdapter implements IMogoStatusChangedListener {
|
|||||||
MogoServices.getInstance().unregisterInternalUnWakeupWords();
|
MogoServices.getInstance().unregisterInternalUnWakeupWords();
|
||||||
MogoServices.getInstance().stopAutoRefreshStrategy();
|
MogoServices.getInstance().stopAutoRefreshStrategy();
|
||||||
}
|
}
|
||||||
VrModeController.getInstance().onMainPageResumeStatusChanged(resume);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onMainPageIsBackgroundStatusChanged(boolean isBackground) {
|
public void onMainPageIsBackgroundStatusChanged(boolean isBackground) {
|
||||||
@@ -163,7 +161,6 @@ abstract class StatusChangedAdapter implements IMogoStatusChangedListener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void onVrModeChanged(boolean isVrMode) {
|
public void onVrModeChanged(boolean isVrMode) {
|
||||||
VrModeController.getInstance().onVrModeChanged(isVrMode);
|
|
||||||
if (MarkerServiceHandler.getMogoStatusManager().isSeekHelping()) {
|
if (MarkerServiceHandler.getMogoStatusManager().isSeekHelping()) {
|
||||||
onSeekHelpingStatusChanged(true);
|
onSeekHelpingStatusChanged(true);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -236,6 +236,7 @@ public class CarIconDisplayStrategy {
|
|||||||
.icons(mBitmapFrames)
|
.icons(mBitmapFrames)
|
||||||
.period(20)
|
.period(20)
|
||||||
.zIndex(0)
|
.zIndex(0)
|
||||||
|
.scale(MarkerServiceHandler.getMogoStatusManager().isVrMode() ? 0.4f : 1.0f)
|
||||||
.autoManager(false)
|
.autoManager(false)
|
||||||
.anchor(0.5f, 0.5f)
|
.anchor(0.5f, 0.5f)
|
||||||
.position(MarkerServiceHandler.getMapService().getNavi(AbsMogoApplication.getApp()).getCarLocation2()));
|
.position(MarkerServiceHandler.getMapService().getNavi(AbsMogoApplication.getApp()).getCarLocation2()));
|
||||||
|
|||||||
|
After Width: | Height: | Size: 8.7 KiB |
@@ -94,7 +94,8 @@ dependencies {
|
|||||||
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
|
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
|
||||||
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
|
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
|
||||||
implementation project(':modules:mogo-module-obu')
|
implementation project(':modules:mogo-module-obu')
|
||||||
implementation rootProject.ext.dependencies.mebulaobu
|
// implementation rootProject.ext.dependencies.mebulaobu
|
||||||
|
implementation rootProject.ext.dependencies.mogoobu
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -38,11 +38,20 @@ import com.zhidao.mogo.module.obu.obu.IObuCallback;
|
|||||||
import com.zhidao.mogo.module.obu.obu.bean.MogoObuEventInfo;
|
import com.zhidao.mogo.module.obu.obu.bean.MogoObuEventInfo;
|
||||||
import com.zhidao.mogo.module.obu.obu.bean.MogoObuLocationInfo;
|
import com.zhidao.mogo.module.obu.obu.bean.MogoObuLocationInfo;
|
||||||
import com.zhidao.mogo.module.obu.obu.bean.MogoObuTrafficLightInfo;
|
import com.zhidao.mogo.module.obu.obu.bean.MogoObuTrafficLightInfo;
|
||||||
import com.zhidao.support.nebulaobu.NebulaObuClient;
|
//import com.zhidao.support.nebulaobu.NebulaObuClient;
|
||||||
import com.zhidao.support.nebulaobu.OnObuListener;
|
//import com.zhidao.support.nebulaobu.OnObuListener;
|
||||||
import com.zhidao.support.nebulaobu.model.ActiveSafetyInfo;
|
//import com.zhidao.support.nebulaobu.model.ActiveSafetyInfo;
|
||||||
import com.zhidao.support.nebulaobu.model.ObuInfo;
|
//import com.zhidao.support.nebulaobu.model.ObuInfo;
|
||||||
import com.zhidao.support.nebulaobu.model.ObuInfoMore;
|
//import com.zhidao.support.nebulaobu.model.ObuInfoMore;
|
||||||
|
|
||||||
|
import com.zhidao.support.obu.MogoObuManager;
|
||||||
|
import com.zhidao.support.obu.OnMogoObuListener;
|
||||||
|
import com.zhidao.support.obu.model.CvxAppInitIndInfo;
|
||||||
|
import com.zhidao.support.obu.model.CvxHvCarIndInfo;
|
||||||
|
import com.zhidao.support.obu.model.CvxHvInfoIndInfo;
|
||||||
|
import com.zhidao.support.obu.model.CvxRvInfoIndInfo;
|
||||||
|
import com.zhidao.support.obu.model.CvxSetConfigCfmInfo;
|
||||||
|
import com.zhidao.support.obu.model.CvxV2vThreatIndInfo;
|
||||||
|
|
||||||
import org.json.JSONArray;
|
import org.json.JSONArray;
|
||||||
import org.json.JSONObject;
|
import org.json.JSONObject;
|
||||||
@@ -94,9 +103,15 @@ public class V2XObuManager implements IObuCallback, Handler.Callback {
|
|||||||
obuManager.registerObuDataChangedListener(this);
|
obuManager.registerObuDataChangedListener(this);
|
||||||
|
|
||||||
//使用adas部门obu sdk (星云)
|
//使用adas部门obu sdk (星云)
|
||||||
NebulaObuClient.getInstance().init(context);
|
// NebulaObuClient.getInstance().init(context);
|
||||||
NebulaObuClient.getInstance().registerObu(100);
|
// NebulaObuClient.getInstance().registerObu(100);
|
||||||
NebulaObuClient.getInstance().registerObuListener(listener);
|
// NebulaObuClient.getInstance().registerObuListener(listener);
|
||||||
|
|
||||||
|
//自研obu
|
||||||
|
MogoObuManager.getInstance().init(context);
|
||||||
|
MogoObuManager.getInstance().connect();
|
||||||
|
MogoObuManager.getInstance().registerListener(mogoObuListener);
|
||||||
|
MogoObuManager.getInstance().unregisterListener();
|
||||||
|
|
||||||
// UiThreadHandler.postDelayed( () -> {
|
// UiThreadHandler.postDelayed( () -> {
|
||||||
// //TODO 测试
|
// //TODO 测试
|
||||||
@@ -109,52 +124,127 @@ public class V2XObuManager implements IObuCallback, Handler.Callback {
|
|||||||
context.registerReceiver(obuTypeExchangeReceiver, filter);
|
context.registerReceiver(obuTypeExchangeReceiver, filter);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private OnMogoObuListener mogoObuListener = new OnMogoObuListener() {
|
||||||
public void release() {
|
|
||||||
NebulaObuClient.getInstance().unregisterObu();
|
|
||||||
NebulaObuClient.getInstance().unregisterObuListener();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 星云obu数据监听
|
|
||||||
*/
|
|
||||||
private OnObuListener listener = new OnObuListener() {
|
|
||||||
@Override
|
@Override
|
||||||
public void onRegister() {
|
public void onConnected() {
|
||||||
|
//OBU连接成功
|
||||||
|
Logger.d("liyz", "onConnected ------> ");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onConnectFail(boolean isNeedReconnect) {
|
public void onConnectFail(boolean isNeedReconnect) {
|
||||||
Logger.d("liyz", "onConnectFail ------> ");
|
Logger.d("liyz", "onConnectFail ------> ");
|
||||||
|
//OBU连接失败
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onUnregister() {
|
public void onDisconnect() {
|
||||||
|
Logger.d("liyz", "onDisconnect ------> ");
|
||||||
|
//OBU断开连接
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onObuInfo(ObuInfo info) {
|
public void onReceiveOriginData(String data) {
|
||||||
Logger.d("liyz", "onObuInfo ------> " + info.toString());
|
super.onReceiveOriginData(data);
|
||||||
|
Logger.d("liyz", "onReceiveOriginData ------> data = " + data);
|
||||||
|
//接收到的原始数据
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onWarningInfo(List<ActiveSafetyInfo> infoList) {
|
public void onSendData(byte[] bytes) {
|
||||||
if (infoList != null) {
|
super.onSendData(bytes);
|
||||||
if (infoList.size() > 0) { //一般只有一个
|
//发送的数据
|
||||||
ActiveSafetyInfo info = infoList.get(0);
|
Logger.d("liyz", "onSendData ------> ");
|
||||||
Logger.d("liyz", "onWarningInfo type ------> " + info.getWarningtype() + "--size = " + infoList.size());
|
}
|
||||||
if (info.getWarningtype() == 3) {
|
|
||||||
if (MogoApisHandler.getInstance().getApis().getStatusManagerApi().isVrMode()) {
|
@Override
|
||||||
handleSdkObu(2);
|
public void onCvxAppInitIndInfo(CvxAppInitIndInfo info) {
|
||||||
}
|
super.onCvxAppInitIndInfo(info);
|
||||||
}
|
Logger.d("liyz", "onCvxAppInitIndInfo ------> " + info.toString());
|
||||||
}
|
//CV2X系统信息
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onCvxSetConfigCfm(CvxSetConfigCfmInfo info) {
|
||||||
|
super.onCvxSetConfigCfm(info);
|
||||||
|
Logger.d("liyz", "onCvxSetConfigCfm ------> " + info.toString());
|
||||||
|
//设置CV2X系统的配置确认
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onCvxHvCarIndInfo(CvxHvCarIndInfo info) {
|
||||||
|
//主车车辆信息
|
||||||
|
Logger.d("liyz", "onCvxHvCarIndInfo ------> " + info.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onCvxHvInfoIndInfo(CvxHvInfoIndInfo info) {
|
||||||
|
//主车信息
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onCvxRvInfoIndInfo(CvxRvInfoIndInfo info) {
|
||||||
|
//远车信息
|
||||||
|
Logger.d("liyz", "onCvxRvInfoIndInfo ------> " + info.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onCvxV2vThreatIndInfo(CvxV2vThreatIndInfo info) {
|
||||||
|
//预警信息
|
||||||
|
Logger.e("liyz", "onCvxRvInfoIndInfo ------> " + info.toString());
|
||||||
|
|
||||||
|
//预警数据的组装,车辆实时移动和变色。
|
||||||
|
//预警方位
|
||||||
|
//预警类型
|
||||||
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// public void release() {
|
||||||
|
// NebulaObuClient.getInstance().unregisterObu();
|
||||||
|
// NebulaObuClient.getInstance().unregisterObuListener();
|
||||||
|
// }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 星云obu数据监听
|
||||||
|
*/
|
||||||
|
// private OnObuListener listener = new OnObuListener() {
|
||||||
|
// @Override
|
||||||
|
// public void onRegister() {
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// @Override
|
||||||
|
// public void onConnectFail(boolean isNeedReconnect) {
|
||||||
|
// Logger.d("liyz", "onConnectFail ------> ");
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// @Override
|
||||||
|
// public void onUnregister() {
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// @Override
|
||||||
|
// public void onObuInfo(ObuInfo info) {
|
||||||
|
// Logger.d("liyz", "onObuInfo ------> " + info.toString());
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// @Override
|
||||||
|
// public void onWarningInfo(List<ActiveSafetyInfo> infoList) {
|
||||||
|
// if (infoList != null) {
|
||||||
|
// if (infoList.size() > 0) { //一般只有一个
|
||||||
|
// ActiveSafetyInfo info = infoList.get(0);
|
||||||
|
// Logger.d("liyz", "onWarningInfo type ------> " + info.getWarningtype() + "--size = " + infoList.size());
|
||||||
|
// if (info.getWarningtype() == 3) {
|
||||||
|
// if (MogoApisHandler.getInstance().getApis().getStatusManagerApi().isVrMode()) {
|
||||||
|
// handleSdkObu(2);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// };
|
||||||
|
|
||||||
|
|
||||||
private void handleSdkObu(int type) {
|
private void handleSdkObu(int type) {
|
||||||
V2XMessageEntity<V2XObuEventEntity> messageEntity = new V2XMessageEntity<>();
|
V2XMessageEntity<V2XObuEventEntity> messageEntity = new V2XMessageEntity<>();
|
||||||
messageEntity.setType(V2XMessageEntity.V2XTypeEnum.ALERT_OBU_EVENT);
|
messageEntity.setType(V2XMessageEntity.V2XTypeEnum.ALERT_OBU_EVENT);
|
||||||
|
|||||||
@@ -199,14 +199,14 @@ public class V2XOtherSeekHelpVH extends V2XBaseViewHolder<V2XEventShowEntity> {
|
|||||||
if (mV2XPushMessageEntity.getDistance() > 1000) {
|
if (mV2XPushMessageEntity.getDistance() > 1000) {
|
||||||
SpanUtils.with(tvDistance)
|
SpanUtils.with(tvDistance)
|
||||||
.append("" + (int) mV2XPushMessageEntity.getDistance() / 1000)
|
.append("" + (int) mV2XPushMessageEntity.getDistance() / 1000)
|
||||||
.setFontSize((int) itemView.getResources().getDimension(V2XServiceManager.getMoGoStatusManager().isVrMode() ? R.dimen.dp_42 : R.dimen.module_v2x_event_distance_text))
|
.setFontSize((int) itemView.getResources().getDimension(V2XServiceManager.getMoGoStatusManager().isVrMode() ? R.dimen.module_v2x_fault_help_distance_text_size : R.dimen.module_v2x_event_distance_text))
|
||||||
.append("公里")
|
.append("公里")
|
||||||
.setFontSize((int) itemView.getResources().getDimension(V2XServiceManager.getMoGoStatusManager().isVrMode() ? R.dimen.dp_42 : R.dimen.module_v2x_event_distance_title))
|
.setFontSize((int) itemView.getResources().getDimension(V2XServiceManager.getMoGoStatusManager().isVrMode() ? R.dimen.dp_42 : R.dimen.module_v2x_event_distance_title))
|
||||||
.create();
|
.create();
|
||||||
} else {
|
} else {
|
||||||
SpanUtils.with(tvDistance)
|
SpanUtils.with(tvDistance)
|
||||||
.append("" + (int) mV2XPushMessageEntity.getDistance())
|
.append("" + (int) mV2XPushMessageEntity.getDistance())
|
||||||
.setFontSize((int) itemView.getResources().getDimension(V2XServiceManager.getMoGoStatusManager().isVrMode() ? R.dimen.dp_42 : R.dimen.module_v2x_event_distance_text))
|
.setFontSize((int) itemView.getResources().getDimension(V2XServiceManager.getMoGoStatusManager().isVrMode() ? R.dimen.module_v2x_fault_help_distance_text_size : R.dimen.module_v2x_event_distance_text))
|
||||||
.append("米")
|
.append("米")
|
||||||
.setFontSize((int) itemView.getResources().getDimension(
|
.setFontSize((int) itemView.getResources().getDimension(
|
||||||
V2XServiceManager.getMoGoStatusManager().isVrMode() ?
|
V2XServiceManager.getMoGoStatusManager().isVrMode() ?
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package com.mogo.module.v2x.manager.impl;
|
|||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.graphics.Bitmap;
|
import android.graphics.Bitmap;
|
||||||
|
import android.graphics.BitmapFactory;
|
||||||
|
|
||||||
import com.alibaba.android.arouter.facade.annotation.Route;
|
import com.alibaba.android.arouter.facade.annotation.Route;
|
||||||
import com.mogo.commons.AbsMogoApplication;
|
import com.mogo.commons.AbsMogoApplication;
|
||||||
@@ -39,10 +40,12 @@ import com.mogo.module.v2x.utils.MarkerUtils;
|
|||||||
import com.mogo.utils.ViewUtils;
|
import com.mogo.utils.ViewUtils;
|
||||||
import com.mogo.utils.logger.Logger;
|
import com.mogo.utils.logger.Logger;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.concurrent.CopyOnWriteArrayList;
|
import java.util.concurrent.CopyOnWriteArrayList;
|
||||||
import java.util.concurrent.CopyOnWriteArraySet;
|
import java.util.concurrent.CopyOnWriteArraySet;
|
||||||
|
|
||||||
|
import static com.mogo.module.service.strategy.CarIconDisplayStrategy.sFrameVr;
|
||||||
import static com.mogo.module.v2x.V2XConst.MODULE_NAME;
|
import static com.mogo.module.v2x.V2XConst.MODULE_NAME;
|
||||||
import static com.mogo.module.v2x.V2XConst.V2X_EVENT_ALARM_POI;
|
import static com.mogo.module.v2x.V2XConst.V2X_EVENT_ALARM_POI;
|
||||||
|
|
||||||
@@ -271,21 +274,35 @@ public class MoGoV2XMarkerManager implements IMoGoV2XMarkerManager {
|
|||||||
} else {
|
} else {
|
||||||
mAlarmInfoMarker = V2XServiceManager.getMarkerManager().addMarker(V2X_EVENT_ALARM_POI, optionsRipple);
|
mAlarmInfoMarker = V2XServiceManager.getMarkerManager().addMarker(V2X_EVENT_ALARM_POI, optionsRipple);
|
||||||
}
|
}
|
||||||
|
// 当前Marker设置为最上面
|
||||||
|
mAlarmInfoMarker.setToTop();
|
||||||
} else {
|
} else {
|
||||||
optionsRipple.icons(V2XMarkerAdapter.getV2XRoadEventViewGif(context, roadEventEntity));
|
if (V2XServiceManager.getMoGoStatusManager().isVrMode()) {
|
||||||
optionsRipple.period(100);
|
ArrayList<Bitmap> mBitmapFrames = new ArrayList<>();
|
||||||
mAlarmInfoMarker = V2XServiceManager.getMarkerManager().addMarker(V2X_EVENT_ALARM_POI, optionsRipple);
|
for (int i : sFrameVr) {
|
||||||
|
mBitmapFrames.add(BitmapFactory.decodeResource(AbsMogoApplication.getApp().getResources(), i));
|
||||||
|
}
|
||||||
|
optionsRipple.icons(mBitmapFrames);
|
||||||
|
optionsRipple.period(20);
|
||||||
|
optionsRipple.scale(0.4f);
|
||||||
|
mAlarmInfoMarker = V2XServiceManager.getMarkerManager().addMarker(V2X_EVENT_ALARM_POI, optionsRipple);
|
||||||
|
|
||||||
MogoMarkerOptions options = new MogoMarkerOptions().object(roadEventEntity)
|
MogoMarkerOptions options = new MogoMarkerOptions().object(roadEventEntity)
|
||||||
.latitude(roadEventEntity.getLocation().getLat()).longitude(roadEventEntity.getLocation().getLon());
|
.latitude(roadEventEntity.getLocation().getLat()).longitude(roadEventEntity.getLocation().getLon());
|
||||||
options.anchor(0.5f, 0.5f);
|
options.anchor(0.5f, 0.5f);
|
||||||
options.zIndex(MarkerDrawer.MARKER_Z_INDEX_HIGH);
|
options.icon3DRes(com.mogo.module.common.R.raw.othercar);
|
||||||
options.icon3DRes(com.mogo.module.common.R.raw.othercar);
|
options.anchorColor("#FFBF29FF");
|
||||||
options.anchorColor("#C6D83EFF");
|
m3DMarker = V2XServiceManager.getMarkerManager().addMarker(V2X_EVENT_ALARM_POI, options);
|
||||||
m3DMarker = V2XServiceManager.getMarkerManager().addMarker(V2X_EVENT_ALARM_POI, options);
|
m3DMarker.setToTop();
|
||||||
|
} else {
|
||||||
|
optionsRipple.icons(V2XMarkerAdapter.getV2XRoadEventViewGif(context, roadEventEntity));
|
||||||
|
optionsRipple.period(100);
|
||||||
|
mAlarmInfoMarker = V2XServiceManager.getMarkerManager().addMarker(V2X_EVENT_ALARM_POI, optionsRipple);
|
||||||
|
// 当前Marker设置为最上面
|
||||||
|
mAlarmInfoMarker.setToTop();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
// 当前Marker设置为最上面
|
|
||||||
mAlarmInfoMarker.setToTop();
|
|
||||||
// 绘制连接线
|
// 绘制连接线
|
||||||
V2XServiceManager.getMoGoV2XPolylineManager().drawablePolyline(context, roadEventEntity);
|
V2XServiceManager.getMoGoV2XPolylineManager().drawablePolyline(context, roadEventEntity);
|
||||||
// 缩放地图
|
// 缩放地图
|
||||||
|
|||||||
@@ -132,34 +132,6 @@ public class V2XMarkerAdapter {
|
|||||||
*/
|
*/
|
||||||
public static ArrayList<Bitmap> getV2XRoadEventOrangeMarkerView(Context context, V2XRoadEventEntity alarmInfo) {
|
public static ArrayList<Bitmap> getV2XRoadEventOrangeMarkerView(Context context, V2XRoadEventEntity alarmInfo) {
|
||||||
ArrayList<Bitmap> icons = new ArrayList<>();
|
ArrayList<Bitmap> icons = new ArrayList<>();
|
||||||
if (V2XServiceManager.getMoGoStatusManager().isVrMode()) {
|
|
||||||
icons.add(V2XMarkerAdapter.getV2XRoadEventMarkerView(context, alarmInfo, com.mogo.module.service.R.drawable.module_service_ic_car_for_help_0000));
|
|
||||||
icons.add(V2XMarkerAdapter.getV2XRoadEventMarkerView(context, alarmInfo, com.mogo.module.service.R.drawable.module_service_ic_car_for_help_0001));
|
|
||||||
icons.add(V2XMarkerAdapter.getV2XRoadEventMarkerView(context, alarmInfo, com.mogo.module.service.R.drawable.module_service_ic_car_for_help_0002));
|
|
||||||
icons.add(V2XMarkerAdapter.getV2XRoadEventMarkerView(context, alarmInfo, com.mogo.module.service.R.drawable.module_service_ic_car_for_help_0003));
|
|
||||||
icons.add(V2XMarkerAdapter.getV2XRoadEventMarkerView(context, alarmInfo, com.mogo.module.service.R.drawable.module_service_ic_car_for_help_0004));
|
|
||||||
icons.add(V2XMarkerAdapter.getV2XRoadEventMarkerView(context, alarmInfo, com.mogo.module.service.R.drawable.module_service_ic_car_for_help_0005));
|
|
||||||
icons.add(V2XMarkerAdapter.getV2XRoadEventMarkerView(context, alarmInfo, com.mogo.module.service.R.drawable.module_service_ic_car_for_help_0006));
|
|
||||||
icons.add(V2XMarkerAdapter.getV2XRoadEventMarkerView(context, alarmInfo, com.mogo.module.service.R.drawable.module_service_ic_car_for_help_0007));
|
|
||||||
icons.add(V2XMarkerAdapter.getV2XRoadEventMarkerView(context, alarmInfo, com.mogo.module.service.R.drawable.module_service_ic_car_for_help_0008));
|
|
||||||
icons.add(V2XMarkerAdapter.getV2XRoadEventMarkerView(context, alarmInfo, com.mogo.module.service.R.drawable.module_service_ic_car_for_help_0009));
|
|
||||||
icons.add(V2XMarkerAdapter.getV2XRoadEventMarkerView(context, alarmInfo, com.mogo.module.service.R.drawable.module_service_ic_car_for_help_0010));
|
|
||||||
icons.add(V2XMarkerAdapter.getV2XRoadEventMarkerView(context, alarmInfo, com.mogo.module.service.R.drawable.module_service_ic_car_for_help_0011));
|
|
||||||
icons.add(V2XMarkerAdapter.getV2XRoadEventMarkerView(context, alarmInfo, com.mogo.module.service.R.drawable.module_service_ic_car_for_help_0012));
|
|
||||||
icons.add(V2XMarkerAdapter.getV2XRoadEventMarkerView(context, alarmInfo, com.mogo.module.service.R.drawable.module_service_ic_car_for_help_0013));
|
|
||||||
icons.add(V2XMarkerAdapter.getV2XRoadEventMarkerView(context, alarmInfo, com.mogo.module.service.R.drawable.module_service_ic_car_for_help_0014));
|
|
||||||
icons.add(V2XMarkerAdapter.getV2XRoadEventMarkerView(context, alarmInfo, com.mogo.module.service.R.drawable.module_service_ic_car_for_help_0015));
|
|
||||||
icons.add(V2XMarkerAdapter.getV2XRoadEventMarkerView(context, alarmInfo, com.mogo.module.service.R.drawable.module_service_ic_car_for_help_0016));
|
|
||||||
icons.add(V2XMarkerAdapter.getV2XRoadEventMarkerView(context, alarmInfo, com.mogo.module.service.R.drawable.module_service_ic_car_for_help_0017));
|
|
||||||
icons.add(V2XMarkerAdapter.getV2XRoadEventMarkerView(context, alarmInfo, com.mogo.module.service.R.drawable.module_service_ic_car_for_help_0018));
|
|
||||||
icons.add(V2XMarkerAdapter.getV2XRoadEventMarkerView(context, alarmInfo, com.mogo.module.service.R.drawable.module_service_ic_car_for_help_0019));
|
|
||||||
icons.add(V2XMarkerAdapter.getV2XRoadEventMarkerView(context, alarmInfo, com.mogo.module.service.R.drawable.module_service_ic_car_for_help_0020));
|
|
||||||
icons.add(V2XMarkerAdapter.getV2XRoadEventMarkerView(context, alarmInfo, com.mogo.module.service.R.drawable.module_service_ic_car_for_help_0021));
|
|
||||||
icons.add(V2XMarkerAdapter.getV2XRoadEventMarkerView(context, alarmInfo, com.mogo.module.service.R.drawable.module_service_ic_car_for_help_0022));
|
|
||||||
icons.add(V2XMarkerAdapter.getV2XRoadEventMarkerView(context, alarmInfo, com.mogo.module.service.R.drawable.module_service_ic_car_for_help_0023));
|
|
||||||
icons.add(V2XMarkerAdapter.getV2XRoadEventMarkerView(context, alarmInfo, com.mogo.module.service.R.drawable.module_service_ic_car_for_help_0024));
|
|
||||||
|
|
||||||
} else {
|
|
||||||
icons.add(V2XMarkerAdapter.getV2XRoadEventMarkerView(context, alarmInfo, R.drawable.v_to_x_warning_circle_orange_00011));
|
icons.add(V2XMarkerAdapter.getV2XRoadEventMarkerView(context, alarmInfo, R.drawable.v_to_x_warning_circle_orange_00011));
|
||||||
icons.add(V2XMarkerAdapter.getV2XRoadEventMarkerView(context, alarmInfo, R.drawable.v_to_x_warning_circle_orange_00012));
|
icons.add(V2XMarkerAdapter.getV2XRoadEventMarkerView(context, alarmInfo, R.drawable.v_to_x_warning_circle_orange_00012));
|
||||||
icons.add(V2XMarkerAdapter.getV2XRoadEventMarkerView(context, alarmInfo, R.drawable.v_to_x_warning_circle_orange_00013));
|
icons.add(V2XMarkerAdapter.getV2XRoadEventMarkerView(context, alarmInfo, R.drawable.v_to_x_warning_circle_orange_00013));
|
||||||
@@ -198,8 +170,6 @@ public class V2XMarkerAdapter {
|
|||||||
icons.add(V2XMarkerAdapter.getV2XRoadEventMarkerView(context, alarmInfo, R.drawable.v_to_x_warning_circle_orange_00046));
|
icons.add(V2XMarkerAdapter.getV2XRoadEventMarkerView(context, alarmInfo, R.drawable.v_to_x_warning_circle_orange_00046));
|
||||||
icons.add(V2XMarkerAdapter.getV2XRoadEventMarkerView(context, alarmInfo, R.drawable.v_to_x_warning_circle_orange_00047));
|
icons.add(V2XMarkerAdapter.getV2XRoadEventMarkerView(context, alarmInfo, R.drawable.v_to_x_warning_circle_orange_00047));
|
||||||
icons.add(V2XMarkerAdapter.getV2XRoadEventMarkerView(context, alarmInfo, R.drawable.v_to_x_warning_circle_orange_00048));
|
icons.add(V2XMarkerAdapter.getV2XRoadEventMarkerView(context, alarmInfo, R.drawable.v_to_x_warning_circle_orange_00048));
|
||||||
}
|
|
||||||
|
|
||||||
return icons;
|
return icons;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -102,9 +102,7 @@ class V2XMarkerRoadEventView(context: Context, alarmInfo: V2XRoadEventEntity) :
|
|||||||
}
|
}
|
||||||
// 故障车辆
|
// 故障车辆
|
||||||
V2XPoiTypeEnum.ALERT_CAR_TROUBLE_WARNING.toString() -> {
|
V2XPoiTypeEnum.ALERT_CAR_TROUBLE_WARNING.toString() -> {
|
||||||
if (!V2XServiceManager.getMoGoStatusManager().isVrMode()) {
|
ivCar.setImageResource(R.drawable.icon_car_red)
|
||||||
ivCar.setImageResource(R.drawable.icon_car_red)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
// 取快递
|
// 取快递
|
||||||
V2XPoiTypeEnum.ALERT_TRAFFIC_EXPRESS -> {
|
V2XPoiTypeEnum.ALERT_TRAFFIC_EXPRESS -> {
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ public class V2XObuEventScenario extends AbsV2XScenario<V2XObuEventEntity> imple
|
|||||||
|
|
||||||
public static final String URGENCY_COLLISION_WARN_TEXT_ONE = "前车急刹,注意保持安全距离!";
|
public static final String URGENCY_COLLISION_WARN_TEXT_ONE = "前车急刹,注意保持安全距离!";
|
||||||
public static final String URGENCY_COLLISION_WARN_TEXT = "前车急刹";
|
public static final String URGENCY_COLLISION_WARN_TEXT = "前车急刹";
|
||||||
public static final String URGENCY_CROING_WARN_TEXT = "交叉路口碰撞预警";
|
public static final String URGENCY_CROING_WARN_TEXT = "注意交叉路口车辆";
|
||||||
|
|
||||||
private static final int MSG_CLOSE_OBU_WINDOW = 1001;
|
private static final int MSG_CLOSE_OBU_WINDOW = 1001;
|
||||||
private static final int DEFAULT_EXPIRE_TIME = 20_000;
|
private static final int DEFAULT_EXPIRE_TIME = 20_000;
|
||||||
|
|||||||
@@ -85,7 +85,7 @@ public class V2XObuEventWindow extends FrameLayout implements IV2XWindow<V2XObuE
|
|||||||
break;
|
break;
|
||||||
case ObuConstant.TYPE_CROSS_COLLISION_WARNING:
|
case ObuConstant.TYPE_CROSS_COLLISION_WARNING:
|
||||||
// 交叉路口碰撞预警
|
// 交叉路口碰撞预警
|
||||||
ivTypeIcon.setImageResource(R.drawable.v2x_icon_ahead_car_brake);
|
ivTypeIcon.setImageResource(R.drawable.v2x_icon_car_collide_warning);
|
||||||
tvDesc.setText(entity.getDesc());
|
tvDesc.setText(entity.getDesc());
|
||||||
tvType.setText("交叉路口碰撞预警");
|
tvType.setText("交叉路口碰撞预警");
|
||||||
tvType.setBackgroundResource(R.drawable.bg_v2x_event_type_read);
|
tvType.setBackgroundResource(R.drawable.bg_v2x_event_type_read);
|
||||||
|
|||||||
@@ -79,8 +79,6 @@ public class V2XWarningMarker implements IV2XMarker {
|
|||||||
Log.d(TAG, "显示时间为++" + String.valueOf(showTime));
|
Log.d(TAG, "显示时间为++" + String.valueOf(showTime));
|
||||||
pointsBetween();
|
pointsBetween();
|
||||||
bearing = V2XLocationListener.getInstance().getLastCarLocation().getBearing();
|
bearing = V2XLocationListener.getInstance().getLastCarLocation().getBearing();
|
||||||
//预警蒙层
|
|
||||||
MarkerServiceHandler.getApis().getV2XListenerManager().warningChangedForListenerWithDirection(mCloundWarningInfo.getDirection(), MogoReceiver.ACTION_V2X_FRONT_WARNING);
|
|
||||||
isSelfLineClear = false;
|
isSelfLineClear = false;
|
||||||
isFirstLocation = false;
|
isFirstLocation = false;
|
||||||
V2XServiceManager.getMarkerManager().removeMarkers(WARNING_ARROWS);
|
V2XServiceManager.getMarkerManager().removeMarkers(WARNING_ARROWS);
|
||||||
@@ -127,6 +125,9 @@ public class V2XWarningMarker implements IV2XMarker {
|
|||||||
isSelfLineClear = true;
|
isSelfLineClear = true;
|
||||||
}, showTime);
|
}, showTime);
|
||||||
}
|
}
|
||||||
|
//预警蒙层
|
||||||
|
MarkerServiceHandler.getApis().getV2XListenerManager().warningChangedForListenerWithDirection(mCloundWarningInfo.getDirection(), MogoReceiver.ACTION_V2X_FRONT_WARNING);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
|
After Width: | Height: | Size: 4.6 KiB |
|
After Width: | Height: | Size: 6.7 KiB |
|
After Width: | Height: | Size: 4.6 KiB |
|
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 7.1 KiB |
@@ -5,6 +5,7 @@
|
|||||||
android:layout_width="@dimen/module_v2x_fault_help_width"
|
android:layout_width="@dimen/module_v2x_fault_help_width"
|
||||||
android:layout_height="@dimen/module_v2x_fault_help_height"
|
android:layout_height="@dimen/module_v2x_fault_help_height"
|
||||||
android:layout_marginTop="@dimen/dp_8"
|
android:layout_marginTop="@dimen/dp_8"
|
||||||
|
android:alpha="0.7"
|
||||||
android:background="@drawable/bg_v2x_event_bg"
|
android:background="@drawable/bg_v2x_event_bg"
|
||||||
tools:layout_height="wrap_content">
|
tools:layout_height="wrap_content">
|
||||||
|
|
||||||
|
|||||||
@@ -30,7 +30,7 @@
|
|||||||
<dimen name="module_v2x_fault_help_name_text_size">48px</dimen>
|
<dimen name="module_v2x_fault_help_name_text_size">48px</dimen>
|
||||||
<dimen name="module_v2x_fault_help_time_margin_bottom">35px</dimen>
|
<dimen name="module_v2x_fault_help_time_margin_bottom">35px</dimen>
|
||||||
<dimen name="module_v2x_fault_help_time_text_size">36px</dimen>
|
<dimen name="module_v2x_fault_help_time_text_size">36px</dimen>
|
||||||
<dimen name="module_v2x_fault_help_distance_text_size">64px</dimen>
|
<dimen name="module_v2x_fault_help_distance_text_size">80px</dimen>
|
||||||
<dimen name="module_v2x_fault_help_event_call_width">108px</dimen>
|
<dimen name="module_v2x_fault_help_event_call_width">108px</dimen>
|
||||||
|
|
||||||
<dimen name="module_v2x_fault_help_event_navi_margin_right">53px</dimen>
|
<dimen name="module_v2x_fault_help_event_navi_margin_right">53px</dimen>
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ import android.content.Context;
|
|||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.os.Message;
|
import android.os.Message;
|
||||||
import android.os.RemoteException;
|
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
@@ -47,7 +46,6 @@ import com.zhidao.adasconfig.api.AdasConfigApiController;
|
|||||||
import com.zhidao.adasconfig.common.config.EnumCarChatIncognitoMode;
|
import com.zhidao.adasconfig.common.config.EnumCarChatIncognitoMode;
|
||||||
import com.zhidao.adasconfig.common.config.EnumCarHeading;
|
import com.zhidao.adasconfig.common.config.EnumCarHeading;
|
||||||
import com.zhidao.adasconfig.common.config.EnumSkinStyle;
|
import com.zhidao.adasconfig.common.config.EnumSkinStyle;
|
||||||
import com.zhidao.autopilot.support.api.AutopilotServiceManage;
|
|
||||||
import com.zhidao.autopilotservice.model.AdasAIDLAutopilotArriveModel;
|
import com.zhidao.autopilotservice.model.AdasAIDLAutopilotArriveModel;
|
||||||
import com.zhidao.autopilotservice.model.AdasAIDLAutopilotStateModel;
|
import com.zhidao.autopilotservice.model.AdasAIDLAutopilotStateModel;
|
||||||
import com.zhidao.autopilotservice.model.AdasAIDLOwnerCarRectModel;
|
import com.zhidao.autopilotservice.model.AdasAIDLOwnerCarRectModel;
|
||||||
@@ -301,7 +299,8 @@ public class MogoADASController implements IMogoADASController {
|
|||||||
@Override
|
@Override
|
||||||
public void killADAS() {
|
public void killADAS() {
|
||||||
try {
|
try {
|
||||||
AutopilotServiceManage.getInstance().kill();
|
//AutopilotServiceManage.getInstance().kill();
|
||||||
|
adasProvider.killAdas();
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -309,6 +308,16 @@ public class MogoADASController implements IMogoADASController {
|
|||||||
|
|
||||||
private volatile boolean needEmphasizeMyLocation = false;
|
private volatile boolean needEmphasizeMyLocation = false;
|
||||||
|
|
||||||
|
private void testOCH() {
|
||||||
|
RemoteControlAutoPilotParameters currentAutopilot = new RemoteControlAutoPilotParameters();
|
||||||
|
currentAutopilot.isSpeakVoice = true;
|
||||||
|
currentAutopilot.startLatLon = new RemoteControlAutoPilotParameters.AutoPilotLonLat( 0, 1 );
|
||||||
|
currentAutopilot.endLatLon = new RemoteControlAutoPilotParameters.AutoPilotLonLat( 2, 3 );
|
||||||
|
currentAutopilot.vehicleType = 10;
|
||||||
|
Logger.d( TAG, "开启自动驾驶====" + currentAutopilot );
|
||||||
|
aiCloudToAdasData(currentAutopilot);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void showADAS() {
|
public void showADAS() {
|
||||||
|
|
||||||
@@ -331,6 +340,9 @@ public class MogoADASController implements IMogoADASController {
|
|||||||
info.setSn(MoGoAiCloudClientConfig.getInstance().getSn());
|
info.setSn(MoGoAiCloudClientConfig.getInstance().getSn());
|
||||||
AdasManager.getInstance().setBasicInfo(info);
|
AdasManager.getInstance().setBasicInfo(info);
|
||||||
invokeShowADASOperation();
|
invokeShowADASOperation();
|
||||||
|
|
||||||
|
//测试网约车
|
||||||
|
//testOCH();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -389,7 +401,8 @@ public class MogoADASController implements IMogoADASController {
|
|||||||
// 向adas发送车模list
|
// 向adas发送车模list
|
||||||
String carModelList = SharedPrefsMgr.getInstance(context).getString("CAR_MODEL_LIST", "");
|
String carModelList = SharedPrefsMgr.getInstance(context).getString("CAR_MODEL_LIST", "");
|
||||||
if (carModelList != null && !carModelList.isEmpty()) {
|
if (carModelList != null && !carModelList.isEmpty()) {
|
||||||
AutopilotServiceManage.getInstance().settingCarModelListInfo(carModelList);
|
//AutopilotServiceManage.getInstance().settingCarModelListInfo(carModelList);
|
||||||
|
adasProvider.settingCarModelListInfo(carModelList);
|
||||||
}
|
}
|
||||||
// 此处进行网络请求,请求成功后再通知一次adas
|
// 此处进行网络请求,请求成功后再通知一次adas
|
||||||
requestCarModelList();
|
requestCarModelList();
|
||||||
@@ -533,7 +546,8 @@ public class MogoADASController implements IMogoADASController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
AutopilotServiceManage.getInstance().showAdas();
|
//AutopilotServiceManage.getInstance().showAdas();
|
||||||
|
adasProvider.showAdas();
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
Intent intent = new Intent(ACTION);
|
Intent intent = new Intent(ACTION);
|
||||||
intent.putExtra(PARAM_COMMAND, VAL_COMMAND);
|
intent.putExtra(PARAM_COMMAND, VAL_COMMAND);
|
||||||
@@ -556,7 +570,8 @@ public class MogoADASController implements IMogoADASController {
|
|||||||
Logger.d(TAG, "close adas");
|
Logger.d(TAG, "close adas");
|
||||||
|
|
||||||
try {
|
try {
|
||||||
AutopilotServiceManage.getInstance().hideAdas();
|
//AutopilotServiceManage.getInstance().hideAdas();
|
||||||
|
adasProvider.hideAdas();
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
Intent intent = new Intent(ACTION);
|
Intent intent = new Intent(ACTION);
|
||||||
intent.putExtra(PARAM_COMMAND, VAL_COMMAND);
|
intent.putExtra(PARAM_COMMAND, VAL_COMMAND);
|
||||||
@@ -585,7 +600,7 @@ public class MogoADASController implements IMogoADASController {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void init(Context context) {
|
public void init(Context context) {
|
||||||
AutopilotServiceManage.getInstance().init(context);
|
//AutopilotServiceManage.getInstance().init(context);
|
||||||
mIsReleased = false;
|
mIsReleased = false;
|
||||||
mAdasMessageFactory = new MyMessageFactory();
|
mAdasMessageFactory = new MyMessageFactory();
|
||||||
adasProvider = ARouter.getInstance().navigation(AdasProvider.class);
|
adasProvider = ARouter.getInstance().navigation(AdasProvider.class);
|
||||||
@@ -594,12 +609,14 @@ public class MogoADASController implements IMogoADASController {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setSettingStatus(boolean show) {
|
public void setSettingStatus(boolean show) {
|
||||||
AutopilotServiceManage.getInstance().setSettingStatus(show);
|
//AutopilotServiceManage.getInstance().setSettingStatus(show);
|
||||||
|
adasProvider.setSettingStatus(show);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setUseAlgorithm(boolean open) {
|
public void setUseAlgorithm(boolean open) {
|
||||||
AutopilotServiceManage.getInstance().setUseAlgorithm(open);
|
//AutopilotServiceManage.getInstance().setUseAlgorithm(open);
|
||||||
|
adasProvider.setUseAlgorithm(open);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -670,7 +687,8 @@ public class MogoADASController implements IMogoADASController {
|
|||||||
AdasControlCommandParameter parameter = new AdasControlCommandParameter(action, result);
|
AdasControlCommandParameter parameter = new AdasControlCommandParameter(action, result);
|
||||||
//位置信息 action是aiCloudToStartAutopilot
|
//位置信息 action是aiCloudToStartAutopilot
|
||||||
try {
|
try {
|
||||||
AutopilotServiceManage.getInstance().aiCloudToAdasData(GsonUtil.jsonFromObject(parameter));
|
//AutopilotServiceManage.getInstance().aiCloudToAdasData(GsonUtil.jsonFromObject(parameter));
|
||||||
|
adasProvider.sendWsMessage(GsonUtil.jsonFromObject(parameter));
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
@@ -692,7 +710,8 @@ public class MogoADASController implements IMogoADASController {
|
|||||||
String value = GsonUtil.jsonFromObject(o.getResult());
|
String value = GsonUtil.jsonFromObject(o.getResult());
|
||||||
SharedPrefsMgr.getInstance(context).putString("CAR_MODEL_LIST", value);
|
SharedPrefsMgr.getInstance(context).putString("CAR_MODEL_LIST", value);
|
||||||
if (value != null && !value.isEmpty()) {
|
if (value != null && !value.isEmpty()) {
|
||||||
AutopilotServiceManage.getInstance().settingCarModelListInfo(value);
|
//AutopilotServiceManage.getInstance().settingCarModelListInfo(value);
|
||||||
|
adasProvider.settingCarModelListInfo(value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -716,7 +735,8 @@ public class MogoADASController implements IMogoADASController {
|
|||||||
mIsReleased = true;
|
mIsReleased = true;
|
||||||
//AutopilotServiceManage.getInstance().unRegisterAutopilotDataListener( mAutopolitDataCallBack );
|
//AutopilotServiceManage.getInstance().unRegisterAutopilotDataListener( mAutopolitDataCallBack );
|
||||||
adasProvider.removeAdasEventListener(mAdasDataListener);
|
adasProvider.removeAdasEventListener(mAdasDataListener);
|
||||||
AutopilotServiceManage.getInstance().release();
|
adasProvider.removeAdasStatusListener();
|
||||||
|
//AutopilotServiceManage.getInstance().release();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -826,7 +846,8 @@ public class MogoADASController implements IMogoADASController {
|
|||||||
}
|
}
|
||||||
int status = IMogoAdasOCHCallback.STATUS_AUTOPILOT_DISABLE;
|
int status = IMogoAdasOCHCallback.STATUS_AUTOPILOT_DISABLE;
|
||||||
try {
|
try {
|
||||||
status = AutopilotServiceManage.getInstance().autopilotStateCall().getState();
|
//status = AutopilotServiceManage.getInstance().autopilotStateCall().getState();
|
||||||
|
status = adasProvider.autopilotStateCall().getState();
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
@@ -851,11 +872,12 @@ public class MogoADASController implements IMogoADASController {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void cancelAutopilot() {
|
public void cancelAutopilot() {
|
||||||
try {
|
//try {
|
||||||
AutopilotServiceManage.getInstance().cancelAutopilot();
|
//AutopilotServiceManage.getInstance().cancelAutopilot();
|
||||||
} catch (RemoteException e) {
|
adasProvider.cancelPolit();
|
||||||
e.printStackTrace();
|
//} catch (RemoteException e) {
|
||||||
}
|
// e.printStackTrace();
|
||||||
|
//}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -159,7 +159,7 @@ public class MogoStatusManager implements IMogoStatusManager {
|
|||||||
|
|
||||||
private boolean get_bool_val(StatusDescriptor descriptor ) {
|
private boolean get_bool_val(StatusDescriptor descriptor ) {
|
||||||
Boolean val = mStatus.get( descriptor );
|
Boolean val = mStatus.get( descriptor );
|
||||||
return val == null ? false : val;
|
return val != null && val;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||