For #3056 - Filter sessions on invoke for pending delete all job
parent
e15ab3f958
commit
388581f76f
|
@ -49,6 +49,7 @@ import org.mozilla.fenix.ThemeManager
|
|||
import org.mozilla.fenix.collections.CreateCollectionViewModel
|
||||
import org.mozilla.fenix.collections.SaveCollectionStep
|
||||
import org.mozilla.fenix.components.metrics.Event
|
||||
import org.mozilla.fenix.ext.components
|
||||
import org.mozilla.fenix.ext.requireComponents
|
||||
import org.mozilla.fenix.ext.urlToTrimmedHost
|
||||
import org.mozilla.fenix.home.sessioncontrol.CollectionAction
|
||||
|
@ -509,11 +510,15 @@ class HomeFragment : Fragment(), CoroutineScope, AccountObserver {
|
|||
}
|
||||
|
||||
private fun removeAllTabsWithUndo(isPrivate: Boolean) {
|
||||
val useCases = requireComponents.useCases.tabsUseCases
|
||||
val currentFilteredSessions =
|
||||
context?.components?.core?.sessionManager?.sessions?.filter { it.private == isPrivate } ?: return
|
||||
val useCases = context?.components?.useCases?.tabsUseCases ?: return
|
||||
|
||||
getManagedEmitter<SessionControlChange>().onNext(SessionControlChange.TabsChange(listOf()))
|
||||
deleteAllSessionsJob = {
|
||||
useCases.removeAllTabsOfType.invoke(isPrivate)
|
||||
currentFilteredSessions.forEach {
|
||||
useCases.removeTab.invoke(it)
|
||||
}
|
||||
}
|
||||
|
||||
allowUndo(
|
||||
|
@ -523,7 +528,11 @@ class HomeFragment : Fragment(), CoroutineScope, AccountObserver {
|
|||
emitSessionChanges()
|
||||
}
|
||||
) {
|
||||
useCases.removeAllTabsOfType.invoke(isPrivate)
|
||||
deleteAllSessionsJob = {
|
||||
currentFilteredSessions.forEach {
|
||||
useCases.removeTab.invoke(it)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue