[fix] 乘客端 4s查路 获取路点失败2s后重试 登录提前清理

This commit is contained in:
yangyakun
2022-09-05 16:45:48 +08:00
parent 91b5ed87fa
commit cdb0aafaf3
3 changed files with 27 additions and 6 deletions

View File

@@ -67,7 +67,10 @@ import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
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;
@@ -108,6 +111,9 @@ public class TaxiPassengerModel implements IOCHTaxiPassengerNaviChangedCallback
private ITaxiPassengerVeloctityCallback mVeloctityCallback;//道路限速返回
private Disposable subscribe;
private int delayTime = 2;
private double mLongitude, mLatitude;
private List<LatLng> mLocationsModels = new ArrayList<>();
@@ -209,6 +215,9 @@ public class TaxiPassengerModel implements IOCHTaxiPassengerNaviChangedCallback
startOrStopOrderLoop(false);
startOrStopQueryOrderRemaining(false);
releaseListeners();
if(subscribe!=null&&!subscribe.isDisposed()){
subscribe.dispose();
}
}
private void initListeners() {
@@ -720,13 +729,17 @@ public class TaxiPassengerModel implements IOCHTaxiPassengerNaviChangedCallback
startOrStopRouteAndWipe(true);
}
}else {
queryOrderRouteList();
subscribe = Observable.timer(delayTime, TimeUnit.SECONDS).subscribe(aLong -> {
queryOrderRouteList();
});
}
}
@Override
public void onFail(int code, String msg) {
queryOrderRouteList();
subscribe = Observable.timer(delayTime, TimeUnit.SECONDS).subscribe(aLong -> {
queryOrderRouteList();
});
}
});
}

View File

@@ -24,11 +24,8 @@ import com.mogo.och.taxi.passenger.model.TaxiPassengerGeocodeSearchModel;
import com.mogo.och.taxi.passenger.model.TaxiPassengerModel;
import com.mogo.och.taxi.passenger.ui.TaxiPassengerServingOrderFragment;
import java.util.ArrayList;
import java.util.List;
import mogo.telematics.pad.MessagePad;
import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_TAXI_P;
/**
@@ -54,9 +51,11 @@ public class TaxiPassengerServingOrderPresenter extends Presenter<TaxiPassengerS
}
private void initListener() {
// 设置起点和终点marker和实时车辆位置
TaxiPassengerModel.getInstance().setMoGoAutopilotPlanningListener(this);
TaxiPassengerModel.getInstance().setOrderStatusCallback("TaxiPassengerServingOrderPresenter",this);
TaxiPassengerModel.getInstance().setControllerStatusCallback("TaxiPassengerServingOrderPresenter",this);
// 获取道路限速
TaxiPassengerModel.getInstance().setVeloctityCallback(this);
}
@@ -132,10 +131,19 @@ public class TaxiPassengerServingOrderPresenter extends Presenter<TaxiPassengerS
}
private long startTime = 0;
private static final long TIMEINTERVAL = 4000;
@Override
public void onCarLocationChanged(Location location) {
if (location != null){
runOnUIThread(() -> mView.onCarLocationChanged(location));
long currentTimeMillis = System.currentTimeMillis();
if(currentTimeMillis-startTime<TIMEINTERVAL){
return;
}
CallerLogger.INSTANCE.d(M_TAXI_P + TAG,"onCarLocationChanged 获取当前路的信息");
startTime = currentTimeMillis;
TaxiPassengerGeocodeSearchModel.getInstance(getContext()).searchLocationInfo(location.getLatitude(),location.getLongitude());
}
}

View File

@@ -396,8 +396,8 @@ public class TaxiFragment extends BaseTaxiTabFragment<TaxiFragment, TaxiPresente
}
taxiLoginDialog.show(getParentFragmentManager(), taxiLoginDialog.getTag());
taxiLoginDialog.setOnDismissListener(dialog -> {
mPresenter.queryLoginStatus();
taxiLoginDialogFragment.clear();
mPresenter.queryLoginStatus();
});
}
}