diff options
author | Александр Зацепин <az@mapswithme.com> | 2017-07-03 18:09:00 +0300 |
---|---|---|
committer | Arsentiy Milchakov <milcars@mapswithme.com> | 2017-07-03 18:46:07 +0300 |
commit | cfe437c62b0de3ff3d1cca7ba133121198b03d65 (patch) | |
tree | c2ed23eeabb49584fccb0c9e34a1bee511b90be8 | |
parent | f45872efb7f8f9b1a056231fbc524f3a8983e284 (diff) |
[android] Added handling the No_Providers case in taxibeta-889
4 files changed, 28 insertions, 3 deletions
diff --git a/android/src/com/mapswithme/maps/routing/RoutingController.java b/android/src/com/mapswithme/maps/routing/RoutingController.java index 38924418e2..34b5d58279 100644 --- a/android/src/com/mapswithme/maps/routing/RoutingController.java +++ b/android/src/com/mapswithme/maps/routing/RoutingController.java @@ -937,4 +937,17 @@ public class RoutingController implements TaxiManager.TaxiListener Statistics.INSTANCE.trackTaxiError(error); } } + + @Override + public void onNoTaxiProviders() + { + mTaxiPlanning = false; + mLogger.e(TAG, "onNoTaxiProviders"); + if (isTaxiRouterType() && mContainer != null) + { + mContainer.onTaxiError(TaxiManager.ErrorCode.NoProviders); + completeTaxiRequest(); + Statistics.INSTANCE.trackNoTaxiProvidersError(); + } + } } diff --git a/android/src/com/mapswithme/maps/routing/RoutingPlanController.java b/android/src/com/mapswithme/maps/routing/RoutingPlanController.java index e7a6697acd..56e3d5d0a8 100644 --- a/android/src/com/mapswithme/maps/routing/RoutingPlanController.java +++ b/android/src/com/mapswithme/maps/routing/RoutingPlanController.java @@ -232,7 +232,7 @@ public class RoutingPlanController extends ToolbarController case RemoteError: showError(R.string.dialog_taxi_error); break; - case NoProvider: + case NoProviders: showError(R.string.taxi_no_providers); break; default: diff --git a/android/src/com/mapswithme/maps/taxi/TaxiManager.java b/android/src/com/mapswithme/maps/taxi/TaxiManager.java index 4e4963e15b..b4a2c3516f 100644 --- a/android/src/com/mapswithme/maps/taxi/TaxiManager.java +++ b/android/src/com/mapswithme/maps/taxi/TaxiManager.java @@ -47,7 +47,11 @@ public class TaxiManager throw new AssertionError("Must be called from UI thread!"); if (providers.length == 0) - throw new AssertionError("Taxi provider array must be non-empty!"); + { + if (mListener != null) + mListener.onNoTaxiProviders(); + return; + } mProviders.clear(); mProviders.addAll(Arrays.asList(providers)); @@ -107,12 +111,13 @@ public class TaxiManager public enum ErrorCode { - NoProducts, RemoteError, NoProvider + NoProducts, RemoteError, NoProviders } public interface TaxiListener { void onTaxiProviderReceived(@NonNull TaxiInfo provider); void onTaxiErrorReceived(@NonNull TaxiInfoError error); + void onNoTaxiProviders(); } } diff --git a/android/src/com/mapswithme/util/statistics/Statistics.java b/android/src/com/mapswithme/util/statistics/Statistics.java index c298910e4d..0d05acdf57 100644 --- a/android/src/com/mapswithme/util/statistics/Statistics.java +++ b/android/src/com/mapswithme/util/statistics/Statistics.java @@ -558,6 +558,13 @@ public enum Statistics trackEvent(EventName.ROUTING_TAXI_ROUTE_BUILT, params); } + public void trackNoTaxiProvidersError() + { + Statistics.ParameterBuilder params = Statistics.params(); + params.add(ERROR_CODE, TaxiManager.ErrorCode.NoProviders.name()); + trackEvent(EventName.ROUTING_TAXI_ROUTE_BUILT, params); + } + public void trackRestaurantEvent(@NonNull String eventName, @NonNull Sponsored restaurant, @NonNull MapObject mapObject) { |