From 8df0aae1cfa0212f108fc254f8db57e22ad430e7 Mon Sep 17 00:00:00 2001 From: Torsten Grote Date: Tue, 17 Dec 2024 14:11:01 -0300 Subject: [PATCH] [app] Handle ActivityNotFoundException in AppDetailsActivity Fixes acra-crash-reports#782 --- .../fdroid/fdroid/views/AppDetailsActivity.java | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/fdroid/fdroid/views/AppDetailsActivity.java b/app/src/main/java/org/fdroid/fdroid/views/AppDetailsActivity.java index 346eab8b5..584df0943 100644 --- a/app/src/main/java/org/fdroid/fdroid/views/AppDetailsActivity.java +++ b/app/src/main/java/org/fdroid/fdroid/views/AppDetailsActivity.java @@ -23,6 +23,7 @@ package org.fdroid.fdroid.views; import android.annotation.SuppressLint; import android.app.PendingIntent; +import android.content.ActivityNotFoundException; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; @@ -296,7 +297,12 @@ public class AppDetailsActivity extends AppCompatActivity uriIntent.putExtra(Intent.EXTRA_TEXT, shareUri.toString()); Intent chooserIntent = Intent.createChooser(uriIntent, getString(R.string.menu_share)); - startActivity(chooserIntent); + try { + startActivity(chooserIntent); + } catch (ActivityNotFoundException ex) { + Toast.makeText(this, getString(R.string.no_handler_app, app.name), + Toast.LENGTH_LONG).show(); + } return true; } else if (item.getItemId() == R.id.action_share_apk) { // allow user to share APK if app is installed @@ -305,7 +311,12 @@ public class AppDetailsActivity extends AppCompatActivity streamIntent.putExtra(Intent.EXTRA_TITLE, app.name + ".apk"); Intent chooserIntent = Intent.createChooser(streamIntent, getString(R.string.menu_share)); - startActivity(chooserIntent); + try { + startActivity(chooserIntent); + } catch (ActivityNotFoundException ex) { + Toast.makeText(this, getString(R.string.no_handler_app, app.name), + Toast.LENGTH_LONG).show(); + } } else if (item.getItemId() == R.id.action_ignore_all) { model.ignoreAllUpdates(); return true;