Merge branch 'dev_robotaxi-d-app-module_2110_220915_2.11.0' into dev_local_2.12.0

# Conflicts:
#	OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/presenter/TaxiPresenter.java
This commit is contained in:
wangmingjun
2022-10-18 16:49:28 +08:00
11 changed files with 58 additions and 79 deletions

View File

@@ -140,7 +140,6 @@ public abstract class BaseBusTabFragment<V extends IView, P extends Presenter<V>
if (MogoMapUIController.getInstance().getCurrentMapVisualAngle().isLongSight()) {
// 2.11.0去掉
// MogoMarkerManager.getInstance(AbsMogoApplication.getApp()).visibleAllMarkers();
AiRoadMarker.INSTANCE.restore();
MogoMapUIController.getInstance().changeMapVisualAngle(VisualAngleMode.MODE_MEDIUM_SIGHT, null);
mSwitchMapModeImage.setImageResource(R.drawable.bus_switch_map_medium);
} else if (MogoMapUIController.getInstance().getCurrentMapVisualAngle().isMediumSight()) {
@@ -149,13 +148,11 @@ public abstract class BaseBusTabFragment<V extends IView, P extends Presenter<V>
// .inVisibleWithoutMarkers(DataTypes.TYPE_MARKER_ADAS, BusConst.TYPE_MARKER_BUS_ORDER);
MogoMapUIController.getInstance().changeMapVisualAngle(VisualAngleMode.MODE_LONG_SIGHT, null);
mSwitchMapModeImage.setImageResource(R.drawable.bus_switch_map_long);
AiRoadMarker.INSTANCE.clear();
} else {
// 2.11.0去掉
// MogoMarkerManager.getInstance(AbsMogoApplication.getApp()).visibleAllMarkers();
MogoMapUIController.getInstance().changeMapVisualAngle(VisualAngleMode.MODE_MEDIUM_SIGHT, null);
mSwitchMapModeImage.setImageResource(R.drawable.bus_switch_map_medium);
AiRoadMarker.INSTANCE.restore();
}
}
});

View File

@@ -137,19 +137,16 @@ public class TaxiPassengerBaseFragment extends MvpFragment<TaxiPassengerBaseFrag
// MogoMarkerManager.getInstance(AbsMogoApplication.getApp()).visibleAllMarkers();
MogoMapUIController.getInstance().changeMapVisualAngle(VisualAngleMode.MODE_MEDIUM_SIGHT, null);
mMapswitchBtn.setImageResource(R.drawable.taxi_p_switch_map_medium);
AiRoadMarker.INSTANCE.restore();
} else if (MogoMapUIController.getInstance().getCurrentMapVisualAngle().isMediumSight()) {
// 2.11.0 去掉
// MogoMarkerManager.getInstance(AbsMogoApplication.getApp()).inVisibleWithoutMarkers(DataTypes.TYPE_MARKER_ADAS);
MogoMapUIController.getInstance().changeMapVisualAngle(VisualAngleMode.MODE_LONG_SIGHT, null);
mMapswitchBtn.setImageResource(R.drawable.taxi_p_switch_map_long);
AiRoadMarker.INSTANCE.clear();
} else {
// 2.11.0去掉
// MogoMarkerManager.getInstance(AbsMogoApplication.getApp()).visibleAllMarkers();
MogoMapUIController.getInstance().changeMapVisualAngle(VisualAngleMode.MODE_MEDIUM_SIGHT, null);
mMapswitchBtn.setImageResource(R.drawable.taxi_p_switch_map_medium);
AiRoadMarker.INSTANCE.restore();
}
//OverlayLeftViewUtils.INSTANCE.dismissOverlayView();
}

View File

@@ -8,5 +8,4 @@ public interface ITaxiNaviChangedCallback {
// 当前位置距离上车点的距离(米)、预估时间(秒)
void onCurrentNaviDistAndTimeChanged(int meters, long timeInSecond);
void reInitNaviAmap(boolean isPlay,boolean isRestart);
void onNaviToEndAmap();
}

View File

@@ -48,4 +48,7 @@ public interface ITaxiOrderStatusCallback {
// 司机已确认开启自动驾驶环境
void onDriverHasCheckedPilotCondition(boolean isSafe);
//高德导航到达目的地
void onNaviToEndAmap();
}

View File

