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.CreateCollectionViewModel
import org.mozilla.fenix.collections.SaveCollectionStep import org.mozilla.fenix.collections.SaveCollectionStep
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.requireComponents import org.mozilla.fenix.ext.requireComponents
import org.mozilla.fenix.ext.urlToTrimmedHost import org.mozilla.fenix.ext.urlToTrimmedHost
import org.mozilla.fenix.home.sessioncontrol.CollectionAction import org.mozilla.fenix.home.sessioncontrol.CollectionAction
@ -509,11 +510,15 @@ class HomeFragment : Fragment(), CoroutineScope, AccountObserver {
} }
private fun removeAllTabsWithUndo(isPrivate: Boolean) { 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())) getManagedEmitter<SessionControlChange>().onNext(SessionControlChange.TabsChange(listOf()))
deleteAllSessionsJob = { deleteAllSessionsJob = {
useCases.removeAllTabsOfType.invoke(isPrivate) currentFilteredSessions.forEach {
useCases.removeTab.invoke(it)
}
} }
allowUndo( allowUndo(
@ -523,7 +528,11 @@ class HomeFragment : Fragment(), CoroutineScope, AccountObserver {
emitSessionChanges() emitSessionChanges()
} }
) { ) {
useCases.removeAllTabsOfType.invoke(isPrivate) deleteAllSessionsJob = {
currentFilteredSessions.forEach {
useCases.removeTab.invoke(it)
}
}
} }
} }