1
0
Fork 0

Issue #5208: Use new tab/collection restore API.

master
Sebastian Kaspari 2020-03-25 15:31:57 +01:00 committed by Emily Kager
parent 4b804da8dd
commit 0f0d56e60a
2 changed files with 23 additions and 38 deletions

View File

@ -15,6 +15,7 @@ import mozilla.components.feature.media.ext.pauseIfPlaying
import mozilla.components.feature.media.ext.playIfPaused import mozilla.components.feature.media.ext.playIfPaused
import mozilla.components.feature.media.state.MediaStateMachine import mozilla.components.feature.media.state.MediaStateMachine
import mozilla.components.feature.tab.collections.TabCollection import mozilla.components.feature.tab.collections.TabCollection
import mozilla.components.feature.tab.collections.ext.restore
import mozilla.components.feature.top.sites.TopSite import mozilla.components.feature.top.sites.TopSite
import org.mozilla.fenix.BrowserDirection import org.mozilla.fenix.BrowserDirection
import org.mozilla.fenix.HomeActivity import org.mozilla.fenix.HomeActivity
@ -200,52 +201,36 @@ class DefaultSessionControlController(
override fun handleCollectionOpenTabClicked(tab: ComponentTab) { override fun handleCollectionOpenTabClicked(tab: ComponentTab) {
invokePendingDeleteJobs() invokePendingDeleteJobs()
val session = tab.restore( sessionManager.restore(
context = activity, activity,
engine = activity.components.core.engine, activity.components.core.engine,
tab = tab, tab,
restoreSessionId = false onTabRestored = {
activity.openToBrowser(BrowserDirection.FromHome)
},
onFailure = {
activity.openToBrowserAndLoad(
searchTermOrURL = tab.url,
newTab = true,
from = BrowserDirection.FromHome
)
}
) )
if (session == null) {
// We were unable to create a snapshot, so just load the tab instead
activity.openToBrowserAndLoad(
searchTermOrURL = tab.url,
newTab = true,
from = BrowserDirection.FromHome
)
} else {
sessionManager.add(
session,
true
)
activity.openToBrowser(BrowserDirection.FromHome)
}
metrics.track(Event.CollectionTabRestored) metrics.track(Event.CollectionTabRestored)
} }
override fun handleCollectionOpenTabsTapped(collection: TabCollection) { override fun handleCollectionOpenTabsTapped(collection: TabCollection) {
invokePendingDeleteJobs() invokePendingDeleteJobs()
collection.tabs.reversed().forEach { sessionManager.restore(
val session = it.restore( activity,
context = activity, activity.components.core.engine,
engine = activity.components.core.engine, collection,
tab = it, onFailure = { url ->
restoreSessionId = false activity.components.useCases.tabsUseCases.addTab.invoke(url)
)
if (session == null) {
// We were unable to create a snapshot, so just load the tab instead
activity.components.useCases.tabsUseCases.addTab.invoke(it.url)
} else {
sessionManager.add(
session,
activity.components.core.sessionManager.selectedSession == null
)
} }
} )
scrollToTheTop() scrollToTheTop()
metrics.track(Event.CollectionAllTabsRestored) metrics.track(Event.CollectionAllTabsRestored)

View File

@ -3,5 +3,5 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
object AndroidComponents { object AndroidComponents {
const val VERSION = "38.0.20200326130056" const val VERSION = "38.0.20200326160141"
} }