From afe102e90ad8a95a793ee914ac67f0e5e0e5b0ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Mart=C3=AD?= <mvdan@mvdan.cc> Date: Thu, 22 Aug 2013 18:16:57 +0200 Subject: [PATCH] Better tryOpenUri implementation and toast string. Got the if/else hint from http://developer.android.com/about/versions/android-4.3.html#Behaviors (much better than try/except anyway) --- res/values/strings.xml | 2 +- src/org/fdroid/fdroid/AppDetails.java | 15 ++++++++------- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/res/values/strings.xml b/res/values/strings.xml index ea58ded89..c1c85531f 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -183,7 +183,7 @@ <string name="permissions_for_long">Permissions for version %s</string> <string name="showPermissions">Show permissions</string> <string name="showPermissions_long">Display a list of permissions an app needs</string> - <string name="no_handler_app">You don\'t have any app installed that can handle %s</string> + <string name="no_handler_app">You don\'t have any available app that can handle %s</string> <string name="compactlayout">Compact Layout</string> <string name="compactlayout_long">Only show app names and summaries in list</string> diff --git a/src/org/fdroid/fdroid/AppDetails.java b/src/org/fdroid/fdroid/AppDetails.java index 9a7a27d56..b8e4b780a 100644 --- a/src/org/fdroid/fdroid/AppDetails.java +++ b/src/org/fdroid/fdroid/AppDetails.java @@ -634,14 +634,15 @@ public class AppDetails extends ListActivity { return true; } + public void tryOpenUri(String s) { - try { - startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(s))); - } catch (android.content.ActivityNotFoundException e) { - Toast toast = Toast.makeText(this, - getString(R.string.no_handler_app, s), Toast.LENGTH_LONG); - toast.show(); - } + Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(s)); + if (intent.resolveActivity(getPackageManager()) != null) + startActivity(intent); + else + Toast.makeText(this, + getString(R.string.no_handler_app, intent.getDataString()), + Toast.LENGTH_LONG).show(); } @Override