diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiModel.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiModel.java index a172e6316e..0fefa65502 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiModel.java +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiModel.java @@ -57,7 +57,6 @@ import com.mogo.och.taxi.callback.ITaxiControllerStatusCallback; import com.mogo.och.taxi.callback.ITaxiOrderStatusCallback; import com.mogo.och.taxi.constant.TaxiDriverRoleEnum; import com.mogo.och.taxi.constant.TaxiConst; -import com.mogo.och.taxi.constant.TaxiLoginStatusEnum; import com.mogo.och.taxi.constant.TaxiOrderStatusEnum; import com.mogo.och.taxi.constant.TaxiOrderTypeEnum; import com.mogo.och.taxi.network.TaxiServiceCallback; @@ -79,7 +78,10 @@ import java.io.IOException; import java.util.ArrayList; import java.util.Collections; import java.util.List; +import java.util.concurrent.TimeUnit; +import io.reactivex.Observable; +import io.reactivex.disposables.Disposable; import io.reactivex.exceptions.UndeliverableException; import io.reactivex.functions.Consumer; import io.reactivex.plugins.RxJavaPlugins; @@ -116,6 +118,7 @@ public class TaxiModel { private ITaxiCarStatusCallback mCarStatusCallback; //Model->Presenter:出车/收车状态 private ITaxiControllerStatusCallback mControllerStatusCallback; //Model->Presenter:VR mode等 private ITaxiOrderStatusCallback mOrderStatusCallback; //Model->Presenter:订单变更 + private Disposable subscribe; private volatile boolean isRestartAutopilot = false; @@ -196,6 +199,9 @@ public class TaxiModel { startOrStopOrderLoop(false); startOrStopCalculateRouteInfo(false); releaseListeners(); + if(subscribe!=null&&!subscribe.isDisposed()){ + subscribe.dispose(); + } } private void initListeners() { @@ -296,7 +302,10 @@ public class TaxiModel { } else { ToastUtils.showShort(mContext.getString(R.string.request_error_tip)); } - queryCarStatus(); + subscribe = Observable.timer(5, TimeUnit.SECONDS).subscribe(aLong -> { + queryCarStatus(); + }); + if(mCarStatusCallback!=null) { mCarStatusCallback.onCarLoginStatusChange(StatusManager.isLogin()); } @@ -305,7 +314,6 @@ public class TaxiModel { @Override public void onFail(int code, String msg) { ToastUtils.showShort(code + "," + msg); - queryCarStatus(); if(mCarStatusCallback!=null) { mCarStatusCallback.onCarLoginStatusChange(StatusManager.isLogin()); } diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiFragment.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiFragment.java index 6e001b7d91..636fc4c8be 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiFragment.java +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiFragment.java @@ -94,7 +94,7 @@ public class TaxiFragment extends BaseTaxiTabFragment