diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/callback/IOCHTaxiPassengerAutopilotPlanningCallback.java b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/callback/IOCHTaxiPassengerAutopilotPlanningCallback.java index 52ac14ed3f..7b607580bd 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/callback/IOCHTaxiPassengerAutopilotPlanningCallback.java +++ b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/callback/IOCHTaxiPassengerAutopilotPlanningCallback.java @@ -13,4 +13,5 @@ import mogo.telematics.pad.MessagePad; public interface IOCHTaxiPassengerAutopilotPlanningCallback { void setLineMarker(List models); void routeResultByServer(List models,int haveArrivedIndex); + void showRottingMapView(); } \ No newline at end of file diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/callback/IOCHTaxiPassengerOrderStatusCallback.java b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/callback/IOCHTaxiPassengerOrderStatusCallback.java index 9d147d1ca4..d800e68e66 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/callback/IOCHTaxiPassengerOrderStatusCallback.java +++ b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/callback/IOCHTaxiPassengerOrderStatusCallback.java @@ -1,11 +1,7 @@ package com.mogo.och.taxi.passenger.callback; -import androidx.annotation.NonNull; - import com.mogo.och.taxi.passenger.bean.TaxiPassengerOrderQueryRespBean; -import java.util.List; - /** * Created on 2021/9/8 * diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerModel.java b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerModel.java index 297efdd6a9..9849fafda2 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerModel.java +++ b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerModel.java @@ -10,6 +10,7 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import com.amap.api.maps.model.LatLng; +import com.amap.api.navi.model.NaviLatLng; import com.elegant.network.utils.GsonUtil; import com.mogo.aicloud.services.socket.MogoAiCloudSocketManager; import com.mogo.cloud.commons.utils.CoordinateUtils; @@ -32,6 +33,7 @@ import com.mogo.eagle.core.utilcode.util.ToastUtils; import com.mogo.eagle.core.utilcode.util.UiThreadHandler; import com.mogo.map.navi.IMogoCarLocationChangedListener2; import com.mogo.module.common.MogoApisHandler; +import com.mogo.och.common.module.map.AmapNaviToDestinationModel; import com.mogo.och.common.module.utils.CoordinateCalculateRouteUtil; import com.mogo.och.common.module.utils.PinYinUtil; import com.mogo.och.taxi.passenger.bean.TaxiPassengerBaseRespBean; @@ -618,6 +620,29 @@ public class TaxiPassengerModel implements IOCHTaxiPassengerNaviChangedCallback mLocationsModels.clear(); mLocationsModels.addAll(latLngModels); startOrStopRouteAndWipe(true); + showRottingMapView(); + } + + public void showRottingMapView(){ + AmapNaviToDestinationModel.getInstance(mContext).destroyAmaNavi(); + if (mAutopilotPlanningCallback != null){ + mAutopilotPlanningCallback.showRottingMapView(); + } + } + + public void startNaviByAmap() { + if (mCurrentOCHOrder != null && + mCurrentOCHOrder.orderStatus == TaxiPassengerOrderStatusEnum.OnTheWayToEnd.getCode()){ + AmapNaviToDestinationModel.getInstance(mContext).destroyAmaNavi(); + + double orderEndStationLat = mCurrentOCHOrder.endSiteGcjPoint.get(1); + double orderEndStationLng = mCurrentOCHOrder.endSiteGcjPoint.get(0); + NaviLatLng startNaviLatLng = new NaviLatLng(mLatitude, mLongitude); + NaviLatLng endNaviLatLng = new NaviLatLng(orderEndStationLat,orderEndStationLng); + AmapNaviToDestinationModel.getInstance(mContext).initAMapNavi(startNaviLatLng, endNaviLatLng); + AmapNaviToDestinationModel.getInstance(mContext).setVoiceIsMute(false); +// AmapNaviToDestinationModel.getInstance(mContext).setOCHTaciNaviChangedCallback(this); + } } /** @@ -682,7 +707,7 @@ public class TaxiPassengerModel implements IOCHTaxiPassengerNaviChangedCallback public void startOrStopQueryOrderRemaining(boolean isStart){ if (isStart){ - TaxiPassengerModelLoopManager.getInstance().startQueryOrderRemainingtLoop(); + TaxiPassengerModelLoopManager.getInstance().startQueryOrderRemainingLoop(); }else { TaxiPassengerModelLoopManager.getInstance().stopQueryOrderRemainingLoop(); } @@ -835,7 +860,7 @@ public class TaxiPassengerModel implements IOCHTaxiPassengerNaviChangedCallback public void onSuccess(TaxiPassengerBaseRespBean data) { if (data != null && data.code == 0 && data.data.equals(true)) { updateAutopilotStatus(true); - startOrStopReadyToAutopilotoop(false); + startOrStopReadyToAutopilotLoop(false); } } @@ -856,11 +881,11 @@ public class TaxiPassengerModel implements IOCHTaxiPassengerNaviChangedCallback public void startDriverReadyToAutopilotLoop(){ if (NetworkUtils.isConnected(mContext)) { - startOrStopReadyToAutopilotoop(true); + startOrStopReadyToAutopilotLoop(true); } } - public void startOrStopReadyToAutopilotoop(boolean isStart) { + public void startOrStopReadyToAutopilotLoop(boolean isStart) { if (isStart){ TaxiPassengerModelLoopManager.getInstance().startReadyToAutopilot(); }else { diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerModelLoopManager.java b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerModelLoopManager.java index 39611e8df7..9b5ed8a440 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerModelLoopManager.java +++ b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/model/TaxiPassengerModelLoopManager.java @@ -131,11 +131,11 @@ public class TaxiPassengerModelLoopManager { /** * 轮训查下 查询订单剩余里程和时间 */ - public void startQueryOrderRemainingtLoop() { + public void startQueryOrderRemainingLoop() { if (mQueryOrderRemainingDisposable != null && !mQueryOrderRemainingDisposable.isDisposed()) { return; } - CallerLogger.INSTANCE.i(M_TAXI_P + TAG, "startQueryOrderRemainingtLoop()"); + CallerLogger.INSTANCE.i(M_TAXI_P + TAG, "startQueryOrderRemainingLoop()"); mQueryOrderRemainingDisposable = Observable.interval(TaxiPassengerConst.LOOP_DELAY, TaxiPassengerConst.LOOP_CALCULATEROUTE_2S, TimeUnit.MILLISECONDS) .map((aLong -> aLong + 1)) diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/presenter/BaseTaxiPassengerPresenter.java b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/presenter/BaseTaxiPassengerPresenter.java index 056b46c0ff..a32c68198a 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/presenter/BaseTaxiPassengerPresenter.java +++ b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/presenter/BaseTaxiPassengerPresenter.java @@ -166,7 +166,7 @@ public class BaseTaxiPassengerPresenter extends PresentermView.routeResultByServer(models,haveArrivedIndex)); } + @Override + public void showRottingMapView() { + runOnUIThread(() ->mView.showRottingMapView()); + } + @Override public void onCurrentOrderStatusChanged(TaxiPassengerOrderQueryRespBean.Result order) { diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerBaseFragment.java b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerBaseFragment.java index 4af679e575..7a94a24cb3 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerBaseFragment.java +++ b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/TaxiPassengerBaseFragment.java @@ -301,6 +301,8 @@ public class TaxiPassengerBaseFragment extends MvpFragment latLngList){ if (latLngList.size() > 0) { - if (mMapDirectionView != null) { - mMapDirectionView.setCoordinatesLatLng(latLngList); + if (mMapRottingView != null) { + mMapRottingView.setCoordinatesLatLng(latLngList); UiThreadHandler.post(new Runnable() { @Override public void run() { - mMapDirectionView.setLineMarker(); + mMapRottingView.setLineMarker(); } }); } @@ -236,22 +268,22 @@ public class TaxiPassengerServingOrderFragment extends } public void drawablePolylineByServerRoute(List mCoordinatesLatLng,int haveArrivedIndex){ - if (mMapDirectionView != null){ - mMapDirectionView.setCoordinatesLatLng(mCoordinatesLatLng,haveArrivedIndex); + if (mMapRottingView != null){ + mMapRottingView.setCoordinatesLatLng(mCoordinatesLatLng,haveArrivedIndex); UiThreadHandler.post(new Runnable() { @Override public void run() { - mMapDirectionView.drawablePolyline(); + mMapRottingView.drawablePolyline(); } }); } } private void clearPolyline() { - if (mMapDirectionView != null) { + if (mMapRottingView != null) { UiThreadHandler.post(new Runnable() { @Override public void run() { - mMapDirectionView.clearPolyline(); + mMapRottingView.clearPolyline(); } }); } diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/layout/taxi_p_activity_serving_order_view.xml b/OCH/mogo-och-taxi-passenger/src/main/res/layout/taxi_p_activity_serving_order_view.xml index f59ae55046..404258867f 100644 --- a/OCH/mogo-och-taxi-passenger/src/main/res/layout/taxi_p_activity_serving_order_view.xml +++ b/OCH/mogo-och-taxi-passenger/src/main/res/layout/taxi_p_activity_serving_order_view.xml @@ -257,15 +257,30 @@ - - + app:layout_constraintLeft_toLeftOf="parent" > + + + + 0) { updateOrderRoute(routeList.getWayPointsList()); - setRouteLineMarker(routeList.getWayPointsList()); +// setRouteLineMarker(routeList.getWayPointsList()); updateOrderRouteInfo(routeList.getWayPointsList()); } } @@ -1260,11 +1260,11 @@ public class TaxiModel { /** * 设置路径规划起终点 - * @param models + * @param latLngModels */ - private void setRouteLineMarker(List models) { - List latLngModels = CoordinateCalculateRouteUtil - .coordinateConverterWgsToGcjListCommon(mContext,models); + public void setRouteLineMarker(List latLngModels) { +// List latLngModels = CoordinateCalculateRouteUtil +// .coordinateConverterWgsToGcjListCommon(mContext,models); if (mAutopilotPlanningCallback != null){ mAutopilotPlanningCallback.setLineMarker(latLngModels); } @@ -1325,6 +1325,7 @@ public class TaxiModel { } mRoutePoints.addAll(CoordinateCalculateRouteUtil.coordinateConverterWgsToGcjListCommon(mContext, models)); startDynamicCalculateRouteInfo(); + startNaviToEndStation(false); } public void startDynamicCalculateRouteInfo() { @@ -1394,6 +1395,7 @@ public class TaxiModel { if (mAutopilotPlanningCallback != null){ mAutopilotPlanningCallback.routeResult(mRoutePoints,haveArrivedIndex); } + setRouteLineMarker(mRoutePoints); } } @@ -1584,7 +1586,7 @@ public class TaxiModel { if (mOrderStatusCallback != null){ mOrderStatusCallback.onNaviToEnd(false,isVoicePlay); } - }else {//使用高的导航 + }else {//使用高德导航 if (mOrderStatusCallback != null){ mOrderStatusCallback.onNaviToEnd(true,isVoicePlay); } diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/presenter/NaviPresenter.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/presenter/NaviPresenter.java index 8cb3205aa9..1c98be1ad8 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/presenter/NaviPresenter.java +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/presenter/NaviPresenter.java @@ -43,9 +43,6 @@ public class NaviPresenter extends Presenter implements @Override public void onDestroy( @NonNull LifecycleOwner owner ) { super.onDestroy( owner ); - - releaseListeners(); - TaxiModel.getInstance().release(); } private void initListeners() { @@ -69,7 +66,6 @@ public class NaviPresenter extends Presenter implements @Override public void setLineMarker(List models) { - if (models == null) return; runOnUIThread(() -> mView.setLineMarker(models)); } diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/presenter/TaxiPresenter.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/presenter/TaxiPresenter.java index 2cd80ce226..243b425064 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/presenter/TaxiPresenter.java +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/presenter/TaxiPresenter.java @@ -257,6 +257,7 @@ public class TaxiPresenter extends Presenter implements ITaxiADASS TaxiOrderStatusEnum.Cancel.getCode() == order.orderStatus || TaxiOrderStatusEnum.JourneyCompleted.getCode() == order.orderStatus){ TaxiModel.getInstance().startOrStopCalculateRouteInfo(false); + TaxiModel.getInstance().setRouteLineMarker(null); } runOnUIThread(() -> mView.updateCurrentOrderStatusChanged(order)); } diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiMapDirectionView.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiMapDirectionView.java index 6ffc32d42e..6a93cec871 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiMapDirectionView.java +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiMapDirectionView.java @@ -125,6 +125,8 @@ public class TaxiMapDirectionView .icon(BitmapDescriptorFactory.fromResource(R.drawable.taxi_map_view_dir_start))); mEndMarker = mAMap.addMarker(new MarkerOptions() .icon(BitmapDescriptorFactory.fromResource(R.drawable.taxi_map_view_dir_end))); + mStartMarker.setVisible(false); + mEndMarker.setVisible(false); mArrivedRes = BitmapDescriptorFactory.fromResource(R.drawable.taxi_map_arrow_arrived); mUnArrivedRes = BitmapDescriptorFactory.fromResource(R.drawable.taxi_map_arrow_un_arrive); @@ -209,12 +211,17 @@ public class TaxiMapDirectionView @Override public void setLineMarker() { - if (mStartMarker != null) { - mStartMarker.setVisible(false); - } - if (mEndMarker != null) { - mEndMarker.setVisible(false); +// if (mStartMarker != null) { +// mStartMarker.setVisible(false); +// } +// if (mEndMarker != null) { +// mEndMarker.setVisible(false); +// } + if (mStartMarker != null && mEndMarker != null + && mStartMarker.isVisible() && mEndMarker.isVisible()) { + return; } + if (mCoordinatesLatLng.size() > 2) { // 设置开始结束Marker位置 LatLng startLatLng = mCoordinatesLatLng.get(0); @@ -245,7 +252,6 @@ public class TaxiMapDirectionView polylineOptions.lineCapType(PolylineOptions.LineCapType.LineCapRound); polylineOptions.setCustomTextureList(textureList); polylineOptions.setCustomTextureIndex(texIndexList); -// polylineOptions.setCustomTexture(BitmapDescriptorFactory.fromResource(R.drawable.taxi_p_map_arrow_un_arrive)); // 绘制线 mPolyline = mAMap.addPolyline(polylineOptions); @@ -301,7 +307,7 @@ public class TaxiMapDirectionView } } - public void resetPolyine() { + public void resetPolyLine() { mCoordinatesLatLng.clear(); if (mPolyline != null) { mPolyline.remove(); diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiRottingNaviFragment.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiRottingNaviFragment.java index e1318d866b..d237e395cd 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiRottingNaviFragment.java +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiRottingNaviFragment.java @@ -88,7 +88,7 @@ public class TaxiRottingNaviFragment extends MvpFragment latLngList){ - if (latLngList.size() > 0) { + if (null != latLngList && latLngList.size() > 0) { if (mMapDirectionView != null) { mMapDirectionView.setCoordinatesLatLng(latLngList); UiThreadHandler.post(new Runnable() {