diff --git a/OCH/mogo-och-bus-passenger/src/main/assets/map_style.data b/OCH/mogo-och-bus-passenger/src/main/assets/map_style.data old mode 100644 new mode 100755 index 2be43925c7..4deed98e6a Binary files a/OCH/mogo-och-bus-passenger/src/main/assets/map_style.data and b/OCH/mogo-och-bus-passenger/src/main/assets/map_style.data differ diff --git a/OCH/mogo-och-bus-passenger/src/main/assets/map_style_extra.data b/OCH/mogo-och-bus-passenger/src/main/assets/map_style_extra.data old mode 100644 new mode 100755 index 6a172a62e5..a3c0811e86 Binary files a/OCH/mogo-och-bus-passenger/src/main/assets/map_style_extra.data and b/OCH/mogo-och-bus-passenger/src/main/assets/map_style_extra.data differ diff --git a/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/model/BusPassengerModel.java b/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/model/BusPassengerModel.java index b1323b85e1..c43f715dbe 100644 --- a/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/model/BusPassengerModel.java +++ b/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/model/BusPassengerModel.java @@ -305,16 +305,12 @@ public class BusPassengerModel { int state = autopilotStatusInfo.getState(); CallerLogger.INSTANCE.d( M_BUS_P + TAG, "state = %s", state ); if (state == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING) { - if (mADASStatusCallback != null) mADASStatusCallback.onAutopilotRunning(); - // TODO: 2022/3/31 + //2022.7.20 自动驾驶更换成带档位的 +// if (mADASStatusCallback != null) mADASStatusCallback.onAutopilotRunning(); } else if (state == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE) { - // TODO: 2022/3/31 - - if (mADASStatusCallback != null) mADASStatusCallback.onAutopilotEnable(); +// if (mADASStatusCallback != null) mADASStatusCallback.onAutopilotEnable(); } else if (state == IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE) { - // TODO: 2022/3/31 - - if (mADASStatusCallback != null) mADASStatusCallback.onAutopilotDisable(); +// if (mADASStatusCallback != null) mADASStatusCallback.onAutopilotDisable(); } } diff --git a/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BaseBusPassengerPresenter.java b/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BaseBusPassengerPresenter.java index 1b47d8e38d..17adaf85d7 100644 --- a/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BaseBusPassengerPresenter.java +++ b/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BaseBusPassengerPresenter.java @@ -82,7 +82,7 @@ public class BaseBusPassengerPresenter extends Presenter colorList = new ArrayList<>(); - List textureList = new ArrayList<>(); - List texIndexList = new ArrayList<>(); + private List colorList = new ArrayList<>(); +// List textureList = new ArrayList<>(); +// List texIndexList = new ArrayList<>(); private int mHaveArrivedIndex = 0; private List mLineMarkers = new ArrayList<>(); @@ -232,9 +232,9 @@ public class BusPassengerMapDirectionView polylineOptions.useGradient(true); polylineOptions.width(10); //线段宽度 polylineOptions.lineCapType(PolylineOptions.LineCapType.LineCapRound); - polylineOptions.setCustomTextureList(textureList); - polylineOptions.setCustomTextureIndex(texIndexList); -// polylineOptions.colorValues(colorList); +// polylineOptions.setCustomTextureList(textureList); +// polylineOptions.setCustomTextureIndex(texIndexList); + polylineOptions.colorValues(colorList); // polylineOptions.setCustomTexture(BitmapDescriptorFactory.fromResource(R.drawable.taxi_p_map_arrow)); // 绘制线 @@ -248,16 +248,18 @@ public class BusPassengerMapDirectionView * 添加画线颜色值 */ private void addRouteColorList() { - for (int i = 0 ; i < mHaveArrivedIndex; i++){ - textureList.add(BitmapDescriptorFactory.fromResource(R.drawable.bus_p_map_arrow)); - texIndexList.add(i); +// for (int i = 0 ; i < mHaveArrivedIndex; i++){ +// textureList.add(BitmapDescriptorFactory.fromResource(R.drawable.bus_p_map_arrow)); +// texIndexList.add(i); +// } +// +// for (int i = mHaveArrivedIndex; i < mCoordinatesLatLng.size(); i++){ +// textureList.add(BitmapDescriptorFactory.fromResource(R.drawable.bus_p_map_arrow)); +// texIndexList.add(i); +// } + for (int i = 0; i < mCoordinatesLatLng.size(); i++) { + colorList.add(Color.argb(255, 70, 147, 253));//路线颜色 } - - for (int i = mHaveArrivedIndex; i < mCoordinatesLatLng.size(); i++){ - textureList.add(BitmapDescriptorFactory.fromResource(R.drawable.bus_p_map_arrow)); - texIndexList.add(i); - } - } @Override diff --git a/OCH/mogo-och-bus-passenger/src/main/res/drawable-sw320dp-xhdpi/station_arrow.png b/OCH/mogo-och-bus-passenger/src/main/res/drawable-sw320dp-xhdpi/station_arrow.png new file mode 100644 index 0000000000..114c7a2ba7 Binary files /dev/null and b/OCH/mogo-och-bus-passenger/src/main/res/drawable-sw320dp-xhdpi/station_arrow.png differ diff --git a/OCH/mogo-och-bus-passenger/src/main/res/drawable-xhdpi/station_arrow.png b/OCH/mogo-och-bus-passenger/src/main/res/drawable-xhdpi/station_arrow.png new file mode 100644 index 0000000000..114c7a2ba7 Binary files /dev/null and b/OCH/mogo-och-bus-passenger/src/main/res/drawable-xhdpi/station_arrow.png differ diff --git a/OCH/mogo-och-bus-passenger/src/main/res/layout/bus_p_base_fragment.xml b/OCH/mogo-och-bus-passenger/src/main/res/layout/bus_p_base_fragment.xml index d16730cb71..177cea6b79 100644 --- a/OCH/mogo-och-bus-passenger/src/main/res/layout/bus_p_base_fragment.xml +++ b/OCH/mogo-och-bus-passenger/src/main/res/layout/bus_p_base_fragment.xml @@ -81,7 +81,8 @@ app:layout_constraintTop_toTopOf="@+id/bus_p_cur_station_name" app:layout_constraintBottom_toBottomOf="@+id/bus_p_cur_station_name" app:layout_constraintRight_toLeftOf="@+id/bus_p_cur_station_name" - android:layout_marginRight="8dp"> + android:layout_marginRight="@dimen/dp_10" + android:src="@drawable/station_arrow"> diff --git a/OCH/mogo-och-bus-passenger/src/main/res/values-sw320dp/dimens.xml b/OCH/mogo-och-bus-passenger/src/main/res/values-sw320dp/dimens.xml index a3ceb619eb..8fac096ef4 100644 --- a/OCH/mogo-och-bus-passenger/src/main/res/values-sw320dp/dimens.xml +++ b/OCH/mogo-och-bus-passenger/src/main/res/values-sw320dp/dimens.xml @@ -50,7 +50,7 @@ 685px 309px 50px - 38px + 10px 44px 55px 40px diff --git a/OCH/mogo-och-bus-passenger/src/main/res/values/dimens.xml b/OCH/mogo-och-bus-passenger/src/main/res/values/dimens.xml index c32aec9eff..d4bfe96b27 100644 --- a/OCH/mogo-och-bus-passenger/src/main/res/values/dimens.xml +++ b/OCH/mogo-och-bus-passenger/src/main/res/values/dimens.xml @@ -51,7 +51,7 @@ 638px 316px 38px - 38px + 10px 44px 55px 40px 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 30be0829b1..115ce91022 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 @@ -8,8 +8,12 @@ import com.mogo.och.taxi.passenger.constant.TaxiPassengerConst; import java.util.concurrent.TimeUnit; import io.reactivex.Observable; +import io.reactivex.ObservableEmitter; +import io.reactivex.ObservableOnSubscribe; import io.reactivex.android.schedulers.AndroidSchedulers; +import io.reactivex.disposables.CompositeDisposable; import io.reactivex.disposables.Disposable; +import io.reactivex.functions.Consumer; import io.reactivex.schedulers.Schedulers; /** @@ -31,8 +35,8 @@ public class TaxiPassengerModelLoopManager { private Disposable mInAndWaitServiceDisposable; //进行中、待服务订单列表轮询 private Disposable mQueryOrderRemainingDisposable; //心跳轮询 - private Disposable mRouteWipeDisposable; //轨迹擦除 - private Disposable mReadyToAutopilotDisposable; //轨迹擦除 + private CompositeDisposable mRouteWipeDisposable; //轨迹擦除 + private Disposable mReadyToAutopilotDisposable; //轮询是否可开启自动驾驶 public void startReadyToAutopilot() { if (mReadyToAutopilotDisposable != null && !mReadyToAutopilotDisposable.isDisposed()) { @@ -56,23 +60,45 @@ public class TaxiPassengerModelLoopManager { } public void startRouteAndWipe() { - if (mRouteWipeDisposable != null && !mRouteWipeDisposable.isDisposed()) { - return; - } CallerLogger.INSTANCE.i(M_TAXI_P + TAG, "startRouteAndWipe()"); - mRouteWipeDisposable = Observable.interval(TaxiPassengerConst.LOOP_DELAY, - TaxiPassengerConst.LOOP_PERIOD_1S, TimeUnit.MILLISECONDS) - .map((aLong -> aLong + 1)) + Disposable disposable = startLoopRouteAndWipe() + .doOnSubscribe(new Consumer() { + @Override + public void accept(Disposable disposable) throws Exception { + + } + }).doOnError(new Consumer() { + @Override + public void accept(Throwable throwable) throws Exception { + } + }) + .delay(TaxiPassengerConst.LOOP_PERIOD_1S, TimeUnit.MILLISECONDS, true) // 设置delayError为true,表示出现错误的时候也需要延迟5s进行通知,达到无论是请求正常还是请求失败,都是5s后重新订阅,即重新请求。 .subscribeOn(Schedulers.io()) + .repeat() // repeat保证请求成功后能够重新订阅。 + .retry() // retry保证请求失败后能重新订阅 .observeOn(AndroidSchedulers.mainThread()) - .subscribe(aLong -> TaxiPassengerModel.getInstance().loopRouteAndWipe()); + .subscribe(new Consumer() { + @Override + public void accept(Integer integer) throws Exception { + } + }); + mRouteWipeDisposable.add(disposable); + } + + public Observable startLoopRouteAndWipe(){ + return Observable.create(new ObservableOnSubscribe() { + @Override + public void subscribe(ObservableEmitter emitter) throws Exception { + TaxiPassengerModel.getInstance().loopRouteAndWipe(); + emitter.onComplete(); + } + }); } public void stopRouteAndWipe() { if (mRouteWipeDisposable != null) { CallerLogger.INSTANCE.i(M_TAXI_P + TAG, "stopRouteAndWipe()"); mRouteWipeDisposable.dispose(); - mRouteWipeDisposable = null; } } 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 8c20c113b0..1c0829b359 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 @@ -179,7 +179,7 @@ public class TaxiPassengerBaseFragment extends MvpFragment aLong + 1)) + + Disposable disposable = loopDynamicCalculateRouteInfo() + .doOnSubscribe(new Consumer() { + @Override + public void accept(Disposable disposable) throws Exception { + + } + }).doOnError(new Consumer() { + @Override + public void accept(Throwable throwable) throws Exception { + } + }) + .delay(TaxiConst.LOOP_CALCULATEROUTE_2S, TimeUnit.MILLISECONDS, true) // 设置delayError为true,表示出现错误的时候也需要延迟5s进行通知,达到无论是请求正常还是请求失败,都是5s后重新订阅,即重新请求。 .subscribeOn(Schedulers.io()) + .repeat() // repeat保证请求成功后能够重新订阅。 + .retry() // retry保证请求失败后能重新订阅 .observeOn(AndroidSchedulers.mainThread()) - .subscribe(aLong -> TaxiModel.getInstance().dynamicCalculateRouteInfo()); + .subscribe(new Consumer() { + @Override + public void accept(Integer integer) throws Exception { + } + }); + mCalculateRouteDisposable.add(disposable); + } + + private Observable loopDynamicCalculateRouteInfo(){ + return Observable.create(new ObservableOnSubscribe() { + @Override + public void subscribe(ObservableEmitter emitter) throws Exception { + if (emitter.isDisposed()) return; + TaxiModel.getInstance().dynamicCalculateRouteInfo(); + emitter.onComplete(); + } + }); } public void stopCalculateRouteInfLoop() { if (mCalculateRouteDisposable != null) { CallerLogger.INSTANCE.i(M_TAXI_P + TAG, "stopCalculateRouteInfLoop()"); mCalculateRouteDisposable.dispose(); - mCalculateRouteDisposable = null; } } }