Files
GLEGram-iOS/submodules/AccountContext/Sources/OverlayMediaManager.swift
T
Leeksov 4647310322 GLEGram 12.5 — Initial public release
Based on Swiftgram 12.5 (Telegram iOS 12.5).
All GLEGram features ported and organized in GLEGram/ folder.

Features: Ghost Mode, Saved Deleted Messages, Content Protection Bypass,
Font Replacement, Fake Profile, Chat Export, Plugin System, and more.

See CHANGELOG_12.5.md for full details.
2026-04-06 09:48:12 +03:00

58 lines
1.9 KiB
Swift

import Foundation
import UIKit
import Display
import AVFoundation
import AsyncDisplayKit
public final class OverlayMediaControllerEmbeddingItem {
public let position: CGPoint
public let itemNode: OverlayMediaItemNode
public init(
position: CGPoint,
itemNode: OverlayMediaItemNode
) {
self.position = position
self.itemNode = itemNode
}
}
public protocol PictureInPictureContent: AnyObject {
var videoNode: ASDisplayNode { get }
}
public protocol OverlayMediaController: AnyObject {
var updatePossibleEmbeddingItem: ((OverlayMediaControllerEmbeddingItem?) -> Void)? { get set }
var embedPossibleEmbeddingItem: ((OverlayMediaControllerEmbeddingItem) -> Bool)? { get set }
var hasNodes: Bool { get }
func addNode(_ node: OverlayMediaItemNode, customTransition: Bool)
func removeNode(_ node: OverlayMediaItemNode, customTransition: Bool)
func setPictureInPictureContent(content: PictureInPictureContent, absoluteRect: CGRect)
func setPictureInPictureContentHidden(content: PictureInPictureContent, isHidden value: Bool)
func removePictureInPictureContent(content: PictureInPictureContent)
}
public final class OverlayMediaManager {
public var controller: (OverlayMediaController & ViewController)?
public var updatePossibleEmbeddingItem: ((OverlayMediaControllerEmbeddingItem?) -> Void)?
public var embedPossibleEmbeddingItem: ((OverlayMediaControllerEmbeddingItem) -> Bool)?
public init() {
}
public func attachOverlayMediaController(_ controller: OverlayMediaController & ViewController) {
self.controller = controller
controller.updatePossibleEmbeddingItem = { [weak self] item in
self?.updatePossibleEmbeddingItem?(item)
}
controller.embedPossibleEmbeddingItem = { [weak self] item in
return self?.embedPossibleEmbeddingItem?(item) ?? false
}
}
}