diff --git a/app/src/main/java/org/mozilla/fenix/share/ShareController.kt b/app/src/main/java/org/mozilla/fenix/share/ShareController.kt index 9e293bbbe..8c9b40b36 100644 --- a/app/src/main/java/org/mozilla/fenix/share/ShareController.kt +++ b/app/src/main/java/org/mozilla/fenix/share/ShareController.kt @@ -13,11 +13,14 @@ import androidx.annotation.VisibleForTesting import androidx.appcompat.app.AlertDialog import androidx.fragment.app.Fragment import androidx.navigation.NavController +import com.google.android.material.snackbar.Snackbar import mozilla.components.concept.sync.Device import mozilla.components.concept.sync.TabData import mozilla.components.feature.sendtab.SendTabUseCases import org.mozilla.fenix.R +import org.mozilla.fenix.components.FenixSnackbar import org.mozilla.fenix.components.metrics.Event +import org.mozilla.fenix.ext.getRootView import org.mozilla.fenix.ext.metrics import org.mozilla.fenix.ext.nav import org.mozilla.fenix.share.listadapters.AppShareOption @@ -71,7 +74,16 @@ class DefaultShareController( flags = FLAG_ACTIVITY_NEW_TASK setClassName(app.packageName, app.activityName) } - fragment.startActivity(intent) + + try { + fragment.startActivity(intent) + } catch (e: SecurityException) { + context.getRootView()?.let { + FenixSnackbar.make(it, Snackbar.LENGTH_LONG) + .setText(context.getString(R.string.share_error_snackbar)) + .show() + } + } dismiss() } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 3cf37f4a2..1aa42ac25 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -593,6 +593,8 @@ To send a tab, sign in to Firefox on at least one other device. Got it + + Cannot share to this app