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.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)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue