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"/>