1
0
Fork 0

For #3194 - Pause media while undo snackbar appears

master
ekager 2020-04-13 18:57:16 -07:00 committed by Mihai Adrian
parent 9c56a8b387
commit 5b1cdbd8bf
1 changed files with 15 additions and 0 deletions

View File

@ -56,10 +56,12 @@ import mozilla.appservices.places.BookmarkRoot
import mozilla.components.browser.menu.view.MenuButton
import mozilla.components.browser.session.Session
import mozilla.components.browser.session.SessionManager
import mozilla.components.browser.state.state.MediaState.State.PLAYING
import mozilla.components.browser.state.store.BrowserStore
import mozilla.components.concept.sync.AccountObserver
import mozilla.components.concept.sync.AuthType
import mozilla.components.concept.sync.OAuthAccount
import mozilla.components.feature.media.ext.pauseIfPlaying
import mozilla.components.feature.tab.collections.TabCollection
import mozilla.components.feature.top.sites.TopSite
import mozilla.components.lib.state.ext.flowScoped
@ -411,6 +413,11 @@ class HomeFragment : Fragment() {
private fun closeTab(sessionId: String) {
val deletionJob = pendingSessionDeletion?.deletionJob
context?.let {
if (sessionManager.findSessionById(sessionId)?.toTab(it)?.mediaState == PLAYING) {
it.components.core.store.state.media.pauseIfPlaying()
}
}
if (deletionJob == null) {
removeTabWithUndo(sessionId, browsingModeManager.mode.isPrivate)
@ -427,6 +434,14 @@ class HomeFragment : Fragment() {
private fun closeAllTabs(isPrivateMode: Boolean) {
val deletionJob = pendingSessionDeletion?.deletionJob
context?.let {
sessionManager.sessionsOfType(private = isPrivateMode).forEach { session ->
if (session.toTab(it).mediaState == PLAYING) {
it.components.core.store.state.media.pauseIfPlaying()
}
}
}
if (deletionJob == null) {
removeAllTabsWithUndo(
sessionManager.sessionsOfType(private = isPrivateMode),