For #4804: Resolves issue with crash reporter stack
parent
ae05bf98e2
commit
73e3db8fe0
|
@ -122,8 +122,14 @@ open class HomeActivity : AppCompatActivity(), ShareFragment.TabsSharedCallback
|
||||||
|
|
||||||
override fun onNewIntent(intent: Intent?) {
|
override fun onNewIntent(intent: Intent?) {
|
||||||
super.onNewIntent(intent)
|
super.onNewIntent(intent)
|
||||||
handleCrashIfNecessary(intent)
|
|
||||||
handleOpenedFromExternalSourceIfNecessary(intent)
|
intent?.let {
|
||||||
|
if (Crash.isCrashIntent(it)) {
|
||||||
|
openToCrashReporter(it)
|
||||||
|
} else {
|
||||||
|
handleOpenedFromExternalSourceIfNecessary(it)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onResume() {
|
override fun onResume() {
|
||||||
|
@ -164,17 +170,6 @@ open class HomeActivity : AppCompatActivity(), ShareFragment.TabsSharedCallback
|
||||||
super.onBackPressed()
|
super.onBackPressed()
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun handleCrashIfNecessary(intent: Intent?) {
|
|
||||||
if (intent == null) {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
if (!Crash.isCrashIntent(intent)) {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
openToCrashReporter(intent)
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun openToCrashReporter(intent: Intent) {
|
private fun openToCrashReporter(intent: Intent) {
|
||||||
val directions = NavGraphDirections.actionGlobalCrashReporter(intent)
|
val directions = NavGraphDirections.actionGlobalCrashReporter(intent)
|
||||||
navHost.navController.navigate(directions)
|
navHost.navController.navigate(directions)
|
||||||
|
|
|
@ -11,12 +11,14 @@ import android.view.ViewGroup
|
||||||
import androidx.appcompat.app.AppCompatActivity
|
import androidx.appcompat.app.AppCompatActivity
|
||||||
import androidx.fragment.app.Fragment
|
import androidx.fragment.app.Fragment
|
||||||
import androidx.navigation.Navigation
|
import androidx.navigation.Navigation
|
||||||
|
import androidx.navigation.fragment.findNavController
|
||||||
import kotlinx.android.synthetic.main.fragment_crash_reporter.*
|
import kotlinx.android.synthetic.main.fragment_crash_reporter.*
|
||||||
import mozilla.components.browser.session.Session
|
import mozilla.components.browser.session.Session
|
||||||
import mozilla.components.lib.crash.Crash
|
import mozilla.components.lib.crash.Crash
|
||||||
import org.mozilla.fenix.R
|
import org.mozilla.fenix.R
|
||||||
import org.mozilla.fenix.components.metrics.Event
|
import org.mozilla.fenix.components.metrics.Event
|
||||||
import org.mozilla.fenix.ext.components
|
import org.mozilla.fenix.ext.components
|
||||||
|
import org.mozilla.fenix.ext.nav
|
||||||
import org.mozilla.fenix.ext.requireComponents
|
import org.mozilla.fenix.ext.requireComponents
|
||||||
import org.mozilla.fenix.utils.Settings
|
import org.mozilla.fenix.utils.Settings
|
||||||
|
|
||||||
|
@ -61,7 +63,7 @@ class CrashReporterFragment : Fragment() {
|
||||||
} else {
|
} else {
|
||||||
requireComponents.useCases.tabsUseCases.removeTab.invoke(session)
|
requireComponents.useCases.tabsUseCases.removeTab.invoke(session)
|
||||||
requireComponents.useCases.sessionUseCases.crashRecovery.invoke()
|
requireComponents.useCases.sessionUseCases.crashRecovery.invoke()
|
||||||
navigateHome(view!!)
|
navigateHome()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -74,7 +76,8 @@ class CrashReporterFragment : Fragment() {
|
||||||
requireContext().components.analytics.metrics.track(Event.CrashReporterClosed(didSubmitCrashReport))
|
requireContext().components.analytics.metrics.track(Event.CrashReporterClosed(didSubmitCrashReport))
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun navigateHome(fromView: View) {
|
private fun navigateHome() {
|
||||||
Navigation.findNavController(fromView).popBackStack(R.id.browserFragment, true)
|
val directions = CrashReporterFragmentDirections.actionCrashReporterFragmentToHomeFragment()
|
||||||
|
findNavController().nav(R.id.crashReporterFragment, directions)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -369,7 +369,8 @@
|
||||||
android:label="CrashReporterFragment">
|
android:label="CrashReporterFragment">
|
||||||
<action
|
<action
|
||||||
android:id="@+id/action_crashReporterFragment_to_homeFragment"
|
android:id="@+id/action_crashReporterFragment_to_homeFragment"
|
||||||
app:destination="@id/homeFragment" />
|
app:destination="@id/homeFragment"
|
||||||
|
app:popUpTo="@id/nav_graph"/>
|
||||||
<argument
|
<argument
|
||||||
android:name="crashIntent"
|
android:name="crashIntent"
|
||||||
app:argType="android.content.Intent" />
|
app:argType="android.content.Intent" />
|
||||||
|
|
Loading…
Reference in New Issue