@ -92,7 +92,6 @@ import org.mozilla.fenix.ext.metrics
import org.mozilla.fenix.ext.nav
import org.mozilla.fenix.ext.nav
import org.mozilla.fenix.ext.requireComponents
import org.mozilla.fenix.ext.requireComponents
import org.mozilla.fenix.ext.resetPoliciesAfter
import org.mozilla.fenix.ext.resetPoliciesAfter
import org.mozilla.fenix.ext.sessionsOfType
import org.mozilla.fenix.ext.settings
import org.mozilla.fenix.ext.settings
import org.mozilla.fenix.home.sessioncontrol.DefaultSessionControlController
import org.mozilla.fenix.home.sessioncontrol.DefaultSessionControlController
import org.mozilla.fenix.home.sessioncontrol.SessionControlInteractor
import org.mozilla.fenix.home.sessioncontrol.SessionControlInteractor
@ -469,17 +468,10 @@ class HomeFragment : Fragment() {
}
}
private fun removeAllTabsAndShowSnackbar ( sessionCode : String ) {
private fun removeAllTabsAndShowSnackbar ( sessionCode : String ) {
val tabs = sessionManager . sessionsOfType ( private = sessionCode == ALL _PRIVATE _TABS ) . toList ( )
if ( sessionCode == ALL _PRIVATE _TABS ) {
val selectedIndex = sessionManager
sessionManager . removePrivateSessions ( )
. selectedSession ?. let { sessionManager . sessions . indexOf ( it ) }
} else {
?: SessionManager . NO _SELECTION
sessionManager . removeNormalSessions ( )
val snapshot = tabs
. map ( sessionManager :: createSessionSnapshot )
. let { SessionManager . Snapshot ( it , selectedIndex ) }
tabs . forEach {
requireComponents . useCases . tabsUseCases . removeTab ( it )
}
}
val snackbarMessage = if ( sessionCode == ALL _PRIVATE _TABS ) {
val snackbarMessage = if ( sessionCode == ALL _PRIVATE _TABS ) {
@ -493,7 +485,7 @@ class HomeFragment : Fragment() {
snackbarMessage ,
snackbarMessage ,
requireContext ( ) . getString ( R . string . snackbar _deleted _undo ) ,
requireContext ( ) . getString ( R . string . snackbar _deleted _undo ) ,
{
{
sessionManager. restore ( snapshot )
requireComponents. useCases . tabsUseCases . undo . invoke ( )
} ,
} ,
operation = { } ,
operation = { } ,
anchorView = snackbarAnchorView
anchorView = snackbarAnchorView
@ -501,15 +493,11 @@ class HomeFragment : Fragment() {
}
}
private fun removeTabAndShowSnackbar ( sessionId : String ) {
private fun removeTabAndShowSnackbar ( sessionId : String ) {
sessionManager . findSessionById ( sessionId ) ?. let { session ->
val tab = store . state . findTab ( sessionId ) ?: return
val snapshot = sessionManager . createSessionSnapshot ( session )
val state = store . state . findTab ( sessionId ) ?. engineState ?. engineSessionState
val isSelected =
session . id == requireComponents . core . store . state . selectedTabId ?: false
requireComponents . useCases . tabsUseCases . removeTab ( sessionId )
requireComponents . useCases . tabsUseCases . removeTab ( sessionId )
val snackbarMessage = if ( snapshot. session . private ) {
val snackbarMessage = if ( tab . content . private ) {
requireContext ( ) . getString ( R . string . snackbar _private _tab _closed )
requireContext ( ) . getString ( R . string . snackbar _private _tab _closed )
} else {
} else {
requireContext ( ) . getString ( R . string . snackbar _tab _closed )
requireContext ( ) . getString ( R . string . snackbar _tab _closed )
@ -520,11 +508,7 @@ class HomeFragment : Fragment() {
snackbarMessage ,
snackbarMessage ,
requireContext ( ) . getString ( R . string . snackbar _deleted _undo ) ,
requireContext ( ) . getString ( R . string . snackbar _deleted _undo ) ,
{
{
sessionManager . add (
requireComponents . useCases . tabsUseCases . undo . invoke ( )
snapshot . session ,
isSelected ,
engineSessionState = state
)
findNavController ( ) . navigate (
findNavController ( ) . navigate (
HomeFragmentDirections . actionGlobalBrowser ( null )
HomeFragmentDirections . actionGlobalBrowser ( null )
)
)
@ -533,7 +517,6 @@ class HomeFragment : Fragment() {
anchorView = snackbarAnchorView
anchorView = snackbarAnchorView
)
)
}
}
}
override fun onDestroyView ( ) {
override fun onDestroyView ( ) {
super . onDestroyView ( )
super . onDestroyView ( )