diff --git a/android/KMAPro/kMAPro/src/main/java/com/tavultesoft/kmapro/KMPBrowserActivity.java b/android/KMAPro/kMAPro/src/main/java/com/tavultesoft/kmapro/KMPBrowserActivity.java index 7cff5b5e80..ff74db201f 100644 --- a/android/KMAPro/kMAPro/src/main/java/com/tavultesoft/kmapro/KMPBrowserActivity.java +++ b/android/KMAPro/kMAPro/src/main/java/com/tavultesoft/kmapro/KMPBrowserActivity.java @@ -113,7 +113,9 @@ public class KMPBrowserActivity extends BaseActivity { // All links that aren't internal Keyman keyboard links open in user's browser Intent intent = new Intent(Intent.ACTION_VIEW, uri); - startActivity(intent); + if (intent.resolveActivity(getPackageManager()) != null) { + startActivity(intent); + } return true; } if (lowerURL.startsWith("keyman:")) { diff --git a/android/KMAPro/kMAPro/src/main/java/com/tavultesoft/kmapro/KeyboardSettingsActivity.java b/android/KMAPro/kMAPro/src/main/java/com/tavultesoft/kmapro/KeyboardSettingsActivity.java index 8aee2a6acb..b471fc1cee 100644 --- a/android/KMAPro/kMAPro/src/main/java/com/tavultesoft/kmapro/KeyboardSettingsActivity.java +++ b/android/KMAPro/kMAPro/src/main/java/com/tavultesoft/kmapro/KeyboardSettingsActivity.java @@ -160,7 +160,9 @@ public final class KeyboardSettingsActivity extends AppCompatActivity { Bundle args = kbd.buildDownloadBundle(); Intent i = new Intent(getApplicationContext(), KMKeyboardDownloaderActivity.class); i.putExtras(args); - startActivity(i); + if (i.resolveActivity(getPackageManager()) != null) { + startActivity(i); + } finish(); // "Help" link clicked diff --git a/android/KMAPro/kMAPro/src/main/java/com/tavultesoft/kmapro/MainActivity.java b/android/KMAPro/kMAPro/src/main/java/com/tavultesoft/kmapro/MainActivity.java index 6f3affe4fb..af9b16fbc1 100644 --- a/android/KMAPro/kMAPro/src/main/java/com/tavultesoft/kmapro/MainActivity.java +++ b/android/KMAPro/kMAPro/src/main/java/com/tavultesoft/kmapro/MainActivity.java @@ -762,10 +762,15 @@ public class MainActivity extends BaseActivity implements OnKeyboardEventListene // Launch PlayStore to update Chrome try { Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=com.android.chrome")); - startActivity(intent); + if (intent.resolveActivity(getPackageManager()) != null) { + startActivity(intent); + } } catch (android.content.ActivityNotFoundException e) { // Link to Chrome if user is not signed in to Play Store - startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/apps/details?id=com.android.chrome"))); + Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/apps/details?id=com.android.chrome")); + if (intent.resolveActivity(getPackageManager()) != null) { + startActivity(intent); + } } } }); diff --git a/android/KMEA/app/src/main/java/com/tavultesoft/kmea/KeyboardInfoActivity.java b/android/KMEA/app/src/main/java/com/tavultesoft/kmea/KeyboardInfoActivity.java index d9b15f0ea8..89bab42c66 100644 --- a/android/KMEA/app/src/main/java/com/tavultesoft/kmea/KeyboardInfoActivity.java +++ b/android/KMEA/app/src/main/java/com/tavultesoft/kmea/KeyboardInfoActivity.java @@ -136,7 +136,9 @@ public final class KeyboardInfoActivity extends BaseActivity { } else { Intent i = new Intent(Intent.ACTION_VIEW); i.setData(Uri.parse(customHelpLink)); - startActivity(i); + if (i.resolveActivity(getPackageManager()) != null) { + startActivity(i); + } } } } diff --git a/oem/firstvoices/android/app/src/main/java/com/firstvoices/keyboards/FVShared.java b/oem/firstvoices/android/app/src/main/java/com/firstvoices/keyboards/FVShared.java index 854175e4cc..71ace943b5 100644 --- a/oem/firstvoices/android/app/src/main/java/com/firstvoices/keyboards/FVShared.java +++ b/oem/firstvoices/android/app/src/main/java/com/firstvoices/keyboards/FVShared.java @@ -252,7 +252,9 @@ final class FVShared { String helpUrl = String.format("%s%s", FVKeyboardHelpLink, id); Intent i = new Intent(Intent.ACTION_VIEW); i.setData(Uri.parse(helpUrl)); - localContext.startActivity(i); + if (i.resolveActivity(getPackageManager()) != null) { + localContext.startActivity(i); + } } private void updateActiveKeyboardsList() { diff --git a/oem/firstvoices/android/app/src/main/java/com/firstvoices/keyboards/MainActivity.java b/oem/firstvoices/android/app/src/main/java/com/firstvoices/keyboards/MainActivity.java index 5d3e5c5939..897145ec5f 100644 --- a/oem/firstvoices/android/app/src/main/java/com/firstvoices/keyboards/MainActivity.java +++ b/oem/firstvoices/android/app/src/main/java/com/firstvoices/keyboards/MainActivity.java @@ -105,7 +105,9 @@ public class MainActivity extends AppCompatActivity implements OnKeyboardDownloa } else { Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); - startActivity(i); + if (i.resolveActivity(getPackageManager()) != null) { + startActivity(i); + } } return true;