For #3215: Adds collection restoration with unique IDs (#3635)

nightly-build-test
Sawyer Blatz 5 years ago committed by GitHub
parent 021900e7ad
commit 07516f47c3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -476,16 +476,45 @@ class HomeFragment : Fragment(), CoroutineScope, AccountObserver {
}
is CollectionAction.OpenTab -> {
invokePendingDeleteJobs()
(activity as HomeActivity).openToBrowserAndLoad(
searchTermOrURL = action.tab.url,
newTab = true,
from = BrowserDirection.FromHome
val tabSnapshot = action.tab.restore(
context = context!!,
engine = requireComponents.core.engine,
tab = action.tab,
restoreSessionId = false
)
if (tabSnapshot.isEmpty()) {
// We were unable to create a snapshot, so just load the tab instead
(activity as HomeActivity).openToBrowserAndLoad(
searchTermOrURL = action.tab.url,
newTab = true,
from = BrowserDirection.FromHome
)
} else {
requireComponents.core.sessionManager.restore(
tabSnapshot,
true
)
(activity as HomeActivity).openToBrowser(BrowserDirection.FromHome)
}
}
is CollectionAction.OpenTabs -> {
invokePendingDeleteJobs()
action.collection.tabs.forEach {
requireComponents.useCases.tabsUseCases.addTab.invoke(it.url)
val tabSnapshot = it.restore(
context = context!!,
engine = requireComponents.core.engine,
tab = it,
restoreSessionId = false
)
if (tabSnapshot.isEmpty()) {
// We were unable to create a snapshot, so just load the tab instead
requireComponents.useCases.tabsUseCases.addTab.invoke(it.url)
} else {
requireComponents.core.sessionManager.restore(
tabSnapshot,
requireComponents.core.sessionManager.selectedSession == null
)
}
}
launch {
delay(ANIM_SCROLL_DELAY)

Loading…
Cancel
Save