From a0e5c9b476ac21bbb0cec0bb1da7229baf52ebf5 Mon Sep 17 00:00:00 2001 From: alexzatsepin Date: Mon, 31 Oct 2016 12:56:41 +0300 Subject: [PATCH] [android] Added 'Install' button to install Uber app when it is absent on device --- .../maps/routing/RoutingPlanController.java | 2 +- android/src/com/mapswithme/util/Utils.java | 28 +++++++++++++------ 2 files changed, 20 insertions(+), 10 deletions(-) diff --git a/android/src/com/mapswithme/maps/routing/RoutingPlanController.java b/android/src/com/mapswithme/maps/routing/RoutingPlanController.java index 343933faba..30ca3cdcc3 100644 --- a/android/src/com/mapswithme/maps/routing/RoutingPlanController.java +++ b/android/src/com/mapswithme/maps/routing/RoutingPlanController.java @@ -493,7 +493,7 @@ public class RoutingPlanController extends ToolbarController if (isTaxiRouteChecked()) { - start.setText(R.string.taxi_order); + start.setText(Utils.isUberInstalled(mActivity) ? R.string.taxi_order : R.string.install_app); start.setOnClickListener(new View.OnClickListener() { @Override diff --git a/android/src/com/mapswithme/util/Utils.java b/android/src/com/mapswithme/util/Utils.java index 06517c3e89..76d4e6d231 100644 --- a/android/src/com/mapswithme/util/Utils.java +++ b/android/src/com/mapswithme/util/Utils.java @@ -401,22 +401,32 @@ public class Utils return installationId; } - public static void launchUber(@NonNull Activity context, @NonNull UberLinks links) + public static boolean isUberInstalled(@NonNull Activity context) { try { PackageManager pm = context.getPackageManager(); pm.getPackageInfo("com.ubercab", PackageManager.GET_ACTIVITIES); - Intent intent = new Intent(Intent.ACTION_VIEW); - intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - intent.setData(Uri.parse(links.getDeepLink())); - context.startActivity(intent); + return true; } catch (PackageManager.NameNotFoundException e) { - // No Uber app! Open mobile website. - Intent i = new Intent(Intent.ACTION_VIEW); - i.setData(Uri.parse(links.getUniversalLink())); - context.startActivity(i); + return false; } } + + public static void launchUber(@NonNull Activity context, @NonNull UberLinks links) + { + Intent intent = new Intent(Intent.ACTION_VIEW); + if (isUberInstalled(context)) + { + + intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + intent.setData(Uri.parse(links.getDeepLink())); + } else + { + // No Uber app! Open mobile website. + intent.setData(Uri.parse(links.getUniversalLink())); + } + context.startActivity(intent); + } }