diff --git a/android/src/com/mapswithme/maps/data/RoutingResultCodesProcessor.java b/android/src/com/mapswithme/maps/data/RoutingResultCodesProcessor.java index ccb3727037..3679a13c0c 100644 --- a/android/src/com/mapswithme/maps/data/RoutingResultCodesProcessor.java +++ b/android/src/com/mapswithme/maps/data/RoutingResultCodesProcessor.java @@ -69,6 +69,7 @@ public class RoutingResultCodesProcessor case DIFFERENT_MWM: messages.add(resources.getString(R.string.routing_failed_cross_mwm_building)); break; + //TODO (@yunitski @marchuk) Add proper dialog for this case. case FILE_TOO_OLD: case ROUTE_NOT_FOUND: if (missingCount == 0) diff --git a/iphone/Maps/Classes/CustomAlert/BaseAlert/MWMAlert.mm b/iphone/Maps/Classes/CustomAlert/BaseAlert/MWMAlert.mm index 932ec47433..cf3e401b61 100644 --- a/iphone/Maps/Classes/CustomAlert/BaseAlert/MWMAlert.mm +++ b/iphone/Maps/Classes/CustomAlert/BaseAlert/MWMAlert.mm @@ -95,6 +95,7 @@ case routing::IRouter::Cancelled: case routing::IRouter::NoError: case routing::IRouter::NeedMoreMaps: + //TODO (mikhaylenko, grechuhin) Make proper flag processing. case routing::IRouter::FileTooOld: return nil; } diff --git a/iphone/Maps/Classes/MapViewController.mm b/iphone/Maps/Classes/MapViewController.mm index c9dc2d01f4..64e3681ad1 100644 --- a/iphone/Maps/Classes/MapViewController.mm +++ b/iphone/Maps/Classes/MapViewController.mm @@ -745,6 +745,7 @@ typedef NS_OPTIONS(NSUInteger, MapInfoView) case routing::IRouter::RouteFileNotExist: case routing::IRouter::InconsistentMWMandRoute: case routing::IRouter::NeedMoreMaps: + //TODO (mikhaylenko, grechuhin) Make proper flag processing. case rouitng::IRouter::FileTooOld: case routing::IRouter::RouteNotFound: [self presentDownloaderAlert:code countries:absentCountries routes:absentRoutes]; diff --git a/routing/async_router.cpp b/routing/async_router.cpp index 95bddddaca..444eee16ca 100644 --- a/routing/async_router.cpp +++ b/routing/async_router.cpp @@ -32,6 +32,8 @@ string ToString(IRouter::ResultCode code) case IRouter::NeedMoreMaps: return "NeedMoreMaps"; case IRouter::FileTooOld: return "FileTooOld"; } + ASSERT(false, ()); + return "Routing result code case error."; } map PrepareStatisticsData(string const & routerName, diff --git a/routing/road_graph_router.cpp b/routing/road_graph_router.cpp index e6b3642f07..a5de4fea4b 100644 --- a/routing/road_graph_router.cpp +++ b/routing/road_graph_router.cpp @@ -26,7 +26,7 @@ namespace // you risk to find a feature that you cannot in fact reach because of // an obstacle. Using only the closest feature minimizes (but not // eliminates) this risk. -size_t const kMaxRoadCandidates = 1; +size_t constexpr kMaxRoadCandidates = 1; uint64_t constexpr kMinPedestrianMwmVersion = 150713; IRouter::ResultCode Convert(IRoutingAlgorithm::Result value) @@ -50,15 +50,16 @@ void Convert(vector const & path, vector & geometry) } // Check if the found edges lays on mwm with pedestrian routing support. -string CheckMwmAge(vector> const & vicinities) +bool CheckMwmVersion(vector> const & vicinities, vector & mwmNames) { + mwmNames.clear(); for (auto const & vicinity : vicinities) { auto const mwmInfo = vicinity.first.GetFeatureId().m_mwmId.GetInfo(); if (mwmInfo->GetVersion() < kMinPedestrianMwmVersion) - return mwmInfo->GetCountryName(); + mwmNames.push_back(mwmInfo->GetCountryName()); } - return ""; + return !mwmNames.empty(); } } // namespace @@ -91,10 +92,12 @@ IRouter::ResultCode RoadGraphRouter::CalculateRoute(m2::PointD const & startPoin if (finalVicinity.empty()) return EndPointNotFound; - auto mwmName = CheckMwmAge(finalVicinity); - if (!mwmName.empty()) + //TODO (ldragunov) Remove this check after several releases. (Estimated in november) + vector mwmNames; + if (CheckMwmVersion(finalVicinity, mwmNames)) { - route.AddAbsentCountry(mwmName); + for (auto const & name : mwmNames) + route.AddAbsentCountry(name); return FileTooOld; } @@ -104,10 +107,11 @@ IRouter::ResultCode RoadGraphRouter::CalculateRoute(m2::PointD const & startPoin if (startVicinity.empty()) return StartPointNotFound; - mwmName = CheckMwmAge(startVicinity); - if (!mwmName.empty()) + //TODO (ldragunov) Remove this check after several releases. (Estimated in november) + if (CheckMwmVersion(startVicinity, mwmNames)) { - route.AddAbsentCountry(mwmName); + for (auto const & name : mwmNames) + route.AddAbsentCountry(name); return FileTooOld; }