[driver passenger ] taxi乘客屏优化小地图问题

This commit is contained in:
wangmingjun
2022-04-21 19:58:19 +08:00
parent 8018a20afa
commit b6ad890fe9
10 changed files with 150 additions and 371 deletions

View File

@@ -53,6 +53,7 @@ dependencies {
implementation rootProject.ext.dependencies.rxandroid
implementation rootProject.ext.dependencies.androidxconstraintlayout
implementation rootProject.ext.dependencies.amapnavi3dmap
implementation rootProject.ext.dependencies.amapsearch
if (Boolean.valueOf(USE_MAVEN_PACKAGE)) {
implementation rootProject.ext.dependencies.mogoutils
implementation rootProject.ext.dependencies.mogocommons

View File

@@ -7,5 +7,4 @@ package com.mogo.och.taxi.passenger.callback;
public interface IOCHTaxiPassengerNaviChangedCallback {
// 当前位置距离上车点的距离(米)、预估时间(秒) 、当前路的名称
void onCurrentRoadName(String currentRoadName);
void reInitNaviAmap(boolean isPlay,boolean isRestart);
}

View File

@@ -0,0 +1,120 @@
package com.mogo.och.taxi.passenger.model;
import android.content.Context;
import com.amap.api.services.core.LatLonPoint;
import com.amap.api.services.geocoder.GeocodeResult;
import com.amap.api.services.geocoder.GeocodeSearch;
import com.amap.api.services.geocoder.RegeocodeQuery;
import com.amap.api.services.geocoder.RegeocodeResult;
import com.amap.api.services.geocoder.RegeocodeRoad;
import com.mogo.eagle.core.network.utils.GsonUtil;
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
import com.mogo.och.taxi.passenger.callback.IOCHTaxiPassengerNaviChangedCallback;
import java.util.List;
import java.util.Timer;
import java.util.TimerTask;
import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_TAXI_P;
/**
* @author: wangmingjun
* @date: 2021/12/6
*/
public class TaxiPassengerGeocodeSearchModel implements GeocodeSearch.OnGeocodeSearchListener {
private final String TAG = TaxiPassengerGeocodeSearchModel.class.getSimpleName();
private static Context mContext;
private IOCHTaxiPassengerNaviChangedCallback mNaviChangedCallback;
GeocodeSearch mGeocodeSearch = null;
private String roadName = "";
private Timer timer ;
TimerTask timerTask;
public static TaxiPassengerGeocodeSearchModel getInstance(Context context) {
mContext = context;
return SingletonHolder.INSTANCE;
}
private static final class SingletonHolder {
private static final TaxiPassengerGeocodeSearchModel INSTANCE = new TaxiPassengerGeocodeSearchModel();
}
private TaxiPassengerGeocodeSearchModel(){
}
public void initGeocodeSearch(){
//通过经纬度逆地理编码得到位置
mGeocodeSearch = new GeocodeSearch(mContext);
mGeocodeSearch.setOnGeocodeSearchListener(this);
timer = new Timer();
timerTask = new TimerTask() {
@Override
public void run() {
if (mNaviChangedCallback != null){
CallerLogger.INSTANCE.i(M_TAXI_P + TAG, "roadName道路名称: " + roadName);
mNaviChangedCallback.onCurrentRoadName(roadName);
}
}
};
try{
timer.schedule(timerTask,500,2000);
}catch (Exception e){
e.printStackTrace();
}
}
public void searchLocationInfo(double lat, double lon){
if (null != mGeocodeSearch){
LatLonPoint latLng = new LatLonPoint(lat, lon);
//第一个参数表示一个Latlng第二参数表示范围多少米第三个参数表示是火系坐标系还是GPS原生坐标系
RegeocodeQuery query = new RegeocodeQuery(latLng, 200, GeocodeSearch.AMAP);
mGeocodeSearch.getFromLocationAsyn(query);
}
}
public void destroyGeocodeSearch(){
CallerLogger.INSTANCE.i(M_TAXI_P + TAG, "destroyGeocodeSearch");
if (mGeocodeSearch != null){
mGeocodeSearch = null;
}
if (mNaviChangedCallback != null){
mNaviChangedCallback = null;
}
if (null != timer){
timer.cancel();
}
if (null != timerTask){
timerTask = null;
}
roadName = "";
}
public void setOCHTaciNaviChangedCallback(IOCHTaxiPassengerNaviChangedCallback callback){
this.mNaviChangedCallback = callback;
}
@Override
public void onRegeocodeSearched(RegeocodeResult regeocodeResult, int i) {//更新频率几十 ms, 暂定更新UI为2s一次
if (regeocodeResult != null) {
List<RegeocodeRoad> roads = regeocodeResult.getRegeocodeAddress().getRoads();
CallerLogger.INSTANCE.i(M_TAXI_P + TAG, "位置roads" + GsonUtil.jsonFromObject(roads));
if (roads != null && roads.size() > 0){
roadName = roads.get(0).getName();//当前路的名字
// mNaviChangedCallback.onCurrentRoadName(roads.get(0).getName());
}
}
}
@Override
public void onGeocodeSearched(GeocodeResult geocodeResult, int i) {
}
}

View File

@@ -10,7 +10,6 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.amap.api.maps.model.LatLng;
import com.amap.api.navi.model.NaviLatLng;
import com.elegant.network.utils.GsonUtil;
import com.mogo.aicloud.services.socket.MogoAiCloudSocketManager;
import com.mogo.cloud.commons.utils.CoordinateUtils;
@@ -53,7 +52,6 @@ import com.mogo.service.statusmanager.StatusDescriptor;
import org.jetbrains.annotations.NotNull;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
@@ -471,6 +469,7 @@ public class TaxiPassengerModel implements IOCHTaxiPassengerNaviChangedCallback
}
mLongitude = location.getLongitude();
mLatitude = location.getLatitude();
CallerLogger.INSTANCE.e(M_TAXI_P + TAG,"mLongitude = "+mLongitude+", mLatitude = "+mLatitude);
for (IOCHTaxiPassengerControllerStatusCallback callback :mControllerStatusCallbackMap.values()){
callback.onCarLocationChanged(location);
}
@@ -592,16 +591,17 @@ public class TaxiPassengerModel implements IOCHTaxiPassengerNaviChangedCallback
/**
* 导航订单起点到终点 获得剩余时间,里程,预计到达时间
*/
public void naviOrderStartToEnd() {
TaxiPassengerNaviToDestinationModel.getInstance(mContext).destroyAmaNavi();
public void initGeocodeSearch() {
if (mCurrentOCHOrder != null){
NaviLatLng startNaviLatLng = new NaviLatLng(mLatitude,mLongitude);
NaviLatLng endNaviLatLng = new NaviLatLng(mCurrentOCHOrder.endSiteGcjPoint.get(1),mCurrentOCHOrder.endSiteGcjPoint.get(0));
TaxiPassengerNaviToDestinationModel.getInstance(mContext).initAMapNavi(startNaviLatLng, endNaviLatLng);
TaxiPassengerNaviToDestinationModel.getInstance(mContext).setOCHTaciNaviChangedCallback(this);
TaxiPassengerGeocodeSearchModel.getInstance(mContext).initGeocodeSearch();
TaxiPassengerGeocodeSearchModel.getInstance(mContext).setOCHTaciNaviChangedCallback(this);
}
}
public void destoryGeocodeSearch(){
TaxiPassengerGeocodeSearchModel.getInstance(mContext).destroyGeocodeSearch();
}
public void startOrStopQueryOrderRemaining(boolean isStart){
if (isStart){
TaxiPassengerModelLoopManager.getInstance().startQueryOrderRemainingtLoop();
@@ -661,17 +661,11 @@ public class TaxiPassengerModel implements IOCHTaxiPassengerNaviChangedCallback
}
}
@Override
public void reInitNaviAmap(boolean isPlay, boolean isRestart) {
naviOrderStartToEnd();
}
/**
* 订单结束或者取消的时候, 刷新导航标识位以及缓存的数据
*/
public void recoverNaviInfo(){
SharedPrefsMgr.getInstance(mContext).remove(TaxiPassengerConst.SP_KEY_ORDER_SUM_DIS);
TaxiPassengerNaviToDestinationModel.getInstance(mContext).setFirstcalculateDriveRoute(0);
}
public void calculateRouteLineSum(List<LatLng> points){

View File

@@ -1,335 +0,0 @@
package com.mogo.och.taxi.passenger.model;
import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_TAXI_P;
import android.Manifest;
import android.content.Context;
import android.widget.Toast;
import com.amap.api.navi.AMapNavi;
import com.amap.api.navi.AMapNaviListener;
import com.amap.api.navi.enums.NaviType;
import com.amap.api.navi.model.AMapCalcRouteResult;
import com.amap.api.navi.model.AMapLaneInfo;
import com.amap.api.navi.model.AMapModelCross;
import com.amap.api.navi.model.AMapNaviCameraInfo;
import com.amap.api.navi.model.AMapNaviCross;
import com.amap.api.navi.model.AMapNaviInfo;
import com.amap.api.navi.model.AMapNaviLocation;
import com.amap.api.navi.model.AMapNaviRouteNotifyData;
import com.amap.api.navi.model.AMapNaviTrafficFacilityInfo;
import com.amap.api.navi.model.AMapServiceAreaInfo;
import com.amap.api.navi.model.AimLessModeCongestionInfo;
import com.amap.api.navi.model.AimLessModeStat;
import com.amap.api.navi.model.NaviInfo;
import com.amap.api.navi.model.NaviLatLng;
import com.autonavi.tbt.TrafficFacilityInfo;
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr;
import com.mogo.eagle.core.utilcode.util.NetworkUtils;
import com.mogo.och.taxi.passenger.callback.IOCHTaxiPassengerNaviChangedCallback;
import com.mogo.och.taxi.passenger.constant.TaxiPassengerConst;
import com.mogo.och.taxi.passenger.utils.PermissionUtil;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.atomic.AtomicInteger;
/**
* @author: wangmingjun
* @date: 2021/12/6
*/
public class TaxiPassengerNaviToDestinationModel implements AMapNaviListener {
private final String TAG = TaxiPassengerNaviToDestinationModel.class.getSimpleName();
private static Context mContext;
private AMapNavi mAMapNavi = null;
protected final List<NaviLatLng> sList = new ArrayList<NaviLatLng>();
protected final List<NaviLatLng> eList = new ArrayList<NaviLatLng>();
protected List<NaviLatLng> mWayPointList = new ArrayList<NaviLatLng>();
private IOCHTaxiPassengerNaviChangedCallback mNaviChangedCallback;
// private AtomicInteger errorCount = new AtomicInteger(0); //只要订单在 如果算错就重新算,不再有次数限制
private boolean isPlay;
private volatile int mFirstcalculateDriveRoute = 0;
public void setFirstcalculateDriveRoute(int firstcalculateDriveRoute) {
this.mFirstcalculateDriveRoute = firstcalculateDriveRoute;
}
public static TaxiPassengerNaviToDestinationModel getInstance(Context context) {
mContext = context;
return SingletonHolder.INSTANCE;
}
private static final class SingletonHolder {
private static final TaxiPassengerNaviToDestinationModel INSTANCE = new TaxiPassengerNaviToDestinationModel();
}
private TaxiPassengerNaviToDestinationModel(){
}
public void initAMapNavi(NaviLatLng startLatLng,NaviLatLng endLatLng) {
try {
mAMapNavi = AMapNavi.getInstance(mContext);
mAMapNavi.addAMapNaviListener(this);
mAMapNavi.setUseInnerVoice(true, true);
mAMapNavi.stopSpeak();
sList.add(startLatLng);
eList.add(endLatLng);
int strategy = 0;
try {
//再次强调最后一个参数为true时代表多路径否则代表单路径
strategy = mAMapNavi.strategyConvert(true, false, false, false, false);
} catch (Exception e) {
e.printStackTrace();
}
mAMapNavi.calculateDriveRoute(sList, eList, mWayPointList, strategy);
}catch (Exception e) {
e.printStackTrace();
}
}
public void setVoiceIsMute(boolean isPlay){
if (mAMapNavi == null) return;
this.isPlay = isPlay;
if (isPlay){
mAMapNavi.startSpeak();
}else {
mAMapNavi.stopSpeak();
}
}
public void destroyAmaNavi(){
if (mAMapNavi != null){
isPlay = false;
mAMapNavi.stopNavi();
mAMapNavi.destroy();
mAMapNavi = null;
mNaviChangedCallback = null;
sList.clear();
eList.clear();
}
}
public void setOCHTaciNaviChangedCallback(IOCHTaxiPassengerNaviChangedCallback callback){
this.mNaviChangedCallback = callback;
}
@Override
public void onInitNaviFailure() {
Toast.makeText(mContext, "init navi Failed", Toast.LENGTH_SHORT).show();
}
@Override
public void onInitNaviSuccess() {
//初始化成功
}
@Override
public void onCalculateRouteSuccess(int[] ints) {
//多路径算路成功回调
CallerLogger.INSTANCE.d(M_TAXI_P + TAG,"onCalculateRouteSuccess");
mAMapNavi.startNavi(NaviType.GPS);
}
@Override
public void onNaviInfoUpdate(NaviInfo naviinfo) {
//导航过程中的信息更新请看NaviInfo的具体说明
CallerLogger.INSTANCE.d(M_TAXI_P + TAG,"naviinfo = "+naviinfo.getPathRetainDistance()+" ,"+naviinfo.getPathRetainTime()
+" ,"+naviinfo.getCurrentRoadName());
if (mFirstcalculateDriveRoute == 0 && SharedPrefsMgr.getInstance(mContext).getInt(TaxiPassengerConst.SP_KEY_ORDER_SUM_DIS,0) == 0){
mFirstcalculateDriveRoute = 1;
SharedPrefsMgr.getInstance(mContext).putInt(TaxiPassengerConst.SP_KEY_ORDER_SUM_DIS,naviinfo.getPathRetainDistance());
}
if (null != mNaviChangedCallback){
mNaviChangedCallback.onCurrentRoadName(naviinfo.getCurrentRoadName());//当前路的名字
}
}
@Override
public void onCalculateRouteSuccess(AMapCalcRouteResult aMapCalcRouteResult) {
// errorCount.set(0);
}
@Override
public void onCalculateRouteFailure(AMapCalcRouteResult result) {
//路线计算失败
//多路径算路成功回调
// if (errorCount.get() < 20){
// errorCount.getAndIncrement();
if (mNaviChangedCallback != null){
mNaviChangedCallback.reInitNaviAmap(isPlay,true);
}
// }
if (!NetworkUtils.isConnected(mContext) || result.getErrorCode() == 2){
if (mNaviChangedCallback != null){
mNaviChangedCallback.reInitNaviAmap(isPlay,false);
}
return;
}
if (!PermissionUtil.isLocServiceEnable(mContext) || !PermissionUtil.checkPermission(mContext,new String[]{Manifest.permission.ACCESS_FINE_LOCATION})){
if (mNaviChangedCallback != null){
mNaviChangedCallback.reInitNaviAmap(isPlay,false);
}
return;
}
// if (result.getErrorCode() == 3){
// TipToast.longTip("车辆当前坐标错误");
// }else if (result.getErrorCode() == 6){
// TipToast.longTip("终点坐标错误");
// }
CallerLogger.INSTANCE.i(M_TAXI_P + TAG, "路线计算失败:错误码=" + result.getErrorCode() + ",Error Message= " + result.getErrorDetail());
CallerLogger.INSTANCE.i(M_TAXI_P + TAG, "错误码详细链接见http://lbs.amap.com/api/android-navi-sdk/guide/tools/errorcode/");
}
@Override
public void onStartNavi(int type) {
//开始导航回调
}
@Override
public void onTrafficStatusUpdate() {
//
}
@Override
public void onLocationChange(AMapNaviLocation location) {
//当前位置回调
}
@Override
public void onGetNavigationText(int type, String text) {
//播报类型和播报文字回调
}
@Override
public void onGetNavigationText(String s) {
}
@Override
public void onEndEmulatorNavi() {
//结束模拟导航
}
@Override
public void onArriveDestination() {
//到达目的地
}
@Override
public void onCalculateRouteFailure(int errorInfo) {
}
@Override
public void onReCalculateRouteForYaw() {
//偏航后重新计算路线回调
}
@Override
public void onReCalculateRouteForTrafficJam() {
//拥堵后重新计算路线回调
}
@Override
public void onArrivedWayPoint(int wayID) {
//到达途径点
}
@Override
public void onGpsOpenStatus(boolean enabled) {
//GPS开关状态回调
}
@Override
public void showModeCross(AMapModelCross aMapModelCross) {
}
@Override
public void hideModeCross() {
}
@Override
public void updateIntervalCameraInfo(AMapNaviCameraInfo aMapNaviCameraInfo, AMapNaviCameraInfo aMapNaviCameraInfo1, int i) {
}
@Override
public void showLaneInfo(AMapLaneInfo aMapLaneInfo) {
//显示车道信息
}
@Override
public void onNaviRouteNotify(AMapNaviRouteNotifyData aMapNaviRouteNotifyData) {
}
@Override
public void updateCameraInfo(AMapNaviCameraInfo[] aMapCameraInfos) {
}
@Override
public void onServiceAreaUpdate(AMapServiceAreaInfo[] amapServiceAreaInfos) {
}
@Override
public void onNaviInfoUpdated(AMapNaviInfo aMapNaviInfo) {
}
@Override
public void OnUpdateTrafficFacility(AMapNaviTrafficFacilityInfo aMapNaviTrafficFacilityInfo) {
//已过时
}
@Override
public void OnUpdateTrafficFacility(TrafficFacilityInfo trafficFacilityInfo) {
}
@Override
public void showCross(AMapNaviCross aMapNaviCross) {
//显示放大图回调
}
@Override
public void hideCross() {
//隐藏放大图回调
}
@Override
public void showLaneInfo(AMapLaneInfo[] laneInfos, byte[] laneBackgroundInfo, byte[] laneRecommendedInfo) {
//过时
}
@Override
public void hideLaneInfo() {
//隐藏车道信息
}
@Override
public void notifyParallelRoad(int i) {
}
@Override
public void OnUpdateTrafficFacility(AMapNaviTrafficFacilityInfo[] aMapNaviTrafficFacilityInfos) {
//更新交通设施信息
}
@Override
public void updateAimlessModeStatistics(AimLessModeStat aimLessModeStat) {
//更新巡航模式的统计信息
}
@Override
public void updateAimlessModeCongestionInfo(AimLessModeCongestionInfo aimLessModeCongestionInfo) {
//更新巡航模式的拥堵信息
}
@Override
public void onPlayRing(int i) {
}
}

View File

@@ -19,8 +19,8 @@ import com.mogo.och.taxi.passenger.callback.IOCHTaxiPassengerADASStatusCallback;
import com.mogo.och.taxi.passenger.callback.IOCHTaxiPassengerControllerStatusCallback;
import com.mogo.och.taxi.passenger.callback.IOCHTaxiPassengerOrderStatusCallback;
import com.mogo.och.taxi.passenger.constant.TaxiPassengerOrderStatusEnum;
import com.mogo.och.taxi.passenger.model.TaxiPassengerGeocodeSearchModel;
import com.mogo.och.taxi.passenger.model.TaxiPassengerModel;
import com.mogo.och.taxi.passenger.model.TaxiPassengerNaviToDestinationModel;
import com.mogo.och.taxi.passenger.ui.TaxiPassengerBaseFragment;
/**
@@ -146,6 +146,7 @@ public class BaseTaxiPassengerPresenter extends Presenter<TaxiPassengerBaseFragm
if (TaxiPassengerOrderStatusEnum.Cancel.getCode() == order.orderStatus){
runOnUIThread(() -> mView.showOrHideServingOrderFragment(false));
TaxiPassengerModel.getInstance().recoverNaviInfo();
TaxiPassengerGeocodeSearchModel.getInstance(getContext()).destroyGeocodeSearch();
return;
}
if (TaxiPassengerOrderStatusEnum.ArriveAtStart.getCode() == order.orderStatus
@@ -155,7 +156,7 @@ public class BaseTaxiPassengerPresenter extends Presenter<TaxiPassengerBaseFragm
}
if (TaxiPassengerOrderStatusEnum.ArriveAtEnd.getCode() == order.orderStatus){
TaxiPassengerModel.getInstance().recoverNaviInfo();
TaxiPassengerNaviToDestinationModel.getInstance(getContext()).destroyAmaNavi();
TaxiPassengerGeocodeSearchModel.getInstance(getContext()).destroyGeocodeSearch();
runOnUIThread(() -> {
mView.showOrHideServingOrderFragment(false);
mView.showOrHideArrivedEndLayout(true, order.endSiteAddr);
@@ -167,6 +168,7 @@ public class BaseTaxiPassengerPresenter extends Presenter<TaxiPassengerBaseFragm
mView.showOrHideServingOrderFragment(false);
mView.showOrHideArrivedEndLayout(false, "");
});
TaxiPassengerGeocodeSearchModel.getInstance(getContext()).destroyGeocodeSearch();
mCurrentPassengerOrder = null;
return;
}

View File

@@ -20,6 +20,7 @@ import com.mogo.och.taxi.passenger.callback.IOCHTaxiPassengerControllerStatusCal
import com.mogo.och.taxi.passenger.callback.IOCHTaxiPassengerOrderStatusCallback;
import com.mogo.och.taxi.passenger.callback.ITaxiPassengerVeloctityCallback;
import com.mogo.och.taxi.passenger.constant.TaxiPassengerOrderStatusEnum;
import com.mogo.och.taxi.passenger.model.TaxiPassengerGeocodeSearchModel;
import com.mogo.och.taxi.passenger.model.TaxiPassengerModel;
import com.mogo.och.taxi.passenger.ui.TaxiPassengerServingOrderFragment;
@@ -131,6 +132,7 @@ public class TaxiPassengerServingOrderPresenter extends Presenter<TaxiPassengerS
public void onCarLocationChanged(Location location) {
if (location != null){
runOnUIThread(() -> mView.onCarLocationChanged(location));
TaxiPassengerGeocodeSearchModel.getInstance(getContext()).searchLocationInfo(location.getLatitude(),location.getLongitude());
}
}

View File

@@ -173,7 +173,6 @@ public class TaxiPassengerMapDirectionView
@Override
public void onLocationChanged(@org.jetbrains.annotations.Nullable MogoLocation location, int from) {
CallerLogger.INSTANCE.d(M_TAXI_P + TAG, "onCarLocationChanged2 :" + location.getLatitude()+":"+location.getLongitude());
if (location == null){
return;
}
@@ -187,19 +186,21 @@ public class TaxiPassengerMapDirectionView
boundsBuilder.include(currentLatLng);
boundsBuilder.include(endLatLng);
//第二个参数为四周留空宽度
mAMap.animateCamera(CameraUpdateFactory.newLatLngBoundsRect(boundsBuilder.build(), 100,100,100,100));
mAMap.moveCamera(CameraUpdateFactory.newLatLngBoundsRect(boundsBuilder.build(), 100,100,100,100));
CallerLogger.INSTANCE.d(M_TAXI_P + TAG, "onCarLocationChanged2--moveCamera :" + location.getLatitude()+", "+location.getLongitude());
} else {
//设置希望展示的地图缩放级别
CameraPosition cameraPosition = new CameraPosition.Builder()
.target(mCarMarker.getPosition()).tilt(0).bearing(location.getBearing()).zoom(zoomLevel).build();
mAMap.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));
mAMap.moveCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));
}
//更新车辆位置
if (mCarMarker != null) {
CallerLogger.INSTANCE.d(M_TAXI_P + TAG, "location.getBearing() = " + location.getBearing());
// CallerLogger.INSTANCE.d(M_TAXI_P + TAG, "location.getBearing() = " + location.getBearing());
mCarMarker.setRotateAngle(360 - location.getBearing());
mCarMarker.setPosition(currentLatLng);
// CallerLogger.INSTANCE.d(M_TAXI_P + TAG, "onCarLocationChanged2--loacation :" + location.getLatitude()+", "+location.getLongitude());
mCarMarker.setToTop();
}
}

View File

@@ -28,21 +28,13 @@ import com.mogo.och.taxi.passenger.callback.ITaxiPassengerMapViewCallback;
import com.mogo.och.taxi.passenger.constant.TaxiPassengerConst;
import com.mogo.och.taxi.passenger.constant.TaxiPassengerOrderStatusEnum;
import com.mogo.och.taxi.passenger.model.TaxiPassengerModel;
import com.mogo.och.taxi.passenger.model.TaxiPassengerNaviToDestinationModel;
import com.mogo.och.taxi.passenger.presenter.TaxiPassengerServingOrderPresenter;
import com.mogo.och.taxi.passenger.utils.TPRouteDataTestUtils;
import com.mogo.och.taxi.passenger.utils.TaxiPassengerUtils;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
import mogo.telematics.pad.MessagePad;
/**
* @author: wangmingjun
* @date: 2022/3/8
@@ -168,7 +160,9 @@ public class TaxiPassengerServingOrderFragment extends
}
private void updateDriveRoadName(String currentRoadName){
mProgessDes.setText(currentRoadName);
if (mProgessDes != null){
mProgessDes.setText(currentRoadName);
}
}
@Override
@@ -177,18 +171,19 @@ public class TaxiPassengerServingOrderFragment extends
if (mMapDirectionView != null) {
mMapDirectionView.onResume();
}
TaxiPassengerModel.getInstance().naviOrderStartToEnd();
TaxiPassengerModel.getInstance().initGeocodeSearch();
}
@Override
public void onHiddenChanged(boolean hidden) {
super.onHiddenChanged(hidden);
if (hidden){//fragment 隐藏, 导航取消
if (hidden){//fragment 隐藏, 导航取消c
clearPolyline();
TaxiPassengerNaviToDestinationModel.getInstance(getContext()).destroyAmaNavi();
TaxiPassengerModel.getInstance().destoryGeocodeSearch();
}else { //fragment 显示, 导航开始
TaxiPassengerModel.getInstance().naviOrderStartToEnd();
CallerLogger.INSTANCE.e(M_TAXI_P +"TaxiPassengerNaviTo","initGeocodeSearch");
TaxiPassengerModel.getInstance().initGeocodeSearch();
}
}
@@ -207,7 +202,7 @@ public class TaxiPassengerServingOrderFragment extends
if (mMapDirectionView != null) {
mMapDirectionView.onDestroy();
}
TaxiPassengerNaviToDestinationModel.getInstance(getContext()).destroyAmaNavi();
TaxiPassengerModel.getInstance().destoryGeocodeSearch();
}
public void routeResult(List<MogoLatLng> latLngList) {

View File

@@ -348,7 +348,7 @@ public class TaxiFragment extends BaseTaxiTabFragment<TaxiFragment, TaxiPresente
findViewById(R.id.test_bar_on_the_way_to_end).setOnClickListener(v -> {
showNotice("自动驾驶已启动,请系好安全带");
TaxiModel.getInstance().setOnTheWayToEndStation();
testRouteInfoUpload();
// testRouteInfoUpload();
});
}