Don't show video in background

This commit is contained in:
Ali
2022-02-27 04:17:47 +04:00
parent 39ebfb356e
commit 9c7dc185fe
2 changed files with 45 additions and 3 deletions

View File

@@ -493,6 +493,9 @@ public final class MediaStreamComponent: CombinedComponent {
let isPictureInPictureSupported: Bool
private(set) var isVisibleInHierarchy: Bool = false
private var isVisibleInHierarchyDisposable: Disposable?
private var scheduledDismissUITimer: SwiftSignalKit.Timer?
init(call: PresentationGroupCallImpl) {
@@ -543,11 +546,23 @@ public final class MediaStreamComponent: CombinedComponent {
})
let _ = call.accountContext.engine.calls.getGroupCallStreamCredentials(peerId: call.peerId, revokePreviousCredentials: false).start()
self.isVisibleInHierarchyDisposable = (call.accountContext.sharedContext.applicationBindings.applicationInForeground
|> deliverOnMainQueue).start(next: { [weak self] inForeground in
guard let strongSelf = self else {
return
}
if strongSelf.isVisibleInHierarchy != inForeground {
strongSelf.isVisibleInHierarchy = inForeground
strongSelf.updated(transition: .immediate)
}
})
}
deinit {
self.stateDisposable?.dispose()
self.infoDisposable?.dispose()
self.isVisibleInHierarchyDisposable?.dispose()
}
func toggleDisplayUI() {
@@ -617,6 +632,7 @@ public final class MediaStreamComponent: CombinedComponent {
component: MediaStreamVideoComponent(
call: context.component.call,
hasVideo: context.state.hasVideo,
isVisible: environment.isVisible && context.state.isVisibleInHierarchy,
activatePictureInPicture: activatePictureInPicture,
bringBackControllerForPictureInPictureDeactivation: { [weak call] completed in
guard let call = call else {