1
0
Fork 0

For #3056 - Filter sessions on invoke for pending delete all job

master
ekager 2019-05-31 16:44:56 -07:00 committed by Jeff Boek
parent e15ab3f958
commit 388581f76f
1 changed files with 12 additions and 3 deletions

View File

@ -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)
}
}
}
}