From 94eb773841ed409c4aaeb9d95677aab904cd9452 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D0=BB=D0=B5=D0=BA=D1=81=D0=B0=D0=BD=D0=B4=D1=80=20?= =?UTF-8?q?=D0=97=D0=B0=D1=86=D0=B5=D0=BF=D0=B8=D0=BD?= Date: Fri, 4 Aug 2017 17:09:59 +0300 Subject: [PATCH] [android] Added 'canUseMyPositionAsStart' parameter When a user builds a route from the map his current position can be used as the start point. But if the user is in P2P mode we shouldn't do any assumptions about the start point, i.e. he should do it by himself. --- .../src/com/mapswithme/maps/MwmActivity.java | 17 +++++++++++------ .../maps/routing/RoutingController.java | 15 +++++---------- .../maps/widget/placepage/PlacePageView.java | 3 ++- 3 files changed, 18 insertions(+), 17 deletions(-) diff --git a/android/src/com/mapswithme/maps/MwmActivity.java b/android/src/com/mapswithme/maps/MwmActivity.java index ed90c6a318..67fee8f890 100644 --- a/android/src/com/mapswithme/maps/MwmActivity.java +++ b/android/src/com/mapswithme/maps/MwmActivity.java @@ -753,14 +753,16 @@ public class MwmActivity extends BaseMwmFragmentActivity return false; } - public void startLocationToPoint(String statisticsEvent, String alohaEvent, final @Nullable MapObject endPoint) + public void startLocationToPoint(String statisticsEvent, String alohaEvent, + final @Nullable MapObject endPoint, + final boolean canUseMyPositionAsStart) { closeMenu(statisticsEvent, alohaEvent, new Runnable() { @Override public void run() { - RoutingController.get().prepare(endPoint); + RoutingController.get().prepare(canUseMyPositionAsStart, endPoint); if (mPlacePage != null && (mPlacePage.isDocked() || !mPlacePage.isFloating())) closePlacePage(); @@ -838,7 +840,8 @@ public class MwmActivity extends BaseMwmFragmentActivity break; case P2P: - startLocationToPoint(Statistics.EventName.MENU_P2P, AlohaHelper.MENU_POINT2POINT, null); + startLocationToPoint(Statistics.EventName.MENU_P2P, AlohaHelper.MENU_POINT2POINT, + null /* endPoint */, false /* canUseMyPositionAsStart */); break; case BOOKMARKS: @@ -2327,16 +2330,18 @@ public class MwmActivity extends BaseMwmFragmentActivity if (mLatFrom != null && mLonFrom != null && routerType >= 0) { RoutingController.get().prepare(fromLatLon(mLatFrom, mLonFrom, mSaddr), - fromLatLon(mLatTo, mLonTo, mDaddr), routerType, true); + fromLatLon(mLatTo, mLonTo, mDaddr), routerType, + true /* fromApi */); } else if (mLatFrom != null && mLonFrom != null) { RoutingController.get().prepare(fromLatLon(mLatFrom, mLonFrom, mSaddr), - fromLatLon(mLatTo, mLonTo, mDaddr), true); + fromLatLon(mLatTo, mLonTo, mDaddr), true /* fromApi */); } else { - RoutingController.get().prepare(fromLatLon(mLatTo, mLonTo, mDaddr), true); + RoutingController.get().prepare(true /* canUseMyPositionAsStart */, + fromLatLon(mLatTo, mLonTo, mDaddr), true /* fromApi */); } return true; } diff --git a/android/src/com/mapswithme/maps/routing/RoutingController.java b/android/src/com/mapswithme/maps/routing/RoutingController.java index cdbb57ee08..2f48342ba1 100644 --- a/android/src/com/mapswithme/maps/routing/RoutingController.java +++ b/android/src/com/mapswithme/maps/routing/RoutingController.java @@ -376,14 +376,15 @@ public class RoutingController implements TaxiManager.TaxiListener Framework.nativeSaveRoutePoints(); } - public void prepare(@Nullable MapObject endPoint) + public void prepare(boolean canUseMyPositionAsStart, @Nullable MapObject endPoint) { - prepare(endPoint, false); + prepare(canUseMyPositionAsStart, endPoint, false); } - public void prepare(@Nullable MapObject endPoint, boolean fromApi) + public void prepare(boolean canUseMyPositionAsStart, @Nullable MapObject endPoint, boolean fromApi) { - prepare(LocationHelper.INSTANCE.getMyPosition(), endPoint, fromApi); + MapObject startPoint = canUseMyPositionAsStart ? LocationHelper.INSTANCE.getMyPosition() : null; + prepare(startPoint, endPoint, fromApi); } public void prepare(@Nullable MapObject startPoint, @Nullable MapObject endPoint) @@ -888,9 +889,6 @@ public class RoutingController implements TaxiManager.TaxiListener if (isSamePoint) { - if (getStartPoint() == null) - return setStartFromMyPosition(); - mLogger.d(TAG, "setEndPoint: skip the same end point"); return false; } @@ -914,9 +912,6 @@ public class RoutingController implements TaxiManager.TaxiListener trackPointAdd(endPoint, RoutePointInfo.ROUTE_MARK_FINISH, isPlanning(), isNavigating(), false); - if (startPoint == null) - return setStartFromMyPosition(); - setPointsInternal(startPoint, endPoint); checkAndBuildRoute(); return true; diff --git a/android/src/com/mapswithme/maps/widget/placepage/PlacePageView.java b/android/src/com/mapswithme/maps/widget/placepage/PlacePageView.java index 85a6c3a742..4312c46cc3 100644 --- a/android/src/com/mapswithme/maps/widget/placepage/PlacePageView.java +++ b/android/src/com/mapswithme/maps/widget/placepage/PlacePageView.java @@ -578,7 +578,8 @@ public class PlacePageView extends RelativeLayout } else { - getActivity().startLocationToPoint(Statistics.EventName.PP_ROUTE, AlohaHelper.PP_ROUTE, getMapObject()); + getActivity().startLocationToPoint(Statistics.EventName.PP_ROUTE, AlohaHelper.PP_ROUTE, + getMapObject(), true /* canUseMyPositionAsStart */); } break;