[2.12.0] fix taxi司机端点击送驾导航崩溃问题

This commit is contained in:
wangmingjun
2022-11-10 14:55:29 +08:00
parent a9333e0123
commit b4d64c5b27
7 changed files with 32 additions and 26 deletions

View File

@@ -52,7 +52,7 @@ public interface ITaxiOrderStatusCallback {
/**
* 导航到目的地
* @param isAmap 是否是高德导航
* @param isVoicePlay 是否播报声音
* @param isShow 是否显示导航地图(否播报声音
*/
void onNaviToEnd(boolean isAmap, boolean isVoicePlay);
void onNaviToEnd(boolean isAmap, boolean isShow);
}

View File

@@ -1597,20 +1597,26 @@ public class TaxiModel {
}
//导航去订单终点目的地
public void startNaviToEndStation(boolean isVoicePlay){
public void startNaviToEndStation(boolean isShow){
if (mRoutePoints.size() > 0 ){ //使用自驾轨迹
if (mOrderStatusCallback != null){
mOrderStatusCallback.onNaviToEnd(false,isVoicePlay);
mOrderStatusCallback.onNaviToEnd(false,isShow);
}
}else {//2s后若无轨迹数据使用高德导航
UiThreadHandler.postDelayed(new Runnable() {
@Override
public void run() {
if (mRoutePoints.size() == 0 && mOrderStatusCallback != null){
mOrderStatusCallback.onNaviToEnd(true,isVoicePlay);
}else {//若直接要显示导航地图则直接导航, 若不是则2s后若无轨迹数据使用高德导航
if (isShow && mRoutePoints.size() == 0 && mOrderStatusCallback != null){
mOrderStatusCallback.onNaviToEnd(true,true);
}else {
UiThreadHandler.postDelayed(new Runnable() {
@Override
public void run() {
if (mRoutePoints.size() == 0 && mOrderStatusCallback != null){
mOrderStatusCallback.onNaviToEnd(true,false);
}
}
}
},2000l);
},2000l);
}
}
}
}

View File

@@ -184,8 +184,8 @@ public class TaxiPresenter extends Presenter<TaxiFragment> implements ITaxiADASS
}
//导航去订单目的地
public void startNaviToEndStation(boolean isVoicePlay){
TaxiModel.getInstance().startNaviToEndStation(isVoicePlay);
public void startNaviToEndStation(boolean isShow){
TaxiModel.getInstance().startNaviToEndStation(isShow);
}
public void reportToEndDisAndTime(long lastSumLength, long duration){//米/秒
@@ -323,8 +323,8 @@ public class TaxiPresenter extends Presenter<TaxiFragment> implements ITaxiADASS
}
@Override
public void onNaviToEnd(boolean isAmap, boolean isVoicePlay) {
runOnUIThread( () -> mView.onNaviToEnd(isAmap,isVoicePlay));
public void onNaviToEnd(boolean isAmap, boolean isShow) {
runOnUIThread( () -> mView.onNaviToEnd(isAmap,isShow));
}
@Override

View File

@@ -624,5 +624,5 @@ public abstract class BaseTaxiTabFragment<V extends IView, P extends Presenter<V
public abstract void startNaviToEndStation(boolean isVoicePlay);
public abstract void startNaviToEndStation(boolean isShow);
}

View File

@@ -618,7 +618,6 @@ public class TaxiBeingServerdOrdersFragment extends BaseTaxiUIFragment
* @param isShow
*/
private void showNaviToEndStationFragment(boolean isShow) {
mTaxiFragment.showAmapNaviToStationFragment(isShow);
mTaxiFragment.startNaviToEndStation(isShow);
}
@@ -698,12 +697,13 @@ public class TaxiBeingServerdOrdersFragment extends BaseTaxiUIFragment
}, 3000);
}
public void onNaviToEndAmap(boolean isVoicePlay) {
public void onNaviToEndAmap(boolean isShow) {
if (mCurrentOrder != null &&
mCurrentOrder.orderStatus == TaxiOrderStatusEnum.OnTheWayToEnd.getCode()){
double orderEndStationLat = mCurrentOrder.endSiteGcjPoint.get(1);
double orderEndStationLng = mCurrentOrder.endSiteGcjPoint.get(0);
startNaviToStation(isVoicePlay,orderEndStationLat,orderEndStationLng);
mTaxiFragment.showAmapNaviToStationFragment(isShow);
startNaviToStation(isShow,orderEndStationLat,orderEndStationLng);
}
}

View File

@@ -95,8 +95,8 @@ public class TaxiFragment extends BaseTaxiTabFragment<TaxiFragment, TaxiPresente
}
@Override
public void startNaviToEndStation(boolean isVoicePlay) {
mPresenter.startNaviToEndStation(isVoicePlay);
public void startNaviToEndStation(boolean isShow) {
mPresenter.startNaviToEndStation(isShow);
}
@Override
@@ -311,10 +311,10 @@ public class TaxiFragment extends BaseTaxiTabFragment<TaxiFragment, TaxiPresente
grabOrderFragment.onGrabOrderFailed();
}
public void onNaviToEnd(boolean isAmap , boolean isVoicePlay){
public void onNaviToEnd(boolean isAmap , boolean isShow){
if (isAmap){
if (null == serverOrdersFragment) return;
serverOrdersFragment.onNaviToEndAmap(isVoicePlay);
serverOrdersFragment.onNaviToEndAmap(isShow);
}else { //使用rotting数据
showRottingToStationFragment(true);
}

View File

@@ -215,8 +215,8 @@ public class TaxiServerOrdersFragment extends BaseTaxiUIFragment {
beingServerdOrdersFragment.updateOrderBottomBtnUI();
}
public void onNaviToEndAmap(boolean isVoicePlay){
public void onNaviToEndAmap(boolean isShow){
if (null == beingServerdOrdersFragment) return;
beingServerdOrdersFragment.onNaviToEndAmap(isVoicePlay);
beingServerdOrdersFragment.onNaviToEndAmap(isShow);
}
}