From cee34893ed64dc9d84ff526a3cece1742a374729 Mon Sep 17 00:00:00 2001 From: ValentinTimisica Date: Tue, 31 Mar 2020 20:17:29 +0300 Subject: [PATCH] For #8412: Passes error handling function to 'CustomTabWindowFeature' (#8903) * For #8412: Passes error handling function to 'CustomTabWindowFeature' Change required for showing error message when the app can't handle a specific scheme. Implemented in AC: https://github.com/mozilla-mobile/android-components/pull/6122 * Upgrade AC version Co-authored-by: Sawyer Blatz --- .../fenix/customtabs/ExternalAppBrowserFragment.kt | 11 +++++++++-- app/src/main/res/values/strings.xml | 3 +++ buildSrc/src/main/java/AndroidComponents.kt | 2 +- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/org/mozilla/fenix/customtabs/ExternalAppBrowserFragment.kt b/app/src/main/java/org/mozilla/fenix/customtabs/ExternalAppBrowserFragment.kt index 331c912e4..61976d066 100644 --- a/app/src/main/java/org/mozilla/fenix/customtabs/ExternalAppBrowserFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/customtabs/ExternalAppBrowserFragment.kt @@ -33,6 +33,7 @@ import org.mozilla.fenix.R import org.mozilla.fenix.browser.BaseBrowserFragment import org.mozilla.fenix.browser.CustomTabContextMenuCandidate import org.mozilla.fenix.browser.FenixSnackbarDelegate +import org.mozilla.fenix.components.FenixSnackbar import org.mozilla.fenix.ext.components import org.mozilla.fenix.ext.nav import org.mozilla.fenix.ext.requireComponents @@ -50,7 +51,7 @@ class ExternalAppBrowserFragment : BaseBrowserFragment(), UserInteractionHandler private val windowFeature = ViewBoundFeatureWrapper() private val hideToolbarFeature = ViewBoundFeatureWrapper() - @Suppress("LongMethod") + @Suppress("LongMethod", "ComplexMethod") override fun initializeUI(view: View): Session? { return super.initializeUI(view)?.also { val activity = requireActivity() @@ -82,7 +83,13 @@ class ExternalAppBrowserFragment : BaseBrowserFragment(), UserInteractionHandler activity, components.core.store, customTabSessionId - ), + ) { exception -> + components.analytics.crashReporter.submitCaughtException(exception) + FenixSnackbar.make(view.swipeRefresh, FenixSnackbar.LENGTH_LONG).apply { + setText(resources.getString(R.string.unknown_scheme_error_message)) + setAppropriateBackground(true) + }.show() + }, owner = this, view = view ) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index e54d6182d..40f656d24 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -113,6 +113,9 @@ Open in app Appearance + + Unable to connect. Unrecognizable URL scheme. diff --git a/buildSrc/src/main/java/AndroidComponents.kt b/buildSrc/src/main/java/AndroidComponents.kt index 869919406..69149156f 100644 --- a/buildSrc/src/main/java/AndroidComponents.kt +++ b/buildSrc/src/main/java/AndroidComponents.kt @@ -3,5 +3,5 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ object AndroidComponents { - const val VERSION = "38.0.20200329190103" + const val VERSION = "38.0.20200331130030" }