Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitry Donskoy <donskdmitry@mail.ru>2018-11-12 13:03:48 +0300
committerAleksandr Zatsepin <alexzatsepin@users.noreply.github.com>2018-11-12 13:12:50 +0300
commit7d1ef8a82f7e5566b2faafe75ead086c2bd55e9f (patch)
tree9c28f062a6d7c6aea79d3c32ad2541c5d2733bee
parentc95a4f781d053ff985a93e344a1429213968b3d2 (diff)
[android] Fixed FLAG_ACTIVITY_NEW_TASK runtime exception after startActivityios-store-848android-gr-849release-84
-rw-r--r--android/src/com/mapswithme/maps/search/PromoCategory.java8
-rw-r--r--android/src/com/mapswithme/maps/search/RutaxiPromoProcessor.java10
-rw-r--r--android/src/com/mapswithme/maps/search/SearchCategoriesFragment.java2
-rw-r--r--android/src/com/mapswithme/util/Utils.java25
4 files changed, 29 insertions, 16 deletions
diff --git a/android/src/com/mapswithme/maps/search/PromoCategory.java b/android/src/com/mapswithme/maps/search/PromoCategory.java
index 287b3a88e9..bbc7963735 100644
--- a/android/src/com/mapswithme/maps/search/PromoCategory.java
+++ b/android/src/com/mapswithme/maps/search/PromoCategory.java
@@ -1,6 +1,6 @@
package com.mapswithme.maps.search;
-import android.content.Context;
+import android.app.Activity;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.annotation.StringRes;
@@ -43,9 +43,9 @@ public enum PromoCategory
@NonNull
@Override
- PromoCategoryProcessor createProcessor(@NonNull Context context)
+ PromoCategoryProcessor createProcessor(@NonNull Activity activity)
{
- return new RutaxiPromoProcessor(context);
+ return new RutaxiPromoProcessor(activity);
}
@Override
@@ -69,7 +69,7 @@ public enum PromoCategory
abstract boolean isSupported();
@NonNull
- abstract PromoCategoryProcessor createProcessor(@NonNull Context context);
+ abstract PromoCategoryProcessor createProcessor(@NonNull Activity activity);
@Nullable
static PromoCategory findByStringId(@StringRes int nameId)
diff --git a/android/src/com/mapswithme/maps/search/RutaxiPromoProcessor.java b/android/src/com/mapswithme/maps/search/RutaxiPromoProcessor.java
index 194e5bbdc4..277de54763 100644
--- a/android/src/com/mapswithme/maps/search/RutaxiPromoProcessor.java
+++ b/android/src/com/mapswithme/maps/search/RutaxiPromoProcessor.java
@@ -1,6 +1,6 @@
package com.mapswithme.maps.search;
-import android.content.Context;
+import android.app.Activity;
import android.support.annotation.NonNull;
import com.mapswithme.util.Utils;
@@ -8,16 +8,16 @@ import com.mapswithme.util.Utils;
public class RutaxiPromoProcessor implements PromoCategoryProcessor
{
@NonNull
- private final Context mContext;
+ private final Activity mActivity;
- RutaxiPromoProcessor(@NonNull Context context)
+ RutaxiPromoProcessor(@NonNull Activity activity)
{
- mContext = context;
+ mActivity = activity;
}
@Override
public void process()
{
- Utils.openUrl(mContext, "https://go.onelink.me/2944814706/86db6339");
+ Utils.openUrl(mActivity, "https://go.onelink.me/2944814706/86db6339");
}
}
diff --git a/android/src/com/mapswithme/maps/search/SearchCategoriesFragment.java b/android/src/com/mapswithme/maps/search/SearchCategoriesFragment.java
index 6696417d6d..648cfc78ed 100644
--- a/android/src/com/mapswithme/maps/search/SearchCategoriesFragment.java
+++ b/android/src/com/mapswithme/maps/search/SearchCategoriesFragment.java
@@ -50,7 +50,7 @@ public class SearchCategoriesFragment extends BaseMwmRecyclerFragment<Categories
@Override
public void onPromoCategorySelected(@NonNull PromoCategory promo)
{
- PromoCategoryProcessor processor = promo.createProcessor(getContext().getApplicationContext());
+ PromoCategoryProcessor processor = promo.createProcessor(getActivity());
processor.process();
}
diff --git a/android/src/com/mapswithme/util/Utils.java b/android/src/com/mapswithme/util/Utils.java
index 20b93461ad..8c41f3e415 100644
--- a/android/src/com/mapswithme/util/Utils.java
+++ b/android/src/com/mapswithme/util/Utils.java
@@ -26,6 +26,7 @@ import android.text.SpannableStringBuilder;
import android.text.Spanned;
import android.text.TextUtils;
import android.text.style.AbsoluteSizeSpan;
+import android.util.AndroidRuntimeException;
import android.view.View;
import android.view.Window;
import android.widget.Toast;
@@ -216,23 +217,35 @@ public class Utils
activity.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(Constants.Url.TWITTER_MAPSME_HTTP)));
}
- public static void openUrl(@NonNull Context activity, @Nullable String url)
+ public static void openUrl(@NonNull Context context, @Nullable String url)
{
if (TextUtils.isEmpty(url))
return;
+ final Intent intent = new Intent(Intent.ACTION_VIEW);
+ Uri uri = isHttpOrHttpsScheme(url)
+ ? Uri.parse(url)
+ : new Uri.Builder().scheme("http").appendEncodedPath(url).build();
+ intent.setData(uri);
try
{
- final Intent intent = new Intent(Intent.ACTION_VIEW);
- if (!url.startsWith("http://") && !url.startsWith("https://"))
- url = "http://" + url;
- intent.setData(Uri.parse(url));
- activity.startActivity(intent);
+ context.startActivity(intent);
}
catch (ActivityNotFoundException e)
{
CrashlyticsUtils.logException(e);
}
+ catch (AndroidRuntimeException e)
+ {
+ CrashlyticsUtils.logException(e);
+ intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ context.startActivity(intent);
+ }
+ }
+
+ private static boolean isHttpOrHttpsScheme(@NonNull String url)
+ {
+ return url.startsWith("http://") || url.startsWith("https://");
}
@NonNull