Merge remote-tracking branch 'origin/dev2' into dev2

This commit is contained in:
tongchenfei
2021-01-25 17:58:31 +08:00
6 changed files with 89 additions and 19 deletions

1
.idea/gradle.xml generated
View File

@@ -89,7 +89,6 @@
</set>
</option>
<option name="resolveModulePerSourceSet" value="false" />
<option name="useQualifiedModuleNames" value="true" />
</GradleProjectSettings>
</option>
</component>

View File

@@ -25,4 +25,9 @@ interface IMogoOCHTaxiArriveCallback {
* 去往目的地的路上
*/
void onTheWay2EndStation();
/**
* 乘客已到达站点
*/
void onUserArriveAtStartStation();
}

View File

@@ -81,6 +81,11 @@ class MogoOCHTaxiModel {
*/
private boolean mIsArriveAtEndStation = false;
/**
* 乘客已到达上车站点
*/
private boolean mIsUserArriveAtStartStation = false;
/**
* 查询订单信息重试次数
*/
@@ -125,7 +130,8 @@ class MogoOCHTaxiModel {
* <p>
* 已结束、已取消:清除订单状态
* 已到达目的地更新UI显示到达目的地状态
* 已到达起始地:更新UI显示已到达起始地状态
* 车辆已到达起始地:等待乘客上车,并确认上车
* 乘客已上车更新UI显示已到达起始站等待安全员确认开启自动驾驶
* 在去往目的地的路上:显示去往目的地的路上
* 在去往起始地的路上、未获取具体状态:以新接收订单开始处理
*
@@ -150,18 +156,28 @@ class MogoOCHTaxiModel {
mIsArriveAtEndStation = true;
mIsArriveAtStartStation = true;
mIsOnTheWay2EndStation = false;
mIsUserArriveAtStartStation = true;
OCHTaxiUiController.getInstance().addFragment();
break;
case ArriveAtStartStation:
mIsArriveAtStartStation = true;
mIsArriveAtEndStation = false;
mIsOnTheWay2EndStation = false;
mIsUserArriveAtStartStation = false;
OCHTaxiUiController.getInstance().addFragment();
break;
case UserArriveAtStartStation:
mIsArriveAtStartStation = true;
mIsArriveAtEndStation = false;
mIsOnTheWay2EndStation = false;
mIsUserArriveAtStartStation = true;
OCHTaxiUiController.getInstance().addFragment();
break;
case OnTheWayToEndStation:
mIsArriveAtStartStation = true;
mIsArriveAtEndStation = false;
mIsOnTheWay2EndStation = true;
mIsUserArriveAtStartStation = true;
OCHTaxiUiController.getInstance().addFragment();
break;
case OnTheWayToStartStation:
@@ -169,6 +185,7 @@ class MogoOCHTaxiModel {
mIsArriveAtStartStation = false;
mIsArriveAtEndStation = false;
mIsOnTheWay2EndStation = false;
mIsUserArriveAtStartStation = false;
mOrderMsgListener.onMsgReceived( mCurrentOCHOrder );
break;
}
@@ -220,6 +237,7 @@ class MogoOCHTaxiModel {
@Override
public void onCarLocationChanged2( Location location ) {
Logger.d( TAG, "定位已判断是否达到上车站点" );
onLocationChanged( location );
}
@@ -245,6 +263,10 @@ class MogoOCHTaxiModel {
unregisterCarLocationListener();
return;
}
if ( mIsUserArriveAtStartStation ) {
unregisterCarLocationListener();
return;
}
judgeStationStation( location );
}
@@ -298,6 +320,15 @@ class MogoOCHTaxiModel {
return mIsArriveAtEndStation;
}
/**
* 用户是否达到上车站点
*
* @return
*/
public boolean isUserArriveAtStartStation() {
return mIsUserArriveAtStartStation;
}
/**
* 设置去往终点状态
*
@@ -400,6 +431,11 @@ class MogoOCHTaxiModel {
clearCurrentOCHOrder();
OCHTaxiUiController.getInstance().removeFragment();
break;
case UserArriveAtStartStation:
mIsArriveAtStartStation = true;
mIsUserArriveAtStartStation = true;
OCHTaxiUiController.getInstance().onUserArriveAtStartStation();
break;
default:
Logger.d( TAG, "current order status: %s", status );
break;
@@ -519,6 +555,7 @@ class MogoOCHTaxiModel {
mIsArriveAtStartStation = false;
mIsArriveAtEndStation = false;
mIsOnTheWay2EndStation = false;
mIsUserArriveAtStartStation = false;
SharedPrefsMgr.getInstance( mContext ).remove( SP_KEY_OCH_TAXI_ORDER );
}

View File

@@ -7,21 +7,23 @@ public
*
* 未派单 0
* 去往上车站点 1
* 已到达上车站点 2
* 去往下车站点 3
* 到达下车站点 4
* 已完成 5
* 已取消 6
* 车辆已到达上车站点 2
* 乘客已到达上车站点 3
* 去往下车站点 4
* 到达下车站点 5
* 已完成 6
* 已取消 7
*/
enum OCHOrderStatus {
None( 0 ),
OnTheWayToStartStation( 1 ),
ArriveAtStartStation( 2 ),
OnTheWayToEndStation( 3 ),
ArriveAtEndStation( 4 ),
Completed( 5 ),
Cancel( 6 );
UserArriveAtStartStation( 3 ),
OnTheWayToEndStation( 4 ),
ArriveAtEndStation( 5 ),
Completed( 6 ),
Cancel( 7 );
private int code;

View File

@@ -57,6 +57,8 @@ class OCHTaxiFragment extends BaseOchFragment< OCHTaxiView, OCHTaxiPresenter > i
mEndStationName = findViewById( R.id.module_och_taxi_order_end_station );
mDistance = findViewById( R.id.module_och_taxi_order_distance );
initListeners();
initOrderStatus();
if ( MogoApisHandler.getInstance()
.getApis()
.getStatusManagerApi()
@@ -65,8 +67,6 @@ class OCHTaxiFragment extends BaseOchFragment< OCHTaxiView, OCHTaxiPresenter > i
} else {
flatMode();
}
initListeners();
initOrderStatus();
}
private void initListeners() {
@@ -93,11 +93,19 @@ class OCHTaxiFragment extends BaseOchFragment< OCHTaxiView, OCHTaxiPresenter > i
}
private void vrMode() {
if ( mRootView != null ) {
mRootView.setVisibility(
View.VISIBLE
);
}
}
private void flatMode() {
if ( mRootView != null ) {
mRootView.setVisibility(
View.GONE
);
}
}
private void initOrderStatus() {
@@ -117,9 +125,12 @@ class OCHTaxiFragment extends BaseOchFragment< OCHTaxiView, OCHTaxiPresenter > i
mOrderStatus.setText( "去往下车地点" );
} else if ( MogoOCHTaxiModel.getInstance().isArriveAtStartStation() ) {
Logger.d( TAG, "已经达到起点" );
slidePanelView.setVisibility( View.VISIBLE );
slidePanelView.setText( getString( R.string.module_och_taxi_arrive_at_start_station ) );
mOrderStatus.setText( "已到达上车地点,等待乘客上车" );
if ( MogoOCHTaxiModel.getInstance().isUserArriveAtStartStation() ) {
Logger.d( TAG, "乘客已上车" );
slidePanelView.setVisibility( View.VISIBLE );
slidePanelView.setText( getString( R.string.module_och_taxi_arrive_at_start_station ) );
}
} else if ( MogoOCHTaxiModel.getInstance().checkCurrentOCHOrder() ) {
Logger.d( TAG, "去往上车站点" );
slidePanelView.setVisibility( View.GONE );
@@ -170,6 +181,12 @@ class OCHTaxiFragment extends BaseOchFragment< OCHTaxiView, OCHTaxiPresenter > i
initOrderStatus();
}
@Override
public void onUserArriveAtStartStation() {
Logger.d( TAG, "通知乘客已上车" );
initOrderStatus();
}
@Override
public void onDestroyView() {
super.onDestroyView();
@@ -207,8 +224,8 @@ class OCHTaxiFragment extends BaseOchFragment< OCHTaxiView, OCHTaxiPresenter > i
}
} );
return;
// 到达起点,前往下一站并开启自动驾驶
} else if ( MogoOCHTaxiModel.getInstance().isArriveAtStartStation()
// 乘客已确认到达起点,前往下一站并开启自动驾驶
} else if ( MogoOCHTaxiModel.getInstance().isUserArriveAtStartStation()
&& !MogoOCHTaxiModel.getInstance().isOnTheWay2EndStation() ) {
MogoOCHTaxiModel.getInstance().startAutoPilot();
MogoOCHTaxiModel.getInstance().setOnTheWay2EndStation( true );

View File

@@ -126,6 +126,15 @@ class OCHTaxiUiController implements IMogoOCHTaxiArriveCallback {
} );
}
@Override
public void onUserArriveAtStartStation() {
runOnUIThread( () -> {
if ( mOCHTaxiArriveCallback != null ) {
mOCHTaxiArriveCallback.onUserArriveAtStartStation();
}
} );
}
private void runOnUIThread( Runnable executor ) {
if ( executor == null ) {
return;
@@ -136,4 +145,5 @@ class OCHTaxiUiController implements IMogoOCHTaxiArriveCallback {
executor.run();
}
}
}