diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 09c3d6108..c647e8cb2 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -191,6 +191,10 @@ android:exported="false"> + + about", but desktop and + // fennec users may be used to navigating to "about:crashes". So we intercept this here + // and open the crash list activity instead. + context.startActivity(Intent(context, CrashListActivity::class.java)) + return + } + if (url.isNotBlank()) { (context as HomeActivity).openToBrowserAndLoad( searchTermOrURL = url, diff --git a/app/src/main/java/org/mozilla/fenix/settings/about/AboutFragment.kt b/app/src/main/java/org/mozilla/fenix/settings/about/AboutFragment.kt index ddb334abb..a9186f3b5 100644 --- a/app/src/main/java/org/mozilla/fenix/settings/about/AboutFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/settings/about/AboutFragment.kt @@ -20,6 +20,7 @@ import kotlinx.coroutines.ExperimentalCoroutinesApi import org.mozilla.fenix.BuildConfig import org.mozilla.fenix.R import org.mozilla.fenix.components.metrics.Event +import org.mozilla.fenix.crashes.CrashListActivity import org.mozilla.fenix.ext.requireComponents import org.mozilla.fenix.ext.settings import org.mozilla.fenix.utils.Do @@ -152,6 +153,10 @@ class AboutFragment : Fragment(), AboutPageListener { SupportUtils.getSumoURLForTopic(context, SupportUtils.SumoTopic.HELP) ), getString(R.string.about_support) ), + AboutPageItem.Item( + AboutItem.Crashes, + getString(R.string.about_crashes) + ), AboutPageItem.Item( AboutItem.ExternalLink( PRIVACY_NOTICE, @@ -215,6 +220,9 @@ class AboutFragment : Fragment(), AboutPageListener { requireComponents.analytics.metrics.track(Event.LibrariesThatWeUseTapped) openLibrariesPage() } + is AboutItem.Crashes -> { + startActivity(Intent(requireContext(), CrashListActivity::class.java)) + } } } diff --git a/app/src/main/java/org/mozilla/fenix/settings/about/AboutItem.kt b/app/src/main/java/org/mozilla/fenix/settings/about/AboutItem.kt index f2df25a1c..e8cf2a79c 100644 --- a/app/src/main/java/org/mozilla/fenix/settings/about/AboutItem.kt +++ b/app/src/main/java/org/mozilla/fenix/settings/about/AboutItem.kt @@ -7,6 +7,7 @@ package org.mozilla.fenix.settings.about sealed class AboutItem { data class ExternalLink(val type: AboutItemType, val url: String) : AboutItem() object Libraries : AboutItem() + object Crashes : AboutItem() } enum class AboutItemType { diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 6ad5c8e3f..2c7974b54 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1106,6 +1106,8 @@ Support + + Crashes Privacy notice diff --git a/app/src/test/java/org/mozilla/fenix/components/metrics/BreadcrumbRecorderTest.kt b/app/src/test/java/org/mozilla/fenix/components/metrics/BreadcrumbRecorderTest.kt index 05c518ff3..810e8f244 100644 --- a/app/src/test/java/org/mozilla/fenix/components/metrics/BreadcrumbRecorderTest.kt +++ b/app/src/test/java/org/mozilla/fenix/components/metrics/BreadcrumbRecorderTest.kt @@ -20,6 +20,9 @@ internal class BreadcrumbRecorderTest { @Test fun `ensure crash reporter recordCrashBreadcrumb is called`() { val service = object : CrashReporterService { + override val id: String = "test" + override val name: String = "Test" + override fun createCrashReportUrl(identifier: String): String? = null override fun report(throwable: Throwable, breadcrumbs: ArrayList): String? = "" override fun report(crash: Crash.NativeCodeCrash): String? = "" override fun report(crash: Crash.UncaughtExceptionCrash): String? = "" @@ -27,6 +30,7 @@ internal class BreadcrumbRecorderTest { val reporter = spy( CrashReporter( + context = mock(), services = listOf(service), shouldPrompt = CrashReporter.Prompt.NEVER ) diff --git a/buildSrc/src/main/java/AndroidComponents.kt b/buildSrc/src/main/java/AndroidComponents.kt index b7e4b9817..7bea9b7c3 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 = "41.0.20200510130109" + const val VERSION = "41.0.20200511120152" }