mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-06-15 21:45:19 +00:00
Module refactoring
This commit is contained in:
parent
819583121e
commit
08fe209b9f
@ -1,6 +1,4 @@
|
||||
#ifndef Share_Bridging_Header_h
|
||||
#define Share_Bridging_Header_h
|
||||
|
||||
#import "../Telegram-iOS/BuildConfig.h"
|
||||
|
||||
#endif
|
||||
|
@ -1,297 +1,58 @@
|
||||
import UIKit
|
||||
import UserNotifications
|
||||
import UserNotificationsUI
|
||||
import Display
|
||||
import TelegramCore
|
||||
import TelegramUI
|
||||
import SwiftSignalKit
|
||||
import Postbox
|
||||
|
||||
private enum NotificationContentAuthorizationError {
|
||||
case unauthorized
|
||||
}
|
||||
|
||||
private var sharedAccountContext: SharedAccountContext?
|
||||
|
||||
private var installedSharedLogger = false
|
||||
|
||||
private func setupSharedLogger(_ path: String) {
|
||||
if !installedSharedLogger {
|
||||
installedSharedLogger = true
|
||||
Logger.setSharedLogger(Logger(basePath: path))
|
||||
}
|
||||
}
|
||||
|
||||
private func parseFileLocationResource(_ dict: [AnyHashable: Any]) -> TelegramMediaResource? {
|
||||
guard let datacenterId = dict["datacenterId"] as? Int32 else {
|
||||
return nil
|
||||
}
|
||||
guard let volumeId = dict["volumeId"] as? Int64 else {
|
||||
return nil
|
||||
}
|
||||
guard let localId = dict["localId"] as? Int32 else {
|
||||
return nil
|
||||
}
|
||||
guard let secret = dict["secret"] as? Int64 else {
|
||||
return nil
|
||||
}
|
||||
var fileReference: Data?
|
||||
if let fileReferenceString = dict["fileReference"] as? String {
|
||||
fileReference = dataWithHexString(fileReferenceString)
|
||||
}
|
||||
return CloudFileMediaResource(datacenterId: Int(datacenterId), volumeId: volumeId, localId: localId, secret: secret, size: nil, fileReference: fileReference)
|
||||
}
|
||||
import BuildConfig
|
||||
|
||||
@objc(NotificationViewController)
|
||||
class NotificationViewController: UIViewController, UNNotificationContentExtension {
|
||||
private let imageNode = TransformImageNode()
|
||||
private var imageInfo: (isSticker: Bool, dimensions: CGSize)?
|
||||
|
||||
private let applyDisposable = MetaDisposable()
|
||||
private let fetchedDisposable = MetaDisposable()
|
||||
|
||||
private var accountsPath: String?
|
||||
|
||||
deinit {
|
||||
self.applyDisposable.dispose()
|
||||
self.fetchedDisposable.dispose()
|
||||
}
|
||||
private var impl: NotificationViewControllerImpl?
|
||||
|
||||
override func viewDidLoad() {
|
||||
super.viewDidLoad()
|
||||
|
||||
self.view.addSubnode(self.imageNode)
|
||||
|
||||
let appBundleIdentifier = Bundle.main.bundleIdentifier!
|
||||
guard let lastDotRange = appBundleIdentifier.range(of: ".", options: [.backwards]) else {
|
||||
return
|
||||
}
|
||||
|
||||
let baseAppBundleId = String(appBundleIdentifier[..<lastDotRange.lowerBound])
|
||||
|
||||
let buildConfig = BuildConfig(baseAppBundleId: baseAppBundleId)
|
||||
|
||||
let apiId: Int32 = buildConfig.apiId
|
||||
let languagesCategory = "ios"
|
||||
|
||||
let appGroupName = "group.\(baseAppBundleId)"
|
||||
let maybeAppGroupUrl = FileManager.default.containerURL(forSecurityApplicationGroupIdentifier: appGroupName)
|
||||
|
||||
guard let appGroupUrl = maybeAppGroupUrl else {
|
||||
return
|
||||
}
|
||||
|
||||
let rootPath = rootPathForBasePath(appGroupUrl.path)
|
||||
performAppGroupUpgrades(appGroupPath: appGroupUrl.path, rootPath: rootPath)
|
||||
|
||||
TempBox.initializeShared(basePath: rootPath, processType: "notification-content", launchSpecificId: arc4random64())
|
||||
|
||||
let logsPath = rootPath + "/notificationcontent-logs"
|
||||
let _ = try? FileManager.default.createDirectory(atPath: logsPath, withIntermediateDirectories: true, attributes: nil)
|
||||
|
||||
setupSharedLogger(logsPath)
|
||||
|
||||
accountsPath = rootPath
|
||||
|
||||
if sharedAccountContext == nil {
|
||||
initializeAccountManagement()
|
||||
let accountManager = AccountManager(basePath: rootPath + "/accounts-metadata")
|
||||
|
||||
var initialPresentationDataAndSettings: InitialPresentationDataAndSettings?
|
||||
let semaphore = DispatchSemaphore(value: 0)
|
||||
let _ = currentPresentationDataAndSettings(accountManager: accountManager).start(next: { value in
|
||||
initialPresentationDataAndSettings = value
|
||||
semaphore.signal()
|
||||
})
|
||||
semaphore.wait()
|
||||
|
||||
let applicationBindings = TelegramApplicationBindings(isMainApp: false, containerPath: appGroupUrl.path, appSpecificScheme: buildConfig.appSpecificUrlScheme, openUrl: { _ in
|
||||
}, openUniversalUrl: { _, completion in
|
||||
completion.completion(false)
|
||||
if self.impl == nil {
|
||||
let appBundleIdentifier = Bundle.main.bundleIdentifier!
|
||||
guard let lastDotRange = appBundleIdentifier.range(of: ".", options: [.backwards]) else {
|
||||
return
|
||||
}, canOpenUrl: { _ in
|
||||
return false
|
||||
}, getTopWindow: {
|
||||
return nil
|
||||
}, displayNotification: { _ in
|
||||
|
||||
}, applicationInForeground: .single(false), applicationIsActive: .single(false), clearMessageNotifications: { _ in
|
||||
}, pushIdleTimerExtension: {
|
||||
return EmptyDisposable
|
||||
}, openSettings: {}, openAppStorePage: {}, registerForNotifications: { _ in }, requestSiriAuthorization: { _ in }, siriAuthorization: { return .notDetermined }, getWindowHost: {
|
||||
return nil
|
||||
}, presentNativeController: { _ in
|
||||
}, dismissNativeController: {
|
||||
}, getAvailableAlternateIcons: {
|
||||
return []
|
||||
}, getAlternateIconName: {
|
||||
return nil
|
||||
}, requestSetAlternateIconName: { _, f in
|
||||
f(false)
|
||||
})
|
||||
}
|
||||
|
||||
let baseAppBundleId = String(appBundleIdentifier[..<lastDotRange.lowerBound])
|
||||
|
||||
let buildConfig = BuildConfig(baseAppBundleId: baseAppBundleId)
|
||||
|
||||
let apiId: Int32 = buildConfig.apiId
|
||||
let languagesCategory = "ios"
|
||||
|
||||
let appGroupName = "group.\(baseAppBundleId)"
|
||||
let maybeAppGroupUrl = FileManager.default.containerURL(forSecurityApplicationGroupIdentifier: appGroupName)
|
||||
|
||||
guard let appGroupUrl = maybeAppGroupUrl else {
|
||||
return
|
||||
}
|
||||
|
||||
let rootPath = appGroupUrl.path + "/telegram-data"
|
||||
|
||||
let deviceSpecificEncryptionParameters = BuildConfig.deviceSpecificEncryptionParameters(rootPath, baseAppBundleId: baseAppBundleId)
|
||||
let encryptionParameters: (Data, Data) = (deviceSpecificEncryptionParameters.key, deviceSpecificEncryptionParameters.salt)
|
||||
|
||||
let appVersion = (Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String) ?? "unknown"
|
||||
|
||||
let deviceSpecificEncryptionParameters = BuildConfig.deviceSpecificEncryptionParameters(rootPath, baseAppBundleId: baseAppBundleId)
|
||||
let encryptionParameters = ValueBoxEncryptionParameters(forceEncryptionIfNoSet: false, key: ValueBoxEncryptionParameters.Key(data: deviceSpecificEncryptionParameters.key)!, salt: ValueBoxEncryptionParameters.Salt(data: deviceSpecificEncryptionParameters.salt)!)
|
||||
|
||||
sharedAccountContext = SharedAccountContext(mainWindow: nil, basePath: rootPath, encryptionParameters: encryptionParameters, accountManager: accountManager, applicationBindings: applicationBindings, initialPresentationDataAndSettings: initialPresentationDataAndSettings!, networkArguments: NetworkInitializationArguments(apiId: apiId, languagesCategory: languagesCategory, appVersion: appVersion, voipMaxLayer: 0, appData: buildConfig.bundleData), rootPath: rootPath, legacyBasePath: nil, legacyCache: nil, apsNotificationToken: .never(), voipNotificationToken: .never(), setNotificationCall: { _ in }, navigateToChat: { _, _, _ in })
|
||||
self.impl = NotificationViewControllerImpl(initializationData: NotificationViewControllerInitializationData(appGroupPath: appGroupUrl.path, apiId: buildConfig.apiId, languagesCategory: languagesCategory, encryptionParameters: encryptionParameters, appVersion: appVersion, bundleData: buildConfig.bundleData), setPreferredContentSize: { [weak self] size in
|
||||
self?.preferredContentSize = size
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
override func viewWillDisappear(_ animated: Bool) {
|
||||
super.viewWillDisappear(animated)
|
||||
|
||||
self.impl?.viewDidLoad(view: self.view)
|
||||
}
|
||||
|
||||
func didReceive(_ notification: UNNotification) {
|
||||
guard let accountsPath = self.accountsPath else {
|
||||
return
|
||||
}
|
||||
|
||||
if let accountIdValue = notification.request.content.userInfo["accountId"] as? Int64, let peerIdValue = notification.request.content.userInfo["peerId"] as? Int64, let messageIdNamespace = notification.request.content.userInfo["messageId.namespace"] as? Int32, let messageIdId = notification.request.content.userInfo["messageId.id"] as? Int32, let mediaDataString = notification.request.content.userInfo["media"] as? String, let mediaData = Data(base64Encoded: mediaDataString), let media = parseMediaData(data: mediaData) {
|
||||
let messageId = MessageId(peerId: PeerId(peerIdValue), namespace: messageIdNamespace, id: messageIdId)
|
||||
|
||||
if let image = media as? TelegramMediaImage, let thumbnailRepresentation = imageRepresentationLargerThan(image.representations, size: CGSize(width: 120.0, height: 120.0)), let largestRepresentation = largestImageRepresentation(image.representations) {
|
||||
let dimensions = largestRepresentation.dimensions
|
||||
let fittedSize = dimensions.fitted(CGSize(width: self.view.bounds.width, height: 1000.0))
|
||||
self.view.frame = CGRect(origin: self.view.frame.origin, size: fittedSize)
|
||||
self.preferredContentSize = fittedSize
|
||||
|
||||
self.imageInfo = (false, dimensions)
|
||||
self.updateImageLayout(boundingSize: self.view.bounds.size)
|
||||
|
||||
let mediaBoxPath = accountsPath + "/" + accountRecordIdPathName(AccountRecordId(rawValue: accountIdValue)) + "/postbox/media"
|
||||
|
||||
if let data = try? Data(contentsOf: URL(fileURLWithPath: mediaBoxPath + "/\(largestRepresentation.resource.id.uniqueId)"), options: .mappedRead) {
|
||||
self.imageNode.setSignal(chatMessagePhotoInternal(photoData: .single((nil, data, true)))
|
||||
|> map { $0.1 })
|
||||
return
|
||||
}
|
||||
|
||||
if let data = try? Data(contentsOf: URL(fileURLWithPath: mediaBoxPath + "/\(thumbnailRepresentation.resource.id.uniqueId)"), options: .mappedRead) {
|
||||
self.imageNode.setSignal(chatMessagePhotoInternal(photoData: .single((data, nil, false)))
|
||||
|> map { $0.1 })
|
||||
}
|
||||
|
||||
guard let sharedAccountContext = sharedAccountContext else {
|
||||
return
|
||||
}
|
||||
|
||||
self.applyDisposable.set((sharedAccountContext.activeAccounts
|
||||
|> map { _, accounts, _ -> Account? in
|
||||
return accounts.first(where: { $0.0 == AccountRecordId(rawValue: accountIdValue) })?.1
|
||||
}
|
||||
|> filter { account in
|
||||
return account != nil
|
||||
}
|
||||
|> take(1)
|
||||
|> mapToSignal { account -> Signal<(Account, ImageMediaReference?), NoError> in
|
||||
guard let account = account else {
|
||||
return .complete()
|
||||
}
|
||||
return account.postbox.messageAtId(messageId)
|
||||
|> take(1)
|
||||
|> map { message in
|
||||
var imageReference: ImageMediaReference?
|
||||
if let message = message {
|
||||
for media in message.media {
|
||||
if let image = media as? TelegramMediaImage {
|
||||
imageReference = .message(message: MessageReference(message), media: image)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
imageReference = .standalone(media: image)
|
||||
}
|
||||
return (account, imageReference)
|
||||
}
|
||||
}
|
||||
|> deliverOnMainQueue).start(next: { [weak self] accountAndImage in
|
||||
guard let strongSelf = self else {
|
||||
return
|
||||
}
|
||||
if let imageReference = accountAndImage.1 {
|
||||
strongSelf.imageNode.setSignal(chatMessagePhoto(postbox: accountAndImage.0.postbox, photoReference: imageReference))
|
||||
|
||||
accountAndImage.0.network.shouldExplicitelyKeepWorkerConnections.set(.single(true))
|
||||
strongSelf.fetchedDisposable.set(standaloneChatMessagePhotoInteractiveFetched(account: accountAndImage.0, photoReference: imageReference).start())
|
||||
}
|
||||
}))
|
||||
} else if let file = media as? TelegramMediaFile, let dimensions = file.dimensions {
|
||||
guard let sharedAccountContext = sharedAccountContext else {
|
||||
return
|
||||
}
|
||||
|
||||
let fittedSize = dimensions.fitted(CGSize(width: min(256.0, self.view.bounds.width), height: 256.0))
|
||||
self.view.frame = CGRect(origin: self.view.frame.origin, size: fittedSize)
|
||||
self.preferredContentSize = fittedSize
|
||||
|
||||
self.imageInfo = (true, dimensions)
|
||||
self.updateImageLayout(boundingSize: self.view.bounds.size)
|
||||
|
||||
self.applyDisposable.set((sharedAccountContext.activeAccounts
|
||||
|> map { _, accounts, _ -> Account? in
|
||||
return accounts.first(where: { $0.0 == AccountRecordId(rawValue: accountIdValue) })?.1
|
||||
}
|
||||
|> filter { account in
|
||||
return account != nil
|
||||
}
|
||||
|> take(1)
|
||||
|> mapToSignal { account -> Signal<(Account, FileMediaReference?), NoError> in
|
||||
guard let account = account else {
|
||||
return .complete()
|
||||
}
|
||||
return account.postbox.messageAtId(messageId)
|
||||
|> take(1)
|
||||
|> map { message in
|
||||
var fileReference: FileMediaReference?
|
||||
if let message = message {
|
||||
for media in message.media {
|
||||
if let file = media as? TelegramMediaFile {
|
||||
fileReference = .message(message: MessageReference(message), media: file)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
fileReference = .standalone(media: file)
|
||||
}
|
||||
return (account, fileReference)
|
||||
}
|
||||
}
|
||||
|> deliverOnMainQueue).start(next: { [weak self] accountAndImage in
|
||||
guard let strongSelf = self else {
|
||||
return
|
||||
}
|
||||
if let fileReference = accountAndImage.1 {
|
||||
if file.isSticker {
|
||||
strongSelf.imageNode.setSignal(chatMessageSticker(account: accountAndImage.0, file: file, small: false))
|
||||
|
||||
accountAndImage.0.network.shouldExplicitelyKeepWorkerConnections.set(.single(true))
|
||||
strongSelf.fetchedDisposable.set(freeMediaFileInteractiveFetched(account: accountAndImage.0, fileReference: fileReference).start())
|
||||
}
|
||||
}
|
||||
}))
|
||||
}
|
||||
}
|
||||
self.impl?.didReceive(notification, view: self.view)
|
||||
}
|
||||
|
||||
override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
|
||||
super.viewWillTransition(to: size, with: coordinator)
|
||||
|
||||
self.updateImageLayout(boundingSize: size)
|
||||
}
|
||||
|
||||
private func updateImageLayout(boundingSize: CGSize) {
|
||||
if let (isSticker, dimensions) = self.imageInfo {
|
||||
let makeLayout = self.imageNode.asyncLayout()
|
||||
let fittedSize: CGSize
|
||||
if isSticker {
|
||||
fittedSize = dimensions.fitted(CGSize(width: min(256.0, boundingSize.width), height: 256.0))
|
||||
} else {
|
||||
fittedSize = dimensions.fitted(CGSize(width: boundingSize.width, height: 1000.0))
|
||||
}
|
||||
let apply = makeLayout(TransformImageArguments(corners: ImageCorners(radius: 0.0), imageSize: fittedSize, boundingSize: fittedSize, intrinsicInsets: UIEdgeInsets()))
|
||||
apply()
|
||||
let displaySize = isSticker ? fittedSize : boundingSize
|
||||
self.imageNode.frame = CGRect(origin: CGPoint(x: floor((boundingSize.width - displaySize.width) / 2.0), y: 0.0), size: displaySize)
|
||||
}
|
||||
self.impl?.viewWillTransition(to: size)
|
||||
}
|
||||
}
|
||||
|
@ -1,5 +1,6 @@
|
||||
import Foundation
|
||||
import CommonCrypto
|
||||
import LightweightAccountData
|
||||
|
||||
private func sha256Digest(_ data: Data) -> Data {
|
||||
let length = data.count
|
||||
|
@ -5,6 +5,9 @@ import MtProtoKit
|
||||
import MtProtoKitDynamic
|
||||
#endif
|
||||
|
||||
import BuildConfig
|
||||
import LightweightAccountData
|
||||
|
||||
struct ImageResource {
|
||||
let datacenterId: Int
|
||||
let volumeId: Int64
|
||||
|
@ -1,7 +1,6 @@
|
||||
#ifndef NotificationService_BridgingHeader_h
|
||||
#define NotificationService_BridgingHeader_h
|
||||
|
||||
#import "../Telegram-iOS/BuildConfig.h"
|
||||
#import "Crypto.h"
|
||||
|
||||
#endif
|
||||
|
@ -6,6 +6,8 @@ import MtProtoKit
|
||||
import MtProtoKitDynamic
|
||||
#endif
|
||||
import WebP
|
||||
import BuildConfig
|
||||
import LightweightAccountData
|
||||
|
||||
private var sharedLogger: Logger?
|
||||
|
||||
|
@ -1,10 +1,4 @@
|
||||
#ifndef Share_Bridging_Header_h
|
||||
#define Share_Bridging_Header_h
|
||||
|
||||
#import "TGContactModel.h"
|
||||
#import "TGItemProviderSignals.h"
|
||||
#import "TGShareLocationSignals.h"
|
||||
|
||||
#import "../Telegram-iOS/BuildConfig.h"
|
||||
|
||||
#endif
|
||||
|
@ -1,104 +1,15 @@
|
||||
import UIKit
|
||||
import Display
|
||||
import TelegramCore
|
||||
import TelegramUI
|
||||
import SwiftSignalKit
|
||||
import Postbox
|
||||
|
||||
private let inForeground = ValuePromise<Bool>(false, ignoreRepeated: true)
|
||||
|
||||
private final class SharedExtensionContext {
|
||||
let sharedContext: SharedAccountContext
|
||||
let wakeupManager: SharedWakeupManager
|
||||
|
||||
init(sharedContext: SharedAccountContext) {
|
||||
self.sharedContext = sharedContext
|
||||
self.wakeupManager = SharedWakeupManager(beginBackgroundTask: { _, _ in nil }, endBackgroundTask: { _ in }, backgroundTimeRemaining: { 0.0 }, activeAccounts: sharedContext.activeAccounts |> map { ($0.0, $0.1.map { ($0.0, $0.1) }) }, liveLocationPolling: .single(nil), watchTasks: .single(nil), inForeground: inForeground.get(), hasActiveAudioSession: .single(false), notificationManager: nil, mediaManager: sharedContext.mediaManager, callManager: sharedContext.callManager, accountUserInterfaceInUse: { id in
|
||||
return sharedContext.accountUserInterfaceInUse(id)
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
private var globalSharedExtensionContext: SharedExtensionContext?
|
||||
|
||||
private var installedSharedLogger = false
|
||||
|
||||
private func setupSharedLogger(_ path: String) {
|
||||
if !installedSharedLogger {
|
||||
installedSharedLogger = true
|
||||
Logger.setSharedLogger(Logger(basePath: path))
|
||||
}
|
||||
}
|
||||
|
||||
private enum ShareAuthorizationError {
|
||||
case unauthorized
|
||||
}
|
||||
import BuildConfig
|
||||
|
||||
@objc(ShareRootController)
|
||||
class ShareRootController: UIViewController {
|
||||
private var mainWindow: Window1?
|
||||
private var currentShareController: ShareController?
|
||||
private var currentPasscodeController: ViewController?
|
||||
|
||||
private var shouldBeMaster = Promise<Bool>()
|
||||
private let disposable = MetaDisposable()
|
||||
private var observer1: AnyObject?
|
||||
private var observer2: AnyObject?
|
||||
|
||||
deinit {
|
||||
self.disposable.dispose()
|
||||
self.shouldBeMaster.set(.single(false))
|
||||
if let observer = self.observer1 {
|
||||
NotificationCenter.default.removeObserver(observer)
|
||||
}
|
||||
if let observer = self.observer2 {
|
||||
NotificationCenter.default.removeObserver(observer)
|
||||
}
|
||||
}
|
||||
private var impl: ShareRootControllerImpl?
|
||||
|
||||
override func loadView() {
|
||||
telegramUIDeclareEncodables()
|
||||
|
||||
super.loadView()
|
||||
|
||||
self.view.backgroundColor = nil
|
||||
self.view.isOpaque = false
|
||||
|
||||
if #available(iOSApplicationExtension 8.2, *) {
|
||||
self.observer1 = NotificationCenter.default.addObserver(forName: NSNotification.Name.NSExtensionHostDidBecomeActive, object: nil, queue: nil, using: { _ in
|
||||
inForeground.set(true)
|
||||
})
|
||||
|
||||
self.observer2 = NotificationCenter.default.addObserver(forName: NSNotification.Name.NSExtensionHostWillResignActive, object: nil, queue: nil, using: { _ in
|
||||
inForeground.set(false)
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
override func viewWillAppear(_ animated: Bool) {
|
||||
super.viewWillAppear(animated)
|
||||
inForeground.set(true)
|
||||
}
|
||||
|
||||
override func viewWillDisappear(_ animated: Bool) {
|
||||
super.viewWillDisappear(animated)
|
||||
|
||||
self.disposable.dispose()
|
||||
inForeground.set(false)
|
||||
}
|
||||
|
||||
override func viewDidLayoutSubviews() {
|
||||
super.viewDidLayoutSubviews()
|
||||
|
||||
if self.mainWindow == nil {
|
||||
let mainWindow = Window1(hostView: childWindowHostView(parent: self.view), statusBarHost: nil)
|
||||
mainWindow.hostView.eventView.backgroundColor = UIColor.clear
|
||||
mainWindow.hostView.eventView.isHidden = false
|
||||
self.mainWindow = mainWindow
|
||||
|
||||
self.view.addSubview(mainWindow.hostView.containerView)
|
||||
mainWindow.hostView.containerView.frame = self.view.bounds
|
||||
|
||||
if self.impl == nil {
|
||||
let appBundleIdentifier = Bundle.main.bundleIdentifier!
|
||||
guard let lastDotRange = appBundleIdentifier.range(of: ".", options: [.backwards]) else {
|
||||
return
|
||||
@ -118,234 +29,33 @@ class ShareRootController: UIViewController {
|
||||
return
|
||||
}
|
||||
|
||||
let rootPath = rootPathForBasePath(appGroupUrl.path)
|
||||
performAppGroupUpgrades(appGroupPath: appGroupUrl.path, rootPath: rootPath)
|
||||
let rootPath = appGroupUrl.path + "/telegram-data"
|
||||
|
||||
TempBox.initializeShared(basePath: rootPath, processType: "share", launchSpecificId: arc4random64())
|
||||
let deviceSpecificEncryptionParameters = BuildConfig.deviceSpecificEncryptionParameters(rootPath, baseAppBundleId: baseAppBundleId)
|
||||
let encryptionParameters: (Data, Data) = (deviceSpecificEncryptionParameters.key, deviceSpecificEncryptionParameters.salt)
|
||||
|
||||
let logsPath = rootPath + "/share-logs"
|
||||
let _ = try? FileManager.default.createDirectory(atPath: logsPath, withIntermediateDirectories: true, attributes: nil)
|
||||
let appVersion = (Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String) ?? "unknown"
|
||||
|
||||
setupSharedLogger(logsPath)
|
||||
|
||||
let applicationBindings = TelegramApplicationBindings(isMainApp: false, containerPath: appGroupUrl.path, appSpecificScheme: buildConfig.appSpecificUrlScheme, openUrl: { _ in
|
||||
}, openUniversalUrl: { _, completion in
|
||||
completion.completion(false)
|
||||
return
|
||||
}, canOpenUrl: { _ in
|
||||
return false
|
||||
}, getTopWindow: {
|
||||
return nil
|
||||
}, displayNotification: { _ in
|
||||
|
||||
}, applicationInForeground: .single(false), applicationIsActive: .single(false), clearMessageNotifications: { _ in
|
||||
}, pushIdleTimerExtension: {
|
||||
return EmptyDisposable
|
||||
}, openSettings: {}, openAppStorePage: {}, registerForNotifications: { _ in }, requestSiriAuthorization: { _ in }, siriAuthorization: { return .notDetermined }, getWindowHost: {
|
||||
return nil
|
||||
}, presentNativeController: { _ in
|
||||
}, dismissNativeController: {
|
||||
}, getAvailableAlternateIcons: {
|
||||
return []
|
||||
}, getAlternateIconName: {
|
||||
return nil
|
||||
}, requestSetAlternateIconName: { _, f in
|
||||
f(false)
|
||||
self.impl = ShareRootControllerImpl(initializationData: ShareRootControllerInitializationData(appGroupPath: appGroupUrl.path, apiId: buildConfig.apiId, languagesCategory: languagesCategory, encryptionParameters: encryptionParameters, appVersion: appVersion, bundleData: buildConfig.bundleData), getExtensionContext: { [weak self] in
|
||||
return self?.extensionContext
|
||||
})
|
||||
|
||||
let sharedExtensionContext: SharedExtensionContext
|
||||
|
||||
if let globalSharedExtensionContext = globalSharedExtensionContext {
|
||||
sharedExtensionContext = globalSharedExtensionContext
|
||||
} else {
|
||||
let appVersion = (Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String) ?? "unknown"
|
||||
|
||||
initializeAccountManagement()
|
||||
let accountManager = AccountManager(basePath: rootPath + "/accounts-metadata")
|
||||
var initialPresentationDataAndSettings: InitialPresentationDataAndSettings?
|
||||
let semaphore = DispatchSemaphore(value: 0)
|
||||
let _ = currentPresentationDataAndSettings(accountManager: accountManager).start(next: { value in
|
||||
initialPresentationDataAndSettings = value
|
||||
semaphore.signal()
|
||||
})
|
||||
semaphore.wait()
|
||||
|
||||
let deviceSpecificEncryptionParameters = BuildConfig.deviceSpecificEncryptionParameters(rootPath, baseAppBundleId: baseAppBundleId)
|
||||
let encryptionParameters = ValueBoxEncryptionParameters(forceEncryptionIfNoSet: false, key: ValueBoxEncryptionParameters.Key(data: deviceSpecificEncryptionParameters.key)!, salt: ValueBoxEncryptionParameters.Salt(data: deviceSpecificEncryptionParameters.salt)!)
|
||||
|
||||
let sharedContext = SharedAccountContext(mainWindow: nil, basePath: rootPath, encryptionParameters: encryptionParameters, accountManager: accountManager, applicationBindings: applicationBindings, initialPresentationDataAndSettings: initialPresentationDataAndSettings!, networkArguments: NetworkInitializationArguments(apiId: apiId, languagesCategory: languagesCategory, appVersion: appVersion, voipMaxLayer: 0, appData: buildConfig.bundleData), rootPath: rootPath, legacyBasePath: nil, legacyCache: nil, apsNotificationToken: .never(), voipNotificationToken: .never(), setNotificationCall: { _ in }, navigateToChat: { _, _, _ in })
|
||||
sharedExtensionContext = SharedExtensionContext(sharedContext: sharedContext)
|
||||
globalSharedExtensionContext = sharedExtensionContext
|
||||
}
|
||||
|
||||
let account: Signal<(SharedAccountContext, Account, [AccountWithInfo]), ShareAuthorizationError> = sharedExtensionContext.sharedContext.accountManager.transaction { transaction -> (SharedAccountContext, LoggingSettings) in
|
||||
return (sharedExtensionContext.sharedContext, transaction.getSharedData(SharedDataKeys.loggingSettings) as? LoggingSettings ?? LoggingSettings.defaultSettings)
|
||||
}
|
||||
|> introduceError(ShareAuthorizationError.self)
|
||||
|> mapToSignal { sharedContext, loggingSettings -> Signal<(SharedAccountContext, Account, [AccountWithInfo]), ShareAuthorizationError> in
|
||||
Logger.shared.logToFile = loggingSettings.logToFile
|
||||
Logger.shared.logToConsole = loggingSettings.logToConsole
|
||||
|
||||
Logger.shared.redactSensitiveData = loggingSettings.redactSensitiveData
|
||||
|
||||
return sharedContext.activeAccountsWithInfo
|
||||
|> introduceError(ShareAuthorizationError.self)
|
||||
|> take(1)
|
||||
|> mapToSignal { primary, accounts -> Signal<(SharedAccountContext, Account, [AccountWithInfo]), ShareAuthorizationError> in
|
||||
guard let primary = primary else {
|
||||
return .fail(.unauthorized)
|
||||
}
|
||||
guard let info = accounts.first(where: { $0.account.id == primary }) else {
|
||||
return .fail(.unauthorized)
|
||||
}
|
||||
return .single((sharedContext, info.account, Array(accounts)))
|
||||
}
|
||||
}
|
||||
|> take(1)
|
||||
|
||||
let applicationInterface = account
|
||||
|> mapToSignal { sharedContext, account, otherAccounts -> Signal<(AccountContext, PostboxAccessChallengeData, [AccountWithInfo]), ShareAuthorizationError> in
|
||||
let limitsConfiguration = account.postbox.transaction { transaction -> LimitsConfiguration in
|
||||
return transaction.getPreferencesEntry(key: PreferencesKeys.limitsConfiguration) as? LimitsConfiguration ?? LimitsConfiguration.defaultValue
|
||||
}
|
||||
return combineLatest(sharedContext.accountManager.sharedData(keys: [ApplicationSpecificSharedDataKeys.presentationPasscodeSettings]), limitsConfiguration, sharedContext.accountManager.accessChallengeData())
|
||||
|> take(1)
|
||||
|> deliverOnMainQueue
|
||||
|> introduceError(ShareAuthorizationError.self)
|
||||
|> map { sharedData, limitsConfiguration, data -> (AccountContext, PostboxAccessChallengeData, [AccountWithInfo]) in
|
||||
updateLegacyLocalization(strings: sharedContext.currentPresentationData.with({ $0 }).strings)
|
||||
let context = AccountContext(sharedContext: sharedContext, account: account, limitsConfiguration: limitsConfiguration)
|
||||
return (context, data.data, otherAccounts)
|
||||
}
|
||||
}
|
||||
|> deliverOnMainQueue
|
||||
|> afterNext { [weak self] context, accessChallengeData, otherAccounts in
|
||||
setupLegacyComponents(context: context)
|
||||
initializeLegacyComponents(application: nil, currentSizeClassGetter: { return .compact }, currentHorizontalClassGetter: { return .compact }, documentsPath: "", currentApplicationBounds: { return CGRect() }, canOpenUrl: { _ in return false}, openUrl: { _ in })
|
||||
|
||||
let displayShare: () -> Void = {
|
||||
var cancelImpl: (() -> Void)?
|
||||
|
||||
let requestUserInteraction: ([UnpreparedShareItemContent]) -> Signal<[PreparedShareItemContent], NoError> = { content in
|
||||
return Signal { [weak self] subscriber in
|
||||
switch content[0] {
|
||||
case let .contact(data):
|
||||
let controller = deviceContactInfoController(context: context, subject: .filter(peer: nil, contactId: nil, contactData: data, completion: { peer, contactData in
|
||||
let phone = contactData.basicData.phoneNumbers[0].value
|
||||
if let vCardData = contactData.serializedVCard() {
|
||||
subscriber.putNext([.media(.media(.standalone(media: TelegramMediaContact(firstName: contactData.basicData.firstName, lastName: contactData.basicData.lastName, phoneNumber: phone, peerId: nil, vCardData: vCardData))))])
|
||||
}
|
||||
subscriber.putCompletion()
|
||||
}), cancelled: {
|
||||
cancelImpl?()
|
||||
})
|
||||
|
||||
if let strongSelf = self, let window = strongSelf.mainWindow {
|
||||
controller.presentationArguments = ViewControllerPresentationArguments(presentationAnimation: .modalSheet)
|
||||
window.present(controller, on: .root)
|
||||
}
|
||||
break
|
||||
}
|
||||
|
||||
return ActionDisposable {
|
||||
}
|
||||
} |> runOn(Queue.mainQueue())
|
||||
}
|
||||
|
||||
let sentItems: ([PeerId], [PreparedShareItemContent], Account) -> Signal<ShareControllerExternalStatus, NoError> = { peerIds, contents, account in
|
||||
let sentItems = sentShareItems(account: account, to: peerIds, items: contents)
|
||||
|> `catch` { _ -> Signal<
|
||||
Float, NoError> in
|
||||
return .complete()
|
||||
}
|
||||
return sentItems
|
||||
|> map { value -> ShareControllerExternalStatus in
|
||||
return .progress(value)
|
||||
}
|
||||
|> then(.single(.done))
|
||||
}
|
||||
|
||||
let shareController = ShareController(context: context, subject: .fromExternal({ peerIds, additionalText, account in
|
||||
if let strongSelf = self, let inputItems = strongSelf.extensionContext?.inputItems, !inputItems.isEmpty, !peerIds.isEmpty {
|
||||
let rawSignals = TGItemProviderSignals.itemSignals(forInputItems: inputItems)!
|
||||
return preparedShareItems(account: account, to: peerIds[0], dataItems: rawSignals, additionalText: additionalText)
|
||||
|> map(Optional.init)
|
||||
|> `catch` { _ -> Signal<PreparedShareItems?, NoError> in
|
||||
return .single(nil)
|
||||
}
|
||||
|> mapToSignal { state -> Signal<ShareControllerExternalStatus, NoError> in
|
||||
guard let state = state else {
|
||||
return .single(.done)
|
||||
}
|
||||
switch state {
|
||||
case .preparing:
|
||||
return .single(.preparing)
|
||||
case let .progress(value):
|
||||
return .single(.progress(value))
|
||||
case let .userInteractionRequired(value):
|
||||
return requestUserInteraction(value)
|
||||
|> mapToSignal { contents -> Signal<ShareControllerExternalStatus, NoError> in
|
||||
return sentItems(peerIds, contents, account)
|
||||
}
|
||||
case let .done(contents):
|
||||
return sentItems(peerIds, contents, account)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
return .single(.done)
|
||||
}
|
||||
}), externalShare: false, switchableAccounts: otherAccounts)
|
||||
shareController.presentationArguments = ViewControllerPresentationArguments(presentationAnimation: .modalSheet)
|
||||
shareController.dismissed = { _ in
|
||||
self?.extensionContext?.completeRequest(returningItems: nil, completionHandler: nil)
|
||||
}
|
||||
|
||||
cancelImpl = { [weak shareController] in
|
||||
shareController?.dismiss()
|
||||
}
|
||||
|
||||
if let strongSelf = self {
|
||||
if let currentShareController = strongSelf.currentShareController {
|
||||
currentShareController.dismiss()
|
||||
}
|
||||
strongSelf.currentShareController = shareController
|
||||
strongSelf.mainWindow?.present(shareController, on: .root)
|
||||
}
|
||||
|
||||
context.account.resetStateManagement()
|
||||
}
|
||||
|
||||
let _ = passcodeEntryController(context: context, animateIn: true, completion: { value in
|
||||
if value {
|
||||
displayShare()
|
||||
} else {
|
||||
Queue.mainQueue().after(0.5, {
|
||||
self?.extensionContext?.completeRequest(returningItems: nil, completionHandler: nil)
|
||||
})
|
||||
}
|
||||
}).start(next: { controller in
|
||||
guard let strongSelf = self, let controller = controller else {
|
||||
return
|
||||
}
|
||||
|
||||
if let currentPasscodeController = strongSelf.currentPasscodeController {
|
||||
currentPasscodeController.dismiss()
|
||||
}
|
||||
strongSelf.currentPasscodeController = controller
|
||||
strongSelf.mainWindow?.present(controller, on: .root)
|
||||
})
|
||||
}
|
||||
|
||||
self.disposable.set(applicationInterface.start(next: { _, _, _ in }, error: { [weak self] error in
|
||||
guard let strongSelf = self else {
|
||||
return
|
||||
}
|
||||
let presentationData = sharedExtensionContext.sharedContext.currentPresentationData.with { $0 }
|
||||
let controller = standardTextAlertController(theme: AlertControllerTheme(presentationTheme: presentationData.theme), title: presentationData.strings.Share_AuthTitle, text: presentationData.strings.Share_AuthDescription, actions: [TextAlertAction(type: .defaultAction, title: presentationData.strings.Common_OK, action: {
|
||||
self?.extensionContext?.completeRequest(returningItems: nil, completionHandler: nil)
|
||||
})])
|
||||
strongSelf.mainWindow?.present(controller, on: .root)
|
||||
}, completed: {}))
|
||||
}
|
||||
|
||||
self.impl?.loadView()
|
||||
}
|
||||
|
||||
override func viewWillAppear(_ animated: Bool) {
|
||||
super.viewWillAppear(animated)
|
||||
self.impl?.viewWillAppear()
|
||||
}
|
||||
|
||||
override func viewWillDisappear(_ animated: Bool) {
|
||||
super.viewWillDisappear(animated)
|
||||
self.impl?.viewWillDisappear()
|
||||
}
|
||||
|
||||
override func viewDidLayoutSubviews() {
|
||||
super.viewDidLayoutSubviews()
|
||||
self.impl?.viewDidLayoutSubviews(view: self.view)
|
||||
}
|
||||
}
|
||||
|
@ -1,8 +0,0 @@
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
@interface TGMimeTypeMap : NSObject
|
||||
|
||||
+ (NSString *)mimeTypeForExtension:(NSString *)extension;
|
||||
+ (NSString *)extensionForMimeType:(NSString *)mimeType;
|
||||
|
||||
@end
|
@ -1,347 +0,0 @@
|
||||
#import "TGMimeTypeMap.h"
|
||||
|
||||
static NSDictionary *mimeToExtensionMap = nil;
|
||||
static NSDictionary *extensionToMimeMap = nil;
|
||||
|
||||
static void initializeMapping()
|
||||
{
|
||||
static dispatch_once_t onceToken;
|
||||
dispatch_once(&onceToken, ^
|
||||
{
|
||||
NSMutableDictionary *mimeToExtension = [[NSMutableDictionary alloc] init];
|
||||
NSMutableDictionary *extensionToMime = [[NSMutableDictionary alloc] init];
|
||||
|
||||
mimeToExtension[@"application/andrew-inset"] = @"ez"; extensionToMime[@"ez"] = @"application/andrew-inset";
|
||||
mimeToExtension[@"application/dsptype"] = @"tsp"; extensionToMime[@"tsp"] = @"application/dsptype";
|
||||
mimeToExtension[@"application/futuresplash"] = @"spl"; extensionToMime[@"spl"] = @"application/futuresplash";
|
||||
mimeToExtension[@"application/hta"] = @"hta"; extensionToMime[@"hta"] = @"application/hta";
|
||||
mimeToExtension[@"application/mac-binhex40"] = @"hqx"; extensionToMime[@"hqx"] = @"application/mac-binhex40";
|
||||
mimeToExtension[@"application/mac-compactpro"] = @"cpt"; extensionToMime[@"cpt"] = @"application/mac-compactpro";
|
||||
mimeToExtension[@"application/mathematica"] = @"nb"; extensionToMime[@"nb"] = @"application/mathematica";
|
||||
mimeToExtension[@"application/msaccess"] = @"mdb"; extensionToMime[@"mdb"] = @"application/msaccess";
|
||||
mimeToExtension[@"application/oda"] = @"oda"; extensionToMime[@"oda"] = @"application/oda";
|
||||
mimeToExtension[@"application/ogg"] = @"ogg"; extensionToMime[@"ogg"] = @"application/ogg";
|
||||
mimeToExtension[@"application/pdf"] = @"pdf"; extensionToMime[@"pdf"] = @"application/pdf";
|
||||
mimeToExtension[@"application/com.adobe.pdf"] = @"pdf";
|
||||
mimeToExtension[@"application/pgp-keys"] = @"key"; extensionToMime[@"key"] = @"application/pgp-keys";
|
||||
mimeToExtension[@"application/pgp-signature"] = @"pgp"; extensionToMime[@"pgp"] = @"application/pgp-signature";
|
||||
mimeToExtension[@"application/pics-rules"] = @"prf"; extensionToMime[@"prf"] = @"application/pics-rules";
|
||||
mimeToExtension[@"application/rar"] = @"rar"; extensionToMime[@"rar"] = @"application/rar";
|
||||
mimeToExtension[@"application/rdf+xml"] = @"rdf"; extensionToMime[@"rdf"] = @"application/rdf+xml";
|
||||
mimeToExtension[@"application/rss+xml"] = @"rss"; extensionToMime[@"rss"] = @"application/rss+xml";
|
||||
mimeToExtension[@"application/zip"] = @"zip"; extensionToMime[@"zip"] = @"application/zip";
|
||||
mimeToExtension[@"application/vnd.android.package-archive"] = @"apk"; extensionToMime[@"apk"] = @"application/vnd.android.package-archive";
|
||||
mimeToExtension[@"application/vnd.cinderella"] = @"cdy"; extensionToMime[@"cdy"] = @"application/vnd.cinderella";
|
||||
mimeToExtension[@"application/vnd.ms-pki.stl"] = @"stl"; extensionToMime[@"stl"] = @"application/vnd.ms-pki.stl";
|
||||
mimeToExtension[@"application/vnd.oasis.opendocument.database"] = @"odb"; extensionToMime[@"odb"] = @"application/vnd.oasis.opendocument.database";
|
||||
mimeToExtension[@"application/vnd.oasis.opendocument.formula"] = @"odf"; extensionToMime[@"odf"] = @"application/vnd.oasis.opendocument.formula";
|
||||
mimeToExtension[@"application/vnd.oasis.opendocument.graphics"] = @"odg"; extensionToMime[@"odg"] = @"application/vnd.oasis.opendocument.graphics";
|
||||
mimeToExtension[@"application/vnd.oasis.opendocument.graphics-template"] = @"otg"; extensionToMime[@"otg"] = @"application/vnd.oasis.opendocument.graphics-template";
|
||||
mimeToExtension[@"application/vnd.oasis.opendocument.image"] = @"odi"; extensionToMime[@"odi"] = @"application/vnd.oasis.opendocument.image";
|
||||
mimeToExtension[@"application/vnd.oasis.opendocument.spreadsheet"] = @"ods"; extensionToMime[@"ods"] = @"application/vnd.oasis.opendocument.spreadsheet";
|
||||
mimeToExtension[@"application/vnd.oasis.opendocument.spreadsheet-template"] = @"ots"; extensionToMime[@"ots"] = @"application/vnd.oasis.opendocument.spreadsheet-template";
|
||||
mimeToExtension[@"application/vnd.oasis.opendocument.text"] = @"odt"; extensionToMime[@"odt"] = @"application/vnd.oasis.opendocument.text";
|
||||
mimeToExtension[@"application/vnd.oasis.opendocument.text-master"] = @"odm"; extensionToMime[@"odm"] = @"application/vnd.oasis.opendocument.text-master";
|
||||
mimeToExtension[@"application/vnd.oasis.opendocument.text-template"] = @"ott"; extensionToMime[@"ott"] = @"application/vnd.oasis.opendocument.text-template";
|
||||
mimeToExtension[@"application/vnd.oasis.opendocument.text-web"] = @"oth"; extensionToMime[@"oth"] = @"application/vnd.oasis.opendocument.text-web";
|
||||
mimeToExtension[@"application/msword"] = @"doc"; extensionToMime[@"doc"] = @"application/msword";
|
||||
mimeToExtension[@"application/msword"] = @"dot"; extensionToMime[@"dot"] = @"application/msword";
|
||||
mimeToExtension[@"application/vnd.openxmlformats-officedocument.wordprocessingml.document"] = @"docx"; extensionToMime[@"docx"] = @"application/vnd.openxmlformats-officedocument.wordprocessingml.document";
|
||||
mimeToExtension[@"application/vnd.openxmlformats-officedocument.wordprocessingml.template"] = @"dotx"; extensionToMime[@"dotx"] = @"application/vnd.openxmlformats-officedocument.wordprocessingml.template";
|
||||
mimeToExtension[@"application/vnd.ms-excel"] = @"xls"; extensionToMime[@"xls"] = @"application/vnd.ms-excel";
|
||||
mimeToExtension[@"application/vnd.ms-excel"] = @"xlt"; extensionToMime[@"xlt"] = @"application/vnd.ms-excel";
|
||||
mimeToExtension[@"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"] = @"xlsx"; extensionToMime[@"xlsx"] = @"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
|
||||
mimeToExtension[@"application/vnd.openxmlformats-officedocument.spreadsheetml.template"] = @"xltx"; extensionToMime[@"xltx"] = @"application/vnd.openxmlformats-officedocument.spreadsheetml.template";
|
||||
mimeToExtension[@"application/vnd.ms-powerpoint"] = @"ppt"; extensionToMime[@"ppt"] = @"application/vnd.ms-powerpoint";
|
||||
mimeToExtension[@"application/vnd.ms-powerpoint"] = @"pot"; extensionToMime[@"pot"] = @"application/vnd.ms-powerpoint";
|
||||
mimeToExtension[@"application/vnd.ms-powerpoint"] = @"pps"; extensionToMime[@"pps"] = @"application/vnd.ms-powerpoint";
|
||||
mimeToExtension[@"application/vnd.openxmlformats-officedocument.presentationml.presentation"] = @"pptx"; extensionToMime[@"pptx"] = @"application/vnd.openxmlformats-officedocument.presentationml.presentation";
|
||||
mimeToExtension[@"application/vnd.openxmlformats-officedocument.presentationml.template"] = @"potx"; extensionToMime[@"potx"] = @"application/vnd.openxmlformats-officedocument.presentationml.template";
|
||||
mimeToExtension[@"application/vnd.openxmlformats-officedocument.presentationml.slideshow"] = @"ppsx"; extensionToMime[@"ppsx"] = @"application/vnd.openxmlformats-officedocument.presentationml.slideshow";
|
||||
mimeToExtension[@"application/vnd.rim.cod"] = @"cod"; extensionToMime[@"cod"] = @"application/vnd.rim.cod";
|
||||
mimeToExtension[@"application/vnd.smaf"] = @"mmf"; extensionToMime[@"mmf"] = @"application/vnd.smaf";
|
||||
mimeToExtension[@"application/vnd.stardivision.calc"] = @"sdc"; extensionToMime[@"sdc"] = @"application/vnd.stardivision.calc";
|
||||
mimeToExtension[@"application/vnd.stardivision.draw"] = @"sda"; extensionToMime[@"sda"] = @"application/vnd.stardivision.draw";
|
||||
mimeToExtension[@"application/vnd.stardivision.impress"] = @"sdd"; extensionToMime[@"sdd"] = @"application/vnd.stardivision.impress";
|
||||
mimeToExtension[@"application/vnd.stardivision.impress"] = @"sdp"; extensionToMime[@"sdp"] = @"application/vnd.stardivision.impress";
|
||||
mimeToExtension[@"application/vnd.stardivision.math"] = @"smf"; extensionToMime[@"smf"] = @"application/vnd.stardivision.math";
|
||||
mimeToExtension[@"application/vnd.stardivision.writer"] = @"sdw"; extensionToMime[@"sdw"] = @"application/vnd.stardivision.writer";
|
||||
mimeToExtension[@"application/vnd.stardivision.writer"] = @"vor"; extensionToMime[@"vor"] = @"application/vnd.stardivision.writer";
|
||||
mimeToExtension[@"application/vnd.stardivision.writer-global"] = @"sgl"; extensionToMime[@"sgl"] = @"application/vnd.stardivision.writer-global";
|
||||
mimeToExtension[@"application/vnd.sun.xml.calc"] = @"sxc"; extensionToMime[@"sxc"] = @"application/vnd.sun.xml.calc";
|
||||
mimeToExtension[@"application/vnd.sun.xml.calc.template"] = @"stc"; extensionToMime[@"stc"] = @"application/vnd.sun.xml.calc.template";
|
||||
mimeToExtension[@"application/vnd.sun.xml.draw"] = @"sxd"; extensionToMime[@"sxd"] = @"application/vnd.sun.xml.draw";
|
||||
mimeToExtension[@"application/vnd.sun.xml.draw.template"] = @"std"; extensionToMime[@"std"] = @"application/vnd.sun.xml.draw.template";
|
||||
mimeToExtension[@"application/vnd.sun.xml.impress"] = @"sxi"; extensionToMime[@"sxi"] = @"application/vnd.sun.xml.impress";
|
||||
mimeToExtension[@"application/vnd.sun.xml.impress.template"] = @"sti"; extensionToMime[@"sti"] = @"application/vnd.sun.xml.impress.template";
|
||||
mimeToExtension[@"application/vnd.sun.xml.math"] = @"sxm"; extensionToMime[@"sxm"] = @"application/vnd.sun.xml.math";
|
||||
mimeToExtension[@"application/vnd.sun.xml.writer"] = @"sxw"; extensionToMime[@"sxw"] = @"application/vnd.sun.xml.writer";
|
||||
mimeToExtension[@"application/vnd.sun.xml.writer.global"] = @"sxg"; extensionToMime[@"sxg"] = @"application/vnd.sun.xml.writer.global";
|
||||
mimeToExtension[@"application/vnd.sun.xml.writer.template"] = @"stw"; extensionToMime[@"stw"] = @"application/vnd.sun.xml.writer.template";
|
||||
mimeToExtension[@"application/vnd.visio"] = @"vsd"; extensionToMime[@"vsd"] = @"application/vnd.visio";
|
||||
mimeToExtension[@"application/x-abiword"] = @"abw"; extensionToMime[@"abw"] = @"application/x-abiword";
|
||||
mimeToExtension[@"application/x-apple-diskimage"] = @"dmg"; extensionToMime[@"dmg"] = @"application/x-apple-diskimage";
|
||||
mimeToExtension[@"application/x-bcpio"] = @"bcpio"; extensionToMime[@"bcpio"] = @"application/x-bcpio";
|
||||
mimeToExtension[@"application/x-bittorrent"] = @"torrent"; extensionToMime[@"torrent"] = @"application/x-bittorrent";
|
||||
mimeToExtension[@"application/x-cdf"] = @"cdf"; extensionToMime[@"cdf"] = @"application/x-cdf";
|
||||
mimeToExtension[@"application/x-cdlink"] = @"vcd"; extensionToMime[@"vcd"] = @"application/x-cdlink";
|
||||
mimeToExtension[@"application/x-chess-pgn"] = @"pgn"; extensionToMime[@"pgn"] = @"application/x-chess-pgn";
|
||||
mimeToExtension[@"application/x-cpio"] = @"cpio"; extensionToMime[@"cpio"] = @"application/x-cpio";
|
||||
mimeToExtension[@"application/x-debian-package"] = @"deb"; extensionToMime[@"deb"] = @"application/x-debian-package";
|
||||
mimeToExtension[@"application/x-debian-package"] = @"udeb"; extensionToMime[@"udeb"] = @"application/x-debian-package";
|
||||
mimeToExtension[@"application/x-director"] = @"dcr"; extensionToMime[@"dcr"] = @"application/x-director";
|
||||
mimeToExtension[@"application/x-director"] = @"dir"; extensionToMime[@"dir"] = @"application/x-director";
|
||||
mimeToExtension[@"application/x-director"] = @"dxr"; extensionToMime[@"dxr"] = @"application/x-director";
|
||||
mimeToExtension[@"application/x-dms"] = @"dms"; extensionToMime[@"dms"] = @"application/x-dms";
|
||||
mimeToExtension[@"application/x-doom"] = @"wad"; extensionToMime[@"wad"] = @"application/x-doom";
|
||||
mimeToExtension[@"application/x-dvi"] = @"dvi"; extensionToMime[@"dvi"] = @"application/x-dvi";
|
||||
mimeToExtension[@"application/x-flac"] = @"flac"; extensionToMime[@"flac"] = @"application/x-flac";
|
||||
mimeToExtension[@"application/x-font"] = @"pfa"; extensionToMime[@"pfa"] = @"application/x-font";
|
||||
mimeToExtension[@"application/x-font"] = @"pfb"; extensionToMime[@"pfb"] = @"application/x-font";
|
||||
mimeToExtension[@"application/x-font"] = @"gsf"; extensionToMime[@"gsf"] = @"application/x-font";
|
||||
mimeToExtension[@"application/x-font"] = @"pcf"; extensionToMime[@"pcf"] = @"application/x-font";
|
||||
mimeToExtension[@"application/x-font"] = @"pcf.Z"; extensionToMime[@"pcf.Z"] = @"application/x-font";
|
||||
mimeToExtension[@"application/x-freemind"] = @"mm"; extensionToMime[@"mm"] = @"application/x-freemind";
|
||||
mimeToExtension[@"application/x-futuresplash"] = @"spl"; extensionToMime[@"spl"] = @"application/x-futuresplash";
|
||||
mimeToExtension[@"application/x-gnumeric"] = @"gnumeric"; extensionToMime[@"gnumeric"] = @"application/x-gnumeric";
|
||||
mimeToExtension[@"application/x-go-sgf"] = @"sgf"; extensionToMime[@"sgf"] = @"application/x-go-sgf";
|
||||
mimeToExtension[@"application/x-graphing-calculator"] = @"gcf"; extensionToMime[@"gcf"] = @"application/x-graphing-calculator";
|
||||
mimeToExtension[@"application/x-gtar"] = @"gtar"; extensionToMime[@"gtar"] = @"application/x-gtar";
|
||||
mimeToExtension[@"application/x-gtar"] = @"tgz"; extensionToMime[@"tgz"] = @"application/x-gtar";
|
||||
mimeToExtension[@"application/x-gtar"] = @"taz"; extensionToMime[@"taz"] = @"application/x-gtar";
|
||||
mimeToExtension[@"application/x-hdf"] = @"hdf"; extensionToMime[@"hdf"] = @"application/x-hdf";
|
||||
mimeToExtension[@"application/x-ica"] = @"ica"; extensionToMime[@"ica"] = @"application/x-ica";
|
||||
mimeToExtension[@"application/x-internet-signup"] = @"ins"; extensionToMime[@"ins"] = @"application/x-internet-signup";
|
||||
mimeToExtension[@"application/x-internet-signup"] = @"isp"; extensionToMime[@"isp"] = @"application/x-internet-signup";
|
||||
mimeToExtension[@"application/x-iphone"] = @"iii"; extensionToMime[@"iii"] = @"application/x-iphone";
|
||||
mimeToExtension[@"application/x-iso9660-image"] = @"iso"; extensionToMime[@"iso"] = @"application/x-iso9660-image";
|
||||
mimeToExtension[@"application/x-jmol"] = @"jmz"; extensionToMime[@"jmz"] = @"application/x-jmol";
|
||||
mimeToExtension[@"application/x-kchart"] = @"chrt"; extensionToMime[@"chrt"] = @"application/x-kchart";
|
||||
mimeToExtension[@"application/x-killustrator"] = @"kil"; extensionToMime[@"kil"] = @"application/x-killustrator";
|
||||
mimeToExtension[@"application/x-koan"] = @"skp"; extensionToMime[@"skp"] = @"application/x-koan";
|
||||
mimeToExtension[@"application/x-koan"] = @"skd"; extensionToMime[@"skd"] = @"application/x-koan";
|
||||
mimeToExtension[@"application/x-koan"] = @"skt"; extensionToMime[@"skt"] = @"application/x-koan";
|
||||
mimeToExtension[@"application/x-koan"] = @"skm"; extensionToMime[@"skm"] = @"application/x-koan";
|
||||
mimeToExtension[@"application/x-kpresenter"] = @"kpr"; extensionToMime[@"kpr"] = @"application/x-kpresenter";
|
||||
mimeToExtension[@"application/x-kpresenter"] = @"kpt"; extensionToMime[@"kpt"] = @"application/x-kpresenter";
|
||||
mimeToExtension[@"application/x-kspread"] = @"ksp"; extensionToMime[@"ksp"] = @"application/x-kspread";
|
||||
mimeToExtension[@"application/x-kword"] = @"kwd"; extensionToMime[@"kwd"] = @"application/x-kword";
|
||||
mimeToExtension[@"application/x-kword"] = @"kwt"; extensionToMime[@"kwt"] = @"application/x-kword";
|
||||
mimeToExtension[@"application/x-latex"] = @"latex"; extensionToMime[@"latex"] = @"application/x-latex";
|
||||
mimeToExtension[@"application/x-lha"] = @"lha"; extensionToMime[@"lha"] = @"application/x-lha";
|
||||
mimeToExtension[@"application/x-lzh"] = @"lzh"; extensionToMime[@"lzh"] = @"application/x-lzh";
|
||||
mimeToExtension[@"application/x-lzx"] = @"lzx"; extensionToMime[@"lzx"] = @"application/x-lzx";
|
||||
mimeToExtension[@"application/x-maker"] = @"frm"; extensionToMime[@"frm"] = @"application/x-maker";
|
||||
mimeToExtension[@"application/x-maker"] = @"maker"; extensionToMime[@"maker"] = @"application/x-maker";
|
||||
mimeToExtension[@"application/x-maker"] = @"frame"; extensionToMime[@"frame"] = @"application/x-maker";
|
||||
mimeToExtension[@"application/x-maker"] = @"fb"; extensionToMime[@"fb"] = @"application/x-maker";
|
||||
mimeToExtension[@"application/x-maker"] = @"book"; extensionToMime[@"book"] = @"application/x-maker";
|
||||
mimeToExtension[@"application/x-maker"] = @"fbdoc"; extensionToMime[@"fbdoc"] = @"application/x-maker";
|
||||
mimeToExtension[@"application/x-mif"] = @"mif"; extensionToMime[@"mif"] = @"application/x-mif";
|
||||
mimeToExtension[@"application/x-ms-wmd"] = @"wmd"; extensionToMime[@"wmd"] = @"application/x-ms-wmd";
|
||||
mimeToExtension[@"application/x-ms-wmz"] = @"wmz"; extensionToMime[@"wmz"] = @"application/x-ms-wmz";
|
||||
mimeToExtension[@"application/x-msi"] = @"msi"; extensionToMime[@"msi"] = @"application/x-msi";
|
||||
mimeToExtension[@"application/x-ns-proxy-autoconfig"] = @"pac"; extensionToMime[@"pac"] = @"application/x-ns-proxy-autoconfig";
|
||||
mimeToExtension[@"application/x-nwc"] = @"nwc"; extensionToMime[@"nwc"] = @"application/x-nwc";
|
||||
mimeToExtension[@"application/x-object"] = @"o"; extensionToMime[@"o"] = @"application/x-object";
|
||||
mimeToExtension[@"application/x-oz-application"] = @"oza"; extensionToMime[@"oza"] = @"application/x-oz-application";
|
||||
mimeToExtension[@"application/x-pkcs12"] = @"p12"; extensionToMime[@"p12"] = @"application/x-pkcs12";
|
||||
mimeToExtension[@"application/x-pkcs7-certreqresp"] = @"p7r"; extensionToMime[@"p7r"] = @"application/x-pkcs7-certreqresp";
|
||||
mimeToExtension[@"application/x-pkcs7-crl"] = @"crl"; extensionToMime[@"crl"] = @"application/x-pkcs7-crl";
|
||||
mimeToExtension[@"application/x-quicktimeplayer"] = @"qtl"; extensionToMime[@"qtl"] = @"application/x-quicktimeplayer";
|
||||
mimeToExtension[@"application/x-shar"] = @"shar"; extensionToMime[@"shar"] = @"application/x-shar";
|
||||
mimeToExtension[@"application/x-shockwave-flash"] = @"swf"; extensionToMime[@"swf"] = @"application/x-shockwave-flash";
|
||||
mimeToExtension[@"application/x-stuffit"] = @"sit"; extensionToMime[@"sit"] = @"application/x-stuffit";
|
||||
mimeToExtension[@"application/x-sv4cpio"] = @"sv4cpio"; extensionToMime[@"sv4cpio"] = @"application/x-sv4cpio";
|
||||
mimeToExtension[@"application/x-sv4crc"] = @"sv4crc"; extensionToMime[@"sv4crc"] = @"application/x-sv4crc";
|
||||
mimeToExtension[@"application/x-tar"] = @"tar"; extensionToMime[@"tar"] = @"application/x-tar";
|
||||
mimeToExtension[@"application/x-texinfo"] = @"texinfo"; extensionToMime[@"texinfo"] = @"application/x-texinfo";
|
||||
mimeToExtension[@"application/x-texinfo"] = @"texi"; extensionToMime[@"texi"] = @"application/x-texinfo";
|
||||
mimeToExtension[@"application/x-troff"] = @"t"; extensionToMime[@"t"] = @"application/x-troff";
|
||||
mimeToExtension[@"application/x-troff"] = @"roff"; extensionToMime[@"roff"] = @"application/x-troff";
|
||||
mimeToExtension[@"application/x-troff-man"] = @"man"; extensionToMime[@"man"] = @"application/x-troff-man";
|
||||
mimeToExtension[@"application/x-ustar"] = @"ustar"; extensionToMime[@"ustar"] = @"application/x-ustar";
|
||||
mimeToExtension[@"application/x-wais-source"] = @"src"; extensionToMime[@"src"] = @"application/x-wais-source";
|
||||
mimeToExtension[@"application/x-wingz"] = @"wz"; extensionToMime[@"wz"] = @"application/x-wingz";
|
||||
mimeToExtension[@"application/x-webarchive"] = @"webarchive"; extensionToMime[@"webarchive"] = @"application/x-webarchive";
|
||||
mimeToExtension[@"application/x-x509-ca-cert"] = @"crt"; extensionToMime[@"crt"] = @"application/x-x509-ca-cert";
|
||||
mimeToExtension[@"application/x-x509-user-cert"] = @"crt"; extensionToMime[@"crt"] = @"application/x-x509-user-cert";
|
||||
mimeToExtension[@"application/x-xcf"] = @"xcf"; extensionToMime[@"xcf"] = @"application/x-xcf";
|
||||
mimeToExtension[@"application/x-xfig"] = @"fig"; extensionToMime[@"fig"] = @"application/x-xfig";
|
||||
mimeToExtension[@"application/xhtml+xml"] = @"xhtml"; extensionToMime[@"xhtml"] = @"application/xhtml+xml";
|
||||
mimeToExtension[@"audio/3gpp"] = @"3gpp"; extensionToMime[@"3gpp"] = @"audio/3gpp";
|
||||
mimeToExtension[@"audio/basic"] = @"snd"; extensionToMime[@"snd"] = @"audio/basic";
|
||||
mimeToExtension[@"audio/midi"] = @"mid"; extensionToMime[@"mid"] = @"audio/midi";
|
||||
mimeToExtension[@"audio/midi"] = @"midi"; extensionToMime[@"midi"] = @"audio/midi";
|
||||
mimeToExtension[@"audio/midi"] = @"kar"; extensionToMime[@"kar"] = @"audio/midi";
|
||||
mimeToExtension[@"audio/mpeg"] = @"mpga"; extensionToMime[@"mpga"] = @"audio/mpeg";
|
||||
mimeToExtension[@"audio/mpeg"] = @"mpega"; extensionToMime[@"mpega"] = @"audio/mpeg";
|
||||
mimeToExtension[@"audio/mpeg"] = @"mp2"; extensionToMime[@"mp2"] = @"audio/mpeg";
|
||||
mimeToExtension[@"audio/mpeg"] = @"mp3"; extensionToMime[@"mp3"] = @"audio/mpeg";
|
||||
mimeToExtension[@"audio/mpeg"] = @"m4a"; extensionToMime[@"m4a"] = @"audio/mpeg";
|
||||
mimeToExtension[@"audio/mpegurl"] = @"m3u"; extensionToMime[@"m3u"] = @"audio/mpegurl";
|
||||
mimeToExtension[@"audio/prs.sid"] = @"sid"; extensionToMime[@"sid"] = @"audio/prs.sid";
|
||||
mimeToExtension[@"audio/x-aiff"] = @"aif"; extensionToMime[@"aif"] = @"audio/x-aiff";
|
||||
mimeToExtension[@"audio/x-aiff"] = @"aiff"; extensionToMime[@"aiff"] = @"audio/x-aiff";
|
||||
mimeToExtension[@"audio/x-aiff"] = @"aifc"; extensionToMime[@"aifc"] = @"audio/x-aiff";
|
||||
mimeToExtension[@"audio/x-gsm"] = @"gsm"; extensionToMime[@"gsm"] = @"audio/x-gsm";
|
||||
mimeToExtension[@"audio/x-mpegurl"] = @"m3u"; extensionToMime[@"m3u"] = @"audio/x-mpegurl";
|
||||
mimeToExtension[@"audio/x-ms-wma"] = @"wma"; extensionToMime[@"wma"] = @"audio/x-ms-wma";
|
||||
mimeToExtension[@"audio/x-ms-wax"] = @"wax"; extensionToMime[@"wax"] = @"audio/x-ms-wax";
|
||||
mimeToExtension[@"audio/x-pn-realaudio"] = @"ra"; extensionToMime[@"ra"] = @"audio/x-pn-realaudio";
|
||||
mimeToExtension[@"audio/x-pn-realaudio"] = @"rm"; extensionToMime[@"rm"] = @"audio/x-pn-realaudio";
|
||||
mimeToExtension[@"audio/x-pn-realaudio"] = @"ram"; extensionToMime[@"ram"] = @"audio/x-pn-realaudio";
|
||||
mimeToExtension[@"audio/x-realaudio"] = @"ra"; extensionToMime[@"ra"] = @"audio/x-realaudio";
|
||||
mimeToExtension[@"audio/x-scpls"] = @"pls"; extensionToMime[@"pls"] = @"audio/x-scpls";
|
||||
mimeToExtension[@"audio/x-sd2"] = @"sd2"; extensionToMime[@"sd2"] = @"audio/x-sd2";
|
||||
mimeToExtension[@"audio/x-wav"] = @"wav"; extensionToMime[@"wav"] = @"audio/x-wav";
|
||||
mimeToExtension[@"image/bmp"] = @"bmp"; extensionToMime[@"bmp"] = @"image/bmp";
|
||||
mimeToExtension[@"image/gif"] = @"gif"; extensionToMime[@"gif"] = @"image/gif";
|
||||
mimeToExtension[@"image/ico"] = @"cur"; extensionToMime[@"cur"] = @"image/ico";
|
||||
mimeToExtension[@"image/ico"] = @"ico"; extensionToMime[@"ico"] = @"image/ico";
|
||||
mimeToExtension[@"image/ief"] = @"ief"; extensionToMime[@"ief"] = @"image/ief";
|
||||
mimeToExtension[@"image/jpeg"] = @"jpeg"; extensionToMime[@"jpeg"] = @"image/jpeg";
|
||||
mimeToExtension[@"image/jpeg"] = @"jpg"; extensionToMime[@"jpg"] = @"image/jpeg";
|
||||
mimeToExtension[@"image/jpeg"] = @"jpe"; extensionToMime[@"jpe"] = @"image/jpeg";
|
||||
mimeToExtension[@"image/pcx"] = @"pcx"; extensionToMime[@"pcx"] = @"image/pcx";
|
||||
mimeToExtension[@"image/png"] = @"png"; extensionToMime[@"png"] = @"image/png";
|
||||
mimeToExtension[@"image/svg+xml"] = @"svg"; extensionToMime[@"svg"] = @"image/svg+xml";
|
||||
mimeToExtension[@"image/svg+xml"] = @"svgz"; extensionToMime[@"svgz"] = @"image/svg+xml";
|
||||
mimeToExtension[@"image/tiff"] = @"tiff"; extensionToMime[@"tiff"] = @"image/tiff";
|
||||
mimeToExtension[@"image/tiff"] = @"tif"; extensionToMime[@"tif"] = @"image/tiff";
|
||||
mimeToExtension[@"image/vnd.djvu"] = @"djvu"; extensionToMime[@"djvu"] = @"image/vnd.djvu";
|
||||
mimeToExtension[@"image/vnd.djvu"] = @"djv"; extensionToMime[@"djv"] = @"image/vnd.djvu";
|
||||
mimeToExtension[@"image/vnd.wap.wbmp"] = @"wbmp"; extensionToMime[@"wbmp"] = @"image/vnd.wap.wbmp";
|
||||
mimeToExtension[@"image/x-cmu-raster"] = @"ras"; extensionToMime[@"ras"] = @"image/x-cmu-raster";
|
||||
mimeToExtension[@"image/x-coreldraw"] = @"cdr"; extensionToMime[@"cdr"] = @"image/x-coreldraw";
|
||||
mimeToExtension[@"image/x-coreldrawpattern"] = @"pat"; extensionToMime[@"pat"] = @"image/x-coreldrawpattern";
|
||||
mimeToExtension[@"image/x-coreldrawtemplate"] = @"cdt"; extensionToMime[@"cdt"] = @"image/x-coreldrawtemplate";
|
||||
mimeToExtension[@"image/x-corelphotopaint"] = @"cpt"; extensionToMime[@"cpt"] = @"image/x-corelphotopaint";
|
||||
mimeToExtension[@"image/x-icon"] = @"ico"; extensionToMime[@"ico"] = @"image/x-icon";
|
||||
mimeToExtension[@"image/x-jg"] = @"art"; extensionToMime[@"art"] = @"image/x-jg";
|
||||
mimeToExtension[@"image/x-jng"] = @"jng"; extensionToMime[@"jng"] = @"image/x-jng";
|
||||
mimeToExtension[@"image/x-ms-bmp"] = @"bmp"; extensionToMime[@"bmp"] = @"image/x-ms-bmp";
|
||||
mimeToExtension[@"image/x-photoshop"] = @"psd"; extensionToMime[@"psd"] = @"image/x-photoshop";
|
||||
mimeToExtension[@"image/x-portable-anymap"] = @"pnm"; extensionToMime[@"pnm"] = @"image/x-portable-anymap";
|
||||
mimeToExtension[@"image/x-portable-bitmap"] = @"pbm"; extensionToMime[@"pbm"] = @"image/x-portable-bitmap";
|
||||
mimeToExtension[@"image/x-portable-graymap"] = @"pgm"; extensionToMime[@"pgm"] = @"image/x-portable-graymap";
|
||||
mimeToExtension[@"image/x-portable-pixmap"] = @"ppm"; extensionToMime[@"ppm"] = @"image/x-portable-pixmap";
|
||||
mimeToExtension[@"image/x-rgb"] = @"rgb"; extensionToMime[@"rgb"] = @"image/x-rgb";
|
||||
mimeToExtension[@"image/x-xbitmap"] = @"xbm"; extensionToMime[@"xbm"] = @"image/x-xbitmap";
|
||||
mimeToExtension[@"image/x-xpixmap"] = @"xpm"; extensionToMime[@"xpm"] = @"image/x-xpixmap";
|
||||
mimeToExtension[@"image/x-xwindowdump"] = @"xwd"; extensionToMime[@"xwd"] = @"image/x-xwindowdump";
|
||||
mimeToExtension[@"model/iges"] = @"igs"; extensionToMime[@"igs"] = @"model/iges";
|
||||
mimeToExtension[@"model/iges"] = @"iges"; extensionToMime[@"iges"] = @"model/iges";
|
||||
mimeToExtension[@"model/mesh"] = @"msh"; extensionToMime[@"msh"] = @"model/mesh";
|
||||
mimeToExtension[@"model/mesh"] = @"mesh"; extensionToMime[@"mesh"] = @"model/mesh";
|
||||
mimeToExtension[@"model/mesh"] = @"silo"; extensionToMime[@"silo"] = @"model/mesh";
|
||||
mimeToExtension[@"text/calendar"] = @"ics"; extensionToMime[@"ics"] = @"text/calendar";
|
||||
mimeToExtension[@"text/calendar"] = @"icz"; extensionToMime[@"icz"] = @"text/calendar";
|
||||
mimeToExtension[@"text/comma-separated-values"] = @"csv"; extensionToMime[@"csv"] = @"text/comma-separated-values";
|
||||
mimeToExtension[@"text/css"] = @"css"; extensionToMime[@"css"] = @"text/css";
|
||||
mimeToExtension[@"text/html"] = @"htm"; extensionToMime[@"htm"] = @"text/html";
|
||||
mimeToExtension[@"text/html"] = @"html"; extensionToMime[@"html"] = @"text/html";
|
||||
mimeToExtension[@"text/h323"] = @"323"; extensionToMime[@"323"] = @"text/h323";
|
||||
mimeToExtension[@"text/iuls"] = @"uls"; extensionToMime[@"uls"] = @"text/iuls";
|
||||
mimeToExtension[@"text/mathml"] = @"mml"; extensionToMime[@"mml"] = @"text/mathml";
|
||||
// add it first so it will be the default for ExtensionFromMimeType
|
||||
mimeToExtension[@"text/plain"] = @"txt"; extensionToMime[@"txt"] = @"text/plain";
|
||||
mimeToExtension[@"text/plain"] = @"asc"; extensionToMime[@"asc"] = @"text/plain";
|
||||
mimeToExtension[@"text/plain"] = @"text"; extensionToMime[@"text"] = @"text/plain";
|
||||
mimeToExtension[@"text/plain"] = @"diff"; extensionToMime[@"diff"] = @"text/plain";
|
||||
mimeToExtension[@"text/plain"] = @"po"; extensionToMime[@"po"] = @"text/plain"; // reserve "pot" for vnd.ms-powerpoint
|
||||
mimeToExtension[@"text/richtext"] = @"rtx"; extensionToMime[@"rtx"] = @"text/richtext";
|
||||
mimeToExtension[@"text/rtf"] = @"rtf"; extensionToMime[@"rtf"] = @"text/rtf";
|
||||
mimeToExtension[@"text/texmacs"] = @"ts"; extensionToMime[@"ts"] = @"text/texmacs";
|
||||
mimeToExtension[@"text/text"] = @"phps"; extensionToMime[@"phps"] = @"text/text";
|
||||
mimeToExtension[@"text/tab-separated-values"] = @"tsv"; extensionToMime[@"tsv"] = @"text/tab-separated-values";
|
||||
mimeToExtension[@"text/xml"] = @"xml"; extensionToMime[@"xml"] = @"text/xml";
|
||||
mimeToExtension[@"text/x-bibtex"] = @"bib"; extensionToMime[@"bib"] = @"text/x-bibtex";
|
||||
mimeToExtension[@"text/x-boo"] = @"boo"; extensionToMime[@"boo"] = @"text/x-boo";
|
||||
mimeToExtension[@"text/x-c++hdr"] = @"h++"; extensionToMime[@"h++"] = @"text/x-c++hdr";
|
||||
mimeToExtension[@"text/x-c++hdr"] = @"hpp"; extensionToMime[@"hpp"] = @"text/x-c++hdr";
|
||||
mimeToExtension[@"text/x-c++hdr"] = @"hxx"; extensionToMime[@"hxx"] = @"text/x-c++hdr";
|
||||
mimeToExtension[@"text/x-c++hdr"] = @"hh"; extensionToMime[@"hh"] = @"text/x-c++hdr";
|
||||
mimeToExtension[@"text/x-c++src"] = @"c++"; extensionToMime[@"c++"] = @"text/x-c++src";
|
||||
mimeToExtension[@"text/x-c++src"] = @"cpp"; extensionToMime[@"cpp"] = @"text/x-c++src";
|
||||
mimeToExtension[@"text/x-c++src"] = @"cxx"; extensionToMime[@"cxx"] = @"text/x-c++src";
|
||||
mimeToExtension[@"text/x-chdr"] = @"h"; extensionToMime[@"h"] = @"text/x-chdr";
|
||||
mimeToExtension[@"text/x-component"] = @"htc"; extensionToMime[@"htc"] = @"text/x-component";
|
||||
mimeToExtension[@"text/x-csh"] = @"csh"; extensionToMime[@"csh"] = @"text/x-csh";
|
||||
mimeToExtension[@"text/x-csrc"] = @"c"; extensionToMime[@"c"] = @"text/x-csrc";
|
||||
mimeToExtension[@"text/x-dsrc"] = @"d"; extensionToMime[@"d"] = @"text/x-dsrc";
|
||||
mimeToExtension[@"text/x-haskell"] = @"hs"; extensionToMime[@"hs"] = @"text/x-haskell";
|
||||
mimeToExtension[@"text/x-java"] = @"java"; extensionToMime[@"java"] = @"text/x-java";
|
||||
mimeToExtension[@"text/x-literate-haskell"] = @"lhs"; extensionToMime[@"lhs"] = @"text/x-literate-haskell";
|
||||
mimeToExtension[@"text/x-moc"] = @"moc"; extensionToMime[@"moc"] = @"text/x-moc";
|
||||
mimeToExtension[@"text/x-pascal"] = @"p"; extensionToMime[@"p"] = @"text/x-pascal";
|
||||
mimeToExtension[@"text/x-pascal"] = @"pas"; extensionToMime[@"pas"] = @"text/x-pascal";
|
||||
mimeToExtension[@"text/x-pcs-gcd"] = @"gcd"; extensionToMime[@"gcd"] = @"text/x-pcs-gcd";
|
||||
mimeToExtension[@"text/x-setext"] = @"etx"; extensionToMime[@"etx"] = @"text/x-setext";
|
||||
mimeToExtension[@"text/x-tcl"] = @"tcl"; extensionToMime[@"tcl"] = @"text/x-tcl";
|
||||
mimeToExtension[@"text/x-tex"] = @"tex"; extensionToMime[@"tex"] = @"text/x-tex";
|
||||
mimeToExtension[@"text/x-tex"] = @"ltx"; extensionToMime[@"ltx"] = @"text/x-tex";
|
||||
mimeToExtension[@"text/x-tex"] = @"sty"; extensionToMime[@"sty"] = @"text/x-tex";
|
||||
mimeToExtension[@"text/x-tex"] = @"cls"; extensionToMime[@"cls"] = @"text/x-tex";
|
||||
mimeToExtension[@"text/x-vcalendar"] = @"vcs"; extensionToMime[@"vcs"] = @"text/x-vcalendar";
|
||||
mimeToExtension[@"text/x-vcard"] = @"vcf"; extensionToMime[@"vcf"] = @"text/x-vcard";
|
||||
mimeToExtension[@"video/3gpp"] = @"3gpp"; extensionToMime[@"3gpp"] = @"video/3gpp";
|
||||
mimeToExtension[@"video/3gpp"] = @"3gp"; extensionToMime[@"3gp"] = @"video/3gpp";
|
||||
mimeToExtension[@"video/3gpp"] = @"3g2"; extensionToMime[@"3g2"] = @"video/3gpp";
|
||||
mimeToExtension[@"video/dl"] = @"dl"; extensionToMime[@"dl"] = @"video/dl";
|
||||
mimeToExtension[@"video/dv"] = @"dif"; extensionToMime[@"dif"] = @"video/dv";
|
||||
mimeToExtension[@"video/dv"] = @"dv"; extensionToMime[@"dv"] = @"video/dv";
|
||||
mimeToExtension[@"video/fli"] = @"fli"; extensionToMime[@"fli"] = @"video/fli";
|
||||
mimeToExtension[@"video/m4v"] = @"m4v"; extensionToMime[@"m4v"] = @"video/m4v";
|
||||
mimeToExtension[@"video/mpeg"] = @"mpeg"; extensionToMime[@"mpeg"] = @"video/mpeg";
|
||||
mimeToExtension[@"video/mpeg"] = @"mpg"; extensionToMime[@"mpg"] = @"video/mpeg";
|
||||
mimeToExtension[@"video/mpeg"] = @"mpe"; extensionToMime[@"mpe"] = @"video/mpeg";
|
||||
mimeToExtension[@"video/mp4"] = @"mp4"; extensionToMime[@"mp4"] = @"video/mp4";
|
||||
mimeToExtension[@"video/mpeg"] = @"VOB"; extensionToMime[@"VOB"] = @"video/mpeg";
|
||||
mimeToExtension[@"video/quicktime"] = @"qt"; extensionToMime[@"qt"] = @"video/quicktime";
|
||||
mimeToExtension[@"video/quicktime"] = @"mov"; extensionToMime[@"mov"] = @"video/quicktime";
|
||||
mimeToExtension[@"video/vnd.mpegurl"] = @"mxu"; extensionToMime[@"mxu"] = @"video/vnd.mpegurl";
|
||||
mimeToExtension[@"video/x-la-asf"] = @"lsf"; extensionToMime[@"lsf"] = @"video/x-la-asf";
|
||||
mimeToExtension[@"video/x-la-asf"] = @"lsx"; extensionToMime[@"lsx"] = @"video/x-la-asf";
|
||||
mimeToExtension[@"video/x-mng"] = @"mng"; extensionToMime[@"mng"] = @"video/x-mng";
|
||||
mimeToExtension[@"video/x-ms-asf"] = @"asf"; extensionToMime[@"asf"] = @"video/x-ms-asf";
|
||||
mimeToExtension[@"video/x-ms-asf"] = @"asx"; extensionToMime[@"asx"] = @"video/x-ms-asf";
|
||||
mimeToExtension[@"video/x-ms-wm"] = @"wm"; extensionToMime[@"wm"] = @"video/x-ms-wm";
|
||||
mimeToExtension[@"video/x-ms-wmv"] = @"wmv"; extensionToMime[@"wmv"] = @"video/x-ms-wmv";
|
||||
mimeToExtension[@"video/x-ms-wmx"] = @"wmx"; extensionToMime[@"wmx"] = @"video/x-ms-wmx";
|
||||
mimeToExtension[@"video/x-ms-wvx"] = @"wvx"; extensionToMime[@"wvx"] = @"video/x-ms-wvx";
|
||||
mimeToExtension[@"video/x-msvideo"] = @"avi"; extensionToMime[@"avi"] = @"video/x-msvideo";
|
||||
mimeToExtension[@"video/x-sgi-movie"] = @"movie"; extensionToMime[@"movie"] = @"video/x-sgi-movie";
|
||||
mimeToExtension[@"x-conference/x-cooltalk"] = @"ice"; extensionToMime[@"ice"] = @"x-conference/x-cooltalk";
|
||||
mimeToExtension[@"x-epoc/x-sisx-app"] = @"sisx"; extensionToMime[@"sisx"] = @"x-epoc/x-sisx-app";
|
||||
mimeToExtension[@"application/epub+zip"] = @"epub"; extensionToMime[@"epub"] = @"application/epub+zip";
|
||||
mimeToExtension[@"text/swift"] = @"swift"; extensionToMime[@"swift"] = @"text/swift";
|
||||
|
||||
mimeToExtensionMap = mimeToExtension;
|
||||
extensionToMimeMap = extensionToMime;
|
||||
});
|
||||
}
|
||||
|
||||
@implementation TGMimeTypeMap
|
||||
|
||||
+ (NSString *)mimeTypeForExtension:(NSString *)extension
|
||||
{
|
||||
if (extension == nil)
|
||||
return nil;
|
||||
|
||||
initializeMapping();
|
||||
|
||||
return extensionToMimeMap[extension];
|
||||
}
|
||||
|
||||
+ (NSString *)extensionForMimeType:(NSString *)mimeType
|
||||
{
|
||||
if (mimeType == nil)
|
||||
return nil;
|
||||
|
||||
initializeMapping();
|
||||
|
||||
return mimeToExtensionMap[mimeType];
|
||||
}
|
||||
|
||||
@end
|
@ -3,6 +3,7 @@ import Intents
|
||||
import TelegramCore
|
||||
import Postbox
|
||||
import SwiftSignalKit
|
||||
import BuildConfig
|
||||
|
||||
private var accountCache: Account?
|
||||
|
||||
|
@ -1,6 +1,4 @@
|
||||
#ifndef SiriIntents_Bridging_Header_h
|
||||
#define SiriIntents_Bridging_Header_h
|
||||
|
||||
#import "../Telegram-iOS/BuildConfig.h"
|
||||
|
||||
#endif
|
||||
|
@ -12,7 +12,6 @@
|
||||
090E777622A6945900CD99F5 /* BlackClassicIcon@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 090E777222A6945800CD99F5 /* BlackClassicIcon@3x.png */; };
|
||||
090E777722A6945900CD99F5 /* BlueClassicIcon@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 090E777322A6945800CD99F5 /* BlueClassicIcon@2x.png */; };
|
||||
092F368521542D6C001A9F49 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 092F368321542D6C001A9F49 /* Localizable.strings */; };
|
||||
0956AF2C217B4642008106D0 /* WatchCommunicationManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0956AF2B217B4642008106D0 /* WatchCommunicationManager.swift */; };
|
||||
0956AF2F217B8109008106D0 /* TGNeoUnsupportedMessageViewModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 0956AF2E217B8109008106D0 /* TGNeoUnsupportedMessageViewModel.m */; };
|
||||
0972C6E021791D950069E98A /* UserNotifications.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0972C6DF21791D950069E98A /* UserNotifications.framework */; };
|
||||
0972C6E421792D130069E98A /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 0972C6E221792D120069E98A /* InfoPlist.strings */; };
|
||||
@ -40,13 +39,7 @@
|
||||
09C50E0321729DB5009E676F /* TGBotCommandController.m in Sources */ = {isa = PBXBuildFile; fileRef = 09C571F6217287EF00BDF00F /* TGBotCommandController.m */; };
|
||||
09C50E0421729DB5009E676F /* TGBotKeyboardController.m in Sources */ = {isa = PBXBuildFile; fileRef = 09C571F8217287F000BDF00F /* TGBotKeyboardController.m */; };
|
||||
09C50E0521729DE6009E676F /* TGBotKeyboardButtonController.m in Sources */ = {isa = PBXBuildFile; fileRef = 09C571F4217287E500BDF00F /* TGBotKeyboardButtonController.m */; };
|
||||
09C50E7B21738178009E676F /* TGBridgeServer.m in Sources */ = {isa = PBXBuildFile; fileRef = 09C50E7A21738178009E676F /* TGBridgeServer.m */; };
|
||||
09C50E8321738514009E676F /* TGBridgeContext.m in Sources */ = {isa = PBXBuildFile; fileRef = 09C573072172953700BDF00F /* TGBridgeContext.m */; };
|
||||
09C50E842173853E009E676F /* TGBridgeCommon.m in Sources */ = {isa = PBXBuildFile; fileRef = 09C572CE2172939F00BDF00F /* TGBridgeCommon.m */; };
|
||||
09C50E88217385CF009E676F /* WatchConnectivity.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 09C50E87217385CF009E676F /* WatchConnectivity.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
|
||||
09C50E8A2173AEDB009E676F /* WatchRequestHandlers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09C50E892173AEDB009E676F /* WatchRequestHandlers.swift */; };
|
||||
09C50E912173B247009E676F /* TGBridgeSubscriptions.m in Sources */ = {isa = PBXBuildFile; fileRef = 09C50E8F2173B247009E676F /* TGBridgeSubscriptions.m */; };
|
||||
09C50E922173B247009E676F /* TGBridgeSubscriptions.m in Sources */ = {isa = PBXBuildFile; fileRef = 09C50E8F2173B247009E676F /* TGBridgeSubscriptions.m */; };
|
||||
09C56F8F2172797200BDF00F /* Interface.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 09C56F8D2172797200BDF00F /* Interface.storyboard */; };
|
||||
09C56F912172797400BDF00F /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 09C56F902172797400BDF00F /* Assets.xcassets */; };
|
||||
09C56F982172797500BDF00F /* Watch Extension.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = 09C56F972172797400BDF00F /* Watch Extension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
|
||||
@ -166,62 +159,14 @@
|
||||
09C5728C21728D3700BDF00F /* STimer.m in Sources */ = {isa = PBXBuildFile; fileRef = 09C5726221728CFF00BDF00F /* STimer.m */; };
|
||||
09C5728D21728D3700BDF00F /* SVariable.m in Sources */ = {isa = PBXBuildFile; fileRef = 09C5725B21728CFE00BDF00F /* SVariable.m */; };
|
||||
09C572D2217293D400BDF00F /* TGBridgeClient.m in Sources */ = {isa = PBXBuildFile; fileRef = 09C572D02172939F00BDF00F /* TGBridgeClient.m */; };
|
||||
09C572D3217293D400BDF00F /* TGBridgeCommon.m in Sources */ = {isa = PBXBuildFile; fileRef = 09C572CE2172939F00BDF00F /* TGBridgeCommon.m */; };
|
||||
09C573162172953800BDF00F /* TGBridgeMessage+TGTableItem.m in Sources */ = {isa = PBXBuildFile; fileRef = 09C572D72172953300BDF00F /* TGBridgeMessage+TGTableItem.m */; };
|
||||
09C573182172953800BDF00F /* TGBridgeBotReplyMarkup.m in Sources */ = {isa = PBXBuildFile; fileRef = 09C572D92172953300BDF00F /* TGBridgeBotReplyMarkup.m */; };
|
||||
09C573192172953800BDF00F /* TGBridgeContactMediaAttachment.m in Sources */ = {isa = PBXBuildFile; fileRef = 09C572DE2172953300BDF00F /* TGBridgeContactMediaAttachment.m */; };
|
||||
09C5731A2172953800BDF00F /* TGBridgeMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = 09C572DF2172953300BDF00F /* TGBridgeMessage.m */; };
|
||||
09C5731B2172953800BDF00F /* TGBridgeAudioMediaAttachment.m in Sources */ = {isa = PBXBuildFile; fileRef = 09C572E02172953300BDF00F /* TGBridgeAudioMediaAttachment.m */; };
|
||||
09C5731C2172953800BDF00F /* TGBridgeActionMediaAttachment.m in Sources */ = {isa = PBXBuildFile; fileRef = 09C572E22172953300BDF00F /* TGBridgeActionMediaAttachment.m */; };
|
||||
09C5731D2172953800BDF00F /* TGBridgeStickerPack.m in Sources */ = {isa = PBXBuildFile; fileRef = 09C572E32172953400BDF00F /* TGBridgeStickerPack.m */; };
|
||||
09C5731E2172953800BDF00F /* TGBridgeVideoMediaAttachment.m in Sources */ = {isa = PBXBuildFile; fileRef = 09C572E42172953400BDF00F /* TGBridgeVideoMediaAttachment.m */; };
|
||||
09C573202172953800BDF00F /* TGBridgeForwardedMessageMediaAttachment.m in Sources */ = {isa = PBXBuildFile; fileRef = 09C572E62172953400BDF00F /* TGBridgeForwardedMessageMediaAttachment.m */; };
|
||||
09C573212172953800BDF00F /* TGBridgeUser+TGTableItem.m in Sources */ = {isa = PBXBuildFile; fileRef = 09C572E92172953400BDF00F /* TGBridgeUser+TGTableItem.m */; };
|
||||
09C573222172953800BDF00F /* TGBridgeUser.m in Sources */ = {isa = PBXBuildFile; fileRef = 09C572ED2172953400BDF00F /* TGBridgeUser.m */; };
|
||||
09C573232172953800BDF00F /* TGBridgeBotCommandInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 09C572EF2172953500BDF00F /* TGBridgeBotCommandInfo.m */; };
|
||||
09C573242172953800BDF00F /* TGBridgeImageMediaAttachment.m in Sources */ = {isa = PBXBuildFile; fileRef = 09C572F22172953500BDF00F /* TGBridgeImageMediaAttachment.m */; };
|
||||
09C573252172953800BDF00F /* TGBridgeLocationVenue.m in Sources */ = {isa = PBXBuildFile; fileRef = 09C572F32172953500BDF00F /* TGBridgeLocationVenue.m */; };
|
||||
09C573262172953800BDF00F /* TGBridgeMessageEntities.m in Sources */ = {isa = PBXBuildFile; fileRef = 09C572F42172953500BDF00F /* TGBridgeMessageEntities.m */; };
|
||||
09C573272172953800BDF00F /* TGBridgeWebPageMediaAttachment.m in Sources */ = {isa = PBXBuildFile; fileRef = 09C572F52172953500BDF00F /* TGBridgeWebPageMediaAttachment.m */; };
|
||||
09C573282172953800BDF00F /* TGBridgeChat+TGTableItem.m in Sources */ = {isa = PBXBuildFile; fileRef = 09C572F62172953500BDF00F /* TGBridgeChat+TGTableItem.m */; };
|
||||
09C573292172953900BDF00F /* TGBridgeMediaAttachment.m in Sources */ = {isa = PBXBuildFile; fileRef = 09C572F92172953600BDF00F /* TGBridgeMediaAttachment.m */; };
|
||||
09C5732A2172953900BDF00F /* TGBridgeDocumentMediaAttachment.m in Sources */ = {isa = PBXBuildFile; fileRef = 09C572FB2172953600BDF00F /* TGBridgeDocumentMediaAttachment.m */; };
|
||||
09C5732B2172953900BDF00F /* TGBridgePeerNotificationSettings.m in Sources */ = {isa = PBXBuildFile; fileRef = 09C572FC2172953600BDF00F /* TGBridgePeerNotificationSettings.m */; };
|
||||
09C5732C2172953900BDF00F /* TGBridgeReplyMessageMediaAttachment.m in Sources */ = {isa = PBXBuildFile; fileRef = 09C572FD2172953600BDF00F /* TGBridgeReplyMessageMediaAttachment.m */; };
|
||||
09C5732D2172953900BDF00F /* TGBridgeLocationVenue+TGTableItem.m in Sources */ = {isa = PBXBuildFile; fileRef = 09C572FF2172953600BDF00F /* TGBridgeLocationVenue+TGTableItem.m */; };
|
||||
09C5732E2172953900BDF00F /* TGBridgeLocationMediaAttachment.m in Sources */ = {isa = PBXBuildFile; fileRef = 09C573002172953600BDF00F /* TGBridgeLocationMediaAttachment.m */; };
|
||||
09C5732F2172953900BDF00F /* TGBridgeContext.m in Sources */ = {isa = PBXBuildFile; fileRef = 09C573072172953700BDF00F /* TGBridgeContext.m */; };
|
||||
09C573302172953900BDF00F /* TGBridgeChat.m in Sources */ = {isa = PBXBuildFile; fileRef = 09C573092172953700BDF00F /* TGBridgeChat.m */; };
|
||||
09C573312172953900BDF00F /* TGBridgeMessageEntitiesAttachment.m in Sources */ = {isa = PBXBuildFile; fileRef = 09C5730A2172953700BDF00F /* TGBridgeMessageEntitiesAttachment.m */; };
|
||||
09C573322172953900BDF00F /* TGBridgeChatMessages.m in Sources */ = {isa = PBXBuildFile; fileRef = 09C5730C2172953700BDF00F /* TGBridgeChatMessages.m */; };
|
||||
09C573332172953900BDF00F /* TGBridgeReplyMarkupMediaAttachment.m in Sources */ = {isa = PBXBuildFile; fileRef = 09C5730D2172953800BDF00F /* TGBridgeReplyMarkupMediaAttachment.m */; };
|
||||
09C573342172953900BDF00F /* TGBridgeUnsupportedMediaAttachment.m in Sources */ = {isa = PBXBuildFile; fileRef = 09C5730F2172953800BDF00F /* TGBridgeUnsupportedMediaAttachment.m */; };
|
||||
09C573352172953900BDF00F /* TGBridgeBotInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 09C573102172953800BDF00F /* TGBridgeBotInfo.m */; };
|
||||
09CFB212217299E80083F7A3 /* CoreLocation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 09CFB211217299E80083F7A3 /* CoreLocation.framework */; };
|
||||
09D30420217418EC00C00567 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = D09DCBB51D0C856B00F51FFE /* Localizable.strings */; };
|
||||
09D304222174335F00C00567 /* WatchBridge.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09D304212174335F00C00567 /* WatchBridge.swift */; };
|
||||
09D304232174340900C00567 /* TGBridgeUser.m in Sources */ = {isa = PBXBuildFile; fileRef = 09C572ED2172953400BDF00F /* TGBridgeUser.m */; };
|
||||
09D304242174340E00C00567 /* TGBridgeMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = 09C572DF2172953300BDF00F /* TGBridgeMessage.m */; };
|
||||
09D304252174341200C00567 /* TGBridgeMediaAttachment.m in Sources */ = {isa = PBXBuildFile; fileRef = 09C572F92172953600BDF00F /* TGBridgeMediaAttachment.m */; };
|
||||
09D304262174341A00C00567 /* TGBridgeLocationVenue.m in Sources */ = {isa = PBXBuildFile; fileRef = 09C572F32172953500BDF00F /* TGBridgeLocationVenue.m */; };
|
||||
09D304272174341E00C00567 /* TGBridgeChatMessages.m in Sources */ = {isa = PBXBuildFile; fileRef = 09C5730C2172953700BDF00F /* TGBridgeChatMessages.m */; };
|
||||
09D304282174342E00C00567 /* TGBridgeChat.m in Sources */ = {isa = PBXBuildFile; fileRef = 09C573092172953700BDF00F /* TGBridgeChat.m */; };
|
||||
09D304292174343300C00567 /* TGBridgeBotInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 09C573102172953800BDF00F /* TGBridgeBotInfo.m */; };
|
||||
09D3042A2174343B00C00567 /* TGBridgeBotCommandInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 09C572EF2172953500BDF00F /* TGBridgeBotCommandInfo.m */; };
|
||||
09D3042C2174344900C00567 /* TGBridgeActionMediaAttachment.m in Sources */ = {isa = PBXBuildFile; fileRef = 09C572E22172953300BDF00F /* TGBridgeActionMediaAttachment.m */; };
|
||||
09D3042D2174344900C00567 /* TGBridgeAudioMediaAttachment.m in Sources */ = {isa = PBXBuildFile; fileRef = 09C572E02172953300BDF00F /* TGBridgeAudioMediaAttachment.m */; };
|
||||
09D3042E2174344900C00567 /* TGBridgeContactMediaAttachment.m in Sources */ = {isa = PBXBuildFile; fileRef = 09C572DE2172953300BDF00F /* TGBridgeContactMediaAttachment.m */; };
|
||||
09D3042F2174344900C00567 /* TGBridgeDocumentMediaAttachment.m in Sources */ = {isa = PBXBuildFile; fileRef = 09C572FB2172953600BDF00F /* TGBridgeDocumentMediaAttachment.m */; };
|
||||
09D304302174344900C00567 /* TGBridgeForwardedMessageMediaAttachment.m in Sources */ = {isa = PBXBuildFile; fileRef = 09C572E62172953400BDF00F /* TGBridgeForwardedMessageMediaAttachment.m */; };
|
||||
09D304312174344900C00567 /* TGBridgeImageMediaAttachment.m in Sources */ = {isa = PBXBuildFile; fileRef = 09C572F22172953500BDF00F /* TGBridgeImageMediaAttachment.m */; };
|
||||
09D304322174344900C00567 /* TGBridgeLocationMediaAttachment.m in Sources */ = {isa = PBXBuildFile; fileRef = 09C573002172953600BDF00F /* TGBridgeLocationMediaAttachment.m */; };
|
||||
09D304332174344900C00567 /* TGBridgeMessageEntitiesAttachment.m in Sources */ = {isa = PBXBuildFile; fileRef = 09C5730A2172953700BDF00F /* TGBridgeMessageEntitiesAttachment.m */; };
|
||||
09D304342174344900C00567 /* TGBridgeReplyMarkupMediaAttachment.m in Sources */ = {isa = PBXBuildFile; fileRef = 09C5730D2172953800BDF00F /* TGBridgeReplyMarkupMediaAttachment.m */; };
|
||||
09D304352174344900C00567 /* TGBridgeReplyMessageMediaAttachment.m in Sources */ = {isa = PBXBuildFile; fileRef = 09C572FD2172953600BDF00F /* TGBridgeReplyMessageMediaAttachment.m */; };
|
||||
09D304362174344900C00567 /* TGBridgeUnsupportedMediaAttachment.m in Sources */ = {isa = PBXBuildFile; fileRef = 09C5730F2172953800BDF00F /* TGBridgeUnsupportedMediaAttachment.m */; };
|
||||
09D304372174344900C00567 /* TGBridgeVideoMediaAttachment.m in Sources */ = {isa = PBXBuildFile; fileRef = 09C572E42172953400BDF00F /* TGBridgeVideoMediaAttachment.m */; };
|
||||
09D304382174344900C00567 /* TGBridgeWebPageMediaAttachment.m in Sources */ = {isa = PBXBuildFile; fileRef = 09C572F52172953500BDF00F /* TGBridgeWebPageMediaAttachment.m */; };
|
||||
09D304392174344900C00567 /* TGBridgeMessageEntities.m in Sources */ = {isa = PBXBuildFile; fileRef = 09C572F42172953500BDF00F /* TGBridgeMessageEntities.m */; };
|
||||
09EBE2A522B004EA00F670AB /* BlueFilledIconIpad.png in Resources */ = {isa = PBXBuildFile; fileRef = 09EBE29922B004E800F670AB /* BlueFilledIconIpad.png */; };
|
||||
09EBE2A622B004EA00F670AB /* BlueIconIpad@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 09EBE29A22B004E800F670AB /* BlueIconIpad@2x.png */; };
|
||||
09EBE2A722B004EA00F670AB /* BlueIconIpad.png in Resources */ = {isa = PBXBuildFile; fileRef = 09EBE29B22B004E900F670AB /* BlueIconIpad.png */; };
|
||||
@ -237,7 +182,14 @@
|
||||
09FDAEE62140477F00BF856F /* MtProtoKitDynamic.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 09FDAEE52140477F00BF856F /* MtProtoKitDynamic.framework */; };
|
||||
D000CACF21FB6E380011B15D /* NotificationService.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = D000CAC821FB6E370011B15D /* NotificationService.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
|
||||
D001D5AA1F878DA300DF975A /* PhoneCountries.txt in Resources */ = {isa = PBXBuildFile; fileRef = D001D5A91F878DA300DF975A /* PhoneCountries.txt */; };
|
||||
D00859A21B28189D00EAF753 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00859A11B28189D00EAF753 /* AppDelegate.swift */; };
|
||||
D008184E22B5796E008A895F /* BuildConfig.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D008184D22B5796E008A895F /* BuildConfig.framework */; };
|
||||
D008185022B5797A008A895F /* BuildConfig.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D008184F22B5797A008A895F /* BuildConfig.framework */; };
|
||||
D008185222B57986008A895F /* BuildConfig.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D008185122B57986008A895F /* BuildConfig.framework */; };
|
||||
D008185422B57994008A895F /* BuildConfig.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D008185322B57994008A895F /* BuildConfig.framework */; };
|
||||
D008185622B579A1008A895F /* BuildConfig.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D008185522B579A1008A895F /* BuildConfig.framework */; };
|
||||
D008185822B579AD008A895F /* BuildConfig.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D008185722B579AD008A895F /* BuildConfig.framework */; };
|
||||
D00818A522B58CCB008A895F /* WatchCommonWatch.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D00818A422B58CCB008A895F /* WatchCommonWatch.framework */; };
|
||||
D00818CF22B595DB008A895F /* LightweightAccountData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D00818CE22B595DB008A895F /* LightweightAccountData.framework */; };
|
||||
D00859A91B28189D00EAF753 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = D00859A81B28189D00EAF753 /* Images.xcassets */; };
|
||||
D00859AC1B28189D00EAF753 /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = D00859AA1B28189D00EAF753 /* LaunchScreen.xib */; };
|
||||
D00ED75A1FE94630001F38BD /* AppIntentVocabulary.plist in Resources */ = {isa = PBXBuildFile; fileRef = D00ED7581FE94630001F38BD /* AppIntentVocabulary.plist */; };
|
||||
@ -257,7 +209,6 @@
|
||||
D02CF617215DA24900E0F56A /* Postbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D02CF616215DA24900E0F56A /* Postbox.framework */; };
|
||||
D02CF619215DA24900E0F56A /* SwiftSignalKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D02CF618215DA24900E0F56A /* SwiftSignalKit.framework */; };
|
||||
D02CF61B215DA24900E0F56A /* TelegramCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D02CF61A215DA24900E0F56A /* TelegramCore.framework */; };
|
||||
D02CF61C215E51D500E0F56A /* BuildConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = D09250011FE52D2A003F693F /* BuildConfig.m */; };
|
||||
D02E31231BD803E800CD3F01 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = D02E31221BD803E800CD3F01 /* main.m */; };
|
||||
D0338736223A9A9A007A2CE4 /* Config-Hockeyapp-Internal.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = D0338735223A9A99007A2CE4 /* Config-Hockeyapp-Internal.xcconfig */; };
|
||||
D03B0E7B1D63484500955575 /* ShareRootController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0E7A1D63484500955575 /* ShareRootController.swift */; };
|
||||
@ -297,16 +248,9 @@
|
||||
D04FA1CF2145E3810006EF45 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = D04FA1C32145E3810006EF45 /* InfoPlist.strings */; };
|
||||
D04FA1D02145E3810006EF45 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = D04FA1C62145E3810006EF45 /* InfoPlist.strings */; };
|
||||
D051DB0B215E5D1C00F30F92 /* TelegramUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0400ED81D5B8F97007931CE /* TelegramUI.framework */; };
|
||||
D051DB5D21602D6E00F30F92 /* LegacyDataImportSplash.swift in Sources */ = {isa = PBXBuildFile; fileRef = D051DB5C21602D6E00F30F92 /* LegacyDataImportSplash.swift */; };
|
||||
D052974622B0073F004ABAF6 /* WhiteFilledIcon@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D052974422B0073E004ABAF6 /* WhiteFilledIcon@3x.png */; };
|
||||
D052974722B0073F004ABAF6 /* WhiteFilledIcon@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D052974522B0073F004ABAF6 /* WhiteFilledIcon@2x.png */; };
|
||||
D053DAD32018ED2B00993D32 /* LockedWindowCoveringView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D053DAD22018ED2B00993D32 /* LockedWindowCoveringView.swift */; };
|
||||
D055BD441B7E216400F06C0A /* MapKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D055BD431B7E216400F06C0A /* MapKit.framework */; };
|
||||
D05B37F51FEA5F6E0041D2A5 /* SnapshotEnvironment.swift in Sources */ = {isa = PBXBuildFile; fileRef = D05B37F41FEA5F6E0041D2A5 /* SnapshotEnvironment.swift */; };
|
||||
D05B37F71FEA8C640041D2A5 /* SnapshotSecretChat.swift in Sources */ = {isa = PBXBuildFile; fileRef = D05B37F61FEA8C640041D2A5 /* SnapshotSecretChat.swift */; };
|
||||
D05B37F91FEA8CF00041D2A5 /* SnapshotSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = D05B37F81FEA8CF00041D2A5 /* SnapshotSettings.swift */; };
|
||||
D05B37FB1FEA8D020041D2A5 /* SnapshotAppearanceSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = D05B37FA1FEA8D020041D2A5 /* SnapshotAppearanceSettings.swift */; };
|
||||
D05B37FD1FEA8D870041D2A5 /* SnapshotResources.swift in Sources */ = {isa = PBXBuildFile; fileRef = D05B37FC1FEA8D870041D2A5 /* SnapshotResources.swift */; };
|
||||
D05B380A1FEA8E3D0041D2A5 /* Bitmap2.png in Resources */ = {isa = PBXBuildFile; fileRef = D05B37FF1FEA8E3D0041D2A5 /* Bitmap2.png */; };
|
||||
D05B380B1FEA8E3D0041D2A5 /* Bitmap3.png in Resources */ = {isa = PBXBuildFile; fileRef = D05B38001FEA8E3D0041D2A5 /* Bitmap3.png */; };
|
||||
D05B380C1FEA8E3D0041D2A5 /* Bitmap1.png in Resources */ = {isa = PBXBuildFile; fileRef = D05B38011FEA8E3D0041D2A5 /* Bitmap1.png */; };
|
||||
@ -322,15 +266,9 @@
|
||||
D0612E491D58B478000C8F02 /* Application.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0612E481D58B478000C8F02 /* Application.swift */; };
|
||||
D06706611D51185400DED3E3 /* TelegramCore.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = D06706601D51185400DED3E3 /* TelegramCore.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
D06706621D5118F500DED3E3 /* TelegramCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D06706601D51185400DED3E3 /* TelegramCore.framework */; };
|
||||
D06E4C2F21347D9200088087 /* UIImage+ImageEffects.m in Sources */ = {isa = PBXBuildFile; fileRef = D06E4C2E21347D9200088087 /* UIImage+ImageEffects.m */; };
|
||||
D073E52021FF7CE900742DDD /* Crypto.m in Sources */ = {isa = PBXBuildFile; fileRef = D073E51F21FF7CE900742DDD /* Crypto.m */; };
|
||||
D073E52222003E1E00742DDD /* Data.swift in Sources */ = {isa = PBXBuildFile; fileRef = D073E52122003E1E00742DDD /* Data.swift */; };
|
||||
D084023220E1883500065674 /* ApplicationShortcutItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D084023120E1883500065674 /* ApplicationShortcutItem.swift */; };
|
||||
D08410451FABDC5D008FFE92 /* TGItemProviderSignals.m in Sources */ = {isa = PBXBuildFile; fileRef = D08410441FABDC5C008FFE92 /* TGItemProviderSignals.m */; };
|
||||
D084104E1FABDCFD008FFE92 /* TGContactModel.m in Sources */ = {isa = PBXBuildFile; fileRef = D084104C1FABDCFD008FFE92 /* TGContactModel.m */; };
|
||||
D084104F1FABDCFD008FFE92 /* TGMimeTypeMap.m in Sources */ = {isa = PBXBuildFile; fileRef = D084104D1FABDCFD008FFE92 /* TGMimeTypeMap.m */; };
|
||||
D08410501FABDD54008FFE92 /* MtProtoKitDynamic.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D08410511FABDD54008FFE92 /* MtProtoKitDynamic.framework */; };
|
||||
D08410541FABE428008FFE92 /* ShareItems.swift in Sources */ = {isa = PBXBuildFile; fileRef = D08410531FABE428008FFE92 /* ShareItems.swift */; };
|
||||
D08611B21F5711080047111E /* HockeySDK.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = D01A47541F4DBED700383CC1 /* HockeySDK.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
D08984FE2118B3F100918162 /* MtProtoKitDynamic.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D08984FD2118B3F100918162 /* MtProtoKitDynamic.framework */; };
|
||||
D08985002118B3F100918162 /* Postbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D08984FF2118B3F100918162 /* Postbox.framework */; };
|
||||
@ -364,41 +302,24 @@
|
||||
D08DB0BE213F4D1D00F2ADBF /* start_arrow_ipad@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D050F2331E49DEDE00988324 /* start_arrow_ipad@2x.png */; };
|
||||
D08DB0BF213F4D1D00F2ADBF /* telegram_plane1@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D050F2341E49DEDE00988324 /* telegram_plane1@2x.png */; };
|
||||
D08DB0C0213F4D1D00F2ADBF /* telegram_sphere@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D050F2351E49DEDE00988324 /* telegram_sphere@2x.png */; };
|
||||
D09250021FE52D2A003F693F /* BuildConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = D09250011FE52D2A003F693F /* BuildConfig.m */; };
|
||||
D096C2BE1CC3C021006D814E /* Display.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D096C2BD1CC3C021006D814E /* Display.framework */; };
|
||||
D096C2BF1CC3C021006D814E /* Display.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = D096C2BD1CC3C021006D814E /* Display.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
D096C2C21CC3C104006D814E /* Postbox.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = D096C2C01CC3C104006D814E /* Postbox.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
D096C2C51CC3C11A006D814E /* SwiftSignalKit.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = D096C2C31CC3C11A006D814E /* SwiftSignalKit.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
D09A59601B5858DB00FC3724 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D09A595F1B5858DB00FC3724 /* SystemConfiguration.framework */; };
|
||||
D09B79C52219C784003B1F9D /* SharedAccountInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = D09B79C42219C784003B1F9D /* SharedAccountInfo.swift */; };
|
||||
D09B79C62219C784003B1F9D /* SharedAccountInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = D09B79C42219C784003B1F9D /* SharedAccountInfo.swift */; };
|
||||
D09B79C82219C7AE003B1F9D /* ManageSharedAccountInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = D09B79C72219C7AE003B1F9D /* ManageSharedAccountInfo.swift */; };
|
||||
D09DCBB71D0C856B00F51FFE /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = D09DCBB51D0C856B00F51FFE /* Localizable.strings */; };
|
||||
D0A18D631E149043004C6734 /* PushKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0A18D621E149043004C6734 /* PushKit.framework */; };
|
||||
D0A18D651E15C020004C6734 /* WakeupManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0A18D641E15C020004C6734 /* WakeupManager.swift */; };
|
||||
D0ADF958212B56DC00310BBC /* LegacyUserDataImport.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0ADF957212B56DC00310BBC /* LegacyUserDataImport.swift */; };
|
||||
D0ADF95A212B5AC600310BBC /* LegacyResourceImport.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0ADF959212B5AC600310BBC /* LegacyResourceImport.swift */; };
|
||||
D0ADF95C212B636D00310BBC /* LegacyChatImport.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0ADF95B212B636D00310BBC /* LegacyChatImport.swift */; };
|
||||
D0ADF95E212C818F00310BBC /* LegacyPreferencesImport.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0ADF95D212C818F00310BBC /* LegacyPreferencesImport.swift */; };
|
||||
D0ADF961212C8DF600310BBC /* TGAutoDownloadPreferences.m in Sources */ = {isa = PBXBuildFile; fileRef = D0ADF95F212C8DF600310BBC /* TGAutoDownloadPreferences.m */; };
|
||||
D0ADF964212C9AA900310BBC /* TGProxyItem.m in Sources */ = {isa = PBXBuildFile; fileRef = D0ADF963212C9AA900310BBC /* TGProxyItem.m */; };
|
||||
D0AF32291FACA1920097362B /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0D17E891CAAD66600C4750B /* Accelerate.framework */; };
|
||||
D0AF322C1FACA1B00097362B /* libc++.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = D0B8445F1DACF561005F29E1 /* libc++.tbd */; };
|
||||
D0AF322F1FACBA280097362B /* TGShareLocationSignals.m in Sources */ = {isa = PBXBuildFile; fileRef = D0AF322D1FACBA270097362B /* TGShareLocationSignals.m */; };
|
||||
D0B21B0D2203A9A1003F741D /* SharedWakeupManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B21B0C2203A9A1003F741D /* SharedWakeupManager.swift */; };
|
||||
D0B21B0F220438E9003F741D /* SharedNotificationManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B21B0E220438E9003F741D /* SharedNotificationManager.swift */; };
|
||||
D0B2F738204F4C9900D3BFB9 /* NotificationCenter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0E41A381D65A69C00FBFC00 /* NotificationCenter.framework */; };
|
||||
D0B2F742204F4C9900D3BFB9 /* Widget.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = D0B2F737204F4C9900D3BFB9 /* Widget.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
|
||||
D0B2F74A204F4D6100D3BFB9 /* Postbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0B2F74F204F4D6100D3BFB9 /* Postbox.framework */; };
|
||||
D0B2F74B204F4D6100D3BFB9 /* SwiftSignalKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0B2F750204F4D6100D3BFB9 /* SwiftSignalKit.framework */; };
|
||||
D0B2F74C204F4D6100D3BFB9 /* TelegramCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0B2F751204F4D6100D3BFB9 /* TelegramCore.framework */; };
|
||||
D0B2F755204F4EAF00D3BFB9 /* BuildConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = D09250011FE52D2A003F693F /* BuildConfig.m */; };
|
||||
D0B2F7602050102600D3BFB9 /* PeerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B2F75F2050102600D3BFB9 /* PeerNode.swift */; };
|
||||
D0B3B53B21666C0000FC60A0 /* LegacyFileImport.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B3B53A21666C0000FC60A0 /* LegacyFileImport.swift */; };
|
||||
D0B4AF8F1EC122A700D51FF6 /* TelegramUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0400ED81D5B8F97007931CE /* TelegramUI.framework */; };
|
||||
D0B4AF901EC122A700D51FF6 /* TelegramUI.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = D0400ED81D5B8F97007931CE /* TelegramUI.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
D0B844601DACF561005F29E1 /* libc++.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = D0B8445F1DACF561005F29E1 /* libc++.tbd */; };
|
||||
D0BEAF731E54C9A900BD963D /* ApplicationContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BEAF721E54C9A900BD963D /* ApplicationContext.swift */; };
|
||||
D0C2DFF81CC4D1BA0044FF83 /* MobileCoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C2DFF71CC4D1BA0044FF83 /* MobileCoreServices.framework */; };
|
||||
D0CAD6A421C03BEB001E3055 /* FFMpeg.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0CAD6A321C03BEB001E3055 /* FFMpeg.framework */; };
|
||||
D0CAD6A521C03BEB001E3055 /* FFMpeg.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = D0CAD6A321C03BEB001E3055 /* FFMpeg.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
@ -406,7 +327,6 @@
|
||||
D0CCD61D222EFFB000EE1E08 /* MtProtoKitDynamic.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0CCD61C222EFFB000EE1E08 /* MtProtoKitDynamic.framework */; };
|
||||
D0CD17B51CC3AE14007C5650 /* AsyncDisplayKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0CD17B41CC3AE14007C5650 /* AsyncDisplayKit.framework */; };
|
||||
D0CD17B61CC3AE14007C5650 /* AsyncDisplayKit.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = D0CD17B41CC3AE14007C5650 /* AsyncDisplayKit.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
D0CE6F1C213ED11100BCD44B /* TGPresentationAutoNightPreferences.m in Sources */ = {isa = PBXBuildFile; fileRef = D0CE6F1B213ED11100BCD44B /* TGPresentationAutoNightPreferences.m */; };
|
||||
D0CE6F55213EDA4400BCD44B /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = D0CE6F1E213EDA4200BCD44B /* Localizable.strings */; };
|
||||
D0CE6F56213EDA4400BCD44B /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = D0CE6F20213EDA4200BCD44B /* InfoPlist.strings */; };
|
||||
D0CE6F57213EDA4400BCD44B /* AppIntentVocabulary.plist in Resources */ = {isa = PBXBuildFile; fileRef = D0CE6F22213EDA4200BCD44B /* AppIntentVocabulary.plist */; };
|
||||
@ -432,11 +352,7 @@
|
||||
D0CE6F6B213EDA4400BCD44B /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = D0CE6F51213EDA4400BCD44B /* InfoPlist.strings */; };
|
||||
D0CE6F6C213EDA4400BCD44B /* AppIntentVocabulary.plist in Resources */ = {isa = PBXBuildFile; fileRef = D0CE6F53213EDA4400BCD44B /* AppIntentVocabulary.plist */; };
|
||||
D0CFBB931FD88C2900B65C0D /* begin_record.caf in Resources */ = {isa = PBXBuildFile; fileRef = D0CFBB921FD88C2900B65C0D /* begin_record.caf */; };
|
||||
D0D102682212E9E6003ADA5E /* SharedWakeupManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B21B0C2203A9A1003F741D /* SharedWakeupManager.swift */; };
|
||||
D0D102692212F719003ADA5E /* SharedNotificationManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B21B0E220438E9003F741D /* SharedNotificationManager.swift */; };
|
||||
D0D1026A2212F804003ADA5E /* ClearNotificationsManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0EB243A201B77C400F6CC13 /* ClearNotificationsManager.swift */; };
|
||||
D0D17E8A1CAAD66600C4750B /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0D17E891CAAD66600C4750B /* Accelerate.framework */; };
|
||||
D0D2276F212739120028F943 /* LegacyDataImport.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0D2276E212739120028F943 /* LegacyDataImport.swift */; };
|
||||
D0D268791D79A70A00C422DA /* IntentHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0D268781D79A70A00C422DA /* IntentHandler.swift */; };
|
||||
D0D2688E1D79A70B00C422DA /* SiriIntents.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = D0D268761D79A70A00C422DA /* SiriIntents.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
|
||||
D0E2CE642227F0680084E3DD /* ManagedFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E2CE632227F0680084E3DD /* ManagedFile.swift */; };
|
||||
@ -447,14 +363,9 @@
|
||||
D0E8B8B12044496C00605593 /* voip_busy.caf in Resources */ = {isa = PBXBuildFile; fileRef = D0E8B8AC2044496C00605593 /* voip_busy.caf */; };
|
||||
D0E8C2DE2285EA55009F26E8 /* BlackIcon@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0E8C2DD2285EA55009F26E8 /* BlackIcon@2x.png */; };
|
||||
D0E8C2E02285EA6A009F26E8 /* BlackIcon@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0E8C2DF2285EA6A009F26E8 /* BlackIcon@3x.png */; };
|
||||
D0EA97941FE84F2D00792DD6 /* BuildConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = D09250011FE52D2A003F693F /* BuildConfig.m */; };
|
||||
D0EA97951FE84F2E00792DD6 /* BuildConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = D09250011FE52D2A003F693F /* BuildConfig.m */; };
|
||||
D0EB243B201B77C400F6CC13 /* ClearNotificationsManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0EB243A201B77C400F6CC13 /* ClearNotificationsManager.swift */; };
|
||||
D0ECCB7F1FE9C38500609802 /* Telegram_iOS_UITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0ECCB7E1FE9C38500609802 /* Telegram_iOS_UITests.swift */; };
|
||||
D0ECCB8A1FE9C4AC00609802 /* SnapshotHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0ECCB891FE9C4AC00609802 /* SnapshotHelper.swift */; };
|
||||
D0ECCB8D1FE9CE3F00609802 /* SnapshotChatList.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0ECCB8C1FE9CE3F00609802 /* SnapshotChatList.swift */; };
|
||||
D0ED633A21FF3EDF001D4648 /* AccountData.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0ED633921FF3EDF001D4648 /* AccountData.swift */; };
|
||||
D0ED633B21FF3EFD001D4648 /* BuildConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = D09250011FE52D2A003F693F /* BuildConfig.m */; };
|
||||
D0ED633D21FF4580001D4648 /* NotificationService.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0400EE41D5B912E007931CE /* NotificationService.swift */; };
|
||||
D0ED633F21FF46E4001D4648 /* ImageData.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0ED633E21FF46E4001D4648 /* ImageData.swift */; };
|
||||
D0ED634121FF4786001D4648 /* Serialization.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0ED634021FF4786001D4648 /* Serialization.swift */; };
|
||||
@ -604,8 +515,6 @@
|
||||
09C50E852173854D009E676F /* WatchKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WatchKit.framework; path = System/Library/Frameworks/WatchKit.framework; sourceTree = SDKROOT; };
|
||||
09C50E87217385CF009E676F /* WatchConnectivity.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WatchConnectivity.framework; path = System/Library/Frameworks/WatchConnectivity.framework; sourceTree = SDKROOT; };
|
||||
09C50E892173AEDB009E676F /* WatchRequestHandlers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WatchRequestHandlers.swift; sourceTree = "<group>"; };
|
||||
09C50E8F2173B247009E676F /* TGBridgeSubscriptions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TGBridgeSubscriptions.m; path = Bridge/TGBridgeSubscriptions.m; sourceTree = "<group>"; };
|
||||
09C50E902173B247009E676F /* TGBridgeSubscriptions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TGBridgeSubscriptions.h; path = Bridge/TGBridgeSubscriptions.h; sourceTree = "<group>"; };
|
||||
09C56F8B2172797200BDF00F /* Watch.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Watch.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
09C56F8E2172797200BDF00F /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Interface.storyboard; sourceTree = "<group>"; };
|
||||
09C56F902172797400BDF00F /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
|
||||
@ -870,70 +779,19 @@
|
||||
09C572C9217292BB00BDF00F /* TGBridgeStateSignal.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TGBridgeStateSignal.m; path = Bridge/TGBridgeStateSignal.m; sourceTree = "<group>"; };
|
||||
09C572CA217292BB00BDF00F /* TGBridgeUserInfoSignals.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TGBridgeUserInfoSignals.m; path = Bridge/TGBridgeUserInfoSignals.m; sourceTree = "<group>"; };
|
||||
09C572CC2172939F00BDF00F /* TGBridgeClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TGBridgeClient.h; path = Bridge/TGBridgeClient.h; sourceTree = "<group>"; };
|
||||
09C572CE2172939F00BDF00F /* TGBridgeCommon.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TGBridgeCommon.m; path = Bridge/TGBridgeCommon.m; sourceTree = "<group>"; };
|
||||
09C572CF2172939F00BDF00F /* TGBridgeCommon.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TGBridgeCommon.h; path = Bridge/TGBridgeCommon.h; sourceTree = "<group>"; };
|
||||
09C572D02172939F00BDF00F /* TGBridgeClient.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TGBridgeClient.m; path = Bridge/TGBridgeClient.m; sourceTree = "<group>"; };
|
||||
09C572D62172953200BDF00F /* TGBridgeMediaAttachment.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TGBridgeMediaAttachment.h; path = Bridge/TGBridgeMediaAttachment.h; sourceTree = "<group>"; };
|
||||
09C572D72172953300BDF00F /* TGBridgeMessage+TGTableItem.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "TGBridgeMessage+TGTableItem.m"; path = "Bridge/TGBridgeMessage+TGTableItem.m"; sourceTree = "<group>"; };
|
||||
09C572D92172953300BDF00F /* TGBridgeBotReplyMarkup.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TGBridgeBotReplyMarkup.m; path = Bridge/TGBridgeBotReplyMarkup.m; sourceTree = "<group>"; };
|
||||
09C572DA2172953300BDF00F /* TGBridgeContactMediaAttachment.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TGBridgeContactMediaAttachment.h; path = Bridge/TGBridgeContactMediaAttachment.h; sourceTree = "<group>"; };
|
||||
09C572DB2172953300BDF00F /* TGBridgeChat+TGTableItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "TGBridgeChat+TGTableItem.h"; path = "Bridge/TGBridgeChat+TGTableItem.h"; sourceTree = "<group>"; };
|
||||
09C572DC2172953300BDF00F /* TGBridgeActionMediaAttachment.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TGBridgeActionMediaAttachment.h; path = Bridge/TGBridgeActionMediaAttachment.h; sourceTree = "<group>"; };
|
||||
09C572DD2172953300BDF00F /* TGBridgeBotReplyMarkup.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TGBridgeBotReplyMarkup.h; path = Bridge/TGBridgeBotReplyMarkup.h; sourceTree = "<group>"; };
|
||||
09C572DE2172953300BDF00F /* TGBridgeContactMediaAttachment.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TGBridgeContactMediaAttachment.m; path = Bridge/TGBridgeContactMediaAttachment.m; sourceTree = "<group>"; };
|
||||
09C572DF2172953300BDF00F /* TGBridgeMessage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TGBridgeMessage.m; path = Bridge/TGBridgeMessage.m; sourceTree = "<group>"; };
|
||||
09C572E02172953300BDF00F /* TGBridgeAudioMediaAttachment.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TGBridgeAudioMediaAttachment.m; path = Bridge/TGBridgeAudioMediaAttachment.m; sourceTree = "<group>"; };
|
||||
09C572E12172953300BDF00F /* TGBridgeReplyMarkupMediaAttachment.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TGBridgeReplyMarkupMediaAttachment.h; path = Bridge/TGBridgeReplyMarkupMediaAttachment.h; sourceTree = "<group>"; };
|
||||
09C572E22172953300BDF00F /* TGBridgeActionMediaAttachment.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TGBridgeActionMediaAttachment.m; path = Bridge/TGBridgeActionMediaAttachment.m; sourceTree = "<group>"; };
|
||||
09C572E32172953400BDF00F /* TGBridgeStickerPack.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TGBridgeStickerPack.m; path = Bridge/TGBridgeStickerPack.m; sourceTree = "<group>"; };
|
||||
09C572E42172953400BDF00F /* TGBridgeVideoMediaAttachment.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TGBridgeVideoMediaAttachment.m; path = Bridge/TGBridgeVideoMediaAttachment.m; sourceTree = "<group>"; };
|
||||
09C572E62172953400BDF00F /* TGBridgeForwardedMessageMediaAttachment.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TGBridgeForwardedMessageMediaAttachment.m; path = Bridge/TGBridgeForwardedMessageMediaAttachment.m; sourceTree = "<group>"; };
|
||||
09C572E72172953400BDF00F /* TGBridgeLocationMediaAttachment.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TGBridgeLocationMediaAttachment.h; path = Bridge/TGBridgeLocationMediaAttachment.h; sourceTree = "<group>"; };
|
||||
09C572E82172953400BDF00F /* TGBridgeBotInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TGBridgeBotInfo.h; path = Bridge/TGBridgeBotInfo.h; sourceTree = "<group>"; };
|
||||
09C572E92172953400BDF00F /* TGBridgeUser+TGTableItem.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "TGBridgeUser+TGTableItem.m"; path = "Bridge/TGBridgeUser+TGTableItem.m"; sourceTree = "<group>"; };
|
||||
09C572EA2172953400BDF00F /* TGBridgeBotCommandInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TGBridgeBotCommandInfo.h; path = Bridge/TGBridgeBotCommandInfo.h; sourceTree = "<group>"; };
|
||||
09C572EB2172953400BDF00F /* TGBridgeUser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TGBridgeUser.h; path = Bridge/TGBridgeUser.h; sourceTree = "<group>"; };
|
||||
09C572EC2172953400BDF00F /* TGBridgeReplyMessageMediaAttachment.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TGBridgeReplyMessageMediaAttachment.h; path = Bridge/TGBridgeReplyMessageMediaAttachment.h; sourceTree = "<group>"; };
|
||||
09C572ED2172953400BDF00F /* TGBridgeUser.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TGBridgeUser.m; path = Bridge/TGBridgeUser.m; sourceTree = "<group>"; };
|
||||
09C572EE2172953400BDF00F /* TGBridgeImageMediaAttachment.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TGBridgeImageMediaAttachment.h; path = Bridge/TGBridgeImageMediaAttachment.h; sourceTree = "<group>"; };
|
||||
09C572EF2172953500BDF00F /* TGBridgeBotCommandInfo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TGBridgeBotCommandInfo.m; path = Bridge/TGBridgeBotCommandInfo.m; sourceTree = "<group>"; };
|
||||
09C572F02172953500BDF00F /* TGBridgeDocumentMediaAttachment.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TGBridgeDocumentMediaAttachment.h; path = Bridge/TGBridgeDocumentMediaAttachment.h; sourceTree = "<group>"; };
|
||||
09C572F12172953500BDF00F /* TGBridgeChat.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TGBridgeChat.h; path = Bridge/TGBridgeChat.h; sourceTree = "<group>"; };
|
||||
09C572F22172953500BDF00F /* TGBridgeImageMediaAttachment.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TGBridgeImageMediaAttachment.m; path = Bridge/TGBridgeImageMediaAttachment.m; sourceTree = "<group>"; };
|
||||
09C572F32172953500BDF00F /* TGBridgeLocationVenue.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TGBridgeLocationVenue.m; path = Bridge/TGBridgeLocationVenue.m; sourceTree = "<group>"; };
|
||||
09C572F42172953500BDF00F /* TGBridgeMessageEntities.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TGBridgeMessageEntities.m; path = Bridge/TGBridgeMessageEntities.m; sourceTree = "<group>"; };
|
||||
09C572F52172953500BDF00F /* TGBridgeWebPageMediaAttachment.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TGBridgeWebPageMediaAttachment.m; path = Bridge/TGBridgeWebPageMediaAttachment.m; sourceTree = "<group>"; };
|
||||
09C572F62172953500BDF00F /* TGBridgeChat+TGTableItem.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "TGBridgeChat+TGTableItem.m"; path = "Bridge/TGBridgeChat+TGTableItem.m"; sourceTree = "<group>"; };
|
||||
09C572F72172953500BDF00F /* TGBridgeMessage+TGTableItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "TGBridgeMessage+TGTableItem.h"; path = "Bridge/TGBridgeMessage+TGTableItem.h"; sourceTree = "<group>"; };
|
||||
09C572F82172953500BDF00F /* TGBridgeMessageEntitiesAttachment.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TGBridgeMessageEntitiesAttachment.h; path = Bridge/TGBridgeMessageEntitiesAttachment.h; sourceTree = "<group>"; };
|
||||
09C572F92172953600BDF00F /* TGBridgeMediaAttachment.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TGBridgeMediaAttachment.m; path = Bridge/TGBridgeMediaAttachment.m; sourceTree = "<group>"; };
|
||||
09C572FA2172953600BDF00F /* TGBridgeMessageEntities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TGBridgeMessageEntities.h; path = Bridge/TGBridgeMessageEntities.h; sourceTree = "<group>"; };
|
||||
09C572FB2172953600BDF00F /* TGBridgeDocumentMediaAttachment.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TGBridgeDocumentMediaAttachment.m; path = Bridge/TGBridgeDocumentMediaAttachment.m; sourceTree = "<group>"; };
|
||||
09C572FC2172953600BDF00F /* TGBridgePeerNotificationSettings.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TGBridgePeerNotificationSettings.m; path = Bridge/TGBridgePeerNotificationSettings.m; sourceTree = "<group>"; };
|
||||
09C572FD2172953600BDF00F /* TGBridgeReplyMessageMediaAttachment.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TGBridgeReplyMessageMediaAttachment.m; path = Bridge/TGBridgeReplyMessageMediaAttachment.m; sourceTree = "<group>"; };
|
||||
09C572FE2172953600BDF00F /* TGBridgeForwardedMessageMediaAttachment.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TGBridgeForwardedMessageMediaAttachment.h; path = Bridge/TGBridgeForwardedMessageMediaAttachment.h; sourceTree = "<group>"; };
|
||||
09C572FF2172953600BDF00F /* TGBridgeLocationVenue+TGTableItem.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "TGBridgeLocationVenue+TGTableItem.m"; path = "Bridge/TGBridgeLocationVenue+TGTableItem.m"; sourceTree = "<group>"; };
|
||||
09C573002172953600BDF00F /* TGBridgeLocationMediaAttachment.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TGBridgeLocationMediaAttachment.m; path = Bridge/TGBridgeLocationMediaAttachment.m; sourceTree = "<group>"; };
|
||||
09C573022172953600BDF00F /* TGBridgePeerNotificationSettings.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TGBridgePeerNotificationSettings.h; path = Bridge/TGBridgePeerNotificationSettings.h; sourceTree = "<group>"; };
|
||||
09C573032172953600BDF00F /* TGBridgeContext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TGBridgeContext.h; path = Bridge/TGBridgeContext.h; sourceTree = "<group>"; };
|
||||
09C573042172953700BDF00F /* TGBridgeMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TGBridgeMessage.h; path = Bridge/TGBridgeMessage.h; sourceTree = "<group>"; };
|
||||
09C573052172953700BDF00F /* TGBridgeUser+TGTableItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "TGBridgeUser+TGTableItem.h"; path = "Bridge/TGBridgeUser+TGTableItem.h"; sourceTree = "<group>"; };
|
||||
09C573062172953700BDF00F /* TGBridgeVideoMediaAttachment.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TGBridgeVideoMediaAttachment.h; path = Bridge/TGBridgeVideoMediaAttachment.h; sourceTree = "<group>"; };
|
||||
09C573072172953700BDF00F /* TGBridgeContext.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TGBridgeContext.m; path = Bridge/TGBridgeContext.m; sourceTree = "<group>"; };
|
||||
09C573082172953700BDF00F /* TGBridgeAudioMediaAttachment.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TGBridgeAudioMediaAttachment.h; path = Bridge/TGBridgeAudioMediaAttachment.h; sourceTree = "<group>"; };
|
||||
09C573092172953700BDF00F /* TGBridgeChat.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TGBridgeChat.m; path = Bridge/TGBridgeChat.m; sourceTree = "<group>"; };
|
||||
09C5730A2172953700BDF00F /* TGBridgeMessageEntitiesAttachment.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TGBridgeMessageEntitiesAttachment.m; path = Bridge/TGBridgeMessageEntitiesAttachment.m; sourceTree = "<group>"; };
|
||||
09C5730B2172953700BDF00F /* TGBridgeLocationVenue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TGBridgeLocationVenue.h; path = Bridge/TGBridgeLocationVenue.h; sourceTree = "<group>"; };
|
||||
09C5730C2172953700BDF00F /* TGBridgeChatMessages.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TGBridgeChatMessages.m; path = Bridge/TGBridgeChatMessages.m; sourceTree = "<group>"; };
|
||||
09C5730D2172953800BDF00F /* TGBridgeReplyMarkupMediaAttachment.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TGBridgeReplyMarkupMediaAttachment.m; path = Bridge/TGBridgeReplyMarkupMediaAttachment.m; sourceTree = "<group>"; };
|
||||
09C5730F2172953800BDF00F /* TGBridgeUnsupportedMediaAttachment.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TGBridgeUnsupportedMediaAttachment.m; path = Bridge/TGBridgeUnsupportedMediaAttachment.m; sourceTree = "<group>"; };
|
||||
09C573102172953800BDF00F /* TGBridgeBotInfo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TGBridgeBotInfo.m; path = Bridge/TGBridgeBotInfo.m; sourceTree = "<group>"; };
|
||||
09C573112172953800BDF00F /* TGBridgeUnsupportedMediaAttachment.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TGBridgeUnsupportedMediaAttachment.h; path = Bridge/TGBridgeUnsupportedMediaAttachment.h; sourceTree = "<group>"; };
|
||||
09C573122172953800BDF00F /* TGBridgeWebPageMediaAttachment.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TGBridgeWebPageMediaAttachment.h; path = Bridge/TGBridgeWebPageMediaAttachment.h; sourceTree = "<group>"; };
|
||||
09C573132172953800BDF00F /* TGBridgeStickerPack.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TGBridgeStickerPack.h; path = Bridge/TGBridgeStickerPack.h; sourceTree = "<group>"; };
|
||||
09C573142172953800BDF00F /* TGBridgeChatMessages.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TGBridgeChatMessages.h; path = Bridge/TGBridgeChatMessages.h; sourceTree = "<group>"; };
|
||||
09C573152172953800BDF00F /* TGBridgeLocationVenue+TGTableItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "TGBridgeLocationVenue+TGTableItem.h"; path = "Bridge/TGBridgeLocationVenue+TGTableItem.h"; sourceTree = "<group>"; };
|
||||
09C573362172974E00BDF00F /* TGBridgePeerIdAdapter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TGBridgePeerIdAdapter.h; path = Bridge/TGBridgePeerIdAdapter.h; sourceTree = "<group>"; };
|
||||
09CFB211217299E80083F7A3 /* CoreLocation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreLocation.framework; path = Platforms/WatchOS.platform/Developer/SDKs/WatchOS5.0.sdk/System/Library/Frameworks/CoreLocation.framework; sourceTree = DEVELOPER_DIR; };
|
||||
09D304212174335F00C00567 /* WatchBridge.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WatchBridge.swift; sourceTree = "<group>"; };
|
||||
09EBE29922B004E800F670AB /* BlueFilledIconIpad.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = BlueFilledIconIpad.png; sourceTree = "<group>"; };
|
||||
@ -956,9 +814,18 @@
|
||||
D000CAC821FB6E370011B15D /* NotificationService.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = NotificationService.appex; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D001D5A91F878DA300DF975A /* PhoneCountries.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = PhoneCountries.txt; path = "Telegram-iOS/Resources/PhoneCountries.txt"; sourceTree = "<group>"; };
|
||||
D006CFA121A8D12600FDCD32 /* ModernProto.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ModernProto.framework; path = "../../../Library/Developer/Xcode/DerivedData/Telegram-iOS-ffbqcdyqpehxdvcwhyaorlehrrdc/Build/Products/Debug Hockeyapp-iphoneos/ModernProto.framework"; sourceTree = "<group>"; };
|
||||
D008184B22B578EC008A895F /* WatchCommon.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = WatchCommon.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D008184D22B5796E008A895F /* BuildConfig.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = BuildConfig.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D008184F22B5797A008A895F /* BuildConfig.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = BuildConfig.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D008185122B57986008A895F /* BuildConfig.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = BuildConfig.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D008185322B57994008A895F /* BuildConfig.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = BuildConfig.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D008185522B579A1008A895F /* BuildConfig.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = BuildConfig.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D008185722B579AD008A895F /* BuildConfig.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = BuildConfig.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D008185922B57EF5008A895F /* WatchCommon.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = WatchCommon.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D00818A422B58CCB008A895F /* WatchCommonWatch.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = WatchCommonWatch.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D00818CE22B595DB008A895F /* LightweightAccountData.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = LightweightAccountData.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D008599C1B28189D00EAF753 /* Telegram.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Telegram.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D00859A01B28189D00EAF753 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||
D00859A11B28189D00EAF753 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
|
||||
D00859A81B28189D00EAF753 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = "<group>"; };
|
||||
D00859AB1B28189D00EAF753 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/LaunchScreen.xib; sourceTree = "<group>"; };
|
||||
D00859B61B28189D00EAF753 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||
@ -1061,16 +928,9 @@
|
||||
D050F2341E49DEDE00988324 /* telegram_plane1@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "telegram_plane1@2x.png"; sourceTree = "<group>"; };
|
||||
D050F2351E49DEDE00988324 /* telegram_sphere@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "telegram_sphere@2x.png"; sourceTree = "<group>"; };
|
||||
D051DB0C215E5E2300F30F92 /* NotificationContent.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = NotificationContent.entitlements; sourceTree = "<group>"; };
|
||||
D051DB5C21602D6E00F30F92 /* LegacyDataImportSplash.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LegacyDataImportSplash.swift; sourceTree = "<group>"; };
|
||||
D052974422B0073E004ABAF6 /* WhiteFilledIcon@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "WhiteFilledIcon@3x.png"; sourceTree = "<group>"; };
|
||||
D052974522B0073F004ABAF6 /* WhiteFilledIcon@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "WhiteFilledIcon@2x.png"; sourceTree = "<group>"; };
|
||||
D053DAD22018ED2B00993D32 /* LockedWindowCoveringView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LockedWindowCoveringView.swift; sourceTree = "<group>"; };
|
||||
D055BD431B7E216400F06C0A /* MapKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MapKit.framework; path = System/Library/Frameworks/MapKit.framework; sourceTree = SDKROOT; };
|
||||
D05B37F41FEA5F6E0041D2A5 /* SnapshotEnvironment.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SnapshotEnvironment.swift; sourceTree = "<group>"; };
|
||||
D05B37F61FEA8C640041D2A5 /* SnapshotSecretChat.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SnapshotSecretChat.swift; sourceTree = "<group>"; };
|
||||
D05B37F81FEA8CF00041D2A5 /* SnapshotSettings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SnapshotSettings.swift; sourceTree = "<group>"; };
|
||||
D05B37FA1FEA8D020041D2A5 /* SnapshotAppearanceSettings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SnapshotAppearanceSettings.swift; sourceTree = "<group>"; };
|
||||
D05B37FC1FEA8D870041D2A5 /* SnapshotResources.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SnapshotResources.swift; sourceTree = "<group>"; };
|
||||
D05B37FF1FEA8E3D0041D2A5 /* Bitmap2.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Bitmap2.png; sourceTree = "<group>"; };
|
||||
D05B38001FEA8E3D0041D2A5 /* Bitmap3.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Bitmap3.png; sourceTree = "<group>"; };
|
||||
D05B38011FEA8E3D0041D2A5 /* Bitmap1.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Bitmap1.png; sourceTree = "<group>"; };
|
||||
@ -1084,44 +944,27 @@
|
||||
D05B38091FEA8E3D0041D2A5 /* Bitmap11.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Bitmap11.png; sourceTree = "<group>"; };
|
||||
D0612E481D58B478000C8F02 /* Application.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Application.swift; sourceTree = "<group>"; };
|
||||
D06706601D51185400DED3E3 /* TelegramCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = TelegramCore.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D06E4C2D21347D9200088087 /* UIImage+ImageEffects.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIImage+ImageEffects.h"; sourceTree = "<group>"; };
|
||||
D06E4C2E21347D9200088087 /* UIImage+ImageEffects.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIImage+ImageEffects.m"; sourceTree = "<group>"; };
|
||||
D073E51E21FF7CE900742DDD /* Crypto.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Crypto.h; sourceTree = "<group>"; };
|
||||
D073E51F21FF7CE900742DDD /* Crypto.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = Crypto.m; sourceTree = "<group>"; };
|
||||
D073E52122003E1E00742DDD /* Data.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Data.swift; sourceTree = "<group>"; };
|
||||
D07477B522A72B1F002737C4 /* TempRoot.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TempRoot.swift; sourceTree = "<group>"; };
|
||||
D07477B722A732F1002737C4 /* TempMain.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TempMain.m; sourceTree = "<group>"; };
|
||||
D079FD001F06BBD10038FADE /* Telegram-iOS-AppStore.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = "Telegram-iOS-AppStore.entitlements"; sourceTree = "<group>"; };
|
||||
D084023120E1883500065674 /* ApplicationShortcutItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ApplicationShortcutItem.swift; sourceTree = "<group>"; };
|
||||
D08410431FABDC5B008FFE92 /* TGItemProviderSignals.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TGItemProviderSignals.h; sourceTree = "<group>"; };
|
||||
D08410441FABDC5C008FFE92 /* TGItemProviderSignals.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TGItemProviderSignals.m; sourceTree = "<group>"; };
|
||||
D08410471FABDC7A008FFE92 /* SSignalKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = SSignalKit.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D08410491FABDCF2008FFE92 /* LegacyComponents.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = LegacyComponents.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D084104A1FABDCFD008FFE92 /* TGContactModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TGContactModel.h; sourceTree = "<group>"; };
|
||||
D084104B1FABDCFD008FFE92 /* TGMimeTypeMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TGMimeTypeMap.h; sourceTree = "<group>"; };
|
||||
D084104C1FABDCFD008FFE92 /* TGContactModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TGContactModel.m; sourceTree = "<group>"; };
|
||||
D084104D1FABDCFD008FFE92 /* TGMimeTypeMap.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TGMimeTypeMap.m; sourceTree = "<group>"; };
|
||||
D08410511FABDD54008FFE92 /* MtProtoKitDynamic.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = MtProtoKitDynamic.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D08410521FABDEC8008FFE92 /* Share-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Share-Bridging-Header.h"; sourceTree = "<group>"; };
|
||||
D08410531FABE428008FFE92 /* ShareItems.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShareItems.swift; sourceTree = "<group>"; };
|
||||
D08984FD2118B3F100918162 /* MtProtoKitDynamic.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = MtProtoKitDynamic.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D08984FF2118B3F100918162 /* Postbox.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Postbox.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D08985012118B3F100918162 /* TelegramCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramCore.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D08985032118B46F00918162 /* SwiftSignalKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = SwiftSignalKit.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D08985052118B62400918162 /* SiriIntents-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "SiriIntents-Bridging-Header.h"; sourceTree = "<group>"; };
|
||||
D08985062119B7FE00918162 /* IntentContacts.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IntentContacts.swift; sourceTree = "<group>"; };
|
||||
D09250001FE52D2A003F693F /* BuildConfig.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BuildConfig.h; sourceTree = "<group>"; };
|
||||
D09250011FE52D2A003F693F /* BuildConfig.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = BuildConfig.m; sourceTree = "<group>"; };
|
||||
D096C2BD1CC3C021006D814E /* Display.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Display.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D096C2C01CC3C104006D814E /* Postbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Postbox.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D096C2C31CC3C11A006D814E /* SwiftSignalKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = SwiftSignalKit.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D09A595F1B5858DB00FC3724 /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = System/Library/Frameworks/SystemConfiguration.framework; sourceTree = SDKROOT; };
|
||||
D09A59B71B5876B600FC3724 /* Telegram-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Telegram-Bridging-Header.h"; sourceTree = "<group>"; };
|
||||
D09B79C42219C784003B1F9D /* SharedAccountInfo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SharedAccountInfo.swift; sourceTree = "<group>"; };
|
||||
D09B79C72219C7AE003B1F9D /* ManageSharedAccountInfo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ManageSharedAccountInfo.swift; sourceTree = "<group>"; };
|
||||
D09DCBB61D0C856B00F51FFE /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = "<group>"; };
|
||||
D0A18D621E149043004C6734 /* PushKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = PushKit.framework; path = System/Library/Frameworks/PushKit.framework; sourceTree = SDKROOT; };
|
||||
D0A18D641E15C020004C6734 /* WakeupManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WakeupManager.swift; sourceTree = "<group>"; };
|
||||
D0AA1A671D568BA400152314 /* UserNotifications.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UserNotifications.framework; path = System/Library/Frameworks/UserNotifications.framework; sourceTree = SDKROOT; };
|
||||
D0AA1A691D568BA400152314 /* UserNotificationsUI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UserNotificationsUI.framework; path = System/Library/Frameworks/UserNotificationsUI.framework; sourceTree = SDKROOT; };
|
||||
D0AB0B9F1D6708B9002C78E7 /* Postbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Postbox.framework; path = "submodules/Postbox/build/Debug-iphoneos/Postbox.framework"; sourceTree = "<group>"; };
|
||||
@ -1131,19 +974,7 @@
|
||||
D0ADF953212B3B4700310BBC /* Share-AppStoreLLC.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = "Share-AppStoreLLC.entitlements"; sourceTree = "<group>"; };
|
||||
D0ADF954212B3B5200310BBC /* SiriIntents-AppStoreLLC.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = "SiriIntents-AppStoreLLC.entitlements"; sourceTree = "<group>"; };
|
||||
D0ADF955212B3B6400310BBC /* Widget-AppStoreLLC.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = "Widget-AppStoreLLC.entitlements"; sourceTree = "<group>"; };
|
||||
D0ADF957212B56DC00310BBC /* LegacyUserDataImport.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LegacyUserDataImport.swift; sourceTree = "<group>"; };
|
||||
D0ADF959212B5AC600310BBC /* LegacyResourceImport.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LegacyResourceImport.swift; sourceTree = "<group>"; };
|
||||
D0ADF95B212B636D00310BBC /* LegacyChatImport.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LegacyChatImport.swift; sourceTree = "<group>"; };
|
||||
D0ADF95D212C818F00310BBC /* LegacyPreferencesImport.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LegacyPreferencesImport.swift; sourceTree = "<group>"; };
|
||||
D0ADF95F212C8DF600310BBC /* TGAutoDownloadPreferences.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TGAutoDownloadPreferences.m; sourceTree = "<group>"; };
|
||||
D0ADF960212C8DF600310BBC /* TGAutoDownloadPreferences.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TGAutoDownloadPreferences.h; sourceTree = "<group>"; };
|
||||
D0ADF962212C9AA900310BBC /* TGProxyItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TGProxyItem.h; sourceTree = "<group>"; };
|
||||
D0ADF963212C9AA900310BBC /* TGProxyItem.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TGProxyItem.m; sourceTree = "<group>"; };
|
||||
D0AF322A1FACA1A80097362B /* libstdc++.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = "libstdc++.tbd"; path = "usr/lib/libstdc++.tbd"; sourceTree = SDKROOT; };
|
||||
D0AF322D1FACBA270097362B /* TGShareLocationSignals.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TGShareLocationSignals.m; sourceTree = "<group>"; };
|
||||
D0AF322E1FACBA270097362B /* TGShareLocationSignals.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TGShareLocationSignals.h; sourceTree = "<group>"; };
|
||||
D0B21B0C2203A9A1003F741D /* SharedWakeupManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SharedWakeupManager.swift; sourceTree = "<group>"; };
|
||||
D0B21B0E220438E9003F741D /* SharedNotificationManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SharedNotificationManager.swift; sourceTree = "<group>"; };
|
||||
D0B2F737204F4C9900D3BFB9 /* Widget.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = Widget.appex; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0B2F74E204F4D6100D3BFB9 /* Display.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Display.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0B2F74F204F4D6100D3BFB9 /* Postbox.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Postbox.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
@ -1155,11 +986,9 @@
|
||||
D0B2F75A204F51E400D3BFB9 /* Widget-AppStore.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = "Widget-AppStore.entitlements"; sourceTree = "<group>"; };
|
||||
D0B2F75B204F51E500D3BFB9 /* Widget-HockeyApp.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = "Widget-HockeyApp.entitlements"; sourceTree = "<group>"; };
|
||||
D0B2F75F2050102600D3BFB9 /* PeerNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PeerNode.swift; sourceTree = "<group>"; };
|
||||
D0B3B53A21666C0000FC60A0 /* LegacyFileImport.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LegacyFileImport.swift; sourceTree = "<group>"; };
|
||||
D0B844591DACF507005F29E1 /* HockeySDK.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = HockeySDK.framework; path = "third-party/HockeySDK.framework"; sourceTree = "<group>"; };
|
||||
D0B8445A1DACF507005F29E1 /* HockeySDKResources.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; name = HockeySDKResources.bundle; path = "third-party/HockeySDKResources.bundle"; sourceTree = "<group>"; };
|
||||
D0B8445F1DACF561005F29E1 /* libc++.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = "libc++.tbd"; path = "usr/lib/libc++.tbd"; sourceTree = SDKROOT; };
|
||||
D0BEAF721E54C9A900BD963D /* ApplicationContext.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ApplicationContext.swift; sourceTree = "<group>"; };
|
||||
D0C2DFF51CC4D1B20044FF83 /* AssetsLibrary.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AssetsLibrary.framework; path = System/Library/Frameworks/AssetsLibrary.framework; sourceTree = SDKROOT; };
|
||||
D0C2DFF71CC4D1BA0044FF83 /* MobileCoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MobileCoreServices.framework; path = System/Library/Frameworks/MobileCoreServices.framework; sourceTree = SDKROOT; };
|
||||
D0C2DFF91CC4D1C90044FF83 /* QuickLook.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuickLook.framework; path = System/Library/Frameworks/QuickLook.framework; sourceTree = SDKROOT; };
|
||||
@ -1170,8 +999,6 @@
|
||||
D0CAF3171D76394C0011F558 /* TelegramCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = TelegramCore.framework; path = "submodules/TelegramCore/build/Debug-iphoneos/TelegramCore.framework"; sourceTree = "<group>"; };
|
||||
D0CCD61C222EFFB000EE1E08 /* MtProtoKitDynamic.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = MtProtoKitDynamic.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0CD17B41CC3AE14007C5650 /* AsyncDisplayKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = AsyncDisplayKit.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0CE6F1A213ED11100BCD44B /* TGPresentationAutoNightPreferences.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TGPresentationAutoNightPreferences.h; sourceTree = "<group>"; };
|
||||
D0CE6F1B213ED11100BCD44B /* TGPresentationAutoNightPreferences.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TGPresentationAutoNightPreferences.m; sourceTree = "<group>"; };
|
||||
D0CE6F1F213EDA4200BCD44B /* pt */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pt; path = Localizable.strings; sourceTree = "<group>"; };
|
||||
D0CE6F21213EDA4200BCD44B /* pt */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pt; path = InfoPlist.strings; sourceTree = "<group>"; };
|
||||
D0CE6F23213EDA4200BCD44B /* pt */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = pt; path = AppIntentVocabulary.plist; sourceTree = "<group>"; };
|
||||
@ -1198,7 +1025,6 @@
|
||||
D0CE6F54213EDA4400BCD44B /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = de; path = AppIntentVocabulary.plist; sourceTree = "<group>"; };
|
||||
D0CFBB921FD88C2900B65C0D /* begin_record.caf */ = {isa = PBXFileReference; lastKnownFileType = file; name = begin_record.caf; path = "Telegram-iOS/Resources/begin_record.caf"; sourceTree = "<group>"; };
|
||||
D0D17E891CAAD66600C4750B /* Accelerate.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Accelerate.framework; path = System/Library/Frameworks/Accelerate.framework; sourceTree = SDKROOT; };
|
||||
D0D2276E212739120028F943 /* LegacyDataImport.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LegacyDataImport.swift; sourceTree = "<group>"; };
|
||||
D0D268761D79A70A00C422DA /* SiriIntents.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = SiriIntents.appex; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0D268781D79A70A00C422DA /* IntentHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IntentHandler.swift; sourceTree = "<group>"; };
|
||||
D0D2687A1D79A70A00C422DA /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||
@ -1223,12 +1049,10 @@
|
||||
D0EA97961FE8536900792DD6 /* SiriIntents-Hockeyapp.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = "SiriIntents-Hockeyapp.entitlements"; sourceTree = "<group>"; };
|
||||
D0EA97971FE8537000792DD6 /* Share-HockeyApp.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = "Share-HockeyApp.entitlements"; sourceTree = "<group>"; };
|
||||
D0EA97981FE8537000792DD6 /* Share-AppStore.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = "Share-AppStore.entitlements"; sourceTree = "<group>"; };
|
||||
D0EB243A201B77C400F6CC13 /* ClearNotificationsManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ClearNotificationsManager.swift; sourceTree = "<group>"; };
|
||||
D0ECCB7C1FE9C38500609802 /* Telegram-iOS UITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Telegram-iOS UITests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0ECCB7E1FE9C38500609802 /* Telegram_iOS_UITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Telegram_iOS_UITests.swift; sourceTree = "<group>"; };
|
||||
D0ECCB801FE9C38500609802 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||
D0ECCB891FE9C4AC00609802 /* SnapshotHelper.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SnapshotHelper.swift; sourceTree = "<group>"; };
|
||||
D0ECCB8C1FE9CE3F00609802 /* SnapshotChatList.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SnapshotChatList.swift; sourceTree = "<group>"; };
|
||||
D0ED633921FF3EDF001D4648 /* AccountData.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccountData.swift; sourceTree = "<group>"; };
|
||||
D0ED633C21FF3F28001D4648 /* NotificationService-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "NotificationService-Bridging-Header.h"; sourceTree = "<group>"; };
|
||||
D0ED633E21FF46E4001D4648 /* ImageData.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ImageData.swift; sourceTree = "<group>"; };
|
||||
@ -1242,6 +1066,7 @@
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
D00818A522B58CCB008A895F /* WatchCommonWatch.framework in Frameworks */,
|
||||
0972C6E021791D950069E98A /* UserNotifications.framework in Frameworks */,
|
||||
09CFB212217299E80083F7A3 /* CoreLocation.framework in Frameworks */,
|
||||
09C5723D21728C0E00BDF00F /* CoreGraphics.framework in Frameworks */,
|
||||
@ -1252,6 +1077,8 @@
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
D00818CF22B595DB008A895F /* LightweightAccountData.framework in Frameworks */,
|
||||
D008185822B579AD008A895F /* BuildConfig.framework in Frameworks */,
|
||||
D015E04D225D2D8F00CB9E8A /* WebP.framework in Frameworks */,
|
||||
D0CCD61D222EFFB000EE1E08 /* MtProtoKitDynamic.framework in Frameworks */,
|
||||
);
|
||||
@ -1261,6 +1088,7 @@
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
D008184E22B5796E008A895F /* BuildConfig.framework in Frameworks */,
|
||||
D0CAD6A421C03BEB001E3055 /* FFMpeg.framework in Frameworks */,
|
||||
09C50E88217385CF009E676F /* WatchConnectivity.framework in Frameworks */,
|
||||
09FDAEE62140477F00BF856F /* MtProtoKitDynamic.framework in Frameworks */,
|
||||
@ -1284,6 +1112,7 @@
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
D008185622B579A1008A895F /* BuildConfig.framework in Frameworks */,
|
||||
D051DB0B215E5D1C00F30F92 /* TelegramUI.framework in Frameworks */,
|
||||
D02CF615215DA24900E0F56A /* Display.framework in Frameworks */,
|
||||
D02CF617215DA24900E0F56A /* Postbox.framework in Frameworks */,
|
||||
@ -1298,6 +1127,7 @@
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
D008185022B5797A008A895F /* BuildConfig.framework in Frameworks */,
|
||||
D0AF322C1FACA1B00097362B /* libc++.tbd in Frameworks */,
|
||||
D0AF32291FACA1920097362B /* Accelerate.framework in Frameworks */,
|
||||
D08410501FABDD54008FFE92 /* MtProtoKitDynamic.framework in Frameworks */,
|
||||
@ -1312,6 +1142,7 @@
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
D008185422B57994008A895F /* BuildConfig.framework in Frameworks */,
|
||||
D0B2F74A204F4D6100D3BFB9 /* Postbox.framework in Frameworks */,
|
||||
D0B2F74B204F4D6100D3BFB9 /* SwiftSignalKit.framework in Frameworks */,
|
||||
D0B2F74C204F4D6100D3BFB9 /* TelegramCore.framework in Frameworks */,
|
||||
@ -1323,6 +1154,7 @@
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
D008185222B57986008A895F /* BuildConfig.framework in Frameworks */,
|
||||
D08985042118B46F00918162 /* SwiftSignalKit.framework in Frameworks */,
|
||||
D08984FE2118B3F100918162 /* MtProtoKitDynamic.framework in Frameworks */,
|
||||
D08985002118B3F100918162 /* Postbox.framework in Frameworks */,
|
||||
@ -1340,14 +1172,6 @@
|
||||
/* End PBXFrameworksBuildPhase section */
|
||||
|
||||
/* Begin PBXGroup section */
|
||||
092F368121542CE4001A9F49 /* Supporting Files */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
092F368221542CF2001A9F49 /* en.lproj */,
|
||||
);
|
||||
path = "Supporting Files";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
092F368221542CF2001A9F49 /* en.lproj */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
@ -1511,13 +1335,8 @@
|
||||
children = (
|
||||
09C57290217291BC00BDF00F /* Model */,
|
||||
09C5728E217291AC00BDF00F /* Signals */,
|
||||
09C573362172974E00BDF00F /* TGBridgePeerIdAdapter.h */,
|
||||
09C572CC2172939F00BDF00F /* TGBridgeClient.h */,
|
||||
09C572D02172939F00BDF00F /* TGBridgeClient.m */,
|
||||
09C572CF2172939F00BDF00F /* TGBridgeCommon.h */,
|
||||
09C572CE2172939F00BDF00F /* TGBridgeCommon.m */,
|
||||
09C50E902173B247009E676F /* TGBridgeSubscriptions.h */,
|
||||
09C50E8F2173B247009E676F /* TGBridgeSubscriptions.m */,
|
||||
);
|
||||
name = Bridge;
|
||||
sourceTree = "<group>";
|
||||
@ -1922,78 +1741,22 @@
|
||||
09C57290217291BC00BDF00F /* Model */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
09C572CB2172938100BDF00F /* Media */,
|
||||
09C572EA2172953400BDF00F /* TGBridgeBotCommandInfo.h */,
|
||||
09C572EF2172953500BDF00F /* TGBridgeBotCommandInfo.m */,
|
||||
09C572E82172953400BDF00F /* TGBridgeBotInfo.h */,
|
||||
09C573102172953800BDF00F /* TGBridgeBotInfo.m */,
|
||||
09C572DD2172953300BDF00F /* TGBridgeBotReplyMarkup.h */,
|
||||
09C572D92172953300BDF00F /* TGBridgeBotReplyMarkup.m */,
|
||||
09C572F12172953500BDF00F /* TGBridgeChat.h */,
|
||||
09C573092172953700BDF00F /* TGBridgeChat.m */,
|
||||
09C572DB2172953300BDF00F /* TGBridgeChat+TGTableItem.h */,
|
||||
09C572F62172953500BDF00F /* TGBridgeChat+TGTableItem.m */,
|
||||
09C573142172953800BDF00F /* TGBridgeChatMessages.h */,
|
||||
09C5730C2172953700BDF00F /* TGBridgeChatMessages.m */,
|
||||
09C573032172953600BDF00F /* TGBridgeContext.h */,
|
||||
09C573072172953700BDF00F /* TGBridgeContext.m */,
|
||||
09C5730B2172953700BDF00F /* TGBridgeLocationVenue.h */,
|
||||
09C572F32172953500BDF00F /* TGBridgeLocationVenue.m */,
|
||||
09C573152172953800BDF00F /* TGBridgeLocationVenue+TGTableItem.h */,
|
||||
09C572FF2172953600BDF00F /* TGBridgeLocationVenue+TGTableItem.m */,
|
||||
09C572D62172953200BDF00F /* TGBridgeMediaAttachment.h */,
|
||||
09C572F92172953600BDF00F /* TGBridgeMediaAttachment.m */,
|
||||
09C573042172953700BDF00F /* TGBridgeMessage.h */,
|
||||
09C572DF2172953300BDF00F /* TGBridgeMessage.m */,
|
||||
09C572F72172953500BDF00F /* TGBridgeMessage+TGTableItem.h */,
|
||||
09C572D72172953300BDF00F /* TGBridgeMessage+TGTableItem.m */,
|
||||
09C573022172953600BDF00F /* TGBridgePeerNotificationSettings.h */,
|
||||
09C572FC2172953600BDF00F /* TGBridgePeerNotificationSettings.m */,
|
||||
09C573132172953800BDF00F /* TGBridgeStickerPack.h */,
|
||||
09C572E32172953400BDF00F /* TGBridgeStickerPack.m */,
|
||||
09C572EB2172953400BDF00F /* TGBridgeUser.h */,
|
||||
09C572ED2172953400BDF00F /* TGBridgeUser.m */,
|
||||
09C573052172953700BDF00F /* TGBridgeUser+TGTableItem.h */,
|
||||
09C572E92172953400BDF00F /* TGBridgeUser+TGTableItem.m */,
|
||||
);
|
||||
name = Model;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
09C572CB2172938100BDF00F /* Media */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
09C572DC2172953300BDF00F /* TGBridgeActionMediaAttachment.h */,
|
||||
09C572E22172953300BDF00F /* TGBridgeActionMediaAttachment.m */,
|
||||
09C573082172953700BDF00F /* TGBridgeAudioMediaAttachment.h */,
|
||||
09C572E02172953300BDF00F /* TGBridgeAudioMediaAttachment.m */,
|
||||
09C572DA2172953300BDF00F /* TGBridgeContactMediaAttachment.h */,
|
||||
09C572DE2172953300BDF00F /* TGBridgeContactMediaAttachment.m */,
|
||||
09C572F02172953500BDF00F /* TGBridgeDocumentMediaAttachment.h */,
|
||||
09C572FB2172953600BDF00F /* TGBridgeDocumentMediaAttachment.m */,
|
||||
09C572FE2172953600BDF00F /* TGBridgeForwardedMessageMediaAttachment.h */,
|
||||
09C572E62172953400BDF00F /* TGBridgeForwardedMessageMediaAttachment.m */,
|
||||
09C572EE2172953400BDF00F /* TGBridgeImageMediaAttachment.h */,
|
||||
09C572F22172953500BDF00F /* TGBridgeImageMediaAttachment.m */,
|
||||
09C572E72172953400BDF00F /* TGBridgeLocationMediaAttachment.h */,
|
||||
09C573002172953600BDF00F /* TGBridgeLocationMediaAttachment.m */,
|
||||
09C572F82172953500BDF00F /* TGBridgeMessageEntitiesAttachment.h */,
|
||||
09C5730A2172953700BDF00F /* TGBridgeMessageEntitiesAttachment.m */,
|
||||
09C572E12172953300BDF00F /* TGBridgeReplyMarkupMediaAttachment.h */,
|
||||
09C5730D2172953800BDF00F /* TGBridgeReplyMarkupMediaAttachment.m */,
|
||||
09C572EC2172953400BDF00F /* TGBridgeReplyMessageMediaAttachment.h */,
|
||||
09C572FD2172953600BDF00F /* TGBridgeReplyMessageMediaAttachment.m */,
|
||||
09C573112172953800BDF00F /* TGBridgeUnsupportedMediaAttachment.h */,
|
||||
09C5730F2172953800BDF00F /* TGBridgeUnsupportedMediaAttachment.m */,
|
||||
09C573062172953700BDF00F /* TGBridgeVideoMediaAttachment.h */,
|
||||
09C572E42172953400BDF00F /* TGBridgeVideoMediaAttachment.m */,
|
||||
09C573122172953800BDF00F /* TGBridgeWebPageMediaAttachment.h */,
|
||||
09C572F52172953500BDF00F /* TGBridgeWebPageMediaAttachment.m */,
|
||||
09C572FA2172953600BDF00F /* TGBridgeMessageEntities.h */,
|
||||
09C572F42172953500BDF00F /* TGBridgeMessageEntities.m */,
|
||||
);
|
||||
name = Media;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
D00859931B28189D00EAF753 = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
@ -2041,23 +1804,9 @@
|
||||
D079FD001F06BBD10038FADE /* Telegram-iOS-AppStore.entitlements */,
|
||||
D0E3A7071B285B5000A402D9 /* Telegram-iOS-Hockeyapp.entitlements */,
|
||||
D021D4D7219CAEDD0064BEBA /* Telegram-iOS-Fork.entitlements */,
|
||||
D00859A11B28189D00EAF753 /* AppDelegate.swift */,
|
||||
D0BEAF721E54C9A900BD963D /* ApplicationContext.swift */,
|
||||
D053DAD22018ED2B00993D32 /* LockedWindowCoveringView.swift */,
|
||||
D084023120E1883500065674 /* ApplicationShortcutItem.swift */,
|
||||
D0A18D641E15C020004C6734 /* WakeupManager.swift */,
|
||||
D0EB243A201B77C400F6CC13 /* ClearNotificationsManager.swift */,
|
||||
D00859A81B28189D00EAF753 /* Images.xcassets */,
|
||||
D00859AA1B28189D00EAF753 /* LaunchScreen.xib */,
|
||||
D0ADF956212B56C200310BBC /* Legacy Data Import */,
|
||||
D0ECCB8B1FE9CE2B00609802 /* Snapshots */,
|
||||
D008599F1B28189D00EAF753 /* Supporting Files */,
|
||||
D0B21B0C2203A9A1003F741D /* SharedWakeupManager.swift */,
|
||||
D0B21B0E220438E9003F741D /* SharedNotificationManager.swift */,
|
||||
D09B79C42219C784003B1F9D /* SharedAccountInfo.swift */,
|
||||
D09B79C72219C7AE003B1F9D /* ManageSharedAccountInfo.swift */,
|
||||
D07477B522A72B1F002737C4 /* TempRoot.swift */,
|
||||
D07477B722A732F1002737C4 /* TempMain.m */,
|
||||
);
|
||||
path = "Telegram-iOS";
|
||||
sourceTree = "<group>";
|
||||
@ -2065,11 +1814,7 @@
|
||||
D008599F1B28189D00EAF753 /* Supporting Files */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
D06E4C2D21347D9200088087 /* UIImage+ImageEffects.h */,
|
||||
D06E4C2E21347D9200088087 /* UIImage+ImageEffects.m */,
|
||||
D0612E481D58B478000C8F02 /* Application.swift */,
|
||||
D09250001FE52D2A003F693F /* BuildConfig.h */,
|
||||
D09250011FE52D2A003F693F /* BuildConfig.m */,
|
||||
D09DCBB41D0C854D00F51FFE /* en.lproj */,
|
||||
D0CE6F47213EDA4400BCD44B /* ar.lproj */,
|
||||
D0CE6F4E213EDA4400BCD44B /* de.lproj */,
|
||||
@ -2107,6 +1852,16 @@
|
||||
D00859C21B281E0000EAF753 /* Frameworks */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
D00818CE22B595DB008A895F /* LightweightAccountData.framework */,
|
||||
D00818A422B58CCB008A895F /* WatchCommonWatch.framework */,
|
||||
D008185922B57EF5008A895F /* WatchCommon.framework */,
|
||||
D008185722B579AD008A895F /* BuildConfig.framework */,
|
||||
D008185522B579A1008A895F /* BuildConfig.framework */,
|
||||
D008185322B57994008A895F /* BuildConfig.framework */,
|
||||
D008185122B57986008A895F /* BuildConfig.framework */,
|
||||
D008184F22B5797A008A895F /* BuildConfig.framework */,
|
||||
D008184D22B5796E008A895F /* BuildConfig.framework */,
|
||||
D008184B22B578EC008A895F /* WatchCommon.framework */,
|
||||
D015E04C225D2D8F00CB9E8A /* WebP.framework */,
|
||||
D0CCD61C222EFFB000EE1E08 /* MtProtoKitDynamic.framework */,
|
||||
D0CAD6A121C03BE2001E3055 /* FFMpeg.framework */,
|
||||
@ -2234,23 +1989,14 @@
|
||||
D03B0E791D63484500955575 /* Share */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
092F368121542CE4001A9F49 /* Supporting Files */,
|
||||
092F368221542CF2001A9F49 /* en.lproj */,
|
||||
D0ADF953212B3B4700310BBC /* Share-AppStoreLLC.entitlements */,
|
||||
D0EA97981FE8537000792DD6 /* Share-AppStore.entitlements */,
|
||||
D0EA97971FE8537000792DD6 /* Share-HockeyApp.entitlements */,
|
||||
D021D4DA219CB0EF0064BEBA /* Share-Fork.entitlements */,
|
||||
D084104A1FABDCFD008FFE92 /* TGContactModel.h */,
|
||||
D084104C1FABDCFD008FFE92 /* TGContactModel.m */,
|
||||
D084104B1FABDCFD008FFE92 /* TGMimeTypeMap.h */,
|
||||
D084104D1FABDCFD008FFE92 /* TGMimeTypeMap.m */,
|
||||
D08410431FABDC5B008FFE92 /* TGItemProviderSignals.h */,
|
||||
D08410441FABDC5C008FFE92 /* TGItemProviderSignals.m */,
|
||||
D0AF322E1FACBA270097362B /* TGShareLocationSignals.h */,
|
||||
D0AF322D1FACBA270097362B /* TGShareLocationSignals.m */,
|
||||
D03B0E7A1D63484500955575 /* ShareRootController.swift */,
|
||||
D08410521FABDEC8008FFE92 /* Share-Bridging-Header.h */,
|
||||
D03B0E7F1D63484500955575 /* Info.plist */,
|
||||
D08410531FABE428008FFE92 /* ShareItems.swift */,
|
||||
);
|
||||
path = Share;
|
||||
sourceTree = "<group>";
|
||||
@ -2435,26 +2181,6 @@
|
||||
name = en.lproj;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
D0ADF956212B56C200310BBC /* Legacy Data Import */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
D0D2276E212739120028F943 /* LegacyDataImport.swift */,
|
||||
D0ADF957212B56DC00310BBC /* LegacyUserDataImport.swift */,
|
||||
D0ADF95B212B636D00310BBC /* LegacyChatImport.swift */,
|
||||
D0B3B53A21666C0000FC60A0 /* LegacyFileImport.swift */,
|
||||
D0ADF959212B5AC600310BBC /* LegacyResourceImport.swift */,
|
||||
D0ADF95D212C818F00310BBC /* LegacyPreferencesImport.swift */,
|
||||
D0ADF960212C8DF600310BBC /* TGAutoDownloadPreferences.h */,
|
||||
D0ADF95F212C8DF600310BBC /* TGAutoDownloadPreferences.m */,
|
||||
D0CE6F1A213ED11100BCD44B /* TGPresentationAutoNightPreferences.h */,
|
||||
D0CE6F1B213ED11100BCD44B /* TGPresentationAutoNightPreferences.m */,
|
||||
D0ADF962212C9AA900310BBC /* TGProxyItem.h */,
|
||||
D0ADF963212C9AA900310BBC /* TGProxyItem.m */,
|
||||
D051DB5C21602D6E00F30F92 /* LegacyDataImportSplash.swift */,
|
||||
);
|
||||
name = "Legacy Data Import";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
D0CE6F1D213EDA4200BCD44B /* pt.lproj */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
@ -2596,19 +2322,6 @@
|
||||
path = "Telegram-iOS UITests";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
D0ECCB8B1FE9CE2B00609802 /* Snapshots */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
D05B37F41FEA5F6E0041D2A5 /* SnapshotEnvironment.swift */,
|
||||
D05B37FC1FEA8D870041D2A5 /* SnapshotResources.swift */,
|
||||
D0ECCB8C1FE9CE3F00609802 /* SnapshotChatList.swift */,
|
||||
D05B37F61FEA8C640041D2A5 /* SnapshotSecretChat.swift */,
|
||||
D05B37F81FEA8CF00041D2A5 /* SnapshotSettings.swift */,
|
||||
D05B37FA1FEA8D020041D2A5 /* SnapshotAppearanceSettings.swift */,
|
||||
);
|
||||
name = Snapshots;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXGroup section */
|
||||
|
||||
/* Begin PBXNativeTarget section */
|
||||
@ -3133,7 +2846,6 @@
|
||||
09C5728521728D3700BDF00F /* SSignal+Single.m in Sources */,
|
||||
09C5728A21728D3700BDF00F /* SThreadPoolQueue.m in Sources */,
|
||||
09C5727821728D3700BDF00F /* SMetaDisposable.m in Sources */,
|
||||
09C5732B2172953900BDF00F /* TGBridgePeerNotificationSettings.m in Sources */,
|
||||
0956AF2F217B8109008106D0 /* TGNeoUnsupportedMessageViewModel.m in Sources */,
|
||||
09C50DE821729D7C009E676F /* TGBridgeBotSignals.m in Sources */,
|
||||
09C571952172806900BDF00F /* TGUserRowController.m in Sources */,
|
||||
@ -3145,13 +2857,9 @@
|
||||
09C5731D2172953800BDF00F /* TGBridgeStickerPack.m in Sources */,
|
||||
09C50DF321729D7C009E676F /* TGBridgeStateSignal.m in Sources */,
|
||||
09C5727421728D3700BDF00F /* SAtomic.m in Sources */,
|
||||
09C5731C2172953800BDF00F /* TGBridgeActionMediaAttachment.m in Sources */,
|
||||
09C571D52172875500BDF00F /* TGMessageViewController.m in Sources */,
|
||||
09C5732F2172953900BDF00F /* TGBridgeContext.m in Sources */,
|
||||
09C573192172953800BDF00F /* TGBridgeContactMediaAttachment.m in Sources */,
|
||||
09C571EB2172878900BDF00F /* TGStickersHeaderController.m in Sources */,
|
||||
09C50DED21729D7C009E676F /* TGBridgeLocationSignals.m in Sources */,
|
||||
09C573302172953900BDF00F /* TGBridgeChat.m in Sources */,
|
||||
09C571D72172875A00BDF00F /* TGMessageViewMessageRowController.m in Sources */,
|
||||
09C571F22172879C00BDF00F /* TGComposeController.m in Sources */,
|
||||
09C5727621728D3700BDF00F /* SBlockDisposable.m in Sources */,
|
||||
@ -3159,14 +2867,11 @@
|
||||
09C5723021728AA500BDF00F /* TGNeoMessageViewModel.m in Sources */,
|
||||
09C5728C21728D3700BDF00F /* STimer.m in Sources */,
|
||||
09C5728221728D3700BDF00F /* SSignal+Multicast.m in Sources */,
|
||||
09C573342172953900BDF00F /* TGBridgeUnsupportedMediaAttachment.m in Sources */,
|
||||
09C573162172953800BDF00F /* TGBridgeMessage+TGTableItem.m in Sources */,
|
||||
09C571922172806600BDF00F /* TGNeoLabelViewModel.m in Sources */,
|
||||
09C5723521728AA500BDF00F /* TGNeoStickerMessageViewModel.m in Sources */,
|
||||
09C50E0421729DB5009E676F /* TGBotKeyboardController.m in Sources */,
|
||||
09C5732E2172953900BDF00F /* TGBridgeLocationMediaAttachment.m in Sources */,
|
||||
09C5722A21728AA500BDF00F /* TGNeoConversationSimpleRowController.m in Sources */,
|
||||
09C573262172953800BDF00F /* TGBridgeMessageEntities.m in Sources */,
|
||||
09C5727E21728D3700BDF00F /* SSignal+Combine.m in Sources */,
|
||||
09C571D42172875100BDF00F /* TGUserInfoController.m in Sources */,
|
||||
09C571932172806600BDF00F /* TGNeoRenderableViewModel.m in Sources */,
|
||||
@ -3175,11 +2880,9 @@
|
||||
09C50DF221729D7C009E676F /* TGBridgeSendMessageSignals.m in Sources */,
|
||||
09C571902172806600BDF00F /* TGNeoAttachmentViewModel.m in Sources */,
|
||||
09C50DE921729D7C009E676F /* TGBridgeChatListSignals.m in Sources */,
|
||||
09C50E922173B247009E676F /* TGBridgeSubscriptions.m in Sources */,
|
||||
09C5716A21727F1500BDF00F /* TGInterfaceMenu.m in Sources */,
|
||||
09C571D02172874B00BDF00F /* TGUserHandleRowController.m in Sources */,
|
||||
09C5727F21728D3700BDF00F /* SSignal+Dispatch.m in Sources */,
|
||||
09C573232172953800BDF00F /* TGBridgeBotCommandInfo.m in Sources */,
|
||||
09C5723121728AA500BDF00F /* TGNeoReplyHeaderViewModel.m in Sources */,
|
||||
09C571F02172878900BDF00F /* TGStickersController.m in Sources */,
|
||||
09C5714621727DAA00BDF00F /* TGWatchCommon.m in Sources */,
|
||||
@ -3196,8 +2899,6 @@
|
||||
09C5713E21727D9E00BDF00F /* TGInterfaceController.m in Sources */,
|
||||
09C571D22172875100BDF00F /* TGGroupInfoController.m in Sources */,
|
||||
09C50DEA21729D7C009E676F /* TGBridgeChatMessageListSignals.m in Sources */,
|
||||
09C573332172953900BDF00F /* TGBridgeReplyMarkupMediaAttachment.m in Sources */,
|
||||
09C573352172953900BDF00F /* TGBridgeBotInfo.m in Sources */,
|
||||
09C571DC2172876C00BDF00F /* TGLocationController.m in Sources */,
|
||||
09C5727A21728D3700BDF00F /* SQueue.m in Sources */,
|
||||
09C5714521727DAA00BDF00F /* TGWatchColor.m in Sources */,
|
||||
@ -3206,7 +2907,6 @@
|
||||
09C5728D21728D3700BDF00F /* SVariable.m in Sources */,
|
||||
09C5714321727DAA00BDF00F /* TGLocationUtils.m in Sources */,
|
||||
09C5716121727EE700BDF00F /* TGFileCache.m in Sources */,
|
||||
09C573202172953800BDF00F /* TGBridgeForwardedMessageMediaAttachment.m in Sources */,
|
||||
09C5723221728AA500BDF00F /* TGNeoRowController.m in Sources */,
|
||||
09C5728121728D3700BDF00F /* SSignal+Meta.m in Sources */,
|
||||
09C5722521728AA500BDF00F /* TGNeoAudioMessageViewModel.m in Sources */,
|
||||
@ -3219,7 +2919,6 @@
|
||||
09C5714821727DAA00BDF00F /* WKInterfaceGroup+Signals.m in Sources */,
|
||||
09C5714921727DAA00BDF00F /* WKInterfaceImage+Signals.m in Sources */,
|
||||
09C5728321728D3700BDF00F /* SSignal+Pipe.m in Sources */,
|
||||
09C573322172953900BDF00F /* TGBridgeChatMessages.m in Sources */,
|
||||
09C5728921728D3700BDF00F /* SThreadPool.m in Sources */,
|
||||
09C5722921728AA500BDF00F /* TGNeoConversationMediaRowController.m in Sources */,
|
||||
09C571DA2172876300BDF00F /* TGNeoChatViewModel.m in Sources */,
|
||||
@ -3227,28 +2926,21 @@
|
||||
09C571982172807100BDF00F /* TGAudioMicAlertController.m in Sources */,
|
||||
09C571D12172874B00BDF00F /* TGUserInfoHeaderController.m in Sources */,
|
||||
09C5723421728AA500BDF00F /* TGNeoSmiliesMessageViewModel.m in Sources */,
|
||||
09C5731E2172953800BDF00F /* TGBridgeVideoMediaAttachment.m in Sources */,
|
||||
09C50DF421729D7C009E676F /* TGBridgeStickersSignals.m in Sources */,
|
||||
09C573252172953800BDF00F /* TGBridgeLocationVenue.m in Sources */,
|
||||
09C5727521728D3700BDF00F /* SBag.m in Sources */,
|
||||
09C5713F21727DA000BDF00F /* TGExtensionDelegate.m in Sources */,
|
||||
09C573292172953900BDF00F /* TGBridgeMediaAttachment.m in Sources */,
|
||||
09C50DEE21729D7C009E676F /* TGBridgeMediaSignals.m in Sources */,
|
||||
09C571D82172875A00BDF00F /* TGMessageViewWebPageRowController.m in Sources */,
|
||||
09C50E0521729DE6009E676F /* TGBotKeyboardButtonController.m in Sources */,
|
||||
09C5719B217280E900BDF00F /* TGNeoChatsController.m in Sources */,
|
||||
09C5731B2172953800BDF00F /* TGBridgeAudioMediaAttachment.m in Sources */,
|
||||
09C5731A2172953800BDF00F /* TGBridgeMessage.m in Sources */,
|
||||
09C5728821728D3700BDF00F /* SSubscriber.m in Sources */,
|
||||
09C5722D21728AA500BDF00F /* TGNeoFileMessageViewModel.m in Sources */,
|
||||
09C5723821728AA500BDF00F /* TGConversationFooterController.m in Sources */,
|
||||
09C571DD2172876F00BDF00F /* TGLocationMapHeaderController.m in Sources */,
|
||||
09C573312172953900BDF00F /* TGBridgeMessageEntitiesAttachment.m in Sources */,
|
||||
09C50DEC21729D7C009E676F /* TGBridgeConversationSignals.m in Sources */,
|
||||
09C5727B21728D3700BDF00F /* SSignal.m in Sources */,
|
||||
09C573282172953800BDF00F /* TGBridgeChat+TGTableItem.m in Sources */,
|
||||
09C5727721728D3700BDF00F /* SDisposableSet.m in Sources */,
|
||||
09C573242172953800BDF00F /* TGBridgeImageMediaAttachment.m in Sources */,
|
||||
09C5723B21728AA500BDF00F /* TGNeoConversationRowController.m in Sources */,
|
||||
09C5714121727DAA00BDF00F /* TGGeometry.m in Sources */,
|
||||
09C5714221727DAA00BDF00F /* TGIndexPath.m in Sources */,
|
||||
@ -3268,23 +2960,18 @@
|
||||
09C50DE721729D7C009E676F /* TGBridgeAudioSignals.m in Sources */,
|
||||
09C5722721728AA500BDF00F /* TGNeoBubbleMessageViewModel.m in Sources */,
|
||||
09C571CF2172874B00BDF00F /* TGUserHandle.m in Sources */,
|
||||
09C572D3217293D400BDF00F /* TGBridgeCommon.m in Sources */,
|
||||
09C5722821728AA500BDF00F /* TGNeoContactMessageViewModel.m in Sources */,
|
||||
09C573222172953800BDF00F /* TGBridgeUser.m in Sources */,
|
||||
09C571EF2172878900BDF00F /* TGStickersSectionHeaderController.m in Sources */,
|
||||
09C5714021727DAA00BDF00F /* TGDateUtils.m in Sources */,
|
||||
09C5732C2172953900BDF00F /* TGBridgeReplyMessageMediaAttachment.m in Sources */,
|
||||
09C571942172806600BDF00F /* TGNeoViewModel.m in Sources */,
|
||||
09C5727C21728D3700BDF00F /* SSignal+Accumulate.m in Sources */,
|
||||
09C5714A21727DAA00BDF00F /* WKInterfaceTable+TGDataDrivenTable.m in Sources */,
|
||||
09C571DE2172876F00BDF00F /* TGLocationVenueRowController.m in Sources */,
|
||||
09C5716921727F1500BDF00F /* TGInputController.m in Sources */,
|
||||
09C5723921728AA500BDF00F /* TGChatInfo.m in Sources */,
|
||||
09C5732A2172953900BDF00F /* TGBridgeDocumentMediaAttachment.m in Sources */,
|
||||
09C571962172806D00BDF00F /* TGComplicationController.m in Sources */,
|
||||
09C5723621728AA500BDF00F /* TGNeoTextMessageViewModel.m in Sources */,
|
||||
09C5722B21728AA500BDF00F /* TGNeoConversationStaticRowController.m in Sources */,
|
||||
09C573272172953800BDF00F /* TGBridgeWebPageMediaAttachment.m in Sources */,
|
||||
09C5718F2172806600BDF00F /* TGMessageViewModel.m in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
@ -3295,8 +2982,6 @@
|
||||
files = (
|
||||
D073E52222003E1E00742DDD /* Data.swift in Sources */,
|
||||
D0E2CE642227F0680084E3DD /* ManagedFile.swift in Sources */,
|
||||
D0ED633B21FF3EFD001D4648 /* BuildConfig.m in Sources */,
|
||||
D09B79C62219C784003B1F9D /* SharedAccountInfo.swift in Sources */,
|
||||
D0ED633D21FF4580001D4648 /* NotificationService.swift in Sources */,
|
||||
D015E01F225CDF5100CB9E8A /* Api0.swift in Sources */,
|
||||
D0ED633A21FF3EDF001D4648 /* AccountData.swift in Sources */,
|
||||
@ -3311,64 +2996,7 @@
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
D00859A21B28189D00EAF753 /* AppDelegate.swift in Sources */,
|
||||
09C50E7B21738178009E676F /* TGBridgeServer.m in Sources */,
|
||||
D0ADF95C212B636D00310BBC /* LegacyChatImport.swift in Sources */,
|
||||
09D3042E2174344900C00567 /* TGBridgeContactMediaAttachment.m in Sources */,
|
||||
D05B37F71FEA8C640041D2A5 /* SnapshotSecretChat.swift in Sources */,
|
||||
09C50E842173853E009E676F /* TGBridgeCommon.m in Sources */,
|
||||
09D3042D2174344900C00567 /* TGBridgeAudioMediaAttachment.m in Sources */,
|
||||
D05B37F51FEA5F6E0041D2A5 /* SnapshotEnvironment.swift in Sources */,
|
||||
0956AF2C217B4642008106D0 /* WatchCommunicationManager.swift in Sources */,
|
||||
09D304372174344900C00567 /* TGBridgeVideoMediaAttachment.m in Sources */,
|
||||
09C50E912173B247009E676F /* TGBridgeSubscriptions.m in Sources */,
|
||||
09D304262174341A00C00567 /* TGBridgeLocationVenue.m in Sources */,
|
||||
09D304312174344900C00567 /* TGBridgeImageMediaAttachment.m in Sources */,
|
||||
09D304292174343300C00567 /* TGBridgeBotInfo.m in Sources */,
|
||||
09D304272174341E00C00567 /* TGBridgeChatMessages.m in Sources */,
|
||||
D0B21B0F220438E9003F741D /* SharedNotificationManager.swift in Sources */,
|
||||
D02E31231BD803E800CD3F01 /* main.m in Sources */,
|
||||
D05B37FD1FEA8D870041D2A5 /* SnapshotResources.swift in Sources */,
|
||||
D0EB243B201B77C400F6CC13 /* ClearNotificationsManager.swift in Sources */,
|
||||
09D304242174340E00C00567 /* TGBridgeMessage.m in Sources */,
|
||||
09D304362174344900C00567 /* TGBridgeUnsupportedMediaAttachment.m in Sources */,
|
||||
D0ADF95A212B5AC600310BBC /* LegacyResourceImport.swift in Sources */,
|
||||
D09B79C52219C784003B1F9D /* SharedAccountInfo.swift in Sources */,
|
||||
D06E4C2F21347D9200088087 /* UIImage+ImageEffects.m in Sources */,
|
||||
D0B3B53B21666C0000FC60A0 /* LegacyFileImport.swift in Sources */,
|
||||
D0ADF95E212C818F00310BBC /* LegacyPreferencesImport.swift in Sources */,
|
||||
D0B21B0D2203A9A1003F741D /* SharedWakeupManager.swift in Sources */,
|
||||
09D304282174342E00C00567 /* TGBridgeChat.m in Sources */,
|
||||
09C50E8A2173AEDB009E676F /* WatchRequestHandlers.swift in Sources */,
|
||||
09D304302174344900C00567 /* TGBridgeForwardedMessageMediaAttachment.m in Sources */,
|
||||
D0D2276F212739120028F943 /* LegacyDataImport.swift in Sources */,
|
||||
D0ADF961212C8DF600310BBC /* TGAutoDownloadPreferences.m in Sources */,
|
||||
D05B37FB1FEA8D020041D2A5 /* SnapshotAppearanceSettings.swift in Sources */,
|
||||
D0CE6F1C213ED11100BCD44B /* TGPresentationAutoNightPreferences.m in Sources */,
|
||||
D053DAD32018ED2B00993D32 /* LockedWindowCoveringView.swift in Sources */,
|
||||
D09250021FE52D2A003F693F /* BuildConfig.m in Sources */,
|
||||
09D304392174344900C00567 /* TGBridgeMessageEntities.m in Sources */,
|
||||
09D304352174344900C00567 /* TGBridgeReplyMessageMediaAttachment.m in Sources */,
|
||||
09D304322174344900C00567 /* TGBridgeLocationMediaAttachment.m in Sources */,
|
||||
D084023220E1883500065674 /* ApplicationShortcutItem.swift in Sources */,
|
||||
D0ADF958212B56DC00310BBC /* LegacyUserDataImport.swift in Sources */,
|
||||
09D304332174344900C00567 /* TGBridgeMessageEntitiesAttachment.m in Sources */,
|
||||
09D304342174344900C00567 /* TGBridgeReplyMarkupMediaAttachment.m in Sources */,
|
||||
D0A18D651E15C020004C6734 /* WakeupManager.swift in Sources */,
|
||||
D09B79C82219C7AE003B1F9D /* ManageSharedAccountInfo.swift in Sources */,
|
||||
D051DB5D21602D6E00F30F92 /* LegacyDataImportSplash.swift in Sources */,
|
||||
09D304382174344900C00567 /* TGBridgeWebPageMediaAttachment.m in Sources */,
|
||||
09D3042F2174344900C00567 /* TGBridgeDocumentMediaAttachment.m in Sources */,
|
||||
09D3042C2174344900C00567 /* TGBridgeActionMediaAttachment.m in Sources */,
|
||||
D0ECCB8D1FE9CE3F00609802 /* SnapshotChatList.swift in Sources */,
|
||||
D0ADF964212C9AA900310BBC /* TGProxyItem.m in Sources */,
|
||||
09C50E8321738514009E676F /* TGBridgeContext.m in Sources */,
|
||||
09D304222174335F00C00567 /* WatchBridge.swift in Sources */,
|
||||
09D304252174341200C00567 /* TGBridgeMediaAttachment.m in Sources */,
|
||||
09D304232174340900C00567 /* TGBridgeUser.m in Sources */,
|
||||
D05B37F91FEA8CF00041D2A5 /* SnapshotSettings.swift in Sources */,
|
||||
09D3042A2174343B00C00567 /* TGBridgeBotCommandInfo.m in Sources */,
|
||||
D0BEAF731E54C9A900BD963D /* ApplicationContext.swift in Sources */,
|
||||
D0612E491D58B478000C8F02 /* Application.swift in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
@ -3377,7 +3005,6 @@
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
D02CF61C215E51D500E0F56A /* BuildConfig.m in Sources */,
|
||||
D02CF601215D9ABF00E0F56A /* NotificationViewController.swift in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
@ -3386,16 +3013,7 @@
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
D0D1026A2212F804003ADA5E /* ClearNotificationsManager.swift in Sources */,
|
||||
D08410451FABDC5D008FFE92 /* TGItemProviderSignals.m in Sources */,
|
||||
D084104F1FABDCFD008FFE92 /* TGMimeTypeMap.m in Sources */,
|
||||
D03B0E7B1D63484500955575 /* ShareRootController.swift in Sources */,
|
||||
D0D102682212E9E6003ADA5E /* SharedWakeupManager.swift in Sources */,
|
||||
D0EA97941FE84F2D00792DD6 /* BuildConfig.m in Sources */,
|
||||
D084104E1FABDCFD008FFE92 /* TGContactModel.m in Sources */,
|
||||
D08410541FABE428008FFE92 /* ShareItems.swift in Sources */,
|
||||
D0D102692212F719003ADA5E /* SharedNotificationManager.swift in Sources */,
|
||||
D0AF322F1FACBA280097362B /* TGShareLocationSignals.m in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
@ -3404,7 +3022,6 @@
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
D0B2F7602050102600D3BFB9 /* PeerNode.swift in Sources */,
|
||||
D0B2F755204F4EAF00D3BFB9 /* BuildConfig.m in Sources */,
|
||||
D08DB0A4213F42F400F2ADBF /* TodayViewController.swift in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
@ -3414,7 +3031,6 @@
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
D08985072119B7FE00918162 /* IntentContacts.swift in Sources */,
|
||||
D0EA97951FE84F2E00792DD6 /* BuildConfig.m in Sources */,
|
||||
D0D268791D79A70A00C422DA /* IntentHandler.swift in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
|
36
Telegram-iOS.xcworkspace/contents.xcworkspacedata
generated
36
Telegram-iOS.xcworkspace/contents.xcworkspacedata
generated
@ -1,6 +1,42 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Workspace
|
||||
version = "1.0">
|
||||
<FileRef
|
||||
location = "group:/Users/peter/build/telegram-subtrees/telegram-ios/submodules/LightweightAccountData/LightweightAccountData_Xcode.xcodeproj">
|
||||
</FileRef>
|
||||
<FileRef
|
||||
location = "group:/Users/peter/build/telegram-subtrees/telegram-ios/submodules/WatchCommon/WatchCommon_Xcode.xcodeproj">
|
||||
</FileRef>
|
||||
<FileRef
|
||||
location = "group:/Users/peter/build/telegram-subtrees/telegram-ios/submodules/BuildConfig/BuildConfig_Xcode.xcodeproj">
|
||||
</FileRef>
|
||||
<FileRef
|
||||
location = "group:/Users/peter/build/telegram-subtrees/telegram-ios/submodules/MediaPlayer/UniversalMediaPlayer_Xcode.xcodeproj">
|
||||
</FileRef>
|
||||
<FileRef
|
||||
location = "group:/Users/peter/build/telegram-subtrees/telegram-ios/submodules/DeviceAccess/DeviceAccess_Xcode.xcodeproj">
|
||||
</FileRef>
|
||||
<FileRef
|
||||
location = "group:/Users/peter/build/telegram-subtrees/telegram-ios/submodules/TelegramPresentationData/TelegramPresentationData_Xcode.xcodeproj">
|
||||
</FileRef>
|
||||
<FileRef
|
||||
location = "group:/Users/peter/build/telegram-subtrees/telegram-ios/submodules/TelegramAudio/TelegramAudio_Xcode.xcodeproj">
|
||||
</FileRef>
|
||||
<FileRef
|
||||
location = "group:/Users/peter/build/telegram-subtrees/telegram-ios/submodules/TelegramVoip/TelegramVoip_Xcode.xcodeproj">
|
||||
</FileRef>
|
||||
<FileRef
|
||||
location = "group:/Users/peter/build/telegram-subtrees/telegram-ios/submodules/TelegramUIPreferences/TelegramUIPreferences_Xcode.xcodeproj">
|
||||
</FileRef>
|
||||
<FileRef
|
||||
location = "group:/Users/peter/build/telegram-subtrees/telegram-ios/submodules/GZip/GZip_Xcode.xcodeproj">
|
||||
</FileRef>
|
||||
<FileRef
|
||||
location = "group:/Users/peter/build/telegram-subtrees/telegram-ios/submodules/RMIntro/RMIntro_Xcode.xcodeproj">
|
||||
</FileRef>
|
||||
<FileRef
|
||||
location = "group:/Users/peter/build/telegram-subtrees/telegram-ios/submodules/TelegramCallsUI/TelegramCallsUI_Xcode.xcodeproj">
|
||||
</FileRef>
|
||||
<FileRef
|
||||
location = "group:submodules/AsyncDisplayKit/AsyncDisplayKit_Xcode.xcodeproj">
|
||||
</FileRef>
|
||||
|
@ -1,55 +0,0 @@
|
||||
import Foundation
|
||||
|
||||
struct AccountNotificationKey: Codable {
|
||||
let id: Data
|
||||
let data: Data
|
||||
}
|
||||
|
||||
struct AccountDatacenterKey: Codable {
|
||||
let id: Int64
|
||||
let data: Data
|
||||
}
|
||||
|
||||
struct AccountDatacenterAddress: Codable {
|
||||
let host: String
|
||||
let port: Int32
|
||||
let isMedia: Bool
|
||||
let secret: Data?
|
||||
}
|
||||
|
||||
struct AccountDatacenterInfo: Codable {
|
||||
let masterKey: AccountDatacenterKey
|
||||
let addressList: [AccountDatacenterAddress]
|
||||
}
|
||||
|
||||
struct AccountProxyConnection: Codable {
|
||||
let host: String
|
||||
let port: Int32
|
||||
let username: String?
|
||||
let password: String?
|
||||
let secret: Data?
|
||||
}
|
||||
|
||||
struct StoredAccountInfo: Codable {
|
||||
let id: Int64
|
||||
let primaryId: Int32
|
||||
let isTestingEnvironment: Bool
|
||||
let peerName: String
|
||||
let datacenters: [Int32: AccountDatacenterInfo]
|
||||
let notificationKey: AccountNotificationKey
|
||||
}
|
||||
|
||||
struct StoredAccountInfos: Codable {
|
||||
let proxy: AccountProxyConnection?
|
||||
let accounts: [StoredAccountInfo]
|
||||
}
|
||||
|
||||
func loadAccountsData(rootPath: String) -> StoredAccountInfos {
|
||||
guard let data = try? Data(contentsOf: URL(fileURLWithPath: rootPath + "/accounts-shared-data")) else {
|
||||
return StoredAccountInfos(proxy: nil, accounts: [])
|
||||
}
|
||||
guard let value = try? JSONDecoder().decode(StoredAccountInfos.self, from: data) else {
|
||||
return StoredAccountInfos(proxy: nil, accounts: [])
|
||||
}
|
||||
return value
|
||||
}
|
@ -1,34 +0,0 @@
|
||||
#if DEBUG
|
||||
|
||||
import Foundation
|
||||
import TelegramCore
|
||||
import Postbox
|
||||
import SwiftSignalKit
|
||||
import Display
|
||||
import TelegramUI
|
||||
|
||||
func snapshotAppearanceSettings(application: UIApplication, mainWindow: UIWindow, window: Window1, statusBarHost: StatusBarHost) {
|
||||
let (context, accountManager) = snapshotEnvironment(application: application, mainWindow: mainWindow, statusBarHost: statusBarHost, theme: .day)
|
||||
context.account.network.mockConnectionStatus = .online(proxyAddress: nil)
|
||||
|
||||
let _ = (context.account.postbox.transaction { transaction -> Void in
|
||||
if let hole = context.account.postbox.seedConfiguration.initializeChatListWithHole.topLevel {
|
||||
transaction.replaceChatListHole(groupId: .root, index: hole.index, hole: nil)
|
||||
}
|
||||
|
||||
let accountPeer = TelegramUser(id: context.account.peerId, accessHash: nil, firstName: "Alena", lastName: "Shy", username: "alenashy", phone: "44321456789", photo: snapshotAvatar(context.account.postbox, 1), botInfo: nil, restrictionInfo: nil, flags: [])
|
||||
transaction.updatePeersInternal([accountPeer], update: { _, updated in
|
||||
return updated
|
||||
})
|
||||
}).start()
|
||||
|
||||
let rootController = TelegramRootController(context: context)
|
||||
rootController.addRootControllers(showCallsTab: true)
|
||||
window.viewController = rootController
|
||||
rootController.rootTabController!.selectedIndex = 3
|
||||
rootController.pushViewController(themeSettingsController(context: context))
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
@ -1,155 +0,0 @@
|
||||
#if DEBUG
|
||||
|
||||
import Foundation
|
||||
import TelegramCore
|
||||
import Postbox
|
||||
import SwiftSignalKit
|
||||
import Display
|
||||
import TelegramUI
|
||||
|
||||
private enum SnapshotPeerAvatar {
|
||||
case none
|
||||
case id(Int32)
|
||||
}
|
||||
|
||||
private func avatarImages(_ postbox: Postbox, _ value: SnapshotPeerAvatar) -> [TelegramMediaImageRepresentation] {
|
||||
switch value {
|
||||
case .none:
|
||||
return []
|
||||
case let .id(id):
|
||||
return snapshotAvatar(postbox, id)
|
||||
}
|
||||
}
|
||||
|
||||
private enum SnapshotPeer {
|
||||
case user(Int32, SnapshotPeerAvatar, String?, String?)
|
||||
case secretChat(Int32, Int32, SnapshotPeerAvatar, String?, String?)
|
||||
case channel(Int32, SnapshotPeerAvatar, String)
|
||||
|
||||
func additionalPeer(_ postbox: Postbox) -> Peer? {
|
||||
switch self {
|
||||
case .user:
|
||||
return nil
|
||||
case let .secretChat(_, userId, avatar, first, last):
|
||||
return TelegramUser(id: PeerId(namespace: Namespaces.Peer.CloudUser, id: userId), accessHash: nil, firstName: first, lastName: last, username: nil, phone: nil, photo: avatarImages(postbox, avatar), botInfo: nil, restrictionInfo: nil, flags: [])
|
||||
case .channel:
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
||||
var peerId: PeerId {
|
||||
switch self {
|
||||
case let .user(id, _, _, _):
|
||||
return PeerId(namespace: Namespaces.Peer.CloudUser, id: id)
|
||||
case let .secretChat(id, _, _, _, _):
|
||||
return PeerId(namespace: Namespaces.Peer.SecretChat, id: id)
|
||||
case let .channel(id, _, _):
|
||||
return PeerId(namespace: Namespaces.Peer.CloudChannel, id: id)
|
||||
}
|
||||
}
|
||||
|
||||
func peer(_ postbox: Postbox) -> Peer {
|
||||
switch self {
|
||||
case let .user(id, avatar, first, last):
|
||||
return TelegramUser(id: PeerId(namespace: Namespaces.Peer.CloudUser, id: id), accessHash: nil, firstName: first, lastName: last, username: nil, phone: nil, photo: avatarImages(postbox, avatar), botInfo: nil, restrictionInfo: nil, flags: [])
|
||||
case let .secretChat(id, userId, _, _, _):
|
||||
return TelegramSecretChat(id: PeerId(namespace: Namespaces.Peer.SecretChat, id: id), creationDate: 123, regularPeerId: PeerId(namespace: Namespaces.Peer.CloudUser, id: userId), accessHash: 123, role: .creator, embeddedState: .active, messageAutoremoveTimeout: nil)
|
||||
case let .channel(id, avatar, title):
|
||||
return TelegramChannel(id: PeerId(namespace: Namespaces.Peer.CloudChannel, id: id), accessHash: 123, title: title, username: nil, photo: avatarImages(postbox, avatar), creationDate: 123, version: 0, participationStatus: .member, info: .broadcast(TelegramChannelBroadcastInfo(flags: [])), flags: [], restrictionInfo: nil, adminRights: nil, bannedRights: nil, defaultBannedRights: nil)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private struct SnapshotMessage {
|
||||
let date: Int32
|
||||
let peer: SnapshotPeer
|
||||
let text: String
|
||||
let outgoing: Bool
|
||||
|
||||
init(_ date: Int32, _ peer: SnapshotPeer, _ text: String, _ outgoing: Bool) {
|
||||
self.date = date
|
||||
self.peer = peer
|
||||
self.text = text
|
||||
self.outgoing = outgoing
|
||||
}
|
||||
|
||||
func storeMessage(_ accountPeerId: PeerId, _ baseDate: Int32) -> StoreMessage {
|
||||
var flags: StoreMessageFlags = []
|
||||
if !self.outgoing {
|
||||
flags.insert(.Incoming)
|
||||
}
|
||||
return StoreMessage(id: MessageId(peerId: self.peer.peerId, namespace: Namespaces.Message.Cloud, id: self.date), globallyUniqueId: nil, groupingKey: nil, timestamp: baseDate + self.date, flags: flags, tags: [], globalTags: [], localTags: [], forwardInfo: nil, authorId: outgoing ? accountPeerId : self.peer.peerId, text: self.text, attributes: [], media: [])
|
||||
}
|
||||
}
|
||||
|
||||
private struct SnapshotChat {
|
||||
let message: SnapshotMessage
|
||||
let unreadCount: Int32
|
||||
let isPinned: Bool
|
||||
let isMuted: Bool
|
||||
|
||||
init(_ message: SnapshotMessage, unreadCount: Int32 = 0, isPinned: Bool = false, isMuted: Bool = false) {
|
||||
self.message = message
|
||||
self.unreadCount = unreadCount
|
||||
self.isPinned = isPinned
|
||||
self.isMuted = isMuted
|
||||
}
|
||||
}
|
||||
|
||||
private let chatList: [SnapshotChat] = [
|
||||
.init(.init(100, .user(1, .id(7), "Jane", ""), "Well I do help animals. Maybe I'll have a few cats in my new luxury apartment. 😊", false), isPinned: true),
|
||||
.init(.init(90, .user(3, .none, "Tyrion", "Lannister"), "Sometimes posession is an abstract concept. They took my purse, but the gold is still mine.", false), unreadCount: 1),
|
||||
.init(.init(80, .user(2, .id(1), "Alena", "Shy"), "😍 Sticker", true)),
|
||||
.init(.init(70, .secretChat(4, 4, .id(8), "Heisenberg", ""), "Thanks, Telegram helps me a lot. You have my financial support if you need more servers.", false)),
|
||||
.init(.init(60, .user(5, .id(9), "Bender", ""), "I looove new iPhones! In fact, they invited me to a focus group.", false)),
|
||||
.init(.init(50, .channel(6, .id(10), "World News Today"), "LaserBlastSafetyGuide.pdf", false), unreadCount: 1, isMuted: true),
|
||||
.init(.init(40, .user(7, .id(11), "EVE", ""), "LaserBlastSafetyGuide.pdf", true)),
|
||||
.init(.init(30, .user(8, .id(12), "Nick", ""), "It's impossible", false))
|
||||
]
|
||||
|
||||
func snapshotChatList(application: UIApplication, mainWindow: UIWindow, window: Window1, statusBarHost: StatusBarHost) {
|
||||
let (context, _) = snapshotEnvironment(application: application, mainWindow: mainWindow, statusBarHost: statusBarHost, theme: .night)
|
||||
context.account.network.mockConnectionStatus = .online(proxyAddress: nil)
|
||||
|
||||
let _ = (context.account.postbox.transaction { transaction -> Void in
|
||||
if let hole = context.account.postbox.seedConfiguration.initializeChatListWithHole.topLevel {
|
||||
transaction.replaceChatListHole(groupId: .root, index: hole.index, hole: nil)
|
||||
}
|
||||
|
||||
let accountPeer = TelegramUser(id: context.account.peerId, accessHash: nil, firstName: "Alena", lastName: "Shy", username: "alenashy", phone: "44321456789", photo: [], botInfo: nil, restrictionInfo: nil, flags: [])
|
||||
transaction.updatePeersInternal([accountPeer], update: { _, updated in
|
||||
return updated
|
||||
})
|
||||
|
||||
let baseDate: Int32 = Int32(Date().timeIntervalSince1970) - 10000
|
||||
for item in chatList {
|
||||
let peer = item.message.peer.peer(context.account.postbox)
|
||||
|
||||
transaction.updatePeersInternal([peer], update: { _, updated in
|
||||
return updated
|
||||
})
|
||||
if let additionalPeer = item.message.peer.additionalPeer(context.account.postbox) {
|
||||
transaction.updatePeersInternal([additionalPeer], update: { _, updated in
|
||||
return updated
|
||||
})
|
||||
}
|
||||
transaction.updatePeerChatListInclusion(peer.id, inclusion: .ifHasMessagesOrOneOf(groupId: .root, pinningIndex: nil, minTimestamp: nil))
|
||||
let _ = transaction.addMessages([item.message.storeMessage(context.account.peerId, baseDate)], location: .UpperHistoryBlock)
|
||||
transaction.resetIncomingReadStates([peer.id: [Namespaces.Message.Cloud: .idBased(maxIncomingReadId: Int32.max - 1, maxOutgoingReadId: Int32.max - 1, maxKnownId: Int32.max - 1, count: item.unreadCount, markedUnread: false)]])
|
||||
if item.isMuted {
|
||||
transaction.updateCurrentPeerNotificationSettings([peer.id: TelegramPeerNotificationSettings.defaultSettings.withUpdatedMuteState(.muted(until: Int32.max - 1))])
|
||||
} else {
|
||||
transaction.updateCurrentPeerNotificationSettings([peer.id: TelegramPeerNotificationSettings.defaultSettings])
|
||||
}
|
||||
}
|
||||
transaction.setPinnedItemIds(groupId: .root, itemIds: chatList.filter{ $0.isPinned }.map{ .peer($0.message.peer.peerId) })
|
||||
}).start()
|
||||
|
||||
let rootController = TelegramRootController(context: context)
|
||||
rootController.addRootControllers(showCallsTab: true)
|
||||
window.viewController = rootController
|
||||
rootController.rootTabController!.selectedIndex = 0
|
||||
rootController.rootTabController!.selectedIndex = 2
|
||||
}
|
||||
|
||||
#endif
|
@ -1,115 +0,0 @@
|
||||
#if DEBUG
|
||||
|
||||
import Foundation
|
||||
import TelegramCore
|
||||
import Postbox
|
||||
import SwiftSignalKit
|
||||
import TelegramUI
|
||||
import Display
|
||||
|
||||
enum SnapshotEnvironmentTheme {
|
||||
case night
|
||||
case day
|
||||
}
|
||||
|
||||
func snapshotEnvironment(application: UIApplication, mainWindow: UIWindow, statusBarHost: StatusBarHost, theme: SnapshotEnvironmentTheme) -> (AccountContext, AccountManager) {
|
||||
preconditionFailure()
|
||||
/*var randomId: Int64 = 0
|
||||
arc4random_buf(&randomId, 8)
|
||||
let path = NSTemporaryDirectory() + "\(randomId)"
|
||||
|
||||
Logger.setSharedLogger(Logger(basePath: path + "/logs"))
|
||||
Logger.shared.logToFile = false
|
||||
|
||||
let semaphore = DispatchSemaphore(value: 0)
|
||||
var accountManagerValue: AccountManager?
|
||||
initializeAccountManagement()
|
||||
let _ = accountManager(basePath: path).start(next: { value in
|
||||
accountManagerValue = value
|
||||
semaphore.signal()
|
||||
})
|
||||
semaphore.wait()
|
||||
precondition(accountManagerValue != nil)
|
||||
|
||||
var result: Account?
|
||||
while true {
|
||||
let account = currentAccount(allocateIfNotExists: true, networkArguments: NetworkInitializationArguments(apiId: 0, languagesCategory: "ios", appVersion: "unknown", voipMaxLayer: 0), supplementary: false, manager: accountManagerValue!, rootPath: path, auxiliaryMethods: AccountAuxiliaryMethods(updatePeerChatInputState: { _, _ in return nil }, fetchResource: { _, _, _, _ in
|
||||
return .never()
|
||||
}, fetchResourceMediaReferenceHash: { _ in
|
||||
return .never()
|
||||
}, prepareSecretThumbnailData: { _ in
|
||||
return nil
|
||||
})) |> take(1)
|
||||
let semaphore = DispatchSemaphore(value: 0)
|
||||
let _ = account.start(next: { value in
|
||||
switch value! {
|
||||
case .upgrading:
|
||||
preconditionFailure()
|
||||
case let .unauthorized(account):
|
||||
let _ = account.postbox.transaction({ transaction -> Void in
|
||||
let encoder = PostboxEncoder()
|
||||
encoder.encodeInt32(1, forKey: "masterDatacenterId")
|
||||
encoder.encodeInt64(PeerId(namespace: Namespaces.Peer.CloudUser, id: 1234567).toInt64(), forKey: "peerId")
|
||||
|
||||
transaction.setState(AuthorizedAccountState(decoder: PostboxDecoder(buffer: encoder.readBufferNoCopy())))
|
||||
}).start()
|
||||
case let .authorized(account):
|
||||
result = account
|
||||
}
|
||||
semaphore.signal()
|
||||
})
|
||||
semaphore.wait()
|
||||
if result != nil {
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
let applicationBindings = TelegramApplicationBindings(isMainApp: true, containerPath: path, appSpecificScheme: "tg", openUrl: { _ in
|
||||
}, openUniversalUrl: { _, completion in
|
||||
completion.completion(false)
|
||||
}, canOpenUrl: { _ in
|
||||
return false
|
||||
}, getTopWindow: {
|
||||
for window in application.windows.reversed() {
|
||||
if window === mainWindow || window === statusBarHost.keyboardWindow {
|
||||
return window
|
||||
}
|
||||
}
|
||||
return application.windows.last
|
||||
}, displayNotification: { _ in
|
||||
}, applicationInForeground: .single(true), applicationIsActive: .single(true), clearMessageNotifications: { _ in
|
||||
}, pushIdleTimerExtension: {
|
||||
return EmptyDisposable
|
||||
}, openSettings: {
|
||||
}, openAppStorePage: {
|
||||
}, registerForNotifications: { _ in
|
||||
}, requestSiriAuthorization: { _ in }, siriAuthorization: { return .notDetermined }, getWindowHost: {
|
||||
return nil
|
||||
}, presentNativeController: { _ in
|
||||
}, dismissNativeController: {
|
||||
})
|
||||
|
||||
let _ = updatePresentationThemeSettingsInteractively(postbox: result!.postbox, { _ in
|
||||
switch theme {
|
||||
case .day:
|
||||
return PresentationThemeSettings(chatWallpaper: .color(0xffffff), theme: .builtin(.day), themeAccentColor: nil, themeSpecificChatWallpapers: [:], fontSize: .regular, automaticThemeSwitchSetting: AutomaticThemeSwitchSetting(trigger: .none, theme: .nightAccent), disableAnimations: false)
|
||||
case .night:
|
||||
return PresentationThemeSettings(chatWallpaper: .color(0x000000), theme: .builtin(.nightAccent), themeAccentColor: nil, themeSpecificChatWallpapers: [:], fontSize: .regular, automaticThemeSwitchSetting: AutomaticThemeSwitchSetting(trigger: .none, theme: .nightAccent), disableAnimations: false)
|
||||
}
|
||||
}).start()
|
||||
|
||||
let semaphore1 = DispatchSemaphore(value: 0)
|
||||
var dataAndSettings: InitialPresentationDataAndSettings?
|
||||
let _ = currentPresentationDataAndSettings(postbox: result!.postbox).start(next: { value in
|
||||
dataAndSettings = value
|
||||
semaphore1.signal()
|
||||
})
|
||||
semaphore1.wait()
|
||||
precondition(dataAndSettings != nil)
|
||||
|
||||
let context = AccountContext(sharedContext: SharedAccountContext(applicationBindings: applicationBindings, accountManager: accountManagerValue!), account: result!, initialPresentationDataAndSettings: dataAndSettings!)
|
||||
|
||||
return (context, accountManagerValue!)*/
|
||||
}
|
||||
|
||||
#endif
|
@ -1,32 +0,0 @@
|
||||
#if DEBUG
|
||||
|
||||
import Foundation
|
||||
import Postbox
|
||||
import SwiftSignalKit
|
||||
import TelegramCore
|
||||
|
||||
private var dataPath: String?
|
||||
|
||||
func setupSnapshotData(_ path: String) {
|
||||
dataPath = path
|
||||
}
|
||||
|
||||
func snapshotAvatar(_ postbox: Postbox, _ id: Int32) -> [TelegramMediaImageRepresentation] {
|
||||
guard let path = dataPath else {
|
||||
return []
|
||||
}
|
||||
|
||||
guard let data = try? Data(contentsOf: URL(fileURLWithPath: path + "/Bitmap\(id).png")) else {
|
||||
return []
|
||||
}
|
||||
if let image = UIImage(data: data) {
|
||||
let resource = LocalFileMediaResource(fileId: arc4random64(), size: data.count)
|
||||
|
||||
postbox.mediaBox.storeResourceData(resource.id, data: data)
|
||||
return [TelegramMediaImageRepresentation(dimensions: image.size, resource: resource)]
|
||||
} else {
|
||||
return []
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
@ -1,75 +0,0 @@
|
||||
#if DEBUG
|
||||
|
||||
import Foundation
|
||||
import TelegramCore
|
||||
import Postbox
|
||||
import SwiftSignalKit
|
||||
import Display
|
||||
import TelegramUI
|
||||
|
||||
private enum SnapshotMessage {
|
||||
case text(String, Bool)
|
||||
case timer(Int32, Bool)
|
||||
|
||||
func storeMessage(_ postbox: Postbox, peerId: PeerId, userPeerId: PeerId, accountPeerId: PeerId, _ date: Int32) -> StoreMessage {
|
||||
switch self {
|
||||
case let .text(text, outgoing):
|
||||
var flags: StoreMessageFlags = []
|
||||
if !outgoing {
|
||||
flags.insert(.Incoming)
|
||||
}
|
||||
return StoreMessage(id: MessageId(peerId: peerId, namespace: Namespaces.Message.Cloud, id: date), globallyUniqueId: nil, groupingKey: nil, timestamp: date, flags: flags, tags: [], globalTags: [], localTags: [], forwardInfo: nil, authorId: outgoing ? accountPeerId : userPeerId, text: text, attributes: [], media: [])
|
||||
case let .timer(timeout, outgoing):
|
||||
var flags: StoreMessageFlags = []
|
||||
if !outgoing {
|
||||
flags.insert(.Incoming)
|
||||
}
|
||||
return StoreMessage(id: MessageId(peerId: peerId, namespace: Namespaces.Message.Cloud, id: date), globallyUniqueId: nil, groupingKey: nil, timestamp: date, flags: flags, tags: [], globalTags: [], localTags: [], forwardInfo: nil, authorId: outgoing ? accountPeerId : userPeerId, text: "", attributes: [], media: [TelegramMediaAction(action: .messageAutoremoveTimeoutUpdated(timeout))])
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private let messages: [SnapshotMessage] = [
|
||||
.text("Hey Eileen", true),
|
||||
.text("So, why is Telegram cool?", true),
|
||||
.text("Well, look. Telegram is superfast and you can use it on all your devices at the same time — phones, tablets, even desktops.", false),
|
||||
.text("😴", true),
|
||||
.text("And it has secret chats, like this one, with end-to-end encryption!", false),
|
||||
.text("End encryption to what end??", true),
|
||||
.text("Arrgh. Forget it. You can set a timer and send photos that will disappear when the time runs out. Yay!", false),
|
||||
.timer(15, false)
|
||||
]
|
||||
|
||||
func snapshotSecretChat(application: UIApplication, mainWindow: UIWindow, window: Window1, statusBarHost: StatusBarHost) {
|
||||
let (context, _) = snapshotEnvironment(application: application, mainWindow: mainWindow, statusBarHost: statusBarHost, theme: .night)
|
||||
context.account.network.mockConnectionStatus = .online(proxyAddress: nil)
|
||||
|
||||
let accountPeer = TelegramUser(id: context.account.peerId, accessHash: nil, firstName: "Alena", lastName: "Shy", username: "alenashy", phone: "44321456789", photo: [], botInfo: nil, restrictionInfo: nil, flags: [])
|
||||
let userPeer = TelegramUser(id: PeerId(namespace: Namespaces.Peer.CloudUser, id: 456), accessHash: nil, firstName: "Eileen", lastName: "Lockhard", username: nil, phone: "44321456789", photo: snapshotAvatar(context.account.postbox, 6), botInfo: nil, restrictionInfo: nil, flags: [])
|
||||
let secretPeer = TelegramSecretChat(id: PeerId(namespace: Namespaces.Peer.SecretChat, id: 456), creationDate: 123, regularPeerId: userPeer.id, accessHash: 123, role: .creator, embeddedState: .active, messageAutoremoveTimeout: nil)
|
||||
|
||||
let _ = (context.account.postbox.transaction { transaction -> Void in
|
||||
if let hole = context.account.postbox.seedConfiguration.initializeChatListWithHole.topLevel {
|
||||
transaction.replaceChatListHole(groupId: .root, index: hole.index, hole: nil)
|
||||
}
|
||||
|
||||
transaction.updatePeersInternal([accountPeer, userPeer, secretPeer], update: { _, updated in
|
||||
return updated
|
||||
})
|
||||
|
||||
transaction.updatePeerPresencesInternal(presences: [userPeer.id: TelegramUserPresence(status: .present(until: Int32.max - 1), lastActivity: 0)], merge: { _, updated in return updated })
|
||||
|
||||
var date: Int32 = Int32(Date().timeIntervalSince1970) - 1000
|
||||
for message in messages {
|
||||
let _ = transaction.addMessages([message.storeMessage(context.account.postbox, peerId: secretPeer.id, userPeerId: userPeer.id, accountPeerId: context.account.peerId, date)], location: .UpperHistoryBlock)
|
||||
date += 10
|
||||
}
|
||||
}).start()
|
||||
|
||||
let rootController = TelegramRootController(context: context)
|
||||
rootController.addRootControllers(showCallsTab: true)
|
||||
window.viewController = rootController
|
||||
navigateToChatController(navigationController: rootController, context: context, chatLocation: .peer(secretPeer.id), animated: false)
|
||||
}
|
||||
|
||||
#endif
|
@ -1,33 +0,0 @@
|
||||
#if DEBUG
|
||||
|
||||
import Foundation
|
||||
import TelegramCore
|
||||
import Postbox
|
||||
import SwiftSignalKit
|
||||
import Display
|
||||
import TelegramUI
|
||||
|
||||
func snapshotSettings(application: UIApplication, mainWindow: UIWindow, window: Window1, statusBarHost: StatusBarHost) {
|
||||
let (context, accountManager) = snapshotEnvironment(application: application, mainWindow: mainWindow, statusBarHost: statusBarHost, theme: .night)
|
||||
context.account.network.mockConnectionStatus = .online(proxyAddress: nil)
|
||||
|
||||
let _ = (context.account.postbox.transaction { transaction -> Void in
|
||||
if let hole = context.account.postbox.seedConfiguration.initializeChatListWithHole.topLevel {
|
||||
transaction.replaceChatListHole(groupId: .root, index: hole.index, hole: nil)
|
||||
}
|
||||
|
||||
let accountPeer = TelegramUser(id: context.account.peerId, accessHash: nil, firstName: "Alena", lastName: "Shy", username: "alenashy", phone: "44321456789", photo: snapshotAvatar(context.account.postbox, 1), botInfo: nil, restrictionInfo: nil, flags: [])
|
||||
transaction.updatePeersInternal([accountPeer], update: { _, updated in
|
||||
return updated
|
||||
})
|
||||
}).start()
|
||||
|
||||
let rootController = TelegramRootController(context: context)
|
||||
rootController.addRootControllers(showCallsTab: true)
|
||||
window.viewController = rootController
|
||||
rootController.rootTabController!.selectedIndex = 3
|
||||
rootController.pushViewController(settingsController(context: context, accountManager: accountManager))
|
||||
}
|
||||
|
||||
#endif
|
||||
|
@ -1,17 +1,4 @@
|
||||
#ifndef Telegram_iOS_Telegram_Bridging_Header_h
|
||||
#define Telegram_iOS_Telegram_Bridging_Header_h
|
||||
|
||||
#import "BuildConfig.h"
|
||||
#import "TGAutoDownloadPreferences.h"
|
||||
#import "TGPresentationAutoNightPreferences.h"
|
||||
#import "TGProxyItem.h"
|
||||
#import "UIImage+ImageEffects.h"
|
||||
|
||||
#import "TGBridgeServer.h"
|
||||
#import "TGBridgeCommon.h"
|
||||
#import "TGBridgeSubscriptions.h"
|
||||
#import "TGBridgeChat.h"
|
||||
#import "TGBridgeUser.h"
|
||||
#import "TGBridgeLocationVenue.h"
|
||||
|
||||
#endif
|
||||
|
@ -1,7 +0,0 @@
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
int main(int argc, char *argv[]) {
|
||||
@autoreleasepool {
|
||||
return UIApplicationMain(argc, argv, @"Application", @"AppDelegate");
|
||||
}
|
||||
}
|
@ -1,32 +0,0 @@
|
||||
import Foundation
|
||||
import AsyncDisplayKit
|
||||
import MtProtoKit
|
||||
import SwiftSignalKit
|
||||
import SSignalKit
|
||||
import Display
|
||||
import Postbox
|
||||
import TelegramCore
|
||||
import LegacyComponents
|
||||
import HockeySDK
|
||||
import Lottie
|
||||
import WebP
|
||||
import FFMpeg
|
||||
import TelegramUIPrivateModule
|
||||
|
||||
func test() {
|
||||
let _ = ASDisplayNode()
|
||||
let _ = MTProto()
|
||||
let _ = Signal<Never, NoError> { subscriber in
|
||||
return ActionDisposable {
|
||||
}
|
||||
}
|
||||
let _ = SSignal(generator: { subscriber in
|
||||
return SBlockDisposable {
|
||||
}
|
||||
})
|
||||
let _ = ListView()
|
||||
let _ = SqliteValueBox(basePath: "", queue: .mainQueue(), encryptionParameters: nil, upgradeProgress: { _ in }, inMemory: true)
|
||||
initializeAccountManagement()
|
||||
BITHockeyManager.shared().crashManager.crashManagerStatus = .alwaysAsk
|
||||
let _ = LOTComposition(json: [:])
|
||||
}
|
@ -1,11 +1,10 @@
|
||||
#import "TGBridgeAudioSignals.h"
|
||||
#import "TGBridgeSubscriptions.h"
|
||||
#import "TGBridgeAudioMediaAttachment.h"
|
||||
|
||||
#import <WatchCommonWatch/WatchCommonWatch.h>
|
||||
|
||||
#import "TGBridgeClient.h"
|
||||
#import "TGFileCache.h"
|
||||
|
||||
#import "TGBridgeMessage.h"
|
||||
|
||||
#import "TGExtensionDelegate.h"
|
||||
#import <libkern/OSAtomic.h>
|
||||
|
||||
|
@ -1,11 +1,10 @@
|
||||
#import "TGBridgeBotSignals.h"
|
||||
|
||||
#import <WatchCommonWatch/WatchCommonWatch.h>
|
||||
|
||||
#import "TGBridgeUserCache.h"
|
||||
|
||||
#import "TGBridgeClient.h"
|
||||
#import "TGBridgeSubscriptions.h"
|
||||
|
||||
#import "TGBridgeUser.h"
|
||||
#import "TGBridgeBotInfo.h"
|
||||
|
||||
@implementation TGBridgeBotSignals
|
||||
|
||||
|
@ -1,4 +1,5 @@
|
||||
#import "TGBridgeChat.h"
|
||||
#import <WatchCommonWatch/WatchCommonWatch.h>
|
||||
|
||||
#import "WKInterfaceTable+TGDataDrivenTable.h"
|
||||
|
||||
@interface TGBridgeChat (TGTableItem) <TGTableItem>
|
||||
|
@ -1,7 +1,7 @@
|
||||
#import "TGBridgeChatListSignals.h"
|
||||
#import "TGBridgeSubscriptions.h"
|
||||
#import "TGBridgeChat.h"
|
||||
#import "TGBridgeUser.h"
|
||||
|
||||
#import <WatchCommonWatch/WatchCommonWatch.h>
|
||||
|
||||
#import "TGBridgeClient.h"
|
||||
|
||||
@implementation TGBridgeChatListSignals
|
||||
|
@ -1,7 +1,7 @@
|
||||
#import "TGBridgeChatMessageListSignals.h"
|
||||
#import "TGBridgeSubscriptions.h"
|
||||
#import "TGBridgeMessage.h"
|
||||
#import "TGBridgeUser.h"
|
||||
|
||||
#import <WatchCommonWatch/WatchCommonWatch.h>
|
||||
|
||||
#import "TGBridgeClient.h"
|
||||
|
||||
@implementation TGBridgeChatMessageListSignals
|
||||
|
@ -1,11 +1,11 @@
|
||||
#import "TGBridgeClient.h"
|
||||
#import "TGBridgeCommon.h"
|
||||
#import "TGBridgeChat.h"
|
||||
|
||||
#import <WatchCommonWatch/WatchCommonWatch.h>
|
||||
|
||||
#import "TGWatchCommon.h"
|
||||
|
||||
#import <WatchConnectivity/WatchConnectivity.h>
|
||||
|
||||
#import "TGBridgeContext.h"
|
||||
#import "TGFileCache.h"
|
||||
|
||||
#import "TGBridgeStickersSignals.h"
|
||||
|
@ -1,6 +1,7 @@
|
||||
#import "TGBridgeContactsSignals.h"
|
||||
#import "TGBridgeSubscriptions.h"
|
||||
#import "TGBridgeUser.h"
|
||||
|
||||
#import <WatchCommonWatch/WatchCommonWatch.h>
|
||||
|
||||
#import "TGBridgeClient.h"
|
||||
|
||||
@implementation TGBridgeContactsSignals
|
||||
|
@ -1,7 +1,7 @@
|
||||
#import "TGBridgeConversationSignals.h"
|
||||
#import "TGBridgeSubscriptions.h"
|
||||
#import "TGBridgeChat.h"
|
||||
#import "TGBridgeUser.h"
|
||||
|
||||
#import <WatchCommonWatch/WatchCommonWatch.h>
|
||||
|
||||
#import "TGBridgeClient.h"
|
||||
|
||||
@implementation TGBridgeConversationSignals
|
||||
|
@ -1,7 +1,7 @@
|
||||
#import "TGBridgeLocationSignals.h"
|
||||
#import "TGBridgeCommon.h"
|
||||
#import "TGBridgeSubscriptions.h"
|
||||
#import "TGBridgeLocationVenue.h"
|
||||
|
||||
#import <WatchCommonWatch/WatchCommonWatch.h>
|
||||
|
||||
#import "TGBridgeClient.h"
|
||||
|
||||
#import <CoreLocation/CoreLocation.h>
|
||||
|
@ -1,4 +1,5 @@
|
||||
#import "TGBridgeLocationVenue.h"
|
||||
#import <WatchCommonWatch/WatchCommonWatch.h>
|
||||
|
||||
#import "WKInterfaceTable+TGDataDrivenTable.h"
|
||||
|
||||
@interface TGBridgeLocationVenue (TGTableItem) <TGTableItem>
|
||||
|
@ -1,5 +1,5 @@
|
||||
#import <SSignalKit/SSignalKit.h>
|
||||
#import "TGBridgeSubscriptions.h"
|
||||
#import <WatchCommonWatch/WatchCommonWatch.h>
|
||||
|
||||
@class TGBridgeImageMediaAttachment;
|
||||
@class TGBridgeVideoMediaAttachment;
|
||||
|
@ -1,7 +1,7 @@
|
||||
#import "TGBridgeMediaSignals.h"
|
||||
#import "TGBridgeImageMediaAttachment.h"
|
||||
#import "TGBridgeVideoMediaAttachment.h"
|
||||
#import "TGBridgeDocumentMediaAttachment.h"
|
||||
|
||||
#import <WatchCommonWatch/WatchCommonWatch.h>
|
||||
|
||||
#import "TGBridgeClient.h"
|
||||
#import "TGFileCache.h"
|
||||
|
||||
|
@ -1,4 +1,5 @@
|
||||
#import "TGBridgeMessage.h"
|
||||
#import <WatchCommonWatch/WatchCommonWatch.h>
|
||||
|
||||
#import "WKInterfaceTable+TGDataDrivenTable.h"
|
||||
|
||||
@interface TGBridgeMessage (TGTableItem) <TGTableItem>
|
||||
|
@ -1,8 +0,0 @@
|
||||
#import "TGBridgeMediaAttachment.h"
|
||||
#import "TGBridgeMessageEntities.h"
|
||||
|
||||
@interface TGBridgeMessageEntitiesAttachment : TGBridgeMediaAttachment
|
||||
|
||||
@property (nonatomic, strong) NSArray *entities;
|
||||
|
||||
@end
|
@ -1,5 +1,4 @@
|
||||
#import <SSignalKit/SSignalKit.h>
|
||||
#import "TGBridgePeerNotificationSettings.h"
|
||||
|
||||
@interface TGBridgePeerSettingsSignals : NSObject
|
||||
|
||||
|
@ -1,5 +1,7 @@
|
||||
#import "TGBridgePeerSettingsSignals.h"
|
||||
#import "TGBridgeSubscriptions.h"
|
||||
|
||||
#import <WatchCommonWatch/WatchCommonWatch.h>
|
||||
|
||||
#import "TGBridgeClient.h"
|
||||
|
||||
@implementation TGBridgePeerSettingsSignals
|
||||
|
@ -1,5 +1,7 @@
|
||||
#import "TGBridgeRemoteSignals.h"
|
||||
#import "TGBridgeSubscriptions.h"
|
||||
|
||||
#import <WatchCommonWatch/WatchCommonWatch.h>
|
||||
|
||||
#import "TGBridgeClient.h"
|
||||
|
||||
@implementation TGBridgeRemoteSignals
|
||||
|
@ -1,7 +1,6 @@
|
||||
#import <SSignalKit/SSignalKit.h>
|
||||
|
||||
#import "TGBridgeDocumentMediaAttachment.h"
|
||||
#import "TGBridgeLocationMediaAttachment.h"
|
||||
#import <WatchCommonWatch/WatchCommonWatch.h>
|
||||
|
||||
@interface TGBridgeSendMessageSignals : NSObject
|
||||
|
||||
|
@ -1,6 +1,7 @@
|
||||
#import "TGBridgeSendMessageSignals.h"
|
||||
#import "TGBridgeSubscriptions.h"
|
||||
#import "TGBridgeMessage.h"
|
||||
|
||||
#import <WatchCommonWatch/WatchCommonWatch.h>
|
||||
|
||||
#import "TGBridgeClient.h"
|
||||
|
||||
@implementation TGBridgeSendMessageSignals
|
||||
|
@ -1,5 +1,7 @@
|
||||
#import "TGBridgeStateSignal.h"
|
||||
#import "TGBridgeSubscriptions.h"
|
||||
|
||||
#import <WatchCommonWatch/WatchCommonWatch.h>
|
||||
|
||||
#import "TGBridgeClient.h"
|
||||
|
||||
@implementation TGBridgeStateSignal
|
||||
|
@ -1,4 +1,4 @@
|
||||
#import "TGBridgeCommon.h"
|
||||
#import <WatchCommonWatch/WatchCommonWatch.h>
|
||||
|
||||
@interface TGBridgeStickerPack : NSObject <NSCoding>
|
||||
{
|
||||
|
@ -1,5 +1,6 @@
|
||||
#import "TGBridgeStickerPack.h"
|
||||
#import "TGBridgeDocumentMediaAttachment.h"
|
||||
|
||||
#import <WatchCommonWatch/WatchCommonWatch.h>
|
||||
|
||||
NSString *const TGBridgeStickerPackBuiltInKey = @"builtin";
|
||||
NSString *const TGBridgeStickerPackTitleKey = @"title";
|
||||
|
@ -1,7 +1,8 @@
|
||||
#import "TGBridgeStickersSignals.h"
|
||||
#import "TGBridgeSubscriptions.h"
|
||||
|
||||
#import <WatchCommonWatch/WatchCommonWatch.h>
|
||||
|
||||
#import "TGBridgeStickerPack.h"
|
||||
#import "TGBridgeDocumentMediaAttachment.h"
|
||||
#import "TGBridgeClient.h"
|
||||
|
||||
@implementation TGBridgeStickersSignals
|
||||
|
@ -1,4 +1,5 @@
|
||||
#import "TGBridgeUser.h"
|
||||
#import <WatchCommonWatch/WatchCommonWatch.h>
|
||||
|
||||
#import "WKInterfaceTable+TGDataDrivenTable.h"
|
||||
|
||||
@interface TGBridgeUser (TGTableItem) <TGTableItem>
|
||||
|
@ -1,6 +1,7 @@
|
||||
#import "TGBridgeUserInfoSignals.h"
|
||||
#import "TGBridgeSubscriptions.h"
|
||||
#import "TGBridgeUser.h"
|
||||
|
||||
#import <WatchCommonWatch/WatchCommonWatch.h>
|
||||
|
||||
#import "TGBridgeClient.h"
|
||||
|
||||
@implementation TGBridgeUserInfoSignals
|
||||
|
@ -1,8 +1,6 @@
|
||||
#import "TGAvatarViewModel.h"
|
||||
|
||||
#import "TGBridgeContext.h"
|
||||
#import "TGBridgeUser.h"
|
||||
#import "TGBridgeChat.h"
|
||||
#import <WatchCommonWatch/WatchCommonWatch.h>
|
||||
|
||||
#import "TGStringUtils.h"
|
||||
#import "TGWatchColor.h"
|
||||
|
@ -1,10 +1,10 @@
|
||||
#import "TGBotCommandController.h"
|
||||
|
||||
#import <WatchCommonWatch/WatchCommonWatch.h>
|
||||
|
||||
#import "TGWatchCommon.h"
|
||||
#import <SSignalKit/SSignalKit.h>
|
||||
|
||||
#import "TGBridgeUser.h"
|
||||
#import "TGBridgeBotCommandInfo.h"
|
||||
|
||||
#import "WKInterfaceTable+TGDataDrivenTable.h"
|
||||
|
||||
#import "TGUserRowController.h"
|
||||
|
@ -1,11 +1,11 @@
|
||||
#import "TGBridgeUserCache.h"
|
||||
|
||||
#import <WatchCommonWatch/WatchCommonWatch.h>
|
||||
|
||||
#import "TGFileCache.h"
|
||||
|
||||
#import <libkern/OSAtomic.h>
|
||||
|
||||
#import "TGBridgeUser.h"
|
||||
#import "TGBridgeBotInfo.h"
|
||||
|
||||
@interface TGBridgeUserCache ()
|
||||
{
|
||||
NSMutableDictionary *_userByUid;
|
||||
|
@ -1,7 +1,9 @@
|
||||
#import "TGComposeController.h"
|
||||
|
||||
#import <WatchCommonWatch/WatchCommonWatch.h>
|
||||
|
||||
#import "TGWatchCommon.h"
|
||||
#import "TGBridgeSendMessageSignals.h"
|
||||
#import "TGBridgeUser.h"
|
||||
|
||||
#import "WKInterfaceGroup+Signals.h"
|
||||
#import "TGBridgeMediaSignals.h"
|
||||
|
@ -1,13 +1,13 @@
|
||||
#import "TGGroupInfoController.h"
|
||||
|
||||
#import <WatchCommonWatch/WatchCommonWatch.h>
|
||||
|
||||
#import "TGWatchCommon.h"
|
||||
|
||||
#import "TGStringUtils.h"
|
||||
|
||||
#import "TGBridgeContext.h"
|
||||
#import "TGBridgeConversationSignals.h"
|
||||
#import "TGBridgePeerSettingsSignals.h"
|
||||
#import "TGBridgeChat.h"
|
||||
#import "TGBridgeUser.h"
|
||||
|
||||
#import "WKInterfaceTable+TGDataDrivenTable.h"
|
||||
#import "TGTableDeltaUpdater.h"
|
||||
|
@ -1,15 +1,13 @@
|
||||
#import "TGGroupInfoHeaderController.h"
|
||||
|
||||
#import <WatchCommonWatch/WatchCommonWatch.h>
|
||||
|
||||
#import "TGWatchCommon.h"
|
||||
#import "TGStringUtils.h"
|
||||
|
||||
#import "WKInterfaceGroup+Signals.h"
|
||||
#import "TGBridgeMediaSignals.h"
|
||||
|
||||
#import "TGBridgeChat.h"
|
||||
#import "TGBridgeUser.h"
|
||||
|
||||
#import "TGBridgeContext.h"
|
||||
|
||||
NSString *const TGGroupInfoHeaderIdentifier = @"TGGroupInfoHeader";
|
||||
|
||||
@interface TGGroupInfoHeaderController ()
|
||||
|
@ -1,6 +1,8 @@
|
||||
#import "TGInputController.h"
|
||||
|
||||
#import <WatchCommonWatch/WatchCommonWatch.h>
|
||||
|
||||
#import "TGWatchCommon.h"
|
||||
#import "TGBridgeCommon.h"
|
||||
#import "TGInterfaceController.h"
|
||||
|
||||
#import "TGFileCache.h"
|
||||
|
@ -1,10 +1,12 @@
|
||||
#import "TGLocationController.h"
|
||||
|
||||
#import <WatchCommonWatch/WatchCommonWatch.h>
|
||||
|
||||
#import "TGWatchCommon.h"
|
||||
|
||||
#import "TGBridgeLocationSignals.h"
|
||||
|
||||
#import "TGBridgeLocationVenue+TGTableItem.h"
|
||||
#import "TGBridgeLocationMediaAttachment.h"
|
||||
|
||||
#import "WKInterfaceTable+TGDataDrivenTable.h"
|
||||
#import "TGTableDeltaUpdater.h"
|
||||
|
@ -1,6 +1,6 @@
|
||||
#import "TGLocationVenueRowController.h"
|
||||
|
||||
#import "TGBridgeLocationVenue.h"
|
||||
#import <WatchCommonWatch/WatchCommonWatch.h>
|
||||
|
||||
NSString *const TGLocationVenueRowIdentifier = @"TGLocationVenueRow";
|
||||
|
||||
|
@ -1,14 +1,12 @@
|
||||
#import "TGMessageViewController.h"
|
||||
|
||||
#import <WatchCommonWatch/WatchCommonWatch.h>
|
||||
|
||||
#import "TGWatchCommon.h"
|
||||
#import "TGBridgeSendMessageSignals.h"
|
||||
#import "TGBridgeRemoteSignals.h"
|
||||
#import "TGBridgeAudioSignals.h"
|
||||
|
||||
#import "TGBridgePeerIdAdapter.h"
|
||||
|
||||
#import "TGBridgeChat.h"
|
||||
#import "TGBridgeUser.h"
|
||||
#import "TGBridgeMessage.h"
|
||||
#import "TGBridgeUserCache.h"
|
||||
|
||||
#import "WKInterfaceTable+TGDataDrivenTable.h"
|
||||
|
@ -1,9 +1,10 @@
|
||||
#import "TGMessageViewFooterController.h"
|
||||
|
||||
#import <WatchCommonWatch/WatchCommonWatch.h>
|
||||
|
||||
#import "TGWatchCommon.h"
|
||||
#import "TGDateUtils.h"
|
||||
|
||||
#import "TGBridgeMessage.h"
|
||||
|
||||
NSString *const TGMessageViewFooterIdentifier = @"TGMessageViewFooter";
|
||||
|
||||
@implementation TGMessageViewFooterController
|
||||
|
@ -1,4 +1,7 @@
|
||||
#import "TGMessageViewMessageRowController.h"
|
||||
|
||||
#import <WatchCommonWatch/WatchCommonWatch.h>
|
||||
|
||||
#import "TGWatchCommon.h"
|
||||
#import "TGExtensionDelegate.h"
|
||||
|
||||
@ -11,14 +14,8 @@
|
||||
|
||||
#import "TGBridgeMediaSignals.h"
|
||||
|
||||
#import "TGBridgeUser.h"
|
||||
#import "TGBridgeMessage.h"
|
||||
#import "TGBridgeUserCache.h"
|
||||
|
||||
#import "TGBridgeContext.h"
|
||||
|
||||
#import "TGBridgePeerIdAdapter.h"
|
||||
|
||||
NSString *const TGMessageViewMessageRowIdentifier = @"TGMessageViewMessageRow";
|
||||
|
||||
@interface TGMessageViewMessageRowController ()
|
||||
|
@ -1,4 +1,7 @@
|
||||
#import "TGMessageViewModel.h"
|
||||
|
||||
#import <WatchCommonWatch/WatchCommonWatch.h>
|
||||
|
||||
#import "TGWatchCommon.h"
|
||||
#import "TGStringUtils.h"
|
||||
#import "TGGeometry.h"
|
||||
@ -6,13 +9,8 @@
|
||||
#import "WKInterfaceImage+Signals.h"
|
||||
#import "WKInterfaceGroup+Signals.h"
|
||||
|
||||
#import "TGBridgeUser.h"
|
||||
#import "TGBridgeChat.h"
|
||||
#import "TGBridgeMessage.h"
|
||||
#import "TGBridgeUserCache.h"
|
||||
|
||||
#import "TGBridgeContext.h"
|
||||
|
||||
#import "TGBridgeMediaSignals.h"
|
||||
|
||||
@implementation TGMessageViewModel
|
||||
|
@ -1,12 +1,11 @@
|
||||
#import "TGMessageViewWebPageRowController.h"
|
||||
|
||||
#import <WatchCommonWatch/WatchCommonWatch.h>
|
||||
|
||||
#import "WKInterfaceGroup+Signals.h"
|
||||
#import "TGBridgeMediaSignals.h"
|
||||
#import "TGBridgeMessage.h"
|
||||
|
||||
#import "TGMessageViewModel.h"
|
||||
#import "TGBridgeImageMediaAttachment.h"
|
||||
#import "TGBridgeWebPageMediaAttachment.h"
|
||||
|
||||
NSString *const TGMessageViewWebPageRowIdentifier = @"TGMessageViewWebPageRow";
|
||||
|
||||
|
@ -1,13 +1,13 @@
|
||||
#import "TGNeoAttachmentViewModel.h"
|
||||
|
||||
#import <WatchCommonWatch/WatchCommonWatch.h>
|
||||
|
||||
#import "TGWatchCommon.h"
|
||||
#import "TGNeoImageViewModel.h"
|
||||
#import "TGNeoLabelViewModel.h"
|
||||
|
||||
#import "TGStringUtils.h"
|
||||
|
||||
#import "TGBridgeMessage.h"
|
||||
#import "TGBridgeUser.h"
|
||||
|
||||
@interface TGNeoAttachmentViewModel ()
|
||||
{
|
||||
TGNeoImageViewModel *_iconModel;
|
||||
|
@ -1,6 +1,8 @@
|
||||
#import "TGNeoAudioMessageViewModel.h"
|
||||
|
||||
#import <WatchCommonWatch/WatchCommonWatch.h>
|
||||
|
||||
#import "TGWatchCommon.h"
|
||||
#import "TGBridgeMessage.h"
|
||||
|
||||
@interface TGNeoAudioMessageViewModel ()
|
||||
{
|
||||
|
@ -1,15 +1,12 @@
|
||||
#import "TGNeoBubbleMessageViewModel.h"
|
||||
|
||||
#import <WatchCommonWatch/WatchCommonWatch.h>
|
||||
|
||||
#import "TGNeoBackgroundViewModel.h"
|
||||
|
||||
#import "TGExtensionDelegate.h"
|
||||
#import "TGWatchColor.h"
|
||||
|
||||
#import "TGBridgeContext.h"
|
||||
#import "TGBridgeMessage.h"
|
||||
#import "TGBridgeUser.h"
|
||||
|
||||
#import "TGBridgePeerIdAdapter.h"
|
||||
|
||||
const UIEdgeInsets TGNeoBubbleMessageViewModelInsets = { 4.5, 11, 9, 11 };
|
||||
const CGFloat TGNeoBubbleMessageMetaSpacing = 5.0f;
|
||||
const CGFloat TGNeoBubbleHeaderSpacing = 2.0f;
|
||||
|
@ -1,8 +1,8 @@
|
||||
#import "TGNeoChatRowController.h"
|
||||
|
||||
#import <WatchCommonWatch/WatchCommonWatch.h>
|
||||
|
||||
#import "TGWatchCommon.h"
|
||||
#import "TGBridgeContext.h"
|
||||
#import "TGBridgeChat.h"
|
||||
#import "TGBridgeUser.h"
|
||||
#import "TGBridgeUserCache.h"
|
||||
|
||||
#import "TGNeoChatViewModel.h"
|
||||
|
@ -1,13 +1,12 @@
|
||||
#import "TGNeoChatViewModel.h"
|
||||
|
||||
#import <WatchCommonWatch/WatchCommonWatch.h>
|
||||
|
||||
#import "TGWatchCommon.h"
|
||||
#import "TGNeoLabelViewModel.h"
|
||||
#import "TGNeoImageViewModel.h"
|
||||
#import "TGNeoAttachmentViewModel.h"
|
||||
|
||||
#import "TGBridgeContext.h"
|
||||
#import "TGBridgeChat.h"
|
||||
#import "TGBridgeUser.h"
|
||||
|
||||
#import "TGExtensionDelegate.h"
|
||||
#import "TGStringUtils.h"
|
||||
#import "TGDateUtils.h"
|
||||
|
@ -1,12 +1,12 @@
|
||||
#import "TGNeoChatsController.h"
|
||||
|
||||
#import <WatchCommonWatch/WatchCommonWatch.h>
|
||||
|
||||
#import "TGWatchCommon.h"
|
||||
#import "WKInterfaceTable+TGDataDrivenTable.h"
|
||||
#import "TGTableDeltaUpdater.h"
|
||||
#import "TGInterfaceMenu.h"
|
||||
|
||||
#import "TGBridgeContext.h"
|
||||
#import "TGBridgeUser.h"
|
||||
#import "TGBridgeChat.h"
|
||||
#import "TGBridgeUserCache.h"
|
||||
|
||||
#import "TGBridgeClient.h"
|
||||
|
@ -1,11 +1,10 @@
|
||||
#import "TGNeoContactMessageViewModel.h"
|
||||
|
||||
#import <WatchCommonWatch/WatchCommonWatch.h>
|
||||
|
||||
#import "TGWatchCommon.h"
|
||||
#import "TGNeoLabelViewModel.h"
|
||||
|
||||
#import "TGBridgeContext.h"
|
||||
#import "TGBridgeMessage.h"
|
||||
#import "TGBridgeUser.h"
|
||||
|
||||
#import "TGStringUtils.h"
|
||||
|
||||
@interface TGNeoContactMessageViewModel ()
|
||||
|
@ -1,4 +1,7 @@
|
||||
#import "TGNeoConversationController.h"
|
||||
|
||||
#import <WatchCommonWatch/WatchCommonWatch.h>
|
||||
|
||||
#import "TGWatchCommon.h"
|
||||
#import "TGNeoChatsController.h"
|
||||
|
||||
@ -10,12 +13,7 @@
|
||||
#import "TGInterfaceMenu.h"
|
||||
|
||||
#import "TGBridgeClient.h"
|
||||
#import "TGBridgeContext.h"
|
||||
#import "TGBridgeUser.h"
|
||||
#import "TGBridgeChat.h"
|
||||
#import "TGBridgeChatMessages.h"
|
||||
#import "TGBridgeMessage+TGTableItem.h"
|
||||
#import "TGBridgeBotInfo.h"
|
||||
#import "TGBridgeBotReplyMarkup.h"
|
||||
#import "TGBridgeUserCache.h"
|
||||
|
||||
|
@ -1,5 +1,7 @@
|
||||
#import "TGNeoConversationStaticRowController.h"
|
||||
#import "TGBridgeMessage.h"
|
||||
|
||||
#import <WatchCommonWatch/WatchCommonWatch.h>
|
||||
|
||||
#import "TGBridgeUserCache.h"
|
||||
|
||||
#import "TGChatInfo.h"
|
||||
|
@ -1,6 +1,8 @@
|
||||
#import "TGNeoFileMessageViewModel.h"
|
||||
|
||||
#import <WatchCommonWatch/WatchCommonWatch.h>
|
||||
|
||||
#import "TGNeoImageViewModel.h"
|
||||
#import "TGBridgeMessage.h"
|
||||
|
||||
#import "TGStringUtils.h"
|
||||
|
||||
|
@ -1,10 +1,10 @@
|
||||
#import "TGNeoForwardHeaderViewModel.h"
|
||||
|
||||
#import <WatchCommonWatch/WatchCommonWatch.h>
|
||||
|
||||
#import "TGWatchCommon.h"
|
||||
#import "TGNeoLabelViewModel.h"
|
||||
|
||||
#import "TGBridgeUser.h"
|
||||
#import "TGBridgeChat.h"
|
||||
|
||||
const CGFloat TGNeoForwardHeaderHeight = 29;
|
||||
|
||||
@interface TGNeoForwardHeaderViewModel ()
|
||||
|
@ -1,6 +1,8 @@
|
||||
#import "TGNeoMediaMessageViewModel.h"
|
||||
|
||||
#import <WatchCommonWatch/WatchCommonWatch.h>
|
||||
|
||||
#import "TGWatchCommon.h"
|
||||
#import "TGBridgeMessage.h"
|
||||
|
||||
#import "TGGeometry.h"
|
||||
|
||||
|
@ -1,4 +1,7 @@
|
||||
#import "TGNeoMessageViewModel.h"
|
||||
|
||||
#import <WatchCommonWatch/WatchCommonWatch.h>
|
||||
|
||||
#import "TGNeoTextMessageViewModel.h"
|
||||
#import "TGNeoSmiliesMessageViewModel.h"
|
||||
#import "TGNeoMediaMessageViewModel.h"
|
||||
@ -16,8 +19,6 @@
|
||||
|
||||
#import "TGStringUtils.h"
|
||||
|
||||
#import "TGBridgePeerIdAdapter.h"
|
||||
#import "TGBridgeMessage.h"
|
||||
#import "TGBridgeUserCache.h"
|
||||
|
||||
NSString *const TGNeoContentInset = @"contentInset";
|
||||
|
@ -1,14 +1,11 @@
|
||||
#import "TGNeoReplyHeaderViewModel.h"
|
||||
|
||||
#import <WatchCommonWatch/WatchCommonWatch.h>
|
||||
|
||||
#import "TGWatchCommon.h"
|
||||
#import "TGNeoLabelViewModel.h"
|
||||
#import "TGNeoAttachmentViewModel.h"
|
||||
|
||||
#import "TGBridgeMessage.h"
|
||||
#import "TGBridgeChat.h"
|
||||
#import "TGBridgeUser.h"
|
||||
#import "TGBridgeReplyMessageMediaAttachment.h"
|
||||
#import "TGBridgeVideoMediaAttachment.h"
|
||||
|
||||
const CGFloat TGNeoReplyHeaderHeight = 29.0f;
|
||||
const CGFloat TGNeoReplyHeaderLineWidth = 2.0f;
|
||||
const CGFloat TGNeoReplyHeaderSpacing = 4.0f;
|
||||
|
@ -1,4 +1,7 @@
|
||||
#import "TGNeoRowController.h"
|
||||
|
||||
#import <WatchCommonWatch/WatchCommonWatch.h>
|
||||
|
||||
#import "TGWatchCommon.h"
|
||||
#import "TGNeoConversationRowController.h"
|
||||
#import "TGNeoConversationSimpleRowController.h"
|
||||
@ -12,8 +15,6 @@
|
||||
#import "TGNeoBubbleMessageViewModel.h"
|
||||
#import "TGNeoStickerMessageViewModel.h"
|
||||
|
||||
#import "TGBridgeMessage.h"
|
||||
|
||||
#import "WKInterfaceGroup+Signals.h"
|
||||
#import "TGBridgeMediaSignals.h"
|
||||
|
||||
|
@ -1,13 +1,11 @@
|
||||
#import "TGNeoServiceMessageViewModel.h"
|
||||
|
||||
#import <WatchCommonWatch/WatchCommonWatch.h>
|
||||
|
||||
#import "TGWatchCommon.h"
|
||||
#import "TGNeoLabelViewModel.h"
|
||||
|
||||
#import "TGBridgeMessage.h"
|
||||
#import "TGBridgeUser.h"
|
||||
#import "TGChatInfo.h"
|
||||
|
||||
#import "TGBridgePeerIdAdapter.h"
|
||||
|
||||
const UIEdgeInsets TGNeoServiceMessageInsets = { 2, 0, 6, 0 };
|
||||
const UIEdgeInsets TGNeoChatInfoInsets = { 12, 0, 12, 0 };
|
||||
|
||||
|
@ -1,14 +1,12 @@
|
||||
#import "TGNeoSmiliesMessageViewModel.h"
|
||||
|
||||
#import <WatchCommonWatch/WatchCommonWatch.h>
|
||||
|
||||
#import "TGNeoBubbleMessageViewModel.h"
|
||||
#import "TGNeoLabelViewModel.h"
|
||||
|
||||
#import "TGBridgeContext.h"
|
||||
#import "TGBridgeMessage.h"
|
||||
|
||||
#import "TGWatchColor.h"
|
||||
|
||||
#import "TGBridgePeerIdAdapter.h"
|
||||
|
||||
const CGFloat TGNeoSmiliesMessageHeight = 39;
|
||||
|
||||
@interface TGNeoSmiliesMessageViewModel ()
|
||||
|
@ -1,4 +1,7 @@
|
||||
#import "TGNeoStickerMessageViewModel.h"
|
||||
|
||||
#import <WatchCommonWatch/WatchCommonWatch.h>
|
||||
|
||||
#import "TGWatchCommon.h"
|
||||
#import "TGNeoLabelViewModel.h"
|
||||
|
||||
@ -6,11 +9,7 @@
|
||||
|
||||
#import "TGGeometry.h"
|
||||
|
||||
#import "TGBridgeContext.h"
|
||||
#import "TGBridgeMessage.h"
|
||||
|
||||
#import "../Extension/TGStringUtils.h"
|
||||
#import "TGBridgePeerIdAdapter.h"
|
||||
|
||||
@interface TGNeoStickerMessageViewModel ()
|
||||
{
|
||||
|
@ -1,9 +1,10 @@
|
||||
#import "TGNeoTextMessageViewModel.h"
|
||||
|
||||
#import <WatchCommonWatch/WatchCommonWatch.h>
|
||||
|
||||
#import "TGNeoLabelViewModel.h"
|
||||
#import "TGMessageViewModel.h"
|
||||
|
||||
#import "TGBridgeMessage.h"
|
||||
|
||||
@interface TGNeoTextMessageViewModel ()
|
||||
{
|
||||
TGNeoLabelViewModel *_textModel;
|
||||
|
@ -1,6 +1,6 @@
|
||||
#import "TGNeoUnsupportedMessageViewModel.h"
|
||||
#import "TGWatchCommon.h"
|
||||
#import "TGBridgeMessage.h"
|
||||
#import <WatchCommonWatch/WatchCommonWatch.h>
|
||||
|
||||
@interface TGNeoUnsupportedMessageViewModel ()
|
||||
{
|
||||
|
@ -1,6 +1,8 @@
|
||||
#import "TGNeoVenueMessageViewModel.h"
|
||||
|
||||
#import <WatchCommonWatch/WatchCommonWatch.h>
|
||||
|
||||
#import "TGNeoImageViewModel.h"
|
||||
#import "TGBridgeMessage.h"
|
||||
|
||||
@interface TGNeoVenueMessageViewModel ()
|
||||
{
|
||||
|
@ -1,4 +1,7 @@
|
||||
#import "TGNotificationController.h"
|
||||
|
||||
#import <WatchCommonWatch/WatchCommonWatch.h>
|
||||
|
||||
#import "TGWatchCommon.h"
|
||||
#import "TGStringUtils.h"
|
||||
#import "TGLocationUtils.h"
|
||||
@ -10,15 +13,8 @@
|
||||
|
||||
#import "TGBridgeMediaSignals.h"
|
||||
#import "TGBridgeClient.h"
|
||||
#import "TGBridgeSubscriptions.h"
|
||||
#import "TGBridgeChatMessages.h"
|
||||
#import "TGBridgeMessage.h"
|
||||
#import "TGBridgeChat.h"
|
||||
#import "TGBridgeUser.h"
|
||||
#import "TGBridgeUserCache.h"
|
||||
|
||||
#import "TGBridgePeerIdAdapter.h"
|
||||
|
||||
#import <WatchConnectivity/WatchConnectivity.h>
|
||||
#import <UserNotifications/UserNotifications.h>
|
||||
|
||||
|
@ -1,8 +1,9 @@
|
||||
#import "TGStickersRowController.h"
|
||||
|
||||
#import <WatchCommonWatch/WatchCommonWatch.h>
|
||||
|
||||
#import "WKInterfaceGroup+Signals.h"
|
||||
#import "TGBridgeMediaSignals.h"
|
||||
#import "TGBridgeDocumentMediaAttachment.h"
|
||||
|
||||
NSString *const TGStickersRowIdentifier = @"TGStickersRow";
|
||||
|
||||
|
@ -2,17 +2,13 @@
|
||||
#import "TGWatchCommon.h"
|
||||
#import "TGStringUtils.h"
|
||||
|
||||
#import "TGBridgeContext.h"
|
||||
#import <WatchCommonWatch/WatchCommonWatch.h>
|
||||
#import "TGBridgeBotSignals.h"
|
||||
#import "TGBridgeUserInfoSignals.h"
|
||||
#import "TGBridgePeerSettingsSignals.h"
|
||||
#import "TGBridgeUser.h"
|
||||
#import "TGBridgeBotInfo.h"
|
||||
#import "TGBridgeUserCache.h"
|
||||
#import "TGUserHandle.h"
|
||||
|
||||
#import "TGBridgeChat.h"
|
||||
|
||||
#import "TGTableDeltaUpdater.h"
|
||||
|
||||
#import "WKInterfaceTable+TGDataDrivenTable.h"
|
||||
|
@ -1,4 +1,7 @@
|
||||
#import "TGUserInfoHeaderController.h"
|
||||
|
||||
#import <WatchCommonWatch/WatchCommonWatch.h>
|
||||
|
||||
#import "TGWatchCommon.h"
|
||||
#import "TGDateUtils.h"
|
||||
#import "TGStringUtils.h"
|
||||
@ -7,11 +10,6 @@
|
||||
|
||||
#import "TGBridgeMediaSignals.h"
|
||||
|
||||
#import "TGBridgeUser.h"
|
||||
#import "TGBridgeChat.h"
|
||||
|
||||
#import "TGBridgeContext.h"
|
||||
|
||||
NSString *const TGUserInfoHeaderIdentifier = @"TGUserInfoHeader";
|
||||
|
||||
@interface TGUserInfoHeaderController ()
|
||||
|
@ -1,4 +1,7 @@
|
||||
#import "TGUserRowController.h"
|
||||
|
||||
#import <WatchCommonWatch/WatchCommonWatch.h>
|
||||
|
||||
#import "TGWatchCommon.h"
|
||||
#import "TGDateUtils.h"
|
||||
#import "TGStringUtils.h"
|
||||
@ -7,11 +10,6 @@
|
||||
|
||||
#import "TGBridgeMediaSignals.h"
|
||||
|
||||
#import "TGBridgeUser.h"
|
||||
#import "TGBridgeChat.h"
|
||||
#import "TGBridgeBotCommandInfo.h"
|
||||
#import "TGBridgeContext.h"
|
||||
|
||||
NSString *const TGUserRowIdentifier = @"TGUserRow";
|
||||
|
||||
@interface TGUserRowController ()
|
||||
|
@ -1,5 +1,5 @@
|
||||
#import "TGWatchColor.h"
|
||||
#import "TGBridgePeerIdAdapter.h"
|
||||
#import <WatchCommonWatch/WatchCommonWatch.h>
|
||||
#import <CommonCrypto/CommonDigest.h>
|
||||
|
||||
@implementation UIColor (TGColor)
|
||||
|
@ -3,6 +3,7 @@ import TelegramCore
|
||||
import SwiftSignalKit
|
||||
import Postbox
|
||||
import NotificationCenter
|
||||
import BuildConfig
|
||||
|
||||
private var installedSharedLogger = false
|
||||
|
||||
|
@ -1,6 +1,4 @@
|
||||
#ifndef Widget_Bridging_Header_h
|
||||
#define Widget_Bridging_Header_h
|
||||
|
||||
#import "../Telegram-iOS/BuildConfig.h"
|
||||
|
||||
#endif
|
||||
|
@ -0,0 +1,354 @@
|
||||
// !$*UTF8*$!
|
||||
{
|
||||
archiveVersion = 1;
|
||||
classes = {
|
||||
};
|
||||
objectVersion = 50;
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
D008179222B4786B008A895F /* BuildConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = D008179022B4786B008A895F /* BuildConfig.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
D008179A22B4792C008A895F /* BuildConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = D008179922B4792C008A895F /* BuildConfig.m */; };
|
||||
D00818B222B59067008A895F /* Config-Fork.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = D00818AF22B59067008A895F /* Config-Fork.xcconfig */; };
|
||||
D00818B322B59067008A895F /* Config-Hockeyapp-Internal.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = D00818B022B59067008A895F /* Config-Hockeyapp-Internal.xcconfig */; };
|
||||
D00818B422B59067008A895F /* Config-AppStoreLLC.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = D00818B122B59067008A895F /* Config-AppStoreLLC.xcconfig */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
D008178D22B4786B008A895F /* BuildConfig.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = BuildConfig.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D008179022B4786B008A895F /* BuildConfig.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BuildConfig.h; sourceTree = "<group>"; };
|
||||
D008179122B4786B008A895F /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||
D008179922B4792C008A895F /* BuildConfig.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BuildConfig.m; sourceTree = "<group>"; };
|
||||
D00818AF22B59067008A895F /* Config-Fork.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "Config-Fork.xcconfig"; sourceTree = "<group>"; };
|
||||
D00818B022B59067008A895F /* Config-Hockeyapp-Internal.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "Config-Hockeyapp-Internal.xcconfig"; sourceTree = "<group>"; };
|
||||
D00818B122B59067008A895F /* Config-AppStoreLLC.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "Config-AppStoreLLC.xcconfig"; sourceTree = "<group>"; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
D008178A22B4786B008A895F /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXFrameworksBuildPhase section */
|
||||
|
||||
/* Begin PBXGroup section */
|
||||
D008178322B4786B008A895F = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
D00818B122B59067008A895F /* Config-AppStoreLLC.xcconfig */,
|
||||
D00818AF22B59067008A895F /* Config-Fork.xcconfig */,
|
||||
D00818B022B59067008A895F /* Config-Hockeyapp-Internal.xcconfig */,
|
||||
D008179122B4786B008A895F /* Info.plist */,
|
||||
D008178F22B4786B008A895F /* Sources */,
|
||||
D008178E22B4786B008A895F /* Products */,
|
||||
);
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
D008178E22B4786B008A895F /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
D008178D22B4786B008A895F /* BuildConfig.framework */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
D008178F22B4786B008A895F /* Sources */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
D008179022B4786B008A895F /* BuildConfig.h */,
|
||||
D008179922B4792C008A895F /* BuildConfig.m */,
|
||||
);
|
||||
path = Sources;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXGroup section */
|
||||
|
||||
/* Begin PBXHeadersBuildPhase section */
|
||||
D008178822B4786B008A895F /* Headers */ = {
|
||||
isa = PBXHeadersBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
D008179222B4786B008A895F /* BuildConfig.h in Headers */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXHeadersBuildPhase section */
|
||||
|
||||
/* Begin PBXNativeTarget section */
|
||||
D008178C22B4786B008A895F /* BuildConfig */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = D008179522B4786B008A895F /* Build configuration list for PBXNativeTarget "BuildConfig" */;
|
||||
buildPhases = (
|
||||
D008178822B4786B008A895F /* Headers */,
|
||||
D008178922B4786B008A895F /* Sources */,
|
||||
D008178A22B4786B008A895F /* Frameworks */,
|
||||
D008178B22B4786B008A895F /* Resources */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
);
|
||||
name = BuildConfig;
|
||||
productName = BuildConfig;
|
||||
productReference = D008178D22B4786B008A895F /* BuildConfig.framework */;
|
||||
productType = "com.apple.product-type.framework";
|
||||
};
|
||||
/* End PBXNativeTarget section */
|
||||
|
||||
/* Begin PBXProject section */
|
||||
D008178422B4786B008A895F /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
DefaultBuildSystemTypeForWorkspace = Latest;
|
||||
LastUpgradeCheck = 1010;
|
||||
ORGANIZATIONNAME = "Telegram LLP";
|
||||
TargetAttributes = {
|
||||
D008178C22B4786B008A895F = {
|
||||
CreatedOnToolsVersion = 10.1;
|
||||
};
|
||||
};
|
||||
};
|
||||
buildConfigurationList = D008178722B4786B008A895F /* Build configuration list for PBXProject "BuildConfig_Xcode" */;
|
||||
compatibilityVersion = "Xcode 9.3";
|
||||
developmentRegion = en;
|
||||
hasScannedForEncodings = 0;
|
||||
knownRegions = (
|
||||
en,
|
||||
);
|
||||
mainGroup = D008178322B4786B008A895F;
|
||||
productRefGroup = D008178E22B4786B008A895F /* Products */;
|
||||
projectDirPath = "";
|
||||
projectRoot = "";
|
||||
targets = (
|
||||
D008178C22B4786B008A895F /* BuildConfig */,
|
||||
);
|
||||
};
|
||||
/* End PBXProject section */
|
||||
|
||||
/* Begin PBXResourcesBuildPhase section */
|
||||
D008178B22B4786B008A895F /* Resources */ = {
|
||||
isa = PBXResourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
D00818B422B59067008A895F /* Config-AppStoreLLC.xcconfig in Resources */,
|
||||
D00818B322B59067008A895F /* Config-Hockeyapp-Internal.xcconfig in Resources */,
|
||||
D00818B222B59067008A895F /* Config-Fork.xcconfig in Resources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXResourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXSourcesBuildPhase section */
|
||||
D008178922B4786B008A895F /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
D008179A22B4792C008A895F /* BuildConfig.m in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXSourcesBuildPhase section */
|
||||
|
||||
/* Begin XCBuildConfiguration section */
|
||||
D008179322B4786B008A895F /* DebugAppStoreLLC */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = D00818B122B59067008A895F /* Config-AppStoreLLC.xcconfig */;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_ANALYZER_NONNULL = YES;
|
||||
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
CLANG_ENABLE_OBJC_WEAK = YES;
|
||||
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
|
||||
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||
CLANG_WARN_COMMA = YES;
|
||||
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
|
||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
||||
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
|
||||
CLANG_WARN_EMPTY_BODY = YES;
|
||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||
CLANG_WARN_INFINITE_RECURSION = YES;
|
||||
CLANG_WARN_INT_CONVERSION = YES;
|
||||
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
|
||||
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
|
||||
CLANG_WARN_STRICT_PROTOTYPES = YES;
|
||||
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
||||
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
|
||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
COPY_PHASE_STRIP = NO;
|
||||
CURRENT_PROJECT_VERSION = 1;
|
||||
DEBUG_INFORMATION_FORMAT = dwarf;
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||
ENABLE_TESTABILITY = YES;
|
||||
GCC_C_LANGUAGE_STANDARD = gnu11;
|
||||
GCC_DYNAMIC_NO_PIC = NO;
|
||||
GCC_NO_COMMON_BLOCKS = YES;
|
||||
GCC_OPTIMIZATION_LEVEL = 0;
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
"DEBUG=1",
|
||||
"$(inherited)",
|
||||
);
|
||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
||||
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
||||
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
|
||||
MTL_FAST_MATH = YES;
|
||||
ONLY_ACTIVE_ARCH = YES;
|
||||
SDKROOT = iphoneos;
|
||||
VERSIONING_SYSTEM = "apple-generic";
|
||||
VERSION_INFO_PREFIX = "";
|
||||
};
|
||||
name = DebugAppStoreLLC;
|
||||
};
|
||||
D008179422B4786B008A895F /* ReleaseAppStoreLLC */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = D00818B122B59067008A895F /* Config-AppStoreLLC.xcconfig */;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_ANALYZER_NONNULL = YES;
|
||||
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
CLANG_ENABLE_OBJC_WEAK = YES;
|
||||
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
|
||||
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||
CLANG_WARN_COMMA = YES;
|
||||
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
|
||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
||||
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
|
||||
CLANG_WARN_EMPTY_BODY = YES;
|
||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||
CLANG_WARN_INFINITE_RECURSION = YES;
|
||||
CLANG_WARN_INT_CONVERSION = YES;
|
||||
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
|
||||
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
|
||||
CLANG_WARN_STRICT_PROTOTYPES = YES;
|
||||
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
||||
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
|
||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
COPY_PHASE_STRIP = NO;
|
||||
CURRENT_PROJECT_VERSION = 1;
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
ENABLE_NS_ASSERTIONS = NO;
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||
GCC_C_LANGUAGE_STANDARD = gnu11;
|
||||
GCC_NO_COMMON_BLOCKS = YES;
|
||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
||||
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
MTL_FAST_MATH = YES;
|
||||
SDKROOT = iphoneos;
|
||||
VALIDATE_PRODUCT = YES;
|
||||
VERSIONING_SYSTEM = "apple-generic";
|
||||
VERSION_INFO_PREFIX = "";
|
||||
};
|
||||
name = ReleaseAppStoreLLC;
|
||||
};
|
||||
D008179622B4786B008A895F /* DebugAppStoreLLC */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = D00818B122B59067008A895F /* Config-AppStoreLLC.xcconfig */;
|
||||
buildSettings = {
|
||||
CODE_SIGN_IDENTITY = "";
|
||||
CODE_SIGN_STYLE = Manual;
|
||||
DEFINES_MODULE = YES;
|
||||
DEVELOPMENT_TEAM = "";
|
||||
DYLIB_COMPATIBILITY_VERSION = 1;
|
||||
DYLIB_CURRENT_VERSION = 1;
|
||||
DYLIB_INSTALL_NAME_BASE = "@rpath";
|
||||
INFOPLIST_FILE = Info.plist;
|
||||
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
|
||||
LD_RUNPATH_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
"@loader_path/Frameworks",
|
||||
);
|
||||
MACH_O_TYPE = staticlib;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = org.telegram.BuildConfig;
|
||||
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
|
||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||
SKIP_INSTALL = YES;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
};
|
||||
name = DebugAppStoreLLC;
|
||||
};
|
||||
D008179722B4786B008A895F /* ReleaseAppStoreLLC */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = D00818B122B59067008A895F /* Config-AppStoreLLC.xcconfig */;
|
||||
buildSettings = {
|
||||
CODE_SIGN_IDENTITY = "";
|
||||
CODE_SIGN_STYLE = Manual;
|
||||
DEFINES_MODULE = YES;
|
||||
DEVELOPMENT_TEAM = "";
|
||||
DYLIB_COMPATIBILITY_VERSION = 1;
|
||||
DYLIB_CURRENT_VERSION = 1;
|
||||
DYLIB_INSTALL_NAME_BASE = "@rpath";
|
||||
INFOPLIST_FILE = Info.plist;
|
||||
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
|
||||
LD_RUNPATH_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
"@loader_path/Frameworks",
|
||||
);
|
||||
MACH_O_TYPE = staticlib;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = org.telegram.BuildConfig;
|
||||
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
|
||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||
SKIP_INSTALL = YES;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
};
|
||||
name = ReleaseAppStoreLLC;
|
||||
};
|
||||
/* End XCBuildConfiguration section */
|
||||
|
||||
/* Begin XCConfigurationList section */
|
||||
D008178722B4786B008A895F /* Build configuration list for PBXProject "BuildConfig_Xcode" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
D008179322B4786B008A895F /* DebugAppStoreLLC */,
|
||||
D008179422B4786B008A895F /* ReleaseAppStoreLLC */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = ReleaseAppStoreLLC;
|
||||
};
|
||||
D008179522B4786B008A895F /* Build configuration list for PBXNativeTarget "BuildConfig" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
D008179622B4786B008A895F /* DebugAppStoreLLC */,
|
||||
D008179722B4786B008A895F /* ReleaseAppStoreLLC */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = ReleaseAppStoreLLC;
|
||||
};
|
||||
/* End XCConfigurationList section */
|
||||
};
|
||||
rootObject = D008178422B4786B008A895F /* Project object */;
|
||||
}
|
1
submodules/BuildConfig/Config-AppStoreLLC.xcconfig
Normal file
1
submodules/BuildConfig/Config-AppStoreLLC.xcconfig
Normal file
@ -0,0 +1 @@
|
||||
#include "../../Telegram-iOS/Config-AppStoreLLC.xcconfig"
|
1
submodules/BuildConfig/Config-Fork.xcconfig
Normal file
1
submodules/BuildConfig/Config-Fork.xcconfig
Normal file
@ -0,0 +1 @@
|
||||
#include "../../Telegram-iOS/Config-Fork.xcconfig"
|
@ -0,0 +1 @@
|
||||
#include "../../Telegram-iOS/Config-Hockeyapp-Internal.xcconfig"
|
22
submodules/BuildConfig/Info.plist
Normal file
22
submodules/BuildConfig/Info.plist
Normal file
@ -0,0 +1,22 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>$(DEVELOPMENT_LANGUAGE)</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>$(EXECUTABLE_NAME)</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>$(PRODUCT_NAME)</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>FMWK</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.0</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>$(CURRENT_PROJECT_VERSION)</string>
|
||||
</dict>
|
||||
</plist>
|
@ -0,0 +1,376 @@
|
||||
// !$*UTF8*$!
|
||||
{
|
||||
archiveVersion = 1;
|
||||
classes = {
|
||||
};
|
||||
objectVersion = 50;
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
D0AE31FE22B281300058D3BC /* DeviceAccess.h in Headers */ = {isa = PBXBuildFile; fileRef = D0AE31FC22B281300058D3BC /* DeviceAccess.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
D0AE320522B2818D0058D3BC /* DeviceAccess.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AE320422B2818D0058D3BC /* DeviceAccess.swift */; };
|
||||
D0AE320A22B281CA0058D3BC /* Display.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0AE320922B281CA0058D3BC /* Display.framework */; };
|
||||
D0AE320C22B281CE0058D3BC /* TelegramCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0AE320B22B281CE0058D3BC /* TelegramCore.framework */; };
|
||||
D0AE320E22B281D30058D3BC /* SwiftSignalKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0AE320D22B281D30058D3BC /* SwiftSignalKit.framework */; };
|
||||
D0AE321022B281E50058D3BC /* LegacyComponents.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0AE320F22B281E50058D3BC /* LegacyComponents.framework */; };
|
||||
D0AE321222B2821B0058D3BC /* TelegramPresentationData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0AE321122B2821B0058D3BC /* TelegramPresentationData.framework */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
D0AE31F922B281300058D3BC /* DeviceAccess.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DeviceAccess.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0AE31FC22B281300058D3BC /* DeviceAccess.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DeviceAccess.h; sourceTree = "<group>"; };
|
||||
D0AE31FD22B281300058D3BC /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||
D0AE320422B2818D0058D3BC /* DeviceAccess.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DeviceAccess.swift; sourceTree = "<group>"; };
|
||||
D0AE320922B281CA0058D3BC /* Display.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Display.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0AE320B22B281CE0058D3BC /* TelegramCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramCore.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0AE320D22B281D30058D3BC /* SwiftSignalKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = SwiftSignalKit.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0AE320F22B281E50058D3BC /* LegacyComponents.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = LegacyComponents.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0AE321122B2821B0058D3BC /* TelegramPresentationData.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramPresentationData.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
D0AE31F622B281300058D3BC /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
D0AE321222B2821B0058D3BC /* TelegramPresentationData.framework in Frameworks */,
|
||||
D0AE321022B281E50058D3BC /* LegacyComponents.framework in Frameworks */,
|
||||
D0AE320E22B281D30058D3BC /* SwiftSignalKit.framework in Frameworks */,
|
||||
D0AE320C22B281CE0058D3BC /* TelegramCore.framework in Frameworks */,
|
||||
D0AE320A22B281CA0058D3BC /* Display.framework in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXFrameworksBuildPhase section */
|
||||
|
||||
/* Begin PBXGroup section */
|
||||
D0AE31EF22B281300058D3BC = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
D0AE31FD22B281300058D3BC /* Info.plist */,
|
||||
D0AE31FB22B281300058D3BC /* Sources */,
|
||||
D0AE31FA22B281300058D3BC /* Products */,
|
||||
D0AE320822B281CA0058D3BC /* Frameworks */,
|
||||
);
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
D0AE31FA22B281300058D3BC /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
D0AE31F922B281300058D3BC /* DeviceAccess.framework */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
D0AE31FB22B281300058D3BC /* Sources */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
D0AE320422B2818D0058D3BC /* DeviceAccess.swift */,
|
||||
D0AE31FC22B281300058D3BC /* DeviceAccess.h */,
|
||||
);
|
||||
path = Sources;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
D0AE320822B281CA0058D3BC /* Frameworks */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
D0AE321122B2821B0058D3BC /* TelegramPresentationData.framework */,
|
||||
D0AE320F22B281E50058D3BC /* LegacyComponents.framework */,
|
||||
D0AE320D22B281D30058D3BC /* SwiftSignalKit.framework */,
|
||||
D0AE320B22B281CE0058D3BC /* TelegramCore.framework */,
|
||||
D0AE320922B281CA0058D3BC /* Display.framework */,
|
||||
);
|
||||
name = Frameworks;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXGroup section */
|
||||
|
||||
/* Begin PBXHeadersBuildPhase section */
|
||||
D0AE31F422B281300058D3BC /* Headers */ = {
|
||||
isa = PBXHeadersBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
D0AE31FE22B281300058D3BC /* DeviceAccess.h in Headers */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXHeadersBuildPhase section */
|
||||
|
||||
/* Begin PBXNativeTarget section */
|
||||
D0AE31F822B281300058D3BC /* DeviceAccess */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = D0AE320122B281300058D3BC /* Build configuration list for PBXNativeTarget "DeviceAccess" */;
|
||||
buildPhases = (
|
||||
D0AE31F422B281300058D3BC /* Headers */,
|
||||
D0AE31F522B281300058D3BC /* Sources */,
|
||||
D0AE31F622B281300058D3BC /* Frameworks */,
|
||||
D0AE31F722B281300058D3BC /* Resources */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
);
|
||||
name = DeviceAccess;
|
||||
productName = DeviceAccess;
|
||||
productReference = D0AE31F922B281300058D3BC /* DeviceAccess.framework */;
|
||||
productType = "com.apple.product-type.framework";
|
||||
};
|
||||
/* End PBXNativeTarget section */
|
||||
|
||||
/* Begin PBXProject section */
|
||||
D0AE31F022B281300058D3BC /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
DefaultBuildSystemTypeForWorkspace = Latest;
|
||||
LastUpgradeCheck = 1010;
|
||||
ORGANIZATIONNAME = "Telegram LLP";
|
||||
TargetAttributes = {
|
||||
D0AE31F822B281300058D3BC = {
|
||||
CreatedOnToolsVersion = 10.1;
|
||||
LastSwiftMigration = 1010;
|
||||
};
|
||||
};
|
||||
};
|
||||
buildConfigurationList = D0AE31F322B281300058D3BC /* Build configuration list for PBXProject "DeviceAccess_Xcode" */;
|
||||
compatibilityVersion = "Xcode 9.3";
|
||||
developmentRegion = en;
|
||||
hasScannedForEncodings = 0;
|
||||
knownRegions = (
|
||||
en,
|
||||
);
|
||||
mainGroup = D0AE31EF22B281300058D3BC;
|
||||
productRefGroup = D0AE31FA22B281300058D3BC /* Products */;
|
||||
projectDirPath = "";
|
||||
projectRoot = "";
|
||||
targets = (
|
||||
D0AE31F822B281300058D3BC /* DeviceAccess */,
|
||||
);
|
||||
};
|
||||
/* End PBXProject section */
|
||||
|
||||
/* Begin PBXResourcesBuildPhase section */
|
||||
D0AE31F722B281300058D3BC /* Resources */ = {
|
||||
isa = PBXResourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXResourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXSourcesBuildPhase section */
|
||||
D0AE31F522B281300058D3BC /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
D0AE320522B2818D0058D3BC /* DeviceAccess.swift in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXSourcesBuildPhase section */
|
||||
|
||||
/* Begin XCBuildConfiguration section */
|
||||
D0AE31FF22B281300058D3BC /* DebugAppStoreLLC */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_ANALYZER_NONNULL = YES;
|
||||
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
CLANG_ENABLE_OBJC_WEAK = YES;
|
||||
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
|
||||
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||
CLANG_WARN_COMMA = YES;
|
||||
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
|
||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
||||
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
|
||||
CLANG_WARN_EMPTY_BODY = YES;
|
||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||
CLANG_WARN_INFINITE_RECURSION = YES;
|
||||
CLANG_WARN_INT_CONVERSION = YES;
|
||||
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
|
||||
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
|
||||
CLANG_WARN_STRICT_PROTOTYPES = YES;
|
||||
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
||||
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
|
||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
COPY_PHASE_STRIP = NO;
|
||||
CURRENT_PROJECT_VERSION = 1;
|
||||
DEBUG_INFORMATION_FORMAT = dwarf;
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||
ENABLE_TESTABILITY = YES;
|
||||
GCC_C_LANGUAGE_STANDARD = gnu11;
|
||||
GCC_DYNAMIC_NO_PIC = NO;
|
||||
GCC_NO_COMMON_BLOCKS = YES;
|
||||
GCC_OPTIMIZATION_LEVEL = 0;
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
"DEBUG=1",
|
||||
"$(inherited)",
|
||||
);
|
||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
||||
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
||||
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
|
||||
MTL_FAST_MATH = YES;
|
||||
ONLY_ACTIVE_ARCH = YES;
|
||||
SDKROOT = iphoneos;
|
||||
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
||||
VERSIONING_SYSTEM = "apple-generic";
|
||||
VERSION_INFO_PREFIX = "";
|
||||
};
|
||||
name = DebugAppStoreLLC;
|
||||
};
|
||||
D0AE320022B281300058D3BC /* ReleaseAppStoreLLC */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_ANALYZER_NONNULL = YES;
|
||||
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
CLANG_ENABLE_OBJC_WEAK = YES;
|
||||
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
|
||||
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||
CLANG_WARN_COMMA = YES;
|
||||
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
|
||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
||||
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
|
||||
CLANG_WARN_EMPTY_BODY = YES;
|
||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||
CLANG_WARN_INFINITE_RECURSION = YES;
|
||||
CLANG_WARN_INT_CONVERSION = YES;
|
||||
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
|
||||
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
|
||||
CLANG_WARN_STRICT_PROTOTYPES = YES;
|
||||
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
||||
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
|
||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
COPY_PHASE_STRIP = NO;
|
||||
CURRENT_PROJECT_VERSION = 1;
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
ENABLE_NS_ASSERTIONS = NO;
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||
GCC_C_LANGUAGE_STANDARD = gnu11;
|
||||
GCC_NO_COMMON_BLOCKS = YES;
|
||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
||||
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
MTL_FAST_MATH = YES;
|
||||
SDKROOT = iphoneos;
|
||||
SWIFT_COMPILATION_MODE = wholemodule;
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-O";
|
||||
VALIDATE_PRODUCT = YES;
|
||||
VERSIONING_SYSTEM = "apple-generic";
|
||||
VERSION_INFO_PREFIX = "";
|
||||
};
|
||||
name = ReleaseAppStoreLLC;
|
||||
};
|
||||
D0AE320222B281300058D3BC /* DebugAppStoreLLC */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CODE_SIGN_IDENTITY = "";
|
||||
CODE_SIGN_STYLE = Manual;
|
||||
DEFINES_MODULE = YES;
|
||||
DEVELOPMENT_TEAM = "";
|
||||
DYLIB_COMPATIBILITY_VERSION = 1;
|
||||
DYLIB_CURRENT_VERSION = 1;
|
||||
DYLIB_INSTALL_NAME_BASE = "@rpath";
|
||||
INFOPLIST_FILE = Info.plist;
|
||||
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
|
||||
LD_RUNPATH_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
"@loader_path/Frameworks",
|
||||
);
|
||||
MACH_O_TYPE = staticlib;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = org.telegram.DeviceAccess;
|
||||
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
|
||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||
SKIP_INSTALL = YES;
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
||||
SWIFT_VERSION = 4.2;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
};
|
||||
name = DebugAppStoreLLC;
|
||||
};
|
||||
D0AE320322B281300058D3BC /* ReleaseAppStoreLLC */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CODE_SIGN_IDENTITY = "";
|
||||
CODE_SIGN_STYLE = Manual;
|
||||
DEFINES_MODULE = YES;
|
||||
DEVELOPMENT_TEAM = "";
|
||||
DYLIB_COMPATIBILITY_VERSION = 1;
|
||||
DYLIB_CURRENT_VERSION = 1;
|
||||
DYLIB_INSTALL_NAME_BASE = "@rpath";
|
||||
INFOPLIST_FILE = Info.plist;
|
||||
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
|
||||
LD_RUNPATH_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
"@loader_path/Frameworks",
|
||||
);
|
||||
MACH_O_TYPE = staticlib;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = org.telegram.DeviceAccess;
|
||||
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
|
||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||
SKIP_INSTALL = YES;
|
||||
SWIFT_VERSION = 4.2;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
};
|
||||
name = ReleaseAppStoreLLC;
|
||||
};
|
||||
/* End XCBuildConfiguration section */
|
||||
|
||||
/* Begin XCConfigurationList section */
|
||||
D0AE31F322B281300058D3BC /* Build configuration list for PBXProject "DeviceAccess_Xcode" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
D0AE31FF22B281300058D3BC /* DebugAppStoreLLC */,
|
||||
D0AE320022B281300058D3BC /* ReleaseAppStoreLLC */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = ReleaseAppStoreLLC;
|
||||
};
|
||||
D0AE320122B281300058D3BC /* Build configuration list for PBXNativeTarget "DeviceAccess" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
D0AE320222B281300058D3BC /* DebugAppStoreLLC */,
|
||||
D0AE320322B281300058D3BC /* ReleaseAppStoreLLC */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = ReleaseAppStoreLLC;
|
||||
};
|
||||
/* End XCConfigurationList section */
|
||||
};
|
||||
rootObject = D0AE31F022B281300058D3BC /* Project object */;
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user