From 4aa734ca3bbf5aaf2be3720c6b89376c0f32e1d4 Mon Sep 17 00:00:00 2001 From: Christophe Beyls Date: Wed, 25 Jan 2017 16:03:54 +0100 Subject: [PATCH] Prevent the app from crashing when trying to launch an invalid link or when no browser is installed. --- .../fosdem/fragments/EventDetailsFragment.java | 10 ++++++++-- .../fosdem/fragments/PersonInfoListFragment.java | 11 +++++++++-- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/be/digitalia/fosdem/fragments/EventDetailsFragment.java b/app/src/main/java/be/digitalia/fosdem/fragments/EventDetailsFragment.java index 92a7d45..78cddbd 100644 --- a/app/src/main/java/be/digitalia/fosdem/fragments/EventDetailsFragment.java +++ b/app/src/main/java/be/digitalia/fosdem/fragments/EventDetailsFragment.java @@ -503,8 +503,14 @@ public class EventDetailsFragment extends Fragment { @Override public void onClick(View v) { - Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(link.getUrl())); - v.getContext().startActivity(intent); + String url = link.getUrl(); + if (url != null) { + Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); + try { + v.getContext().startActivity(intent); + } catch (ActivityNotFoundException ignore) { + } + } } } } \ No newline at end of file diff --git a/app/src/main/java/be/digitalia/fosdem/fragments/PersonInfoListFragment.java b/app/src/main/java/be/digitalia/fosdem/fragments/PersonInfoListFragment.java index 1a6d9ac..6126d9a 100644 --- a/app/src/main/java/be/digitalia/fosdem/fragments/PersonInfoListFragment.java +++ b/app/src/main/java/be/digitalia/fosdem/fragments/PersonInfoListFragment.java @@ -1,5 +1,6 @@ package be.digitalia.fosdem.fragments; +import android.content.ActivityNotFoundException; import android.content.Context; import android.content.Intent; import android.database.Cursor; @@ -57,8 +58,14 @@ public class PersonInfoListFragment extends RecyclerViewFragment implements Load public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.more_info: - Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(person.getUrl())); - startActivity(intent); + String url = person.getUrl(); + if (url != null) { + Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); + try { + startActivity(intent); + } catch (ActivityNotFoundException ignore) { + } + } return true; } return false;