mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-06-16 05:55:20 +00:00
56 lines
1.8 KiB
Swift
56 lines
1.8 KiB
Swift
import Foundation
|
|
import SwiftSignalKit
|
|
import Postbox
|
|
import TelegramCore
|
|
import TelegramPresentationData
|
|
import TelegramUIPreferences
|
|
import AnimationCache
|
|
import MultiAnimationRenderer
|
|
|
|
public protocol ShareControllerAccountContext: AnyObject {
|
|
var accountId: AccountRecordId { get }
|
|
var accountPeerId: EnginePeer.Id { get }
|
|
var stateManager: AccountStateManager { get }
|
|
var engineData: TelegramEngine.EngineData { get }
|
|
var animationCache: AnimationCache { get }
|
|
var animationRenderer: MultiAnimationRenderer { get }
|
|
var contentSettings: ContentSettings { get }
|
|
var appConfiguration: AppConfiguration { get }
|
|
|
|
func resolveInlineStickers(fileIds: [Int64]) -> Signal<[Int64: TelegramMediaFile], NoError>
|
|
}
|
|
|
|
public protocol ShareControllerEnvironment: AnyObject {
|
|
var presentationData: PresentationData { get }
|
|
var updatedPresentationData: Signal<PresentationData, NoError> { get }
|
|
var isMainApp: Bool { get }
|
|
var energyUsageSettings: EnergyUsageSettings { get }
|
|
|
|
var mediaManager: MediaManager? { get }
|
|
|
|
func setAccountUserInterfaceInUse(id: AccountRecordId) -> Disposable
|
|
func donateSendMessageIntent(account: ShareControllerAccountContext, peerIds: [EnginePeer.Id])
|
|
}
|
|
|
|
public enum ShareControllerExternalStatus {
|
|
case preparing(Bool)
|
|
case progress(Float)
|
|
case done
|
|
}
|
|
|
|
public enum ShareControllerError {
|
|
case generic
|
|
case fileTooBig(Int64)
|
|
}
|
|
|
|
public enum ShareControllerSubject {
|
|
case url(String)
|
|
case text(String)
|
|
case quote(text: String, url: String)
|
|
case messages([Message])
|
|
case image([ImageRepresentationWithReference])
|
|
case media(AnyMediaReference)
|
|
case mapMedia(TelegramMediaMap)
|
|
case fromExternal(([PeerId], [PeerId: Int64], String, ShareControllerAccountContext, Bool) -> Signal<ShareControllerExternalStatus, ShareControllerError>)
|
|
}
|