@@ -118,7 +118,6 @@ public class TaxiModel {
private ITaxiCarStatusCallback mCarStatusCallback; //Model->Presenter接单状态、登录状态和司机今日接单状态
private ITaxiControllerStatusCallback mControllerStatusCallback; //Model->PresenterVR mode等
private ITaxiOrderStatusCallback mOrderStatusCallback; //Model->Presenter订单变更
private ITaxiNaviChangedCallback mNaviChangedCallback;//导航相关回调
private volatile boolean isRestartAutopilot = false;
@@ -147,10 +146,6 @@ public class TaxiModel {
this.mOrderStatusCallback = callback;
}
public void setOCHTaciNaviChangedCallback(ITaxiNaviChangedCallback callback){
this.mNaviChangedCallback = callback;
}
public void init(Context context) {
mContext = context.getApplicationContext();
initListeners();
@@ -1555,8 +1550,8 @@ public class TaxiModel {
if (mRoutePoints.size() > 0 ){ //使用自驾轨迹
}else {//使用高的导航
if (mNaviChangedCallback != null){
mNaviChangedCallback.onNaviToEndAmap();
if (mOrderStatusCallback != null){
mOrderStatusCallback.onNaviToEndAmap();
}
}
}

View File

@@ -19,7 +19,6 @@ import com.mogo.och.common.module.biz.bean.DriverStatusQueryRespBean;
import com.mogo.och.common.module.biz.callback.ILoginCallback;
import com.mogo.och.common.module.biz.constant.LoginStatusManager;
import com.mogo.och.common.module.manager.OCHAdasAbilityManager;
import com.mogo.och.taxi.callback.ITaxiNaviChangedCallback;
import com.mogo.och.taxi.constant.TaxiConst;
import com.mogo.och.taxi.constant.TaxiDriverRoleEnum;
import com.mogo.och.taxi.constant.TaxiOrderStatusEnum;
@@ -44,7 +43,7 @@ import java.util.List;
* 描述
*/
public class TaxiPresenter extends Presenter<TaxiFragment> implements ITaxiADASStatusCallback,
ITaxiCarStatusCallback, ITaxiOrderStatusCallback, ITaxiControllerStatusCallback, ILoginCallback, ITaxiNaviChangedCallback {
ITaxiCarStatusCallback, ITaxiOrderStatusCallback, ITaxiControllerStatusCallback, ILoginCallback {
private static final String TAG = TaxiPresenter.class.getSimpleName();
@@ -76,8 +75,6 @@ public class TaxiPresenter extends Presenter<TaxiFragment> implements ITaxiADASS
TaxiModel.getInstance().setCarStatusCallback(this);
TaxiModel.getInstance().setControllerStatusCallback(this);
TaxiModel.getInstance().setOrderStatusCallback(this);
TaxiModel.getInstance().setOCHTaciNaviChangedCallback(this);
OCHAdasAbilityManager.getInstance().release();
}
private void releaseListeners() {
@@ -85,7 +82,7 @@ public class TaxiPresenter extends Presenter<TaxiFragment> implements ITaxiADASS
TaxiModel.getInstance().setCarStatusCallback(null);
TaxiModel.getInstance().setControllerStatusCallback(null);
TaxiModel.getInstance().setOrderStatusCallback(null);
TaxiModel.getInstance().setOCHTaciNaviChangedCallback(null);
OCHAdasAbilityManager.getInstance().release();
}
private void runOnUIThread( Runnable executor ) {
@@ -185,7 +182,7 @@ public class TaxiPresenter extends Presenter<TaxiFragment> implements ITaxiADASS
//导航去订单目的地
public void startNaviToEndStation(){
TaxiModel.getInstance().startNaviToEndStation();
TaxiModel.getInstance().startNaviToEndStation();
}
@Override
@@ -313,6 +310,11 @@ public class TaxiPresenter extends Presenter<TaxiFragment> implements ITaxiADASS
runOnUIThread(() -> mView.onCheckPilotConditionSafe(isSafe));
}
@Override
public void onNaviToEndAmap() {
runOnUIThread( () -> mView.onNaviToEndAmap());
}
@Override
public void onVRModeChanged(boolean isVRMode) {
runOnUIThread(() -> mView.switchVRFlatMode(isVRMode));
@@ -359,19 +361,4 @@ public class TaxiPresenter extends Presenter<TaxiFragment> implements ITaxiADASS
public void loginFail(boolean isLogin) {
}
@Override
public void onCurrentNaviDistAndTimeChanged(int meters, long timeInSecond) {
}
@Override
public void reInitNaviAmap(boolean isPlay, boolean isRestart) {
}
@Override
public void onNaviToEndAmap() {
mView.onNaviToEndAmap();
}
}

View File

@@ -199,21 +199,17 @@ public abstract class BaseTaxiTabFragment<V extends IView, P extends Presenter<V
// MogoMarkerManager.getInstance(AbsMogoApplication.getApp()) .visibleAllMarkers();
MogoMapUIController.getInstance().changeMapVisualAngle(VisualAngleMode.MODE_MEDIUM_SIGHT, null);
mSwitchBtnIcon.setImageResource(R.drawable.taxi_switch_map_medium);
AiRoadMarker.INSTANCE.restore();
} else if (MogoMapUIController.getInstance().getCurrentMapVisualAngle().isMediumSight()) {
// 2.11.0去掉
// MogoMarkerManager.getInstance(AbsMogoApplication.getApp())
// .inVisibleWithoutMarkers(DataTypes.TYPE_MARKER_ADAS, TaxiConst.TYPE_MARKER_TAXI_ORDER);
MogoMapUIController.getInstance().changeMapVisualAngle(VisualAngleMode.MODE_LONG_SIGHT, null);
mSwitchBtnIcon.setImageResource(R.drawable.taxi_switch_map_long);
AiRoadMarker.INSTANCE.clear();
} else {
// 2.11.0去掉
// MogoMarkerManager.getInstance(AbsMogoApplication.getApp()) .visibleAllMarkers();
MogoMapUIController.getInstance().changeMapVisualAngle(VisualAngleMode.MODE_MEDIUM_SIGHT, null);
mSwitchBtnIcon.setImageResource(R.drawable.taxi_switch_map_medium);
AiRoadMarker.INSTANCE.restore();
}
} finally {
CallerLogger.INSTANCE.d(M_TAXI + TAG, "cost:" + (SystemClock.elapsedRealtime() - start));

View File

@@ -55,8 +55,6 @@ public class TaxiBeingServerdOrdersFragment extends BaseTaxiUIFragment implement
private static Activity mActivity;
private static TaxiFragment mTaxiFragment;
private String mOrderNo;
private double mOrderStartStationLat = 0;
private double mOrderStartStationLng = 0;
private volatile int mTtsLessThan200Tip = 0;//离终点200米提示播报
private OrderQueryRespBean.Result mCurrentOrder = null;
private boolean isFirstStartAutopilotDone = true;
@@ -86,7 +84,7 @@ public class TaxiBeingServerdOrdersFragment extends BaseTaxiUIFragment implement
private TextView mArrivedStationTitleTv32;
private TextView mGoAheadStationTitleTv31;
private TextView mCatchStationTitleTv31;
private ImageView mNaviIcon;
private ImageView mNaviStartIcon;
private ImageView mNaviToEndIcon;
private TextView mPassengerNum;
private TextView mPassengerPhone;
@@ -170,8 +168,8 @@ public class TaxiBeingServerdOrdersFragment extends BaseTaxiUIFragment implement
}
private void initNaviView(View view) {
mNaviIcon = view.findViewById(R.id.module_och_taxi_navi_iv);
mNaviIcon.setOnClickListener(this);
mNaviStartIcon = view.findViewById(R.id.module_och_taxi_navi_iv);
mNaviStartIcon.setOnClickListener(this);
mNaviToEndIcon = view.findViewById(R.id.module_och_taxi_navi_end_iv);
mNaviToEndIcon.setOnClickListener(this);
@@ -326,8 +324,6 @@ public class TaxiBeingServerdOrdersFragment extends BaseTaxiUIFragment implement
+ "<font color=\"#CAD6FF\"> 用车</font>";
}
mOrderOtherContent3.setText(Html.fromHtml(strHtml1));
mOrderStartStationLat = order.startSiteGcjPoint.get(1);
mOrderStartStationLng = order.startSiteGcjPoint.get(0);
}
}catch (NullPointerException e){ //可能会出现订单信息已经轮询回来,但进行中页面控件还未初始化完成的情况
TaxiModel.getInstance().clearCurrentOCHOrder();
@@ -344,7 +340,7 @@ public class TaxiBeingServerdOrdersFragment extends BaseTaxiUIFragment implement
}
}
private void startNaviToStartStation(boolean isShow, double orderStartStationLat, double orderStartStationLng) {
private void startNaviToStation(boolean isShow, double orderStartStationLat, double orderStartStationLng) {
NaviToDestinationModel.getInstance(getContext()).destroyAmaNavi();
CallerLogger.INSTANCE.d(M_TAXI + TAG, "currentLatLng=" + mTaxiFragment.mCurLatitude + " " + mTaxiFragment.mCurLongitude);
NaviLatLng startNaviLatLng = new NaviLatLng(mTaxiFragment.mCurLatitude, mTaxiFragment.mCurLongitude);
@@ -354,19 +350,9 @@ public class TaxiBeingServerdOrdersFragment extends BaseTaxiUIFragment implement
NaviToDestinationModel.getInstance(getContext()).setOCHTaciNaviChangedCallback(this);
}
private void startNaviToEndStation(boolean isShow, double orderEndStationLat, double orderEndStationLng) {
NaviToDestinationModel.getInstance(getContext()).destroyAmaNavi();
CallerLogger.INSTANCE.d(M_TAXI + TAG, "currentLatLng=" + mTaxiFragment.mCurLatitude + " " + mTaxiFragment.mCurLongitude);
NaviLatLng startNaviLatLng = new NaviLatLng(mTaxiFragment.mCurLatitude, mTaxiFragment.mCurLongitude);
NaviLatLng endNaviLatLng = new NaviLatLng(orderEndStationLat, orderEndStationLng);
NaviToDestinationModel.getInstance(getContext()).initAMapNavi(startNaviLatLng, endNaviLatLng);
NaviToDestinationModel.getInstance(getContext()).setVoiceIsMute(isShow);
NaviToDestinationModel.getInstance(getContext()).setOCHTaciNaviChangedCallback(this);
}
private void showOrHideNavi(boolean isShow) {
if (!isShow) {
mNaviIcon.setVisibility(View.GONE);
mNaviStartIcon.setVisibility(View.GONE);
NaviToDestinationModel.getInstance(getContext()).destroyAmaNavi();
mTaxiFragment.showNaviToStationFragment(false);
}
@@ -397,9 +383,9 @@ public class TaxiBeingServerdOrdersFragment extends BaseTaxiUIFragment implement
if (mContentModule3 != null && mContentModule3.getVisibility() == View.VISIBLE) { //前往上车点
mDistanceAndTime3.setText(Html.fromHtml(strHtml2));
mNaviIcon.setVisibility(View.VISIBLE);
mNaviStartIcon.setVisibility(View.VISIBLE);
} else if (mContentModule2 != null && mContentModule2.getVisibility() == View.VISIBLE) { //前往终点 时间单位是分钟
mNaviIcon.setVisibility(View.VISIBLE);
mNaviStartIcon.setVisibility(View.VISIBLE);
if (mTtsLessThan200Tip < 1 && meters <= 250 && meters > 150){
speekVoice200mTipsOnce();
}
@@ -479,7 +465,9 @@ public class TaxiBeingServerdOrdersFragment extends BaseTaxiUIFragment implement
showNotice(mActivity.getString(R.string.module_och_taxi_new_order));
mTtsLessThan200Tip = 0;
isFirstStartAutopilotDone = true;
startNaviToStartStation(false, mOrderStartStationLat, mOrderStartStationLng);
double orderStartStationLat = order.startSiteGcjPoint.get(1);
double orderStartStationLng = order.startSiteGcjPoint.get(0);
startNaviToStation(false, orderStartStationLat, orderStartStationLng);
showOrHideNavi(true);
setOrRemoveMapMaker(true, TaxiConst.TAXI_START_MAP_MAKER,order.startSitePoint,R.raw.star_marker);
setOrRemoveMapMaker(true, TaxiConst.TAXI_END_MAP_MAKER,order.endSitePoint,R.raw.end_marker);
@@ -597,8 +585,13 @@ public class TaxiBeingServerdOrdersFragment extends BaseTaxiUIFragment implement
* @param isShow
*/
private void showNaviToStartStationFragment(boolean isShow) {
mTaxiFragment.showNaviToStationFragment(isShow);
startNaviToStartStation(isShow, mOrderStartStationLat, mOrderStartStationLng);
if (mCurrentOrder != null &&
mCurrentOrder.orderStatus == TaxiOrderStatusEnum.OnTheWayToStart.getCode()){
double orderStartStationLat = mCurrentOrder.startSiteGcjPoint.get(1);
double orderStartStationLng = mCurrentOrder.startSiteGcjPoint.get(0);
mTaxiFragment.showNaviToStationFragment(isShow);
startNaviToStation(isShow, orderStartStationLat, orderStartStationLng);
}
}
/**
@@ -607,10 +600,8 @@ public class TaxiBeingServerdOrdersFragment extends BaseTaxiUIFragment implement
* @param isShow
*/
private void showNaviToEndStationFragment(boolean isShow) {
mTaxiFragment.showNaviToStationFragment(isShow);
mTaxiFragment.startNaviToEndStation();
// startNaviToEndStation(isShow, mOrderStartStationLat, mOrderStartStationLng);
}
@@ -664,27 +655,40 @@ public class TaxiBeingServerdOrdersFragment extends BaseTaxiUIFragment implement
UiThreadHandler.postDelayed(new Runnable() {
@Override
public void run() {
if (saveOrderState == TaxiOrderStatusEnum.OnTheWayToStart.getCode()) {
startNaviToStartStation(false, mOrderStartStationLat, mOrderStartStationLng);
if (mCurrentOrder != null &&
mCurrentOrder.orderStatus == TaxiOrderStatusEnum.OnTheWayToStart.getCode()) {
double orderStartStationLat = mCurrentOrder.startSiteGcjPoint.get(1);
double orderStartStationLng = mCurrentOrder.startSiteGcjPoint.get(0);
startNaviToStation(false, orderStartStationLat, orderStartStationLng);
}
}
}, 2000);
UiThreadHandler.postDelayed(new Runnable() {
@Override
public void run() {
if (saveOrderState == TaxiOrderStatusEnum.OnTheWayToStart.getCode()) {
if (mNaviIcon.getVisibility() == View.GONE) {
mNaviIcon.setVisibility(View.VISIBLE);
if (mCurrentOrder != null &&
mCurrentOrder.orderStatus == TaxiOrderStatusEnum.OnTheWayToStart.getCode()) {
if (mNaviStartIcon.getVisibility() == View.GONE) {
mNaviStartIcon.setVisibility(View.VISIBLE);
}
}
if (mCurrentOrder != null &&
mCurrentOrder.orderStatus == TaxiOrderStatusEnum.OnTheWayToEnd.getCode()){
if (mNaviToEndIcon.getVisibility() == View.GONE) {
mNaviToEndIcon.setVisibility(View.VISIBLE);
}
}
}
}, 3000);
}
@Override
public void onNaviToEndAmap() {
if (mCurrentOrder != null &&
mCurrentOrder.orderStatus == TaxiOrderStatusEnum.OnTheWayToEnd.getCode()){
double orderEndStationLat = mCurrentOrder.endSiteGcjPoint.get(1);
double orderEndStationLng = mCurrentOrder.endSiteGcjPoint.get(0);
startNaviToStation(true,orderEndStationLat,orderEndStationLng);
}
}
/**

View File

@@ -312,7 +312,8 @@ public class TaxiFragment extends BaseTaxiTabFragment<TaxiFragment, TaxiPresente
}
public void onNaviToEndAmap(){
if (null == serverOrdersFragment) return;
serverOrdersFragment.onNaviToEndAmap();
}
public void onOrdersWaitServiceChanged(List<OrderQueryRespBean.Result> waitServiceList) {

View File

@@ -214,4 +214,9 @@ public class TaxiServerOrdersFragment extends BaseTaxiUIFragment {
if (null == beingServerdOrdersFragment) return;
beingServerdOrdersFragment.updateOrderBottomBtnUI();
}
public void onNaviToEndAmap(){
if (null == beingServerdOrdersFragment) return;
beingServerdOrdersFragment.onNaviToEndAmap();
}
}

View File

@@ -6,11 +6,9 @@ import android.view.*
import android.widget.*
import com.mogo.commons.*
import com.mogo.eagle.core.function.hmi.R
import com.mogo.eagle.core.function.hmi.R.drawable
import com.mogo.eagle.core.function.v2x.events.scenario.scene.airoad.*
import com.mogo.map.*
import com.mogo.map.uicontroller.*
import com.mogo.map.uicontroller.VisualAngleMode.MODE_MEDIUM_SIGHT
import com.mogo.module.common.constants.*
import kotlinx.android.synthetic.main.view_perspective_switch.view.*
@@ -38,19 +36,16 @@ class PerspectiveSwitchView @JvmOverloads constructor(
.visibleAllMarkers()
MogoMapUIController.getInstance().changeMapVisualAngle(VisualAngleMode.MODE_MEDIUM_SIGHT, null)
textSwitch.setText(R.string.module_map_model_normal)
AiRoadMarker.restore()
} else if (MogoMapUIController.getInstance().currentMapVisualAngle.isMediumSight) {
MogoMarkerManager.getInstance(AbsMogoApplication.getApp())
.inVisibleWithoutMarkers(DataTypes.TYPE_MARKER_ADAS)
MogoMapUIController.getInstance().changeMapVisualAngle(VisualAngleMode.MODE_LONG_SIGHT, null)
textSwitch.setText(R.string.module_map_model_faster)
AiRoadMarker.clear()
} else {
MogoMarkerManager.getInstance(AbsMogoApplication.getApp())
.visibleAllMarkers()
MogoMapUIController.getInstance().changeMapVisualAngle(VisualAngleMode.MODE_MEDIUM_SIGHT, null)
textSwitch.setText(R.string.module_map_model_normal)
AiRoadMarker.restore()
}
}
}