From bc16061939faac46fae06d72bd02af915c7b78ee Mon Sep 17 00:00:00 2001 From: Mihai Adrian <48995920+mcarare@users.noreply.github.com> Date: Thu, 12 Sep 2019 19:26:24 +0300 Subject: [PATCH] For #3371: Show snackbar message when share fails with crash (#5210) --- .../org/mozilla/fenix/share/ShareController.kt | 14 +++++++++++++- app/src/main/res/values/strings.xml | 2 ++ 2 files changed, 15 insertions(+), 1 deletion(-) 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