diff --git a/app/src/main/java/org/mozilla/fenix/HomeActivity.kt b/app/src/main/java/org/mozilla/fenix/HomeActivity.kt
index 4b2cfaa7f..f818cc47e 100644
--- a/app/src/main/java/org/mozilla/fenix/HomeActivity.kt
+++ b/app/src/main/java/org/mozilla/fenix/HomeActivity.kt
@@ -122,8 +122,14 @@ open class HomeActivity : AppCompatActivity(), ShareFragment.TabsSharedCallback
override fun onNewIntent(intent: Intent?) {
super.onNewIntent(intent)
- handleCrashIfNecessary(intent)
- handleOpenedFromExternalSourceIfNecessary(intent)
+
+ intent?.let {
+ if (Crash.isCrashIntent(it)) {
+ openToCrashReporter(it)
+ } else {
+ handleOpenedFromExternalSourceIfNecessary(it)
+ }
+ }
}
override fun onResume() {
@@ -164,17 +170,6 @@ open class HomeActivity : AppCompatActivity(), ShareFragment.TabsSharedCallback
super.onBackPressed()
}
- private fun handleCrashIfNecessary(intent: Intent?) {
- if (intent == null) {
- return
- }
- if (!Crash.isCrashIntent(intent)) {
- return
- }
-
- openToCrashReporter(intent)
- }
-
private fun openToCrashReporter(intent: Intent) {
val directions = NavGraphDirections.actionGlobalCrashReporter(intent)
navHost.navController.navigate(directions)
diff --git a/app/src/main/java/org/mozilla/fenix/crashes/CrashReporterFragment.kt b/app/src/main/java/org/mozilla/fenix/crashes/CrashReporterFragment.kt
index cc5c79b92..eadf94df5 100644
--- a/app/src/main/java/org/mozilla/fenix/crashes/CrashReporterFragment.kt
+++ b/app/src/main/java/org/mozilla/fenix/crashes/CrashReporterFragment.kt
@@ -11,12 +11,14 @@ import android.view.ViewGroup
import androidx.appcompat.app.AppCompatActivity
import androidx.fragment.app.Fragment
import androidx.navigation.Navigation
+import androidx.navigation.fragment.findNavController
import kotlinx.android.synthetic.main.fragment_crash_reporter.*
import mozilla.components.browser.session.Session
import mozilla.components.lib.crash.Crash
import org.mozilla.fenix.R
import org.mozilla.fenix.components.metrics.Event
import org.mozilla.fenix.ext.components
+import org.mozilla.fenix.ext.nav
import org.mozilla.fenix.ext.requireComponents
import org.mozilla.fenix.utils.Settings
@@ -61,7 +63,7 @@ class CrashReporterFragment : Fragment() {
} else {
requireComponents.useCases.tabsUseCases.removeTab.invoke(session)
requireComponents.useCases.sessionUseCases.crashRecovery.invoke()
- navigateHome(view!!)
+ navigateHome()
}
}
@@ -74,7 +76,8 @@ class CrashReporterFragment : Fragment() {
requireContext().components.analytics.metrics.track(Event.CrashReporterClosed(didSubmitCrashReport))
}
- private fun navigateHome(fromView: View) {
- Navigation.findNavController(fromView).popBackStack(R.id.browserFragment, true)
+ private fun navigateHome() {
+ val directions = CrashReporterFragmentDirections.actionCrashReporterFragmentToHomeFragment()
+ findNavController().nav(R.id.crashReporterFragment, directions)
}
}
diff --git a/app/src/main/res/navigation/nav_graph.xml b/app/src/main/res/navigation/nav_graph.xml
index ab5092ae9..2be36c775 100644
--- a/app/src/main/res/navigation/nav_graph.xml
+++ b/app/src/main/res/navigation/nav_graph.xml
@@ -369,7 +369,8 @@
android:label="CrashReporterFragment">
+ app:destination="@id/homeFragment"
+ app:popUpTo="@id/nav_graph"/>