For #3194 - Pause media while undo snackbar appears
parent
9c56a8b387
commit
5b1cdbd8bf
|
@ -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),
|
||||
|
|
Loading…
Reference in New Issue