diff --git a/app/src/main/java/org/mozilla/fenix/crashes/CrashReporterController.kt b/app/src/main/java/org/mozilla/fenix/crashes/CrashReporterController.kt index fba8d2f391..4183a4bfd7 100644 --- a/app/src/main/java/org/mozilla/fenix/crashes/CrashReporterController.kt +++ b/app/src/main/java/org/mozilla/fenix/crashes/CrashReporterController.kt @@ -9,7 +9,6 @@ import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.GlobalScope import kotlinx.coroutines.Job import kotlinx.coroutines.launch -import mozilla.components.browser.session.Session import mozilla.components.lib.crash.Crash import org.mozilla.fenix.R import org.mozilla.fenix.components.Components @@ -19,7 +18,7 @@ import org.mozilla.fenix.utils.Settings class CrashReporterController( private val crash: Crash, - private val session: Session?, + private val sessionId: String?, private val navController: NavController, private val components: Components, private val settings: Settings @@ -50,10 +49,10 @@ class CrashReporterController( * @return Job if report is submitted through an IO thread, null otherwise */ fun handleCloseAndRemove(sendCrash: Boolean): Job? { - session ?: return null + sessionId ?: return null val job = submitReportIfNecessary(sendCrash) - components.useCases.tabsUseCases.removeTab(session) + components.useCases.tabsUseCases.removeTab(sessionId) components.useCases.sessionUseCases.crashRecovery.invoke() navController.nav( 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 eff300e699..6f74525ea0 100644 --- a/app/src/main/java/org/mozilla/fenix/crashes/CrashReporterFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/crashes/CrashReporterFragment.kt @@ -32,7 +32,7 @@ class CrashReporterFragment : Fragment(R.layout.fragment_crash_reporter) { val controller = CrashReporterController( crash, - session = requireComponents.core.sessionManager.selectedSession, + sessionId = requireComponents.core.store.state.selectedTabId, navController = findNavController(), components = requireComponents, settings = requireContext().settings() diff --git a/app/src/test/java/org/mozilla/fenix/crashes/CrashReporterControllerTest.kt b/app/src/test/java/org/mozilla/fenix/crashes/CrashReporterControllerTest.kt index d3ac958f64..27fef2732c 100644 --- a/app/src/test/java/org/mozilla/fenix/crashes/CrashReporterControllerTest.kt +++ b/app/src/test/java/org/mozilla/fenix/crashes/CrashReporterControllerTest.kt @@ -9,7 +9,6 @@ import androidx.navigation.NavDestination import io.mockk.every import io.mockk.mockk import io.mockk.verify -import mozilla.components.browser.session.Session import mozilla.components.lib.crash.Crash import mozilla.components.support.test.ext.joinBlocking import org.junit.Before @@ -23,7 +22,7 @@ class CrashReporterControllerTest { private lateinit var components: Components private lateinit var crash: Crash - private lateinit var session: Session + private lateinit var sessionId: String private lateinit var navContoller: NavController private lateinit var settings: Settings @@ -31,7 +30,7 @@ class CrashReporterControllerTest { fun setup() { components = mockk(relaxed = true) crash = mockk() - session = mockk() + sessionId = "testId" navContoller = mockk(relaxed = true) settings = mockk() @@ -42,14 +41,14 @@ class CrashReporterControllerTest { @Test fun `reports crash reporter opened`() { - CrashReporterController(crash, session, navContoller, components, settings) + CrashReporterController(crash, sessionId, navContoller, components, settings) verify { components.analytics.metrics.track(Event.CrashReporterOpened) } } @Test fun `handle close and restore tab`() { - val controller = CrashReporterController(crash, session, navContoller, components, settings) + val controller = CrashReporterController(crash, sessionId, navContoller, components, settings) controller.handleCloseAndRestore(sendCrash = false)?.joinBlocking() verify { components.analytics.metrics.track(Event.CrashReporterClosed(false)) } @@ -59,11 +58,11 @@ class CrashReporterControllerTest { @Test fun `handle close and remove tab`() { - val controller = CrashReporterController(crash, session, navContoller, components, settings) + val controller = CrashReporterController(crash, sessionId, navContoller, components, settings) controller.handleCloseAndRemove(sendCrash = false)?.joinBlocking() verify { components.analytics.metrics.track(Event.CrashReporterClosed(false)) } - verify { components.useCases.tabsUseCases.removeTab(session) } + verify { components.useCases.tabsUseCases.removeTab(sessionId) } verify { components.useCases.sessionUseCases.crashRecovery.invoke() } verify { navContoller.navigate(CrashReporterFragmentDirections.actionGlobalHome(), null) @@ -74,7 +73,7 @@ class CrashReporterControllerTest { fun `don't submit report if setting is turned off`() { every { settings.isCrashReportingEnabled } returns false - val controller = CrashReporterController(crash, session, navContoller, components, settings) + val controller = CrashReporterController(crash, sessionId, navContoller, components, settings) controller.handleCloseAndRestore(sendCrash = true)?.joinBlocking() verify { components.analytics.metrics.track(Event.CrashReporterClosed(false)) } @@ -84,7 +83,7 @@ class CrashReporterControllerTest { fun `submit report if setting is turned on`() { every { settings.isCrashReportingEnabled } returns true - val controller = CrashReporterController(crash, session, navContoller, components, settings) + val controller = CrashReporterController(crash, sessionId, navContoller, components, settings) controller.handleCloseAndRestore(sendCrash = true)?.joinBlocking() verify { components.analytics.crashReporter.submitReport(crash) }