From 388581f76f8e97ba620b2d1a73d41025ec9cfccb Mon Sep 17 00:00:00 2001 From: ekager Date: Fri, 31 May 2019 16:44:56 -0700 Subject: [PATCH] For #3056 - Filter sessions on invoke for pending delete all job --- .../java/org/mozilla/fenix/home/HomeFragment.kt | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt b/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt index 4bdf957ad..afd1bab7f 100644 --- a/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt +++ b/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt @@ -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().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) + } + } } }