diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/fragment/OchBusFragment.java b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/fragment/OchBusFragment.java index 023888b7d8..5bc22f3044 100644 --- a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/fragment/OchBusFragment.java +++ b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/fragment/OchBusFragment.java @@ -200,6 +200,7 @@ public class OchBusFragment extends BaseOchFragment< OchBusFragment, OchBusPrese * 设置自动驾驶可用状态 */ public void onAutopilotEnableChange( boolean isEnable ) { + onAutopilotStatusChanged(isEnable); if ( isEnable ) { showAutopilotBiz(); } else { diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/MogoOCHTaxiModel.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/MogoOCHTaxiModel.java index c044046c82..8c0d302ec0 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/MogoOCHTaxiModel.java +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/MogoOCHTaxiModel.java @@ -29,6 +29,7 @@ import com.mogo.utils.network.utils.GsonUtil; import com.mogo.utils.storage.SharedPrefsMgr; import java.util.ArrayList; +import java.util.List; import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.schedulers.Schedulers; @@ -314,6 +315,9 @@ class MogoOCHTaxiModel { * @param data */ private void convertCurrentOrder( OCHTaxiOrderResponse2 data ) { + if (data.data == null){ + return; + } if ( mCurrentOCHOrder == null ) { mCurrentOCHOrder = new OCHTaxiOrderResponse(); } @@ -325,18 +329,23 @@ class MogoOCHTaxiModel { mCurrentOCHOrder.orderType = data.data.orderType; mCurrentOCHOrder.drivingRoutes = new ArrayList<>(); OCHTaxiOrderResponse.OCHTaxiStation startStation = new OCHTaxiOrderResponse.OCHTaxiStation(); - startStation.lon = data.data.startStationCoordinate.get( 0 ); - startStation.lat = data.data.startStationCoordinate.get( 1 ); - startStation.siteId = data.data.startStationId; - startStation.siteName = data.data.startStation; - mCurrentOCHOrder.drivingRoutes.add( startStation ); + List< Double > startStationCoordinate = data.data.startStationCoordinate; + if (startStationCoordinate != null && startStationCoordinate.size()>1){ + startStation.lon = startStationCoordinate.get( 0 ); + startStation.lat = startStationCoordinate.get( 1 ); + startStation.siteId = data.data.startStationId; + startStation.siteName = data.data.startStation; + mCurrentOCHOrder.drivingRoutes.add( startStation ); + } OCHTaxiOrderResponse.OCHTaxiStation endStation = new OCHTaxiOrderResponse.OCHTaxiStation(); - endStation.lon = data.data.endStationCoordinate.get( 0 ); - endStation.lat = data.data.endStationCoordinate.get( 1 ); - endStation.siteId = data.data.endStationId; - endStation.siteName = data.data.endStation; - mCurrentOCHOrder.drivingRoutes.add( endStation ); - + List< Double > endStationCoordinate = data.data.endStationCoordinate; + if (endStationCoordinate != null && endStationCoordinate.size()>1){ + endStation.lon = endStationCoordinate.get( 0 ); + endStation.lat = endStationCoordinate.get( 1 ); + endStation.siteId = data.data.endStationId; + endStation.siteName = data.data.endStation; + mCurrentOCHOrder.drivingRoutes.add( endStation ); + } cacheOrderInfo2Native( mCurrentOCHOrder ); } diff --git a/OCH/mogo-och/src/main/java/com/mogo/och/BaseOchFragment.java b/OCH/mogo-och/src/main/java/com/mogo/och/BaseOchFragment.java index eacee5b82f..8c1fab5ea4 100644 --- a/OCH/mogo-och/src/main/java/com/mogo/och/BaseOchFragment.java +++ b/OCH/mogo-och/src/main/java/com/mogo/och/BaseOchFragment.java @@ -17,6 +17,8 @@ import com.mogo.module.common.MogoApisHandler; import com.mogo.module.common.view.OnPreventFastClickListener; import com.mogo.och.view.SlidePanelView; import com.mogo.service.adas.IMogoAdasOCHCallback; +import com.mogo.service.adas.RemoteControlAutoPilotParameters; +import com.mogo.utils.logger.Logger; /** * 网约车基础Fragment,主要负责布局通用界面,处理站点面板和通话面板互斥情况 @@ -32,7 +34,7 @@ public abstract class BaseOchFragment> e protected SlidePanelView slidePanelView; private CheckedTextView ctvAutopilotStatus; protected TextView tvOperationStatus; - public boolean isOperationStatus;//false-收车,true-出车 + public boolean isOperationStatus;//false-收车,true-出车 private FrameLayout flStationPanelContainer; private Group groupTestPanel; @@ -109,12 +111,28 @@ public abstract class BaseOchFragment> e .mockOchStatus(IMogoAdasOCHCallback.STATUS_AUTOPILOT_RUNNING, "Running") ); - // 模拟 自动驾驶网约车回调数据 + // 模拟 自动驾驶站 findViewById(R.id.btnAutopilotArrive).setOnClickListener(view -> MogoApisHandler.getInstance().getApis() .getAdasControllerApi().mockOchStatus(-1, "Arrived") ); + // 模拟 站点下发工控 + findViewById(R.id.btnAutopilotControl).setOnClickListener(view -> + { + RemoteControlAutoPilotParameters currentAutopilot = new RemoteControlAutoPilotParameters(); + currentAutopilot.isSpeakVoice = true; + // 万集东门站 + currentAutopilot.startLatLon = new RemoteControlAutoPilotParameters.AutoPilotLonLat(116.74157277,40.19885549); + // 市政府前街18号 + currentAutopilot.endLatLon = new RemoteControlAutoPilotParameters.AutoPilotLonLat(116.729134342,40.1953113732); + // 订单运营类型 (9出租车,10小巴) + currentAutopilot.vehicleType = 10; + Logger.d(TAG, "模拟 订单站点下发:" + currentAutopilot); + MogoApisHandler.getInstance().getApis().getAdasControllerApi().aiCloudToAdasData(currentAutopilot); + } + ); + tvOperationStatus.setOnClickListener(view -> { onChangeOperationStatus(); }); @@ -185,14 +203,14 @@ public abstract class BaseOchFragment> e }); } - public void hidPanel(){ - getActivity().runOnUiThread(()->{ + public void hidPanel() { + getActivity().runOnUiThread(() -> { flStationPanelContainer.setVisibility(View.GONE); }); } - public void showPanel(){ - getActivity().runOnUiThread(()->{ + public void showPanel() { + getActivity().runOnUiThread(() -> { flStationPanelContainer.setVisibility(View.VISIBLE); }); } diff --git a/OCH/mogo-och/src/main/java/com/mogo/och/view/SlidePanelView.java b/OCH/mogo-och/src/main/java/com/mogo/och/view/SlidePanelView.java index fd2c4ddd65..8f2e12b9a6 100644 --- a/OCH/mogo-och/src/main/java/com/mogo/och/view/SlidePanelView.java +++ b/OCH/mogo-och/src/main/java/com/mogo/och/view/SlidePanelView.java @@ -50,6 +50,7 @@ public class SlidePanelView extends View { NORMAL_TEXT_MARGIN_RIGHT = (int) mTypedArray.getDimension(R.styleable.SlidePanelView_NORMAL_TEXT_MARGIN_RIGHT, NORMAL_TEXT_MARGIN_RIGHT); SHORT_TEXT_MARGIN_LEFT = (int) mTypedArray.getDimension(R.styleable.SlidePanelView_SHORT_TEXT_MARGIN_LEFT, SHORT_TEXT_MARGIN_LEFT); SHORT_TEXT_MARGIN_RIGHT = (int) mTypedArray.getDimension(R.styleable.SlidePanelView_SHORT_TEXT_MARGIN_RIGHT, SHORT_TEXT_MARGIN_RIGHT); + SLIDEPANELVIEW_VIEW_HIGH = (int) mTypedArray.getDimension(R.styleable.SlidePanelView_SLIDEPANELVIEW_VIEW_HIGH, SLIDEPANELVIEW_VIEW_HIGH); init(); } @@ -64,6 +65,7 @@ public class SlidePanelView extends View { private static int NORMAL_TEXT_MARGIN_RIGHT = 60; private static int SHORT_TEXT_MARGIN_LEFT = 60; private static int SHORT_TEXT_MARGIN_RIGHT = 70; + private static int SLIDEPANELVIEW_VIEW_HIGH = 160; private int textMarginLeft = NORMAL_TEXT_MARGIN_LEFT; private int textMarginRight = NORMAL_TEXT_MARGIN_RIGHT; @@ -148,7 +150,8 @@ public class SlidePanelView extends View { // 高度根据图片大小和上下间隔确定 textPaint.getTextBounds(blockText, 0, blockText.length(), textRect); widthSize = BLOCK_START_X * 2 + bmBlock.getWidth() + textMarginLeft + textMarginRight + textRect.width(); - heightSize = BLOCK_START_Y * 2 + bmBlock.getHeight(); +// heightSize = BLOCK_START_Y * 2 + bmBlock.getHeight(); + heightSize = SLIDEPANELVIEW_VIEW_HIGH; widthMeasureSpec = MeasureSpec.makeMeasureSpec(widthSize, widthMode); heightMeasureSpec = MeasureSpec.makeMeasureSpec(heightSize, heightMode); } @@ -245,7 +248,7 @@ public class SlidePanelView extends View { protected void onDraw(Canvas canvas) { super.onDraw(canvas); // 画背景 - canvas.drawRoundRect(bgRectF, (float) getHeight() / 2, (float) getHeight() / 2, bgPaint); + canvas.drawRoundRect(bgRectF, (float) getHeight() / 2, SLIDEPANELVIEW_VIEW_HIGH / 2, bgPaint); // 画文字 gradientMatrix.setTranslate(matrixTranslate, 0); textGradient.setLocalMatrix(gradientMatrix); diff --git a/OCH/mogo-och/src/main/res/layout/module_mogo_och_base_fragment.xml b/OCH/mogo-och/src/main/res/layout/module_mogo_och_base_fragment.xml index c369dc9da8..3cc3070de3 100644 --- a/OCH/mogo-och/src/main/res/layout/module_mogo_och_base_fragment.xml +++ b/OCH/mogo-och/src/main/res/layout/module_mogo_och_base_fragment.xml @@ -76,9 +76,8 @@ android:id="@+id/btnAutopilotDisable" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:background="#f00" - android:text="Disable" - android:textSize="30sp" + android:text="模拟 不可自动驾驶" + android:textSize="20sp" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /> @@ -86,9 +85,8 @@ android:id="@+id/btnAutopilotEnable" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:background="#0f0" - android:text="Enable" - android:textSize="30sp" + android:text="模拟 中途人工干预" + android:textSize="20sp" app:layout_constraintRight_toRightOf="@id/btnAutopilotDisable" app:layout_constraintTop_toBottomOf="@id/btnAutopilotDisable" /> @@ -96,9 +94,8 @@ android:id="@+id/btnAutopilotRunning" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:background="#00f" - android:text="Running" - android:textSize="30sp" + android:text="模拟 自动驾驶途中" + android:textSize="20sp" app:layout_constraintRight_toRightOf="@id/btnAutopilotDisable" app:layout_constraintTop_toBottomOf="@id/btnAutopilotEnable" /> @@ -106,18 +103,26 @@ android:id="@+id/btnAutopilotArrive" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:background="#f00" - android:text="Arrived" - android:textSize="30sp" + android:text="模拟 自动驾驶到站" + android:textSize="20sp" app:layout_constraintRight_toRightOf="@id/btnAutopilotDisable" app:layout_constraintTop_toBottomOf="@id/btnAutopilotRunning" /> +