mirror of
https://github.com/TelegramMessenger/Telegram-iOS.git
synced 2026-07-06 03:33:41 +02:00
Refactor PasswordSetupUI, PassportUI, GalleryUI and related modules
This commit is contained in:
parent
aa366dee27
commit
a49f04203e
311 changed files with 11406 additions and 1899 deletions
109
Telegram-iOS.xcworkspace/contents.xcworkspacedata
generated
109
Telegram-iOS.xcworkspace/contents.xcworkspacedata
generated
|
|
@ -38,10 +38,19 @@
|
|||
location = "group:submodules/SaveToCameraRoll/SaveToCameraRoll_Xcode.xcodeproj">
|
||||
</FileRef>
|
||||
<FileRef
|
||||
location = "group:submodules/TelegramNotices/TelegramNotices_Xcode.xcodeproj">
|
||||
location = "group:/Users/peter/build/telegram-temp/telegram-ios/submodules/TelegramNotices/TelegramNotices_Xcode.xcodeproj">
|
||||
</FileRef>
|
||||
<FileRef
|
||||
location = "group:submodules/TelegramPermissions/TelegramPermissions_Xcode.xcodeproj">
|
||||
location = "group:/Users/peter/build/telegram-temp/telegram-ios/submodules/TelegramPermissions/TelegramPermissions_Xcode.xcodeproj">
|
||||
</FileRef>
|
||||
<FileRef
|
||||
location = "group:submodules/TelegramStringFormatting/TelegramStringFormatting_Xcode.xcodeproj">
|
||||
</FileRef>
|
||||
<FileRef
|
||||
location = "group:/Users/peter/build/telegram-temp/telegram-ios/submodules/WebsiteType/WebsiteType_Xcode.xcodeproj">
|
||||
</FileRef>
|
||||
<FileRef
|
||||
location = "group:/Users/peter/build/telegram-temp/telegram-ios/submodules/ScreenCaptureDetection/ScreenCaptureDetection_Xcode.xcodeproj">
|
||||
</FileRef>
|
||||
<Group
|
||||
location = "container:"
|
||||
|
|
@ -50,10 +59,13 @@
|
|||
location = "group:submodules/ImageBlur/ImageBlur_Xcode.xcodeproj">
|
||||
</FileRef>
|
||||
<FileRef
|
||||
location = "group:submodules/TinyThumbnail/TinyThumbnail_Xcode.xcodeproj">
|
||||
location = "group:/Users/peter/build/telegram-temp/telegram-ios/submodules/TinyThumbnail/TinyThumbnail_Xcode.xcodeproj">
|
||||
</FileRef>
|
||||
<FileRef
|
||||
location = "group:submodules/ImageTransparency/ImageTransparency_Xcode.xcodeproj">
|
||||
location = "group:/Users/peter/build/telegram-temp/telegram-ios/submodules/ImageTransparency/ImageTransparency_Xcode.xcodeproj">
|
||||
</FileRef>
|
||||
<FileRef
|
||||
location = "group:/Users/peter/build/telegram-temp/telegram-ios/submodules/ImageCompression/ImageCompression_Xcode.xcodeproj">
|
||||
</FileRef>
|
||||
</Group>
|
||||
</Group>
|
||||
|
|
@ -96,7 +108,7 @@
|
|||
location = "group:submodules/MediaResources/MediaResources_Xcode.xcodeproj">
|
||||
</FileRef>
|
||||
<FileRef
|
||||
location = "group:submodules/PhotoResources/PhotoResources_Xcode.xcodeproj">
|
||||
location = "group:/Users/peter/build/telegram-temp/telegram-ios/submodules/PhotoResources/PhotoResources_Xcode.xcodeproj">
|
||||
</FileRef>
|
||||
<FileRef
|
||||
location = "group:submodules/StickerResources/StickerResources_Xcode.xcodeproj">
|
||||
|
|
@ -119,17 +131,52 @@
|
|||
<Group
|
||||
location = "container:"
|
||||
name = "UI Components">
|
||||
<Group
|
||||
location = "container:"
|
||||
name = "Video Content">
|
||||
<FileRef
|
||||
location = "group:/Users/peter/build/telegram-temp/telegram-ios/submodules/TelegramUniversalVideoContent/TelegramUniversalVideoContent_Xcode.xcodeproj">
|
||||
</FileRef>
|
||||
</Group>
|
||||
<Group
|
||||
location = "container:"
|
||||
name = "Nodes">
|
||||
<FileRef
|
||||
location = "group:submodules/RadialStatusNode/RadialStatusNode_Xcode.xcodeproj">
|
||||
</FileRef>
|
||||
<FileRef
|
||||
location = "group:submodules/LiveLocationTimerNode/LiveLocationTimerNode_Xcode.xcodeproj">
|
||||
</FileRef>
|
||||
<FileRef
|
||||
location = "group:submodules/CheckNode/CheckNode_Xcode.xcodeproj">
|
||||
</FileRef>
|
||||
<FileRef
|
||||
location = "group:submodules/SwitchNode/SwitchNode_Xcode.xcodeproj">
|
||||
</FileRef>
|
||||
<FileRef
|
||||
location = "group:submodules/ActivityIndicator/ActivityIndicator_Xcode.xcodeproj">
|
||||
</FileRef>
|
||||
<FileRef
|
||||
location = "group:submodules/ProgressNavigationButtonNode/ProgressNavigationButtonNode_Xcode.xcodeproj">
|
||||
</FileRef>
|
||||
<FileRef
|
||||
location = "group:/Users/peter/build/telegram-temp/telegram-ios/submodules/PhoneInputNode/PhoneInputNode_Xcode.xcodeproj">
|
||||
</FileRef>
|
||||
<FileRef
|
||||
location = "group:/Users/peter/build/telegram-temp/telegram-ios/submodules/SearchBarNode/SearchBarNode_Xcode.xcodeproj">
|
||||
</FileRef>
|
||||
</Group>
|
||||
<Group
|
||||
location = "container:"
|
||||
name = "Gestures">
|
||||
<FileRef
|
||||
location = "group:submodules/TouchDownGesture/TouchDownGesture_Xcode.xcodeproj">
|
||||
location = "group:/Users/peter/build/telegram-temp/telegram-ios/submodules/TouchDownGesture/TouchDownGesture_Xcode.xcodeproj">
|
||||
</FileRef>
|
||||
<FileRef
|
||||
location = "group:submodules/SwipeToDismissGesture/SwipeToDismissGesture_Xcode.xcodeproj">
|
||||
location = "group:/Users/peter/build/telegram-temp/telegram-ios/submodules/SwipeToDismissGesture/SwipeToDismissGesture_Xcode.xcodeproj">
|
||||
</FileRef>
|
||||
<FileRef
|
||||
location = "group:submodules/DirectionalPanGesture/DirectionalPanGesture_Xcode.xcodeproj">
|
||||
location = "group:/Users/peter/build/telegram-temp/telegram-ios/submodules/DirectionalPanGesture/DirectionalPanGesture_Xcode.xcodeproj">
|
||||
</FileRef>
|
||||
</Group>
|
||||
<Group
|
||||
|
|
@ -142,6 +189,9 @@
|
|||
<Group
|
||||
location = "container:"
|
||||
name = "Action Sheet">
|
||||
<FileRef
|
||||
location = "group:/Users/peter/build/telegram-temp/telegram-ios/submodules/DateSelectionUI/DateSelectionUI_Xcode.xcodeproj">
|
||||
</FileRef>
|
||||
<FileRef
|
||||
location = "group:submodules/ActionSheetPeerItem/ActionSheetPeerItem_Xcode.xcodeproj">
|
||||
</FileRef>
|
||||
|
|
@ -176,16 +226,13 @@
|
|||
</FileRef>
|
||||
</Group>
|
||||
<FileRef
|
||||
location = "group:submodules/AlertUI/AlertUI_Xcode.xcodeproj">
|
||||
location = "group:/Users/peter/build/telegram-temp/telegram-ios/submodules/LegacyUI/LegacyUI_Xcode.xcodeproj">
|
||||
</FileRef>
|
||||
<FileRef
|
||||
location = "group:submodules/RadialStatusNode/RadialStatusNode_Xcode.xcodeproj">
|
||||
location = "group:/Users/peter/build/telegram-temp/telegram-ios/submodules/OpenInExternalAppUI/OpenInExternalAppUI_Xcode.xcodeproj">
|
||||
</FileRef>
|
||||
<FileRef
|
||||
location = "group:submodules/TelegramStringFormatting/TelegramStringFormatting_Xcode.xcodeproj">
|
||||
</FileRef>
|
||||
<FileRef
|
||||
location = "group:submodules/LiveLocationTimerNode/LiveLocationTimerNode_Xcode.xcodeproj">
|
||||
location = "group:/Users/peter/build/telegram-temp/telegram-ios/submodules/AlertUI/AlertUI_Xcode.xcodeproj">
|
||||
</FileRef>
|
||||
<FileRef
|
||||
location = "group:submodules/OverlayStatusController/OverlayStatusController_Xcode.xcodeproj">
|
||||
|
|
@ -208,21 +255,9 @@
|
|||
<FileRef
|
||||
location = "group:submodules/RMIntro/RMIntro_Xcode.xcodeproj">
|
||||
</FileRef>
|
||||
<FileRef
|
||||
location = "group:submodules/CheckNode/CheckNode_Xcode.xcodeproj">
|
||||
</FileRef>
|
||||
<FileRef
|
||||
location = "group:submodules/SwitchNode/SwitchNode_Xcode.xcodeproj">
|
||||
</FileRef>
|
||||
<FileRef
|
||||
location = "group:submodules/AnimationUI/AnimationUI_Xcode.xcodeproj">
|
||||
</FileRef>
|
||||
<FileRef
|
||||
location = "group:submodules/ActivityIndicator/ActivityIndicator_Xcode.xcodeproj">
|
||||
</FileRef>
|
||||
<FileRef
|
||||
location = "group:submodules/ProgressNavigationButtonNode/ProgressNavigationButtonNode_Xcode.xcodeproj">
|
||||
</FileRef>
|
||||
<FileRef
|
||||
location = "group:submodules/AsyncDisplayKit/AsyncDisplayKit_Xcode.xcodeproj">
|
||||
</FileRef>
|
||||
|
|
@ -239,10 +274,28 @@
|
|||
location = "group:submodules/ContextUI/ContextUI_Xcode.xcodeproj">
|
||||
</FileRef>
|
||||
<FileRef
|
||||
location = "group:submodules/ComposePollUI/ComposePollUI_Xcode.xcodeproj">
|
||||
location = "group:/Users/peter/build/telegram-temp/telegram-ios/submodules/ComposePollUI/ComposePollUI_Xcode.xcodeproj">
|
||||
</FileRef>
|
||||
<FileRef
|
||||
location = "group:submodules/UndoUI/UndoUI_Xcode.xcodeproj">
|
||||
location = "group:/Users/peter/build/telegram-temp/telegram-ios/submodules/UndoUI/UndoUI_Xcode.xcodeproj">
|
||||
</FileRef>
|
||||
<FileRef
|
||||
location = "group:/Users/peter/build/telegram-temp/telegram-ios/submodules/GameUI/GameUI_Xcode.xcodeproj">
|
||||
</FileRef>
|
||||
<FileRef
|
||||
location = "group:/Users/peter/build/telegram-temp/telegram-ios/submodules/WebUI/WebUI_Xcode.xcodeproj">
|
||||
</FileRef>
|
||||
<FileRef
|
||||
location = "group:/Users/peter/build/telegram-temp/telegram-ios/submodules/PassportUI/PassportUI_Xcode.xcodeproj">
|
||||
</FileRef>
|
||||
<FileRef
|
||||
location = "group:/Users/peter/build/telegram-temp/telegram-ios/submodules/CountrySelectionUI/CountrySelectionUI_Xcode.xcodeproj">
|
||||
</FileRef>
|
||||
<FileRef
|
||||
location = "group:/Users/peter/build/telegram-temp/telegram-ios/submodules/GalleryUI/GalleryUI_Xcode.xcodeproj">
|
||||
</FileRef>
|
||||
<FileRef
|
||||
location = "group:/Users/peter/build/telegram-temp/telegram-ios/submodules/PasswordSetupUI/PasswordSetupUI_Xcode.xcodeproj">
|
||||
</FileRef>
|
||||
</Group>
|
||||
<FileRef
|
||||
|
|
|
|||
|
|
@ -33,6 +33,8 @@
|
|||
D0879B7122F8425B00C4D6B3 /* WallpaperUploadManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0879B7022F8425B00C4D6B3 /* WallpaperUploadManager.swift */; };
|
||||
D0879B7322F842FF00C4D6B3 /* WatchManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0879B7222F842FF00C4D6B3 /* WatchManager.swift */; };
|
||||
D0C9C12322FE414700FAB518 /* PresentationSurfaceLevels.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C12222FE414700FAB518 /* PresentationSurfaceLevels.swift */; };
|
||||
D0C9C3D72300CC2500FAB518 /* FetchMediaUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C3D62300CC2400FAB518 /* FetchMediaUtils.swift */; };
|
||||
D0C9C3D92300CC6000FAB518 /* IsMediaStreamable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C3D82300CC6000FAB518 /* IsMediaStreamable.swift */; };
|
||||
D0D3285422F329A900D07EE2 /* AccountContext.h in Headers */ = {isa = PBXBuildFile; fileRef = D0D3285222F329A900D07EE2 /* AccountContext.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
D0D3285F22F335B000D07EE2 /* AccountContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0D3285E22F335B000D07EE2 /* AccountContext.swift */; };
|
||||
D0D3289D22F3461700D07EE2 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0D3289C22F3461700D07EE2 /* Foundation.framework */; };
|
||||
|
|
@ -69,6 +71,8 @@
|
|||
D0879B7022F8425B00C4D6B3 /* WallpaperUploadManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WallpaperUploadManager.swift; sourceTree = "<group>"; };
|
||||
D0879B7222F842FF00C4D6B3 /* WatchManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WatchManager.swift; sourceTree = "<group>"; };
|
||||
D0C9C12222FE414700FAB518 /* PresentationSurfaceLevels.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PresentationSurfaceLevels.swift; sourceTree = "<group>"; };
|
||||
D0C9C3D62300CC2400FAB518 /* FetchMediaUtils.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FetchMediaUtils.swift; sourceTree = "<group>"; };
|
||||
D0C9C3D82300CC6000FAB518 /* IsMediaStreamable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = IsMediaStreamable.swift; sourceTree = "<group>"; };
|
||||
D0D3284F22F329A900D07EE2 /* AccountContext.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = AccountContext.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0D3285222F329A900D07EE2 /* AccountContext.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AccountContext.h; sourceTree = "<group>"; };
|
||||
D0D3285322F329A900D07EE2 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||
|
|
@ -143,6 +147,8 @@
|
|||
D0879B7022F8425B00C4D6B3 /* WallpaperUploadManager.swift */,
|
||||
D0879B7222F842FF00C4D6B3 /* WatchManager.swift */,
|
||||
D0C9C12222FE414700FAB518 /* PresentationSurfaceLevels.swift */,
|
||||
D0C9C3D62300CC2400FAB518 /* FetchMediaUtils.swift */,
|
||||
D0C9C3D82300CC6000FAB518 /* IsMediaStreamable.swift */,
|
||||
);
|
||||
path = Sources;
|
||||
sourceTree = "<group>";
|
||||
|
|
@ -260,11 +266,13 @@
|
|||
D0879B6322F7A97F00C4D6B3 /* OverlayMediaItemNode.swift in Sources */,
|
||||
D0879B6B22F7B04400C4D6B3 /* DeviceContactData.swift in Sources */,
|
||||
D0879B1922F70C7400C4D6B3 /* OpenChatMessage.swift in Sources */,
|
||||
D0C9C3D72300CC2500FAB518 /* FetchMediaUtils.swift in Sources */,
|
||||
D0879B1D22F7112E00C4D6B3 /* GalleryController.swift in Sources */,
|
||||
D0879B1B22F70CF400C4D6B3 /* ChatController.swift in Sources */,
|
||||
D0879A5022F65D4D00C4D6B3 /* ChatHistoryLocation.swift in Sources */,
|
||||
D0879A4622F651D400C4D6B3 /* LiveLocationManager.swift in Sources */,
|
||||
D0879AA222F6FEC800C4D6B3 /* OverlayAudioPlayerController.swift in Sources */,
|
||||
D0C9C3D92300CC6000FAB518 /* IsMediaStreamable.swift in Sources */,
|
||||
D0D3285F22F335B000D07EE2 /* AccountContext.swift in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
|
|
|
|||
|
|
@ -107,6 +107,44 @@ public final class AccountWithInfo: Equatable {
|
|||
}
|
||||
}
|
||||
|
||||
public enum OpenURLContext {
|
||||
case generic
|
||||
case chat
|
||||
}
|
||||
|
||||
public struct ChatAvailableMessageActionOptions: OptionSet {
|
||||
public var rawValue: Int32
|
||||
|
||||
public init(rawValue: Int32) {
|
||||
self.rawValue = rawValue
|
||||
}
|
||||
|
||||
public init() {
|
||||
self.rawValue = 0
|
||||
}
|
||||
|
||||
public static let deleteLocally = ChatAvailableMessageActionOptions(rawValue: 1 << 0)
|
||||
public static let deleteGlobally = ChatAvailableMessageActionOptions(rawValue: 1 << 1)
|
||||
public static let forward = ChatAvailableMessageActionOptions(rawValue: 1 << 2)
|
||||
public static let report = ChatAvailableMessageActionOptions(rawValue: 1 << 3)
|
||||
public static let viewStickerPack = ChatAvailableMessageActionOptions(rawValue: 1 << 4)
|
||||
public static let rateCall = ChatAvailableMessageActionOptions(rawValue: 1 << 5)
|
||||
public static let cancelSending = ChatAvailableMessageActionOptions(rawValue: 1 << 6)
|
||||
public static let unsendPersonal = ChatAvailableMessageActionOptions(rawValue: 1 << 7)
|
||||
public static let sendScheduledNow = ChatAvailableMessageActionOptions(rawValue: 1 << 8)
|
||||
public static let editScheduledTime = ChatAvailableMessageActionOptions(rawValue: 1 << 9)
|
||||
}
|
||||
|
||||
public struct ChatAvailableMessageActions {
|
||||
public var options: ChatAvailableMessageActionOptions
|
||||
public var banAuthor: Peer?
|
||||
|
||||
public init(options: ChatAvailableMessageActionOptions, banAuthor: Peer?) {
|
||||
self.options = options
|
||||
self.banAuthor = banAuthor
|
||||
}
|
||||
}
|
||||
|
||||
public protocol SharedAccountContext: class {
|
||||
var basePath: String { get }
|
||||
var mainWindow: Window1? { get }
|
||||
|
|
@ -142,6 +180,9 @@ public protocol SharedAccountContext: class {
|
|||
func openChatMessage(_ params: OpenChatMessageParams) -> Bool
|
||||
func messageFromPreloadedChatHistoryViewForLocation(id: MessageId, location: ChatHistoryLocationInput, account: Account, chatLocation: ChatLocation, tagMask: MessageTags?) -> Signal<(MessageIndex?, Bool), NoError>
|
||||
func makeOverlayAudioPlayerController(context: AccountContext, peerId: PeerId, type: MediaManagerPlayerType, initialMessageId: MessageId, initialOrder: MusicPlaybackSettingsOrder, parentNavigationController: NavigationController?) -> ViewController & OverlayAudioPlayerController
|
||||
func makePeerInfoController(context: AccountContext, peer: Peer) -> ViewController?
|
||||
func openExternalUrl(context: AccountContext, urlContext: OpenURLContext, url: String, forceExternal: Bool, presentationData: PresentationData, navigationController: NavigationController?, dismissInput: @escaping () -> Void)
|
||||
func chatAvailableMessageActions(postbox: Postbox, accountPeerId: PeerId, messageIds: Set<MessageId>) -> Signal<ChatAvailableMessageActions, NoError>
|
||||
|
||||
func navigateToCurrentCall()
|
||||
var hasOngoingCall: ValuePromise<Bool> { get }
|
||||
|
|
|
|||
|
|
@ -4,23 +4,22 @@ import TelegramCore
|
|||
import Postbox
|
||||
import SwiftSignalKit
|
||||
import TelegramUIPreferences
|
||||
import AccountContext
|
||||
|
||||
public func freeMediaFileInteractiveFetched(account: Account, fileReference: FileMediaReference) -> Signal<FetchResourceSourceType, FetchResourceError> {
|
||||
return fetchedMediaResource(mediaBox: account.postbox.mediaBox, reference: fileReference.resourceReference(fileReference.media.resource))
|
||||
}
|
||||
|
||||
func freeMediaFileInteractiveFetched(fetchManager: FetchManager, fileReference: FileMediaReference, priority: FetchManagerPriority) -> Signal<Void, NoError> {
|
||||
public func freeMediaFileInteractiveFetched(fetchManager: FetchManager, fileReference: FileMediaReference, priority: FetchManagerPriority) -> Signal<Void, NoError> {
|
||||
let file = fileReference.media
|
||||
let mediaReference = AnyMediaReference.standalone(media: fileReference.media)
|
||||
return fetchManager.interactivelyFetched(category: fetchCategoryForFile(file), location: .chat(PeerId(namespace: 0, id: 0)), locationKey: .free, mediaReference: mediaReference, resourceReference: mediaReference.resourceReference(file.resource), ranges: IndexSet(integersIn: 0 ..< Int(Int32.max) as Range<Int>), statsCategory: statsCategoryForFileWithAttributes(file.attributes), elevatedPriority: false, userInitiated: false, priority: priority, storeToDownloadsPeerType: nil)
|
||||
}
|
||||
|
||||
func freeMediaFileResourceInteractiveFetched(account: Account, fileReference: FileMediaReference, resource: MediaResource) -> Signal<FetchResourceSourceType, FetchResourceError> {
|
||||
public func freeMediaFileResourceInteractiveFetched(account: Account, fileReference: FileMediaReference, resource: MediaResource) -> Signal<FetchResourceSourceType, FetchResourceError> {
|
||||
return fetchedMediaResource(mediaBox: account.postbox.mediaBox, reference: fileReference.resourceReference(resource))
|
||||
}
|
||||
|
||||
func cancelFreeMediaFileInteractiveFetch(account: Account, file: TelegramMediaFile) {
|
||||
public func cancelFreeMediaFileInteractiveFetch(account: Account, file: TelegramMediaFile) {
|
||||
account.postbox.mediaBox.cancelInteractiveResourceFetch(file.resource)
|
||||
}
|
||||
|
||||
|
|
@ -38,12 +37,12 @@ public func messageMediaFileInteractiveFetched(context: AccountContext, message:
|
|||
return messageMediaFileInteractiveFetched(fetchManager: context.fetchManager, messageId: message.id, messageReference: MessageReference(message), file: file, userInitiated: userInitiated, priority: .userInitiated)
|
||||
}
|
||||
|
||||
func messageMediaFileInteractiveFetched(fetchManager: FetchManager, messageId: MessageId, messageReference: MessageReference, file: TelegramMediaFile, ranges: IndexSet = IndexSet(integersIn: 0 ..< Int(Int32.max) as Range<Int>), userInitiated: Bool, priority: FetchManagerPriority) -> Signal<Void, NoError> {
|
||||
public func messageMediaFileInteractiveFetched(fetchManager: FetchManager, messageId: MessageId, messageReference: MessageReference, file: TelegramMediaFile, ranges: IndexSet = IndexSet(integersIn: 0 ..< Int(Int32.max) as Range<Int>), userInitiated: Bool, priority: FetchManagerPriority) -> Signal<Void, NoError> {
|
||||
let mediaReference = AnyMediaReference.message(message: messageReference, media: file)
|
||||
return fetchManager.interactivelyFetched(category: fetchCategoryForFile(file), location: .chat(messageId.peerId), locationKey: .messageId(messageId), mediaReference: mediaReference, resourceReference: mediaReference.resourceReference(file.resource), ranges: ranges, statsCategory: statsCategoryForFileWithAttributes(file.attributes), elevatedPriority: false, userInitiated: userInitiated, priority: priority, storeToDownloadsPeerType: nil)
|
||||
}
|
||||
|
||||
func messageMediaFileCancelInteractiveFetch(context: AccountContext, messageId: MessageId, file: TelegramMediaFile) {
|
||||
public func messageMediaFileCancelInteractiveFetch(context: AccountContext, messageId: MessageId, file: TelegramMediaFile) {
|
||||
context.fetchManager.cancelInteractiveFetches(category: fetchCategoryForFile(file), location: .chat(messageId.peerId), locationKey: .messageId(messageId), resource: file.resource)
|
||||
}
|
||||
|
||||
|
|
@ -51,15 +50,15 @@ public func messageMediaImageInteractiveFetched(context: AccountContext, message
|
|||
return messageMediaImageInteractiveFetched(fetchManager: context.fetchManager, messageId: message.id, messageReference: MessageReference(message), image: image, resource: resource, userInitiated: true, priority: .userInitiated, storeToDownloadsPeerType: storeToDownloadsPeerType)
|
||||
}
|
||||
|
||||
func messageMediaImageInteractiveFetched(fetchManager: FetchManager, messageId: MessageId, messageReference: MessageReference, image: TelegramMediaImage, resource: MediaResource, userInitiated: Bool, priority: FetchManagerPriority, storeToDownloadsPeerType: MediaAutoDownloadPeerType?) -> Signal<Void, NoError> {
|
||||
public func messageMediaImageInteractiveFetched(fetchManager: FetchManager, messageId: MessageId, messageReference: MessageReference, image: TelegramMediaImage, resource: MediaResource, userInitiated: Bool, priority: FetchManagerPriority, storeToDownloadsPeerType: MediaAutoDownloadPeerType?) -> Signal<Void, NoError> {
|
||||
let mediaReference = AnyMediaReference.message(message: messageReference, media: image)
|
||||
return fetchManager.interactivelyFetched(category: .image, location: .chat(messageId.peerId), locationKey: .messageId(messageId), mediaReference: mediaReference, resourceReference: mediaReference.resourceReference(resource), ranges: FetchCompleteRange, statsCategory: .image, elevatedPriority: false, userInitiated: userInitiated, priority: priority, storeToDownloadsPeerType: storeToDownloadsPeerType)
|
||||
}
|
||||
|
||||
func messageMediaImageCancelInteractiveFetch(context: AccountContext, messageId: MessageId, image: TelegramMediaImage, resource: MediaResource) {
|
||||
public func messageMediaImageCancelInteractiveFetch(context: AccountContext, messageId: MessageId, image: TelegramMediaImage, resource: MediaResource) {
|
||||
context.fetchManager.cancelInteractiveFetches(category: .image, location: .chat(messageId.peerId), locationKey: .messageId(messageId), resource: resource)
|
||||
}
|
||||
|
||||
func messageMediaFileStatus(context: AccountContext, messageId: MessageId, file: TelegramMediaFile) -> Signal<MediaResourceStatus, NoError> {
|
||||
public func messageMediaFileStatus(context: AccountContext, messageId: MessageId, file: TelegramMediaFile) -> Signal<MediaResourceStatus, NoError> {
|
||||
return context.fetchManager.fetchStatus(category: fetchCategoryForFile(file), location: .chat(messageId.peerId), locationKey: .messageId(messageId), resource: file.resource)
|
||||
}
|
||||
|
|
@ -2,7 +2,7 @@ import Foundation
|
|||
import Postbox
|
||||
import TelegramCore
|
||||
|
||||
func isMediaStreamable(message: Message, media: TelegramMediaFile) -> Bool {
|
||||
public func isMediaStreamable(message: Message, media: TelegramMediaFile) -> Bool {
|
||||
if message.containsSecretMedia {
|
||||
return false
|
||||
}
|
||||
|
|
@ -31,7 +31,7 @@ func isMediaStreamable(message: Message, media: TelegramMediaFile) -> Bool {
|
|||
return false
|
||||
}
|
||||
|
||||
func isMediaStreamable(media: TelegramMediaFile) -> Bool {
|
||||
public func isMediaStreamable(media: TelegramMediaFile) -> Bool {
|
||||
guard let size = media.size else {
|
||||
return false
|
||||
}
|
||||
|
|
@ -0,0 +1,579 @@
|
|||
// !$*UTF8*$!
|
||||
{
|
||||
archiveVersion = 1;
|
||||
classes = {
|
||||
};
|
||||
objectVersion = 50;
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
D0C9C2952300A11000FAB518 /* CountrySelectionUI.h in Headers */ = {isa = PBXBuildFile; fileRef = D0C9C2932300A11000FAB518 /* CountrySelectionUI.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
D0C9C2A12300A18C00FAB518 /* AuthorizationSequenceCountrySelectionController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C29F2300A18B00FAB518 /* AuthorizationSequenceCountrySelectionController.swift */; };
|
||||
D0C9C2A22300A18C00FAB518 /* AuthorizationSequenceCountrySelectionControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C2A02300A18C00FAB518 /* AuthorizationSequenceCountrySelectionControllerNode.swift */; };
|
||||
D0C9C2A52300A19900FAB518 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C2A42300A19900FAB518 /* Foundation.framework */; };
|
||||
D0C9C2A72300A19C00FAB518 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C2A62300A19C00FAB518 /* UIKit.framework */; };
|
||||
D0C9C2A92300A19F00FAB518 /* Display.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C2A82300A19F00FAB518 /* Display.framework */; };
|
||||
D0C9C2AB2300A1A500FAB518 /* AsyncDisplayKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C2AA2300A1A500FAB518 /* AsyncDisplayKit.framework */; };
|
||||
D0C9C2AD2300A1AC00FAB518 /* TelegramPresentationData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C2AC2300A1AC00FAB518 /* TelegramPresentationData.framework */; };
|
||||
D0C9C2AF2300A1B100FAB518 /* TelegramStringFormatting.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C2AE2300A1B100FAB518 /* TelegramStringFormatting.framework */; };
|
||||
D0C9C2B52300A1F300FAB518 /* FrameworkBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C2B42300A1F300FAB518 /* FrameworkBundle.swift */; };
|
||||
D0C9C2D02300A2D400FAB518 /* SearchBarNode.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C2CF2300A2D400FAB518 /* SearchBarNode.framework */; };
|
||||
D0C9C4472300DE5100FAB518 /* CountryList.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C4462300DE5100FAB518 /* CountryList.swift */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
D0C9C2902300A11000FAB518 /* CountrySelectionUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = CountrySelectionUI.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9C2932300A11000FAB518 /* CountrySelectionUI.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CountrySelectionUI.h; sourceTree = "<group>"; };
|
||||
D0C9C2942300A11000FAB518 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||
D0C9C29F2300A18B00FAB518 /* AuthorizationSequenceCountrySelectionController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthorizationSequenceCountrySelectionController.swift; sourceTree = "<group>"; };
|
||||
D0C9C2A02300A18C00FAB518 /* AuthorizationSequenceCountrySelectionControllerNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthorizationSequenceCountrySelectionControllerNode.swift; sourceTree = "<group>"; };
|
||||
D0C9C2A42300A19900FAB518 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
|
||||
D0C9C2A62300A19C00FAB518 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
|
||||
D0C9C2A82300A19F00FAB518 /* Display.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Display.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9C2AA2300A1A500FAB518 /* AsyncDisplayKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AsyncDisplayKit.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9C2AC2300A1AC00FAB518 /* TelegramPresentationData.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramPresentationData.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9C2AE2300A1B100FAB518 /* TelegramStringFormatting.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramStringFormatting.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9C2B42300A1F300FAB518 /* FrameworkBundle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FrameworkBundle.swift; sourceTree = "<group>"; };
|
||||
D0C9C2CF2300A2D400FAB518 /* SearchBarNode.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = SearchBarNode.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9C4462300DE5100FAB518 /* CountryList.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CountryList.swift; sourceTree = "<group>"; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
D0C9C28D2300A11000FAB518 /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
D0C9C2D02300A2D400FAB518 /* SearchBarNode.framework in Frameworks */,
|
||||
D0C9C2AF2300A1B100FAB518 /* TelegramStringFormatting.framework in Frameworks */,
|
||||
D0C9C2AD2300A1AC00FAB518 /* TelegramPresentationData.framework in Frameworks */,
|
||||
D0C9C2AB2300A1A500FAB518 /* AsyncDisplayKit.framework in Frameworks */,
|
||||
D0C9C2A92300A19F00FAB518 /* Display.framework in Frameworks */,
|
||||
D0C9C2A72300A19C00FAB518 /* UIKit.framework in Frameworks */,
|
||||
D0C9C2A52300A19900FAB518 /* Foundation.framework in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXFrameworksBuildPhase section */
|
||||
|
||||
/* Begin PBXGroup section */
|
||||
D0C9C2862300A11000FAB518 = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
D0C9C2942300A11000FAB518 /* Info.plist */,
|
||||
D0C9C2922300A11000FAB518 /* Sources */,
|
||||
D0C9C2912300A11000FAB518 /* Products */,
|
||||
D0C9C2A32300A19900FAB518 /* Frameworks */,
|
||||
);
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
D0C9C2912300A11000FAB518 /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
D0C9C2902300A11000FAB518 /* CountrySelectionUI.framework */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
D0C9C2922300A11000FAB518 /* Sources */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
D0C9C4462300DE5100FAB518 /* CountryList.swift */,
|
||||
D0C9C29F2300A18B00FAB518 /* AuthorizationSequenceCountrySelectionController.swift */,
|
||||
D0C9C2A02300A18C00FAB518 /* AuthorizationSequenceCountrySelectionControllerNode.swift */,
|
||||
D0C9C2B42300A1F300FAB518 /* FrameworkBundle.swift */,
|
||||
D0C9C2932300A11000FAB518 /* CountrySelectionUI.h */,
|
||||
);
|
||||
path = Sources;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
D0C9C2A32300A19900FAB518 /* Frameworks */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
D0C9C2CF2300A2D400FAB518 /* SearchBarNode.framework */,
|
||||
D0C9C2AE2300A1B100FAB518 /* TelegramStringFormatting.framework */,
|
||||
D0C9C2AC2300A1AC00FAB518 /* TelegramPresentationData.framework */,
|
||||
D0C9C2AA2300A1A500FAB518 /* AsyncDisplayKit.framework */,
|
||||
D0C9C2A82300A19F00FAB518 /* Display.framework */,
|
||||
D0C9C2A62300A19C00FAB518 /* UIKit.framework */,
|
||||
D0C9C2A42300A19900FAB518 /* Foundation.framework */,
|
||||
);
|
||||
name = Frameworks;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXGroup section */
|
||||
|
||||
/* Begin PBXHeadersBuildPhase section */
|
||||
D0C9C28B2300A11000FAB518 /* Headers */ = {
|
||||
isa = PBXHeadersBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
D0C9C2952300A11000FAB518 /* CountrySelectionUI.h in Headers */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXHeadersBuildPhase section */
|
||||
|
||||
/* Begin PBXNativeTarget section */
|
||||
D0C9C28F2300A11000FAB518 /* CountrySelectionUI */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = D0C9C2982300A11000FAB518 /* Build configuration list for PBXNativeTarget "CountrySelectionUI" */;
|
||||
buildPhases = (
|
||||
D0C9C28B2300A11000FAB518 /* Headers */,
|
||||
D0C9C28C2300A11000FAB518 /* Sources */,
|
||||
D0C9C28D2300A11000FAB518 /* Frameworks */,
|
||||
D0C9C28E2300A11000FAB518 /* Resources */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
);
|
||||
name = CountrySelectionUI;
|
||||
productName = CountrySelectionUI;
|
||||
productReference = D0C9C2902300A11000FAB518 /* CountrySelectionUI.framework */;
|
||||
productType = "com.apple.product-type.framework";
|
||||
};
|
||||
/* End PBXNativeTarget section */
|
||||
|
||||
/* Begin PBXProject section */
|
||||
D0C9C2872300A11000FAB518 /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
DefaultBuildSystemTypeForWorkspace = Latest;
|
||||
LastUpgradeCheck = 1030;
|
||||
ORGANIZATIONNAME = "Telegram Messenger LLP";
|
||||
TargetAttributes = {
|
||||
D0C9C28F2300A11000FAB518 = {
|
||||
CreatedOnToolsVersion = 10.3;
|
||||
LastSwiftMigration = 1030;
|
||||
};
|
||||
};
|
||||
};
|
||||
buildConfigurationList = D0C9C28A2300A11000FAB518 /* Build configuration list for PBXProject "CountrySelectionUI_Xcode" */;
|
||||
compatibilityVersion = "Xcode 9.3";
|
||||
developmentRegion = en;
|
||||
hasScannedForEncodings = 0;
|
||||
knownRegions = (
|
||||
en,
|
||||
);
|
||||
mainGroup = D0C9C2862300A11000FAB518;
|
||||
productRefGroup = D0C9C2912300A11000FAB518 /* Products */;
|
||||
projectDirPath = "";
|
||||
projectRoot = "";
|
||||
targets = (
|
||||
D0C9C28F2300A11000FAB518 /* CountrySelectionUI */,
|
||||
);
|
||||
};
|
||||
/* End PBXProject section */
|
||||
|
||||
/* Begin PBXResourcesBuildPhase section */
|
||||
D0C9C28E2300A11000FAB518 /* Resources */ = {
|
||||
isa = PBXResourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXResourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXSourcesBuildPhase section */
|
||||
D0C9C28C2300A11000FAB518 /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
D0C9C4472300DE5100FAB518 /* CountryList.swift in Sources */,
|
||||
D0C9C2A22300A18C00FAB518 /* AuthorizationSequenceCountrySelectionControllerNode.swift in Sources */,
|
||||
D0C9C2A12300A18C00FAB518 /* AuthorizationSequenceCountrySelectionController.swift in Sources */,
|
||||
D0C9C2B52300A1F300FAB518 /* FrameworkBundle.swift in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXSourcesBuildPhase section */
|
||||
|
||||
/* Begin XCBuildConfiguration section */
|
||||
D0C9C2962300A11000FAB518 /* 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;
|
||||
};
|
||||
D0C9C2972300A11000FAB518 /* 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;
|
||||
};
|
||||
D0C9C2992300A11000FAB518 /* 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.CountrySelectionUI;
|
||||
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
|
||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||
SKIP_INSTALL = YES;
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
||||
SWIFT_VERSION = 5.0;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
};
|
||||
name = DebugAppStoreLLC;
|
||||
};
|
||||
D0C9C29A2300A11000FAB518 /* 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.CountrySelectionUI;
|
||||
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
|
||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||
SKIP_INSTALL = YES;
|
||||
SWIFT_VERSION = 5.0;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
};
|
||||
name = ReleaseAppStoreLLC;
|
||||
};
|
||||
D0C9C29B2300A14F00FAB518 /* DebugHockeyapp */ = {
|
||||
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 = DebugHockeyapp;
|
||||
};
|
||||
D0C9C29C2300A14F00FAB518 /* DebugHockeyapp */ = {
|
||||
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.CountrySelectionUI;
|
||||
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
|
||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||
SKIP_INSTALL = YES;
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
||||
SWIFT_VERSION = 5.0;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
};
|
||||
name = DebugHockeyapp;
|
||||
};
|
||||
D0C9C29D2300A15A00FAB518 /* ReleaseHockeyappInternal */ = {
|
||||
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 = ReleaseHockeyappInternal;
|
||||
};
|
||||
D0C9C29E2300A15A00FAB518 /* ReleaseHockeyappInternal */ = {
|
||||
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.CountrySelectionUI;
|
||||
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
|
||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||
SKIP_INSTALL = YES;
|
||||
SWIFT_VERSION = 5.0;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
};
|
||||
name = ReleaseHockeyappInternal;
|
||||
};
|
||||
/* End XCBuildConfiguration section */
|
||||
|
||||
/* Begin XCConfigurationList section */
|
||||
D0C9C28A2300A11000FAB518 /* Build configuration list for PBXProject "CountrySelectionUI_Xcode" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
D0C9C2962300A11000FAB518 /* DebugAppStoreLLC */,
|
||||
D0C9C29B2300A14F00FAB518 /* DebugHockeyapp */,
|
||||
D0C9C2972300A11000FAB518 /* ReleaseAppStoreLLC */,
|
||||
D0C9C29D2300A15A00FAB518 /* ReleaseHockeyappInternal */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = ReleaseAppStoreLLC;
|
||||
};
|
||||
D0C9C2982300A11000FAB518 /* Build configuration list for PBXNativeTarget "CountrySelectionUI" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
D0C9C2992300A11000FAB518 /* DebugAppStoreLLC */,
|
||||
D0C9C29C2300A14F00FAB518 /* DebugHockeyapp */,
|
||||
D0C9C29A2300A11000FAB518 /* ReleaseAppStoreLLC */,
|
||||
D0C9C29E2300A15A00FAB518 /* ReleaseHockeyappInternal */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = ReleaseAppStoreLLC;
|
||||
};
|
||||
/* End XCConfigurationList section */
|
||||
};
|
||||
rootObject = D0C9C2872300A11000FAB518 /* Project object */;
|
||||
}
|
||||
22
submodules/CountrySelectionUI/Info.plist
Normal file
22
submodules/CountrySelectionUI/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>
|
||||
|
|
@ -4,6 +4,7 @@ import Display
|
|||
import AsyncDisplayKit
|
||||
import TelegramPresentationData
|
||||
import TelegramStringFormatting
|
||||
import SearchBarNode
|
||||
|
||||
private func loadCountryCodes() -> [(String, Int)] {
|
||||
guard let filePath = frameworkBundle.path(forResource: "PhoneCountries", ofType: "txt") else {
|
||||
|
|
@ -113,8 +114,8 @@ private final class AuthorizationSequenceCountrySelectionNavigationContentNode:
|
|||
}
|
||||
}
|
||||
|
||||
final class AuthorizationSequenceCountrySelectionController: ViewController {
|
||||
static func lookupCountryNameById(_ id: String, strings: PresentationStrings) -> String? {
|
||||
public final class AuthorizationSequenceCountrySelectionController: ViewController {
|
||||
public static func lookupCountryNameById(_ id: String, strings: PresentationStrings) -> String? {
|
||||
for (itemId, _) in countryCodes {
|
||||
if id == itemId {
|
||||
let locale = localeWithStrings(strings)
|
||||
|
|
@ -127,7 +128,8 @@ final class AuthorizationSequenceCountrySelectionController: ViewController {
|
|||
}
|
||||
return nil
|
||||
}
|
||||
static func lookupCountryIdByCode(_ code: Int) -> String? {
|
||||
|
||||
public static func lookupCountryIdByCode(_ code: Int) -> String? {
|
||||
for (itemId, itemCode) in countryCodes {
|
||||
if itemCode == code {
|
||||
return itemId
|
||||
|
|
@ -146,10 +148,10 @@ final class AuthorizationSequenceCountrySelectionController: ViewController {
|
|||
return self.displayNode as! AuthorizationSequenceCountrySelectionControllerNode
|
||||
}
|
||||
|
||||
var completeWithCountryCode: ((Int, String) -> Void)?
|
||||
var dismissed: (() -> Void)?
|
||||
public var completeWithCountryCode: ((Int, String) -> Void)?
|
||||
public var dismissed: (() -> Void)?
|
||||
|
||||
init(strings: PresentationStrings, theme: PresentationTheme, displayCodes: Bool = true) {
|
||||
public init(strings: PresentationStrings, theme: PresentationTheme, displayCodes: Bool = true) {
|
||||
self.theme = theme
|
||||
self.strings = strings
|
||||
self.displayCodes = displayCodes
|
||||
|
|
@ -172,7 +174,7 @@ final class AuthorizationSequenceCountrySelectionController: ViewController {
|
|||
self.navigationBar?.setContentNode(navigationContentNode, animated: false)
|
||||
}
|
||||
|
||||
required init(coder aDecoder: NSCoder) {
|
||||
required public init(coder aDecoder: NSCoder) {
|
||||
fatalError("init(coder:) has not been implemented")
|
||||
}
|
||||
|
||||
|
|
@ -185,14 +187,14 @@ final class AuthorizationSequenceCountrySelectionController: ViewController {
|
|||
self.displayNodeDidLoad()
|
||||
}
|
||||
|
||||
override func viewDidAppear(_ animated: Bool) {
|
||||
override public func viewDidAppear(_ animated: Bool) {
|
||||
super.viewDidAppear(animated)
|
||||
|
||||
self.controllerNode.animateIn()
|
||||
self.navigationContentNode?.activate()
|
||||
}
|
||||
|
||||
override func containerLayoutUpdated(_ layout: ContainerViewLayout, transition: ContainedViewLayoutTransition) {
|
||||
override public func containerLayoutUpdated(_ layout: ContainerViewLayout, transition: ContainedViewLayoutTransition) {
|
||||
super.containerLayoutUpdated(layout, transition: transition)
|
||||
|
||||
self.controllerNode.containerLayoutUpdated(layout, navigationBarHeight: self.navigationHeight, transition: transition)
|
||||
|
|
@ -203,7 +205,7 @@ final class AuthorizationSequenceCountrySelectionController: ViewController {
|
|||
self.dismiss(completion: nil)
|
||||
}
|
||||
|
||||
override func dismiss(completion: (() -> Void)? = nil) {
|
||||
override public func dismiss(completion: (() -> Void)? = nil) {
|
||||
self.navigationContentNode?.deactivate()
|
||||
self.controllerNode.animateOut(completion: { [weak self] in
|
||||
self?.presentingViewController?.dismiss(animated: true, completion: nil)
|
||||
|
|
@ -64,7 +64,7 @@ private func loadCountriesInfo() -> [(Int, String, String)] {
|
|||
|
||||
let phoneCountriesInfo = loadCountriesInfo()
|
||||
|
||||
let countryCodeToIdAndName: [Int: (String, String)] = {
|
||||
public let countryCodeToIdAndName: [Int: (String, String)] = {
|
||||
var dict: [Int: (String, String)] = [:]
|
||||
for (code, id, name) in phoneCountriesInfo {
|
||||
if dict[code] == nil {
|
||||
|
|
@ -74,12 +74,17 @@ let countryCodeToIdAndName: [Int: (String, String)] = {
|
|||
return dict
|
||||
}()
|
||||
|
||||
struct CountryCodeAndId: Hashable {
|
||||
public struct CountryCodeAndId: Hashable {
|
||||
let code: Int
|
||||
let id: String
|
||||
|
||||
public init(code: Int, id: String) {
|
||||
self.code = code
|
||||
self.id = id
|
||||
}
|
||||
}
|
||||
|
||||
let countryCodeAndIdToName: [CountryCodeAndId: String] = {
|
||||
public let countryCodeAndIdToName: [CountryCodeAndId: String] = {
|
||||
var dict: [CountryCodeAndId: String] = [:]
|
||||
for (code, id, name) in phoneCountriesInfo {
|
||||
dict[CountryCodeAndId(code: code, id: id)] = name
|
||||
19
submodules/CountrySelectionUI/Sources/CountrySelectionUI.h
Normal file
19
submodules/CountrySelectionUI/Sources/CountrySelectionUI.h
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
//
|
||||
// CountrySelectionUI.h
|
||||
// CountrySelectionUI
|
||||
//
|
||||
// Created by Peter on 8/11/19.
|
||||
// Copyright © 2019 Telegram Messenger LLP. All rights reserved.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
//! Project version number for CountrySelectionUI.
|
||||
FOUNDATION_EXPORT double CountrySelectionUIVersionNumber;
|
||||
|
||||
//! Project version string for CountrySelectionUI.
|
||||
FOUNDATION_EXPORT const unsigned char CountrySelectionUIVersionString[];
|
||||
|
||||
// In this header, you should import all the public headers of your framework using statements like #import <CountrySelectionUI/PublicHeader.h>
|
||||
|
||||
|
||||
13
submodules/CountrySelectionUI/Sources/FrameworkBundle.swift
Normal file
13
submodules/CountrySelectionUI/Sources/FrameworkBundle.swift
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
import Foundation
|
||||
import UIKit
|
||||
|
||||
private class FrameworkBundleClass: NSObject {
|
||||
}
|
||||
|
||||
let frameworkBundle: Bundle = Bundle(for: FrameworkBundleClass.self)
|
||||
|
||||
extension UIImage {
|
||||
convenience init?(bundleImageName: String) {
|
||||
self.init(named: bundleImageName, in: frameworkBundle, compatibleWith: nil)
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,571 @@
|
|||
// !$*UTF8*$!
|
||||
{
|
||||
archiveVersion = 1;
|
||||
classes = {
|
||||
};
|
||||
objectVersion = 50;
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
D0C9C4D12300E60C00FAB518 /* DateSelectionUI.h in Headers */ = {isa = PBXBuildFile; fileRef = D0C9C4CF2300E60C00FAB518 /* DateSelectionUI.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
D0C9C4D82300E64900FAB518 /* DateSelectionActionSheetController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C4D72300E64800FAB518 /* DateSelectionActionSheetController.swift */; };
|
||||
D0C9C4E32300EDB800FAB518 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C4E22300EDB800FAB518 /* Foundation.framework */; };
|
||||
D0C9C4E52300EDC000FAB518 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C4E42300EDC000FAB518 /* UIKit.framework */; };
|
||||
D0C9C4E72300EDC400FAB518 /* Display.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C4E62300EDC400FAB518 /* Display.framework */; };
|
||||
D0C9C4E92300EDC900FAB518 /* AsyncDisplayKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C4E82300EDC900FAB518 /* AsyncDisplayKit.framework */; };
|
||||
D0C9C4EB2300EDCE00FAB518 /* TelegramPresentationData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C4EA2300EDCE00FAB518 /* TelegramPresentationData.framework */; };
|
||||
D0C9C4ED2300EDD400FAB518 /* TelegramStringFormatting.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C4EC2300EDD400FAB518 /* TelegramStringFormatting.framework */; };
|
||||
D0C9C4EF2300EE0E00FAB518 /* SwiftSignalKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C4EE2300EE0E00FAB518 /* SwiftSignalKit.framework */; };
|
||||
D0C9C4F12300EE2C00FAB518 /* AccountContext.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C4F02300EE2C00FAB518 /* AccountContext.framework */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
D0C9C4CC2300E60C00FAB518 /* DateSelectionUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DateSelectionUI.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9C4CF2300E60C00FAB518 /* DateSelectionUI.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DateSelectionUI.h; sourceTree = "<group>"; };
|
||||
D0C9C4D02300E60C00FAB518 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||
D0C9C4D72300E64800FAB518 /* DateSelectionActionSheetController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DateSelectionActionSheetController.swift; sourceTree = "<group>"; };
|
||||
D0C9C4E22300EDB800FAB518 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
|
||||
D0C9C4E42300EDC000FAB518 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
|
||||
D0C9C4E62300EDC400FAB518 /* Display.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Display.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9C4E82300EDC900FAB518 /* AsyncDisplayKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AsyncDisplayKit.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9C4EA2300EDCE00FAB518 /* TelegramPresentationData.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramPresentationData.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9C4EC2300EDD400FAB518 /* TelegramStringFormatting.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramStringFormatting.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9C4EE2300EE0E00FAB518 /* SwiftSignalKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = SwiftSignalKit.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9C4F02300EE2C00FAB518 /* AccountContext.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AccountContext.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
D0C9C4C92300E60C00FAB518 /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
D0C9C4F12300EE2C00FAB518 /* AccountContext.framework in Frameworks */,
|
||||
D0C9C4EF2300EE0E00FAB518 /* SwiftSignalKit.framework in Frameworks */,
|
||||
D0C9C4ED2300EDD400FAB518 /* TelegramStringFormatting.framework in Frameworks */,
|
||||
D0C9C4EB2300EDCE00FAB518 /* TelegramPresentationData.framework in Frameworks */,
|
||||
D0C9C4E92300EDC900FAB518 /* AsyncDisplayKit.framework in Frameworks */,
|
||||
D0C9C4E72300EDC400FAB518 /* Display.framework in Frameworks */,
|
||||
D0C9C4E52300EDC000FAB518 /* UIKit.framework in Frameworks */,
|
||||
D0C9C4E32300EDB800FAB518 /* Foundation.framework in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXFrameworksBuildPhase section */
|
||||
|
||||
/* Begin PBXGroup section */
|
||||
D0C9C4C22300E60C00FAB518 = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
D0C9C4D02300E60C00FAB518 /* Info.plist */,
|
||||
D0C9C4CE2300E60C00FAB518 /* Sources */,
|
||||
D0C9C4CD2300E60C00FAB518 /* Products */,
|
||||
D0C9C4E12300EDB800FAB518 /* Frameworks */,
|
||||
);
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
D0C9C4CD2300E60C00FAB518 /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
D0C9C4CC2300E60C00FAB518 /* DateSelectionUI.framework */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
D0C9C4CE2300E60C00FAB518 /* Sources */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
D0C9C4D72300E64800FAB518 /* DateSelectionActionSheetController.swift */,
|
||||
D0C9C4CF2300E60C00FAB518 /* DateSelectionUI.h */,
|
||||
);
|
||||
path = Sources;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
D0C9C4E12300EDB800FAB518 /* Frameworks */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
D0C9C4F02300EE2C00FAB518 /* AccountContext.framework */,
|
||||
D0C9C4EE2300EE0E00FAB518 /* SwiftSignalKit.framework */,
|
||||
D0C9C4EC2300EDD400FAB518 /* TelegramStringFormatting.framework */,
|
||||
D0C9C4EA2300EDCE00FAB518 /* TelegramPresentationData.framework */,
|
||||
D0C9C4E82300EDC900FAB518 /* AsyncDisplayKit.framework */,
|
||||
D0C9C4E62300EDC400FAB518 /* Display.framework */,
|
||||
D0C9C4E42300EDC000FAB518 /* UIKit.framework */,
|
||||
D0C9C4E22300EDB800FAB518 /* Foundation.framework */,
|
||||
);
|
||||
name = Frameworks;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXGroup section */
|
||||
|
||||
/* Begin PBXHeadersBuildPhase section */
|
||||
D0C9C4C72300E60C00FAB518 /* Headers */ = {
|
||||
isa = PBXHeadersBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
D0C9C4D12300E60C00FAB518 /* DateSelectionUI.h in Headers */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXHeadersBuildPhase section */
|
||||
|
||||
/* Begin PBXNativeTarget section */
|
||||
D0C9C4CB2300E60C00FAB518 /* DateSelectionUI */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = D0C9C4D42300E60C00FAB518 /* Build configuration list for PBXNativeTarget "DateSelectionUI" */;
|
||||
buildPhases = (
|
||||
D0C9C4C72300E60C00FAB518 /* Headers */,
|
||||
D0C9C4C82300E60C00FAB518 /* Sources */,
|
||||
D0C9C4C92300E60C00FAB518 /* Frameworks */,
|
||||
D0C9C4CA2300E60C00FAB518 /* Resources */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
);
|
||||
name = DateSelectionUI;
|
||||
productName = DateSelectionUI;
|
||||
productReference = D0C9C4CC2300E60C00FAB518 /* DateSelectionUI.framework */;
|
||||
productType = "com.apple.product-type.framework";
|
||||
};
|
||||
/* End PBXNativeTarget section */
|
||||
|
||||
/* Begin PBXProject section */
|
||||
D0C9C4C32300E60C00FAB518 /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
DefaultBuildSystemTypeForWorkspace = Latest;
|
||||
LastUpgradeCheck = 1030;
|
||||
ORGANIZATIONNAME = "Telegram Messenger LLP";
|
||||
TargetAttributes = {
|
||||
D0C9C4CB2300E60C00FAB518 = {
|
||||
CreatedOnToolsVersion = 10.3;
|
||||
LastSwiftMigration = 1030;
|
||||
};
|
||||
};
|
||||
};
|
||||
buildConfigurationList = D0C9C4C62300E60C00FAB518 /* Build configuration list for PBXProject "DateSelectionUI_Xcode" */;
|
||||
compatibilityVersion = "Xcode 9.3";
|
||||
developmentRegion = en;
|
||||
hasScannedForEncodings = 0;
|
||||
knownRegions = (
|
||||
en,
|
||||
);
|
||||
mainGroup = D0C9C4C22300E60C00FAB518;
|
||||
productRefGroup = D0C9C4CD2300E60C00FAB518 /* Products */;
|
||||
projectDirPath = "";
|
||||
projectRoot = "";
|
||||
targets = (
|
||||
D0C9C4CB2300E60C00FAB518 /* DateSelectionUI */,
|
||||
);
|
||||
};
|
||||
/* End PBXProject section */
|
||||
|
||||
/* Begin PBXResourcesBuildPhase section */
|
||||
D0C9C4CA2300E60C00FAB518 /* Resources */ = {
|
||||
isa = PBXResourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXResourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXSourcesBuildPhase section */
|
||||
D0C9C4C82300E60C00FAB518 /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
D0C9C4D82300E64900FAB518 /* DateSelectionActionSheetController.swift in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXSourcesBuildPhase section */
|
||||
|
||||
/* Begin XCBuildConfiguration section */
|
||||
D0C9C4D22300E60C00FAB518 /* 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;
|
||||
};
|
||||
D0C9C4D32300E60C00FAB518 /* 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;
|
||||
};
|
||||
D0C9C4D52300E60C00FAB518 /* 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.DateSelectionUI;
|
||||
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
|
||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||
SKIP_INSTALL = YES;
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
||||
SWIFT_VERSION = 5.0;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
};
|
||||
name = DebugAppStoreLLC;
|
||||
};
|
||||
D0C9C4D62300E60C00FAB518 /* 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.DateSelectionUI;
|
||||
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
|
||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||
SKIP_INSTALL = YES;
|
||||
SWIFT_VERSION = 5.0;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
};
|
||||
name = ReleaseAppStoreLLC;
|
||||
};
|
||||
D0C9C4DD2300ED8800FAB518 /* DebugHockeyapp */ = {
|
||||
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 = DebugHockeyapp;
|
||||
};
|
||||
D0C9C4DE2300ED8800FAB518 /* DebugHockeyapp */ = {
|
||||
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.DateSelectionUI;
|
||||
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
|
||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||
SKIP_INSTALL = YES;
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
||||
SWIFT_VERSION = 5.0;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
};
|
||||
name = DebugHockeyapp;
|
||||
};
|
||||
D0C9C4DF2300ED9600FAB518 /* ReleaseHockeyappInternal */ = {
|
||||
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 = ReleaseHockeyappInternal;
|
||||
};
|
||||
D0C9C4E02300ED9600FAB518 /* ReleaseHockeyappInternal */ = {
|
||||
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.DateSelectionUI;
|
||||
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
|
||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||
SKIP_INSTALL = YES;
|
||||
SWIFT_VERSION = 5.0;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
};
|
||||
name = ReleaseHockeyappInternal;
|
||||
};
|
||||
/* End XCBuildConfiguration section */
|
||||
|
||||
/* Begin XCConfigurationList section */
|
||||
D0C9C4C62300E60C00FAB518 /* Build configuration list for PBXProject "DateSelectionUI_Xcode" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
D0C9C4D22300E60C00FAB518 /* DebugAppStoreLLC */,
|
||||
D0C9C4DD2300ED8800FAB518 /* DebugHockeyapp */,
|
||||
D0C9C4D32300E60C00FAB518 /* ReleaseAppStoreLLC */,
|
||||
D0C9C4DF2300ED9600FAB518 /* ReleaseHockeyappInternal */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = ReleaseAppStoreLLC;
|
||||
};
|
||||
D0C9C4D42300E60C00FAB518 /* Build configuration list for PBXNativeTarget "DateSelectionUI" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
D0C9C4D52300E60C00FAB518 /* DebugAppStoreLLC */,
|
||||
D0C9C4DE2300ED8800FAB518 /* DebugHockeyapp */,
|
||||
D0C9C4D62300E60C00FAB518 /* ReleaseAppStoreLLC */,
|
||||
D0C9C4E02300ED9600FAB518 /* ReleaseHockeyappInternal */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = ReleaseAppStoreLLC;
|
||||
};
|
||||
/* End XCConfigurationList section */
|
||||
};
|
||||
rootObject = D0C9C4C32300E60C00FAB518 /* Project object */;
|
||||
}
|
||||
22
submodules/DateSelectionUI/Info.plist
Normal file
22
submodules/DateSelectionUI/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>
|
||||
|
|
@ -2,23 +2,20 @@ import Foundation
|
|||
import UIKit
|
||||
import Display
|
||||
import AsyncDisplayKit
|
||||
import UIKit
|
||||
import SwiftSignalKit
|
||||
import TelegramCore
|
||||
import Photos
|
||||
import TelegramPresentationData
|
||||
import TelegramStringFormatting
|
||||
import SwiftSignalKit
|
||||
import AccountContext
|
||||
|
||||
final class DateSelectionActionSheetController: ActionSheetController {
|
||||
public final class DateSelectionActionSheetController: ActionSheetController {
|
||||
private var presentationDisposable: Disposable?
|
||||
|
||||
private let _ready = Promise<Bool>()
|
||||
override var ready: Promise<Bool> {
|
||||
override public var ready: Promise<Bool> {
|
||||
return self._ready
|
||||
}
|
||||
|
||||
init(context: AccountContext, title: String?, currentValue: Int32, minimumDate: Date? = nil, maximumDate: Date? = nil, emptyTitle: String? = nil, applyValue: @escaping (Int32?) -> Void) {
|
||||
public init(context: AccountContext, title: String?, currentValue: Int32, minimumDate: Date? = nil, maximumDate: Date? = nil, emptyTitle: String? = nil, applyValue: @escaping (Int32?) -> Void) {
|
||||
let presentationData = context.sharedContext.currentPresentationData.with { $0 }
|
||||
let theme = presentationData.theme
|
||||
let strings = presentationData.strings
|
||||
|
|
@ -61,7 +58,7 @@ final class DateSelectionActionSheetController: ActionSheetController {
|
|||
])
|
||||
}
|
||||
|
||||
required init(coder aDecoder: NSCoder) {
|
||||
required public init(coder aDecoder: NSCoder) {
|
||||
fatalError("init(coder:) has not been implemented")
|
||||
}
|
||||
|
||||
19
submodules/DateSelectionUI/Sources/DateSelectionUI.h
Normal file
19
submodules/DateSelectionUI/Sources/DateSelectionUI.h
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
//
|
||||
// DateSelectionUI.h
|
||||
// DateSelectionUI
|
||||
//
|
||||
// Created by Peter on 8/12/19.
|
||||
// Copyright © 2019 Telegram Messenger LLP. All rights reserved.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
//! Project version number for DateSelectionUI.
|
||||
FOUNDATION_EXPORT double DateSelectionUIVersionNumber;
|
||||
|
||||
//! Project version string for DateSelectionUI.
|
||||
FOUNDATION_EXPORT const unsigned char DateSelectionUIVersionString[];
|
||||
|
||||
// In this header, you should import all the public headers of your framework using statements like #import <DateSelectionUI/PublicHeader.h>
|
||||
|
||||
|
||||
703
submodules/GalleryUI/GalleryUI_Xcode.xcodeproj/project.pbxproj
Normal file
703
submodules/GalleryUI/GalleryUI_Xcode.xcodeproj/project.pbxproj
Normal file
|
|
@ -0,0 +1,703 @@
|
|||
// !$*UTF8*$!
|
||||
{
|
||||
archiveVersion = 1;
|
||||
classes = {
|
||||
};
|
||||
objectVersion = 50;
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
D0C9C2F52300A51400FAB518 /* GalleryUI.h in Headers */ = {isa = PBXBuildFile; fileRef = D0C9C2F32300A51400FAB518 /* GalleryUI.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
D0C9C3082300A58500FAB518 /* GalleryItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C2FB2300A58400FAB518 /* GalleryItem.swift */; };
|
||||
D0C9C3092300A58500FAB518 /* GalleryController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C2FC2300A58400FAB518 /* GalleryController.swift */; };
|
||||
D0C9C30A2300A58500FAB518 /* GalleryNavigationCheckNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C2FD2300A58400FAB518 /* GalleryNavigationCheckNode.swift */; };
|
||||
D0C9C30B2300A58500FAB518 /* GalleryFooterNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C2FE2300A58400FAB518 /* GalleryFooterNode.swift */; };
|
||||
D0C9C30C2300A58500FAB518 /* GalleryControllerPresentationState.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C2FF2300A58400FAB518 /* GalleryControllerPresentationState.swift */; };
|
||||
D0C9C30D2300A58500FAB518 /* GalleryNavigationRecipientNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C3002300A58400FAB518 /* GalleryNavigationRecipientNode.swift */; };
|
||||
D0C9C30E2300A58500FAB518 /* GalleryControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C3012300A58400FAB518 /* GalleryControllerNode.swift */; };
|
||||
D0C9C30F2300A58500FAB518 /* GalleryItemNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C3022300A58500FAB518 /* GalleryItemNode.swift */; };
|
||||
D0C9C3102300A58500FAB518 /* GalleryFooterContentNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C3032300A58500FAB518 /* GalleryFooterContentNode.swift */; };
|
||||
D0C9C3112300A58500FAB518 /* GalleryVideoDecoration.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C3042300A58500FAB518 /* GalleryVideoDecoration.swift */; };
|
||||
D0C9C3122300A58500FAB518 /* GalleryThumbnailContainerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C3052300A58500FAB518 /* GalleryThumbnailContainerNode.swift */; };
|
||||
D0C9C3132300A58500FAB518 /* FrameworkBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C3062300A58500FAB518 /* FrameworkBundle.swift */; };
|
||||
D0C9C3142300A58500FAB518 /* GalleryPagerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C3072300A58500FAB518 /* GalleryPagerNode.swift */; };
|
||||
D0C9C31B2300A9B900FAB518 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C31A2300A9B900FAB518 /* Foundation.framework */; };
|
||||
D0C9C31D2300A9BD00FAB518 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C31C2300A9BD00FAB518 /* UIKit.framework */; };
|
||||
D0C9C31F2300A9C000FAB518 /* Display.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C31E2300A9C000FAB518 /* Display.framework */; };
|
||||
D0C9C3212300A9C500FAB518 /* QuickLook.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C3202300A9C500FAB518 /* QuickLook.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
|
||||
D0C9C3232300A9C800FAB518 /* Postbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C3222300A9C800FAB518 /* Postbox.framework */; };
|
||||
D0C9C3252300A9CD00FAB518 /* SwiftSignalKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C3242300A9CD00FAB518 /* SwiftSignalKit.framework */; };
|
||||
D0C9C3272300A9D100FAB518 /* TelegramCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C3262300A9D100FAB518 /* TelegramCore.framework */; };
|
||||
D0C9C3292300A9D500FAB518 /* AsyncDisplayKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C3282300A9D500FAB518 /* AsyncDisplayKit.framework */; };
|
||||
D0C9C32B2300A9D900FAB518 /* SafariServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C32A2300A9D900FAB518 /* SafariServices.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
|
||||
D0C9C32D2300A9E900FAB518 /* TelegramPresentationData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C32C2300A9E900FAB518 /* TelegramPresentationData.framework */; };
|
||||
D0C9C32F2300A9EF00FAB518 /* TextFormat.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C32E2300A9EF00FAB518 /* TextFormat.framework */; };
|
||||
D0C9C3312300A9F400FAB518 /* AccountContext.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C3302300A9F400FAB518 /* AccountContext.framework */; };
|
||||
D0C9C3442300AA8A00FAB518 /* ChatImageGalleryItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C3362300AA8700FAB518 /* ChatImageGalleryItem.swift */; };
|
||||
D0C9C3452300AA8A00FAB518 /* UniversalVideoGalleryItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C3372300AA8700FAB518 /* UniversalVideoGalleryItem.swift */; };
|
||||
D0C9C3462300AA8A00FAB518 /* ChatExternalFileGalleryItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C3382300AA8700FAB518 /* ChatExternalFileGalleryItem.swift */; };
|
||||
D0C9C3492300AA8A00FAB518 /* SecretMediaPreviewFooterContentNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C33B2300AA8700FAB518 /* SecretMediaPreviewFooterContentNode.swift */; };
|
||||
D0C9C34A2300AA8A00FAB518 /* ChatItemGalleryFooterContentNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C33C2300AA8800FAB518 /* ChatItemGalleryFooterContentNode.swift */; };
|
||||
D0C9C34C2300AA8A00FAB518 /* ZoomableContentGalleryItemNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C33E2300AA8800FAB518 /* ZoomableContentGalleryItemNode.swift */; };
|
||||
D0C9C34D2300AA8A00FAB518 /* ChatAnimationGalleryItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C33F2300AA8800FAB518 /* ChatAnimationGalleryItem.swift */; };
|
||||
D0C9C34E2300AA8A00FAB518 /* SecretMediaPreviewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C3402300AA8900FAB518 /* SecretMediaPreviewController.swift */; };
|
||||
D0C9C34F2300AA8A00FAB518 /* ChatDocumentGalleryItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C3412300AA8900FAB518 /* ChatDocumentGalleryItem.swift */; };
|
||||
D0C9C3502300AA8A00FAB518 /* ChatVideoGalleryItemScrubberView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C3422300AA8900FAB518 /* ChatVideoGalleryItemScrubberView.swift */; };
|
||||
D0C9C3962300B45700FAB518 /* TelegramUniversalVideoContent.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C3952300B45700FAB518 /* TelegramUniversalVideoContent.framework */; };
|
||||
D0C9C3C32300B73200FAB518 /* WebsiteType.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C3C22300B73200FAB518 /* WebsiteType.framework */; };
|
||||
D0C9C3FD2300D59B00FAB518 /* ScreenCaptureDetection.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C3FC2300D59B00FAB518 /* ScreenCaptureDetection.framework */; };
|
||||
D0C9C43B2300D6DC00FAB518 /* OpenInExternalAppUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C43A2300D6DC00FAB518 /* OpenInExternalAppUI.framework */; };
|
||||
D0C9C4412300D91200FAB518 /* GalleryItemTransitionNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C4402300D91200FAB518 /* GalleryItemTransitionNode.swift */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
D0C9C2F02300A51400FAB518 /* GalleryUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = GalleryUI.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9C2F32300A51400FAB518 /* GalleryUI.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GalleryUI.h; sourceTree = "<group>"; };
|
||||
D0C9C2F42300A51400FAB518 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||
D0C9C2FB2300A58400FAB518 /* GalleryItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GalleryItem.swift; sourceTree = "<group>"; };
|
||||
D0C9C2FC2300A58400FAB518 /* GalleryController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GalleryController.swift; sourceTree = "<group>"; };
|
||||
D0C9C2FD2300A58400FAB518 /* GalleryNavigationCheckNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GalleryNavigationCheckNode.swift; sourceTree = "<group>"; };
|
||||
D0C9C2FE2300A58400FAB518 /* GalleryFooterNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GalleryFooterNode.swift; sourceTree = "<group>"; };
|
||||
D0C9C2FF2300A58400FAB518 /* GalleryControllerPresentationState.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GalleryControllerPresentationState.swift; sourceTree = "<group>"; };
|
||||
D0C9C3002300A58400FAB518 /* GalleryNavigationRecipientNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GalleryNavigationRecipientNode.swift; sourceTree = "<group>"; };
|
||||
D0C9C3012300A58400FAB518 /* GalleryControllerNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GalleryControllerNode.swift; sourceTree = "<group>"; };
|
||||
D0C9C3022300A58500FAB518 /* GalleryItemNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GalleryItemNode.swift; sourceTree = "<group>"; };
|
||||
D0C9C3032300A58500FAB518 /* GalleryFooterContentNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GalleryFooterContentNode.swift; sourceTree = "<group>"; };
|
||||
D0C9C3042300A58500FAB518 /* GalleryVideoDecoration.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GalleryVideoDecoration.swift; sourceTree = "<group>"; };
|
||||
D0C9C3052300A58500FAB518 /* GalleryThumbnailContainerNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GalleryThumbnailContainerNode.swift; sourceTree = "<group>"; };
|
||||
D0C9C3062300A58500FAB518 /* FrameworkBundle.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FrameworkBundle.swift; sourceTree = "<group>"; };
|
||||
D0C9C3072300A58500FAB518 /* GalleryPagerNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GalleryPagerNode.swift; sourceTree = "<group>"; };
|
||||
D0C9C31A2300A9B900FAB518 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
|
||||
D0C9C31C2300A9BD00FAB518 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
|
||||
D0C9C31E2300A9C000FAB518 /* Display.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Display.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9C3202300A9C500FAB518 /* QuickLook.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuickLook.framework; path = System/Library/Frameworks/QuickLook.framework; sourceTree = SDKROOT; };
|
||||
D0C9C3222300A9C800FAB518 /* Postbox.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Postbox.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9C3242300A9CD00FAB518 /* SwiftSignalKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = SwiftSignalKit.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9C3262300A9D100FAB518 /* TelegramCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramCore.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9C3282300A9D500FAB518 /* AsyncDisplayKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AsyncDisplayKit.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9C32A2300A9D900FAB518 /* SafariServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SafariServices.framework; path = System/Library/Frameworks/SafariServices.framework; sourceTree = SDKROOT; };
|
||||
D0C9C32C2300A9E900FAB518 /* TelegramPresentationData.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramPresentationData.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9C32E2300A9EF00FAB518 /* TextFormat.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TextFormat.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9C3302300A9F400FAB518 /* AccountContext.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AccountContext.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9C3362300AA8700FAB518 /* ChatImageGalleryItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatImageGalleryItem.swift; sourceTree = "<group>"; };
|
||||
D0C9C3372300AA8700FAB518 /* UniversalVideoGalleryItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UniversalVideoGalleryItem.swift; sourceTree = "<group>"; };
|
||||
D0C9C3382300AA8700FAB518 /* ChatExternalFileGalleryItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatExternalFileGalleryItem.swift; sourceTree = "<group>"; };
|
||||
D0C9C33B2300AA8700FAB518 /* SecretMediaPreviewFooterContentNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SecretMediaPreviewFooterContentNode.swift; sourceTree = "<group>"; };
|
||||
D0C9C33C2300AA8800FAB518 /* ChatItemGalleryFooterContentNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatItemGalleryFooterContentNode.swift; sourceTree = "<group>"; };
|
||||
D0C9C33E2300AA8800FAB518 /* ZoomableContentGalleryItemNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ZoomableContentGalleryItemNode.swift; sourceTree = "<group>"; };
|
||||
D0C9C33F2300AA8800FAB518 /* ChatAnimationGalleryItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatAnimationGalleryItem.swift; sourceTree = "<group>"; };
|
||||
D0C9C3402300AA8900FAB518 /* SecretMediaPreviewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SecretMediaPreviewController.swift; sourceTree = "<group>"; };
|
||||
D0C9C3412300AA8900FAB518 /* ChatDocumentGalleryItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatDocumentGalleryItem.swift; sourceTree = "<group>"; };
|
||||
D0C9C3422300AA8900FAB518 /* ChatVideoGalleryItemScrubberView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatVideoGalleryItemScrubberView.swift; sourceTree = "<group>"; };
|
||||
D0C9C3952300B45700FAB518 /* TelegramUniversalVideoContent.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramUniversalVideoContent.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9C3C22300B73200FAB518 /* WebsiteType.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = WebsiteType.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9C3FC2300D59B00FAB518 /* ScreenCaptureDetection.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ScreenCaptureDetection.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9C43A2300D6DC00FAB518 /* OpenInExternalAppUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = OpenInExternalAppUI.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9C4402300D91200FAB518 /* GalleryItemTransitionNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GalleryItemTransitionNode.swift; sourceTree = "<group>"; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
D0C9C2ED2300A51400FAB518 /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
D0C9C43B2300D6DC00FAB518 /* OpenInExternalAppUI.framework in Frameworks */,
|
||||
D0C9C3FD2300D59B00FAB518 /* ScreenCaptureDetection.framework in Frameworks */,
|
||||
D0C9C3C32300B73200FAB518 /* WebsiteType.framework in Frameworks */,
|
||||
D0C9C3962300B45700FAB518 /* TelegramUniversalVideoContent.framework in Frameworks */,
|
||||
D0C9C3312300A9F400FAB518 /* AccountContext.framework in Frameworks */,
|
||||
D0C9C32F2300A9EF00FAB518 /* TextFormat.framework in Frameworks */,
|
||||
D0C9C32D2300A9E900FAB518 /* TelegramPresentationData.framework in Frameworks */,
|
||||
D0C9C32B2300A9D900FAB518 /* SafariServices.framework in Frameworks */,
|
||||
D0C9C3292300A9D500FAB518 /* AsyncDisplayKit.framework in Frameworks */,
|
||||
D0C9C3272300A9D100FAB518 /* TelegramCore.framework in Frameworks */,
|
||||
D0C9C3252300A9CD00FAB518 /* SwiftSignalKit.framework in Frameworks */,
|
||||
D0C9C3232300A9C800FAB518 /* Postbox.framework in Frameworks */,
|
||||
D0C9C3212300A9C500FAB518 /* QuickLook.framework in Frameworks */,
|
||||
D0C9C31F2300A9C000FAB518 /* Display.framework in Frameworks */,
|
||||
D0C9C31D2300A9BD00FAB518 /* UIKit.framework in Frameworks */,
|
||||
D0C9C31B2300A9B900FAB518 /* Foundation.framework in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXFrameworksBuildPhase section */
|
||||
|
||||
/* Begin PBXGroup section */
|
||||
D0C9C2E62300A51400FAB518 = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
D0C9C2F42300A51400FAB518 /* Info.plist */,
|
||||
D0C9C2F22300A51400FAB518 /* Sources */,
|
||||
D0C9C2F12300A51400FAB518 /* Products */,
|
||||
D0C9C3192300A9B900FAB518 /* Frameworks */,
|
||||
);
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
D0C9C2F12300A51400FAB518 /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
D0C9C2F02300A51400FAB518 /* GalleryUI.framework */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
D0C9C2F22300A51400FAB518 /* Sources */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
D0C9C3522300AA8C00FAB518 /* Items */,
|
||||
D0C9C33C2300AA8800FAB518 /* ChatItemGalleryFooterContentNode.swift */,
|
||||
D0C9C3422300AA8900FAB518 /* ChatVideoGalleryItemScrubberView.swift */,
|
||||
D0C9C3402300AA8900FAB518 /* SecretMediaPreviewController.swift */,
|
||||
D0C9C33B2300AA8700FAB518 /* SecretMediaPreviewFooterContentNode.swift */,
|
||||
D0C9C33E2300AA8800FAB518 /* ZoomableContentGalleryItemNode.swift */,
|
||||
D0C9C2FC2300A58400FAB518 /* GalleryController.swift */,
|
||||
D0C9C3012300A58400FAB518 /* GalleryControllerNode.swift */,
|
||||
D0C9C2FF2300A58400FAB518 /* GalleryControllerPresentationState.swift */,
|
||||
D0C9C3032300A58500FAB518 /* GalleryFooterContentNode.swift */,
|
||||
D0C9C2FE2300A58400FAB518 /* GalleryFooterNode.swift */,
|
||||
D0C9C2FB2300A58400FAB518 /* GalleryItem.swift */,
|
||||
D0C9C3022300A58500FAB518 /* GalleryItemNode.swift */,
|
||||
D0C9C2FD2300A58400FAB518 /* GalleryNavigationCheckNode.swift */,
|
||||
D0C9C3002300A58400FAB518 /* GalleryNavigationRecipientNode.swift */,
|
||||
D0C9C3072300A58500FAB518 /* GalleryPagerNode.swift */,
|
||||
D0C9C3052300A58500FAB518 /* GalleryThumbnailContainerNode.swift */,
|
||||
D0C9C3042300A58500FAB518 /* GalleryVideoDecoration.swift */,
|
||||
D0C9C3062300A58500FAB518 /* FrameworkBundle.swift */,
|
||||
D0C9C2F32300A51400FAB518 /* GalleryUI.h */,
|
||||
D0C9C4402300D91200FAB518 /* GalleryItemTransitionNode.swift */,
|
||||
);
|
||||
path = Sources;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
D0C9C3192300A9B900FAB518 /* Frameworks */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
D0C9C43A2300D6DC00FAB518 /* OpenInExternalAppUI.framework */,
|
||||
D0C9C3FC2300D59B00FAB518 /* ScreenCaptureDetection.framework */,
|
||||
D0C9C3C22300B73200FAB518 /* WebsiteType.framework */,
|
||||
D0C9C3952300B45700FAB518 /* TelegramUniversalVideoContent.framework */,
|
||||
D0C9C3302300A9F400FAB518 /* AccountContext.framework */,
|
||||
D0C9C32E2300A9EF00FAB518 /* TextFormat.framework */,
|
||||
D0C9C32C2300A9E900FAB518 /* TelegramPresentationData.framework */,
|
||||
D0C9C32A2300A9D900FAB518 /* SafariServices.framework */,
|
||||
D0C9C3282300A9D500FAB518 /* AsyncDisplayKit.framework */,
|
||||
D0C9C3262300A9D100FAB518 /* TelegramCore.framework */,
|
||||
D0C9C3242300A9CD00FAB518 /* SwiftSignalKit.framework */,
|
||||
D0C9C3222300A9C800FAB518 /* Postbox.framework */,
|
||||
D0C9C3202300A9C500FAB518 /* QuickLook.framework */,
|
||||
D0C9C31E2300A9C000FAB518 /* Display.framework */,
|
||||
D0C9C31C2300A9BD00FAB518 /* UIKit.framework */,
|
||||
D0C9C31A2300A9B900FAB518 /* Foundation.framework */,
|
||||
);
|
||||
name = Frameworks;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
D0C9C3522300AA8C00FAB518 /* Items */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
D0C9C33F2300AA8800FAB518 /* ChatAnimationGalleryItem.swift */,
|
||||
D0C9C3412300AA8900FAB518 /* ChatDocumentGalleryItem.swift */,
|
||||
D0C9C3382300AA8700FAB518 /* ChatExternalFileGalleryItem.swift */,
|
||||
D0C9C3362300AA8700FAB518 /* ChatImageGalleryItem.swift */,
|
||||
D0C9C3372300AA8700FAB518 /* UniversalVideoGalleryItem.swift */,
|
||||
);
|
||||
path = Items;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXGroup section */
|
||||
|
||||
/* Begin PBXHeadersBuildPhase section */
|
||||
D0C9C2EB2300A51400FAB518 /* Headers */ = {
|
||||
isa = PBXHeadersBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
D0C9C2F52300A51400FAB518 /* GalleryUI.h in Headers */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXHeadersBuildPhase section */
|
||||
|
||||
/* Begin PBXNativeTarget section */
|
||||
D0C9C2EF2300A51400FAB518 /* GalleryUI */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = D0C9C2F82300A51400FAB518 /* Build configuration list for PBXNativeTarget "GalleryUI" */;
|
||||
buildPhases = (
|
||||
D0C9C2EB2300A51400FAB518 /* Headers */,
|
||||
D0C9C2EC2300A51400FAB518 /* Sources */,
|
||||
D0C9C2ED2300A51400FAB518 /* Frameworks */,
|
||||
D0C9C2EE2300A51400FAB518 /* Resources */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
);
|
||||
name = GalleryUI;
|
||||
productName = GalleryUI;
|
||||
productReference = D0C9C2F02300A51400FAB518 /* GalleryUI.framework */;
|
||||
productType = "com.apple.product-type.framework";
|
||||
};
|
||||
/* End PBXNativeTarget section */
|
||||
|
||||
/* Begin PBXProject section */
|
||||
D0C9C2E72300A51400FAB518 /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
DefaultBuildSystemTypeForWorkspace = Latest;
|
||||
LastUpgradeCheck = 1030;
|
||||
ORGANIZATIONNAME = "Telegram Messenger LLP";
|
||||
TargetAttributes = {
|
||||
D0C9C2EF2300A51400FAB518 = {
|
||||
CreatedOnToolsVersion = 10.3;
|
||||
LastSwiftMigration = 1030;
|
||||
};
|
||||
};
|
||||
};
|
||||
buildConfigurationList = D0C9C2EA2300A51400FAB518 /* Build configuration list for PBXProject "GalleryUI_Xcode" */;
|
||||
compatibilityVersion = "Xcode 9.3";
|
||||
developmentRegion = en;
|
||||
hasScannedForEncodings = 0;
|
||||
knownRegions = (
|
||||
en,
|
||||
);
|
||||
mainGroup = D0C9C2E62300A51400FAB518;
|
||||
productRefGroup = D0C9C2F12300A51400FAB518 /* Products */;
|
||||
projectDirPath = "";
|
||||
projectRoot = "";
|
||||
targets = (
|
||||
D0C9C2EF2300A51400FAB518 /* GalleryUI */,
|
||||
);
|
||||
};
|
||||
/* End PBXProject section */
|
||||
|
||||
/* Begin PBXResourcesBuildPhase section */
|
||||
D0C9C2EE2300A51400FAB518 /* Resources */ = {
|
||||
isa = PBXResourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXResourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXSourcesBuildPhase section */
|
||||
D0C9C2EC2300A51400FAB518 /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
D0C9C30E2300A58500FAB518 /* GalleryControllerNode.swift in Sources */,
|
||||
D0C9C3502300AA8A00FAB518 /* ChatVideoGalleryItemScrubberView.swift in Sources */,
|
||||
D0C9C34C2300AA8A00FAB518 /* ZoomableContentGalleryItemNode.swift in Sources */,
|
||||
D0C9C3102300A58500FAB518 /* GalleryFooterContentNode.swift in Sources */,
|
||||
D0C9C30A2300A58500FAB518 /* GalleryNavigationCheckNode.swift in Sources */,
|
||||
D0C9C34E2300AA8A00FAB518 /* SecretMediaPreviewController.swift in Sources */,
|
||||
D0C9C30C2300A58500FAB518 /* GalleryControllerPresentationState.swift in Sources */,
|
||||
D0C9C4412300D91200FAB518 /* GalleryItemTransitionNode.swift in Sources */,
|
||||
D0C9C30D2300A58500FAB518 /* GalleryNavigationRecipientNode.swift in Sources */,
|
||||
D0C9C3092300A58500FAB518 /* GalleryController.swift in Sources */,
|
||||
D0C9C30F2300A58500FAB518 /* GalleryItemNode.swift in Sources */,
|
||||
D0C9C3142300A58500FAB518 /* GalleryPagerNode.swift in Sources */,
|
||||
D0C9C3452300AA8A00FAB518 /* UniversalVideoGalleryItem.swift in Sources */,
|
||||
D0C9C3122300A58500FAB518 /* GalleryThumbnailContainerNode.swift in Sources */,
|
||||
D0C9C3462300AA8A00FAB518 /* ChatExternalFileGalleryItem.swift in Sources */,
|
||||
D0C9C34D2300AA8A00FAB518 /* ChatAnimationGalleryItem.swift in Sources */,
|
||||
D0C9C3442300AA8A00FAB518 /* ChatImageGalleryItem.swift in Sources */,
|
||||
D0C9C34F2300AA8A00FAB518 /* ChatDocumentGalleryItem.swift in Sources */,
|
||||
D0C9C3132300A58500FAB518 /* FrameworkBundle.swift in Sources */,
|
||||
D0C9C3082300A58500FAB518 /* GalleryItem.swift in Sources */,
|
||||
D0C9C3112300A58500FAB518 /* GalleryVideoDecoration.swift in Sources */,
|
||||
D0C9C34A2300AA8A00FAB518 /* ChatItemGalleryFooterContentNode.swift in Sources */,
|
||||
D0C9C30B2300A58500FAB518 /* GalleryFooterNode.swift in Sources */,
|
||||
D0C9C3492300AA8A00FAB518 /* SecretMediaPreviewFooterContentNode.swift in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXSourcesBuildPhase section */
|
||||
|
||||
/* Begin XCBuildConfiguration section */
|
||||
D0C9C2F62300A51400FAB518 /* 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;
|
||||
};
|
||||
D0C9C2F72300A51400FAB518 /* 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;
|
||||
};
|
||||
D0C9C2F92300A51400FAB518 /* 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.GalleryUI;
|
||||
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
|
||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||
SKIP_INSTALL = YES;
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
||||
SWIFT_VERSION = 5.0;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
};
|
||||
name = DebugAppStoreLLC;
|
||||
};
|
||||
D0C9C2FA2300A51400FAB518 /* 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.GalleryUI;
|
||||
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
|
||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||
SKIP_INSTALL = YES;
|
||||
SWIFT_VERSION = 5.0;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
};
|
||||
name = ReleaseAppStoreLLC;
|
||||
};
|
||||
D0C9C3152300A99100FAB518 /* DebugHockeyapp */ = {
|
||||
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 = DebugHockeyapp;
|
||||
};
|
||||
D0C9C3162300A99100FAB518 /* DebugHockeyapp */ = {
|
||||
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.GalleryUI;
|
||||
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
|
||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||
SKIP_INSTALL = YES;
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
||||
SWIFT_VERSION = 5.0;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
};
|
||||
name = DebugHockeyapp;
|
||||
};
|
||||
D0C9C3172300A99D00FAB518 /* ReleaseHockeyappInternal */ = {
|
||||
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 = ReleaseHockeyappInternal;
|
||||
};
|
||||
D0C9C3182300A99D00FAB518 /* ReleaseHockeyappInternal */ = {
|
||||
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.GalleryUI;
|
||||
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
|
||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||
SKIP_INSTALL = YES;
|
||||
SWIFT_VERSION = 5.0;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
};
|
||||
name = ReleaseHockeyappInternal;
|
||||
};
|
||||
/* End XCBuildConfiguration section */
|
||||
|
||||
/* Begin XCConfigurationList section */
|
||||
D0C9C2EA2300A51400FAB518 /* Build configuration list for PBXProject "GalleryUI_Xcode" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
D0C9C2F62300A51400FAB518 /* DebugAppStoreLLC */,
|
||||
D0C9C3152300A99100FAB518 /* DebugHockeyapp */,
|
||||
D0C9C2F72300A51400FAB518 /* ReleaseAppStoreLLC */,
|
||||
D0C9C3172300A99D00FAB518 /* ReleaseHockeyappInternal */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = ReleaseAppStoreLLC;
|
||||
};
|
||||
D0C9C2F82300A51400FAB518 /* Build configuration list for PBXNativeTarget "GalleryUI" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
D0C9C2F92300A51400FAB518 /* DebugAppStoreLLC */,
|
||||
D0C9C3162300A99100FAB518 /* DebugHockeyapp */,
|
||||
D0C9C2FA2300A51400FAB518 /* ReleaseAppStoreLLC */,
|
||||
D0C9C3182300A99D00FAB518 /* ReleaseHockeyappInternal */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = ReleaseAppStoreLLC;
|
||||
};
|
||||
/* End XCConfigurationList section */
|
||||
};
|
||||
rootObject = D0C9C2E72300A51400FAB518 /* Project object */;
|
||||
}
|
||||
22
submodules/GalleryUI/Info.plist
Normal file
22
submodules/GalleryUI/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>
|
||||
|
|
@ -12,6 +12,7 @@ import TelegramStringFormatting
|
|||
import AccountContext
|
||||
import RadialStatusNode
|
||||
import ShareController
|
||||
import OpenInExternalAppUI
|
||||
|
||||
private let deleteImage = generateTintedImage(image: UIImage(bundleImageName: "Chat/Input/Accessory Panels/MessageSelectionThrash"), color: .white)
|
||||
private let actionImage = generateTintedImage(image: UIImage(bundleImageName: "Chat/Input/Accessory Panels/MessageSelectionAction"), color: .white)
|
||||
|
|
@ -808,7 +809,7 @@ final class ChatItemGalleryFooterContentNode: GalleryFooterContentNode, UIScroll
|
|||
}
|
||||
|
||||
private func commitDeleteMessages(_ messages: [Message], ask: Bool) {
|
||||
self.messageContextDisposable.set((chatAvailableMessageActions(postbox: self.context.account.postbox, accountPeerId: self.context.account.peerId, messageIds: Set(messages.map { $0.id })) |> deliverOnMainQueue).start(next: { [weak self] actions in
|
||||
self.messageContextDisposable.set((self.context.sharedContext.chatAvailableMessageActions(postbox: self.context.account.postbox, accountPeerId: self.context.account.peerId, messageIds: Set(messages.map { $0.id })) |> deliverOnMainQueue).start(next: { [weak self] actions in
|
||||
if let strongSelf = self, let controllerInteration = strongSelf.controllerInteraction, !actions.options.isEmpty {
|
||||
let actionSheet = ActionSheetController(presentationTheme: strongSelf.theme)
|
||||
var items: [ActionSheetItem] = []
|
||||
|
|
@ -906,7 +907,7 @@ final class ChatItemGalleryFooterContentNode: GalleryFooterContentNode, UIScroll
|
|||
if let strongSelf = self {
|
||||
let openInController = OpenInActionSheetController(context: strongSelf.context, item: item, additionalAction: nil, openUrl: { [weak self] url in
|
||||
if let strongSelf = self {
|
||||
openExternalUrl(context: strongSelf.context, url: url, forceExternal: true, presentationData: presentationData, navigationController: nil, dismissInput: {})
|
||||
strongSelf.context.sharedContext.openExternalUrl(context: strongSelf.context, urlContext: .generic, url: url, forceExternal: true, presentationData: presentationData, navigationController: nil, dismissInput: {})
|
||||
}
|
||||
})
|
||||
strongSelf.controllerInteraction?.presentController(openInController, nil)
|
||||
|
|
@ -915,7 +916,7 @@ final class ChatItemGalleryFooterContentNode: GalleryFooterContentNode, UIScroll
|
|||
} else {
|
||||
preferredAction = .custom(action: ShareControllerAction(title: presentationData.strings.Web_OpenExternal, action: { [weak self] in
|
||||
if let strongSelf = self {
|
||||
openExternalUrl(context: strongSelf.context, url: content.url, presentationData: presentationData, navigationController: nil, dismissInput: {})
|
||||
strongSelf.context.sharedContext.openExternalUrl(context: strongSelf.context, urlContext: .generic, url: content.url, forceExternal: false, presentationData: presentationData, navigationController: nil, dismissInput: {})
|
||||
}
|
||||
}))
|
||||
}
|
||||
|
|
@ -1017,7 +1018,7 @@ final class ChatItemGalleryFooterContentNode: GalleryFooterContentNode, UIScroll
|
|||
if let strongSelf = self {
|
||||
let openInController = OpenInActionSheetController(context: strongSelf.context, item: item, additionalAction: nil, openUrl: { [weak self] url in
|
||||
if let strongSelf = self {
|
||||
openExternalUrl(context: strongSelf.context, url: url, forceExternal: true, presentationData: presentationData, navigationController: nil, dismissInput: {})
|
||||
strongSelf.context.sharedContext.openExternalUrl(context: strongSelf.context, urlContext: .generic, url: url, forceExternal: true, presentationData: presentationData, navigationController: nil, dismissInput: {})
|
||||
}
|
||||
})
|
||||
strongSelf.controllerInteraction?.presentController(openInController, nil)
|
||||
|
|
@ -1026,7 +1027,7 @@ final class ChatItemGalleryFooterContentNode: GalleryFooterContentNode, UIScroll
|
|||
} else {
|
||||
preferredAction = .custom(action: ShareControllerAction(title: presentationData.strings.Web_OpenExternal, action: { [weak self] in
|
||||
if let strongSelf = self {
|
||||
openExternalUrl(context: strongSelf.context, url: content.url, presentationData: presentationData, navigationController: nil, dismissInput: {})
|
||||
strongSelf.context.sharedContext.openExternalUrl(context: strongSelf.context, urlContext: .generic, url: content.url, forceExternal: false, presentationData: presentationData, navigationController: nil, dismissInput: {})
|
||||
}
|
||||
}))
|
||||
}
|
||||
14
submodules/GalleryUI/Sources/FrameworkBundle.swift
Normal file
14
submodules/GalleryUI/Sources/FrameworkBundle.swift
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
import Foundation
|
||||
import UIKit
|
||||
|
||||
private class FrameworkBundleClass: NSObject {
|
||||
}
|
||||
|
||||
let frameworkBundle: Bundle = Bundle(for: FrameworkBundleClass.self)
|
||||
private let screenScaleFactor = Int(UIScreen.main.scale)
|
||||
|
||||
extension UIImage {
|
||||
convenience init?(bundleImageName: String) {
|
||||
self.init(named: bundleImageName, in: frameworkBundle, compatibleWith: nil)
|
||||
}
|
||||
}
|
||||
|
|
@ -10,6 +10,9 @@ import SafariServices
|
|||
import TelegramPresentationData
|
||||
import TextFormat
|
||||
import AccountContext
|
||||
import TelegramUniversalVideoContent
|
||||
import WebsiteType
|
||||
import OpenInExternalAppUI
|
||||
|
||||
private func tagsForMessage(_ message: Message) -> MessageTags? {
|
||||
for media in message.media {
|
||||
|
|
@ -95,7 +98,7 @@ private let internalMimePrefixes: [String] = [
|
|||
"image/png"
|
||||
]
|
||||
|
||||
func internalDocumentItemSupportsMimeType(_ type: String, fileName: String?) -> Bool {
|
||||
public func internalDocumentItemSupportsMimeType(_ type: String, fileName: String?) -> Bool {
|
||||
if let fileName = fileName {
|
||||
let ext = (fileName as NSString).pathExtension
|
||||
if internalExtensions.contains(ext.lowercased()) {
|
||||
|
|
@ -123,7 +126,7 @@ private let italicFont = Font.italic(16.0)
|
|||
private let boldItalicFont = Font.semiboldItalic(16.0)
|
||||
private let fixedFont = UIFont(name: "Menlo-Regular", size: 15.0) ?? textFont
|
||||
|
||||
func galleryCaptionStringWithAppliedEntities(_ text: String, entities: [MessageTextEntity]) -> NSAttributedString {
|
||||
public func galleryCaptionStringWithAppliedEntities(_ text: String, entities: [MessageTextEntity]) -> NSAttributedString {
|
||||
return stringWithAppliedEntities(text, entities: entities, baseColor: .white, linkColor: UIColor(rgb: 0x5ac8fa), baseFont: textFont, linkFont: textFont, boldFont: boldFont, italicFont: italicFont, boldItalicFont: boldItalicFont, fixedFont: fixedFont, blockQuoteFont: textFont, underlineLinks: false)
|
||||
}
|
||||
|
||||
|
|
@ -136,7 +139,7 @@ private func galleryMessageCaptionText(_ message: Message) -> String {
|
|||
return message.text
|
||||
}
|
||||
|
||||
func galleryItemForEntry(context: AccountContext, presentationData: PresentationData, entry: MessageHistoryEntry, isCentral: Bool = false, streamVideos: Bool, loopVideos: Bool = false, hideControls: Bool = false, fromPlayingVideo: Bool = false, landscape: Bool = false, timecode: Double? = nil, tempFilePath: String? = nil, playbackCompleted: @escaping () -> Void = {}, performAction: @escaping (GalleryControllerInteractionTapAction) -> Void = { _ in }, openActionOptions: @escaping (GalleryControllerInteractionTapAction) -> Void = { _ in }) -> GalleryItem? {
|
||||
public func galleryItemForEntry(context: AccountContext, presentationData: PresentationData, entry: MessageHistoryEntry, isCentral: Bool = false, streamVideos: Bool, loopVideos: Bool = false, hideControls: Bool = false, fromPlayingVideo: Bool = false, landscape: Bool = false, timecode: Double? = nil, tempFilePath: String? = nil, playbackCompleted: @escaping () -> Void = {}, performAction: @escaping (GalleryControllerInteractionTapAction) -> Void = { _ in }, openActionOptions: @escaping (GalleryControllerInteractionTapAction) -> Void = { _ in }) -> GalleryItem? {
|
||||
let message = entry.message
|
||||
let location = entry.location
|
||||
if let (media, mediaImage) = mediaForMessage(message: message) {
|
||||
|
|
@ -192,7 +195,7 @@ func galleryItemForEntry(context: AccountContext, presentationData: Presentation
|
|||
}
|
||||
} else if let webpage = media as? TelegramMediaWebpage, case let .Loaded(webpageContent) = webpage.content {
|
||||
var content: UniversalVideoContent?
|
||||
switch websiteType(of: webpageContent) {
|
||||
switch websiteType(of: webpageContent.websiteName) {
|
||||
case .instagram where webpageContent.file != nil && webpageContent.image != nil && webpageContent.file!.isVideo:
|
||||
content = NativeVideoContent(id: .message(message.stableId, webpageContent.file?.id ?? webpage.webpageId), fileReference: .message(message: MessageReference(message), media: webpageContent.file!), imageReference: webpageContent.image.flatMap({ ImageMediaReference.message(message: MessageReference(message), media: $0) }), streamVideo: .conservative, enableSound: true)
|
||||
default:
|
||||
|
|
@ -217,21 +220,21 @@ func galleryItemForEntry(context: AccountContext, presentationData: Presentation
|
|||
return nil
|
||||
}
|
||||
|
||||
final class GalleryTransitionArguments {
|
||||
let transitionNode: (ASDisplayNode, () -> (UIView?, UIView?))
|
||||
let addToTransitionSurface: (UIView) -> Void
|
||||
public final class GalleryTransitionArguments {
|
||||
public let transitionNode: (ASDisplayNode, () -> (UIView?, UIView?))
|
||||
public let addToTransitionSurface: (UIView) -> Void
|
||||
|
||||
init(transitionNode: (ASDisplayNode, () -> (UIView?, UIView?)), addToTransitionSurface: @escaping (UIView) -> Void) {
|
||||
public init(transitionNode: (ASDisplayNode, () -> (UIView?, UIView?)), addToTransitionSurface: @escaping (UIView) -> Void) {
|
||||
self.transitionNode = transitionNode
|
||||
self.addToTransitionSurface = addToTransitionSurface
|
||||
}
|
||||
}
|
||||
|
||||
final class GalleryControllerPresentationArguments {
|
||||
let animated: Bool
|
||||
let transitionArguments: (MessageId, Media) -> GalleryTransitionArguments?
|
||||
public final class GalleryControllerPresentationArguments {
|
||||
public let animated: Bool
|
||||
public let transitionArguments: (MessageId, Media) -> GalleryTransitionArguments?
|
||||
|
||||
init(animated: Bool = true, transitionArguments: @escaping (MessageId, Media) -> GalleryTransitionArguments?) {
|
||||
public init(animated: Bool = true, transitionArguments: @escaping (MessageId, Media) -> GalleryTransitionArguments?) {
|
||||
self.animated = animated
|
||||
self.transitionArguments = transitionArguments
|
||||
}
|
||||
|
|
@ -251,12 +254,12 @@ private enum GalleryMessageHistoryView {
|
|||
}
|
||||
}
|
||||
|
||||
enum GalleryControllerItemSource {
|
||||
public enum GalleryControllerItemSource {
|
||||
case peerMessagesAtId(MessageId)
|
||||
case standaloneMessage(Message)
|
||||
}
|
||||
|
||||
enum GalleryControllerInteractionTapAction {
|
||||
public enum GalleryControllerInteractionTapAction {
|
||||
case url(url: String, concealed: Bool)
|
||||
case textMention(String)
|
||||
case peerMention(PeerId, String)
|
||||
|
|
@ -269,9 +272,9 @@ public enum GalleryControllerItemNodeAction {
|
|||
case timecode(Double)
|
||||
}
|
||||
|
||||
class GalleryController: ViewController {
|
||||
static let darkNavigationTheme = NavigationBarTheme(buttonColor: .white, disabledButtonColor: UIColor(rgb: 0x525252), primaryTextColor: .white, backgroundColor: UIColor(white: 0.0, alpha: 0.6), separatorColor: UIColor(white: 0.0, alpha: 0.8), badgeBackgroundColor: .clear, badgeStrokeColor: .clear, badgeTextColor: .clear)
|
||||
static let lightNavigationTheme = NavigationBarTheme(buttonColor: UIColor(rgb: 0x007ee5), disabledButtonColor: UIColor(rgb: 0xd0d0d0), primaryTextColor: .black, backgroundColor: UIColor(red: 0.968626451, green: 0.968626451, blue: 0.968626451, alpha: 1.0), separatorColor: UIColor(red: 0.6953125, green: 0.6953125, blue: 0.6953125, alpha: 1.0), badgeBackgroundColor: .clear, badgeStrokeColor: .clear, badgeTextColor: .clear)
|
||||
public class GalleryController: ViewController {
|
||||
public static let darkNavigationTheme = NavigationBarTheme(buttonColor: .white, disabledButtonColor: UIColor(rgb: 0x525252), primaryTextColor: .white, backgroundColor: UIColor(white: 0.0, alpha: 0.6), separatorColor: UIColor(white: 0.0, alpha: 0.8), badgeBackgroundColor: .clear, badgeStrokeColor: .clear, badgeTextColor: .clear)
|
||||
public static let lightNavigationTheme = NavigationBarTheme(buttonColor: UIColor(rgb: 0x007ee5), disabledButtonColor: UIColor(rgb: 0xd0d0d0), primaryTextColor: .black, backgroundColor: UIColor(red: 0.968626451, green: 0.968626451, blue: 0.968626451, alpha: 1.0), separatorColor: UIColor(red: 0.6953125, green: 0.6953125, blue: 0.6953125, alpha: 1.0), badgeBackgroundColor: .clear, badgeStrokeColor: .clear, badgeTextColor: .clear)
|
||||
|
||||
private var galleryNode: GalleryControllerNode {
|
||||
return self.displayNode as! GalleryControllerNode
|
||||
|
|
@ -284,14 +287,14 @@ class GalleryController: ViewController {
|
|||
private let streamVideos: Bool
|
||||
|
||||
private let _ready = Promise<Bool>()
|
||||
override var ready: Promise<Bool> {
|
||||
override public var ready: Promise<Bool> {
|
||||
return self._ready
|
||||
}
|
||||
private var didSetReady = false
|
||||
|
||||
private var adjustedForInitialPreviewingLayout = false
|
||||
|
||||
var temporaryDoNotWaitForReady = false
|
||||
public var temporaryDoNotWaitForReady = false
|
||||
private let fromPlayingVideo: Bool
|
||||
private let landscape: Bool
|
||||
private let timecode: Double?
|
||||
|
|
@ -321,7 +324,7 @@ class GalleryController: ViewController {
|
|||
private var performAction: (GalleryControllerInteractionTapAction) -> Void
|
||||
private var openActionOptions: (GalleryControllerInteractionTapAction) -> Void
|
||||
|
||||
init(context: AccountContext, source: GalleryControllerItemSource, invertItemOrder: Bool = false, streamSingleVideo: Bool = false, fromPlayingVideo: Bool = false, landscape: Bool = false, timecode: Double? = nil, synchronousLoad: Bool = false, replaceRootController: @escaping (ViewController, ValuePromise<Bool>?) -> Void, baseNavigationController: NavigationController?, actionInteraction: GalleryControllerActionInteraction? = nil) {
|
||||
public init(context: AccountContext, source: GalleryControllerItemSource, invertItemOrder: Bool = false, streamSingleVideo: Bool = false, fromPlayingVideo: Bool = false, landscape: Bool = false, timecode: Double? = nil, synchronousLoad: Bool = false, replaceRootController: @escaping (ViewController, ValuePromise<Bool>?) -> Void, baseNavigationController: NavigationController?, actionInteraction: GalleryControllerActionInteraction? = nil) {
|
||||
self.context = context
|
||||
self.source = source
|
||||
self.replaceRootController = replaceRootController
|
||||
|
|
@ -746,7 +749,7 @@ class GalleryController: ViewController {
|
|||
}
|
||||
}
|
||||
|
||||
@objc func donePressed() {
|
||||
@objc private func donePressed() {
|
||||
self.dismiss(forceAway: false)
|
||||
}
|
||||
|
||||
|
|
@ -778,7 +781,7 @@ class GalleryController: ViewController {
|
|||
})
|
||||
}
|
||||
|
||||
override func loadDisplayNode() {
|
||||
override public func loadDisplayNode() {
|
||||
let controllerInteraction = GalleryControllerInteraction(presentController: { [weak self] controller, arguments in
|
||||
if let strongSelf = self {
|
||||
strongSelf.present(controller, in: .window(.root), with: arguments, blockInteraction: true)
|
||||
|
|
@ -896,11 +899,11 @@ class GalleryController: ViewController {
|
|||
}
|
||||
}
|
||||
|
||||
override func viewWillAppear(_ animated: Bool) {
|
||||
override public func viewWillAppear(_ animated: Bool) {
|
||||
super.viewWillAppear(animated)
|
||||
}
|
||||
|
||||
override func viewDidAppear(_ animated: Bool) {
|
||||
override public func viewDidAppear(_ animated: Bool) {
|
||||
super.viewDidAppear(animated)
|
||||
|
||||
var nodeAnimatesItself = false
|
||||
|
|
@ -939,13 +942,13 @@ class GalleryController: ViewController {
|
|||
self.accountInUseDisposable.set(self.context.sharedContext.setAccountUserInterfaceInUse(self.context.account.id))
|
||||
}
|
||||
|
||||
override func viewDidDisappear(_ animated: Bool) {
|
||||
override public func viewDidDisappear(_ animated: Bool) {
|
||||
super.viewDidDisappear(animated)
|
||||
|
||||
self.accountInUseDisposable.set(nil)
|
||||
}
|
||||
|
||||
override func containerLayoutUpdated(_ layout: ContainerViewLayout, transition: ContainedViewLayoutTransition) {
|
||||
override public func containerLayoutUpdated(_ layout: ContainerViewLayout, transition: ContainedViewLayoutTransition) {
|
||||
super.containerLayoutUpdated(layout, transition: transition)
|
||||
|
||||
self.galleryNode.frame = CGRect(origin: CGPoint(), size: layout.size)
|
||||
|
|
@ -5,30 +5,30 @@ import Display
|
|||
import Postbox
|
||||
import SwipeToDismissGesture
|
||||
|
||||
class GalleryControllerNode: ASDisplayNode, UIScrollViewDelegate, UIGestureRecognizerDelegate {
|
||||
var statusBar: StatusBar?
|
||||
var navigationBar: NavigationBar?
|
||||
let footerNode: GalleryFooterNode
|
||||
var currentThumbnailContainerNode: GalleryThumbnailContainerNode?
|
||||
var overlayNode: ASDisplayNode?
|
||||
var transitionDataForCentralItem: (() -> ((ASDisplayNode, () -> (UIView?, UIView?))?, (UIView) -> Void)?)?
|
||||
var dismiss: (() -> Void)?
|
||||
open class GalleryControllerNode: ASDisplayNode, UIScrollViewDelegate, UIGestureRecognizerDelegate {
|
||||
public var statusBar: StatusBar?
|
||||
public var navigationBar: NavigationBar?
|
||||
public let footerNode: GalleryFooterNode
|
||||
public var currentThumbnailContainerNode: GalleryThumbnailContainerNode?
|
||||
public var overlayNode: ASDisplayNode?
|
||||
public var transitionDataForCentralItem: (() -> ((ASDisplayNode, () -> (UIView?, UIView?))?, (UIView) -> Void)?)?
|
||||
public var dismiss: (() -> Void)?
|
||||
|
||||
var containerLayout: (CGFloat, ContainerViewLayout)?
|
||||
var backgroundNode: ASDisplayNode
|
||||
var scrollView: UIScrollView
|
||||
var pager: GalleryPagerNode
|
||||
public var containerLayout: (CGFloat, ContainerViewLayout)?
|
||||
public var backgroundNode: ASDisplayNode
|
||||
public var scrollView: UIScrollView
|
||||
public var pager: GalleryPagerNode
|
||||
|
||||
var beginCustomDismiss: () -> Void = { }
|
||||
var completeCustomDismiss: () -> Void = { }
|
||||
var baseNavigationController: () -> NavigationController? = { return nil }
|
||||
public var beginCustomDismiss: () -> Void = { }
|
||||
public var completeCustomDismiss: () -> Void = { }
|
||||
public var baseNavigationController: () -> NavigationController? = { return nil }
|
||||
|
||||
private var presentationState = GalleryControllerPresentationState()
|
||||
|
||||
private var isDismissed = false
|
||||
|
||||
var areControlsHidden = false
|
||||
var isBackgroundExtendedOverNavigationBar = true {
|
||||
public var areControlsHidden = false
|
||||
public var isBackgroundExtendedOverNavigationBar = true {
|
||||
didSet {
|
||||
if let (navigationBarHeight, layout) = self.containerLayout {
|
||||
self.backgroundNode.frame = CGRect(origin: CGPoint(x: 0.0, y: self.isBackgroundExtendedOverNavigationBar ? 0.0 : navigationBarHeight), size: CGSize(width: layout.size.width, height: layout.size.height - (self.isBackgroundExtendedOverNavigationBar ? 0.0 : navigationBarHeight)))
|
||||
|
|
@ -36,7 +36,7 @@ class GalleryControllerNode: ASDisplayNode, UIScrollViewDelegate, UIGestureRecog
|
|||
}
|
||||
}
|
||||
|
||||
init(controllerInteraction: GalleryControllerInteraction, pageGap: CGFloat = 20.0) {
|
||||
public init(controllerInteraction: GalleryControllerInteraction, pageGap: CGFloat = 20.0) {
|
||||
self.backgroundNode = ASDisplayNode()
|
||||
self.backgroundNode.backgroundColor = UIColor.black
|
||||
self.scrollView = UIScrollView()
|
||||
|
|
@ -216,7 +216,7 @@ class GalleryControllerNode: ASDisplayNode, UIScrollViewDelegate, UIGestureRecog
|
|||
}
|
||||
}
|
||||
|
||||
override func didLoad() {
|
||||
override open func didLoad() {
|
||||
super.didLoad()
|
||||
|
||||
if #available(iOSApplicationExtension 11.0, iOS 11.0, *), !self.isLayerBacked {
|
||||
|
|
@ -224,7 +224,7 @@ class GalleryControllerNode: ASDisplayNode, UIScrollViewDelegate, UIGestureRecog
|
|||
}
|
||||
}
|
||||
|
||||
func containerLayoutUpdated(_ layout: ContainerViewLayout, navigationBarHeight: CGFloat, transition: ContainedViewLayoutTransition) {
|
||||
open func containerLayoutUpdated(_ layout: ContainerViewLayout, navigationBarHeight: CGFloat, transition: ContainedViewLayoutTransition) {
|
||||
self.containerLayout = (navigationBarHeight, layout)
|
||||
|
||||
transition.updateFrame(node: self.backgroundNode, frame: CGRect(origin: CGPoint(x: 0.0, y: self.isBackgroundExtendedOverNavigationBar ? 0.0 : navigationBarHeight), size: CGSize(width: layout.size.width, height: layout.size.height - (self.isBackgroundExtendedOverNavigationBar ? 0.0 : navigationBarHeight))))
|
||||
|
|
@ -263,7 +263,7 @@ class GalleryControllerNode: ASDisplayNode, UIScrollViewDelegate, UIGestureRecog
|
|||
self.pager.containerLayoutUpdated(layout, navigationBarHeight: navigationBarHeight, transition: transition)
|
||||
}
|
||||
|
||||
func setControlsHidden(_ hidden: Bool, animated: Bool) {
|
||||
open func setControlsHidden(_ hidden: Bool, animated: Bool) {
|
||||
self.areControlsHidden = hidden
|
||||
if animated {
|
||||
UIView.animate(withDuration: 0.3, animations: {
|
||||
|
|
@ -282,14 +282,14 @@ class GalleryControllerNode: ASDisplayNode, UIScrollViewDelegate, UIGestureRecog
|
|||
}
|
||||
}
|
||||
|
||||
func updateThumbnailContainerNodeAlpha(_ transition: ContainedViewLayoutTransition) {
|
||||
open func updateThumbnailContainerNodeAlpha(_ transition: ContainedViewLayoutTransition) {
|
||||
if let currentThumbnailContainerNode = self.currentThumbnailContainerNode, let layout = self.containerLayout?.1 {
|
||||
let visible = layout.size.width < layout.size.height && !self.areControlsHidden
|
||||
transition.updateAlpha(node: currentThumbnailContainerNode, alpha: visible ? 1.0 : 0.0)
|
||||
}
|
||||
}
|
||||
|
||||
func animateIn(animateContent: Bool) {
|
||||
open func animateIn(animateContent: Bool) {
|
||||
self.backgroundNode.backgroundColor = self.backgroundNode.backgroundColor?.withAlphaComponent(0.0)
|
||||
self.statusBar?.alpha = 0.0
|
||||
self.navigationBar?.alpha = 0.0
|
||||
|
|
@ -311,7 +311,7 @@ class GalleryControllerNode: ASDisplayNode, UIScrollViewDelegate, UIGestureRecog
|
|||
}
|
||||
}
|
||||
|
||||
func animateOut(animateContent: Bool, completion: @escaping () -> Void) {
|
||||
open func animateOut(animateContent: Bool, completion: @escaping () -> Void) {
|
||||
self.isDismissed = true
|
||||
|
||||
self.pager.isScrollEnabled = false
|
||||
|
|
@ -349,13 +349,13 @@ class GalleryControllerNode: ASDisplayNode, UIScrollViewDelegate, UIGestureRecog
|
|||
}
|
||||
}
|
||||
|
||||
func updateDismissTransition(_ value: CGFloat) {
|
||||
open func updateDismissTransition(_ value: CGFloat) {
|
||||
}
|
||||
|
||||
func updateDistanceFromEquilibrium(_ value: CGFloat) {
|
||||
open func updateDistanceFromEquilibrium(_ value: CGFloat) {
|
||||
}
|
||||
|
||||
func scrollViewDidScroll(_ scrollView: UIScrollView) {
|
||||
open func scrollViewDidScroll(_ scrollView: UIScrollView) {
|
||||
if self.isDismissed {
|
||||
return
|
||||
}
|
||||
|
|
@ -385,7 +385,7 @@ class GalleryControllerNode: ASDisplayNode, UIScrollViewDelegate, UIGestureRecog
|
|||
}
|
||||
}
|
||||
|
||||
func scrollViewWillEndDragging(_ scrollView: UIScrollView, withVelocity velocity: CGPoint, targetContentOffset: UnsafeMutablePointer<CGPoint>) {
|
||||
open func scrollViewWillEndDragging(_ scrollView: UIScrollView, withVelocity velocity: CGPoint, targetContentOffset: UnsafeMutablePointer<CGPoint>) {
|
||||
targetContentOffset.pointee = scrollView.contentOffset
|
||||
|
||||
let distanceFromEquilibrium = scrollView.contentOffset.y - scrollView.contentSize.height / 3.0
|
||||
|
|
@ -433,14 +433,14 @@ class GalleryControllerNode: ASDisplayNode, UIScrollViewDelegate, UIGestureRecog
|
|||
}
|
||||
}
|
||||
|
||||
func updatePresentationState(_ f: (GalleryControllerPresentationState) -> GalleryControllerPresentationState, transition: ContainedViewLayoutTransition) {
|
||||
open func updatePresentationState(_ f: (GalleryControllerPresentationState) -> GalleryControllerPresentationState, transition: ContainedViewLayoutTransition) {
|
||||
self.presentationState = f(self.presentationState)
|
||||
if let (navigationBarHeight, layout) = self.containerLayout {
|
||||
self.containerLayoutUpdated(layout, navigationBarHeight: navigationBarHeight, transition: transition)
|
||||
}
|
||||
}
|
||||
|
||||
@objc func panGesture(_ recognizer: SwipeToDismissGestureRecognizer) {
|
||||
@objc private func panGesture(_ recognizer: SwipeToDismissGestureRecognizer) {
|
||||
switch recognizer.state {
|
||||
case .began:
|
||||
break
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
import Foundation
|
||||
|
||||
public final class GalleryControllerPresentationState {
|
||||
public let footerContentNode: GalleryFooterContentNode?
|
||||
|
||||
public init() {
|
||||
self.footerContentNode = nil
|
||||
}
|
||||
|
||||
public init(footerContentNode: GalleryFooterContentNode?) {
|
||||
self.footerContentNode = footerContentNode
|
||||
}
|
||||
|
||||
public func withUpdatedFooterContentNode(_ footerContentNode: GalleryFooterContentNode?) -> GalleryControllerPresentationState {
|
||||
return GalleryControllerPresentationState(footerContentNode: footerContentNode)
|
||||
}
|
||||
}
|
||||
33
submodules/GalleryUI/Sources/GalleryFooterContentNode.swift
Normal file
33
submodules/GalleryUI/Sources/GalleryFooterContentNode.swift
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
import Foundation
|
||||
import UIKit
|
||||
import AsyncDisplayKit
|
||||
import Display
|
||||
import SwiftSignalKit
|
||||
|
||||
public final class GalleryControllerInteraction {
|
||||
public let presentController: (ViewController, ViewControllerPresentationArguments?) -> Void
|
||||
public let dismissController: () -> Void
|
||||
public let replaceRootController: (ViewController, ValuePromise<Bool>?) -> Void
|
||||
|
||||
public init(presentController: @escaping (ViewController, ViewControllerPresentationArguments?) -> Void, dismissController: @escaping () -> Void, replaceRootController: @escaping (ViewController, ValuePromise<Bool>?) -> Void) {
|
||||
self.presentController = presentController
|
||||
self.dismissController = dismissController
|
||||
self.replaceRootController = replaceRootController
|
||||
}
|
||||
}
|
||||
|
||||
open class GalleryFooterContentNode: ASDisplayNode {
|
||||
public var requestLayout: ((ContainedViewLayoutTransition) -> Void)?
|
||||
public var controllerInteraction: GalleryControllerInteraction?
|
||||
|
||||
open func updateLayout(size: CGSize, metrics: LayoutMetrics, leftInset: CGFloat, rightInset: CGFloat, bottomInset: CGFloat, contentInset: CGFloat, transition: ContainedViewLayoutTransition) -> CGFloat {
|
||||
return 0.0
|
||||
}
|
||||
|
||||
open func animateIn(fromHeight: CGFloat, previousContentNode: GalleryFooterContentNode, transition: ContainedViewLayoutTransition) {
|
||||
}
|
||||
|
||||
open func animateOut(toHeight: CGFloat, nextContentNode: GalleryFooterContentNode, transition: ContainedViewLayoutTransition, completion: @escaping () -> Void) {
|
||||
completion()
|
||||
}
|
||||
}
|
||||
|
|
@ -3,7 +3,7 @@ import UIKit
|
|||
import AsyncDisplayKit
|
||||
import Display
|
||||
|
||||
final class GalleryFooterNode: ASDisplayNode {
|
||||
public final class GalleryFooterNode: ASDisplayNode {
|
||||
private let backgroundNode: ASDisplayNode
|
||||
|
||||
private var currentFooterContentNode: GalleryFooterContentNode?
|
||||
|
|
@ -11,7 +11,7 @@ final class GalleryFooterNode: ASDisplayNode {
|
|||
|
||||
private let controllerInteraction: GalleryControllerInteraction
|
||||
|
||||
init(controllerInteraction: GalleryControllerInteraction) {
|
||||
public init(controllerInteraction: GalleryControllerInteraction) {
|
||||
self.controllerInteraction = controllerInteraction
|
||||
|
||||
self.backgroundNode = ASDisplayNode()
|
||||
|
|
@ -22,7 +22,7 @@ final class GalleryFooterNode: ASDisplayNode {
|
|||
self.addSubnode(self.backgroundNode)
|
||||
}
|
||||
|
||||
func updateLayout(_ layout: ContainerViewLayout, footerContentNode: GalleryFooterContentNode?, thumbnailPanelHeight: CGFloat, transition: ContainedViewLayoutTransition) {
|
||||
public func updateLayout(_ layout: ContainerViewLayout, footerContentNode: GalleryFooterContentNode?, thumbnailPanelHeight: CGFloat, transition: ContainedViewLayoutTransition) {
|
||||
self.currentLayout = (layout, thumbnailPanelHeight)
|
||||
let cleanInsets = layout.insets(options: [])
|
||||
|
||||
|
|
@ -69,7 +69,7 @@ final class GalleryFooterNode: ASDisplayNode {
|
|||
}
|
||||
}
|
||||
|
||||
override func hitTest(_ point: CGPoint, with event: UIEvent?) -> UIView? {
|
||||
override public func hitTest(_ point: CGPoint, with event: UIEvent?) -> UIView? {
|
||||
if !self.backgroundNode.frame.contains(point) {
|
||||
return nil
|
||||
}
|
||||
27
submodules/GalleryUI/Sources/GalleryItem.swift
Normal file
27
submodules/GalleryUI/Sources/GalleryItem.swift
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
import Foundation
|
||||
|
||||
public struct GalleryItemOriginData: Equatable {
|
||||
public var title: String?
|
||||
public var timestamp: Int32?
|
||||
|
||||
public init(title: String?, timestamp: Int32?) {
|
||||
self.title = title
|
||||
self.timestamp = timestamp
|
||||
}
|
||||
}
|
||||
|
||||
public struct GalleryItemIndexData: Equatable {
|
||||
public var position: Int32
|
||||
public var totalCount: Int32
|
||||
|
||||
public init(position: Int32, totalCount: Int32) {
|
||||
self.position = position
|
||||
self.totalCount = totalCount
|
||||
}
|
||||
}
|
||||
|
||||
public protocol GalleryItem {
|
||||
func node() -> GalleryItemNode
|
||||
func updateNode(node: GalleryItemNode)
|
||||
func thumbnailItem() -> (Int64, GalleryThumbnailItem)?
|
||||
}
|
||||
|
|
@ -12,7 +12,7 @@ public enum GalleryItemNodeNavigationStyle {
|
|||
|
||||
open class GalleryItemNode: ASDisplayNode {
|
||||
private var _index: Int?
|
||||
var index: Int {
|
||||
public var index: Int {
|
||||
get {
|
||||
return self._index!
|
||||
} set(value) {
|
||||
|
|
@ -20,13 +20,13 @@ open class GalleryItemNode: ASDisplayNode {
|
|||
}
|
||||
}
|
||||
|
||||
var toggleControlsVisibility: () -> Void = { }
|
||||
var dismiss: () -> Void = { }
|
||||
var beginCustomDismiss: () -> Void = { }
|
||||
var completeCustomDismiss: () -> Void = { }
|
||||
var baseNavigationController: () -> NavigationController? = { return nil }
|
||||
public var toggleControlsVisibility: () -> Void = { }
|
||||
public var dismiss: () -> Void = { }
|
||||
public var beginCustomDismiss: () -> Void = { }
|
||||
public var completeCustomDismiss: () -> Void = { }
|
||||
public var baseNavigationController: () -> NavigationController? = { return nil }
|
||||
|
||||
override init() {
|
||||
override public init() {
|
||||
super.init()
|
||||
|
||||
self.setViewBlock({
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
import Foundation
|
||||
import AccountContext
|
||||
|
||||
public protocol GalleryItemTransitionNode: class {
|
||||
func isAvailableForGalleryTransition() -> Bool
|
||||
var decoration: UniversalVideoDecoration? { get }
|
||||
}
|
||||
|
|
@ -5,10 +5,10 @@ import Display
|
|||
import TelegramPresentationData
|
||||
import CheckNode
|
||||
|
||||
final class GalleryNavigationCheckNode: ASDisplayNode, NavigationButtonCustomDisplayNode {
|
||||
public final class GalleryNavigationCheckNode: ASDisplayNode, NavigationButtonCustomDisplayNode {
|
||||
private var checkNode: CheckNode
|
||||
|
||||
init(theme: PresentationTheme) {
|
||||
public init(theme: PresentationTheme) {
|
||||
self.checkNode = CheckNode(strokeColor: theme.list.itemCheckColors.strokeColor, fillColor: theme.list.itemCheckColors.fillColor, foregroundColor: theme.list.itemCheckColors.foregroundColor, style: .navigation)
|
||||
|
||||
super.init()
|
||||
|
|
@ -16,27 +16,27 @@ final class GalleryNavigationCheckNode: ASDisplayNode, NavigationButtonCustomDis
|
|||
self.addSubnode(self.checkNode)
|
||||
}
|
||||
|
||||
var isHighlightable: Bool {
|
||||
public var isHighlightable: Bool {
|
||||
return false
|
||||
}
|
||||
|
||||
var isChecked: Bool {
|
||||
public var isChecked: Bool {
|
||||
return self.checkNode.isChecked
|
||||
}
|
||||
|
||||
func setIsChecked(_ isChecked: Bool, animated: Bool) {
|
||||
public func setIsChecked(_ isChecked: Bool, animated: Bool) {
|
||||
self.checkNode.setIsChecked(isChecked, animated: animated)
|
||||
}
|
||||
|
||||
func addTarget(target: AnyObject?, action: Selector) {
|
||||
public func addTarget(target: AnyObject?, action: Selector) {
|
||||
self.checkNode.addTarget(target: target, action: action)
|
||||
}
|
||||
|
||||
override func calculateSizeThatFits(_ constrainedSize: CGSize) -> CGSize {
|
||||
override public func calculateSizeThatFits(_ constrainedSize: CGSize) -> CGSize {
|
||||
return CGSize(width: 39.0, height: 39.0)
|
||||
}
|
||||
|
||||
override func layout() {
|
||||
override public func layout() {
|
||||
super.layout()
|
||||
|
||||
let size = self.bounds.size
|
||||
|
|
@ -4,11 +4,11 @@ import AsyncDisplayKit
|
|||
import Display
|
||||
import LegacyComponents
|
||||
|
||||
final class GalleryNavigationRecipientNode: ASDisplayNode, NavigationButtonCustomDisplayNode {
|
||||
public final class GalleryNavigationRecipientNode: ASDisplayNode, NavigationButtonCustomDisplayNode {
|
||||
private var iconNode: ASImageNode
|
||||
private var textNode: ImmediateTextNode
|
||||
|
||||
init(color: UIColor, title: String) {
|
||||
public init(color: UIColor, title: String) {
|
||||
self.iconNode = ASImageNode()
|
||||
self.iconNode.alpha = 0.45
|
||||
self.iconNode.image = TGComponentsImageNamed("PhotoPickerArrow")
|
||||
|
|
@ -28,16 +28,16 @@ final class GalleryNavigationRecipientNode: ASDisplayNode, NavigationButtonCusto
|
|||
}
|
||||
}
|
||||
|
||||
var isHighlightable: Bool {
|
||||
public var isHighlightable: Bool {
|
||||
return false
|
||||
}
|
||||
|
||||
override func calculateSizeThatFits(_ constrainedSize: CGSize) -> CGSize {
|
||||
override public func calculateSizeThatFits(_ constrainedSize: CGSize) -> CGSize {
|
||||
let textSize = self.textNode.updateLayout(CGSize(width: constrainedSize.width - 50.0, height: constrainedSize.height))
|
||||
return CGSize(width: textSize.width + 12.0, height: 30.0)
|
||||
}
|
||||
|
||||
override func layout() {
|
||||
override public func layout() {
|
||||
super.layout()
|
||||
|
||||
if let image = self.iconNode.image {
|
||||
|
|
@ -5,7 +5,7 @@ import Display
|
|||
import SwiftSignalKit
|
||||
import Postbox
|
||||
|
||||
struct GalleryPagerInsertItem {
|
||||
public struct GalleryPagerInsertItem {
|
||||
public let index: Int
|
||||
public let item: GalleryItem
|
||||
public let previousIndex: Int?
|
||||
|
|
@ -17,31 +17,38 @@ struct GalleryPagerInsertItem {
|
|||
}
|
||||
}
|
||||
|
||||
struct GalleryPagerUpdateItem {
|
||||
let index: Int
|
||||
let previousIndex: Int
|
||||
let item: GalleryItem
|
||||
public struct GalleryPagerUpdateItem {
|
||||
public let index: Int
|
||||
public let previousIndex: Int
|
||||
public let item: GalleryItem
|
||||
|
||||
init(index: Int, previousIndex: Int, item: GalleryItem) {
|
||||
public init(index: Int, previousIndex: Int, item: GalleryItem) {
|
||||
self.index = index
|
||||
self.previousIndex = previousIndex
|
||||
self.item = item
|
||||
}
|
||||
}
|
||||
|
||||
struct GalleryPagerTransaction {
|
||||
let deleteItems: [Int]
|
||||
let insertItems: [GalleryPagerInsertItem]
|
||||
let updateItems: [GalleryPagerUpdateItem]
|
||||
let focusOnItem: Int?
|
||||
public struct GalleryPagerTransaction {
|
||||
public let deleteItems: [Int]
|
||||
public let insertItems: [GalleryPagerInsertItem]
|
||||
public let updateItems: [GalleryPagerUpdateItem]
|
||||
public let focusOnItem: Int?
|
||||
|
||||
public init(deleteItems: [Int], insertItems: [GalleryPagerInsertItem], updateItems: [GalleryPagerUpdateItem], focusOnItem: Int?) {
|
||||
self.deleteItems = deleteItems
|
||||
self.insertItems = insertItems
|
||||
self.updateItems = updateItems
|
||||
self.focusOnItem = focusOnItem
|
||||
}
|
||||
}
|
||||
|
||||
final class GalleryPagerNode: ASDisplayNode, UIScrollViewDelegate {
|
||||
public final class GalleryPagerNode: ASDisplayNode, UIScrollViewDelegate {
|
||||
private let pageGap: CGFloat
|
||||
|
||||
private let scrollView: UIScrollView
|
||||
|
||||
private(set) var items: [GalleryItem] = []
|
||||
public private(set) var items: [GalleryItem] = []
|
||||
private var itemNodes: [GalleryItemNode] = []
|
||||
private var ignoreDidScroll = false
|
||||
private var ignoreCentralItemIndexUpdate = false
|
||||
|
|
@ -55,16 +62,16 @@ final class GalleryPagerNode: ASDisplayNode, UIScrollViewDelegate {
|
|||
|
||||
private var containerLayout: (ContainerViewLayout, CGFloat)?
|
||||
|
||||
var centralItemIndexUpdated: (Int?) -> Void = { _ in }
|
||||
public var centralItemIndexUpdated: (Int?) -> Void = { _ in }
|
||||
private var invalidatedItems = false
|
||||
var centralItemIndexOffsetUpdated: (([GalleryItem]?, Int, CGFloat)?) -> Void = { _ in }
|
||||
var toggleControlsVisibility: () -> Void = { }
|
||||
var dismiss: () -> Void = { }
|
||||
var beginCustomDismiss: () -> Void = { }
|
||||
var completeCustomDismiss: () -> Void = { }
|
||||
var baseNavigationController: () -> NavigationController? = { return nil }
|
||||
public var centralItemIndexOffsetUpdated: (([GalleryItem]?, Int, CGFloat)?) -> Void = { _ in }
|
||||
public var toggleControlsVisibility: () -> Void = { }
|
||||
public var dismiss: () -> Void = { }
|
||||
public var beginCustomDismiss: () -> Void = { }
|
||||
public var completeCustomDismiss: () -> Void = { }
|
||||
public var baseNavigationController: () -> NavigationController? = { return nil }
|
||||
|
||||
init(pageGap: CGFloat) {
|
||||
public init(pageGap: CGFloat) {
|
||||
self.pageGap = pageGap
|
||||
self.scrollView = UIScrollView()
|
||||
if #available(iOSApplicationExtension 11.0, iOS 11.0, *) {
|
||||
|
|
@ -85,7 +92,7 @@ final class GalleryPagerNode: ASDisplayNode, UIScrollViewDelegate {
|
|||
self.view.addSubview(self.scrollView)
|
||||
}
|
||||
|
||||
var isScrollEnabled: Bool {
|
||||
public var isScrollEnabled: Bool {
|
||||
get {
|
||||
return self.scrollView.isScrollEnabled
|
||||
}
|
||||
|
|
@ -94,7 +101,7 @@ final class GalleryPagerNode: ASDisplayNode, UIScrollViewDelegate {
|
|||
}
|
||||
}
|
||||
|
||||
func containerLayoutUpdated(_ layout: ContainerViewLayout, navigationBarHeight: CGFloat, transition: ContainedViewLayoutTransition) {
|
||||
public func containerLayoutUpdated(_ layout: ContainerViewLayout, navigationBarHeight: CGFloat, transition: ContainedViewLayoutTransition) {
|
||||
self.containerLayout = (layout, navigationBarHeight)
|
||||
|
||||
var centralPoint: CGPoint?
|
||||
|
|
@ -129,14 +136,14 @@ final class GalleryPagerNode: ASDisplayNode, UIScrollViewDelegate {
|
|||
}
|
||||
}
|
||||
|
||||
func ready() -> Signal<Void, NoError> {
|
||||
public func ready() -> Signal<Void, NoError> {
|
||||
if let itemNode = self.centralItemNode() {
|
||||
return itemNode.ready()
|
||||
}
|
||||
return .single(Void())
|
||||
}
|
||||
|
||||
func centralItemNode() -> GalleryItemNode? {
|
||||
public func centralItemNode() -> GalleryItemNode? {
|
||||
if let centralItemIndex = self.centralItemIndex, let centralItemNode = self.visibleItemNode(at: centralItemIndex) {
|
||||
return centralItemNode
|
||||
} else {
|
||||
|
|
@ -144,7 +151,7 @@ final class GalleryPagerNode: ASDisplayNode, UIScrollViewDelegate {
|
|||
}
|
||||
}
|
||||
|
||||
func replaceItems(_ items: [GalleryItem], centralItemIndex: Int?, keepFirst: Bool = false) {
|
||||
public func replaceItems(_ items: [GalleryItem], centralItemIndex: Int?, keepFirst: Bool = false) {
|
||||
var updateItems: [GalleryPagerUpdateItem] = []
|
||||
let deleteItems: [Int] = []
|
||||
var insertItems: [GalleryPagerInsertItem] = []
|
||||
|
|
@ -158,7 +165,7 @@ final class GalleryPagerNode: ASDisplayNode, UIScrollViewDelegate {
|
|||
self.transaction(GalleryPagerTransaction(deleteItems: deleteItems, insertItems: insertItems, updateItems: updateItems, focusOnItem: centralItemIndex))
|
||||
}
|
||||
|
||||
func transaction(_ transaction: GalleryPagerTransaction) {
|
||||
public func transaction(_ transaction: GalleryPagerTransaction) {
|
||||
for updatedItem in transaction.updateItems {
|
||||
self.items[updatedItem.previousIndex] = updatedItem.item
|
||||
if let itemNode = self.visibleItemNode(at: updatedItem.previousIndex) {
|
||||
|
|
@ -397,23 +404,23 @@ final class GalleryPagerNode: ASDisplayNode, UIScrollViewDelegate {
|
|||
self.updateCentralIndexOffset(transition: .immediate)
|
||||
}
|
||||
|
||||
func scrollViewDidScroll(_ scrollView: UIScrollView) {
|
||||
public func scrollViewDidScroll(_ scrollView: UIScrollView) {
|
||||
if !self.ignoreDidScroll {
|
||||
self.updateItemNodes(transition: .immediate)
|
||||
}
|
||||
}
|
||||
|
||||
func scrollViewDidEndDragging(_ scrollView: UIScrollView, willDecelerate decelerate: Bool) {
|
||||
public func scrollViewDidEndDragging(_ scrollView: UIScrollView, willDecelerate decelerate: Bool) {
|
||||
if !decelerate {
|
||||
self.ensureItemsLoaded(force: false)
|
||||
}
|
||||
}
|
||||
|
||||
func scrollViewWillBeginDragging(_ scrollView: UIScrollView) {
|
||||
public func scrollViewWillBeginDragging(_ scrollView: UIScrollView) {
|
||||
self.ensureItemsLoaded(force: true)
|
||||
}
|
||||
|
||||
func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {
|
||||
public func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {
|
||||
self.ensureItemsLoaded(force: true)
|
||||
}
|
||||
|
||||
|
|
@ -8,7 +8,7 @@ private let itemBaseSize = CGSize(width: 23.0, height: 42.0)
|
|||
private let spacing: CGFloat = 2.0
|
||||
private let maxWidth: CGFloat = 75.0
|
||||
|
||||
protocol GalleryThumbnailItem {
|
||||
public protocol GalleryThumbnailItem {
|
||||
func isEqual(to: GalleryThumbnailItem) -> Bool
|
||||
var image: (Signal<(TransformImageArguments) -> DrawingContext?, NoError>, CGSize) { get }
|
||||
}
|
||||
|
|
@ -48,12 +48,12 @@ private final class GalleryThumbnailItemNode: ASDisplayNode {
|
|||
}
|
||||
}
|
||||
|
||||
final class GalleryThumbnailContainerNode: ASDisplayNode, UIScrollViewDelegate {
|
||||
let groupId: Int64
|
||||
public final class GalleryThumbnailContainerNode: ASDisplayNode, UIScrollViewDelegate {
|
||||
public let groupId: Int64
|
||||
private let scrollNode: ASScrollNode
|
||||
|
||||
private(set) var items: [GalleryThumbnailItem] = []
|
||||
private(set) var indexes: [Int] = []
|
||||
public private(set) var items: [GalleryThumbnailItem] = []
|
||||
public private(set) var indexes: [Int] = []
|
||||
private var itemNodes: [GalleryThumbnailItemNode] = []
|
||||
private var centralIndexAndProgress: (Int, CGFloat?)?
|
||||
private var currentLayout: CGSize?
|
||||
|
|
@ -62,7 +62,7 @@ final class GalleryThumbnailContainerNode: ASDisplayNode, UIScrollViewDelegate {
|
|||
|
||||
public var itemChanged: ((Int) -> Void)?
|
||||
|
||||
init(groupId: Int64) {
|
||||
public init(groupId: Int64) {
|
||||
self.groupId = groupId
|
||||
self.scrollNode = ASScrollNode()
|
||||
|
||||
|
|
@ -86,7 +86,7 @@ final class GalleryThumbnailContainerNode: ASDisplayNode, UIScrollViewDelegate {
|
|||
}
|
||||
}
|
||||
|
||||
func updateItems(_ items: [GalleryThumbnailItem], indexes: [Int], centralIndex: Int, progress: CGFloat) {
|
||||
public func updateItems(_ items: [GalleryThumbnailItem], indexes: [Int], centralIndex: Int, progress: CGFloat) {
|
||||
self.indexes = indexes
|
||||
var items: [GalleryThumbnailItem] = items.count <= 1 ? [] : items
|
||||
var updated = false
|
||||
|
|
@ -103,7 +103,7 @@ final class GalleryThumbnailContainerNode: ASDisplayNode, UIScrollViewDelegate {
|
|||
if updated {
|
||||
var itemNodes: [GalleryThumbnailItemNode] = []
|
||||
for item in items {
|
||||
if let index = self.items.index(where: { $0.isEqual(to: item) }) {
|
||||
if let index = self.items.firstIndex(where: { $0.isEqual(to: item) }) {
|
||||
itemNodes.append(self.itemNodes[index])
|
||||
} else {
|
||||
itemNodes.append(GalleryThumbnailItemNode(item: item))
|
||||
|
|
@ -129,14 +129,14 @@ final class GalleryThumbnailContainerNode: ASDisplayNode, UIScrollViewDelegate {
|
|||
}
|
||||
}
|
||||
|
||||
func updateCentralIndexAndProgress(centralIndex: Int, progress: CGFloat, transition: ContainedViewLayoutTransition = .immediate) {
|
||||
public func updateCentralIndexAndProgress(centralIndex: Int, progress: CGFloat, transition: ContainedViewLayoutTransition = .immediate) {
|
||||
self.centralIndexAndProgress = (centralIndex, progress)
|
||||
if let size = self.currentLayout {
|
||||
self.updateLayout(size: size, transition: transition)
|
||||
}
|
||||
}
|
||||
|
||||
func updateLayout(size: CGSize, transition: ContainedViewLayoutTransition) {
|
||||
public func updateLayout(size: CGSize, transition: ContainedViewLayoutTransition) {
|
||||
self.currentLayout = size
|
||||
if let (centralIndex, progress) = self.centralIndexAndProgress {
|
||||
self.updateLayout(size: size, centralIndex: centralIndex, progress: progress, transition: transition)
|
||||
|
|
@ -148,7 +148,7 @@ final class GalleryThumbnailContainerNode: ASDisplayNode, UIScrollViewDelegate {
|
|||
return CGPoint(x: -contentInset.left + (CGFloat(index) + progress) * (itemBaseSize.width + spacing), y: 0.0)
|
||||
}
|
||||
|
||||
func updateLayout(size: CGSize, centralIndex: Int, progress: CGFloat?, transition: ContainedViewLayoutTransition) {
|
||||
public func updateLayout(size: CGSize, centralIndex: Int, progress: CGFloat?, transition: ContainedViewLayoutTransition) {
|
||||
self.currentLayout = size
|
||||
self.scrollNode.frame = CGRect(origin: CGPoint(), size: size)
|
||||
let centralSpacing: CGFloat = 8.0
|
||||
|
|
@ -231,7 +231,7 @@ final class GalleryThumbnailContainerNode: ASDisplayNode, UIScrollViewDelegate {
|
|||
}
|
||||
}
|
||||
|
||||
func animateOut(toRight: Bool) {
|
||||
public func animateOut(toRight: Bool) {
|
||||
let collection = toRight ? self.itemNodes : self.itemNodes.reversed()
|
||||
let offset: CGFloat = toRight ? -15.0 : 15.0
|
||||
var delay: Double = 0.0
|
||||
|
|
@ -242,7 +242,7 @@ final class GalleryThumbnailContainerNode: ASDisplayNode, UIScrollViewDelegate {
|
|||
}
|
||||
}
|
||||
|
||||
func scrollViewDidScroll(_ scrollView: UIScrollView) {
|
||||
public func scrollViewDidScroll(_ scrollView: UIScrollView) {
|
||||
guard let currentLayout = self.currentLayout else {
|
||||
return
|
||||
}
|
||||
|
|
@ -267,7 +267,7 @@ final class GalleryThumbnailContainerNode: ASDisplayNode, UIScrollViewDelegate {
|
|||
}
|
||||
}
|
||||
|
||||
func scrollViewDidEndDragging(_ scrollView: UIScrollView, willDecelerate decelerate: Bool) {
|
||||
public func scrollViewDidEndDragging(_ scrollView: UIScrollView, willDecelerate decelerate: Bool) {
|
||||
guard let currentLayout = self.currentLayout else {
|
||||
return
|
||||
}
|
||||
|
|
@ -283,7 +283,7 @@ final class GalleryThumbnailContainerNode: ASDisplayNode, UIScrollViewDelegate {
|
|||
}
|
||||
}
|
||||
|
||||
func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {
|
||||
public func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {
|
||||
guard let currentLayout = self.currentLayout, !scrollView.isTracking else {
|
||||
return
|
||||
}
|
||||
19
submodules/GalleryUI/Sources/GalleryUI.h
Normal file
19
submodules/GalleryUI/Sources/GalleryUI.h
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
//
|
||||
// GalleryUI.h
|
||||
// GalleryUI
|
||||
//
|
||||
// Created by Peter on 8/11/19.
|
||||
// Copyright © 2019 Telegram Messenger LLP. All rights reserved.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
//! Project version number for GalleryUI.
|
||||
FOUNDATION_EXPORT double GalleryUIVersionNumber;
|
||||
|
||||
//! Project version string for GalleryUI.
|
||||
FOUNDATION_EXPORT const unsigned char GalleryUIVersionString[];
|
||||
|
||||
// In this header, you should import all the public headers of your framework using statements like #import <GalleryUI/PublicHeader.h>
|
||||
|
||||
|
||||
|
|
@ -7,20 +7,20 @@ import UniversalMediaPlayer
|
|||
import AccountContext
|
||||
import PhotoResources
|
||||
|
||||
final class GalleryVideoDecoration: UniversalVideoDecoration {
|
||||
let backgroundNode: ASDisplayNode? = nil
|
||||
let contentContainerNode: ASDisplayNode
|
||||
let foregroundNode: ASDisplayNode? = nil
|
||||
public final class GalleryVideoDecoration: UniversalVideoDecoration {
|
||||
public let backgroundNode: ASDisplayNode? = nil
|
||||
public let contentContainerNode: ASDisplayNode
|
||||
public let foregroundNode: ASDisplayNode? = nil
|
||||
|
||||
private var contentNode: (ASDisplayNode & UniversalVideoContentNode)?
|
||||
|
||||
private var validLayoutSize: CGSize?
|
||||
|
||||
init() {
|
||||
public init() {
|
||||
self.contentContainerNode = ASDisplayNode()
|
||||
}
|
||||
|
||||
func updateContentNode(_ contentNode: (UniversalVideoContentNode & ASDisplayNode)?) {
|
||||
public func updateContentNode(_ contentNode: (UniversalVideoContentNode & ASDisplayNode)?) {
|
||||
if self.contentNode !== contentNode {
|
||||
let previous = self.contentNode
|
||||
self.contentNode = contentNode
|
||||
|
|
@ -43,7 +43,7 @@ final class GalleryVideoDecoration: UniversalVideoDecoration {
|
|||
}
|
||||
}
|
||||
|
||||
func updateCorners(_ corners: ImageCorners) {
|
||||
public func updateCorners(_ corners: ImageCorners) {
|
||||
self.contentContainerNode.clipsToBounds = true
|
||||
if isRoundEqualCorners(corners) {
|
||||
self.contentContainerNode.cornerRadius = corners.topLeft.radius
|
||||
|
|
@ -70,7 +70,7 @@ final class GalleryVideoDecoration: UniversalVideoDecoration {
|
|||
}
|
||||
}
|
||||
|
||||
func updateClippingFrame(_ frame: CGRect, completion: (() -> Void)?) {
|
||||
public func updateClippingFrame(_ frame: CGRect, completion: (() -> Void)?) {
|
||||
self.contentContainerNode.layer.animate(from: NSValue(cgRect: self.contentContainerNode.bounds), to: NSValue(cgRect: frame), keyPath: "bounds", timingFunction: kCAMediaTimingFunctionSpring, duration: 0.25, removeOnCompletion: false, completion: { _ in
|
||||
})
|
||||
|
||||
|
|
@ -89,10 +89,10 @@ final class GalleryVideoDecoration: UniversalVideoDecoration {
|
|||
}
|
||||
}
|
||||
|
||||
func updateContentNodeSnapshot(_ snapshot: UIView?) {
|
||||
public func updateContentNodeSnapshot(_ snapshot: UIView?) {
|
||||
}
|
||||
|
||||
func updateLayout(size: CGSize, transition: ContainedViewLayoutTransition) {
|
||||
public func updateLayout(size: CGSize, transition: ContainedViewLayoutTransition) {
|
||||
self.validLayoutSize = size
|
||||
|
||||
let bounds = CGRect(origin: CGPoint(), size: size)
|
||||
|
|
@ -112,9 +112,9 @@ final class GalleryVideoDecoration: UniversalVideoDecoration {
|
|||
}
|
||||
}
|
||||
|
||||
func setStatus(_ status: Signal<MediaPlayerStatus?, NoError>) {
|
||||
public func setStatus(_ status: Signal<MediaPlayerStatus?, NoError>) {
|
||||
}
|
||||
|
||||
func tap() {
|
||||
public func tap() {
|
||||
}
|
||||
}
|
||||
|
|
@ -9,13 +9,14 @@ import TelegramPresentationData
|
|||
import UniversalMediaPlayer
|
||||
import AccountContext
|
||||
import RadialStatusNode
|
||||
import TelegramUniversalVideoContent
|
||||
|
||||
enum UniversalVideoGalleryItemContentInfo {
|
||||
public enum UniversalVideoGalleryItemContentInfo {
|
||||
case message(Message)
|
||||
case webPage(TelegramMediaWebpage, Media)
|
||||
}
|
||||
|
||||
class UniversalVideoGalleryItem: GalleryItem {
|
||||
public class UniversalVideoGalleryItem: GalleryItem {
|
||||
let context: AccountContext
|
||||
let presentationData: PresentationData
|
||||
let content: UniversalVideoContent
|
||||
|
|
@ -32,7 +33,7 @@ class UniversalVideoGalleryItem: GalleryItem {
|
|||
let performAction: (GalleryControllerInteractionTapAction) -> Void
|
||||
let openActionOptions: (GalleryControllerInteractionTapAction) -> Void
|
||||
|
||||
init(context: AccountContext, presentationData: PresentationData, content: UniversalVideoContent, originData: GalleryItemOriginData?, indexData: GalleryItemIndexData?, contentInfo: UniversalVideoGalleryItemContentInfo?, caption: NSAttributedString, credit: NSAttributedString? = nil, hideControls: Bool = false, fromPlayingVideo: Bool = false, landscape: Bool = false, timecode: Double? = nil, playbackCompleted: @escaping () -> Void = {}, performAction: @escaping (GalleryControllerInteractionTapAction) -> Void, openActionOptions: @escaping (GalleryControllerInteractionTapAction) -> Void) {
|
||||
public init(context: AccountContext, presentationData: PresentationData, content: UniversalVideoContent, originData: GalleryItemOriginData?, indexData: GalleryItemIndexData?, contentInfo: UniversalVideoGalleryItemContentInfo?, caption: NSAttributedString, credit: NSAttributedString? = nil, hideControls: Bool = false, fromPlayingVideo: Bool = false, landscape: Bool = false, timecode: Double? = nil, playbackCompleted: @escaping () -> Void = {}, performAction: @escaping (GalleryControllerInteractionTapAction) -> Void, openActionOptions: @escaping (GalleryControllerInteractionTapAction) -> Void) {
|
||||
self.context = context
|
||||
self.presentationData = presentationData
|
||||
self.content = content
|
||||
|
|
@ -50,7 +51,7 @@ class UniversalVideoGalleryItem: GalleryItem {
|
|||
self.openActionOptions = openActionOptions
|
||||
}
|
||||
|
||||
func node() -> GalleryItemNode {
|
||||
public func node() -> GalleryItemNode {
|
||||
let node = UniversalVideoGalleryItemNode(context: self.context, presentationData: self.presentationData, performAction: self.performAction, openActionOptions: self.openActionOptions)
|
||||
|
||||
if let indexData = self.indexData {
|
||||
|
|
@ -62,7 +63,7 @@ class UniversalVideoGalleryItem: GalleryItem {
|
|||
return node
|
||||
}
|
||||
|
||||
func updateNode(node: GalleryItemNode) {
|
||||
public func updateNode(node: GalleryItemNode) {
|
||||
if let node = node as? UniversalVideoGalleryItemNode {
|
||||
if let indexData = self.indexData {
|
||||
node._title.set(.single("\(indexData.position + 1) \(self.presentationData.strings.Common_of) \(indexData.totalCount)"))
|
||||
|
|
@ -72,7 +73,7 @@ class UniversalVideoGalleryItem: GalleryItem {
|
|||
}
|
||||
}
|
||||
|
||||
func thumbnailItem() -> (Int64, GalleryThumbnailItem)? {
|
||||
public func thumbnailItem() -> (Int64, GalleryThumbnailItem)? {
|
||||
guard let contentInfo = self.contentInfo else {
|
||||
return nil
|
||||
}
|
||||
|
|
@ -879,7 +880,7 @@ final class UniversalVideoGalleryItemNode: ZoomableContentGalleryItemNode {
|
|||
let fromTransform: CATransform3D
|
||||
let toTransform: CATransform3D
|
||||
|
||||
if let interactiveMediaNode = node.0 as? ChatMessageInteractiveMediaNode, interactiveMediaNode.automaticPlayback ?? false, videoNode.hasAttachedContext {
|
||||
if let interactiveMediaNode = node.0 as? GalleryItemTransitionNode, interactiveMediaNode.isAvailableForGalleryTransition(), videoNode.hasAttachedContext {
|
||||
copyView.removeFromSuperview()
|
||||
|
||||
let previousFrame = videoNode.frame
|
||||
|
|
@ -896,7 +897,7 @@ final class UniversalVideoGalleryItemNode: ZoomableContentGalleryItemNode {
|
|||
let targetScale = max(transformedFrame.size.width / videoNode.layer.bounds.size.width, transformedFrame.size.height / videoNode.layer.bounds.size.height)
|
||||
|
||||
videoNode.backgroundColor = .clear
|
||||
if let bubbleDecoration = interactiveMediaNode.videoNodeDecoration, let decoration = videoNode.decoration as? GalleryVideoDecoration {
|
||||
if let bubbleDecoration = interactiveMediaNode.decoration as? ChatBubbleVideoDecoration, let decoration = videoNode.decoration as? GalleryVideoDecoration {
|
||||
transformedSuperFrame = transformedSuperFrame.offsetBy(dx: bubbleDecoration.corners.extendedEdges.right / 2.0 - bubbleDecoration.corners.extendedEdges.left / 2.0, dy: 0.0)
|
||||
if let item = self.item {
|
||||
let size = item.content.dimensions.aspectFilled(bubbleDecoration.contentContainerNode.frame.size)
|
||||
|
|
@ -921,7 +922,7 @@ final class UniversalVideoGalleryItemNode: ZoomableContentGalleryItemNode {
|
|||
videoNode.continuePlayingWithoutSound()
|
||||
}
|
||||
}
|
||||
} else if let _ = node.0 as? InstantPagePlayableVideoNode, videoNode.hasAttachedContext {
|
||||
} else if let _ = node.0 as? GalleryItemTransitionNode, videoNode.hasAttachedContext {
|
||||
copyView.removeFromSuperview()
|
||||
|
||||
let previousFrame = videoNode.frame
|
||||
|
|
@ -8,6 +8,7 @@ import SwiftSignalKit
|
|||
import TelegramPresentationData
|
||||
import AccountContext
|
||||
import RadialStatusNode
|
||||
import ScreenCaptureDetection
|
||||
|
||||
private func galleryMediaForMedia(media: Media) -> Media? {
|
||||
if let media = media as? TelegramMediaImage {
|
||||
|
|
@ -3,15 +3,15 @@ import UIKit
|
|||
import Display
|
||||
import AsyncDisplayKit
|
||||
|
||||
class ZoomableContentGalleryItemNode: GalleryItemNode, UIScrollViewDelegate {
|
||||
let scrollNode: ASScrollNode
|
||||
open class ZoomableContentGalleryItemNode: GalleryItemNode, UIScrollViewDelegate {
|
||||
public let scrollNode: ASScrollNode
|
||||
|
||||
private var containerLayout: ContainerViewLayout?
|
||||
|
||||
private var ignoreZoom = false
|
||||
private var ignoreZoomTransition: ContainedViewLayoutTransition?
|
||||
|
||||
var zoomableContent: (CGSize, ASDisplayNode)? {
|
||||
public var zoomableContent: (CGSize, ASDisplayNode)? {
|
||||
didSet {
|
||||
if oldValue?.1 !== self.zoomableContent?.1 {
|
||||
if let node = oldValue?.1 {
|
||||
|
|
@ -26,7 +26,7 @@ class ZoomableContentGalleryItemNode: GalleryItemNode, UIScrollViewDelegate {
|
|||
}
|
||||
}
|
||||
|
||||
override init() {
|
||||
override public init() {
|
||||
self.scrollNode = ASScrollNode()
|
||||
if #available(iOSApplicationExtension 11.0, iOS 11.0, *) {
|
||||
self.scrollNode.view.contentInsetAdjustmentBehavior = .never
|
||||
|
|
@ -51,7 +51,7 @@ class ZoomableContentGalleryItemNode: GalleryItemNode, UIScrollViewDelegate {
|
|||
self.addSubnode(self.scrollNode)
|
||||
}
|
||||
|
||||
@objc func contentTap(_ recognizer: TapLongTapOrDoubleTapGestureRecognizer) {
|
||||
@objc open func contentTap(_ recognizer: TapLongTapOrDoubleTapGestureRecognizer) {
|
||||
if recognizer.state == .ended {
|
||||
if let (gesture, location) = recognizer.lastRecognizedGestureAndLocation {
|
||||
switch gesture {
|
||||
|
|
@ -82,7 +82,7 @@ class ZoomableContentGalleryItemNode: GalleryItemNode, UIScrollViewDelegate {
|
|||
}
|
||||
}
|
||||
|
||||
override func containerLayoutUpdated(_ layout: ContainerViewLayout, navigationBarHeight: CGFloat, transition: ContainedViewLayoutTransition) {
|
||||
override open func containerLayoutUpdated(_ layout: ContainerViewLayout, navigationBarHeight: CGFloat, transition: ContainedViewLayoutTransition) {
|
||||
super.containerLayoutUpdated(layout, navigationBarHeight: navigationBarHeight, transition: transition)
|
||||
|
||||
var shouldResetContents = false
|
||||
|
|
@ -194,11 +194,11 @@ class ZoomableContentGalleryItemNode: GalleryItemNode, UIScrollViewDelegate {
|
|||
}
|
||||
}
|
||||
|
||||
func viewForZooming(in scrollView: UIScrollView) -> UIView? {
|
||||
open func viewForZooming(in scrollView: UIScrollView) -> UIView? {
|
||||
return self.zoomableContent?.1.view
|
||||
}
|
||||
|
||||
func scrollViewDidZoom(_ scrollView: UIScrollView) {
|
||||
open func scrollViewDidZoom(_ scrollView: UIScrollView) {
|
||||
if !self.ignoreZoom {
|
||||
self.centerScrollViewContents(transition: self.ignoreZoomTransition ?? .immediate)
|
||||
}
|
||||
|
|
@ -209,7 +209,7 @@ class ZoomableContentGalleryItemNode: GalleryItemNode, UIScrollViewDelegate {
|
|||
}
|
||||
}
|
||||
|
||||
override func contentSize() -> CGSize? {
|
||||
override open func contentSize() -> CGSize? {
|
||||
if let (_, contentNode) = self.zoomableContent {
|
||||
let size = contentNode.view.convert(contentNode.bounds, to: self.view).size
|
||||
return CGSize(width: floor(size.width), height: floor(size.height))
|
||||
591
submodules/GameUI/GameUI_Xcode.xcodeproj/project.pbxproj
Normal file
591
submodules/GameUI/GameUI_Xcode.xcodeproj/project.pbxproj
Normal file
|
|
@ -0,0 +1,591 @@
|
|||
// !$*UTF8*$!
|
||||
{
|
||||
archiveVersion = 1;
|
||||
classes = {
|
||||
};
|
||||
objectVersion = 50;
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
D0C9C18E22FFA17D00FAB518 /* GameUI.h in Headers */ = {isa = PBXBuildFile; fileRef = D0C9C18C22FFA17D00FAB518 /* GameUI.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
D0C9C19B23001E2700FAB518 /* GameControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C19823001E2700FAB518 /* GameControllerNode.swift */; };
|
||||
D0C9C19C23001E2700FAB518 /* GameControllerTitleView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C19923001E2700FAB518 /* GameControllerTitleView.swift */; };
|
||||
D0C9C19D23001E2700FAB518 /* GameController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C19A23001E2700FAB518 /* GameController.swift */; };
|
||||
D0C9C1A023001E5A00FAB518 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C19F23001E5A00FAB518 /* Foundation.framework */; };
|
||||
D0C9C1A223001EFD00FAB518 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C1A123001EFD00FAB518 /* UIKit.framework */; };
|
||||
D0C9C1A423001F0000FAB518 /* Display.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C1A323001F0000FAB518 /* Display.framework */; };
|
||||
D0C9C1A623001F0400FAB518 /* AsyncDisplayKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C1A523001F0400FAB518 /* AsyncDisplayKit.framework */; };
|
||||
D0C9C1A823001F0800FAB518 /* TelegramCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C1A723001F0800FAB518 /* TelegramCore.framework */; };
|
||||
D0C9C1AA23001F0D00FAB518 /* SwiftSignalKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C1A923001F0D00FAB518 /* SwiftSignalKit.framework */; };
|
||||
D0C9C1AC23001F1300FAB518 /* Postbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C1AB23001F1300FAB518 /* Postbox.framework */; };
|
||||
D0C9C1AE23001F1900FAB518 /* TelegramPresentationData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C1AD23001F1900FAB518 /* TelegramPresentationData.framework */; };
|
||||
D0C9C1B023001F1D00FAB518 /* AccountContext.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C1AF23001F1D00FAB518 /* AccountContext.framework */; };
|
||||
D0C9C1B223001F2500FAB518 /* WebKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C1B123001F2500FAB518 /* WebKit.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
|
||||
D0C9C1B423001F3D00FAB518 /* ShareController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C1B323001F3D00FAB518 /* ShareController.framework */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
D0C9C18922FFA17D00FAB518 /* GameUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = GameUI.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9C18C22FFA17D00FAB518 /* GameUI.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GameUI.h; sourceTree = "<group>"; };
|
||||
D0C9C18D22FFA17D00FAB518 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||
D0C9C19823001E2700FAB518 /* GameControllerNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GameControllerNode.swift; sourceTree = "<group>"; };
|
||||
D0C9C19923001E2700FAB518 /* GameControllerTitleView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GameControllerTitleView.swift; sourceTree = "<group>"; };
|
||||
D0C9C19A23001E2700FAB518 /* GameController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GameController.swift; sourceTree = "<group>"; };
|
||||
D0C9C19F23001E5A00FAB518 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
|
||||
D0C9C1A123001EFD00FAB518 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
|
||||
D0C9C1A323001F0000FAB518 /* Display.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Display.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9C1A523001F0400FAB518 /* AsyncDisplayKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AsyncDisplayKit.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9C1A723001F0800FAB518 /* TelegramCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramCore.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9C1A923001F0D00FAB518 /* SwiftSignalKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = SwiftSignalKit.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9C1AB23001F1300FAB518 /* Postbox.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Postbox.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9C1AD23001F1900FAB518 /* TelegramPresentationData.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramPresentationData.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9C1AF23001F1D00FAB518 /* AccountContext.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AccountContext.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9C1B123001F2500FAB518 /* WebKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebKit.framework; path = System/Library/Frameworks/WebKit.framework; sourceTree = SDKROOT; };
|
||||
D0C9C1B323001F3D00FAB518 /* ShareController.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ShareController.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
D0C9C18622FFA17D00FAB518 /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
D0C9C1B423001F3D00FAB518 /* ShareController.framework in Frameworks */,
|
||||
D0C9C1B223001F2500FAB518 /* WebKit.framework in Frameworks */,
|
||||
D0C9C1B023001F1D00FAB518 /* AccountContext.framework in Frameworks */,
|
||||
D0C9C1AE23001F1900FAB518 /* TelegramPresentationData.framework in Frameworks */,
|
||||
D0C9C1AC23001F1300FAB518 /* Postbox.framework in Frameworks */,
|
||||
D0C9C1AA23001F0D00FAB518 /* SwiftSignalKit.framework in Frameworks */,
|
||||
D0C9C1A823001F0800FAB518 /* TelegramCore.framework in Frameworks */,
|
||||
D0C9C1A623001F0400FAB518 /* AsyncDisplayKit.framework in Frameworks */,
|
||||
D0C9C1A423001F0000FAB518 /* Display.framework in Frameworks */,
|
||||
D0C9C1A223001EFD00FAB518 /* UIKit.framework in Frameworks */,
|
||||
D0C9C1A023001E5A00FAB518 /* Foundation.framework in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXFrameworksBuildPhase section */
|
||||
|
||||
/* Begin PBXGroup section */
|
||||
D0C9C17F22FFA17D00FAB518 = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
D0C9C18D22FFA17D00FAB518 /* Info.plist */,
|
||||
D0C9C18B22FFA17D00FAB518 /* Sources */,
|
||||
D0C9C18A22FFA17D00FAB518 /* Products */,
|
||||
D0C9C19E23001E5A00FAB518 /* Frameworks */,
|
||||
);
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
D0C9C18A22FFA17D00FAB518 /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
D0C9C18922FFA17D00FAB518 /* GameUI.framework */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
D0C9C18B22FFA17D00FAB518 /* Sources */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
D0C9C19A23001E2700FAB518 /* GameController.swift */,
|
||||
D0C9C19823001E2700FAB518 /* GameControllerNode.swift */,
|
||||
D0C9C19923001E2700FAB518 /* GameControllerTitleView.swift */,
|
||||
D0C9C18C22FFA17D00FAB518 /* GameUI.h */,
|
||||
);
|
||||
path = Sources;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
D0C9C19E23001E5A00FAB518 /* Frameworks */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
D0C9C1B323001F3D00FAB518 /* ShareController.framework */,
|
||||
D0C9C1B123001F2500FAB518 /* WebKit.framework */,
|
||||
D0C9C1AF23001F1D00FAB518 /* AccountContext.framework */,
|
||||
D0C9C1AD23001F1900FAB518 /* TelegramPresentationData.framework */,
|
||||
D0C9C1AB23001F1300FAB518 /* Postbox.framework */,
|
||||
D0C9C1A923001F0D00FAB518 /* SwiftSignalKit.framework */,
|
||||
D0C9C1A723001F0800FAB518 /* TelegramCore.framework */,
|
||||
D0C9C1A523001F0400FAB518 /* AsyncDisplayKit.framework */,
|
||||
D0C9C1A323001F0000FAB518 /* Display.framework */,
|
||||
D0C9C1A123001EFD00FAB518 /* UIKit.framework */,
|
||||
D0C9C19F23001E5A00FAB518 /* Foundation.framework */,
|
||||
);
|
||||
name = Frameworks;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXGroup section */
|
||||
|
||||
/* Begin PBXHeadersBuildPhase section */
|
||||
D0C9C18422FFA17D00FAB518 /* Headers */ = {
|
||||
isa = PBXHeadersBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
D0C9C18E22FFA17D00FAB518 /* GameUI.h in Headers */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXHeadersBuildPhase section */
|
||||
|
||||
/* Begin PBXNativeTarget section */
|
||||
D0C9C18822FFA17D00FAB518 /* GameUI */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = D0C9C19122FFA17D00FAB518 /* Build configuration list for PBXNativeTarget "GameUI" */;
|
||||
buildPhases = (
|
||||
D0C9C18422FFA17D00FAB518 /* Headers */,
|
||||
D0C9C18522FFA17D00FAB518 /* Sources */,
|
||||
D0C9C18622FFA17D00FAB518 /* Frameworks */,
|
||||
D0C9C18722FFA17D00FAB518 /* Resources */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
);
|
||||
name = GameUI;
|
||||
productName = GameUI;
|
||||
productReference = D0C9C18922FFA17D00FAB518 /* GameUI.framework */;
|
||||
productType = "com.apple.product-type.framework";
|
||||
};
|
||||
/* End PBXNativeTarget section */
|
||||
|
||||
/* Begin PBXProject section */
|
||||
D0C9C18022FFA17D00FAB518 /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
DefaultBuildSystemTypeForWorkspace = Latest;
|
||||
LastUpgradeCheck = 1030;
|
||||
ORGANIZATIONNAME = "Telegram Messenger LLP";
|
||||
TargetAttributes = {
|
||||
D0C9C18822FFA17D00FAB518 = {
|
||||
CreatedOnToolsVersion = 10.3;
|
||||
LastSwiftMigration = 1030;
|
||||
};
|
||||
};
|
||||
};
|
||||
buildConfigurationList = D0C9C18322FFA17D00FAB518 /* Build configuration list for PBXProject "GameUI_Xcode" */;
|
||||
compatibilityVersion = "Xcode 9.3";
|
||||
developmentRegion = en;
|
||||
hasScannedForEncodings = 0;
|
||||
knownRegions = (
|
||||
en,
|
||||
);
|
||||
mainGroup = D0C9C17F22FFA17D00FAB518;
|
||||
productRefGroup = D0C9C18A22FFA17D00FAB518 /* Products */;
|
||||
projectDirPath = "";
|
||||
projectRoot = "";
|
||||
targets = (
|
||||
D0C9C18822FFA17D00FAB518 /* GameUI */,
|
||||
);
|
||||
};
|
||||
/* End PBXProject section */
|
||||
|
||||
/* Begin PBXResourcesBuildPhase section */
|
||||
D0C9C18722FFA17D00FAB518 /* Resources */ = {
|
||||
isa = PBXResourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXResourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXSourcesBuildPhase section */
|
||||
D0C9C18522FFA17D00FAB518 /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
D0C9C19B23001E2700FAB518 /* GameControllerNode.swift in Sources */,
|
||||
D0C9C19D23001E2700FAB518 /* GameController.swift in Sources */,
|
||||
D0C9C19C23001E2700FAB518 /* GameControllerTitleView.swift in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXSourcesBuildPhase section */
|
||||
|
||||
/* Begin XCBuildConfiguration section */
|
||||
D0C9C18F22FFA17D00FAB518 /* 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;
|
||||
};
|
||||
D0C9C19022FFA17D00FAB518 /* 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;
|
||||
};
|
||||
D0C9C19222FFA17D00FAB518 /* 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.GameUI;
|
||||
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
|
||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||
SKIP_INSTALL = YES;
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
||||
SWIFT_VERSION = 5.0;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
};
|
||||
name = DebugAppStoreLLC;
|
||||
};
|
||||
D0C9C19322FFA17D00FAB518 /* 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.GameUI;
|
||||
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
|
||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||
SKIP_INSTALL = YES;
|
||||
SWIFT_VERSION = 5.0;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
};
|
||||
name = ReleaseAppStoreLLC;
|
||||
};
|
||||
D0C9C19423001D9F00FAB518 /* DebugHockeyapp */ = {
|
||||
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 = DebugHockeyapp;
|
||||
};
|
||||
D0C9C19523001D9F00FAB518 /* DebugHockeyapp */ = {
|
||||
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.GameUI;
|
||||
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
|
||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||
SKIP_INSTALL = YES;
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
||||
SWIFT_VERSION = 5.0;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
};
|
||||
name = DebugHockeyapp;
|
||||
};
|
||||
D0C9C19623001DBE00FAB518 /* ReleaseHockeyappInternal */ = {
|
||||
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 = ReleaseHockeyappInternal;
|
||||
};
|
||||
D0C9C19723001DBE00FAB518 /* ReleaseHockeyappInternal */ = {
|
||||
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.GameUI;
|
||||
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
|
||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||
SKIP_INSTALL = YES;
|
||||
SWIFT_VERSION = 5.0;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
};
|
||||
name = ReleaseHockeyappInternal;
|
||||
};
|
||||
/* End XCBuildConfiguration section */
|
||||
|
||||
/* Begin XCConfigurationList section */
|
||||
D0C9C18322FFA17D00FAB518 /* Build configuration list for PBXProject "GameUI_Xcode" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
D0C9C18F22FFA17D00FAB518 /* DebugAppStoreLLC */,
|
||||
D0C9C19423001D9F00FAB518 /* DebugHockeyapp */,
|
||||
D0C9C19022FFA17D00FAB518 /* ReleaseAppStoreLLC */,
|
||||
D0C9C19623001DBE00FAB518 /* ReleaseHockeyappInternal */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = ReleaseAppStoreLLC;
|
||||
};
|
||||
D0C9C19122FFA17D00FAB518 /* Build configuration list for PBXNativeTarget "GameUI" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
D0C9C19222FFA17D00FAB518 /* DebugAppStoreLLC */,
|
||||
D0C9C19523001D9F00FAB518 /* DebugHockeyapp */,
|
||||
D0C9C19322FFA17D00FAB518 /* ReleaseAppStoreLLC */,
|
||||
D0C9C19723001DBE00FAB518 /* ReleaseHockeyappInternal */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = ReleaseAppStoreLLC;
|
||||
};
|
||||
/* End XCConfigurationList section */
|
||||
};
|
||||
rootObject = D0C9C18022FFA17D00FAB518 /* Project object */;
|
||||
}
|
||||
22
submodules/GameUI/Info.plist
Normal file
22
submodules/GameUI/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>
|
||||
|
|
@ -8,7 +8,7 @@ import Postbox
|
|||
import TelegramPresentationData
|
||||
import AccountContext
|
||||
|
||||
final class GameController: ViewController {
|
||||
public final class GameController: ViewController {
|
||||
private var controllerNode: GameControllerNode {
|
||||
return self.displayNode as! GameControllerNode
|
||||
}
|
||||
|
|
@ -19,7 +19,7 @@ final class GameController: ViewController {
|
|||
|
||||
private var presentationData: PresentationData
|
||||
|
||||
init(context: AccountContext, url: String, message: Message) {
|
||||
public init(context: AccountContext, url: String, message: Message) {
|
||||
self.context = context
|
||||
self.url = url
|
||||
self.message = message
|
||||
|
|
@ -53,7 +53,7 @@ final class GameController: ViewController {
|
|||
}
|
||||
}
|
||||
|
||||
required init(coder aDecoder: NSCoder) {
|
||||
required public init(coder aDecoder: NSCoder) {
|
||||
fatalError("init(coder:) has not been implemented")
|
||||
}
|
||||
|
||||
|
|
@ -61,38 +61,37 @@ final class GameController: ViewController {
|
|||
assert(true)
|
||||
}
|
||||
|
||||
@objc func closePressed() {
|
||||
@objc private func closePressed() {
|
||||
self.dismiss()
|
||||
}
|
||||
|
||||
@objc func sharePressed() {
|
||||
@objc private func sharePressed() {
|
||||
self.controllerNode.shareWithoutScore()
|
||||
}
|
||||
|
||||
override func loadDisplayNode() {
|
||||
override public func loadDisplayNode() {
|
||||
self.displayNode = GameControllerNode(context: self.context, presentationData: self.presentationData, url: self.url, present: { [weak self] c, a in
|
||||
self?.present(c, in: .window(.root), with: a)
|
||||
}, message: self.message)
|
||||
}
|
||||
|
||||
override func dismiss(completion: (() -> Void)? = nil) {
|
||||
override public func dismiss(completion: (() -> Void)? = nil) {
|
||||
self.controllerNode.animateOut(completion: { [weak self] in
|
||||
self?.presentingViewController?.dismiss(animated: false, completion: nil)
|
||||
completion?()
|
||||
})
|
||||
}
|
||||
|
||||
override func containerLayoutUpdated(_ layout: ContainerViewLayout, transition: ContainedViewLayoutTransition) {
|
||||
override public func containerLayoutUpdated(_ layout: ContainerViewLayout, transition: ContainedViewLayoutTransition) {
|
||||
super.containerLayoutUpdated(layout, transition: transition)
|
||||
|
||||
self.controllerNode.containerLayoutUpdated(layout, navigationBarHeight: self.navigationHeight, transition: transition)
|
||||
}
|
||||
|
||||
override var presentationController: UIPresentationController? {
|
||||
override public var presentationController: UIPresentationController? {
|
||||
get {
|
||||
return nil
|
||||
} set(value) {
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -5,7 +5,6 @@ import Display
|
|||
import Postbox
|
||||
import TelegramCore
|
||||
import SwiftSignalKit
|
||||
import LegacyComponents
|
||||
import TelegramPresentationData
|
||||
|
||||
final class GameControllerTitleView: UIView {
|
||||
19
submodules/GameUI/Sources/GameUI.h
Normal file
19
submodules/GameUI/Sources/GameUI.h
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
//
|
||||
// GameUI.h
|
||||
// GameUI
|
||||
//
|
||||
// Created by Peter on 8/11/19.
|
||||
// Copyright © 2019 Telegram Messenger LLP. All rights reserved.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
//! Project version number for GameUI.
|
||||
FOUNDATION_EXPORT double GameUIVersionNumber;
|
||||
|
||||
//! Project version string for GameUI.
|
||||
FOUNDATION_EXPORT const unsigned char GameUIVersionString[];
|
||||
|
||||
// In this header, you should import all the public headers of your framework using statements like #import <GameUI/PublicHeader.h>
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,551 @@
|
|||
// !$*UTF8*$!
|
||||
{
|
||||
archiveVersion = 1;
|
||||
classes = {
|
||||
};
|
||||
objectVersion = 50;
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
D0C9C4AB2300E50200FAB518 /* ImageCompression.h in Headers */ = {isa = PBXBuildFile; fileRef = D0C9C4A92300E50200FAB518 /* ImageCompression.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
D0C9C4B62300E57200FAB518 /* ImageCompression.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C4B52300E57200FAB518 /* ImageCompression.swift */; };
|
||||
D0C9C4B92300E59B00FAB518 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C4B82300E59A00FAB518 /* Foundation.framework */; };
|
||||
D0C9C4BB2300E59C00FAB518 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C4BA2300E59C00FAB518 /* UIKit.framework */; };
|
||||
D0C9C4BD2300E5A000FAB518 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C4BC2300E5A000FAB518 /* AVFoundation.framework */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
D0C9C4A62300E50200FAB518 /* ImageCompression.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = ImageCompression.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9C4A92300E50200FAB518 /* ImageCompression.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ImageCompression.h; sourceTree = "<group>"; };
|
||||
D0C9C4AA2300E50200FAB518 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||
D0C9C4B52300E57200FAB518 /* ImageCompression.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ImageCompression.swift; sourceTree = "<group>"; };
|
||||
D0C9C4B82300E59A00FAB518 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
|
||||
D0C9C4BA2300E59C00FAB518 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
|
||||
D0C9C4BC2300E5A000FAB518 /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
D0C9C4A32300E50200FAB518 /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
D0C9C4BD2300E5A000FAB518 /* AVFoundation.framework in Frameworks */,
|
||||
D0C9C4BB2300E59C00FAB518 /* UIKit.framework in Frameworks */,
|
||||
D0C9C4B92300E59B00FAB518 /* Foundation.framework in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXFrameworksBuildPhase section */
|
||||
|
||||
/* Begin PBXGroup section */
|
||||
D0C9C49C2300E50200FAB518 = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
D0C9C4AA2300E50200FAB518 /* Info.plist */,
|
||||
D0C9C4A82300E50200FAB518 /* Sources */,
|
||||
D0C9C4A72300E50200FAB518 /* Products */,
|
||||
D0C9C4B72300E59900FAB518 /* Frameworks */,
|
||||
);
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
D0C9C4A72300E50200FAB518 /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
D0C9C4A62300E50200FAB518 /* ImageCompression.framework */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
D0C9C4A82300E50200FAB518 /* Sources */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
D0C9C4B52300E57200FAB518 /* ImageCompression.swift */,
|
||||
D0C9C4A92300E50200FAB518 /* ImageCompression.h */,
|
||||
);
|
||||
path = Sources;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
D0C9C4B72300E59900FAB518 /* Frameworks */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
D0C9C4BC2300E5A000FAB518 /* AVFoundation.framework */,
|
||||
D0C9C4BA2300E59C00FAB518 /* UIKit.framework */,
|
||||
D0C9C4B82300E59A00FAB518 /* Foundation.framework */,
|
||||
);
|
||||
name = Frameworks;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXGroup section */
|
||||
|
||||
/* Begin PBXHeadersBuildPhase section */
|
||||
D0C9C4A12300E50200FAB518 /* Headers */ = {
|
||||
isa = PBXHeadersBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
D0C9C4AB2300E50200FAB518 /* ImageCompression.h in Headers */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXHeadersBuildPhase section */
|
||||
|
||||
/* Begin PBXNativeTarget section */
|
||||
D0C9C4A52300E50200FAB518 /* ImageCompression */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = D0C9C4AE2300E50200FAB518 /* Build configuration list for PBXNativeTarget "ImageCompression" */;
|
||||
buildPhases = (
|
||||
D0C9C4A12300E50200FAB518 /* Headers */,
|
||||
D0C9C4A22300E50200FAB518 /* Sources */,
|
||||
D0C9C4A32300E50200FAB518 /* Frameworks */,
|
||||
D0C9C4A42300E50200FAB518 /* Resources */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
);
|
||||
name = ImageCompression;
|
||||
productName = ImageCompression;
|
||||
productReference = D0C9C4A62300E50200FAB518 /* ImageCompression.framework */;
|
||||
productType = "com.apple.product-type.framework";
|
||||
};
|
||||
/* End PBXNativeTarget section */
|
||||
|
||||
/* Begin PBXProject section */
|
||||
D0C9C49D2300E50200FAB518 /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
DefaultBuildSystemTypeForWorkspace = Latest;
|
||||
LastUpgradeCheck = 1030;
|
||||
ORGANIZATIONNAME = "Telegram Messenger LLP";
|
||||
TargetAttributes = {
|
||||
D0C9C4A52300E50200FAB518 = {
|
||||
CreatedOnToolsVersion = 10.3;
|
||||
LastSwiftMigration = 1030;
|
||||
};
|
||||
};
|
||||
};
|
||||
buildConfigurationList = D0C9C4A02300E50200FAB518 /* Build configuration list for PBXProject "ImageCompression_Xcode" */;
|
||||
compatibilityVersion = "Xcode 9.3";
|
||||
developmentRegion = en;
|
||||
hasScannedForEncodings = 0;
|
||||
knownRegions = (
|
||||
en,
|
||||
);
|
||||
mainGroup = D0C9C49C2300E50200FAB518;
|
||||
productRefGroup = D0C9C4A72300E50200FAB518 /* Products */;
|
||||
projectDirPath = "";
|
||||
projectRoot = "";
|
||||
targets = (
|
||||
D0C9C4A52300E50200FAB518 /* ImageCompression */,
|
||||
);
|
||||
};
|
||||
/* End PBXProject section */
|
||||
|
||||
/* Begin PBXResourcesBuildPhase section */
|
||||
D0C9C4A42300E50200FAB518 /* Resources */ = {
|
||||
isa = PBXResourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXResourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXSourcesBuildPhase section */
|
||||
D0C9C4A22300E50200FAB518 /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
D0C9C4B62300E57200FAB518 /* ImageCompression.swift in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXSourcesBuildPhase section */
|
||||
|
||||
/* Begin XCBuildConfiguration section */
|
||||
D0C9C4AC2300E50200FAB518 /* 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;
|
||||
};
|
||||
D0C9C4AD2300E50200FAB518 /* 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;
|
||||
};
|
||||
D0C9C4AF2300E50200FAB518 /* 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.ImageCompression;
|
||||
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
|
||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||
SKIP_INSTALL = YES;
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
||||
SWIFT_VERSION = 5.0;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
};
|
||||
name = DebugAppStoreLLC;
|
||||
};
|
||||
D0C9C4B02300E50200FAB518 /* 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.ImageCompression;
|
||||
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
|
||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||
SKIP_INSTALL = YES;
|
||||
SWIFT_VERSION = 5.0;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
};
|
||||
name = ReleaseAppStoreLLC;
|
||||
};
|
||||
D0C9C4B12300E53B00FAB518 /* DebugHockeyapp */ = {
|
||||
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 = DebugHockeyapp;
|
||||
};
|
||||
D0C9C4B22300E53B00FAB518 /* DebugHockeyapp */ = {
|
||||
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.ImageCompression;
|
||||
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
|
||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||
SKIP_INSTALL = YES;
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
||||
SWIFT_VERSION = 5.0;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
};
|
||||
name = DebugHockeyapp;
|
||||
};
|
||||
D0C9C4B32300E54900FAB518 /* ReleaseHockeyappInternal */ = {
|
||||
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 = ReleaseHockeyappInternal;
|
||||
};
|
||||
D0C9C4B42300E54900FAB518 /* ReleaseHockeyappInternal */ = {
|
||||
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.ImageCompression;
|
||||
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
|
||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||
SKIP_INSTALL = YES;
|
||||
SWIFT_VERSION = 5.0;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
};
|
||||
name = ReleaseHockeyappInternal;
|
||||
};
|
||||
/* End XCBuildConfiguration section */
|
||||
|
||||
/* Begin XCConfigurationList section */
|
||||
D0C9C4A02300E50200FAB518 /* Build configuration list for PBXProject "ImageCompression_Xcode" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
D0C9C4AC2300E50200FAB518 /* DebugAppStoreLLC */,
|
||||
D0C9C4B12300E53B00FAB518 /* DebugHockeyapp */,
|
||||
D0C9C4AD2300E50200FAB518 /* ReleaseAppStoreLLC */,
|
||||
D0C9C4B32300E54900FAB518 /* ReleaseHockeyappInternal */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = ReleaseAppStoreLLC;
|
||||
};
|
||||
D0C9C4AE2300E50200FAB518 /* Build configuration list for PBXNativeTarget "ImageCompression" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
D0C9C4AF2300E50200FAB518 /* DebugAppStoreLLC */,
|
||||
D0C9C4B22300E53B00FAB518 /* DebugHockeyapp */,
|
||||
D0C9C4B02300E50200FAB518 /* ReleaseAppStoreLLC */,
|
||||
D0C9C4B42300E54900FAB518 /* ReleaseHockeyappInternal */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = ReleaseAppStoreLLC;
|
||||
};
|
||||
/* End XCConfigurationList section */
|
||||
};
|
||||
rootObject = D0C9C49D2300E50200FAB518 /* Project object */;
|
||||
}
|
||||
22
submodules/ImageCompression/Info.plist
Normal file
22
submodules/ImageCompression/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>
|
||||
19
submodules/ImageCompression/Sources/ImageCompression.h
Normal file
19
submodules/ImageCompression/Sources/ImageCompression.h
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
//
|
||||
// ImageCompression.h
|
||||
// ImageCompression
|
||||
//
|
||||
// Created by Peter on 8/12/19.
|
||||
// Copyright © 2019 Telegram Messenger LLP. All rights reserved.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
//! Project version number for ImageCompression.
|
||||
FOUNDATION_EXPORT double ImageCompressionVersionNumber;
|
||||
|
||||
//! Project version string for ImageCompression.
|
||||
FOUNDATION_EXPORT const unsigned char ImageCompressionVersionString[];
|
||||
|
||||
// In this header, you should import all the public headers of your framework using statements like #import <ImageCompression/PublicHeader.h>
|
||||
|
||||
|
||||
|
|
@ -1,13 +1,8 @@
|
|||
import Foundation
|
||||
import AVFoundation
|
||||
import UIKit
|
||||
import Display
|
||||
import TelegramCore
|
||||
import Postbox
|
||||
|
||||
import TelegramUIPrivateModule
|
||||
|
||||
func compressImageToJPEG(_ image: UIImage, quality: Float) -> Data? {
|
||||
public func compressImageToJPEG(_ image: UIImage, quality: Float) -> Data? {
|
||||
let data = NSMutableData()
|
||||
guard let destination = CGImageDestinationCreateWithData(data as CFMutableData, "public.jpeg" as CFString, 1, nil) else {
|
||||
return nil
|
||||
|
|
@ -30,7 +25,7 @@ func compressImageToJPEG(_ image: UIImage, quality: Float) -> Data? {
|
|||
}
|
||||
|
||||
@available(iOSApplicationExtension 11.0, iOS 11.0, *)
|
||||
func compressImage(_ image: UIImage, quality: Float) -> Data? {
|
||||
public func compressImage(_ image: UIImage, quality: Float) -> Data? {
|
||||
let data = NSMutableData()
|
||||
guard let destination = CGImageDestinationCreateWithData(data as CFMutableData, AVFileType.heic as CFString, 1, nil) else {
|
||||
return nil
|
||||
22
submodules/LegacyUI/Info.plist
Normal file
22
submodules/LegacyUI/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>
|
||||
627
submodules/LegacyUI/LegacyUI_Xcode.xcodeproj/project.pbxproj
Normal file
627
submodules/LegacyUI/LegacyUI_Xcode.xcodeproj/project.pbxproj
Normal file
|
|
@ -0,0 +1,627 @@
|
|||
// !$*UTF8*$!
|
||||
{
|
||||
archiveVersion = 1;
|
||||
classes = {
|
||||
};
|
||||
objectVersion = 50;
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
D0C9C45F2300E24D00FAB518 /* LegacyUI.h in Headers */ = {isa = PBXBuildFile; fileRef = D0C9C45D2300E24D00FAB518 /* LegacyUI.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
D0C9C46C2300E2D700FAB518 /* LegacyEmptyController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C4692300E2D700FAB518 /* LegacyEmptyController.swift */; };
|
||||
D0C9C46D2300E2D700FAB518 /* LegacyControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C46A2300E2D700FAB518 /* LegacyControllerNode.swift */; };
|
||||
D0C9C46E2300E2D700FAB518 /* LegacyController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C46B2300E2D700FAB518 /* LegacyController.swift */; };
|
||||
D0C9C4712300E2E800FAB518 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C4702300E2E800FAB518 /* Foundation.framework */; };
|
||||
D0C9C4732300E2EC00FAB518 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C4722300E2EC00FAB518 /* UIKit.framework */; };
|
||||
D0C9C4752300E2F100FAB518 /* Display.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C4742300E2F100FAB518 /* Display.framework */; };
|
||||
D0C9C4772300E2F400FAB518 /* SwiftSignalKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C4762300E2F400FAB518 /* SwiftSignalKit.framework */; };
|
||||
D0C9C4792300E2F900FAB518 /* LegacyComponents.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C4782300E2F900FAB518 /* LegacyComponents.framework */; };
|
||||
D0C9C47B2300E2FD00FAB518 /* TelegramPresentationData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C47A2300E2FD00FAB518 /* TelegramPresentationData.framework */; };
|
||||
D0C9C4812300E35400FAB518 /* TelegramInitializeLegacyComponents.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C4802300E35400FAB518 /* TelegramInitializeLegacyComponents.swift */; };
|
||||
D0C9C4832300E35E00FAB518 /* MtProtoKitDynamic.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C4822300E35E00FAB518 /* MtProtoKitDynamic.framework */; };
|
||||
D0C9C4852300E36A00FAB518 /* Postbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C4842300E36A00FAB518 /* Postbox.framework */; };
|
||||
D0C9C4872300E36F00FAB518 /* TelegramCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C4862300E36F00FAB518 /* TelegramCore.framework */; };
|
||||
D0C9C4892300E37900FAB518 /* DeviceAccess.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C4882300E37900FAB518 /* DeviceAccess.framework */; };
|
||||
D0C9C48B2300E37F00FAB518 /* TelegramAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C48A2300E37F00FAB518 /* TelegramAudio.framework */; };
|
||||
D0C9C48D2300E38700FAB518 /* AccountContext.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C48C2300E38700FAB518 /* AccountContext.framework */; };
|
||||
D0C9C48F2300E3B500FAB518 /* LegacyComponentsStickers.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C48E2300E3B500FAB518 /* LegacyComponentsStickers.swift */; };
|
||||
D0C9C4922300E3DA00FAB518 /* LegacyHTTPOperationImpl.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C4902300E3DA00FAB518 /* LegacyHTTPOperationImpl.swift */; };
|
||||
D0C9C4932300E3DA00FAB518 /* LegacyPeerAvatarPlaceholderDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C4912300E3DA00FAB518 /* LegacyPeerAvatarPlaceholderDataSource.swift */; };
|
||||
D0C9C4952300E3E900FAB518 /* LegacyLocationVenueIconDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C4942300E3E900FAB518 /* LegacyLocationVenueIconDataSource.swift */; };
|
||||
D0C9C4972300E3FC00FAB518 /* LegacyImageDownloadActor.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C4962300E3FC00FAB518 /* LegacyImageDownloadActor.swift */; };
|
||||
D0C9C4992300E42D00FAB518 /* LegacyMediaLocations.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C4982300E42D00FAB518 /* LegacyMediaLocations.swift */; };
|
||||
D0C9C49B2300E4C300FAB518 /* LegacyNavigationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C49A2300E4C300FAB518 /* LegacyNavigationController.swift */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
D0C9C45A2300E24D00FAB518 /* LegacyUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = LegacyUI.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9C45D2300E24D00FAB518 /* LegacyUI.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LegacyUI.h; sourceTree = "<group>"; };
|
||||
D0C9C45E2300E24D00FAB518 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||
D0C9C4692300E2D700FAB518 /* LegacyEmptyController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LegacyEmptyController.swift; sourceTree = "<group>"; };
|
||||
D0C9C46A2300E2D700FAB518 /* LegacyControllerNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LegacyControllerNode.swift; sourceTree = "<group>"; };
|
||||
D0C9C46B2300E2D700FAB518 /* LegacyController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LegacyController.swift; sourceTree = "<group>"; };
|
||||
D0C9C4702300E2E800FAB518 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
|
||||
D0C9C4722300E2EC00FAB518 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
|
||||
D0C9C4742300E2F100FAB518 /* Display.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Display.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9C4762300E2F400FAB518 /* SwiftSignalKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = SwiftSignalKit.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9C4782300E2F900FAB518 /* LegacyComponents.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = LegacyComponents.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9C47A2300E2FD00FAB518 /* TelegramPresentationData.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramPresentationData.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9C4802300E35400FAB518 /* TelegramInitializeLegacyComponents.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TelegramInitializeLegacyComponents.swift; sourceTree = "<group>"; };
|
||||
D0C9C4822300E35E00FAB518 /* MtProtoKitDynamic.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = MtProtoKitDynamic.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9C4842300E36A00FAB518 /* Postbox.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Postbox.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9C4862300E36F00FAB518 /* TelegramCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramCore.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9C4882300E37900FAB518 /* DeviceAccess.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = DeviceAccess.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9C48A2300E37F00FAB518 /* TelegramAudio.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramAudio.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9C48C2300E38700FAB518 /* AccountContext.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AccountContext.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9C48E2300E3B500FAB518 /* LegacyComponentsStickers.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LegacyComponentsStickers.swift; sourceTree = "<group>"; };
|
||||
D0C9C4902300E3DA00FAB518 /* LegacyHTTPOperationImpl.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LegacyHTTPOperationImpl.swift; sourceTree = "<group>"; };
|
||||
D0C9C4912300E3DA00FAB518 /* LegacyPeerAvatarPlaceholderDataSource.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LegacyPeerAvatarPlaceholderDataSource.swift; sourceTree = "<group>"; };
|
||||
D0C9C4942300E3E900FAB518 /* LegacyLocationVenueIconDataSource.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LegacyLocationVenueIconDataSource.swift; sourceTree = "<group>"; };
|
||||
D0C9C4962300E3FC00FAB518 /* LegacyImageDownloadActor.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LegacyImageDownloadActor.swift; sourceTree = "<group>"; };
|
||||
D0C9C4982300E42D00FAB518 /* LegacyMediaLocations.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LegacyMediaLocations.swift; sourceTree = "<group>"; };
|
||||
D0C9C49A2300E4C300FAB518 /* LegacyNavigationController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LegacyNavigationController.swift; sourceTree = "<group>"; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
D0C9C4572300E24D00FAB518 /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
D0C9C48D2300E38700FAB518 /* AccountContext.framework in Frameworks */,
|
||||
D0C9C48B2300E37F00FAB518 /* TelegramAudio.framework in Frameworks */,
|
||||
D0C9C4892300E37900FAB518 /* DeviceAccess.framework in Frameworks */,
|
||||
D0C9C4872300E36F00FAB518 /* TelegramCore.framework in Frameworks */,
|
||||
D0C9C4852300E36A00FAB518 /* Postbox.framework in Frameworks */,
|
||||
D0C9C4832300E35E00FAB518 /* MtProtoKitDynamic.framework in Frameworks */,
|
||||
D0C9C47B2300E2FD00FAB518 /* TelegramPresentationData.framework in Frameworks */,
|
||||
D0C9C4792300E2F900FAB518 /* LegacyComponents.framework in Frameworks */,
|
||||
D0C9C4772300E2F400FAB518 /* SwiftSignalKit.framework in Frameworks */,
|
||||
D0C9C4752300E2F100FAB518 /* Display.framework in Frameworks */,
|
||||
D0C9C4732300E2EC00FAB518 /* UIKit.framework in Frameworks */,
|
||||
D0C9C4712300E2E800FAB518 /* Foundation.framework in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXFrameworksBuildPhase section */
|
||||
|
||||
/* Begin PBXGroup section */
|
||||
D0C9C4502300E24D00FAB518 = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
D0C9C45E2300E24D00FAB518 /* Info.plist */,
|
||||
D0C9C45C2300E24D00FAB518 /* Sources */,
|
||||
D0C9C45B2300E24D00FAB518 /* Products */,
|
||||
D0C9C46F2300E2E800FAB518 /* Frameworks */,
|
||||
);
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
D0C9C45B2300E24D00FAB518 /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
D0C9C45A2300E24D00FAB518 /* LegacyUI.framework */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
D0C9C45C2300E24D00FAB518 /* Sources */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
D0C9C49A2300E4C300FAB518 /* LegacyNavigationController.swift */,
|
||||
D0C9C4982300E42D00FAB518 /* LegacyMediaLocations.swift */,
|
||||
D0C9C4962300E3FC00FAB518 /* LegacyImageDownloadActor.swift */,
|
||||
D0C9C4942300E3E900FAB518 /* LegacyLocationVenueIconDataSource.swift */,
|
||||
D0C9C4902300E3DA00FAB518 /* LegacyHTTPOperationImpl.swift */,
|
||||
D0C9C4912300E3DA00FAB518 /* LegacyPeerAvatarPlaceholderDataSource.swift */,
|
||||
D0C9C48E2300E3B500FAB518 /* LegacyComponentsStickers.swift */,
|
||||
D0C9C4802300E35400FAB518 /* TelegramInitializeLegacyComponents.swift */,
|
||||
D0C9C46B2300E2D700FAB518 /* LegacyController.swift */,
|
||||
D0C9C46A2300E2D700FAB518 /* LegacyControllerNode.swift */,
|
||||
D0C9C4692300E2D700FAB518 /* LegacyEmptyController.swift */,
|
||||
D0C9C45D2300E24D00FAB518 /* LegacyUI.h */,
|
||||
);
|
||||
path = Sources;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
D0C9C46F2300E2E800FAB518 /* Frameworks */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
D0C9C48C2300E38700FAB518 /* AccountContext.framework */,
|
||||
D0C9C48A2300E37F00FAB518 /* TelegramAudio.framework */,
|
||||
D0C9C4882300E37900FAB518 /* DeviceAccess.framework */,
|
||||
D0C9C4862300E36F00FAB518 /* TelegramCore.framework */,
|
||||
D0C9C4842300E36A00FAB518 /* Postbox.framework */,
|
||||
D0C9C4822300E35E00FAB518 /* MtProtoKitDynamic.framework */,
|
||||
D0C9C47A2300E2FD00FAB518 /* TelegramPresentationData.framework */,
|
||||
D0C9C4782300E2F900FAB518 /* LegacyComponents.framework */,
|
||||
D0C9C4762300E2F400FAB518 /* SwiftSignalKit.framework */,
|
||||
D0C9C4742300E2F100FAB518 /* Display.framework */,
|
||||
D0C9C4722300E2EC00FAB518 /* UIKit.framework */,
|
||||
D0C9C4702300E2E800FAB518 /* Foundation.framework */,
|
||||
);
|
||||
name = Frameworks;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXGroup section */
|
||||
|
||||
/* Begin PBXHeadersBuildPhase section */
|
||||
D0C9C4552300E24D00FAB518 /* Headers */ = {
|
||||
isa = PBXHeadersBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
D0C9C45F2300E24D00FAB518 /* LegacyUI.h in Headers */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXHeadersBuildPhase section */
|
||||
|
||||
/* Begin PBXNativeTarget section */
|
||||
D0C9C4592300E24D00FAB518 /* LegacyUI */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = D0C9C4622300E24D00FAB518 /* Build configuration list for PBXNativeTarget "LegacyUI" */;
|
||||
buildPhases = (
|
||||
D0C9C4552300E24D00FAB518 /* Headers */,
|
||||
D0C9C4562300E24D00FAB518 /* Sources */,
|
||||
D0C9C4572300E24D00FAB518 /* Frameworks */,
|
||||
D0C9C4582300E24D00FAB518 /* Resources */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
);
|
||||
name = LegacyUI;
|
||||
productName = LegacyUI;
|
||||
productReference = D0C9C45A2300E24D00FAB518 /* LegacyUI.framework */;
|
||||
productType = "com.apple.product-type.framework";
|
||||
};
|
||||
/* End PBXNativeTarget section */
|
||||
|
||||
/* Begin PBXProject section */
|
||||
D0C9C4512300E24D00FAB518 /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
DefaultBuildSystemTypeForWorkspace = Latest;
|
||||
LastUpgradeCheck = 1030;
|
||||
ORGANIZATIONNAME = "Telegram Messenger LLP";
|
||||
TargetAttributes = {
|
||||
D0C9C4592300E24D00FAB518 = {
|
||||
CreatedOnToolsVersion = 10.3;
|
||||
LastSwiftMigration = 1030;
|
||||
};
|
||||
};
|
||||
};
|
||||
buildConfigurationList = D0C9C4542300E24D00FAB518 /* Build configuration list for PBXProject "LegacyUI_Xcode" */;
|
||||
compatibilityVersion = "Xcode 9.3";
|
||||
developmentRegion = en;
|
||||
hasScannedForEncodings = 0;
|
||||
knownRegions = (
|
||||
en,
|
||||
);
|
||||
mainGroup = D0C9C4502300E24D00FAB518;
|
||||
productRefGroup = D0C9C45B2300E24D00FAB518 /* Products */;
|
||||
projectDirPath = "";
|
||||
projectRoot = "";
|
||||
targets = (
|
||||
D0C9C4592300E24D00FAB518 /* LegacyUI */,
|
||||
);
|
||||
};
|
||||
/* End PBXProject section */
|
||||
|
||||
/* Begin PBXResourcesBuildPhase section */
|
||||
D0C9C4582300E24D00FAB518 /* Resources */ = {
|
||||
isa = PBXResourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXResourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXSourcesBuildPhase section */
|
||||
D0C9C4562300E24D00FAB518 /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
D0C9C49B2300E4C300FAB518 /* LegacyNavigationController.swift in Sources */,
|
||||
D0C9C4992300E42D00FAB518 /* LegacyMediaLocations.swift in Sources */,
|
||||
D0C9C4972300E3FC00FAB518 /* LegacyImageDownloadActor.swift in Sources */,
|
||||
D0C9C4932300E3DA00FAB518 /* LegacyPeerAvatarPlaceholderDataSource.swift in Sources */,
|
||||
D0C9C46D2300E2D700FAB518 /* LegacyControllerNode.swift in Sources */,
|
||||
D0C9C4812300E35400FAB518 /* TelegramInitializeLegacyComponents.swift in Sources */,
|
||||
D0C9C46C2300E2D700FAB518 /* LegacyEmptyController.swift in Sources */,
|
||||
D0C9C46E2300E2D700FAB518 /* LegacyController.swift in Sources */,
|
||||
D0C9C4922300E3DA00FAB518 /* LegacyHTTPOperationImpl.swift in Sources */,
|
||||
D0C9C48F2300E3B500FAB518 /* LegacyComponentsStickers.swift in Sources */,
|
||||
D0C9C4952300E3E900FAB518 /* LegacyLocationVenueIconDataSource.swift in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXSourcesBuildPhase section */
|
||||
|
||||
/* Begin XCBuildConfiguration section */
|
||||
D0C9C4602300E24D00FAB518 /* 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;
|
||||
};
|
||||
D0C9C4612300E24D00FAB518 /* 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;
|
||||
};
|
||||
D0C9C4632300E24D00FAB518 /* 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.LegacyUI;
|
||||
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
|
||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||
SKIP_INSTALL = YES;
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
||||
SWIFT_VERSION = 5.0;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
};
|
||||
name = DebugAppStoreLLC;
|
||||
};
|
||||
D0C9C4642300E24D00FAB518 /* 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.LegacyUI;
|
||||
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
|
||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||
SKIP_INSTALL = YES;
|
||||
SWIFT_VERSION = 5.0;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
};
|
||||
name = ReleaseAppStoreLLC;
|
||||
};
|
||||
D0C9C4652300E28100FAB518 /* DebugHockeyapp */ = {
|
||||
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 = DebugHockeyapp;
|
||||
};
|
||||
D0C9C4662300E28100FAB518 /* DebugHockeyapp */ = {
|
||||
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.LegacyUI;
|
||||
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
|
||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||
SKIP_INSTALL = YES;
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
||||
SWIFT_VERSION = 5.0;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
};
|
||||
name = DebugHockeyapp;
|
||||
};
|
||||
D0C9C4672300E28D00FAB518 /* ReleaseHockeyappInternal */ = {
|
||||
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 = ReleaseHockeyappInternal;
|
||||
};
|
||||
D0C9C4682300E28D00FAB518 /* ReleaseHockeyappInternal */ = {
|
||||
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.LegacyUI;
|
||||
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
|
||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||
SKIP_INSTALL = YES;
|
||||
SWIFT_VERSION = 5.0;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
};
|
||||
name = ReleaseHockeyappInternal;
|
||||
};
|
||||
/* End XCBuildConfiguration section */
|
||||
|
||||
/* Begin XCConfigurationList section */
|
||||
D0C9C4542300E24D00FAB518 /* Build configuration list for PBXProject "LegacyUI_Xcode" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
D0C9C4602300E24D00FAB518 /* DebugAppStoreLLC */,
|
||||
D0C9C4652300E28100FAB518 /* DebugHockeyapp */,
|
||||
D0C9C4612300E24D00FAB518 /* ReleaseAppStoreLLC */,
|
||||
D0C9C4672300E28D00FAB518 /* ReleaseHockeyappInternal */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = ReleaseAppStoreLLC;
|
||||
};
|
||||
D0C9C4622300E24D00FAB518 /* Build configuration list for PBXNativeTarget "LegacyUI" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
D0C9C4632300E24D00FAB518 /* DebugAppStoreLLC */,
|
||||
D0C9C4662300E28100FAB518 /* DebugHockeyapp */,
|
||||
D0C9C4642300E24D00FAB518 /* ReleaseAppStoreLLC */,
|
||||
D0C9C4682300E28D00FAB518 /* ReleaseHockeyappInternal */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = ReleaseAppStoreLLC;
|
||||
};
|
||||
/* End XCConfigurationList section */
|
||||
};
|
||||
rootObject = D0C9C4512300E24D00FAB518 /* Project object */;
|
||||
}
|
||||
|
|
@ -89,11 +89,11 @@ private final class LegacyComponentsOverlayWindowManagerImpl: NSObject, LegacyCo
|
|||
}
|
||||
}
|
||||
|
||||
final class LegacyControllerContext: NSObject, LegacyComponentsContext {
|
||||
private(set) weak var controller: ViewController?
|
||||
public final class LegacyControllerContext: NSObject, LegacyComponentsContext {
|
||||
public private(set) weak var controller: ViewController?
|
||||
private let theme: PresentationTheme?
|
||||
|
||||
init(controller: ViewController?, theme: PresentationTheme?) {
|
||||
public init(controller: ViewController?, theme: PresentationTheme?) {
|
||||
self.controller = controller
|
||||
self.theme = theme
|
||||
|
||||
|
|
@ -234,18 +234,18 @@ final class LegacyControllerContext: NSObject, LegacyComponentsContext {
|
|||
|
||||
}
|
||||
|
||||
func makeOverlayWindowManager() -> LegacyComponentsOverlayWindowManager! {
|
||||
public func makeOverlayWindowManager() -> LegacyComponentsOverlayWindowManager! {
|
||||
return LegacyComponentsOverlayWindowManagerImpl(parentController: self.controller, theme: self.theme)
|
||||
}
|
||||
|
||||
func applicationStatusBarAlpha() -> CGFloat {
|
||||
public func applicationStatusBarAlpha() -> CGFloat {
|
||||
if let controller = self.controller {
|
||||
return controller.statusBar.alpha
|
||||
}
|
||||
return 0.0
|
||||
}
|
||||
|
||||
func setApplicationStatusBarAlpha(_ alpha: CGFloat) {
|
||||
public func setApplicationStatusBarAlpha(_ alpha: CGFloat) {
|
||||
if let controller = self.controller {
|
||||
controller.statusBar.alpha = alpha
|
||||
self.updateDeferScreenEdgeGestures()
|
||||
|
|
@ -262,18 +262,18 @@ final class LegacyControllerContext: NSObject, LegacyComponentsContext {
|
|||
}
|
||||
}
|
||||
|
||||
func animateApplicationStatusBarAppearance(_ statusBarAnimation: Int32, delay: TimeInterval, duration: TimeInterval, completion: (() -> Void)!) {
|
||||
public func animateApplicationStatusBarAppearance(_ statusBarAnimation: Int32, delay: TimeInterval, duration: TimeInterval, completion: (() -> Void)!) {
|
||||
completion?()
|
||||
}
|
||||
|
||||
func animateApplicationStatusBarAppearance(_ statusBarAnimation: Int32, duration: TimeInterval, completion: (() -> Void)!) {
|
||||
public func animateApplicationStatusBarAppearance(_ statusBarAnimation: Int32, duration: TimeInterval, completion: (() -> Void)!) {
|
||||
self.animateApplicationStatusBarAppearance(statusBarAnimation, delay: 0.0, duration: duration, completion: completion)
|
||||
}
|
||||
|
||||
func animateApplicationStatusBarStyleTransition(withDuration duration: TimeInterval) {
|
||||
public func animateApplicationStatusBarStyleTransition(withDuration duration: TimeInterval) {
|
||||
}
|
||||
|
||||
func safeAreaInset() -> UIEdgeInsets {
|
||||
public func safeAreaInset() -> UIEdgeInsets {
|
||||
if let controller = self.controller as? LegacyController, let validLayout = controller.validLayout {
|
||||
var safeInsets = validLayout.safeInsets
|
||||
if safeInsets.top.isEqual(to: 44.0) {
|
||||
|
|
@ -287,7 +287,7 @@ final class LegacyControllerContext: NSObject, LegacyComponentsContext {
|
|||
return UIEdgeInsets()
|
||||
}
|
||||
|
||||
func prefersLightStatusBar() -> Bool {
|
||||
public func prefersLightStatusBar() -> Bool {
|
||||
if let controller = self.controller {
|
||||
switch controller.statusBar.statusBarStyle {
|
||||
case .Black:
|
||||
|
|
@ -303,7 +303,7 @@ final class LegacyControllerContext: NSObject, LegacyComponentsContext {
|
|||
}
|
||||
}
|
||||
|
||||
public class LegacyController: ViewController, PresentableController {
|
||||
open class LegacyController: ViewController, PresentableController {
|
||||
public private(set) var legacyController: UIViewController!
|
||||
private let presentation: LegacyControllerPresentation
|
||||
|
||||
|
|
@ -318,17 +318,17 @@ public class LegacyController: ViewController, PresentableController {
|
|||
|
||||
fileprivate var validLayout: ContainerViewLayout?
|
||||
|
||||
var controllerLoaded: (() -> Void)?
|
||||
public var controllerLoaded: (() -> Void)?
|
||||
public var presentationCompleted: (() -> Void)?
|
||||
|
||||
private let sizeClass: SVariable = SVariable()
|
||||
var enableSizeClassSignal: Bool = false
|
||||
var sizeClassSignal: SSignal {
|
||||
public var enableSizeClassSignal: Bool = false
|
||||
public var sizeClassSignal: SSignal {
|
||||
return self.sizeClass.signal()!
|
||||
}
|
||||
private var enableContainerLayoutUpdates = false
|
||||
|
||||
var disposables = DisposableSet()
|
||||
public var disposables = DisposableSet()
|
||||
|
||||
public init(presentation: LegacyControllerPresentation, theme: PresentationTheme? = nil, strings: PresentationStrings? = nil, initialLayout: ContainerViewLayout? = nil) {
|
||||
self.sizeClass.set(SSignal.single(UIUserInterfaceSizeClass.compact.rawValue as NSNumber))
|
||||
|
|
@ -368,12 +368,12 @@ public class LegacyController: ViewController, PresentableController {
|
|||
}
|
||||
}
|
||||
|
||||
override public func loadDisplayNode() {
|
||||
override open func loadDisplayNode() {
|
||||
self.displayNode = LegacyControllerNode()
|
||||
self.displayNodeDidLoad()
|
||||
}
|
||||
|
||||
override public func viewWillAppear(_ animated: Bool) {
|
||||
override open func viewWillAppear(_ animated: Bool) {
|
||||
super.viewWillAppear(animated)
|
||||
|
||||
if self.ignoreAppearanceMethodInvocations() {
|
||||
|
|
@ -398,7 +398,7 @@ public class LegacyController: ViewController, PresentableController {
|
|||
self.legacyController.viewWillAppear(animated && passControllerAppearanceAnimated(in: true, presentation: self.presentation))
|
||||
}
|
||||
|
||||
override public func viewWillDisappear(_ animated: Bool) {
|
||||
override open func viewWillDisappear(_ animated: Bool) {
|
||||
super.viewWillDisappear(animated)
|
||||
|
||||
if self.ignoreAppearanceMethodInvocations() {
|
||||
|
|
@ -410,7 +410,7 @@ public class LegacyController: ViewController, PresentableController {
|
|||
|
||||
private var viewDidAppearProcessed = false
|
||||
|
||||
override public func viewDidAppear(_ animated: Bool) {
|
||||
override open func viewDidAppear(_ animated: Bool) {
|
||||
super.viewDidAppear(animated)
|
||||
self.enableContainerLayoutUpdates = true
|
||||
if self.ignoreAppearanceMethodInvocations() {
|
||||
|
|
@ -448,7 +448,7 @@ public class LegacyController: ViewController, PresentableController {
|
|||
}
|
||||
}
|
||||
|
||||
override public func viewDidDisappear(_ animated: Bool) {
|
||||
override open func viewDidDisappear(_ animated: Bool) {
|
||||
super.viewDidDisappear(animated)
|
||||
self.viewDidAppearProcessed = false
|
||||
|
||||
|
|
@ -459,7 +459,7 @@ public class LegacyController: ViewController, PresentableController {
|
|||
self.legacyController.viewDidDisappear(animated && passControllerAppearanceAnimated(in: false, presentation: self.presentation))
|
||||
}
|
||||
|
||||
override public func containerLayoutUpdated(_ layout: ContainerViewLayout, transition: ContainedViewLayoutTransition) {
|
||||
override open func containerLayoutUpdated(_ layout: ContainerViewLayout, transition: ContainedViewLayoutTransition) {
|
||||
let previousSizeClass: UIUserInterfaceSizeClass
|
||||
if let validLayout = self.validLayout, case .regular = validLayout.metrics.widthClass {
|
||||
previousSizeClass = .regular
|
||||
|
|
@ -523,7 +523,7 @@ public class LegacyController: ViewController, PresentableController {
|
|||
}
|
||||
}
|
||||
|
||||
func dismissWithAnimation() {
|
||||
public func dismissWithAnimation() {
|
||||
self.controllerNode.animateModalOut { [weak self] in
|
||||
self?.presentingViewController?.dismiss(animated: false, completion: nil)
|
||||
}
|
||||
|
|
@ -3,21 +3,21 @@ import UIKit
|
|||
import LegacyComponents
|
||||
import Display
|
||||
|
||||
final class LegacyEmptyController: TGViewController {
|
||||
override init!(context: LegacyComponentsContext!) {
|
||||
public final class LegacyEmptyController: TGViewController {
|
||||
override public init!(context: LegacyComponentsContext!) {
|
||||
super.init(context: context)
|
||||
}
|
||||
|
||||
required init?(coder aDecoder: NSCoder) {
|
||||
required public init?(coder aDecoder: NSCoder) {
|
||||
fatalError("init(coder:) has not been implemented")
|
||||
}
|
||||
|
||||
override func viewDidLoad() {
|
||||
override public func viewDidLoad() {
|
||||
self.view.backgroundColor = nil
|
||||
self.view.isOpaque = false
|
||||
}
|
||||
|
||||
override func present(context generator: ((LegacyComponentsContext?) -> UIViewController?)!) {
|
||||
override public func present(context generator: ((LegacyComponentsContext?) -> UIViewController?)!) {
|
||||
if let context = self.context as? LegacyControllerContext, let controller = context.controller {
|
||||
let context = legacyContextGet()
|
||||
let presentationData = context?.sharedContext.currentPresentationData.with { $0 }
|
||||
|
|
@ -2,7 +2,7 @@ import Foundation
|
|||
import UIKit
|
||||
import LegacyComponents
|
||||
|
||||
func makeLegacyNavigationController(rootController: UIViewController) -> TGNavigationController {
|
||||
public func makeLegacyNavigationController(rootController: UIViewController) -> TGNavigationController {
|
||||
return TGNavigationController.make(withRootController: rootController)
|
||||
}
|
||||
|
||||
19
submodules/LegacyUI/Sources/LegacyUI.h
Normal file
19
submodules/LegacyUI/Sources/LegacyUI.h
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
//
|
||||
// LegacyUI.h
|
||||
// LegacyUI
|
||||
//
|
||||
// Created by Peter on 8/12/19.
|
||||
// Copyright © 2019 Telegram Messenger LLP. All rights reserved.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
//! Project version number for LegacyUI.
|
||||
FOUNDATION_EXPORT double LegacyUIVersionNumber;
|
||||
|
||||
//! Project version string for LegacyUI.
|
||||
FOUNDATION_EXPORT const unsigned char LegacyUIVersionString[];
|
||||
|
||||
// In this header, you should import all the public headers of your framework using statements like #import <LegacyUI/PublicHeader.h>
|
||||
|
||||
|
||||
|
|
@ -22,7 +22,7 @@ public func updateLegacyLocalization(strings: PresentationStrings) {
|
|||
legacyLocalization = TGLocalization(version: 0, code: strings.primaryComponent.languageCode, dict: strings.primaryComponent.dict, isActive: true)
|
||||
}
|
||||
|
||||
func updateLegacyTheme() {
|
||||
public func updateLegacyTheme() {
|
||||
TGCheckButtonView.resetCache()
|
||||
}
|
||||
|
||||
|
|
@ -75,6 +75,8 @@ private func readPacketCallback(userData: UnsafeMutableRawPointer?, buffer: Unsa
|
|||
let readCount = min(resourceSize - context.readingOffset, Int(bufferSize))
|
||||
let requestRange: Range<Int> = context.readingOffset ..< (context.readingOffset + readCount)
|
||||
|
||||
precondition(readCount < 1 * 1024 * 1024)
|
||||
|
||||
if let maximumFetchSize = context.maximumFetchSize {
|
||||
context.touchedRanges.insert(integersIn: requestRange)
|
||||
var totalCount = 0
|
||||
|
|
@ -122,12 +124,14 @@ private func readPacketCallback(userData: UnsafeMutableRawPointer?, buffer: Unsa
|
|||
let readingOffset = context.readingOffset
|
||||
let readCount = max(0, min(fileSize - readingOffset, Int(bufferSize)))
|
||||
let range = readingOffset ..< (readingOffset + readCount)
|
||||
precondition(readCount < 1 * 1024 * 1024)
|
||||
|
||||
lseek(fd, off_t(range.lowerBound), SEEK_SET)
|
||||
var data = Data(count: readCount)
|
||||
data.withUnsafeMutableBytes { (bytes: UnsafeMutablePointer<UInt8>) -> Void in
|
||||
let readBytes = read(fd, bytes, readCount)
|
||||
assert(readBytes <= readCount)
|
||||
data.withUnsafeMutableBytes { bytes -> Void in
|
||||
precondition(bytes.baseAddress != nil)
|
||||
let readBytes = read(fd, bytes.baseAddress, readCount)
|
||||
precondition(readBytes <= readCount)
|
||||
}
|
||||
fetchedData = data
|
||||
close(fd)
|
||||
|
|
@ -143,13 +147,17 @@ private func readPacketCallback(userData: UnsafeMutableRawPointer?, buffer: Unsa
|
|||
let readCount = max(0, min(next.size - readingOffset, Int(bufferSize)))
|
||||
let range = readingOffset ..< (readingOffset + readCount)
|
||||
|
||||
precondition(readCount < 1 * 1024 * 1024)
|
||||
|
||||
let fd = open(next.path, O_RDONLY, S_IRUSR)
|
||||
if fd >= 0 {
|
||||
lseek(fd, off_t(range.lowerBound), SEEK_SET)
|
||||
var data = Data(count: readCount)
|
||||
data.withUnsafeMutableBytes { (bytes: UnsafeMutablePointer<UInt8>) -> Void in
|
||||
let readBytes = read(fd, bytes, readCount)
|
||||
data.withUnsafeMutableBytes { bytes -> Void in
|
||||
precondition(bytes.baseAddress != nil)
|
||||
let readBytes = read(fd, bytes.baseAddress, readCount)
|
||||
assert(readBytes <= readCount)
|
||||
precondition(readBytes <= readCount)
|
||||
}
|
||||
fetchedData = data
|
||||
close(fd)
|
||||
|
|
@ -168,8 +176,9 @@ private func readPacketCallback(userData: UnsafeMutableRawPointer?, buffer: Unsa
|
|||
}
|
||||
}
|
||||
if let fetchedData = fetchedData {
|
||||
fetchedData.withUnsafeBytes { (bytes: UnsafePointer<UInt8>) -> Void in
|
||||
memcpy(buffer, bytes, fetchedData.count)
|
||||
fetchedData.withUnsafeBytes { bytes -> Void in
|
||||
precondition(bytes.baseAddress != nil)
|
||||
memcpy(buffer, bytes.baseAddress, fetchedData.count)
|
||||
}
|
||||
fetchedCount = Int32(fetchedData.count)
|
||||
context.readingOffset += Int(fetchedCount)
|
||||
|
|
|
|||
22
submodules/OpenInExternalAppUI/Info.plist
Normal file
22
submodules/OpenInExternalAppUI/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,603 @@
|
|||
// !$*UTF8*$!
|
||||
{
|
||||
archiveVersion = 1;
|
||||
classes = {
|
||||
};
|
||||
objectVersion = 50;
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
D0C9C40F2300D60C00FAB518 /* OpenInExternalAppUI.h in Headers */ = {isa = PBXBuildFile; fileRef = D0C9C40D2300D60C00FAB518 /* OpenInExternalAppUI.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
D0C9C41C2300D67800FAB518 /* OpenInOptions.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C4192300D67800FAB518 /* OpenInOptions.swift */; };
|
||||
D0C9C41D2300D67800FAB518 /* OpenInActionSheetController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C41A2300D67800FAB518 /* OpenInActionSheetController.swift */; };
|
||||
D0C9C41E2300D67800FAB518 /* OpenInAppIconResources.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C41B2300D67800FAB518 /* OpenInAppIconResources.swift */; };
|
||||
D0C9C4212300D68A00FAB518 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C4202300D68A00FAB518 /* Foundation.framework */; };
|
||||
D0C9C4232300D68D00FAB518 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C4222300D68D00FAB518 /* UIKit.framework */; };
|
||||
D0C9C4252300D69000FAB518 /* Display.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C4242300D69000FAB518 /* Display.framework */; };
|
||||
D0C9C4272300D69500FAB518 /* AsyncDisplayKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C4262300D69500FAB518 /* AsyncDisplayKit.framework */; };
|
||||
D0C9C4292300D69900FAB518 /* SwiftSignalKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C4282300D69900FAB518 /* SwiftSignalKit.framework */; };
|
||||
D0C9C42B2300D69D00FAB518 /* Postbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C42A2300D69D00FAB518 /* Postbox.framework */; };
|
||||
D0C9C42D2300D6A200FAB518 /* TelegramCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C42C2300D6A200FAB518 /* TelegramCore.framework */; };
|
||||
D0C9C42F2300D6A700FAB518 /* MapKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C42E2300D6A700FAB518 /* MapKit.framework */; };
|
||||
D0C9C4312300D6AB00FAB518 /* TelegramPresentationData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C4302300D6AB00FAB518 /* TelegramPresentationData.framework */; };
|
||||
D0C9C4332300D6B100FAB518 /* AccountContext.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C4322300D6B100FAB518 /* AccountContext.framework */; };
|
||||
D0C9C4352300D6B500FAB518 /* PhotoResources.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C4342300D6B500FAB518 /* PhotoResources.framework */; };
|
||||
D0C9C4372300D6C100FAB518 /* CoreLocation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C4362300D6C000FAB518 /* CoreLocation.framework */; };
|
||||
D0C9C4392300D6C400FAB518 /* UrlEscaping.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C4382300D6C400FAB518 /* UrlEscaping.framework */; };
|
||||
D0C9C43F2300D75500FAB518 /* FrameworkBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C43E2300D75500FAB518 /* FrameworkBundle.swift */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
D0C9C40A2300D60C00FAB518 /* OpenInExternalAppUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = OpenInExternalAppUI.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9C40D2300D60C00FAB518 /* OpenInExternalAppUI.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OpenInExternalAppUI.h; sourceTree = "<group>"; };
|
||||
D0C9C40E2300D60C00FAB518 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||
D0C9C4192300D67800FAB518 /* OpenInOptions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OpenInOptions.swift; sourceTree = "<group>"; };
|
||||
D0C9C41A2300D67800FAB518 /* OpenInActionSheetController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OpenInActionSheetController.swift; sourceTree = "<group>"; };
|
||||
D0C9C41B2300D67800FAB518 /* OpenInAppIconResources.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OpenInAppIconResources.swift; sourceTree = "<group>"; };
|
||||
D0C9C4202300D68A00FAB518 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
|
||||
D0C9C4222300D68D00FAB518 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
|
||||
D0C9C4242300D69000FAB518 /* Display.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Display.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9C4262300D69500FAB518 /* AsyncDisplayKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AsyncDisplayKit.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9C4282300D69900FAB518 /* SwiftSignalKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = SwiftSignalKit.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9C42A2300D69D00FAB518 /* Postbox.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Postbox.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9C42C2300D6A200FAB518 /* TelegramCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramCore.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9C42E2300D6A700FAB518 /* MapKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MapKit.framework; path = System/Library/Frameworks/MapKit.framework; sourceTree = SDKROOT; };
|
||||
D0C9C4302300D6AB00FAB518 /* TelegramPresentationData.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramPresentationData.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9C4322300D6B100FAB518 /* AccountContext.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AccountContext.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9C4342300D6B500FAB518 /* PhotoResources.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = PhotoResources.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9C4362300D6C000FAB518 /* CoreLocation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreLocation.framework; path = System/Library/Frameworks/CoreLocation.framework; sourceTree = SDKROOT; };
|
||||
D0C9C4382300D6C400FAB518 /* UrlEscaping.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = UrlEscaping.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9C43E2300D75500FAB518 /* FrameworkBundle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FrameworkBundle.swift; sourceTree = "<group>"; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
D0C9C4072300D60C00FAB518 /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
D0C9C4392300D6C400FAB518 /* UrlEscaping.framework in Frameworks */,
|
||||
D0C9C4372300D6C100FAB518 /* CoreLocation.framework in Frameworks */,
|
||||
D0C9C4352300D6B500FAB518 /* PhotoResources.framework in Frameworks */,
|
||||
D0C9C4332300D6B100FAB518 /* AccountContext.framework in Frameworks */,
|
||||
D0C9C4312300D6AB00FAB518 /* TelegramPresentationData.framework in Frameworks */,
|
||||
D0C9C42F2300D6A700FAB518 /* MapKit.framework in Frameworks */,
|
||||
D0C9C42D2300D6A200FAB518 /* TelegramCore.framework in Frameworks */,
|
||||
D0C9C42B2300D69D00FAB518 /* Postbox.framework in Frameworks */,
|
||||
D0C9C4292300D69900FAB518 /* SwiftSignalKit.framework in Frameworks */,
|
||||
D0C9C4272300D69500FAB518 /* AsyncDisplayKit.framework in Frameworks */,
|
||||
D0C9C4252300D69000FAB518 /* Display.framework in Frameworks */,
|
||||
D0C9C4232300D68D00FAB518 /* UIKit.framework in Frameworks */,
|
||||
D0C9C4212300D68A00FAB518 /* Foundation.framework in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXFrameworksBuildPhase section */
|
||||
|
||||
/* Begin PBXGroup section */
|
||||
D0C9C4002300D60C00FAB518 = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
D0C9C40E2300D60C00FAB518 /* Info.plist */,
|
||||
D0C9C40C2300D60C00FAB518 /* Sources */,
|
||||
D0C9C40B2300D60C00FAB518 /* Products */,
|
||||
D0C9C41F2300D68A00FAB518 /* Frameworks */,
|
||||
);
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
D0C9C40B2300D60C00FAB518 /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
D0C9C40A2300D60C00FAB518 /* OpenInExternalAppUI.framework */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
D0C9C40C2300D60C00FAB518 /* Sources */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
D0C9C41A2300D67800FAB518 /* OpenInActionSheetController.swift */,
|
||||
D0C9C41B2300D67800FAB518 /* OpenInAppIconResources.swift */,
|
||||
D0C9C4192300D67800FAB518 /* OpenInOptions.swift */,
|
||||
D0C9C43E2300D75500FAB518 /* FrameworkBundle.swift */,
|
||||
D0C9C40D2300D60C00FAB518 /* OpenInExternalAppUI.h */,
|
||||
);
|
||||
path = Sources;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
D0C9C41F2300D68A00FAB518 /* Frameworks */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
D0C9C4382300D6C400FAB518 /* UrlEscaping.framework */,
|
||||
D0C9C4362300D6C000FAB518 /* CoreLocation.framework */,
|
||||
D0C9C4342300D6B500FAB518 /* PhotoResources.framework */,
|
||||
D0C9C4322300D6B100FAB518 /* AccountContext.framework */,
|
||||
D0C9C4302300D6AB00FAB518 /* TelegramPresentationData.framework */,
|
||||
D0C9C42E2300D6A700FAB518 /* MapKit.framework */,
|
||||
D0C9C42C2300D6A200FAB518 /* TelegramCore.framework */,
|
||||
D0C9C42A2300D69D00FAB518 /* Postbox.framework */,
|
||||
D0C9C4282300D69900FAB518 /* SwiftSignalKit.framework */,
|
||||
D0C9C4262300D69500FAB518 /* AsyncDisplayKit.framework */,
|
||||
D0C9C4242300D69000FAB518 /* Display.framework */,
|
||||
D0C9C4222300D68D00FAB518 /* UIKit.framework */,
|
||||
D0C9C4202300D68A00FAB518 /* Foundation.framework */,
|
||||
);
|
||||
name = Frameworks;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXGroup section */
|
||||
|
||||
/* Begin PBXHeadersBuildPhase section */
|
||||
D0C9C4052300D60C00FAB518 /* Headers */ = {
|
||||
isa = PBXHeadersBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
D0C9C40F2300D60C00FAB518 /* OpenInExternalAppUI.h in Headers */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXHeadersBuildPhase section */
|
||||
|
||||
/* Begin PBXNativeTarget section */
|
||||
D0C9C4092300D60C00FAB518 /* OpenInExternalAppUI */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = D0C9C4122300D60C00FAB518 /* Build configuration list for PBXNativeTarget "OpenInExternalAppUI" */;
|
||||
buildPhases = (
|
||||
D0C9C4052300D60C00FAB518 /* Headers */,
|
||||
D0C9C4062300D60C00FAB518 /* Sources */,
|
||||
D0C9C4072300D60C00FAB518 /* Frameworks */,
|
||||
D0C9C4082300D60C00FAB518 /* Resources */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
);
|
||||
name = OpenInExternalAppUI;
|
||||
productName = OpenInExternalAppUI;
|
||||
productReference = D0C9C40A2300D60C00FAB518 /* OpenInExternalAppUI.framework */;
|
||||
productType = "com.apple.product-type.framework";
|
||||
};
|
||||
/* End PBXNativeTarget section */
|
||||
|
||||
/* Begin PBXProject section */
|
||||
D0C9C4012300D60C00FAB518 /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
DefaultBuildSystemTypeForWorkspace = Latest;
|
||||
LastUpgradeCheck = 1030;
|
||||
ORGANIZATIONNAME = "Telegram Messenger LLP";
|
||||
TargetAttributes = {
|
||||
D0C9C4092300D60C00FAB518 = {
|
||||
CreatedOnToolsVersion = 10.3;
|
||||
LastSwiftMigration = 1030;
|
||||
};
|
||||
};
|
||||
};
|
||||
buildConfigurationList = D0C9C4042300D60C00FAB518 /* Build configuration list for PBXProject "OpenInExternalAppUI_Xcode" */;
|
||||
compatibilityVersion = "Xcode 9.3";
|
||||
developmentRegion = en;
|
||||
hasScannedForEncodings = 0;
|
||||
knownRegions = (
|
||||
en,
|
||||
);
|
||||
mainGroup = D0C9C4002300D60C00FAB518;
|
||||
productRefGroup = D0C9C40B2300D60C00FAB518 /* Products */;
|
||||
projectDirPath = "";
|
||||
projectRoot = "";
|
||||
targets = (
|
||||
D0C9C4092300D60C00FAB518 /* OpenInExternalAppUI */,
|
||||
);
|
||||
};
|
||||
/* End PBXProject section */
|
||||
|
||||
/* Begin PBXResourcesBuildPhase section */
|
||||
D0C9C4082300D60C00FAB518 /* Resources */ = {
|
||||
isa = PBXResourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXResourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXSourcesBuildPhase section */
|
||||
D0C9C4062300D60C00FAB518 /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
D0C9C43F2300D75500FAB518 /* FrameworkBundle.swift in Sources */,
|
||||
D0C9C41D2300D67800FAB518 /* OpenInActionSheetController.swift in Sources */,
|
||||
D0C9C41C2300D67800FAB518 /* OpenInOptions.swift in Sources */,
|
||||
D0C9C41E2300D67800FAB518 /* OpenInAppIconResources.swift in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXSourcesBuildPhase section */
|
||||
|
||||
/* Begin XCBuildConfiguration section */
|
||||
D0C9C4102300D60C00FAB518 /* 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;
|
||||
};
|
||||
D0C9C4112300D60C00FAB518 /* 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;
|
||||
};
|
||||
D0C9C4132300D60C00FAB518 /* 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.OpenInExternalAppUI;
|
||||
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
|
||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||
SKIP_INSTALL = YES;
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
||||
SWIFT_VERSION = 5.0;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
};
|
||||
name = DebugAppStoreLLC;
|
||||
};
|
||||
D0C9C4142300D60C00FAB518 /* 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.OpenInExternalAppUI;
|
||||
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
|
||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||
SKIP_INSTALL = YES;
|
||||
SWIFT_VERSION = 5.0;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
};
|
||||
name = ReleaseAppStoreLLC;
|
||||
};
|
||||
D0C9C4152300D65600FAB518 /* DebugHockeyapp */ = {
|
||||
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 = DebugHockeyapp;
|
||||
};
|
||||
D0C9C4162300D65600FAB518 /* DebugHockeyapp */ = {
|
||||
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.OpenInExternalAppUI;
|
||||
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
|
||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||
SKIP_INSTALL = YES;
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
||||
SWIFT_VERSION = 5.0;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
};
|
||||
name = DebugHockeyapp;
|
||||
};
|
||||
D0C9C4172300D66100FAB518 /* ReleaseHockeyappInternal */ = {
|
||||
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 = ReleaseHockeyappInternal;
|
||||
};
|
||||
D0C9C4182300D66100FAB518 /* ReleaseHockeyappInternal */ = {
|
||||
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.OpenInExternalAppUI;
|
||||
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
|
||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||
SKIP_INSTALL = YES;
|
||||
SWIFT_VERSION = 5.0;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
};
|
||||
name = ReleaseHockeyappInternal;
|
||||
};
|
||||
/* End XCBuildConfiguration section */
|
||||
|
||||
/* Begin XCConfigurationList section */
|
||||
D0C9C4042300D60C00FAB518 /* Build configuration list for PBXProject "OpenInExternalAppUI_Xcode" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
D0C9C4102300D60C00FAB518 /* DebugAppStoreLLC */,
|
||||
D0C9C4152300D65600FAB518 /* DebugHockeyapp */,
|
||||
D0C9C4112300D60C00FAB518 /* ReleaseAppStoreLLC */,
|
||||
D0C9C4172300D66100FAB518 /* ReleaseHockeyappInternal */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = ReleaseAppStoreLLC;
|
||||
};
|
||||
D0C9C4122300D60C00FAB518 /* Build configuration list for PBXNativeTarget "OpenInExternalAppUI" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
D0C9C4132300D60C00FAB518 /* DebugAppStoreLLC */,
|
||||
D0C9C4162300D65600FAB518 /* DebugHockeyapp */,
|
||||
D0C9C4142300D60C00FAB518 /* ReleaseAppStoreLLC */,
|
||||
D0C9C4182300D66100FAB518 /* ReleaseHockeyappInternal */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = ReleaseAppStoreLLC;
|
||||
};
|
||||
/* End XCConfigurationList section */
|
||||
};
|
||||
rootObject = D0C9C4012300D60C00FAB518 /* Project object */;
|
||||
}
|
||||
13
submodules/OpenInExternalAppUI/Sources/FrameworkBundle.swift
Normal file
13
submodules/OpenInExternalAppUI/Sources/FrameworkBundle.swift
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
import Foundation
|
||||
import UIKit
|
||||
|
||||
private class FrameworkBundleClass: NSObject {
|
||||
}
|
||||
|
||||
let frameworkBundle: Bundle = Bundle(for: FrameworkBundleClass.self)
|
||||
|
||||
extension UIImage {
|
||||
convenience init?(bundleImageName: String) {
|
||||
self.init(named: bundleImageName, in: frameworkBundle, compatibleWith: nil)
|
||||
}
|
||||
}
|
||||
|
|
@ -11,19 +11,24 @@ import AccountContext
|
|||
import PhotoResources
|
||||
|
||||
public struct OpenInControllerAction {
|
||||
let title: String
|
||||
let action: () -> Void
|
||||
public let title: String
|
||||
public let action: () -> Void
|
||||
|
||||
public init(title: String, action: @escaping () -> Void) {
|
||||
self.title = title
|
||||
self.action = action
|
||||
}
|
||||
}
|
||||
|
||||
final class OpenInActionSheetController: ActionSheetController {
|
||||
public final class OpenInActionSheetController: ActionSheetController {
|
||||
private var presentationDisposable: Disposable?
|
||||
|
||||
private let _ready = Promise<Bool>()
|
||||
override var ready: Promise<Bool> {
|
||||
override public var ready: Promise<Bool> {
|
||||
return self._ready
|
||||
}
|
||||
|
||||
init(context: AccountContext, item: OpenInItem, additionalAction: OpenInControllerAction? = nil, openUrl: @escaping (String) -> Void) {
|
||||
public init(context: AccountContext, item: OpenInItem, additionalAction: OpenInControllerAction? = nil, openUrl: @escaping (String) -> Void) {
|
||||
let presentationData = context.sharedContext.currentPresentationData.with { $0 }
|
||||
let theme = presentationData.theme
|
||||
let strings = presentationData.strings
|
||||
|
|
@ -77,7 +82,7 @@ final class OpenInActionSheetController: ActionSheetController {
|
|||
])
|
||||
}
|
||||
|
||||
required init(coder aDecoder: NSCoder) {
|
||||
required public init(coder aDecoder: NSCoder) {
|
||||
fatalError("init(coder:) has not been implemented")
|
||||
}
|
||||
|
||||
|
|
@ -60,7 +60,7 @@ public class OpenInAppIconResource: TelegramMediaResource {
|
|||
}
|
||||
}
|
||||
|
||||
func fetchOpenInAppIconResource(resource: OpenInAppIconResource) -> Signal<MediaResourceDataFetchResult, MediaResourceDataFetchError> {
|
||||
public func fetchOpenInAppIconResource(resource: OpenInAppIconResource) -> Signal<MediaResourceDataFetchResult, MediaResourceDataFetchError> {
|
||||
return Signal { subscriber in
|
||||
subscriber.putNext(.reset)
|
||||
|
||||
19
submodules/OpenInExternalAppUI/Sources/OpenInExternalAppUI.h
Normal file
19
submodules/OpenInExternalAppUI/Sources/OpenInExternalAppUI.h
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
//
|
||||
// OpenInExternalAppUI.h
|
||||
// OpenInExternalAppUI
|
||||
//
|
||||
// Created by Peter on 8/12/19.
|
||||
// Copyright © 2019 Telegram Messenger LLP. All rights reserved.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
//! Project version number for OpenInExternalAppUI.
|
||||
FOUNDATION_EXPORT double OpenInExternalAppUIVersionNumber;
|
||||
|
||||
//! Project version string for OpenInExternalAppUI.
|
||||
FOUNDATION_EXPORT const unsigned char OpenInExternalAppUIVersionString[];
|
||||
|
||||
// In this header, you should import all the public headers of your framework using statements like #import <OpenInExternalAppUI/PublicHeader.h>
|
||||
|
||||
|
||||
|
|
@ -6,33 +6,33 @@ import MapKit
|
|||
import AccountContext
|
||||
import UrlEscaping
|
||||
|
||||
enum OpenInItem {
|
||||
public enum OpenInItem {
|
||||
case url(url: String)
|
||||
case location(location: TelegramMediaMap, withDirections: Bool)
|
||||
}
|
||||
|
||||
enum OpenInApplication {
|
||||
public enum OpenInApplication {
|
||||
case safari
|
||||
case maps
|
||||
case other(title: String, identifier: Int64, scheme: String, store: String?)
|
||||
}
|
||||
|
||||
enum OpenInAction {
|
||||
public enum OpenInAction {
|
||||
case none
|
||||
case openUrl(url: String)
|
||||
case openLocation(latitude: Double, longitude: Double, withDirections: Bool)
|
||||
}
|
||||
|
||||
final class OpenInOption {
|
||||
let application: OpenInApplication
|
||||
let action: () -> OpenInAction
|
||||
public final class OpenInOption {
|
||||
public let application: OpenInApplication
|
||||
public let action: () -> OpenInAction
|
||||
|
||||
init(application: OpenInApplication, action: @escaping () -> OpenInAction) {
|
||||
public init(application: OpenInApplication, action: @escaping () -> OpenInAction) {
|
||||
self.application = application
|
||||
self.action = action
|
||||
}
|
||||
|
||||
var title: String {
|
||||
public var title: String {
|
||||
get {
|
||||
switch self.application {
|
||||
case .safari:
|
||||
|
|
@ -46,7 +46,7 @@ final class OpenInOption {
|
|||
}
|
||||
}
|
||||
|
||||
func availableOpenInOptions(context: AccountContext, item: OpenInItem) -> [OpenInOption] {
|
||||
public func availableOpenInOptions(context: AccountContext, item: OpenInItem) -> [OpenInOption] {
|
||||
return allOpenInOptions(context: context, item: item).filter { option in
|
||||
if case let .other(_, _, scheme, _) = option.application {
|
||||
return context.sharedContext.applicationBindings.canOpenUrl("\(scheme)://")
|
||||
22
submodules/PassportUI/Info.plist
Normal file
22
submodules/PassportUI/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>
|
||||
775
submodules/PassportUI/PassportUI_Xcode.xcodeproj/project.pbxproj
Normal file
775
submodules/PassportUI/PassportUI_Xcode.xcodeproj/project.pbxproj
Normal file
|
|
@ -0,0 +1,775 @@
|
|||
// !$*UTF8*$!
|
||||
{
|
||||
archiveVersion = 1;
|
||||
classes = {
|
||||
};
|
||||
objectVersion = 50;
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
D0C9C1F02300222100FAB518 /* PassportUI.h in Headers */ = {isa = PBXBuildFile; fileRef = D0C9C1EE2300222100FAB518 /* PassportUI.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
D0C9C220230022AB00FAB518 /* SecureIdValueFormFileItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C1FA230022A400FAB518 /* SecureIdValueFormFileItem.swift */; };
|
||||
D0C9C221230022AB00FAB518 /* SecureIdDocumentGalleryFooterContentNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C1FB230022A400FAB518 /* SecureIdDocumentGalleryFooterContentNode.swift */; };
|
||||
D0C9C222230022AB00FAB518 /* SecureIdDocumentImageGalleryItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C1FC230022A400FAB518 /* SecureIdDocumentImageGalleryItem.swift */; };
|
||||
D0C9C223230022AB00FAB518 /* SecureIdAuthListFieldNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C1FD230022A400FAB518 /* SecureIdAuthListFieldNode.swift */; };
|
||||
D0C9C224230022AB00FAB518 /* SecureIdDocumentFormController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C1FE230022A400FAB518 /* SecureIdDocumentFormController.swift */; };
|
||||
D0C9C225230022AB00FAB518 /* SecureIdDocumentFormControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C1FF230022A400FAB518 /* SecureIdDocumentFormControllerNode.swift */; };
|
||||
D0C9C226230022AB00FAB518 /* SecureIdValues.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C200230022A400FAB518 /* SecureIdValues.swift */; };
|
||||
D0C9C227230022AB00FAB518 /* SecureIdAuthListContentNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C201230022A400FAB518 /* SecureIdAuthListContentNode.swift */; };
|
||||
D0C9C228230022AB00FAB518 /* SecureIdDocumentGalleryController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C202230022A500FAB518 /* SecureIdDocumentGalleryController.swift */; };
|
||||
D0C9C229230022AB00FAB518 /* SecureIdAuthControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C203230022A500FAB518 /* SecureIdAuthControllerNode.swift */; };
|
||||
D0C9C22A230022AB00FAB518 /* SecureIdVerificationDocumentsContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C204230022A500FAB518 /* SecureIdVerificationDocumentsContext.swift */; };
|
||||
D0C9C22B230022AB00FAB518 /* SecureIdValueFormPhoneItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C205230022A500FAB518 /* SecureIdValueFormPhoneItem.swift */; };
|
||||
D0C9C22C230022AB00FAB518 /* FormControllerActionItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C206230022A500FAB518 /* FormControllerActionItem.swift */; };
|
||||
D0C9C22D230022AB00FAB518 /* FormEditableBlockItemNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C207230022A500FAB518 /* FormEditableBlockItemNode.swift */; };
|
||||
D0C9C22E230022AB00FAB518 /* FormControllerScrollerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C208230022A600FAB518 /* FormControllerScrollerNode.swift */; };
|
||||
D0C9C22F230022AB00FAB518 /* FormControllerTextItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C209230022A600FAB518 /* FormControllerTextItem.swift */; };
|
||||
D0C9C230230022AB00FAB518 /* SecureIdAuthHeaderNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C20A230022A600FAB518 /* SecureIdAuthHeaderNode.swift */; };
|
||||
D0C9C231230022AB00FAB518 /* SecureIdAuthAcceptNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C20B230022A600FAB518 /* SecureIdAuthAcceptNode.swift */; };
|
||||
D0C9C232230022AB00FAB518 /* SecureIdDocumentTypeSelectionController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C20C230022A600FAB518 /* SecureIdDocumentTypeSelectionController.swift */; };
|
||||
D0C9C233230022AB00FAB518 /* SecureIdAuthControllerState.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C20D230022A600FAB518 /* SecureIdAuthControllerState.swift */; };
|
||||
D0C9C234230022AB00FAB518 /* FormControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C20E230022A700FAB518 /* FormControllerNode.swift */; };
|
||||
D0C9C235230022AB00FAB518 /* FormController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C20F230022A700FAB518 /* FormController.swift */; };
|
||||
D0C9C236230022AB00FAB518 /* FormBlockItemNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C210230022A700FAB518 /* FormBlockItemNode.swift */; };
|
||||
D0C9C237230022AB00FAB518 /* SecureIdAuthFormContentNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C211230022A700FAB518 /* SecureIdAuthFormContentNode.swift */; };
|
||||
D0C9C238230022AB00FAB518 /* FormControllerTextInputItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C212230022A700FAB518 /* FormControllerTextInputItem.swift */; };
|
||||
D0C9C239230022AB00FAB518 /* SecureIdAuthPasswordOptionContentNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C213230022A700FAB518 /* SecureIdAuthPasswordOptionContentNode.swift */; };
|
||||
D0C9C23A230022AB00FAB518 /* SecureIdAuthPasswordSetupContentNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C214230022A700FAB518 /* SecureIdAuthPasswordSetupContentNode.swift */; };
|
||||
D0C9C23B230022AB00FAB518 /* SecureIdAuthFormFieldNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C215230022A800FAB518 /* SecureIdAuthFormFieldNode.swift */; };
|
||||
D0C9C23C230022AB00FAB518 /* SecureIdAuthController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C216230022A800FAB518 /* SecureIdAuthController.swift */; };
|
||||
D0C9C23D230022AB00FAB518 /* FormControllerDetailActionItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C217230022A800FAB518 /* FormControllerDetailActionItem.swift */; };
|
||||
D0C9C23E230022AB00FAB518 /* SecureIdLocalResource.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C218230022A800FAB518 /* SecureIdLocalResource.swift */; };
|
||||
D0C9C23F230022AB00FAB518 /* SecureIdPlaintextFormController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C219230022A800FAB518 /* SecureIdPlaintextFormController.swift */; };
|
||||
D0C9C240230022AB00FAB518 /* SecureIdPlaintextFormControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C21A230022A800FAB518 /* SecureIdPlaintextFormControllerNode.swift */; };
|
||||
D0C9C241230022AB00FAB518 /* SecureIdVerificationDocument.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C21B230022A900FAB518 /* SecureIdVerificationDocument.swift */; };
|
||||
D0C9C242230022AB00FAB518 /* FormControllerItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C21D230022AB00FAB518 /* FormControllerItem.swift */; };
|
||||
D0C9C243230022AB00FAB518 /* SecureIdAuthContentNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C21E230022AB00FAB518 /* SecureIdAuthContentNode.swift */; };
|
||||
D0C9C244230022AB00FAB518 /* FormControllerHeaderItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C21F230022AB00FAB518 /* FormControllerHeaderItem.swift */; };
|
||||
D0C9C247230022C100FAB518 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C246230022C100FAB518 /* UIKit.framework */; };
|
||||
D0C9C249230022C300FAB518 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C248230022C200FAB518 /* Foundation.framework */; };
|
||||
D0C9C24B230022C500FAB518 /* Postbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C24A230022C500FAB518 /* Postbox.framework */; };
|
||||
D0C9C24D230022C900FAB518 /* TelegramCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C24C230022C900FAB518 /* TelegramCore.framework */; };
|
||||
D0C9C24F230022CE00FAB518 /* SwiftSignalKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C24E230022CE00FAB518 /* SwiftSignalKit.framework */; };
|
||||
D0C9C251230022D400FAB518 /* AsyncDisplayKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C250230022D400FAB518 /* AsyncDisplayKit.framework */; };
|
||||
D0C9C253230022D800FAB518 /* Display.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C252230022D800FAB518 /* Display.framework */; };
|
||||
D0C9C255230022E000FAB518 /* TelegramPresentationData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C254230022E000FAB518 /* TelegramPresentationData.framework */; };
|
||||
D0C9C25923009EC900FAB518 /* FindSecureIdValue.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C25823009EC900FAB518 /* FindSecureIdValue.swift */; };
|
||||
D0C9C2812300A04900FAB518 /* PhoneInputNode.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C2802300A04900FAB518 /* PhoneInputNode.framework */; };
|
||||
D0C9C2852300A0BF00FAB518 /* FrameworkBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C2842300A0BF00FAB518 /* FrameworkBundle.swift */; };
|
||||
D0C9C2B32300A1D300FAB518 /* CountrySelectionUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C2B22300A1D300FAB518 /* CountrySelectionUI.framework */; };
|
||||
D0C9C3332300AA0100FAB518 /* GalleryUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C3322300AA0100FAB518 /* GalleryUI.framework */; };
|
||||
D0C9C4492300E15E00FAB518 /* LegacySecureIdAttachmentMenu.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C4482300E15E00FAB518 /* LegacySecureIdAttachmentMenu.swift */; };
|
||||
D0C9C44B2300E17600FAB518 /* LegacyComponents.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C44A2300E17600FAB518 /* LegacyComponents.framework */; };
|
||||
D0C9C44D2300E17A00FAB518 /* OverlayStatusController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C44C2300E17A00FAB518 /* OverlayStatusController.framework */; };
|
||||
D0C9C44F2300E1D600FAB518 /* LegacySecureIdScanController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C44E2300E1D600FAB518 /* LegacySecureIdScanController.swift */; };
|
||||
D0C9C47D2300E31700FAB518 /* LegacyUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C47C2300E31700FAB518 /* LegacyUI.framework */; };
|
||||
D0C9C4BF2300E5B400FAB518 /* ImageCompression.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C4BE2300E5B400FAB518 /* ImageCompression.framework */; };
|
||||
D0C9C4DA2300E67200FAB518 /* DateSelectionUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C4D92300E67200FAB518 /* DateSelectionUI.framework */; };
|
||||
D0C9C52D2300EFB100FAB518 /* PasswordSetupUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C52C2300EFB100FAB518 /* PasswordSetupUI.framework */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
D0C9C1EB2300222100FAB518 /* PassportUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = PassportUI.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9C1EE2300222100FAB518 /* PassportUI.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PassportUI.h; sourceTree = "<group>"; };
|
||||
D0C9C1EF2300222100FAB518 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||
D0C9C1FA230022A400FAB518 /* SecureIdValueFormFileItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SecureIdValueFormFileItem.swift; sourceTree = "<group>"; };
|
||||
D0C9C1FB230022A400FAB518 /* SecureIdDocumentGalleryFooterContentNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SecureIdDocumentGalleryFooterContentNode.swift; sourceTree = "<group>"; };
|
||||
D0C9C1FC230022A400FAB518 /* SecureIdDocumentImageGalleryItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SecureIdDocumentImageGalleryItem.swift; sourceTree = "<group>"; };
|
||||
D0C9C1FD230022A400FAB518 /* SecureIdAuthListFieldNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SecureIdAuthListFieldNode.swift; sourceTree = "<group>"; };
|
||||
D0C9C1FE230022A400FAB518 /* SecureIdDocumentFormController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SecureIdDocumentFormController.swift; sourceTree = "<group>"; };
|
||||
D0C9C1FF230022A400FAB518 /* SecureIdDocumentFormControllerNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SecureIdDocumentFormControllerNode.swift; sourceTree = "<group>"; };
|
||||
D0C9C200230022A400FAB518 /* SecureIdValues.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SecureIdValues.swift; sourceTree = "<group>"; };
|
||||
D0C9C201230022A400FAB518 /* SecureIdAuthListContentNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SecureIdAuthListContentNode.swift; sourceTree = "<group>"; };
|
||||
D0C9C202230022A500FAB518 /* SecureIdDocumentGalleryController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SecureIdDocumentGalleryController.swift; sourceTree = "<group>"; };
|
||||
D0C9C203230022A500FAB518 /* SecureIdAuthControllerNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SecureIdAuthControllerNode.swift; sourceTree = "<group>"; };
|
||||
D0C9C204230022A500FAB518 /* SecureIdVerificationDocumentsContext.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SecureIdVerificationDocumentsContext.swift; sourceTree = "<group>"; };
|
||||
D0C9C205230022A500FAB518 /* SecureIdValueFormPhoneItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SecureIdValueFormPhoneItem.swift; sourceTree = "<group>"; };
|
||||
D0C9C206230022A500FAB518 /* FormControllerActionItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FormControllerActionItem.swift; sourceTree = "<group>"; };
|
||||
D0C9C207230022A500FAB518 /* FormEditableBlockItemNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FormEditableBlockItemNode.swift; sourceTree = "<group>"; };
|
||||
D0C9C208230022A600FAB518 /* FormControllerScrollerNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FormControllerScrollerNode.swift; sourceTree = "<group>"; };
|
||||
D0C9C209230022A600FAB518 /* FormControllerTextItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FormControllerTextItem.swift; sourceTree = "<group>"; };
|
||||
D0C9C20A230022A600FAB518 /* SecureIdAuthHeaderNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SecureIdAuthHeaderNode.swift; sourceTree = "<group>"; };
|
||||
D0C9C20B230022A600FAB518 /* SecureIdAuthAcceptNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SecureIdAuthAcceptNode.swift; sourceTree = "<group>"; };
|
||||
D0C9C20C230022A600FAB518 /* SecureIdDocumentTypeSelectionController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SecureIdDocumentTypeSelectionController.swift; sourceTree = "<group>"; };
|
||||
D0C9C20D230022A600FAB518 /* SecureIdAuthControllerState.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SecureIdAuthControllerState.swift; sourceTree = "<group>"; };
|
||||
D0C9C20E230022A700FAB518 /* FormControllerNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FormControllerNode.swift; sourceTree = "<group>"; };
|
||||
D0C9C20F230022A700FAB518 /* FormController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FormController.swift; sourceTree = "<group>"; };
|
||||
D0C9C210230022A700FAB518 /* FormBlockItemNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FormBlockItemNode.swift; sourceTree = "<group>"; };
|
||||
D0C9C211230022A700FAB518 /* SecureIdAuthFormContentNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SecureIdAuthFormContentNode.swift; sourceTree = "<group>"; };
|
||||
D0C9C212230022A700FAB518 /* FormControllerTextInputItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FormControllerTextInputItem.swift; sourceTree = "<group>"; };
|
||||
D0C9C213230022A700FAB518 /* SecureIdAuthPasswordOptionContentNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SecureIdAuthPasswordOptionContentNode.swift; sourceTree = "<group>"; };
|
||||
D0C9C214230022A700FAB518 /* SecureIdAuthPasswordSetupContentNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SecureIdAuthPasswordSetupContentNode.swift; sourceTree = "<group>"; };
|
||||
D0C9C215230022A800FAB518 /* SecureIdAuthFormFieldNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SecureIdAuthFormFieldNode.swift; sourceTree = "<group>"; };
|
||||
D0C9C216230022A800FAB518 /* SecureIdAuthController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SecureIdAuthController.swift; sourceTree = "<group>"; };
|
||||
D0C9C217230022A800FAB518 /* FormControllerDetailActionItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FormControllerDetailActionItem.swift; sourceTree = "<group>"; };
|
||||
D0C9C218230022A800FAB518 /* SecureIdLocalResource.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SecureIdLocalResource.swift; sourceTree = "<group>"; };
|
||||
D0C9C219230022A800FAB518 /* SecureIdPlaintextFormController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SecureIdPlaintextFormController.swift; sourceTree = "<group>"; };
|
||||
D0C9C21A230022A800FAB518 /* SecureIdPlaintextFormControllerNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SecureIdPlaintextFormControllerNode.swift; sourceTree = "<group>"; };
|
||||
D0C9C21B230022A900FAB518 /* SecureIdVerificationDocument.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SecureIdVerificationDocument.swift; sourceTree = "<group>"; };
|
||||
D0C9C21D230022AB00FAB518 /* FormControllerItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FormControllerItem.swift; sourceTree = "<group>"; };
|
||||
D0C9C21E230022AB00FAB518 /* SecureIdAuthContentNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SecureIdAuthContentNode.swift; sourceTree = "<group>"; };
|
||||
D0C9C21F230022AB00FAB518 /* FormControllerHeaderItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FormControllerHeaderItem.swift; sourceTree = "<group>"; };
|
||||
D0C9C246230022C100FAB518 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
|
||||
D0C9C248230022C200FAB518 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
|
||||
D0C9C24A230022C500FAB518 /* Postbox.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Postbox.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9C24C230022C900FAB518 /* TelegramCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramCore.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9C24E230022CE00FAB518 /* SwiftSignalKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = SwiftSignalKit.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9C250230022D400FAB518 /* AsyncDisplayKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AsyncDisplayKit.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9C252230022D800FAB518 /* Display.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Display.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9C254230022E000FAB518 /* TelegramPresentationData.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramPresentationData.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9C25823009EC900FAB518 /* FindSecureIdValue.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FindSecureIdValue.swift; sourceTree = "<group>"; };
|
||||
D0C9C2802300A04900FAB518 /* PhoneInputNode.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = PhoneInputNode.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9C2842300A0BF00FAB518 /* FrameworkBundle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FrameworkBundle.swift; sourceTree = "<group>"; };
|
||||
D0C9C2B22300A1D300FAB518 /* CountrySelectionUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = CountrySelectionUI.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9C3322300AA0100FAB518 /* GalleryUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = GalleryUI.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9C4482300E15E00FAB518 /* LegacySecureIdAttachmentMenu.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LegacySecureIdAttachmentMenu.swift; sourceTree = "<group>"; };
|
||||
D0C9C44A2300E17600FAB518 /* LegacyComponents.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = LegacyComponents.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9C44C2300E17A00FAB518 /* OverlayStatusController.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = OverlayStatusController.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9C44E2300E1D600FAB518 /* LegacySecureIdScanController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LegacySecureIdScanController.swift; sourceTree = "<group>"; };
|
||||
D0C9C47C2300E31700FAB518 /* LegacyUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = LegacyUI.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9C4BE2300E5B400FAB518 /* ImageCompression.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ImageCompression.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9C4D92300E67200FAB518 /* DateSelectionUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = DateSelectionUI.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9C52C2300EFB100FAB518 /* PasswordSetupUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = PasswordSetupUI.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
D0C9C1E82300222100FAB518 /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
D0C9C52D2300EFB100FAB518 /* PasswordSetupUI.framework in Frameworks */,
|
||||
D0C9C4DA2300E67200FAB518 /* DateSelectionUI.framework in Frameworks */,
|
||||
D0C9C4BF2300E5B400FAB518 /* ImageCompression.framework in Frameworks */,
|
||||
D0C9C47D2300E31700FAB518 /* LegacyUI.framework in Frameworks */,
|
||||
D0C9C44D2300E17A00FAB518 /* OverlayStatusController.framework in Frameworks */,
|
||||
D0C9C44B2300E17600FAB518 /* LegacyComponents.framework in Frameworks */,
|
||||
D0C9C3332300AA0100FAB518 /* GalleryUI.framework in Frameworks */,
|
||||
D0C9C2B32300A1D300FAB518 /* CountrySelectionUI.framework in Frameworks */,
|
||||
D0C9C2812300A04900FAB518 /* PhoneInputNode.framework in Frameworks */,
|
||||
D0C9C255230022E000FAB518 /* TelegramPresentationData.framework in Frameworks */,
|
||||
D0C9C253230022D800FAB518 /* Display.framework in Frameworks */,
|
||||
D0C9C251230022D400FAB518 /* AsyncDisplayKit.framework in Frameworks */,
|
||||
D0C9C24F230022CE00FAB518 /* SwiftSignalKit.framework in Frameworks */,
|
||||
D0C9C24D230022C900FAB518 /* TelegramCore.framework in Frameworks */,
|
||||
D0C9C24B230022C500FAB518 /* Postbox.framework in Frameworks */,
|
||||
D0C9C249230022C300FAB518 /* Foundation.framework in Frameworks */,
|
||||
D0C9C247230022C100FAB518 /* UIKit.framework in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXFrameworksBuildPhase section */
|
||||
|
||||
/* Begin PBXGroup section */
|
||||
D0C9C1E12300222100FAB518 = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
D0C9C1EF2300222100FAB518 /* Info.plist */,
|
||||
D0C9C1ED2300222100FAB518 /* Sources */,
|
||||
D0C9C1EC2300222100FAB518 /* Products */,
|
||||
D0C9C245230022BF00FAB518 /* Frameworks */,
|
||||
);
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
D0C9C1EC2300222100FAB518 /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
D0C9C1EB2300222100FAB518 /* PassportUI.framework */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
D0C9C1ED2300222100FAB518 /* Sources */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
D0C9C21C230022AB00FAB518 /* Form */,
|
||||
D0C9C20B230022A600FAB518 /* SecureIdAuthAcceptNode.swift */,
|
||||
D0C9C21E230022AB00FAB518 /* SecureIdAuthContentNode.swift */,
|
||||
D0C9C216230022A800FAB518 /* SecureIdAuthController.swift */,
|
||||
D0C9C203230022A500FAB518 /* SecureIdAuthControllerNode.swift */,
|
||||
D0C9C20D230022A600FAB518 /* SecureIdAuthControllerState.swift */,
|
||||
D0C9C211230022A700FAB518 /* SecureIdAuthFormContentNode.swift */,
|
||||
D0C9C215230022A800FAB518 /* SecureIdAuthFormFieldNode.swift */,
|
||||
D0C9C20A230022A600FAB518 /* SecureIdAuthHeaderNode.swift */,
|
||||
D0C9C201230022A400FAB518 /* SecureIdAuthListContentNode.swift */,
|
||||
D0C9C1FD230022A400FAB518 /* SecureIdAuthListFieldNode.swift */,
|
||||
D0C9C213230022A700FAB518 /* SecureIdAuthPasswordOptionContentNode.swift */,
|
||||
D0C9C214230022A700FAB518 /* SecureIdAuthPasswordSetupContentNode.swift */,
|
||||
D0C9C1FE230022A400FAB518 /* SecureIdDocumentFormController.swift */,
|
||||
D0C9C1FF230022A400FAB518 /* SecureIdDocumentFormControllerNode.swift */,
|
||||
D0C9C202230022A500FAB518 /* SecureIdDocumentGalleryController.swift */,
|
||||
D0C9C1FB230022A400FAB518 /* SecureIdDocumentGalleryFooterContentNode.swift */,
|
||||
D0C9C1FC230022A400FAB518 /* SecureIdDocumentImageGalleryItem.swift */,
|
||||
D0C9C20C230022A600FAB518 /* SecureIdDocumentTypeSelectionController.swift */,
|
||||
D0C9C218230022A800FAB518 /* SecureIdLocalResource.swift */,
|
||||
D0C9C219230022A800FAB518 /* SecureIdPlaintextFormController.swift */,
|
||||
D0C9C21A230022A800FAB518 /* SecureIdPlaintextFormControllerNode.swift */,
|
||||
D0C9C1FA230022A400FAB518 /* SecureIdValueFormFileItem.swift */,
|
||||
D0C9C205230022A500FAB518 /* SecureIdValueFormPhoneItem.swift */,
|
||||
D0C9C200230022A400FAB518 /* SecureIdValues.swift */,
|
||||
D0C9C21B230022A900FAB518 /* SecureIdVerificationDocument.swift */,
|
||||
D0C9C204230022A500FAB518 /* SecureIdVerificationDocumentsContext.swift */,
|
||||
D0C9C25823009EC900FAB518 /* FindSecureIdValue.swift */,
|
||||
D0C9C4482300E15E00FAB518 /* LegacySecureIdAttachmentMenu.swift */,
|
||||
D0C9C44E2300E1D600FAB518 /* LegacySecureIdScanController.swift */,
|
||||
D0C9C2842300A0BF00FAB518 /* FrameworkBundle.swift */,
|
||||
D0C9C1EE2300222100FAB518 /* PassportUI.h */,
|
||||
);
|
||||
path = Sources;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
D0C9C21C230022AB00FAB518 /* Form */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
D0C9C210230022A700FAB518 /* FormBlockItemNode.swift */,
|
||||
D0C9C20F230022A700FAB518 /* FormController.swift */,
|
||||
D0C9C206230022A500FAB518 /* FormControllerActionItem.swift */,
|
||||
D0C9C217230022A800FAB518 /* FormControllerDetailActionItem.swift */,
|
||||
D0C9C21F230022AB00FAB518 /* FormControllerHeaderItem.swift */,
|
||||
D0C9C21D230022AB00FAB518 /* FormControllerItem.swift */,
|
||||
D0C9C20E230022A700FAB518 /* FormControllerNode.swift */,
|
||||
D0C9C208230022A600FAB518 /* FormControllerScrollerNode.swift */,
|
||||
D0C9C212230022A700FAB518 /* FormControllerTextInputItem.swift */,
|
||||
D0C9C209230022A600FAB518 /* FormControllerTextItem.swift */,
|
||||
D0C9C207230022A500FAB518 /* FormEditableBlockItemNode.swift */,
|
||||
);
|
||||
path = Form;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
D0C9C245230022BF00FAB518 /* Frameworks */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
D0C9C52C2300EFB100FAB518 /* PasswordSetupUI.framework */,
|
||||
D0C9C4D92300E67200FAB518 /* DateSelectionUI.framework */,
|
||||
D0C9C4BE2300E5B400FAB518 /* ImageCompression.framework */,
|
||||
D0C9C47C2300E31700FAB518 /* LegacyUI.framework */,
|
||||
D0C9C44C2300E17A00FAB518 /* OverlayStatusController.framework */,
|
||||
D0C9C44A2300E17600FAB518 /* LegacyComponents.framework */,
|
||||
D0C9C3322300AA0100FAB518 /* GalleryUI.framework */,
|
||||
D0C9C2B22300A1D300FAB518 /* CountrySelectionUI.framework */,
|
||||
D0C9C2802300A04900FAB518 /* PhoneInputNode.framework */,
|
||||
D0C9C254230022E000FAB518 /* TelegramPresentationData.framework */,
|
||||
D0C9C252230022D800FAB518 /* Display.framework */,
|
||||
D0C9C250230022D400FAB518 /* AsyncDisplayKit.framework */,
|
||||
D0C9C24E230022CE00FAB518 /* SwiftSignalKit.framework */,
|
||||
D0C9C24C230022C900FAB518 /* TelegramCore.framework */,
|
||||
D0C9C24A230022C500FAB518 /* Postbox.framework */,
|
||||
D0C9C248230022C200FAB518 /* Foundation.framework */,
|
||||
D0C9C246230022C100FAB518 /* UIKit.framework */,
|
||||
);
|
||||
name = Frameworks;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXGroup section */
|
||||
|
||||
/* Begin PBXHeadersBuildPhase section */
|
||||
D0C9C1E62300222100FAB518 /* Headers */ = {
|
||||
isa = PBXHeadersBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
D0C9C1F02300222100FAB518 /* PassportUI.h in Headers */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXHeadersBuildPhase section */
|
||||
|
||||
/* Begin PBXNativeTarget section */
|
||||
D0C9C1EA2300222100FAB518 /* PassportUI */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = D0C9C1F32300222100FAB518 /* Build configuration list for PBXNativeTarget "PassportUI" */;
|
||||
buildPhases = (
|
||||
D0C9C1E62300222100FAB518 /* Headers */,
|
||||
D0C9C1E72300222100FAB518 /* Sources */,
|
||||
D0C9C1E82300222100FAB518 /* Frameworks */,
|
||||
D0C9C1E92300222100FAB518 /* Resources */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
);
|
||||
name = PassportUI;
|
||||
productName = PassportUI;
|
||||
productReference = D0C9C1EB2300222100FAB518 /* PassportUI.framework */;
|
||||
productType = "com.apple.product-type.framework";
|
||||
};
|
||||
/* End PBXNativeTarget section */
|
||||
|
||||
/* Begin PBXProject section */
|
||||
D0C9C1E22300222100FAB518 /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
DefaultBuildSystemTypeForWorkspace = Latest;
|
||||
LastUpgradeCheck = 1030;
|
||||
ORGANIZATIONNAME = "Telegram Messenger LLP";
|
||||
TargetAttributes = {
|
||||
D0C9C1EA2300222100FAB518 = {
|
||||
CreatedOnToolsVersion = 10.3;
|
||||
LastSwiftMigration = 1030;
|
||||
};
|
||||
};
|
||||
};
|
||||
buildConfigurationList = D0C9C1E52300222100FAB518 /* Build configuration list for PBXProject "PassportUI_Xcode" */;
|
||||
compatibilityVersion = "Xcode 9.3";
|
||||
developmentRegion = en;
|
||||
hasScannedForEncodings = 0;
|
||||
knownRegions = (
|
||||
en,
|
||||
);
|
||||
mainGroup = D0C9C1E12300222100FAB518;
|
||||
productRefGroup = D0C9C1EC2300222100FAB518 /* Products */;
|
||||
projectDirPath = "";
|
||||
projectRoot = "";
|
||||
targets = (
|
||||
D0C9C1EA2300222100FAB518 /* PassportUI */,
|
||||
);
|
||||
};
|
||||
/* End PBXProject section */
|
||||
|
||||
/* Begin PBXResourcesBuildPhase section */
|
||||
D0C9C1E92300222100FAB518 /* Resources */ = {
|
||||
isa = PBXResourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXResourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXSourcesBuildPhase section */
|
||||
D0C9C1E72300222100FAB518 /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
D0C9C222230022AB00FAB518 /* SecureIdDocumentImageGalleryItem.swift in Sources */,
|
||||
D0C9C221230022AB00FAB518 /* SecureIdDocumentGalleryFooterContentNode.swift in Sources */,
|
||||
D0C9C44F2300E1D600FAB518 /* LegacySecureIdScanController.swift in Sources */,
|
||||
D0C9C229230022AB00FAB518 /* SecureIdAuthControllerNode.swift in Sources */,
|
||||
D0C9C240230022AB00FAB518 /* SecureIdPlaintextFormControllerNode.swift in Sources */,
|
||||
D0C9C4492300E15E00FAB518 /* LegacySecureIdAttachmentMenu.swift in Sources */,
|
||||
D0C9C22F230022AB00FAB518 /* FormControllerTextItem.swift in Sources */,
|
||||
D0C9C226230022AB00FAB518 /* SecureIdValues.swift in Sources */,
|
||||
D0C9C242230022AB00FAB518 /* FormControllerItem.swift in Sources */,
|
||||
D0C9C243230022AB00FAB518 /* SecureIdAuthContentNode.swift in Sources */,
|
||||
D0C9C23F230022AB00FAB518 /* SecureIdPlaintextFormController.swift in Sources */,
|
||||
D0C9C244230022AB00FAB518 /* FormControllerHeaderItem.swift in Sources */,
|
||||
D0C9C232230022AB00FAB518 /* SecureIdDocumentTypeSelectionController.swift in Sources */,
|
||||
D0C9C231230022AB00FAB518 /* SecureIdAuthAcceptNode.swift in Sources */,
|
||||
D0C9C25923009EC900FAB518 /* FindSecureIdValue.swift in Sources */,
|
||||
D0C9C225230022AB00FAB518 /* SecureIdDocumentFormControllerNode.swift in Sources */,
|
||||
D0C9C234230022AB00FAB518 /* FormControllerNode.swift in Sources */,
|
||||
D0C9C22A230022AB00FAB518 /* SecureIdVerificationDocumentsContext.swift in Sources */,
|
||||
D0C9C224230022AB00FAB518 /* SecureIdDocumentFormController.swift in Sources */,
|
||||
D0C9C23C230022AB00FAB518 /* SecureIdAuthController.swift in Sources */,
|
||||
D0C9C22E230022AB00FAB518 /* FormControllerScrollerNode.swift in Sources */,
|
||||
D0C9C22C230022AB00FAB518 /* FormControllerActionItem.swift in Sources */,
|
||||
D0C9C2852300A0BF00FAB518 /* FrameworkBundle.swift in Sources */,
|
||||
D0C9C237230022AB00FAB518 /* SecureIdAuthFormContentNode.swift in Sources */,
|
||||
D0C9C22D230022AB00FAB518 /* FormEditableBlockItemNode.swift in Sources */,
|
||||
D0C9C239230022AB00FAB518 /* SecureIdAuthPasswordOptionContentNode.swift in Sources */,
|
||||
D0C9C23D230022AB00FAB518 /* FormControllerDetailActionItem.swift in Sources */,
|
||||
D0C9C227230022AB00FAB518 /* SecureIdAuthListContentNode.swift in Sources */,
|
||||
D0C9C241230022AB00FAB518 /* SecureIdVerificationDocument.swift in Sources */,
|
||||
D0C9C228230022AB00FAB518 /* SecureIdDocumentGalleryController.swift in Sources */,
|
||||
D0C9C223230022AB00FAB518 /* SecureIdAuthListFieldNode.swift in Sources */,
|
||||
D0C9C238230022AB00FAB518 /* FormControllerTextInputItem.swift in Sources */,
|
||||
D0C9C23A230022AB00FAB518 /* SecureIdAuthPasswordSetupContentNode.swift in Sources */,
|
||||
D0C9C230230022AB00FAB518 /* SecureIdAuthHeaderNode.swift in Sources */,
|
||||
D0C9C23B230022AB00FAB518 /* SecureIdAuthFormFieldNode.swift in Sources */,
|
||||
D0C9C233230022AB00FAB518 /* SecureIdAuthControllerState.swift in Sources */,
|
||||
D0C9C235230022AB00FAB518 /* FormController.swift in Sources */,
|
||||
D0C9C22B230022AB00FAB518 /* SecureIdValueFormPhoneItem.swift in Sources */,
|
||||
D0C9C220230022AB00FAB518 /* SecureIdValueFormFileItem.swift in Sources */,
|
||||
D0C9C23E230022AB00FAB518 /* SecureIdLocalResource.swift in Sources */,
|
||||
D0C9C236230022AB00FAB518 /* FormBlockItemNode.swift in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXSourcesBuildPhase section */
|
||||
|
||||
/* Begin XCBuildConfiguration section */
|
||||
D0C9C1F12300222100FAB518 /* 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;
|
||||
};
|
||||
D0C9C1F22300222100FAB518 /* 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;
|
||||
};
|
||||
D0C9C1F42300222100FAB518 /* 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.PassportUI;
|
||||
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
|
||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||
SKIP_INSTALL = YES;
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
||||
SWIFT_VERSION = 5.0;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
};
|
||||
name = DebugAppStoreLLC;
|
||||
};
|
||||
D0C9C1F52300222100FAB518 /* 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.PassportUI;
|
||||
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
|
||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||
SKIP_INSTALL = YES;
|
||||
SWIFT_VERSION = 5.0;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
};
|
||||
name = ReleaseAppStoreLLC;
|
||||
};
|
||||
D0C9C1F62300225100FAB518 /* DebugHockeyapp */ = {
|
||||
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 = DebugHockeyapp;
|
||||
};
|
||||
D0C9C1F72300225100FAB518 /* DebugHockeyapp */ = {
|
||||
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.PassportUI;
|
||||
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
|
||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||
SKIP_INSTALL = YES;
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
||||
SWIFT_VERSION = 5.0;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
};
|
||||
name = DebugHockeyapp;
|
||||
};
|
||||
D0C9C1F82300225D00FAB518 /* ReleaseHockeyappInternal */ = {
|
||||
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 = ReleaseHockeyappInternal;
|
||||
};
|
||||
D0C9C1F92300225D00FAB518 /* ReleaseHockeyappInternal */ = {
|
||||
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.PassportUI;
|
||||
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
|
||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||
SKIP_INSTALL = YES;
|
||||
SWIFT_VERSION = 5.0;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
};
|
||||
name = ReleaseHockeyappInternal;
|
||||
};
|
||||
/* End XCBuildConfiguration section */
|
||||
|
||||
/* Begin XCConfigurationList section */
|
||||
D0C9C1E52300222100FAB518 /* Build configuration list for PBXProject "PassportUI_Xcode" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
D0C9C1F12300222100FAB518 /* DebugAppStoreLLC */,
|
||||
D0C9C1F62300225100FAB518 /* DebugHockeyapp */,
|
||||
D0C9C1F22300222100FAB518 /* ReleaseAppStoreLLC */,
|
||||
D0C9C1F82300225D00FAB518 /* ReleaseHockeyappInternal */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = ReleaseAppStoreLLC;
|
||||
};
|
||||
D0C9C1F32300222100FAB518 /* Build configuration list for PBXNativeTarget "PassportUI" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
D0C9C1F42300222100FAB518 /* DebugAppStoreLLC */,
|
||||
D0C9C1F72300225100FAB518 /* DebugHockeyapp */,
|
||||
D0C9C1F52300222100FAB518 /* ReleaseAppStoreLLC */,
|
||||
D0C9C1F92300225D00FAB518 /* ReleaseHockeyappInternal */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = ReleaseAppStoreLLC;
|
||||
};
|
||||
/* End XCConfigurationList section */
|
||||
};
|
||||
rootObject = D0C9C1E22300222100FAB518 /* Project object */;
|
||||
}
|
||||
|
|
@ -6,8 +6,8 @@ import Display
|
|||
import TelegramCore
|
||||
import TelegramPresentationData
|
||||
|
||||
class FormController<InnerState, InitParams, Node: FormControllerNode<InitParams, InnerState>>: ViewController {
|
||||
var controllerNode: Node {
|
||||
public class FormController<InnerState, InitParams, Node: FormControllerNode<InitParams, InnerState>>: ViewController {
|
||||
public var controllerNode: Node {
|
||||
return self.displayNode as! Node
|
||||
}
|
||||
|
||||
|
|
@ -29,7 +29,7 @@ class FormController<InnerState, InitParams, Node: FormControllerNode<InitParams
|
|||
fatalError("init(coder:) has not been implemented")
|
||||
}
|
||||
|
||||
override func viewDidAppear(_ animated: Bool) {
|
||||
override public func viewDidAppear(_ animated: Bool) {
|
||||
super.viewDidAppear(animated)
|
||||
|
||||
if !self.didPlayPresentationAnimation {
|
||||
|
|
@ -38,7 +38,7 @@ class FormController<InnerState, InitParams, Node: FormControllerNode<InitParams
|
|||
}
|
||||
}
|
||||
|
||||
override func dismiss(completion: (() -> Void)? = nil) {
|
||||
override public func dismiss(completion: (() -> Void)? = nil) {
|
||||
self.controllerNode.view.endEditing(true)
|
||||
self.controllerNode.animateOut(completion: { [weak self] in
|
||||
self?.presentingViewController?.dismiss(animated: false, completion: nil)
|
||||
|
|
@ -46,7 +46,7 @@ class FormController<InnerState, InitParams, Node: FormControllerNode<InitParams
|
|||
})
|
||||
}
|
||||
|
||||
override func loadDisplayNode() {
|
||||
override public func loadDisplayNode() {
|
||||
self.displayNode = Node(initParams: self.initParams, presentationData: self.presentationData)
|
||||
self.controllerNode.present = { [weak self] c, a in
|
||||
self?.present(c, in: .window(.root), with: a)
|
||||
|
|
@ -55,7 +55,7 @@ class FormController<InnerState, InitParams, Node: FormControllerNode<InitParams
|
|||
self.displayNodeDidLoad()
|
||||
}
|
||||
|
||||
override func containerLayoutUpdated(_ layout: ContainerViewLayout, transition: ContainedViewLayoutTransition) {
|
||||
override public func containerLayoutUpdated(_ layout: ContainerViewLayout, transition: ContainedViewLayoutTransition) {
|
||||
super.containerLayoutUpdated(layout, transition: transition)
|
||||
|
||||
self.controllerNode.containerLayoutUpdated(layout, navigationHeight: self.navigationHeight, transition: transition)
|
||||
|
|
@ -5,33 +5,33 @@ import Display
|
|||
import TelegramPresentationData
|
||||
import MergeLists
|
||||
|
||||
protocol FormControllerEntry: Identifiable {
|
||||
public protocol FormControllerEntry: Identifiable {
|
||||
associatedtype ItemParams
|
||||
|
||||
func isEqual(to: Self) -> Bool
|
||||
func item(params: ItemParams, strings: PresentationStrings) -> FormControllerItem
|
||||
}
|
||||
|
||||
enum FormControllerItemNeighbor {
|
||||
public enum FormControllerItemNeighbor {
|
||||
case none
|
||||
case spacer
|
||||
case item(FormControllerItemNode)
|
||||
}
|
||||
|
||||
struct FormControllerItemPreLayout {
|
||||
public struct FormControllerItemPreLayout {
|
||||
let aligningInset: CGFloat
|
||||
}
|
||||
|
||||
struct FormControllerItemLayoutParams {
|
||||
public struct FormControllerItemLayoutParams {
|
||||
let maxAligningInset: CGFloat
|
||||
}
|
||||
|
||||
protocol FormControllerItem {
|
||||
public protocol FormControllerItem {
|
||||
func node() -> ASDisplayNode & FormControllerItemNode
|
||||
func update(node: ASDisplayNode & FormControllerItemNode, theme: PresentationTheme, strings: PresentationStrings, dateTimeFormat: PresentationDateTimeFormat, width: CGFloat, previousNeighbor: FormControllerItemNeighbor, nextNeighbor: FormControllerItemNeighbor, transition: ContainedViewLayoutTransition) -> (FormControllerItemPreLayout, (FormControllerItemLayoutParams) -> CGFloat)
|
||||
}
|
||||
|
||||
protocol FormControllerItemNode {
|
||||
public protocol FormControllerItemNode {
|
||||
var preventsTouchesToOtherItems: Bool { get }
|
||||
func touchesToOtherItemsPrevented()
|
||||
}
|
||||
|
|
@ -82,18 +82,18 @@ struct FormControllerInternalState<InnerState: FormControllerInnerState> {
|
|||
}
|
||||
}
|
||||
|
||||
struct FormControllerState<InnerState: FormControllerInnerState> {
|
||||
public struct FormControllerState<InnerState: FormControllerInnerState> {
|
||||
let layoutState: FormControllerLayoutState
|
||||
let presentationState: FormControllerPresentationState
|
||||
let innerState: InnerState
|
||||
}
|
||||
|
||||
enum FormControllerItemEntry<Entry: FormControllerEntry> {
|
||||
public enum FormControllerItemEntry<Entry: FormControllerEntry> {
|
||||
case entry(Entry)
|
||||
case spacer
|
||||
}
|
||||
|
||||
protocol FormControllerInnerState {
|
||||
public protocol FormControllerInnerState {
|
||||
associatedtype Entry: FormControllerEntry
|
||||
|
||||
func isEqual(to: Self) -> Bool
|
||||
|
|
@ -105,7 +105,7 @@ private enum FilteredItemNeighbor {
|
|||
case item(FormControllerItem)
|
||||
}
|
||||
|
||||
class FormControllerNode<InitParams, InnerState: FormControllerInnerState>: ViewControllerTracingNode, UIScrollViewDelegate {
|
||||
public class FormControllerNode<InitParams, InnerState: FormControllerInnerState>: ViewControllerTracingNode, UIScrollViewDelegate {
|
||||
private typealias InternalState = FormControllerInternalState<InnerState>
|
||||
typealias State = FormControllerState<InnerState>
|
||||
typealias Entry = InnerState.Entry
|
||||
|
|
@ -131,7 +131,7 @@ class FormControllerNode<InitParams, InnerState: FormControllerInnerState>: View
|
|||
preconditionFailure()
|
||||
}
|
||||
|
||||
required init(initParams: InitParams, presentationData: PresentationData) {
|
||||
required public init(initParams: InitParams, presentationData: PresentationData) {
|
||||
self.internalState = FormControllerInternalState(layoutState: nil, presentationState: FormControllerPresentationState(theme: presentationData.theme, strings: presentationData.strings, dateTimeFormat: presentationData.dateTimeFormat), innerState: nil)
|
||||
|
||||
self.scrollNode = FormControllerScrollerNode()
|
||||
13
submodules/PassportUI/Sources/FrameworkBundle.swift
Normal file
13
submodules/PassportUI/Sources/FrameworkBundle.swift
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
import Foundation
|
||||
import UIKit
|
||||
|
||||
private class FrameworkBundleClass: NSObject {
|
||||
}
|
||||
|
||||
let frameworkBundle: Bundle = Bundle(for: FrameworkBundleClass.self)
|
||||
|
||||
extension UIImage {
|
||||
convenience init?(bundleImageName: String) {
|
||||
self.init(named: bundleImageName, in: frameworkBundle, compatibleWith: nil)
|
||||
}
|
||||
}
|
||||
|
|
@ -7,6 +7,8 @@ import Postbox
|
|||
import TelegramCore
|
||||
import OverlayStatusController
|
||||
import AccountContext
|
||||
import LegacyUI
|
||||
import ImageCompression
|
||||
|
||||
enum SecureIdAttachmentMenuType {
|
||||
case generic
|
||||
|
|
@ -3,6 +3,7 @@ import UIKit
|
|||
import Display
|
||||
import LegacyComponents
|
||||
import TelegramPresentationData
|
||||
import LegacyUI
|
||||
|
||||
func legacySecureIdScanController(theme: PresentationTheme, strings: PresentationStrings, finished: @escaping (SecureIdRecognizedDocumentData?) -> Void) -> ViewController {
|
||||
let legacyController = LegacyController(presentation: .modal(animateIn: true), theme: theme, strings: strings)
|
||||
19
submodules/PassportUI/Sources/PassportUI.h
Normal file
19
submodules/PassportUI/Sources/PassportUI.h
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
//
|
||||
// PassportUI.h
|
||||
// PassportUI
|
||||
//
|
||||
// Created by Peter on 8/11/19.
|
||||
// Copyright © 2019 Telegram Messenger LLP. All rights reserved.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
//! Project version number for PassportUI.
|
||||
FOUNDATION_EXPORT double PassportUIVersionNumber;
|
||||
|
||||
//! Project version string for PassportUI.
|
||||
FOUNDATION_EXPORT const unsigned char PassportUIVersionString[];
|
||||
|
||||
// In this header, you should import all the public headers of your framework using statements like #import <PassportUI/PublicHeader.h>
|
||||
|
||||
|
||||
|
|
@ -10,6 +10,7 @@ import TextFormat
|
|||
import ProgressNavigationButtonNode
|
||||
import AccountContext
|
||||
import AlertUI
|
||||
import PasswordSetupUI
|
||||
|
||||
public enum SecureIdRequestResult: String {
|
||||
case success = "success"
|
||||
|
|
@ -59,12 +60,12 @@ final class SecureIdAuthControllerInteraction {
|
|||
}
|
||||
}
|
||||
|
||||
enum SecureIdAuthControllerMode {
|
||||
public enum SecureIdAuthControllerMode {
|
||||
case form(peerId: PeerId, scope: String, publicKey: String, callbackUrl: String, opaquePayload: Data, opaqueNonce: Data)
|
||||
case list
|
||||
}
|
||||
|
||||
final class SecureIdAuthController: ViewController {
|
||||
public final class SecureIdAuthController: ViewController {
|
||||
private var controllerNode: SecureIdAuthControllerNode {
|
||||
return self.displayNode as! SecureIdAuthControllerNode
|
||||
}
|
||||
|
|
@ -85,7 +86,7 @@ final class SecureIdAuthController: ViewController {
|
|||
|
||||
private let hapticFeedback = HapticFeedback()
|
||||
|
||||
init(context: AccountContext, mode: SecureIdAuthControllerMode) {
|
||||
public init(context: AccountContext, mode: SecureIdAuthControllerMode) {
|
||||
self.context = context
|
||||
self.presentationData = context.sharedContext.currentPresentationData.with { $0 }
|
||||
|
||||
|
|
@ -270,7 +271,7 @@ final class SecureIdAuthController: ViewController {
|
|||
}
|
||||
}
|
||||
|
||||
required init(coder aDecoder: NSCoder) {
|
||||
required public init(coder aDecoder: NSCoder) {
|
||||
fatalError("init(coder:) has not been implemented")
|
||||
}
|
||||
|
||||
|
|
@ -282,7 +283,7 @@ final class SecureIdAuthController: ViewController {
|
|||
self.recoveryDisposable.dispose()
|
||||
}
|
||||
|
||||
override func viewDidAppear(_ animated: Bool) {
|
||||
override public func viewDidAppear(_ animated: Bool) {
|
||||
super.viewDidAppear(animated)
|
||||
|
||||
if !self.didPlayPresentationAnimation {
|
||||
|
|
@ -291,14 +292,14 @@ final class SecureIdAuthController: ViewController {
|
|||
}
|
||||
}
|
||||
|
||||
override func dismiss(completion: (() -> Void)? = nil) {
|
||||
override public func dismiss(completion: (() -> Void)? = nil) {
|
||||
self.controllerNode.animateOut(completion: { [weak self] in
|
||||
self?.presentingViewController?.dismiss(animated: false, completion: nil)
|
||||
completion?()
|
||||
})
|
||||
}
|
||||
|
||||
override func loadDisplayNode() {
|
||||
override public func loadDisplayNode() {
|
||||
let interaction = SecureIdAuthControllerInteraction(updateState: { [weak self] f in
|
||||
self?.updateState(f)
|
||||
}, present: { [weak self] c, a in
|
||||
|
|
@ -313,7 +314,7 @@ final class SecureIdAuthController: ViewController {
|
|||
self?.grantAccess()
|
||||
}, openUrl: { [weak self] url in
|
||||
if let strongSelf = self {
|
||||
openExternalUrl(context: strongSelf.context, url: url, presentationData: strongSelf.presentationData, navigationController: strongSelf.navigationController as? NavigationController, dismissInput: {
|
||||
strongSelf.context.sharedContext.openExternalUrl(context: strongSelf.context, urlContext: .generic, url: url, forceExternal: false, presentationData: strongSelf.presentationData, navigationController: strongSelf.navigationController as? NavigationController, dismissInput: {
|
||||
self?.view.endEditing(true)
|
||||
})
|
||||
}
|
||||
|
|
@ -326,7 +327,7 @@ final class SecureIdAuthController: ViewController {
|
|||
guard let strongSelf = self else {
|
||||
return
|
||||
}
|
||||
if let infoController = peerInfoController(context: strongSelf.context, peer: peer) {
|
||||
if let infoController = strongSelf.context.sharedContext.makePeerInfoController(context: strongSelf.context, peer: peer) {
|
||||
(strongSelf.navigationController as? NavigationController)?.pushViewController(infoController)
|
||||
}
|
||||
})
|
||||
|
|
@ -359,7 +360,7 @@ final class SecureIdAuthController: ViewController {
|
|||
self.controllerNode.updateState(self.state, transition: .immediate)
|
||||
}
|
||||
|
||||
override func containerLayoutUpdated(_ layout: ContainerViewLayout, transition: ContainedViewLayoutTransition) {
|
||||
override public func containerLayoutUpdated(_ layout: ContainerViewLayout, transition: ContainedViewLayoutTransition) {
|
||||
super.containerLayoutUpdated(layout, transition: transition)
|
||||
|
||||
self.controllerNode.containerLayoutUpdated(layout, navigationBarHeight: self.navigationHeight, transition: transition)
|
||||
|
|
@ -400,7 +401,7 @@ final class SecureIdAuthController: ViewController {
|
|||
}
|
||||
|
||||
private func openUrl(_ url: String) {
|
||||
openExternalUrl(context: self.context, url: url, forceExternal: true, presentationData: self.presentationData, navigationController: nil, dismissInput: { [weak self] in
|
||||
self.context.sharedContext.openExternalUrl(context: self.context, urlContext: .generic, url: url, forceExternal: true, presentationData: self.presentationData, navigationController: nil, dismissInput: { [weak self] in
|
||||
self?.view.endEditing(true)
|
||||
})
|
||||
}
|
||||
|
|
@ -643,7 +644,7 @@ final class SecureIdAuthController: ViewController {
|
|||
guard let strongSelf = self else {
|
||||
return
|
||||
}
|
||||
openExternalUrl(context: strongSelf.context, url: strongSelf.presentationData.strings.Passport_InfoFAQ_URL, presentationData: strongSelf.presentationData, navigationController: strongSelf.navigationController as? NavigationController, dismissInput: {
|
||||
strongSelf.context.sharedContext.openExternalUrl(context: strongSelf.context, urlContext: .generic, url: strongSelf.presentationData.strings.Passport_InfoFAQ_URL, forceExternal: false, presentationData: strongSelf.presentationData, navigationController: strongSelf.navigationController as? NavigationController, dismissInput: {
|
||||
self?.view.endEditing(true)
|
||||
})
|
||||
})]), in: .window(.root))
|
||||
|
|
@ -6,6 +6,7 @@ import Display
|
|||
import TelegramCore
|
||||
import TelegramPresentationData
|
||||
import TelegramStringFormatting
|
||||
import CountrySelectionUI
|
||||
|
||||
enum SecureIdRequestedIdentityDocument: Int32 {
|
||||
case passport
|
||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue