mirror of
https://github.com/TelegramMessenger/Telegram-iOS.git
synced 2026-07-06 03:33:41 +02:00
Refactor ChatListUI
This commit is contained in:
parent
d4d1be5300
commit
5278c52729
72 changed files with 3867 additions and 385 deletions
15
Telegram-iOS.xcworkspace/contents.xcworkspacedata
generated
15
Telegram-iOS.xcworkspace/contents.xcworkspacedata
generated
|
|
@ -217,6 +217,12 @@
|
|||
<FileRef
|
||||
location = "group:submodules/SolidRoundedButtonNode/SolidRoundedButtonNode_Xcode.xcodeproj">
|
||||
</FileRef>
|
||||
<FileRef
|
||||
location = "group:submodules/ChatTitleActivityNode/ChatTitleActivityNode_Xcode.xcodeproj">
|
||||
</FileRef>
|
||||
<FileRef
|
||||
location = "group:submodules/TextSelectionNode/TextSelectionNode_Xcode.xcodeproj">
|
||||
</FileRef>
|
||||
</Group>
|
||||
<Group
|
||||
location = "container:"
|
||||
|
|
@ -247,6 +253,9 @@
|
|||
<FileRef
|
||||
location = "group:submodules/ActionSheetPeerItem/ActionSheetPeerItem_Xcode.xcodeproj">
|
||||
</FileRef>
|
||||
<FileRef
|
||||
location = "group:submodules/DeleteChatPeerActionSheetItem/DeleteChatPeerActionSheetItem_Xcode.xcodeproj">
|
||||
</FileRef>
|
||||
</Group>
|
||||
<Group
|
||||
location = "container:"
|
||||
|
|
@ -385,6 +394,12 @@
|
|||
<FileRef
|
||||
location = "group:submodules/CallListUI/CallListUI_Xcode.xcodeproj">
|
||||
</FileRef>
|
||||
<FileRef
|
||||
location = "group:submodules/ChatListUI/ChatListUI_Xcode.xcodeproj">
|
||||
</FileRef>
|
||||
<FileRef
|
||||
location = "group:submodules/LanguageSuggestionUI/LanguageSuggestionUI_Xcode.xcodeproj">
|
||||
</FileRef>
|
||||
</Group>
|
||||
<FileRef
|
||||
location = "group:submodules/TelegramUI/TelegramUI_Xcode.xcodeproj">
|
||||
|
|
|
|||
|
|
@ -36,6 +36,7 @@
|
|||
D0C9C3D72300CC2500FAB518 /* FetchMediaUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C3D62300CC2400FAB518 /* FetchMediaUtils.swift */; };
|
||||
D0C9C3D92300CC6000FAB518 /* IsMediaStreamable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C3D82300CC6000FAB518 /* IsMediaStreamable.swift */; };
|
||||
D0C9CA8A2302314400FAB518 /* ContactSelectionController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9CA892302314400FAB518 /* ContactSelectionController.swift */; };
|
||||
D0C9CB842302B4B900FAB518 /* StoredMessageFromSearchPeer.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9CB832302B4B900FAB518 /* StoredMessageFromSearchPeer.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 */; };
|
||||
|
|
@ -75,6 +76,7 @@
|
|||
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>"; };
|
||||
D0C9CA892302314400FAB518 /* ContactSelectionController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContactSelectionController.swift; sourceTree = "<group>"; };
|
||||
D0C9CB832302B4B900FAB518 /* StoredMessageFromSearchPeer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StoredMessageFromSearchPeer.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>"; };
|
||||
|
|
@ -152,6 +154,7 @@
|
|||
D0C9C3D62300CC2400FAB518 /* FetchMediaUtils.swift */,
|
||||
D0C9C3D82300CC6000FAB518 /* IsMediaStreamable.swift */,
|
||||
D0C9CA892302314400FAB518 /* ContactSelectionController.swift */,
|
||||
D0C9CB832302B4B900FAB518 /* StoredMessageFromSearchPeer.swift */,
|
||||
);
|
||||
path = Sources;
|
||||
sourceTree = "<group>";
|
||||
|
|
@ -255,6 +258,7 @@
|
|||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
D0C9CB842302B4B900FAB518 /* StoredMessageFromSearchPeer.swift in Sources */,
|
||||
D0879B6122F7A7A600C4D6B3 /* UniversalVideoNode.swift in Sources */,
|
||||
D0879A4E22F65B2A00C4D6B3 /* MediaManager.swift in Sources */,
|
||||
D0879A4A22F6584B00C4D6B3 /* SharedMediaPlayer.swift in Sources */,
|
||||
|
|
|
|||
|
|
@ -367,6 +367,8 @@ public final class ContactSelectionControllerParams {
|
|||
}
|
||||
}
|
||||
|
||||
public let defaultContactLabel: String = "_$!<Mobile>!$_"
|
||||
|
||||
public protocol SharedAccountContext: class {
|
||||
var basePath: String { get }
|
||||
var mainWindow: Window1? { get }
|
||||
|
|
@ -405,13 +407,17 @@ public protocol SharedAccountContext: class {
|
|||
func makePeerInfoController(context: AccountContext, peer: Peer, mode: PeerInfoControllerMode) -> ViewController?
|
||||
func makeDeviceContactInfoController(context: AccountContext, subject: DeviceContactInfoSubject, completed: (() -> Void)?, cancelled: (() -> Void)?) -> ViewController
|
||||
func makePeersNearbyController(context: AccountContext) -> ViewController
|
||||
func makeComposeController(context: AccountContext) -> ViewController
|
||||
func makeChatController(context: AccountContext, chatLocation: ChatLocation, subject: ChatControllerSubject?, botStart: ChatControllerInitialBotStart?, mode: ChatControllerPresentationMode) -> ChatController
|
||||
func makeContactSelectionController(_ params: ContactSelectionControllerParams) -> ContactSelectionController
|
||||
func makeProxySettingsController(context: AccountContext) -> ViewController
|
||||
func makeLocalizationListController(context: AccountContext) -> ViewController
|
||||
func navigateToChatController(_ params: NavigateToChatControllerParams)
|
||||
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 resolveUrl(account: Account, url: String) -> Signal<ResolvedUrl, NoError>
|
||||
func openResolvedUrl(_ resolvedUrl: ResolvedUrl, context: AccountContext, urlContext: OpenURLContext, navigationController: NavigationController?, openPeer: @escaping (PeerId, ChatControllerInteractionNavigateToPeer) -> Void, sendFile: ((FileMediaReference) -> Void)?, sendSticker: ((FileMediaReference, ASDisplayNode, CGRect) -> Bool)?, present: @escaping (ViewController, Any?) -> Void, dismissInput: @escaping () -> Void)
|
||||
func openAddContact(context: AccountContext, firstName: String, lastName: String, phoneNumber: String, label: String, present: @escaping (ViewController, Any?) -> Void, pushController: @escaping (ViewController) -> Void, completed: @escaping () -> Void)
|
||||
func presentContactsWarningSuppression(context: AccountContext, present: (ViewController, Any?) -> Void)
|
||||
|
||||
func navigateToCurrentCall()
|
||||
|
|
|
|||
|
|
@ -246,6 +246,34 @@ public enum ChatControllerPresentationMode: Equatable {
|
|||
case inline
|
||||
}
|
||||
|
||||
public final class ChatEmbeddedInterfaceState: PeerChatListEmbeddedInterfaceState {
|
||||
public let timestamp: Int32
|
||||
public let text: NSAttributedString
|
||||
|
||||
public init(timestamp: Int32, text: NSAttributedString) {
|
||||
self.timestamp = timestamp
|
||||
self.text = text
|
||||
}
|
||||
|
||||
public init(decoder: PostboxDecoder) {
|
||||
self.timestamp = decoder.decodeInt32ForKey("d", orElse: 0)
|
||||
self.text = ((decoder.decodeObjectForKey("at", decoder: { ChatTextInputStateText(decoder: $0) }) as? ChatTextInputStateText) ?? ChatTextInputStateText()).attributedText()
|
||||
}
|
||||
|
||||
public func encode(_ encoder: PostboxEncoder) {
|
||||
encoder.encodeInt32(self.timestamp, forKey: "d")
|
||||
encoder.encodeObject(ChatTextInputStateText(attributedText: self.text), forKey: "at")
|
||||
}
|
||||
|
||||
public func isEqual(to: PeerChatListEmbeddedInterfaceState) -> Bool {
|
||||
if let to = to as? ChatEmbeddedInterfaceState {
|
||||
return self.timestamp == to.timestamp && self.text.isEqual(to: to.text)
|
||||
} else {
|
||||
return false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public protocol ChatController: ViewController {
|
||||
var chatLocation: ChatLocation { get }
|
||||
var canReadHistory: ValuePromise<Bool> { get }
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ import Postbox
|
|||
import TelegramCore
|
||||
import SwiftSignalKit
|
||||
|
||||
func storedMessageFromSearchPeer(account: Account, peer: Peer) -> Signal<PeerId, NoError> {
|
||||
public func storedMessageFromSearchPeer(account: Account, peer: Peer) -> Signal<PeerId, NoError> {
|
||||
return account.postbox.transaction { transaction -> PeerId in
|
||||
if transaction.getPeer(peer.id) == nil {
|
||||
updatePeers(transaction: transaction, peers: [peer], update: { previousPeer, updatedPeer in
|
||||
|
|
@ -17,7 +17,7 @@ func storedMessageFromSearchPeer(account: Account, peer: Peer) -> Signal<PeerId,
|
|||
}
|
||||
}
|
||||
|
||||
func storedMessageFromSearch(account: Account, message: Message) -> Signal<Void, NoError> {
|
||||
public func storedMessageFromSearch(account: Account, message: Message) -> Signal<Void, NoError> {
|
||||
return account.postbox.transaction { transaction -> Void in
|
||||
if transaction.getMessage(message.id) == nil {
|
||||
for (_, peer) in message.peers {
|
||||
|
|
@ -35,7 +35,7 @@ func storedMessageFromSearch(account: Account, message: Message) -> Signal<Void,
|
|||
}
|
||||
}
|
||||
|
||||
func storeMessageFromSearch(transaction: Transaction, message: Message) {
|
||||
public func storeMessageFromSearch(transaction: Transaction, message: Message) {
|
||||
if transaction.getMessage(message.id) == nil {
|
||||
for (_, peer) in message.peers {
|
||||
if transaction.getPeer(peer.id) == nil {
|
||||
747
submodules/ChatListUI/ChatListUI_Xcode.xcodeproj/project.pbxproj
Normal file
747
submodules/ChatListUI/ChatListUI_Xcode.xcodeproj/project.pbxproj
Normal file
|
|
@ -0,0 +1,747 @@
|
|||
// !$*UTF8*$!
|
||||
{
|
||||
archiveVersion = 1;
|
||||
classes = {
|
||||
};
|
||||
objectVersion = 50;
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
D0C9CA9A230234D400FAB518 /* ChatListUI.h in Headers */ = {isa = PBXBuildFile; fileRef = D0C9CA98230234D400FAB518 /* ChatListUI.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
D0C9CAAD230235E500FAB518 /* ChatListSearchContainerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9CAA4230235E300FAB518 /* ChatListSearchContainerNode.swift */; };
|
||||
D0C9CAAE230235E500FAB518 /* ChatListRecentPeersListItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9CAA5230235E300FAB518 /* ChatListRecentPeersListItem.swift */; };
|
||||
D0C9CAAF230235E500FAB518 /* ChatListController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9CAA6230235E300FAB518 /* ChatListController.swift */; };
|
||||
D0C9CAB0230235E500FAB518 /* ChatListTitleProxyNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9CAA7230235E300FAB518 /* ChatListTitleProxyNode.swift */; };
|
||||
D0C9CAB1230235E500FAB518 /* ChatListTitleView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9CAA8230235E400FAB518 /* ChatListTitleView.swift */; };
|
||||
D0C9CAB2230235E500FAB518 /* ChatListTitleLockView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9CAA9230235E400FAB518 /* ChatListTitleLockView.swift */; };
|
||||
D0C9CAB3230235E500FAB518 /* ChatListSelection.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9CAAA230235E400FAB518 /* ChatListSelection.swift */; };
|
||||
D0C9CAB4230235E500FAB518 /* ChatListControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9CAAB230235E400FAB518 /* ChatListControllerNode.swift */; };
|
||||
D0C9CAB5230235E500FAB518 /* ChatListEmptyNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9CAAC230235E500FAB518 /* ChatListEmptyNode.swift */; };
|
||||
D0C9CAB82302360A00FAB518 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9CAB72302360A00FAB518 /* Foundation.framework */; };
|
||||
D0C9CABA2302360F00FAB518 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9CAB92302360F00FAB518 /* UIKit.framework */; };
|
||||
D0C9CABC2302361100FAB518 /* Postbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9CABB2302361100FAB518 /* Postbox.framework */; };
|
||||
D0C9CABE2302361A00FAB518 /* SwiftSignalKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9CABD2302361A00FAB518 /* SwiftSignalKit.framework */; };
|
||||
D0C9CAC02302362000FAB518 /* Display.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9CABF2302362000FAB518 /* Display.framework */; };
|
||||
D0C9CAC22302362700FAB518 /* TelegramCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9CAC12302362700FAB518 /* TelegramCore.framework */; };
|
||||
D0C9CAC42302363100FAB518 /* TelegramPresentationData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9CAC32302363100FAB518 /* TelegramPresentationData.framework */; };
|
||||
D0C9CAC62302363B00FAB518 /* TelegramUIPreferences.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9CAC52302363B00FAB518 /* TelegramUIPreferences.framework */; };
|
||||
D0C9CAC82302364500FAB518 /* TelegramBaseController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9CAC72302364500FAB518 /* TelegramBaseController.framework */; };
|
||||
D0C9CACA2302364B00FAB518 /* OverlayStatusController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9CAC92302364B00FAB518 /* OverlayStatusController.framework */; };
|
||||
D0C9CACC2302365200FAB518 /* AccountContext.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9CACB2302365200FAB518 /* AccountContext.framework */; };
|
||||
D0C9CACE2302365800FAB518 /* AlertUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9CACD2302365800FAB518 /* AlertUI.framework */; };
|
||||
D0C9CAD02302365D00FAB518 /* UndoUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9CACF2302365D00FAB518 /* UndoUI.framework */; };
|
||||
D0C9CAD22302366500FAB518 /* TelegramNotices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9CAD12302366500FAB518 /* TelegramNotices.framework */; };
|
||||
D0C9CAD42302366C00FAB518 /* SearchUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9CAD32302366C00FAB518 /* SearchUI.framework */; };
|
||||
D0C9CAD62302368600FAB518 /* MergeLists.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9CAD52302368600FAB518 /* MergeLists.framework */; };
|
||||
D0C9CAD82302368E00FAB518 /* ActivityIndicator.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9CAD72302368E00FAB518 /* ActivityIndicator.framework */; };
|
||||
D0C9CADA2302369800FAB518 /* SearchBarNode.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9CAD92302369800FAB518 /* SearchBarNode.framework */; };
|
||||
D0C9CADC230236A200FAB518 /* ChatListSearchItemHeader.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9CADB230236A200FAB518 /* ChatListSearchItemHeader.framework */; };
|
||||
D0C9CADE230236A200FAB518 /* ChatListSearchItemNode.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9CADD230236A200FAB518 /* ChatListSearchItemNode.framework */; };
|
||||
D0C9CAE0230236A200FAB518 /* ChatListSearchRecentPeersNode.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9CADF230236A200FAB518 /* ChatListSearchRecentPeersNode.framework */; };
|
||||
D0C9CAE2230236B700FAB518 /* AsyncDisplayKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9CAE1230236B700FAB518 /* AsyncDisplayKit.framework */; };
|
||||
D0C9CAF0230236F700FAB518 /* ChatListHoleItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9CAE4230236F400FAB518 /* ChatListHoleItem.swift */; };
|
||||
D0C9CAF1230236F700FAB518 /* ChatListBadgeNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9CAE5230236F400FAB518 /* ChatListBadgeNode.swift */; };
|
||||
D0C9CAF2230236F700FAB518 /* ChatListNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9CAE6230236F500FAB518 /* ChatListNode.swift */; };
|
||||
D0C9CAF3230236F700FAB518 /* ChatListNodeLocation.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9CAE7230236F500FAB518 /* ChatListNodeLocation.swift */; };
|
||||
D0C9CAF4230236F700FAB518 /* ChatListViewTransition.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9CAE8230236F500FAB518 /* ChatListViewTransition.swift */; };
|
||||
D0C9CAF5230236F700FAB518 /* ChatListNodeEntries.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9CAE9230236F500FAB518 /* ChatListNodeEntries.swift */; };
|
||||
D0C9CAF6230236F700FAB518 /* ChatListTypingNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9CAEA230236F500FAB518 /* ChatListTypingNode.swift */; };
|
||||
D0C9CAF7230236F700FAB518 /* ChatListItemStrings.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9CAEB230236F600FAB518 /* ChatListItemStrings.swift */; };
|
||||
D0C9CAF8230236F700FAB518 /* ChatListItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9CAEC230236F600FAB518 /* ChatListItem.swift */; };
|
||||
D0C9CAF9230236F700FAB518 /* ChatListStatusNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9CAED230236F600FAB518 /* ChatListStatusNode.swift */; };
|
||||
D0C9CAFA230236F700FAB518 /* ChatListPresentationData.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9CAEE230236F600FAB518 /* ChatListPresentationData.swift */; };
|
||||
D0C9CAFB230236F700FAB518 /* ChatListArchiveInfoItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9CAEF230236F600FAB518 /* ChatListArchiveInfoItem.swift */; };
|
||||
D0C9CAFF2302373000FAB518 /* LocalizedPeerData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9CAFE2302373000FAB518 /* LocalizedPeerData.framework */; };
|
||||
D0C9CB012302373000FAB518 /* PeerOnlineMarkerNode.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9CB002302373000FAB518 /* PeerOnlineMarkerNode.framework */; };
|
||||
D0C9CB032302373000FAB518 /* PeerPresenceStatusManager.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9CB022302373000FAB518 /* PeerPresenceStatusManager.framework */; };
|
||||
D0C9CB052302373000FAB518 /* TemporaryCachedPeerDataManager.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9CB042302373000FAB518 /* TemporaryCachedPeerDataManager.framework */; };
|
||||
D0C9CB07230237D000FAB518 /* FrameworkBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9CB06230237D000FAB518 /* FrameworkBundle.swift */; };
|
||||
D0C9CB442302B15D00FAB518 /* ChatTitleActivityNode.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9CB432302B15D00FAB518 /* ChatTitleActivityNode.framework */; };
|
||||
D0C9CB802302B37B00FAB518 /* DeleteChatPeerActionSheetItem.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9CB7F2302B37B00FAB518 /* DeleteChatPeerActionSheetItem.framework */; };
|
||||
D0C9CBB42302B64C00FAB518 /* LanguageSuggestionUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9CBB32302B64C00FAB518 /* LanguageSuggestionUI.framework */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
D0C9CA95230234D400FAB518 /* ChatListUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = ChatListUI.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9CA98230234D400FAB518 /* ChatListUI.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ChatListUI.h; sourceTree = "<group>"; };
|
||||
D0C9CA99230234D400FAB518 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||
D0C9CAA4230235E300FAB518 /* ChatListSearchContainerNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatListSearchContainerNode.swift; sourceTree = "<group>"; };
|
||||
D0C9CAA5230235E300FAB518 /* ChatListRecentPeersListItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatListRecentPeersListItem.swift; sourceTree = "<group>"; };
|
||||
D0C9CAA6230235E300FAB518 /* ChatListController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatListController.swift; sourceTree = "<group>"; };
|
||||
D0C9CAA7230235E300FAB518 /* ChatListTitleProxyNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatListTitleProxyNode.swift; sourceTree = "<group>"; };
|
||||
D0C9CAA8230235E400FAB518 /* ChatListTitleView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatListTitleView.swift; sourceTree = "<group>"; };
|
||||
D0C9CAA9230235E400FAB518 /* ChatListTitleLockView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatListTitleLockView.swift; sourceTree = "<group>"; };
|
||||
D0C9CAAA230235E400FAB518 /* ChatListSelection.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatListSelection.swift; sourceTree = "<group>"; };
|
||||
D0C9CAAB230235E400FAB518 /* ChatListControllerNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatListControllerNode.swift; sourceTree = "<group>"; };
|
||||
D0C9CAAC230235E500FAB518 /* ChatListEmptyNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatListEmptyNode.swift; sourceTree = "<group>"; };
|
||||
D0C9CAB72302360A00FAB518 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
|
||||
D0C9CAB92302360F00FAB518 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
|
||||
D0C9CABB2302361100FAB518 /* Postbox.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Postbox.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9CABD2302361A00FAB518 /* SwiftSignalKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = SwiftSignalKit.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9CABF2302362000FAB518 /* Display.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Display.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9CAC12302362700FAB518 /* TelegramCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramCore.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9CAC32302363100FAB518 /* TelegramPresentationData.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramPresentationData.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9CAC52302363B00FAB518 /* TelegramUIPreferences.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramUIPreferences.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9CAC72302364500FAB518 /* TelegramBaseController.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramBaseController.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9CAC92302364B00FAB518 /* OverlayStatusController.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = OverlayStatusController.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9CACB2302365200FAB518 /* AccountContext.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AccountContext.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9CACD2302365800FAB518 /* AlertUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AlertUI.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9CACF2302365D00FAB518 /* UndoUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = UndoUI.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9CAD12302366500FAB518 /* TelegramNotices.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramNotices.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9CAD32302366C00FAB518 /* SearchUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = SearchUI.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9CAD52302368600FAB518 /* MergeLists.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = MergeLists.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9CAD72302368E00FAB518 /* ActivityIndicator.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ActivityIndicator.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9CAD92302369800FAB518 /* SearchBarNode.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = SearchBarNode.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9CADB230236A200FAB518 /* ChatListSearchItemHeader.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ChatListSearchItemHeader.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9CADD230236A200FAB518 /* ChatListSearchItemNode.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ChatListSearchItemNode.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9CADF230236A200FAB518 /* ChatListSearchRecentPeersNode.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ChatListSearchRecentPeersNode.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9CAE1230236B700FAB518 /* AsyncDisplayKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AsyncDisplayKit.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9CAE4230236F400FAB518 /* ChatListHoleItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatListHoleItem.swift; sourceTree = "<group>"; };
|
||||
D0C9CAE5230236F400FAB518 /* ChatListBadgeNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatListBadgeNode.swift; sourceTree = "<group>"; };
|
||||
D0C9CAE6230236F500FAB518 /* ChatListNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatListNode.swift; sourceTree = "<group>"; };
|
||||
D0C9CAE7230236F500FAB518 /* ChatListNodeLocation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatListNodeLocation.swift; sourceTree = "<group>"; };
|
||||
D0C9CAE8230236F500FAB518 /* ChatListViewTransition.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatListViewTransition.swift; sourceTree = "<group>"; };
|
||||
D0C9CAE9230236F500FAB518 /* ChatListNodeEntries.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatListNodeEntries.swift; sourceTree = "<group>"; };
|
||||
D0C9CAEA230236F500FAB518 /* ChatListTypingNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatListTypingNode.swift; sourceTree = "<group>"; };
|
||||
D0C9CAEB230236F600FAB518 /* ChatListItemStrings.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatListItemStrings.swift; sourceTree = "<group>"; };
|
||||
D0C9CAEC230236F600FAB518 /* ChatListItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatListItem.swift; sourceTree = "<group>"; };
|
||||
D0C9CAED230236F600FAB518 /* ChatListStatusNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatListStatusNode.swift; sourceTree = "<group>"; };
|
||||
D0C9CAEE230236F600FAB518 /* ChatListPresentationData.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatListPresentationData.swift; sourceTree = "<group>"; };
|
||||
D0C9CAEF230236F600FAB518 /* ChatListArchiveInfoItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatListArchiveInfoItem.swift; sourceTree = "<group>"; };
|
||||
D0C9CAFE2302373000FAB518 /* LocalizedPeerData.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = LocalizedPeerData.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9CB002302373000FAB518 /* PeerOnlineMarkerNode.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = PeerOnlineMarkerNode.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9CB022302373000FAB518 /* PeerPresenceStatusManager.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = PeerPresenceStatusManager.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9CB042302373000FAB518 /* TemporaryCachedPeerDataManager.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TemporaryCachedPeerDataManager.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9CB06230237D000FAB518 /* FrameworkBundle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FrameworkBundle.swift; sourceTree = "<group>"; };
|
||||
D0C9CB432302B15D00FAB518 /* ChatTitleActivityNode.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ChatTitleActivityNode.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9CB7F2302B37B00FAB518 /* DeleteChatPeerActionSheetItem.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = DeleteChatPeerActionSheetItem.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9CBB32302B64C00FAB518 /* LanguageSuggestionUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = LanguageSuggestionUI.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
D0C9CA92230234D400FAB518 /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
D0C9CBB42302B64C00FAB518 /* LanguageSuggestionUI.framework in Frameworks */,
|
||||
D0C9CB802302B37B00FAB518 /* DeleteChatPeerActionSheetItem.framework in Frameworks */,
|
||||
D0C9CB442302B15D00FAB518 /* ChatTitleActivityNode.framework in Frameworks */,
|
||||
D0C9CAFF2302373000FAB518 /* LocalizedPeerData.framework in Frameworks */,
|
||||
D0C9CB012302373000FAB518 /* PeerOnlineMarkerNode.framework in Frameworks */,
|
||||
D0C9CB032302373000FAB518 /* PeerPresenceStatusManager.framework in Frameworks */,
|
||||
D0C9CB052302373000FAB518 /* TemporaryCachedPeerDataManager.framework in Frameworks */,
|
||||
D0C9CAE2230236B700FAB518 /* AsyncDisplayKit.framework in Frameworks */,
|
||||
D0C9CADC230236A200FAB518 /* ChatListSearchItemHeader.framework in Frameworks */,
|
||||
D0C9CADE230236A200FAB518 /* ChatListSearchItemNode.framework in Frameworks */,
|
||||
D0C9CAE0230236A200FAB518 /* ChatListSearchRecentPeersNode.framework in Frameworks */,
|
||||
D0C9CADA2302369800FAB518 /* SearchBarNode.framework in Frameworks */,
|
||||
D0C9CAD82302368E00FAB518 /* ActivityIndicator.framework in Frameworks */,
|
||||
D0C9CAD62302368600FAB518 /* MergeLists.framework in Frameworks */,
|
||||
D0C9CAD42302366C00FAB518 /* SearchUI.framework in Frameworks */,
|
||||
D0C9CAD22302366500FAB518 /* TelegramNotices.framework in Frameworks */,
|
||||
D0C9CAD02302365D00FAB518 /* UndoUI.framework in Frameworks */,
|
||||
D0C9CACE2302365800FAB518 /* AlertUI.framework in Frameworks */,
|
||||
D0C9CACC2302365200FAB518 /* AccountContext.framework in Frameworks */,
|
||||
D0C9CACA2302364B00FAB518 /* OverlayStatusController.framework in Frameworks */,
|
||||
D0C9CAC82302364500FAB518 /* TelegramBaseController.framework in Frameworks */,
|
||||
D0C9CAC62302363B00FAB518 /* TelegramUIPreferences.framework in Frameworks */,
|
||||
D0C9CAC42302363100FAB518 /* TelegramPresentationData.framework in Frameworks */,
|
||||
D0C9CAC22302362700FAB518 /* TelegramCore.framework in Frameworks */,
|
||||
D0C9CAC02302362000FAB518 /* Display.framework in Frameworks */,
|
||||
D0C9CABE2302361A00FAB518 /* SwiftSignalKit.framework in Frameworks */,
|
||||
D0C9CABC2302361100FAB518 /* Postbox.framework in Frameworks */,
|
||||
D0C9CABA2302360F00FAB518 /* UIKit.framework in Frameworks */,
|
||||
D0C9CAB82302360A00FAB518 /* Foundation.framework in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXFrameworksBuildPhase section */
|
||||
|
||||
/* Begin PBXGroup section */
|
||||
D0C9CA8B230234D400FAB518 = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
D0C9CA99230234D400FAB518 /* Info.plist */,
|
||||
D0C9CA97230234D400FAB518 /* Sources */,
|
||||
D0C9CA96230234D400FAB518 /* Products */,
|
||||
D0C9CAB62302360600FAB518 /* Frameworks */,
|
||||
);
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
D0C9CA96230234D400FAB518 /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
D0C9CA95230234D400FAB518 /* ChatListUI.framework */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
D0C9CA97230234D400FAB518 /* Sources */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
D0C9CAE3230236BF00FAB518 /* Node */,
|
||||
D0C9CAA6230235E300FAB518 /* ChatListController.swift */,
|
||||
D0C9CAAB230235E400FAB518 /* ChatListControllerNode.swift */,
|
||||
D0C9CAAC230235E500FAB518 /* ChatListEmptyNode.swift */,
|
||||
D0C9CAA5230235E300FAB518 /* ChatListRecentPeersListItem.swift */,
|
||||
D0C9CAA4230235E300FAB518 /* ChatListSearchContainerNode.swift */,
|
||||
D0C9CAAA230235E400FAB518 /* ChatListSelection.swift */,
|
||||
D0C9CAA9230235E400FAB518 /* ChatListTitleLockView.swift */,
|
||||
D0C9CAA7230235E300FAB518 /* ChatListTitleProxyNode.swift */,
|
||||
D0C9CAA8230235E400FAB518 /* ChatListTitleView.swift */,
|
||||
D0C9CB06230237D000FAB518 /* FrameworkBundle.swift */,
|
||||
D0C9CA98230234D400FAB518 /* ChatListUI.h */,
|
||||
);
|
||||
path = Sources;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
D0C9CAB62302360600FAB518 /* Frameworks */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
D0C9CBB32302B64C00FAB518 /* LanguageSuggestionUI.framework */,
|
||||
D0C9CB7F2302B37B00FAB518 /* DeleteChatPeerActionSheetItem.framework */,
|
||||
D0C9CB432302B15D00FAB518 /* ChatTitleActivityNode.framework */,
|
||||
D0C9CAFE2302373000FAB518 /* LocalizedPeerData.framework */,
|
||||
D0C9CB002302373000FAB518 /* PeerOnlineMarkerNode.framework */,
|
||||
D0C9CB022302373000FAB518 /* PeerPresenceStatusManager.framework */,
|
||||
D0C9CB042302373000FAB518 /* TemporaryCachedPeerDataManager.framework */,
|
||||
D0C9CAE1230236B700FAB518 /* AsyncDisplayKit.framework */,
|
||||
D0C9CADB230236A200FAB518 /* ChatListSearchItemHeader.framework */,
|
||||
D0C9CADD230236A200FAB518 /* ChatListSearchItemNode.framework */,
|
||||
D0C9CADF230236A200FAB518 /* ChatListSearchRecentPeersNode.framework */,
|
||||
D0C9CAD92302369800FAB518 /* SearchBarNode.framework */,
|
||||
D0C9CAD72302368E00FAB518 /* ActivityIndicator.framework */,
|
||||
D0C9CAD52302368600FAB518 /* MergeLists.framework */,
|
||||
D0C9CAD32302366C00FAB518 /* SearchUI.framework */,
|
||||
D0C9CAD12302366500FAB518 /* TelegramNotices.framework */,
|
||||
D0C9CACF2302365D00FAB518 /* UndoUI.framework */,
|
||||
D0C9CACD2302365800FAB518 /* AlertUI.framework */,
|
||||
D0C9CACB2302365200FAB518 /* AccountContext.framework */,
|
||||
D0C9CAC92302364B00FAB518 /* OverlayStatusController.framework */,
|
||||
D0C9CAC72302364500FAB518 /* TelegramBaseController.framework */,
|
||||
D0C9CAC52302363B00FAB518 /* TelegramUIPreferences.framework */,
|
||||
D0C9CAC32302363100FAB518 /* TelegramPresentationData.framework */,
|
||||
D0C9CAC12302362700FAB518 /* TelegramCore.framework */,
|
||||
D0C9CABF2302362000FAB518 /* Display.framework */,
|
||||
D0C9CABD2302361A00FAB518 /* SwiftSignalKit.framework */,
|
||||
D0C9CABB2302361100FAB518 /* Postbox.framework */,
|
||||
D0C9CAB92302360F00FAB518 /* UIKit.framework */,
|
||||
D0C9CAB72302360A00FAB518 /* Foundation.framework */,
|
||||
);
|
||||
name = Frameworks;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
D0C9CAE3230236BF00FAB518 /* Node */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
D0C9CAEF230236F600FAB518 /* ChatListArchiveInfoItem.swift */,
|
||||
D0C9CAE5230236F400FAB518 /* ChatListBadgeNode.swift */,
|
||||
D0C9CAE4230236F400FAB518 /* ChatListHoleItem.swift */,
|
||||
D0C9CAEC230236F600FAB518 /* ChatListItem.swift */,
|
||||
D0C9CAEB230236F600FAB518 /* ChatListItemStrings.swift */,
|
||||
D0C9CAE6230236F500FAB518 /* ChatListNode.swift */,
|
||||
D0C9CAE9230236F500FAB518 /* ChatListNodeEntries.swift */,
|
||||
D0C9CAE7230236F500FAB518 /* ChatListNodeLocation.swift */,
|
||||
D0C9CAEE230236F600FAB518 /* ChatListPresentationData.swift */,
|
||||
D0C9CAED230236F600FAB518 /* ChatListStatusNode.swift */,
|
||||
D0C9CAEA230236F500FAB518 /* ChatListTypingNode.swift */,
|
||||
D0C9CAE8230236F500FAB518 /* ChatListViewTransition.swift */,
|
||||
);
|
||||
path = Node;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXGroup section */
|
||||
|
||||
/* Begin PBXHeadersBuildPhase section */
|
||||
D0C9CA90230234D400FAB518 /* Headers */ = {
|
||||
isa = PBXHeadersBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
D0C9CA9A230234D400FAB518 /* ChatListUI.h in Headers */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXHeadersBuildPhase section */
|
||||
|
||||
/* Begin PBXNativeTarget section */
|
||||
D0C9CA94230234D400FAB518 /* ChatListUI */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = D0C9CA9D230234D400FAB518 /* Build configuration list for PBXNativeTarget "ChatListUI" */;
|
||||
buildPhases = (
|
||||
D0C9CA90230234D400FAB518 /* Headers */,
|
||||
D0C9CA91230234D400FAB518 /* Sources */,
|
||||
D0C9CA92230234D400FAB518 /* Frameworks */,
|
||||
D0C9CA93230234D400FAB518 /* Resources */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
);
|
||||
name = ChatListUI;
|
||||
productName = ChatListUI;
|
||||
productReference = D0C9CA95230234D400FAB518 /* ChatListUI.framework */;
|
||||
productType = "com.apple.product-type.framework";
|
||||
};
|
||||
/* End PBXNativeTarget section */
|
||||
|
||||
/* Begin PBXProject section */
|
||||
D0C9CA8C230234D400FAB518 /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
DefaultBuildSystemTypeForWorkspace = Latest;
|
||||
LastUpgradeCheck = 1030;
|
||||
ORGANIZATIONNAME = "Telegram Messenger LLP";
|
||||
TargetAttributes = {
|
||||
D0C9CA94230234D400FAB518 = {
|
||||
CreatedOnToolsVersion = 10.3;
|
||||
LastSwiftMigration = 1030;
|
||||
};
|
||||
};
|
||||
};
|
||||
buildConfigurationList = D0C9CA8F230234D400FAB518 /* Build configuration list for PBXProject "ChatListUI_Xcode" */;
|
||||
compatibilityVersion = "Xcode 9.3";
|
||||
developmentRegion = en;
|
||||
hasScannedForEncodings = 0;
|
||||
knownRegions = (
|
||||
en,
|
||||
);
|
||||
mainGroup = D0C9CA8B230234D400FAB518;
|
||||
productRefGroup = D0C9CA96230234D400FAB518 /* Products */;
|
||||
projectDirPath = "";
|
||||
projectRoot = "";
|
||||
targets = (
|
||||
D0C9CA94230234D400FAB518 /* ChatListUI */,
|
||||
);
|
||||
};
|
||||
/* End PBXProject section */
|
||||
|
||||
/* Begin PBXResourcesBuildPhase section */
|
||||
D0C9CA93230234D400FAB518 /* Resources */ = {
|
||||
isa = PBXResourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXResourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXSourcesBuildPhase section */
|
||||
D0C9CA91230234D400FAB518 /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
D0C9CAF9230236F700FAB518 /* ChatListStatusNode.swift in Sources */,
|
||||
D0C9CAF6230236F700FAB518 /* ChatListTypingNode.swift in Sources */,
|
||||
D0C9CAF0230236F700FAB518 /* ChatListHoleItem.swift in Sources */,
|
||||
D0C9CAF8230236F700FAB518 /* ChatListItem.swift in Sources */,
|
||||
D0C9CAF7230236F700FAB518 /* ChatListItemStrings.swift in Sources */,
|
||||
D0C9CAAD230235E500FAB518 /* ChatListSearchContainerNode.swift in Sources */,
|
||||
D0C9CAB1230235E500FAB518 /* ChatListTitleView.swift in Sources */,
|
||||
D0C9CAF4230236F700FAB518 /* ChatListViewTransition.swift in Sources */,
|
||||
D0C9CB07230237D000FAB518 /* FrameworkBundle.swift in Sources */,
|
||||
D0C9CAF5230236F700FAB518 /* ChatListNodeEntries.swift in Sources */,
|
||||
D0C9CAF1230236F700FAB518 /* ChatListBadgeNode.swift in Sources */,
|
||||
D0C9CAB5230235E500FAB518 /* ChatListEmptyNode.swift in Sources */,
|
||||
D0C9CAFA230236F700FAB518 /* ChatListPresentationData.swift in Sources */,
|
||||
D0C9CAB2230235E500FAB518 /* ChatListTitleLockView.swift in Sources */,
|
||||
D0C9CAB0230235E500FAB518 /* ChatListTitleProxyNode.swift in Sources */,
|
||||
D0C9CAFB230236F700FAB518 /* ChatListArchiveInfoItem.swift in Sources */,
|
||||
D0C9CAAF230235E500FAB518 /* ChatListController.swift in Sources */,
|
||||
D0C9CAB4230235E500FAB518 /* ChatListControllerNode.swift in Sources */,
|
||||
D0C9CAB3230235E500FAB518 /* ChatListSelection.swift in Sources */,
|
||||
D0C9CAAE230235E500FAB518 /* ChatListRecentPeersListItem.swift in Sources */,
|
||||
D0C9CAF2230236F700FAB518 /* ChatListNode.swift in Sources */,
|
||||
D0C9CAF3230236F700FAB518 /* ChatListNodeLocation.swift in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXSourcesBuildPhase section */
|
||||
|
||||
/* Begin XCBuildConfiguration section */
|
||||
D0C9CA9B230234D400FAB518 /* 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;
|
||||
};
|
||||
D0C9CA9C230234D400FAB518 /* 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;
|
||||
};
|
||||
D0C9CA9E230234D400FAB518 /* 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.ChatListUI;
|
||||
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;
|
||||
};
|
||||
D0C9CA9F230234D400FAB518 /* 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.ChatListUI;
|
||||
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
|
||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||
SKIP_INSTALL = YES;
|
||||
SWIFT_VERSION = 5.0;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
};
|
||||
name = ReleaseAppStoreLLC;
|
||||
};
|
||||
D0C9CAA02302355B00FAB518 /* 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;
|
||||
};
|
||||
D0C9CAA12302355B00FAB518 /* 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.ChatListUI;
|
||||
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;
|
||||
};
|
||||
D0C9CAA22302356D00FAB518 /* 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;
|
||||
};
|
||||
D0C9CAA32302356D00FAB518 /* 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.ChatListUI;
|
||||
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 */
|
||||
D0C9CA8F230234D400FAB518 /* Build configuration list for PBXProject "ChatListUI_Xcode" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
D0C9CA9B230234D400FAB518 /* DebugAppStoreLLC */,
|
||||
D0C9CAA02302355B00FAB518 /* DebugHockeyapp */,
|
||||
D0C9CA9C230234D400FAB518 /* ReleaseAppStoreLLC */,
|
||||
D0C9CAA22302356D00FAB518 /* ReleaseHockeyappInternal */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = ReleaseAppStoreLLC;
|
||||
};
|
||||
D0C9CA9D230234D400FAB518 /* Build configuration list for PBXNativeTarget "ChatListUI" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
D0C9CA9E230234D400FAB518 /* DebugAppStoreLLC */,
|
||||
D0C9CAA12302355B00FAB518 /* DebugHockeyapp */,
|
||||
D0C9CA9F230234D400FAB518 /* ReleaseAppStoreLLC */,
|
||||
D0C9CAA32302356D00FAB518 /* ReleaseHockeyappInternal */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = ReleaseAppStoreLLC;
|
||||
};
|
||||
/* End XCConfigurationList section */
|
||||
};
|
||||
rootObject = D0C9CA8C230234D400FAB518 /* Project object */;
|
||||
}
|
||||
22
submodules/ChatListUI/Info.plist
Normal file
22
submodules/ChatListUI/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>
|
||||
|
|
@ -13,6 +13,8 @@ import AlertUI
|
|||
import UndoUI
|
||||
import TelegramNotices
|
||||
import SearchUI
|
||||
import DeleteChatPeerActionSheetItem
|
||||
import LanguageSuggestionUI
|
||||
|
||||
public func useSpecialTabBarIcons() -> Bool {
|
||||
return (Date(timeIntervalSince1970: 1545642000)...Date(timeIntervalSince1970: 1546387200)).contains(Date())
|
||||
|
|
@ -65,7 +67,7 @@ private func fixListNodeScrolling(_ listNode: ListView, searchNode: NavigationBa
|
|||
public class ChatListController: TelegramBaseController, UIViewControllerPreviewingDelegate {
|
||||
private var validLayout: ContainerViewLayout?
|
||||
|
||||
let context: AccountContext
|
||||
public let context: AccountContext
|
||||
private let controlsHistoryPreload: Bool
|
||||
private let hideNetworkActivityStatus: Bool
|
||||
|
||||
|
|
@ -109,7 +111,7 @@ public class ChatListController: TelegramBaseController, UIViewControllerPreview
|
|||
}
|
||||
}
|
||||
|
||||
public init(context: AccountContext, groupId: PeerGroupId, controlsHistoryPreload: Bool, hideNetworkActivityStatus: Bool = false) {
|
||||
public init(context: AccountContext, groupId: PeerGroupId, controlsHistoryPreload: Bool, hideNetworkActivityStatus: Bool = false, enableDebugActions: Bool) {
|
||||
self.context = context
|
||||
self.controlsHistoryPreload = controlsHistoryPreload
|
||||
self.hideNetworkActivityStatus = hideNetworkActivityStatus
|
||||
|
|
@ -324,7 +326,7 @@ public class ChatListController: TelegramBaseController, UIViewControllerPreview
|
|||
|
||||
self.titleView.openProxySettings = { [weak self] in
|
||||
if let strongSelf = self {
|
||||
(strongSelf.navigationController as? NavigationController)?.pushViewController(proxySettingsController(context: context))
|
||||
(strongSelf.navigationController as? NavigationController)?.pushViewController(context.sharedContext.makeProxySettingsController(context: context))
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -349,7 +351,7 @@ public class ChatListController: TelegramBaseController, UIViewControllerPreview
|
|||
self.searchContentNode?.updateExpansionProgress(0.0)
|
||||
self.navigationBar?.setContentNode(self.searchContentNode, animated: false)
|
||||
|
||||
if !GlobalExperimentalSettings.isAppStoreBuild {
|
||||
if enableDebugActions {
|
||||
self.tabBarItemDebugTapAction = {
|
||||
preconditionFailure("debug tap")
|
||||
}
|
||||
|
|
@ -709,7 +711,7 @@ public class ChatListController: TelegramBaseController, UIViewControllerPreview
|
|||
self.chatListDisplayNode.chatListNode.groupSelected = { [weak self] groupId in
|
||||
if let strongSelf = self {
|
||||
if let navigationController = strongSelf.navigationController as? NavigationController {
|
||||
let chatListController = ChatListController(context: strongSelf.context, groupId: groupId, controlsHistoryPreload: false)
|
||||
let chatListController = ChatListController(context: strongSelf.context, groupId: groupId, controlsHistoryPreload: false, enableDebugActions: false)
|
||||
navigationController.pushViewController(chatListController)
|
||||
strongSelf.chatListDisplayNode.chatListNode.clearHighlightAnimated(true)
|
||||
}
|
||||
|
|
@ -815,7 +817,7 @@ public class ChatListController: TelegramBaseController, UIViewControllerPreview
|
|||
self.chatListDisplayNode.requestAddContact = { [weak self] phoneNumber in
|
||||
if let strongSelf = self {
|
||||
strongSelf.view.endEditing(true)
|
||||
openAddContact(context: strongSelf.context, phoneNumber: phoneNumber, present: { [weak self] controller, arguments in
|
||||
strongSelf.context.sharedContext.openAddContact(context: strongSelf.context, firstName: "", lastName: "", phoneNumber: phoneNumber, label: defaultContactLabel, present: { [weak self] controller, arguments in
|
||||
self?.present(controller, in: .window(.root), with: arguments)
|
||||
}, pushController: { [weak self] controller in
|
||||
(self?.navigationController as? NavigationController)?.pushViewController(controller)
|
||||
|
|
@ -1042,7 +1044,7 @@ public class ChatListController: TelegramBaseController, UIViewControllerPreview
|
|||
}
|
||||
if let controller = languageSuggestionController(context: strongSelf.context, suggestedLocalization: suggestedLocalization, currentLanguageCode: currentLanguageCode, openSelection: { [weak self] in
|
||||
if let strongSelf = self {
|
||||
let controller = LocalizationListController(context: strongSelf.context)
|
||||
let controller = strongSelf.context.sharedContext.makeLocalizationListController(context: strongSelf.context)
|
||||
(strongSelf.navigationController as? NavigationController)?.pushViewController(controller)
|
||||
}
|
||||
}) {
|
||||
|
|
@ -1114,7 +1116,7 @@ public class ChatListController: TelegramBaseController, UIViewControllerPreview
|
|||
super.navigationStackConfigurationUpdated(next: next)
|
||||
}
|
||||
|
||||
@objc func editPressed() {
|
||||
@objc private func editPressed() {
|
||||
let editItem = UIBarButtonItem(title: self.presentationData.strings.Common_Done, style: .done, target: self, action: #selector(self.donePressed))
|
||||
editItem.accessibilityLabel = self.presentationData.strings.Common_Done
|
||||
if case .root = self.groupId {
|
||||
|
|
@ -1134,7 +1136,7 @@ public class ChatListController: TelegramBaseController, UIViewControllerPreview
|
|||
}
|
||||
}
|
||||
|
||||
@objc func donePressed() {
|
||||
@objc private func donePressed() {
|
||||
let editItem = UIBarButtonItem(title: self.presentationData.strings.Common_Edit, style: .plain, target: self, action: #selector(self.editPressed))
|
||||
editItem.accessibilityLabel = self.presentationData.strings.Common_Edit
|
||||
if case .root = self.groupId {
|
||||
|
|
@ -1153,7 +1155,7 @@ public class ChatListController: TelegramBaseController, UIViewControllerPreview
|
|||
}
|
||||
}
|
||||
|
||||
func activateSearch() {
|
||||
public func activateSearch() {
|
||||
if self.displayNavigationBar {
|
||||
let _ = (self.chatListDisplayNode.chatListNode.ready
|
||||
|> take(1)
|
||||
|
|
@ -1172,7 +1174,7 @@ public class ChatListController: TelegramBaseController, UIViewControllerPreview
|
|||
}
|
||||
}
|
||||
|
||||
func deactivateSearch(animated: Bool) {
|
||||
public func deactivateSearch(animated: Bool) {
|
||||
if !self.displayNavigationBar {
|
||||
self.setDisplayNavigationBar(true, transition: animated ? .animated(duration: 0.5, curve: .spring) : .immediate)
|
||||
if let searchContentNode = self.searchContentNode {
|
||||
|
|
@ -1181,8 +1183,8 @@ public class ChatListController: TelegramBaseController, UIViewControllerPreview
|
|||
}
|
||||
}
|
||||
|
||||
@objc func composePressed() {
|
||||
(self.navigationController as? NavigationController)?.replaceAllButRootController(ComposeController(context: self.context), animated: true)
|
||||
@objc public func composePressed() {
|
||||
(self.navigationController as? NavigationController)?.replaceAllButRootController(self.context.sharedContext.makeComposeController(context: self.context), animated: true)
|
||||
}
|
||||
|
||||
public func previewingContext(_ previewingContext: UIViewControllerPreviewing, viewControllerForLocation location: CGPoint) -> UIViewController? {
|
||||
|
|
@ -1218,7 +1220,7 @@ public class ChatListController: TelegramBaseController, UIViewControllerPreview
|
|||
sourceRect = CGRect(x: sourceRect.minX, y: sourceRect.minY + bounds.minY, width: bounds.width, height: bounds.height)
|
||||
sourceRect.size.height -= UIScreenPixel
|
||||
|
||||
let chatController = ChatControllerImpl(context: self.context, chatLocation: .peer(peerId), mode: .standard(previewing: true))
|
||||
let chatController = self.context.sharedContext.makeChatController(context: self.context, chatLocation: .peer(peerId), subject: nil, botStart: nil, mode: .standard(previewing: true))
|
||||
chatController.canReadHistory.set(false)
|
||||
chatController.containerLayoutUpdated(ContainerViewLayout(size: contentSize, metrics: LayoutMetrics(), intrinsicInsets: UIEdgeInsets(), safeInsets: UIEdgeInsets(), statusBarHeight: nil, inputHeight: nil, standardInputHeight: 216.0, inputHeightIsInteractivellyChanging: false, inVoiceOver: false), transition: .immediate)
|
||||
return (chatController, sourceRect)
|
||||
|
|
@ -1227,7 +1229,7 @@ public class ChatListController: TelegramBaseController, UIViewControllerPreview
|
|||
sourceRect = CGRect(x: sourceRect.minX, y: sourceRect.minY + bounds.minY, width: bounds.width, height: bounds.height)
|
||||
sourceRect.size.height -= UIScreenPixel
|
||||
|
||||
let chatController = ChatControllerImpl(context: self.context, chatLocation: .peer(messageId.peerId), subject: .message(messageId), mode: .standard(previewing: true))
|
||||
let chatController = self.context.sharedContext.makeChatController(context: self.context, chatLocation: .peer(messageId.peerId), subject: .message(messageId), botStart: nil, mode: .standard(previewing: true))
|
||||
chatController.canReadHistory.set(false)
|
||||
chatController.containerLayoutUpdated(ContainerViewLayout(size: contentSize, metrics: LayoutMetrics(), intrinsicInsets: UIEdgeInsets(), safeInsets: UIEdgeInsets(), statusBarHeight: nil, inputHeight: nil, standardInputHeight: 216.0, inputHeightIsInteractivellyChanging: false, inVoiceOver: false), transition: .immediate)
|
||||
return (chatController, sourceRect)
|
||||
|
|
@ -1250,7 +1252,7 @@ public class ChatListController: TelegramBaseController, UIViewControllerPreview
|
|||
switch item.content {
|
||||
case let .peer(_, peer, _, _, _, _, _, _, _, _):
|
||||
if peer.peerId.namespace != Namespaces.Peer.SecretChat {
|
||||
let chatController = ChatControllerImpl(context: self.context, chatLocation: .peer(peer.peerId), mode: .standard(previewing: true))
|
||||
let chatController = self.context.sharedContext.makeChatController(context: self.context, chatLocation: .peer(peer.peerId), subject: nil, botStart: nil, mode: .standard(previewing: true))
|
||||
chatController.canReadHistory.set(false)
|
||||
chatController.containerLayoutUpdated(ContainerViewLayout(size: contentSize, metrics: LayoutMetrics(), intrinsicInsets: UIEdgeInsets(), safeInsets: UIEdgeInsets(), statusBarHeight: nil, inputHeight: nil, standardInputHeight: 216.0, inputHeightIsInteractivellyChanging: false, inVoiceOver: false), transition: .immediate)
|
||||
return (chatController, sourceRect)
|
||||
|
|
@ -1258,7 +1260,7 @@ public class ChatListController: TelegramBaseController, UIViewControllerPreview
|
|||
return nil
|
||||
}
|
||||
case let .groupReference(groupId, _, _, _, _):
|
||||
let chatListController = ChatListController(context: self.context, groupId: groupId, controlsHistoryPreload: false)
|
||||
let chatListController = ChatListController(context: self.context, groupId: groupId, controlsHistoryPreload: false, enableDebugActions: false)
|
||||
chatListController.containerLayoutUpdated(ContainerViewLayout(size: contentSize, metrics: LayoutMetrics(), intrinsicInsets: UIEdgeInsets(), safeInsets: UIEdgeInsets(), statusBarHeight: nil, inputHeight: nil, standardInputHeight: 216.0, inputHeightIsInteractivellyChanging: false, inVoiceOver: false), transition: .immediate)
|
||||
return (chatListController, sourceRect)
|
||||
}
|
||||
|
|
@ -1273,7 +1275,7 @@ public class ChatListController: TelegramBaseController, UIViewControllerPreview
|
|||
|
||||
func previewingCommit(_ viewControllerToCommit: UIViewController) {
|
||||
if let viewControllerToCommit = viewControllerToCommit as? ViewController {
|
||||
if let chatController = viewControllerToCommit as? ChatControllerImpl {
|
||||
if let chatController = viewControllerToCommit as? ChatController {
|
||||
chatController.canReadHistory.set(true)
|
||||
chatController.updatePresentationMode(.standard(previewing: false))
|
||||
if let navigationController = self.navigationController as? NavigationController {
|
||||
|
|
@ -1446,7 +1448,7 @@ public class ChatListController: TelegramBaseController, UIViewControllerPreview
|
|||
}
|
||||
}
|
||||
|
||||
func maybeAskForPeerChatRemoval(peer: RenderedPeer, deleteGloballyIfPossible: Bool = false, completion: @escaping (Bool) -> Void, removed: @escaping () -> Void) {
|
||||
public func maybeAskForPeerChatRemoval(peer: RenderedPeer, deleteGloballyIfPossible: Bool = false, completion: @escaping (Bool) -> Void, removed: @escaping () -> Void) {
|
||||
guard let chatPeer = peer.peers[peer.peerId], let mainPeer = peer.chatMainPeer else {
|
||||
completion(false)
|
||||
return
|
||||
|
|
@ -178,13 +178,13 @@ private enum ChatListRecentEntry: Comparable, Identifiable {
|
|||
}
|
||||
}
|
||||
|
||||
enum ChatListSearchEntryStableId: Hashable {
|
||||
public enum ChatListSearchEntryStableId: Hashable {
|
||||
case localPeerId(PeerId)
|
||||
case globalPeerId(PeerId)
|
||||
case messageId(MessageId)
|
||||
case addContact
|
||||
|
||||
static func ==(lhs: ChatListSearchEntryStableId, rhs: ChatListSearchEntryStableId) -> Bool {
|
||||
public static func ==(lhs: ChatListSearchEntryStableId, rhs: ChatListSearchEntryStableId) -> Bool {
|
||||
switch lhs {
|
||||
case let .localPeerId(peerId):
|
||||
if case .localPeerId(peerId) = rhs {
|
||||
|
|
@ -214,13 +214,13 @@ enum ChatListSearchEntryStableId: Hashable {
|
|||
}
|
||||
}
|
||||
|
||||
enum ChatListSearchEntry: Comparable, Identifiable {
|
||||
public enum ChatListSearchEntry: Comparable, Identifiable {
|
||||
case localPeer(Peer, Peer?, (Int32, Bool)?, Int, PresentationTheme, PresentationStrings, PresentationPersonNameOrder, PresentationPersonNameOrder)
|
||||
case globalPeer(FoundPeer, (Int32, Bool)?, Int, PresentationTheme, PresentationStrings, PresentationPersonNameOrder, PresentationPersonNameOrder)
|
||||
case message(Message, RenderedPeer, CombinedPeerReadState?, ChatListPresentationData)
|
||||
case addContact(String, PresentationTheme, PresentationStrings)
|
||||
|
||||
var stableId: ChatListSearchEntryStableId {
|
||||
public var stableId: ChatListSearchEntryStableId {
|
||||
switch self {
|
||||
case let .localPeer(peer, _, _, _, _, _, _, _):
|
||||
return .localPeerId(peer.id)
|
||||
|
|
@ -233,7 +233,7 @@ enum ChatListSearchEntry: Comparable, Identifiable {
|
|||
}
|
||||
}
|
||||
|
||||
static func ==(lhs: ChatListSearchEntry, rhs: ChatListSearchEntry) -> Bool {
|
||||
public static func ==(lhs: ChatListSearchEntry, rhs: ChatListSearchEntry) -> Bool {
|
||||
switch lhs {
|
||||
case let .localPeer(lhsPeer, lhsAssociatedPeer, lhsUnreadBadge, lhsIndex, lhsTheme, lhsStrings, lhsSortOrder, lhsDisplayOrder):
|
||||
if case let .localPeer(rhsPeer, rhsAssociatedPeer, rhsUnreadBadge, rhsIndex, rhsTheme, rhsStrings, rhsSortOrder, rhsDisplayOrder) = rhs, lhsPeer.isEqual(rhsPeer) && arePeersEqual(lhsAssociatedPeer, rhsAssociatedPeer) && lhsIndex == rhsIndex && lhsTheme === rhsTheme && lhsStrings === rhsStrings && lhsSortOrder == rhsSortOrder && lhsDisplayOrder == rhsDisplayOrder && lhsUnreadBadge?.0 == rhsUnreadBadge?.0 && lhsUnreadBadge?.1 == rhsUnreadBadge?.1 {
|
||||
|
|
@ -286,7 +286,7 @@ enum ChatListSearchEntry: Comparable, Identifiable {
|
|||
}
|
||||
}
|
||||
|
||||
static func <(lhs: ChatListSearchEntry, rhs: ChatListSearchEntry) -> Bool {
|
||||
public static func <(lhs: ChatListSearchEntry, rhs: ChatListSearchEntry) -> Bool {
|
||||
switch lhs {
|
||||
case let .localPeer(_, _, _, lhsIndex, _, _, _, _):
|
||||
if case let .localPeer(_, _, _, rhsIndex, _, _, _, _) = rhs {
|
||||
|
|
@ -316,7 +316,7 @@ enum ChatListSearchEntry: Comparable, Identifiable {
|
|||
}
|
||||
}
|
||||
|
||||
func item(context: AccountContext, enableHeaders: Bool, filter: ChatListNodePeersFilter, interaction: ChatListNodeInteraction) -> ListViewItem {
|
||||
public func item(context: AccountContext, enableHeaders: Bool, filter: ChatListNodePeersFilter, interaction: ChatListNodeInteraction) -> ListViewItem {
|
||||
switch self {
|
||||
case let .localPeer(peer, associatedPeer, unreadBadge, _, theme, strings, nameSortOrder, nameDisplayOrder):
|
||||
let primaryPeer: Peer
|
||||
|
|
@ -433,11 +433,18 @@ private struct ChatListSearchContainerRecentTransition {
|
|||
let updates: [ListViewUpdateItem]
|
||||
}
|
||||
|
||||
struct ChatListSearchContainerTransition {
|
||||
let deletions: [ListViewDeleteItem]
|
||||
let insertions: [ListViewInsertItem]
|
||||
let updates: [ListViewUpdateItem]
|
||||
let displayingResults: Bool
|
||||
public struct ChatListSearchContainerTransition {
|
||||
public let deletions: [ListViewDeleteItem]
|
||||
public let insertions: [ListViewInsertItem]
|
||||
public let updates: [ListViewUpdateItem]
|
||||
public let displayingResults: Bool
|
||||
|
||||
public init(deletions: [ListViewDeleteItem], insertions: [ListViewInsertItem], updates: [ListViewUpdateItem], displayingResults: Bool) {
|
||||
self.deletions = deletions
|
||||
self.insertions = insertions
|
||||
self.updates = updates
|
||||
self.displayingResults = displayingResults
|
||||
}
|
||||
}
|
||||
|
||||
private func chatListSearchContainerPreparedRecentTransition(from fromEntries: [ChatListRecentEntry], to toEntries: [ChatListRecentEntry], context: AccountContext, filter: ChatListNodePeersFilter, peerSelected: @escaping (Peer) -> Void, peerLongTapped: @escaping (Peer) -> Void, clearRecentlySearchedPeers: @escaping () -> Void, setPeerIdWithRevealedOptions: @escaping (PeerId?, PeerId?) -> Void, deletePeer: @escaping (PeerId) -> Void) -> ChatListSearchContainerRecentTransition {
|
||||
|
|
@ -450,7 +457,7 @@ private func chatListSearchContainerPreparedRecentTransition(from fromEntries: [
|
|||
return ChatListSearchContainerRecentTransition(deletions: deletions, insertions: insertions, updates: updates)
|
||||
}
|
||||
|
||||
func chatListSearchContainerPreparedTransition(from fromEntries: [ChatListSearchEntry], to toEntries: [ChatListSearchEntry], displayingResults: Bool, context: AccountContext, enableHeaders: Bool, filter: ChatListNodePeersFilter, interaction: ChatListNodeInteraction) -> ChatListSearchContainerTransition {
|
||||
public func chatListSearchContainerPreparedTransition(from fromEntries: [ChatListSearchEntry], to toEntries: [ChatListSearchEntry], displayingResults: Bool, context: AccountContext, enableHeaders: Bool, filter: ChatListNodePeersFilter, interaction: ChatListNodeInteraction) -> ChatListSearchContainerTransition {
|
||||
let (deleteIndices, indicesAndItems, updateIndices) = mergeListsStableWithUpdates(leftList: fromEntries, rightList: toEntries)
|
||||
|
||||
let deletions = deleteIndices.map { ListViewDeleteItem(index: $0, directionHint: nil) }
|
||||
|
|
@ -510,7 +517,7 @@ private struct ChatListSearchMessagesContext {
|
|||
let loadMoreIndex: MessageIndex?
|
||||
}
|
||||
|
||||
final class ChatListSearchContainerNode: SearchDisplayControllerContentNode {
|
||||
public final class ChatListSearchContainerNode: SearchDisplayControllerContentNode {
|
||||
private let context: AccountContext
|
||||
|
||||
private let recentListNode: ListView
|
||||
|
|
@ -534,13 +541,13 @@ final class ChatListSearchContainerNode: SearchDisplayControllerContentNode {
|
|||
private let statePromise: ValuePromise<ChatListSearchContainerNodeState>
|
||||
|
||||
private let _isSearching = ValuePromise<Bool>(false, ignoreRepeated: true)
|
||||
override var isSearching: Signal<Bool, NoError> {
|
||||
override public var isSearching: Signal<Bool, NoError> {
|
||||
return self._isSearching.get()
|
||||
}
|
||||
|
||||
private let filter: ChatListNodePeersFilter
|
||||
|
||||
init(context: AccountContext, filter: ChatListNodePeersFilter, groupId: PeerGroupId, openPeer: @escaping (Peer, Bool) -> Void, openRecentPeerOptions: @escaping (Peer) -> Void, openMessage: @escaping (Peer, MessageId) -> Void, addContact: ((String) -> Void)?) {
|
||||
public init(context: AccountContext, filter: ChatListNodePeersFilter, groupId: PeerGroupId, openPeer: @escaping (Peer, Bool) -> Void, openRecentPeerOptions: @escaping (Peer) -> Void, openMessage: @escaping (Peer, MessageId) -> Void, addContact: ((String) -> Void)?) {
|
||||
self.context = context
|
||||
self.filter = filter
|
||||
self.dimNode = ASDisplayNode()
|
||||
|
|
@ -974,12 +981,12 @@ final class ChatListSearchContainerNode: SearchDisplayControllerContentNode {
|
|||
}
|
||||
}
|
||||
|
||||
override func didLoad() {
|
||||
override public func didLoad() {
|
||||
super.didLoad()
|
||||
self.dimNode.view.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(self.dimTapGesture(_:))))
|
||||
}
|
||||
|
||||
@objc func dimTapGesture(_ recognizer: UITapGestureRecognizer) {
|
||||
@objc private func dimTapGesture(_ recognizer: UITapGestureRecognizer) {
|
||||
if case .ended = recognizer.state {
|
||||
self.cancel?()
|
||||
}
|
||||
|
|
@ -1007,7 +1014,7 @@ final class ChatListSearchContainerNode: SearchDisplayControllerContentNode {
|
|||
}
|
||||
}
|
||||
|
||||
override func searchTextUpdated(text: String) {
|
||||
override public func searchTextUpdated(text: String) {
|
||||
if text.isEmpty {
|
||||
self.searchQuery.set(.single(nil))
|
||||
} else {
|
||||
|
|
@ -1072,7 +1079,7 @@ final class ChatListSearchContainerNode: SearchDisplayControllerContentNode {
|
|||
}
|
||||
}
|
||||
|
||||
override func containerLayoutUpdated(_ layout: ContainerViewLayout, navigationBarHeight: CGFloat, transition: ContainedViewLayoutTransition) {
|
||||
override public func containerLayoutUpdated(_ layout: ContainerViewLayout, navigationBarHeight: CGFloat, transition: ContainedViewLayoutTransition) {
|
||||
super.containerLayoutUpdated(layout, navigationBarHeight: navigationBarHeight, transition: transition)
|
||||
|
||||
let hadValidLayout = self.validLayout != nil
|
||||
|
|
@ -1120,7 +1127,7 @@ final class ChatListSearchContainerNode: SearchDisplayControllerContentNode {
|
|||
}
|
||||
}
|
||||
|
||||
override func previewViewAndActionAtLocation(_ location: CGPoint) -> (UIView, CGRect, Any)? {
|
||||
override public func previewViewAndActionAtLocation(_ location: CGPoint) -> (UIView, CGRect, Any)? {
|
||||
var selectedItemNode: ASDisplayNode?
|
||||
var bounds: CGRect
|
||||
if !self.recentListNode.isHidden {
|
||||
|
|
@ -1170,7 +1177,7 @@ final class ChatListSearchContainerNode: SearchDisplayControllerContentNode {
|
|||
|> deliverOnMainQueue).start()
|
||||
}
|
||||
|
||||
override func scrollToTop() {
|
||||
override public func scrollToTop() {
|
||||
if !self.listNode.isHidden {
|
||||
self.listNode.transaction(deleteIndices: [], insertIndicesAndItems: [], updateIndicesAndItems: [], options: [.Synchronous, .LowLatency], scrollToItem: ListViewScrollToItem(index: 0, position: .top(0.0), animated: true, curve: .Default(duration: nil), directionHint: .Up), updateSizeAndInsets: nil, stationaryItemRange: nil, updateOpaqueState: nil, completion: { _ in })
|
||||
} else {
|
||||
19
submodules/ChatListUI/Sources/ChatListUI.h
Normal file
19
submodules/ChatListUI/Sources/ChatListUI.h
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
//
|
||||
// ChatListUI.h
|
||||
// ChatListUI
|
||||
//
|
||||
// Created by Peter on 8/13/19.
|
||||
// Copyright © 2019 Telegram Messenger LLP. All rights reserved.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
//! Project version number for ChatListUI.
|
||||
FOUNDATION_EXPORT double ChatListUIVersionNumber;
|
||||
|
||||
//! Project version string for ChatListUI.
|
||||
FOUNDATION_EXPORT const unsigned char ChatListUIVersionString[];
|
||||
|
||||
// In this header, you should import all the public headers of your framework using statements like #import <ChatListUI/PublicHeader.h>
|
||||
|
||||
|
||||
13
submodules/ChatListUI/Sources/FrameworkBundle.swift
Normal file
13
submodules/ChatListUI/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)
|
||||
}
|
||||
}
|
||||
|
|
@ -16,11 +16,11 @@ import PeerPresenceStatusManager
|
|||
import PhotoResources
|
||||
import ChatListSearchItemNode
|
||||
|
||||
enum ChatListItemContent {
|
||||
public enum ChatListItemContent {
|
||||
case peer(message: Message?, peer: RenderedPeer, combinedReadState: CombinedPeerReadState?, notificationSettings: PeerNotificationSettings?, presence: PeerPresence?, summaryInfo: ChatListMessageTagSummaryInfo, embeddedState: PeerChatListEmbeddedInterfaceState?, inputActivities: [(Peer, PeerInputActivity)]?, isAd: Bool, ignoreUnreadBadge: Bool)
|
||||
case groupReference(groupId: PeerGroupId, peers: [ChatListGroupReferencePeer], message: Message?, unreadState: PeerGroupUnreadCountersCombinedSummary, hiddenByDefault: Bool)
|
||||
|
||||
var chatLocation: ChatLocation? {
|
||||
public var chatLocation: ChatLocation? {
|
||||
switch self {
|
||||
case let .peer(_, peer, _, _, _, _, _, _, _, _):
|
||||
return .peer(peer.peerId)
|
||||
|
|
@ -30,7 +30,7 @@ enum ChatListItemContent {
|
|||
}
|
||||
}
|
||||
|
||||
class ChatListItem: ListViewItem, ChatListSearchItemNeighbour {
|
||||
public class ChatListItem: ListViewItem, ChatListSearchItemNeighbour {
|
||||
let presentationData: ChatListPresentationData
|
||||
let context: AccountContext
|
||||
let peerGroupId: PeerGroupId
|
||||
|
|
@ -43,19 +43,19 @@ class ChatListItem: ListViewItem, ChatListSearchItemNeighbour {
|
|||
let hiddenOffset: Bool
|
||||
let interaction: ChatListNodeInteraction
|
||||
|
||||
let selectable: Bool = true
|
||||
public let selectable: Bool = true
|
||||
|
||||
var approximateHeight: CGFloat {
|
||||
public var approximateHeight: CGFloat {
|
||||
return self.hiddenOffset ? 0.0 : 44.0
|
||||
}
|
||||
|
||||
let header: ListViewItemHeader?
|
||||
|
||||
var isPinned: Bool {
|
||||
public var isPinned: Bool {
|
||||
return self.index.pinningIndex != nil
|
||||
}
|
||||
|
||||
init(presentationData: ChatListPresentationData, context: AccountContext, peerGroupId: PeerGroupId, index: ChatListIndex, content: ChatListItemContent, editing: Bool, hasActiveRevealControls: Bool, selected: Bool, header: ListViewItemHeader?, enableContextActions: Bool, hiddenOffset: Bool, interaction: ChatListNodeInteraction) {
|
||||
public init(presentationData: ChatListPresentationData, context: AccountContext, peerGroupId: PeerGroupId, index: ChatListIndex, content: ChatListItemContent, editing: Bool, hasActiveRevealControls: Bool, selected: Bool, header: ListViewItemHeader?, enableContextActions: Bool, hiddenOffset: Bool, interaction: ChatListNodeInteraction) {
|
||||
self.presentationData = presentationData
|
||||
self.peerGroupId = peerGroupId
|
||||
self.context = context
|
||||
|
|
@ -70,7 +70,7 @@ class ChatListItem: ListViewItem, ChatListSearchItemNeighbour {
|
|||
self.interaction = interaction
|
||||
}
|
||||
|
||||
func nodeConfiguredForParams(async: @escaping (@escaping () -> Void) -> Void, params: ListViewItemLayoutParams, synchronousLoads: Bool, previousItem: ListViewItem?, nextItem: ListViewItem?, completion: @escaping (ListViewItemNode, @escaping () -> (Signal<Void, NoError>?, (ListViewItemApply) -> Void)) -> Void) {
|
||||
public func nodeConfiguredForParams(async: @escaping (@escaping () -> Void) -> Void, params: ListViewItemLayoutParams, synchronousLoads: Bool, previousItem: ListViewItem?, nextItem: ListViewItem?, completion: @escaping (ListViewItemNode, @escaping () -> (Signal<Void, NoError>?, (ListViewItemApply) -> Void)) -> Void) {
|
||||
async {
|
||||
let node = ChatListItemNode()
|
||||
let (first, last, firstWithHeader, nextIsPinned) = ChatListItem.mergeType(item: self, previousItem: previousItem, nextItem: nextItem)
|
||||
|
|
@ -93,7 +93,7 @@ class ChatListItem: ListViewItem, ChatListSearchItemNeighbour {
|
|||
}
|
||||
}
|
||||
|
||||
func updateNode(async: @escaping (@escaping () -> Void) -> Void, node: @escaping () -> ListViewItemNode, params: ListViewItemLayoutParams, previousItem: ListViewItem?, nextItem: ListViewItem?, animation: ListViewItemUpdateAnimation, completion: @escaping (ListViewItemNodeLayout, @escaping (ListViewItemApply) -> Void) -> Void) {
|
||||
public func updateNode(async: @escaping (@escaping () -> Void) -> Void, node: @escaping () -> ListViewItemNode, params: ListViewItemLayoutParams, previousItem: ListViewItem?, nextItem: ListViewItem?, animation: ListViewItemUpdateAnimation, completion: @escaping (ListViewItemNodeLayout, @escaping (ListViewItemApply) -> Void) -> Void) {
|
||||
Queue.mainQueue().async {
|
||||
assert(node() is ChatListItemNode)
|
||||
if let nodeValue = node() as? ChatListItemNode {
|
||||
|
|
@ -117,7 +117,7 @@ class ChatListItem: ListViewItem, ChatListSearchItemNeighbour {
|
|||
}
|
||||
}
|
||||
|
||||
func selected(listView: ListView) {
|
||||
public func selected(listView: ListView) {
|
||||
switch self.content {
|
||||
case let .peer(message, peer, _, _, _, _, _, _, isAd, _):
|
||||
if let message = message, let peer = peer.peer {
|
||||
|
|
@ -295,7 +295,6 @@ class ChatListItemNode: ItemListRevealOptionsItemNode {
|
|||
private let highlightedBackgroundNode: ASDisplayNode
|
||||
|
||||
let avatarNode: AvatarNode
|
||||
var multipleAvatarsNode: MultipleAvatarsNode?
|
||||
let titleNode: TextNode
|
||||
let authorNode: TextNode
|
||||
let textNode: TextNode
|
||||
|
|
@ -1238,22 +1237,6 @@ class ChatListItemNode: ItemListRevealOptionsItemNode {
|
|||
}
|
||||
strongSelf.onlineNode.setImage(onlineIcon)
|
||||
|
||||
/*if let multipleAvatarsApply = multipleAvatarsApply {
|
||||
strongSelf.avatarNode.isHidden = true
|
||||
let multipleAvatarsNode = multipleAvatarsApply(animated && strongSelf.multipleAvatarsNode != nil)
|
||||
if strongSelf.multipleAvatarsNode != multipleAvatarsNode {
|
||||
strongSelf.multipleAvatarsNode?.removeFromSupernode()
|
||||
strongSelf.multipleAvatarsNode = multipleAvatarsNode
|
||||
strongSelf.addSubnode(multipleAvatarsNode)
|
||||
multipleAvatarsNode.frame = avatarFrame
|
||||
} else {
|
||||
transition.updateFrame(node: multipleAvatarsNode, frame: avatarFrame)
|
||||
}
|
||||
} else if let multipleAvatarsNode = strongSelf.multipleAvatarsNode {
|
||||
multipleAvatarsNode.removeFromSupernode()
|
||||
strongSelf.avatarNode.isHidden = false
|
||||
}*/
|
||||
|
||||
let _ = dateApply()
|
||||
let _ = textApply()
|
||||
let _ = authorApply()
|
||||
|
|
@ -1544,9 +1527,6 @@ class ChatListItemNode: ItemListRevealOptionsItemNode {
|
|||
var avatarFrame = self.avatarNode.frame
|
||||
avatarFrame.origin.x = leftInset - 78.0 + editingOffset + 10.0 + offset
|
||||
transition.updateFrame(node: self.avatarNode, frame: avatarFrame)
|
||||
if let multipleAvatarsNode = self.multipleAvatarsNode {
|
||||
transition.updateFrame(node: multipleAvatarsNode, frame: avatarFrame)
|
||||
}
|
||||
|
||||
var onlineFrame = self.onlineNode.frame
|
||||
onlineFrame.origin.x = avatarFrame.maxX - onlineFrame.width - 2.0
|
||||
|
|
@ -35,7 +35,7 @@ public struct ChatListNodePeersFilter: OptionSet {
|
|||
public static let includeSavedMessages = ChatListNodePeersFilter(rawValue: 1 << 11)
|
||||
}
|
||||
|
||||
enum ChatListNodeMode {
|
||||
public enum ChatListNodeMode {
|
||||
case chatList
|
||||
case peers(filter: ChatListNodePeersFilter)
|
||||
}
|
||||
|
|
@ -64,7 +64,7 @@ final class ChatListHighlightedLocation {
|
|||
}
|
||||
}
|
||||
|
||||
final class ChatListNodeInteraction {
|
||||
public final class ChatListNodeInteraction {
|
||||
let activateSearch: () -> Void
|
||||
let peerSelected: (Peer) -> Void
|
||||
let togglePeerSelected: (PeerId) -> Void
|
||||
|
|
@ -81,7 +81,7 @@ final class ChatListNodeInteraction {
|
|||
|
||||
var highlightedChatLocation: ChatListHighlightedLocation?
|
||||
|
||||
init(activateSearch: @escaping () -> Void, peerSelected: @escaping (Peer) -> Void, togglePeerSelected: @escaping (PeerId) -> Void, messageSelected: @escaping (Peer, Message, Bool) -> Void, groupSelected: @escaping (PeerGroupId) -> Void, addContact: @escaping (String) -> Void, setPeerIdWithRevealedOptions: @escaping (PeerId?, PeerId?) -> Void, setItemPinned: @escaping (PinnedItemId, Bool) -> Void, setPeerMuted: @escaping (PeerId, Bool) -> Void, deletePeer: @escaping (PeerId) -> Void, updatePeerGrouping: @escaping (PeerId, Bool) -> Void, togglePeerMarkedUnread: @escaping (PeerId, Bool) -> Void, toggleArchivedFolderHiddenByDefault: @escaping () -> Void) {
|
||||
public init(activateSearch: @escaping () -> Void, peerSelected: @escaping (Peer) -> Void, togglePeerSelected: @escaping (PeerId) -> Void, messageSelected: @escaping (Peer, Message, Bool) -> Void, groupSelected: @escaping (PeerGroupId) -> Void, addContact: @escaping (String) -> Void, setPeerIdWithRevealedOptions: @escaping (PeerId?, PeerId?) -> Void, setItemPinned: @escaping (PinnedItemId, Bool) -> Void, setPeerMuted: @escaping (PeerId, Bool) -> Void, deletePeer: @escaping (PeerId) -> Void, updatePeerGrouping: @escaping (PeerId, Bool) -> Void, togglePeerMarkedUnread: @escaping (PeerId, Bool) -> Void, toggleArchivedFolderHiddenByDefault: @escaping () -> Void) {
|
||||
self.activateSearch = activateSearch
|
||||
self.peerSelected = peerSelected
|
||||
self.togglePeerSelected = togglePeerSelected
|
||||
|
|
@ -98,25 +98,36 @@ final class ChatListNodeInteraction {
|
|||
}
|
||||
}
|
||||
|
||||
final class ChatListNodePeerInputActivities {
|
||||
let activities: [PeerId: [(Peer, PeerInputActivity)]]
|
||||
public final class ChatListNodePeerInputActivities {
|
||||
public let activities: [PeerId: [(Peer, PeerInputActivity)]]
|
||||
|
||||
init(activities: [PeerId: [(Peer, PeerInputActivity)]]) {
|
||||
public init(activities: [PeerId: [(Peer, PeerInputActivity)]]) {
|
||||
self.activities = activities
|
||||
}
|
||||
}
|
||||
|
||||
struct ChatListNodeState: Equatable {
|
||||
var presentationData: ChatListPresentationData
|
||||
var editing: Bool
|
||||
var peerIdWithRevealedOptions: PeerId?
|
||||
var selectedPeerIds: Set<PeerId>
|
||||
var peerInputActivities: ChatListNodePeerInputActivities?
|
||||
var pendingRemovalPeerIds: Set<PeerId>
|
||||
var pendingClearHistoryPeerIds: Set<PeerId>
|
||||
var archiveShouldBeTemporaryRevealed: Bool
|
||||
public struct ChatListNodeState: Equatable {
|
||||
public var presentationData: ChatListPresentationData
|
||||
public var editing: Bool
|
||||
public var peerIdWithRevealedOptions: PeerId?
|
||||
public var selectedPeerIds: Set<PeerId>
|
||||
public var peerInputActivities: ChatListNodePeerInputActivities?
|
||||
public var pendingRemovalPeerIds: Set<PeerId>
|
||||
public var pendingClearHistoryPeerIds: Set<PeerId>
|
||||
public var archiveShouldBeTemporaryRevealed: Bool
|
||||
|
||||
static func ==(lhs: ChatListNodeState, rhs: ChatListNodeState) -> Bool {
|
||||
public init(presentationData: ChatListPresentationData, editing: Bool, peerIdWithRevealedOptions: PeerId?, selectedPeerIds: Set<PeerId>, peerInputActivities: ChatListNodePeerInputActivities?, pendingRemovalPeerIds: Set<PeerId>, pendingClearHistoryPeerIds: Set<PeerId>, archiveShouldBeTemporaryRevealed: Bool) {
|
||||
self.presentationData = presentationData
|
||||
self.editing = editing
|
||||
self.peerIdWithRevealedOptions = peerIdWithRevealedOptions
|
||||
self.selectedPeerIds = selectedPeerIds
|
||||
self.peerInputActivities = peerInputActivities
|
||||
self.pendingRemovalPeerIds = pendingRemovalPeerIds
|
||||
self.pendingClearHistoryPeerIds = pendingClearHistoryPeerIds
|
||||
self.archiveShouldBeTemporaryRevealed = archiveShouldBeTemporaryRevealed
|
||||
}
|
||||
|
||||
public static func ==(lhs: ChatListNodeState, rhs: ChatListNodeState) -> Bool {
|
||||
if lhs.presentationData !== rhs.presentationData {
|
||||
return false
|
||||
}
|
||||
|
|
@ -277,14 +288,14 @@ private final class ChatListOpaqueTransactionState {
|
|||
}
|
||||
}
|
||||
|
||||
enum ChatListSelectionOption {
|
||||
public enum ChatListSelectionOption {
|
||||
case previous(unread: Bool)
|
||||
case next(unread: Bool)
|
||||
case peerId(PeerId)
|
||||
case index(Int)
|
||||
}
|
||||
|
||||
enum ChatListGlobalScrollOption {
|
||||
public enum ChatListGlobalScrollOption {
|
||||
case none
|
||||
case top
|
||||
case unread
|
||||
|
|
@ -295,18 +306,18 @@ private struct ChatListVisibleUnreadCounts: Equatable {
|
|||
var filtered: Int32 = 0
|
||||
}
|
||||
|
||||
enum ChatListNodeScrollPosition {
|
||||
public enum ChatListNodeScrollPosition {
|
||||
case auto
|
||||
case autoUp
|
||||
case top
|
||||
}
|
||||
|
||||
enum ChatListNodeEmptyState: Equatable {
|
||||
public enum ChatListNodeEmptyState: Equatable {
|
||||
case notEmpty(containsChats: Bool)
|
||||
case empty(isLoading: Bool)
|
||||
}
|
||||
|
||||
final class ChatListNode: ListView {
|
||||
public final class ChatListNode: ListView {
|
||||
private let controlsHistoryPreload: Bool
|
||||
private let context: AccountContext
|
||||
private let groupId: PeerGroupId
|
||||
|
|
@ -314,18 +325,18 @@ final class ChatListNode: ListView {
|
|||
|
||||
private let _ready = ValuePromise<Bool>()
|
||||
private var didSetReady = false
|
||||
var ready: Signal<Bool, NoError> {
|
||||
public var ready: Signal<Bool, NoError> {
|
||||
return _ready.get()
|
||||
}
|
||||
|
||||
var peerSelected: ((PeerId, Bool, Bool) -> Void)?
|
||||
var groupSelected: ((PeerGroupId) -> Void)?
|
||||
var addContact: ((String) -> Void)?
|
||||
var activateSearch: (() -> Void)?
|
||||
var deletePeerChat: ((PeerId) -> Void)?
|
||||
var updatePeerGrouping: ((PeerId, Bool) -> Void)?
|
||||
var presentAlert: ((String) -> Void)?
|
||||
var toggleArchivedFolderHiddenByDefault: (() -> Void)?
|
||||
public var peerSelected: ((PeerId, Bool, Bool) -> Void)?
|
||||
public var groupSelected: ((PeerGroupId) -> Void)?
|
||||
public var addContact: ((String) -> Void)?
|
||||
public var activateSearch: (() -> Void)?
|
||||
public var deletePeerChat: ((PeerId) -> Void)?
|
||||
public var updatePeerGrouping: ((PeerId, Bool) -> Void)?
|
||||
public var presentAlert: ((String) -> Void)?
|
||||
public var toggleArchivedFolderHiddenByDefault: (() -> Void)?
|
||||
|
||||
private var theme: PresentationTheme
|
||||
|
||||
|
|
@ -338,7 +349,7 @@ final class ChatListNode: ListView {
|
|||
|
||||
private(set) var currentState: ChatListNodeState
|
||||
private let statePromise: ValuePromise<ChatListNodeState>
|
||||
var state: Signal<ChatListNodeState, NoError> {
|
||||
public var state: Signal<ChatListNodeState, NoError> {
|
||||
return self.statePromise.get()
|
||||
}
|
||||
|
||||
|
|
@ -348,7 +359,7 @@ final class ChatListNode: ListView {
|
|||
private var activityStatusesDisposable: Disposable?
|
||||
|
||||
private let scrollToTopOptionPromise = Promise<ChatListGlobalScrollOption>(.none)
|
||||
var scrollToTopOption: Signal<ChatListGlobalScrollOption, NoError> {
|
||||
public var scrollToTopOption: Signal<ChatListGlobalScrollOption, NoError> {
|
||||
return self.scrollToTopOptionPromise.get()
|
||||
}
|
||||
|
||||
|
|
@ -361,8 +372,8 @@ final class ChatListNode: ListView {
|
|||
}
|
||||
}
|
||||
|
||||
var contentOffsetChanged: ((ListViewVisibleContentOffset) -> Void)?
|
||||
var contentScrollingEnded: ((ListView) -> Bool)?
|
||||
public var contentOffsetChanged: ((ListViewVisibleContentOffset) -> Void)?
|
||||
public var contentScrollingEnded: ((ListView) -> Bool)?
|
||||
|
||||
private let visibleUnreadCounts = ValuePromise<ChatListVisibleUnreadCounts>(ChatListVisibleUnreadCounts())
|
||||
private var visibleUnreadCountsValue = ChatListVisibleUnreadCounts() {
|
||||
|
|
@ -373,19 +384,19 @@ final class ChatListNode: ListView {
|
|||
}
|
||||
}
|
||||
|
||||
var isEmptyUpdated: ((ChatListNodeEmptyState) -> Void)?
|
||||
public var isEmptyUpdated: ((ChatListNodeEmptyState) -> Void)?
|
||||
private var currentIsEmptyState: ChatListNodeEmptyState?
|
||||
|
||||
var addedVisibleChatsWithPeerIds: (([PeerId]) -> Void)?
|
||||
public var addedVisibleChatsWithPeerIds: (([PeerId]) -> Void)?
|
||||
|
||||
private let currentRemovingPeerId = Atomic<PeerId?>(value: nil)
|
||||
func setCurrentRemovingPeerId(_ peerId: PeerId?) {
|
||||
public func setCurrentRemovingPeerId(_ peerId: PeerId?) {
|
||||
let _ = self.currentRemovingPeerId.swap(peerId)
|
||||
}
|
||||
|
||||
private var hapticFeedback: HapticFeedback?
|
||||
|
||||
init(context: AccountContext, groupId: PeerGroupId, controlsHistoryPreload: Bool, mode: ChatListNodeMode, theme: PresentationTheme, strings: PresentationStrings, dateTimeFormat: PresentationDateTimeFormat, nameSortOrder: PresentationPersonNameOrder, nameDisplayOrder: PresentationPersonNameOrder, disableAnimations: Bool) {
|
||||
public init(context: AccountContext, groupId: PeerGroupId, controlsHistoryPreload: Bool, mode: ChatListNodeMode, theme: PresentationTheme, strings: PresentationStrings, dateTimeFormat: PresentationDateTimeFormat, nameSortOrder: PresentationPersonNameOrder, nameDisplayOrder: PresentationPersonNameOrder, disableAnimations: Bool) {
|
||||
self.context = context
|
||||
self.groupId = groupId
|
||||
self.controlsHistoryPreload = controlsHistoryPreload
|
||||
|
|
@ -1068,7 +1079,7 @@ final class ChatListNode: ListView {
|
|||
self.activityStatusesDisposable?.dispose()
|
||||
}
|
||||
|
||||
func updateThemeAndStrings(theme: PresentationTheme, strings: PresentationStrings, dateTimeFormat: PresentationDateTimeFormat, nameSortOrder: PresentationPersonNameOrder, nameDisplayOrder: PresentationPersonNameOrder, disableAnimations: Bool) {
|
||||
public func updateThemeAndStrings(theme: PresentationTheme, strings: PresentationStrings, dateTimeFormat: PresentationDateTimeFormat, nameSortOrder: PresentationPersonNameOrder, nameDisplayOrder: PresentationPersonNameOrder, disableAnimations: Bool) {
|
||||
if theme !== self.currentState.presentationData.theme || strings !== self.currentState.presentationData.strings || dateTimeFormat != self.currentState.presentationData.dateTimeFormat || disableAnimations != self.currentState.presentationData.disableAnimations {
|
||||
self.theme = theme
|
||||
if self.keepTopItemOverscrollBackground != nil {
|
||||
|
|
@ -1084,7 +1095,7 @@ final class ChatListNode: ListView {
|
|||
}
|
||||
}
|
||||
|
||||
func updateState(_ f: (ChatListNodeState) -> ChatListNodeState) {
|
||||
public func updateState(_ f: (ChatListNodeState) -> ChatListNodeState) {
|
||||
let state = f(self.currentState)
|
||||
if state != self.currentState {
|
||||
self.currentState = state
|
||||
|
|
@ -1222,7 +1233,7 @@ final class ChatListNode: ListView {
|
|||
}
|
||||
}
|
||||
|
||||
func updateLayout(transition: ContainedViewLayoutTransition, updateSizeAndInsets: ListViewUpdateSizeAndInsets) {
|
||||
public func updateLayout(transition: ContainedViewLayoutTransition, updateSizeAndInsets: ListViewUpdateSizeAndInsets) {
|
||||
self.transaction(deleteIndices: [], insertIndicesAndItems: [], updateIndicesAndItems: [], options: [.Synchronous, .LowLatency], scrollToItem: nil, updateSizeAndInsets: updateSizeAndInsets, stationaryItemRange: nil, updateOpaqueState: nil, completion: { _ in })
|
||||
|
||||
if !self.dequeuedInitialTransitionOnLayout {
|
||||
|
|
@ -1231,7 +1242,7 @@ final class ChatListNode: ListView {
|
|||
}
|
||||
}
|
||||
|
||||
func scrollToPosition(_ position: ChatListNodeScrollPosition) {
|
||||
public func scrollToPosition(_ position: ChatListNodeScrollPosition) {
|
||||
if let view = self.chatListView?.originalView {
|
||||
if case .auto = position {
|
||||
switch self.visibleContentOffset() {
|
||||
|
|
@ -1295,7 +1306,7 @@ final class ChatListNode: ListView {
|
|||
|> switchToLatest
|
||||
}
|
||||
|
||||
func scrollToEarliestUnread(earlierThan: ChatListIndex?) {
|
||||
public func scrollToEarliestUnread(earlierThan: ChatListIndex?) {
|
||||
let _ = (relativeUnreadChatListIndex(position: .earlier(than: earlierThan)) |> deliverOnMainQueue).start(next: { [weak self] index in
|
||||
guard let strongSelf = self else {
|
||||
return
|
||||
|
|
@ -1313,7 +1324,7 @@ final class ChatListNode: ListView {
|
|||
})
|
||||
}
|
||||
|
||||
func selectChat(_ option: ChatListSelectionOption) {
|
||||
public func selectChat(_ option: ChatListSelectionOption) {
|
||||
guard let interaction = self.interaction else {
|
||||
return
|
||||
}
|
||||
|
|
@ -1326,15 +1337,6 @@ final class ChatListNode: ListView {
|
|||
return
|
||||
}
|
||||
|
||||
// if interaction.highlightedChatLocation == nil {
|
||||
// let location: ChatListNodeLocation = .scroll(index: ChatListIndex.absoluteUpperBound, sourceIndex: ChatListIndex.absoluteLowerBound
|
||||
// , scrollPosition: .top(0.0), animated: true)
|
||||
// self.currentLocation = location
|
||||
// self.chatListLocation.set(location)
|
||||
// //interaction.highlightedChatLocation = ChatListHighlightedLocation(location: .peer(0), progress: 1.0)
|
||||
// return
|
||||
// }
|
||||
|
||||
let entryCount = chatListView.filteredEntries.count
|
||||
var current: (ChatListIndex, PeerId, Int)? = nil
|
||||
var previous: (ChatListIndex, PeerId)? = nil
|
||||
|
|
@ -1421,10 +1423,9 @@ final class ChatListNode: ListView {
|
|||
}
|
||||
|
||||
private func enqueueHistoryPreloadUpdate() {
|
||||
|
||||
}
|
||||
|
||||
func updateSelectedChatLocation(_ chatLocation: ChatLocation?, progress: CGFloat, transition: ContainedViewLayoutTransition) {
|
||||
public func updateSelectedChatLocation(_ chatLocation: ChatLocation?, progress: CGFloat, transition: ContainedViewLayoutTransition) {
|
||||
guard let interaction = self.interaction else {
|
||||
return
|
||||
}
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
import Foundation
|
||||
import UIKit
|
||||
import TelegramPresentationData
|
||||
import TelegramUIPreferences
|
||||
|
||||
public final class ChatListPresentationData {
|
||||
public let theme: PresentationTheme
|
||||
public let strings: PresentationStrings
|
||||
public let dateTimeFormat: PresentationDateTimeFormat
|
||||
public let nameSortOrder: PresentationPersonNameOrder
|
||||
public let nameDisplayOrder: PresentationPersonNameOrder
|
||||
public let disableAnimations: Bool
|
||||
|
||||
public init(theme: PresentationTheme, strings: PresentationStrings, dateTimeFormat: PresentationDateTimeFormat, nameSortOrder: PresentationPersonNameOrder, nameDisplayOrder: PresentationPersonNameOrder, disableAnimations: Bool) {
|
||||
self.theme = theme
|
||||
self.strings = strings
|
||||
self.dateTimeFormat = dateTimeFormat
|
||||
self.nameSortOrder = nameSortOrder
|
||||
self.nameDisplayOrder = nameDisplayOrder
|
||||
self.disableAnimations = disableAnimations
|
||||
}
|
||||
}
|
||||
|
|
@ -6,6 +6,7 @@ import TelegramCore
|
|||
import Display
|
||||
import SwiftSignalKit
|
||||
import TelegramPresentationData
|
||||
import ChatTitleActivityNode
|
||||
|
||||
private let textFont = Font.regular(15.0)
|
||||
|
||||
|
|
@ -0,0 +1,583 @@
|
|||
// !$*UTF8*$!
|
||||
{
|
||||
archiveVersion = 1;
|
||||
classes = {
|
||||
};
|
||||
objectVersion = 50;
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
D0C9CB2C2302B02E00FAB518 /* ChatTitleActivityNode.h in Headers */ = {isa = PBXBuildFile; fileRef = D0C9CB2A2302B02E00FAB518 /* ChatTitleActivityNode.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
D0C9CB372302B0C400FAB518 /* ChatTitleActivityNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9CB362302B0C400FAB518 /* ChatTitleActivityNode.swift */; };
|
||||
D0C9CB3A2302B0D800FAB518 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9CB392302B0D800FAB518 /* UIKit.framework */; };
|
||||
D0C9CB3C2302B0DD00FAB518 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9CB3B2302B0DD00FAB518 /* Foundation.framework */; };
|
||||
D0C9CB3E2302B0DE00FAB518 /* AsyncDisplayKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9CB3D2302B0DE00FAB518 /* AsyncDisplayKit.framework */; };
|
||||
D0C9CB402302B0E300FAB518 /* Display.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9CB3F2302B0E300FAB518 /* Display.framework */; };
|
||||
D0C9CB462302B19A00FAB518 /* ChatTitleActivityContentNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9CB452302B19A00FAB518 /* ChatTitleActivityContentNode.swift */; };
|
||||
D0C9CB482302B1A600FAB518 /* LegacyComponents.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9CB472302B1A600FAB518 /* LegacyComponents.framework */; };
|
||||
D0C9CB4E2302B22800FAB518 /* ChatTypingActivityContentNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9CB492302B22700FAB518 /* ChatTypingActivityContentNode.swift */; };
|
||||
D0C9CB4F2302B22800FAB518 /* ChatPlayingActivityContentNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9CB4A2302B22700FAB518 /* ChatPlayingActivityContentNode.swift */; };
|
||||
D0C9CB502302B22800FAB518 /* ChatRecordingVideoActivityContentNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9CB4B2302B22800FAB518 /* ChatRecordingVideoActivityContentNode.swift */; };
|
||||
D0C9CB512302B22800FAB518 /* ChatUploadingActivityContentNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9CB4C2302B22800FAB518 /* ChatUploadingActivityContentNode.swift */; };
|
||||
D0C9CB522302B22800FAB518 /* ChatRecordingVoiceActivityContentNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9CB4D2302B22800FAB518 /* ChatRecordingVoiceActivityContentNode.swift */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
D0C9CB272302B02E00FAB518 /* ChatTitleActivityNode.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = ChatTitleActivityNode.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9CB2A2302B02E00FAB518 /* ChatTitleActivityNode.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ChatTitleActivityNode.h; sourceTree = "<group>"; };
|
||||
D0C9CB2B2302B02E00FAB518 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||
D0C9CB362302B0C400FAB518 /* ChatTitleActivityNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatTitleActivityNode.swift; sourceTree = "<group>"; };
|
||||
D0C9CB392302B0D800FAB518 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
|
||||
D0C9CB3B2302B0DD00FAB518 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
|
||||
D0C9CB3D2302B0DE00FAB518 /* AsyncDisplayKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AsyncDisplayKit.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9CB3F2302B0E300FAB518 /* Display.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Display.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9CB452302B19A00FAB518 /* ChatTitleActivityContentNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatTitleActivityContentNode.swift; sourceTree = "<group>"; };
|
||||
D0C9CB472302B1A600FAB518 /* LegacyComponents.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = LegacyComponents.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9CB492302B22700FAB518 /* ChatTypingActivityContentNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatTypingActivityContentNode.swift; sourceTree = "<group>"; };
|
||||
D0C9CB4A2302B22700FAB518 /* ChatPlayingActivityContentNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatPlayingActivityContentNode.swift; sourceTree = "<group>"; };
|
||||
D0C9CB4B2302B22800FAB518 /* ChatRecordingVideoActivityContentNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatRecordingVideoActivityContentNode.swift; sourceTree = "<group>"; };
|
||||
D0C9CB4C2302B22800FAB518 /* ChatUploadingActivityContentNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatUploadingActivityContentNode.swift; sourceTree = "<group>"; };
|
||||
D0C9CB4D2302B22800FAB518 /* ChatRecordingVoiceActivityContentNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatRecordingVoiceActivityContentNode.swift; sourceTree = "<group>"; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
D0C9CB242302B02E00FAB518 /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
D0C9CB482302B1A600FAB518 /* LegacyComponents.framework in Frameworks */,
|
||||
D0C9CB402302B0E300FAB518 /* Display.framework in Frameworks */,
|
||||
D0C9CB3E2302B0DE00FAB518 /* AsyncDisplayKit.framework in Frameworks */,
|
||||
D0C9CB3C2302B0DD00FAB518 /* Foundation.framework in Frameworks */,
|
||||
D0C9CB3A2302B0D800FAB518 /* UIKit.framework in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXFrameworksBuildPhase section */
|
||||
|
||||
/* Begin PBXGroup section */
|
||||
D0C9CB1D2302B02E00FAB518 = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
D0C9CB2B2302B02E00FAB518 /* Info.plist */,
|
||||
D0C9CB292302B02E00FAB518 /* Sources */,
|
||||
D0C9CB282302B02E00FAB518 /* Products */,
|
||||
D0C9CB382302B0D500FAB518 /* Frameworks */,
|
||||
);
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
D0C9CB282302B02E00FAB518 /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
D0C9CB272302B02E00FAB518 /* ChatTitleActivityNode.framework */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
D0C9CB292302B02E00FAB518 /* Sources */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
D0C9CB4A2302B22700FAB518 /* ChatPlayingActivityContentNode.swift */,
|
||||
D0C9CB4B2302B22800FAB518 /* ChatRecordingVideoActivityContentNode.swift */,
|
||||
D0C9CB4D2302B22800FAB518 /* ChatRecordingVoiceActivityContentNode.swift */,
|
||||
D0C9CB492302B22700FAB518 /* ChatTypingActivityContentNode.swift */,
|
||||
D0C9CB4C2302B22800FAB518 /* ChatUploadingActivityContentNode.swift */,
|
||||
D0C9CB452302B19A00FAB518 /* ChatTitleActivityContentNode.swift */,
|
||||
D0C9CB362302B0C400FAB518 /* ChatTitleActivityNode.swift */,
|
||||
D0C9CB2A2302B02E00FAB518 /* ChatTitleActivityNode.h */,
|
||||
);
|
||||
path = Sources;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
D0C9CB382302B0D500FAB518 /* Frameworks */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
D0C9CB472302B1A600FAB518 /* LegacyComponents.framework */,
|
||||
D0C9CB3F2302B0E300FAB518 /* Display.framework */,
|
||||
D0C9CB3D2302B0DE00FAB518 /* AsyncDisplayKit.framework */,
|
||||
D0C9CB3B2302B0DD00FAB518 /* Foundation.framework */,
|
||||
D0C9CB392302B0D800FAB518 /* UIKit.framework */,
|
||||
);
|
||||
name = Frameworks;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXGroup section */
|
||||
|
||||
/* Begin PBXHeadersBuildPhase section */
|
||||
D0C9CB222302B02E00FAB518 /* Headers */ = {
|
||||
isa = PBXHeadersBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
D0C9CB2C2302B02E00FAB518 /* ChatTitleActivityNode.h in Headers */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXHeadersBuildPhase section */
|
||||
|
||||
/* Begin PBXNativeTarget section */
|
||||
D0C9CB262302B02E00FAB518 /* ChatTitleActivityNode */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = D0C9CB2F2302B02E00FAB518 /* Build configuration list for PBXNativeTarget "ChatTitleActivityNode" */;
|
||||
buildPhases = (
|
||||
D0C9CB222302B02E00FAB518 /* Headers */,
|
||||
D0C9CB232302B02E00FAB518 /* Sources */,
|
||||
D0C9CB242302B02E00FAB518 /* Frameworks */,
|
||||
D0C9CB252302B02E00FAB518 /* Resources */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
);
|
||||
name = ChatTitleActivityNode;
|
||||
productName = ChatTitleActivityNode;
|
||||
productReference = D0C9CB272302B02E00FAB518 /* ChatTitleActivityNode.framework */;
|
||||
productType = "com.apple.product-type.framework";
|
||||
};
|
||||
/* End PBXNativeTarget section */
|
||||
|
||||
/* Begin PBXProject section */
|
||||
D0C9CB1E2302B02E00FAB518 /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
DefaultBuildSystemTypeForWorkspace = Latest;
|
||||
LastUpgradeCheck = 1030;
|
||||
ORGANIZATIONNAME = "Telegram Messenger LLP";
|
||||
TargetAttributes = {
|
||||
D0C9CB262302B02E00FAB518 = {
|
||||
CreatedOnToolsVersion = 10.3;
|
||||
LastSwiftMigration = 1030;
|
||||
};
|
||||
};
|
||||
};
|
||||
buildConfigurationList = D0C9CB212302B02E00FAB518 /* Build configuration list for PBXProject "ChatTitleActivityNode_Xcode" */;
|
||||
compatibilityVersion = "Xcode 9.3";
|
||||
developmentRegion = en;
|
||||
hasScannedForEncodings = 0;
|
||||
knownRegions = (
|
||||
en,
|
||||
);
|
||||
mainGroup = D0C9CB1D2302B02E00FAB518;
|
||||
productRefGroup = D0C9CB282302B02E00FAB518 /* Products */;
|
||||
projectDirPath = "";
|
||||
projectRoot = "";
|
||||
targets = (
|
||||
D0C9CB262302B02E00FAB518 /* ChatTitleActivityNode */,
|
||||
);
|
||||
};
|
||||
/* End PBXProject section */
|
||||
|
||||
/* Begin PBXResourcesBuildPhase section */
|
||||
D0C9CB252302B02E00FAB518 /* Resources */ = {
|
||||
isa = PBXResourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXResourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXSourcesBuildPhase section */
|
||||
D0C9CB232302B02E00FAB518 /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
D0C9CB372302B0C400FAB518 /* ChatTitleActivityNode.swift in Sources */,
|
||||
D0C9CB4F2302B22800FAB518 /* ChatPlayingActivityContentNode.swift in Sources */,
|
||||
D0C9CB522302B22800FAB518 /* ChatRecordingVoiceActivityContentNode.swift in Sources */,
|
||||
D0C9CB4E2302B22800FAB518 /* ChatTypingActivityContentNode.swift in Sources */,
|
||||
D0C9CB462302B19A00FAB518 /* ChatTitleActivityContentNode.swift in Sources */,
|
||||
D0C9CB512302B22800FAB518 /* ChatUploadingActivityContentNode.swift in Sources */,
|
||||
D0C9CB502302B22800FAB518 /* ChatRecordingVideoActivityContentNode.swift in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXSourcesBuildPhase section */
|
||||
|
||||
/* Begin XCBuildConfiguration section */
|
||||
D0C9CB2D2302B02E00FAB518 /* 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;
|
||||
};
|
||||
D0C9CB2E2302B02E00FAB518 /* 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;
|
||||
};
|
||||
D0C9CB302302B02E00FAB518 /* 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.ChatTitleActivityNode;
|
||||
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;
|
||||
};
|
||||
D0C9CB312302B02E00FAB518 /* 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.ChatTitleActivityNode;
|
||||
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
|
||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||
SKIP_INSTALL = YES;
|
||||
SWIFT_VERSION = 5.0;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
};
|
||||
name = ReleaseAppStoreLLC;
|
||||
};
|
||||
D0C9CB322302B05800FAB518 /* 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;
|
||||
};
|
||||
D0C9CB332302B05800FAB518 /* 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.ChatTitleActivityNode;
|
||||
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;
|
||||
};
|
||||
D0C9CB342302B06400FAB518 /* 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;
|
||||
};
|
||||
D0C9CB352302B06400FAB518 /* 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.ChatTitleActivityNode;
|
||||
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 */
|
||||
D0C9CB212302B02E00FAB518 /* Build configuration list for PBXProject "ChatTitleActivityNode_Xcode" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
D0C9CB2D2302B02E00FAB518 /* DebugAppStoreLLC */,
|
||||
D0C9CB322302B05800FAB518 /* DebugHockeyapp */,
|
||||
D0C9CB2E2302B02E00FAB518 /* ReleaseAppStoreLLC */,
|
||||
D0C9CB342302B06400FAB518 /* ReleaseHockeyappInternal */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = ReleaseAppStoreLLC;
|
||||
};
|
||||
D0C9CB2F2302B02E00FAB518 /* Build configuration list for PBXNativeTarget "ChatTitleActivityNode" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
D0C9CB302302B02E00FAB518 /* DebugAppStoreLLC */,
|
||||
D0C9CB332302B05800FAB518 /* DebugHockeyapp */,
|
||||
D0C9CB312302B02E00FAB518 /* ReleaseAppStoreLLC */,
|
||||
D0C9CB352302B06400FAB518 /* ReleaseHockeyappInternal */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = ReleaseAppStoreLLC;
|
||||
};
|
||||
/* End XCConfigurationList section */
|
||||
};
|
||||
rootObject = D0C9CB1E2302B02E00FAB518 /* Project object */;
|
||||
}
|
||||
22
submodules/ChatTitleActivityNode/Info.plist
Normal file
22
submodules/ChatTitleActivityNode/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>
|
||||
|
|
@ -7,28 +7,28 @@ import LegacyComponents
|
|||
private let transitionDuration = 0.2
|
||||
private let animationKey = "animation"
|
||||
|
||||
class ChatTitleActivityIndicatorNode: ASDisplayNode {
|
||||
var duration: CFTimeInterval {
|
||||
public class ChatTitleActivityIndicatorNode: ASDisplayNode {
|
||||
public var duration: CFTimeInterval {
|
||||
return 0.0
|
||||
}
|
||||
|
||||
var timingFunction: CAMediaTimingFunction {
|
||||
public var timingFunction: CAMediaTimingFunction {
|
||||
return CAMediaTimingFunction(name: CAMediaTimingFunctionName.linear)
|
||||
}
|
||||
|
||||
var color: UIColor? {
|
||||
public var color: UIColor? {
|
||||
didSet {
|
||||
self.setNeedsDisplay()
|
||||
}
|
||||
}
|
||||
|
||||
var progress: CGFloat = 0.0 {
|
||||
public var progress: CGFloat = 0.0 {
|
||||
didSet {
|
||||
self.setNeedsDisplay()
|
||||
}
|
||||
}
|
||||
|
||||
init(color: UIColor) {
|
||||
public init(color: UIColor) {
|
||||
self.color = color
|
||||
|
||||
super.init()
|
||||
|
|
@ -68,21 +68,21 @@ class ChatTitleActivityIndicatorNode: ASDisplayNode {
|
|||
self.pop_removeAnimation(forKey: animationKey)
|
||||
}
|
||||
|
||||
override func didEnterHierarchy() {
|
||||
override public func didEnterHierarchy() {
|
||||
super.didEnterHierarchy()
|
||||
self.startAnimation()
|
||||
}
|
||||
|
||||
override func didExitHierarchy() {
|
||||
override public func didExitHierarchy() {
|
||||
super.didExitHierarchy()
|
||||
self.stopAnimation()
|
||||
}
|
||||
}
|
||||
|
||||
class ChatTitleActivityContentNode: ASDisplayNode {
|
||||
let textNode: ImmediateTextNode
|
||||
public class ChatTitleActivityContentNode: ASDisplayNode {
|
||||
public let textNode: ImmediateTextNode
|
||||
|
||||
init(text: NSAttributedString) {
|
||||
public init(text: NSAttributedString) {
|
||||
self.textNode = ImmediateTextNode()
|
||||
self.textNode.displaysAsynchronously = false
|
||||
self.textNode.maximumNumberOfLines = 1
|
||||
|
|
@ -95,7 +95,7 @@ class ChatTitleActivityContentNode: ASDisplayNode {
|
|||
self.textNode.attributedText = text
|
||||
}
|
||||
|
||||
func animateOut(to: ChatTitleActivityNodeState, style: ChatTitleActivityAnimationStyle, completion: @escaping () -> Void) {
|
||||
public func animateOut(to: ChatTitleActivityNodeState, style: ChatTitleActivityAnimationStyle, completion: @escaping () -> Void) {
|
||||
self.layer.animateAlpha(from: 1.0, to: 0.0, duration: transitionDuration, removeOnCompletion: false, completion: { _ in
|
||||
completion()
|
||||
})
|
||||
|
|
@ -105,7 +105,7 @@ class ChatTitleActivityContentNode: ASDisplayNode {
|
|||
}
|
||||
}
|
||||
|
||||
func animateIn(from: ChatTitleActivityNodeState, style: ChatTitleActivityAnimationStyle) {
|
||||
public func animateIn(from: ChatTitleActivityNodeState, style: ChatTitleActivityAnimationStyle) {
|
||||
self.layer.animateAlpha(from: 0.0, to: 1.0, duration: transitionDuration)
|
||||
|
||||
if case .slide = style {
|
||||
|
|
@ -113,7 +113,7 @@ class ChatTitleActivityContentNode: ASDisplayNode {
|
|||
}
|
||||
}
|
||||
|
||||
func updateLayout(_ constrainedSize: CGSize, alignment: NSTextAlignment) -> CGSize {
|
||||
public func updateLayout(_ constrainedSize: CGSize, alignment: NSTextAlignment) -> CGSize {
|
||||
let size = self.textNode.updateLayout(constrainedSize)
|
||||
self.textNode.bounds = CGRect(origin: CGPoint(), size: size)
|
||||
if case .center = alignment {
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
//
|
||||
// ChatTitleActivityNode.h
|
||||
// ChatTitleActivityNode
|
||||
//
|
||||
// Created by Peter on 8/13/19.
|
||||
// Copyright © 2019 Telegram Messenger LLP. All rights reserved.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
//! Project version number for ChatTitleActivityNode.
|
||||
FOUNDATION_EXPORT double ChatTitleActivityNodeVersionNumber;
|
||||
|
||||
//! Project version string for ChatTitleActivityNode.
|
||||
FOUNDATION_EXPORT const unsigned char ChatTitleActivityNodeVersionString[];
|
||||
|
||||
// In this header, you should import all the public headers of your framework using statements like #import <ChatTitleActivityNode/PublicHeader.h>
|
||||
|
||||
|
||||
|
|
@ -43,7 +43,7 @@ public enum ChatTitleActivityNodeState: Equatable {
|
|||
}
|
||||
}
|
||||
|
||||
var string: String? {
|
||||
public var string: String? {
|
||||
if case let .info(text, _) = self {
|
||||
return text.string
|
||||
}
|
||||
|
|
@ -51,12 +51,16 @@ public enum ChatTitleActivityNodeState: Equatable {
|
|||
}
|
||||
}
|
||||
|
||||
class ChatTitleActivityNode: ASDisplayNode {
|
||||
private(set) var state: ChatTitleActivityNodeState = .none
|
||||
public class ChatTitleActivityNode: ASDisplayNode {
|
||||
public private(set) var state: ChatTitleActivityNodeState = .none
|
||||
|
||||
private var contentNode: ChatTitleActivityContentNode?
|
||||
private var nextContentNode: ChatTitleActivityContentNode?
|
||||
|
||||
override public init() {
|
||||
super.init()
|
||||
}
|
||||
|
||||
public func transitionToState(_ state: ChatTitleActivityNodeState, animation: ChatTitleActivityAnimationStyle = .crossfade, completion: @escaping () -> Void = {}) -> Bool {
|
||||
if self.state != state {
|
||||
let currentState = self.state
|
||||
|
|
@ -0,0 +1,571 @@
|
|||
// !$*UTF8*$!
|
||||
{
|
||||
archiveVersion = 1;
|
||||
classes = {
|
||||
};
|
||||
objectVersion = 50;
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
D0C9CB622302B28D00FAB518 /* DeleteChatPeerActionSheetItem.h in Headers */ = {isa = PBXBuildFile; fileRef = D0C9CB602302B28D00FAB518 /* DeleteChatPeerActionSheetItem.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
D0C9CB6D2302B32200FAB518 /* DeleteChatPeerActionSheetItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9CB6C2302B32200FAB518 /* DeleteChatPeerActionSheetItem.swift */; };
|
||||
D0C9CB702302B33600FAB518 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9CB6F2302B33600FAB518 /* Foundation.framework */; };
|
||||
D0C9CB722302B33B00FAB518 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9CB712302B33B00FAB518 /* UIKit.framework */; };
|
||||
D0C9CB742302B33E00FAB518 /* Display.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9CB732302B33E00FAB518 /* Display.framework */; };
|
||||
D0C9CB762302B34200FAB518 /* Postbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9CB752302B34200FAB518 /* Postbox.framework */; };
|
||||
D0C9CB782302B34A00FAB518 /* TelegramCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9CB772302B34A00FAB518 /* TelegramCore.framework */; };
|
||||
D0C9CB7A2302B35100FAB518 /* TelegramPresentationData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9CB792302B35100FAB518 /* TelegramPresentationData.framework */; };
|
||||
D0C9CB7C2302B35600FAB518 /* AvatarNode.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9CB7B2302B35600FAB518 /* AvatarNode.framework */; };
|
||||
D0C9CB7E2302B35D00FAB518 /* AccountContext.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9CB7D2302B35D00FAB518 /* AccountContext.framework */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
D0C9CB5D2302B28D00FAB518 /* DeleteChatPeerActionSheetItem.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DeleteChatPeerActionSheetItem.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9CB602302B28D00FAB518 /* DeleteChatPeerActionSheetItem.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DeleteChatPeerActionSheetItem.h; sourceTree = "<group>"; };
|
||||
D0C9CB612302B28D00FAB518 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||
D0C9CB6C2302B32200FAB518 /* DeleteChatPeerActionSheetItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DeleteChatPeerActionSheetItem.swift; sourceTree = "<group>"; };
|
||||
D0C9CB6F2302B33600FAB518 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
|
||||
D0C9CB712302B33B00FAB518 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
|
||||
D0C9CB732302B33E00FAB518 /* Display.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Display.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9CB752302B34200FAB518 /* Postbox.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Postbox.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9CB772302B34A00FAB518 /* TelegramCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramCore.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9CB792302B35100FAB518 /* TelegramPresentationData.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramPresentationData.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9CB7B2302B35600FAB518 /* AvatarNode.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AvatarNode.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9CB7D2302B35D00FAB518 /* AccountContext.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AccountContext.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
D0C9CB5A2302B28D00FAB518 /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
D0C9CB7E2302B35D00FAB518 /* AccountContext.framework in Frameworks */,
|
||||
D0C9CB7C2302B35600FAB518 /* AvatarNode.framework in Frameworks */,
|
||||
D0C9CB7A2302B35100FAB518 /* TelegramPresentationData.framework in Frameworks */,
|
||||
D0C9CB782302B34A00FAB518 /* TelegramCore.framework in Frameworks */,
|
||||
D0C9CB762302B34200FAB518 /* Postbox.framework in Frameworks */,
|
||||
D0C9CB742302B33E00FAB518 /* Display.framework in Frameworks */,
|
||||
D0C9CB722302B33B00FAB518 /* UIKit.framework in Frameworks */,
|
||||
D0C9CB702302B33600FAB518 /* Foundation.framework in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXFrameworksBuildPhase section */
|
||||
|
||||
/* Begin PBXGroup section */
|
||||
D0C9CB532302B28D00FAB518 = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
D0C9CB612302B28D00FAB518 /* Info.plist */,
|
||||
D0C9CB5F2302B28D00FAB518 /* Sources */,
|
||||
D0C9CB5E2302B28D00FAB518 /* Products */,
|
||||
D0C9CB6E2302B33400FAB518 /* Frameworks */,
|
||||
);
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
D0C9CB5E2302B28D00FAB518 /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
D0C9CB5D2302B28D00FAB518 /* DeleteChatPeerActionSheetItem.framework */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
D0C9CB5F2302B28D00FAB518 /* Sources */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
D0C9CB6C2302B32200FAB518 /* DeleteChatPeerActionSheetItem.swift */,
|
||||
D0C9CB602302B28D00FAB518 /* DeleteChatPeerActionSheetItem.h */,
|
||||
);
|
||||
path = Sources;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
D0C9CB6E2302B33400FAB518 /* Frameworks */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
D0C9CB7D2302B35D00FAB518 /* AccountContext.framework */,
|
||||
D0C9CB7B2302B35600FAB518 /* AvatarNode.framework */,
|
||||
D0C9CB792302B35100FAB518 /* TelegramPresentationData.framework */,
|
||||
D0C9CB772302B34A00FAB518 /* TelegramCore.framework */,
|
||||
D0C9CB752302B34200FAB518 /* Postbox.framework */,
|
||||
D0C9CB732302B33E00FAB518 /* Display.framework */,
|
||||
D0C9CB712302B33B00FAB518 /* UIKit.framework */,
|
||||
D0C9CB6F2302B33600FAB518 /* Foundation.framework */,
|
||||
);
|
||||
name = Frameworks;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXGroup section */
|
||||
|
||||
/* Begin PBXHeadersBuildPhase section */
|
||||
D0C9CB582302B28D00FAB518 /* Headers */ = {
|
||||
isa = PBXHeadersBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
D0C9CB622302B28D00FAB518 /* DeleteChatPeerActionSheetItem.h in Headers */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXHeadersBuildPhase section */
|
||||
|
||||
/* Begin PBXNativeTarget section */
|
||||
D0C9CB5C2302B28D00FAB518 /* DeleteChatPeerActionSheetItem */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = D0C9CB652302B28D00FAB518 /* Build configuration list for PBXNativeTarget "DeleteChatPeerActionSheetItem" */;
|
||||
buildPhases = (
|
||||
D0C9CB582302B28D00FAB518 /* Headers */,
|
||||
D0C9CB592302B28D00FAB518 /* Sources */,
|
||||
D0C9CB5A2302B28D00FAB518 /* Frameworks */,
|
||||
D0C9CB5B2302B28D00FAB518 /* Resources */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
);
|
||||
name = DeleteChatPeerActionSheetItem;
|
||||
productName = DeleteChatPeerActionSheetItem;
|
||||
productReference = D0C9CB5D2302B28D00FAB518 /* DeleteChatPeerActionSheetItem.framework */;
|
||||
productType = "com.apple.product-type.framework";
|
||||
};
|
||||
/* End PBXNativeTarget section */
|
||||
|
||||
/* Begin PBXProject section */
|
||||
D0C9CB542302B28D00FAB518 /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
DefaultBuildSystemTypeForWorkspace = Latest;
|
||||
LastUpgradeCheck = 1030;
|
||||
ORGANIZATIONNAME = "Telegram Messenger LLP";
|
||||
TargetAttributes = {
|
||||
D0C9CB5C2302B28D00FAB518 = {
|
||||
CreatedOnToolsVersion = 10.3;
|
||||
LastSwiftMigration = 1030;
|
||||
};
|
||||
};
|
||||
};
|
||||
buildConfigurationList = D0C9CB572302B28D00FAB518 /* Build configuration list for PBXProject "DeleteChatPeerActionSheetItem_Xcode" */;
|
||||
compatibilityVersion = "Xcode 9.3";
|
||||
developmentRegion = en;
|
||||
hasScannedForEncodings = 0;
|
||||
knownRegions = (
|
||||
en,
|
||||
);
|
||||
mainGroup = D0C9CB532302B28D00FAB518;
|
||||
productRefGroup = D0C9CB5E2302B28D00FAB518 /* Products */;
|
||||
projectDirPath = "";
|
||||
projectRoot = "";
|
||||
targets = (
|
||||
D0C9CB5C2302B28D00FAB518 /* DeleteChatPeerActionSheetItem */,
|
||||
);
|
||||
};
|
||||
/* End PBXProject section */
|
||||
|
||||
/* Begin PBXResourcesBuildPhase section */
|
||||
D0C9CB5B2302B28D00FAB518 /* Resources */ = {
|
||||
isa = PBXResourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXResourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXSourcesBuildPhase section */
|
||||
D0C9CB592302B28D00FAB518 /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
D0C9CB6D2302B32200FAB518 /* DeleteChatPeerActionSheetItem.swift in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXSourcesBuildPhase section */
|
||||
|
||||
/* Begin XCBuildConfiguration section */
|
||||
D0C9CB632302B28D00FAB518 /* 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;
|
||||
};
|
||||
D0C9CB642302B28D00FAB518 /* 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;
|
||||
};
|
||||
D0C9CB662302B28D00FAB518 /* 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.DeleteChatPeerActionSheetItem;
|
||||
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;
|
||||
};
|
||||
D0C9CB672302B28D00FAB518 /* 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.DeleteChatPeerActionSheetItem;
|
||||
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
|
||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||
SKIP_INSTALL = YES;
|
||||
SWIFT_VERSION = 5.0;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
};
|
||||
name = ReleaseAppStoreLLC;
|
||||
};
|
||||
D0C9CB682302B2C800FAB518 /* 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;
|
||||
};
|
||||
D0C9CB692302B2C800FAB518 /* 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.DeleteChatPeerActionSheetItem;
|
||||
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
|
||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||
SKIP_INSTALL = YES;
|
||||
SWIFT_VERSION = 5.0;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
};
|
||||
name = ReleaseHockeyappInternal;
|
||||
};
|
||||
D0C9CB6A2302B2CC00FAB518 /* 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;
|
||||
};
|
||||
D0C9CB6B2302B2CC00FAB518 /* 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.DeleteChatPeerActionSheetItem;
|
||||
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;
|
||||
};
|
||||
/* End XCBuildConfiguration section */
|
||||
|
||||
/* Begin XCConfigurationList section */
|
||||
D0C9CB572302B28D00FAB518 /* Build configuration list for PBXProject "DeleteChatPeerActionSheetItem_Xcode" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
D0C9CB632302B28D00FAB518 /* DebugAppStoreLLC */,
|
||||
D0C9CB6A2302B2CC00FAB518 /* DebugHockeyapp */,
|
||||
D0C9CB642302B28D00FAB518 /* ReleaseAppStoreLLC */,
|
||||
D0C9CB682302B2C800FAB518 /* ReleaseHockeyappInternal */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = ReleaseAppStoreLLC;
|
||||
};
|
||||
D0C9CB652302B28D00FAB518 /* Build configuration list for PBXNativeTarget "DeleteChatPeerActionSheetItem" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
D0C9CB662302B28D00FAB518 /* DebugAppStoreLLC */,
|
||||
D0C9CB6B2302B2CC00FAB518 /* DebugHockeyapp */,
|
||||
D0C9CB672302B28D00FAB518 /* ReleaseAppStoreLLC */,
|
||||
D0C9CB692302B2C800FAB518 /* ReleaseHockeyappInternal */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = ReleaseAppStoreLLC;
|
||||
};
|
||||
/* End XCConfigurationList section */
|
||||
};
|
||||
rootObject = D0C9CB542302B28D00FAB518 /* Project object */;
|
||||
}
|
||||
22
submodules/DeleteChatPeerActionSheetItem/Info.plist
Normal file
22
submodules/DeleteChatPeerActionSheetItem/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,19 @@
|
|||
//
|
||||
// DeleteChatPeerActionSheetItem.h
|
||||
// DeleteChatPeerActionSheetItem
|
||||
//
|
||||
// Created by Peter on 8/13/19.
|
||||
// Copyright © 2019 Telegram Messenger LLP. All rights reserved.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
//! Project version number for DeleteChatPeerActionSheetItem.
|
||||
FOUNDATION_EXPORT double DeleteChatPeerActionSheetItemVersionNumber;
|
||||
|
||||
//! Project version string for DeleteChatPeerActionSheetItem.
|
||||
FOUNDATION_EXPORT const unsigned char DeleteChatPeerActionSheetItemVersionString[];
|
||||
|
||||
// In this header, you should import all the public headers of your framework using statements like #import <DeleteChatPeerActionSheetItem/PublicHeader.h>
|
||||
|
||||
|
||||
|
|
@ -7,19 +7,19 @@ import TelegramPresentationData
|
|||
import AvatarNode
|
||||
import AccountContext
|
||||
|
||||
enum DeleteChatPeerAction {
|
||||
public enum DeleteChatPeerAction {
|
||||
case delete
|
||||
case clearHistory
|
||||
}
|
||||
|
||||
final class DeleteChatPeerActionSheetItem: ActionSheetItem {
|
||||
public final class DeleteChatPeerActionSheetItem: ActionSheetItem {
|
||||
let context: AccountContext
|
||||
let peer: Peer
|
||||
let chatPeer: Peer
|
||||
let action: DeleteChatPeerAction
|
||||
let strings: PresentationStrings
|
||||
|
||||
init(context: AccountContext, peer: Peer, chatPeer: Peer, action: DeleteChatPeerAction, strings: PresentationStrings) {
|
||||
public init(context: AccountContext, peer: Peer, chatPeer: Peer, action: DeleteChatPeerAction, strings: PresentationStrings) {
|
||||
self.context = context
|
||||
self.peer = peer
|
||||
self.chatPeer = chatPeer
|
||||
|
|
@ -27,11 +27,11 @@ final class DeleteChatPeerActionSheetItem: ActionSheetItem {
|
|||
self.strings = strings
|
||||
}
|
||||
|
||||
func node(theme: ActionSheetControllerTheme) -> ActionSheetItemNode {
|
||||
public func node(theme: ActionSheetControllerTheme) -> ActionSheetItemNode {
|
||||
return DeleteChatPeerActionSheetItemNode(theme: theme, strings: self.strings, context: self.context, peer: self.peer, chatPeer: self.chatPeer, action: self.action)
|
||||
}
|
||||
|
||||
func updateNode(_ node: ActionSheetItemNode) {
|
||||
public func updateNode(_ node: ActionSheetItemNode) {
|
||||
}
|
||||
}
|
||||
|
||||
22
submodules/LanguageSuggestionUI/Info.plist
Normal file
22
submodules/LanguageSuggestionUI/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,575 @@
|
|||
// !$*UTF8*$!
|
||||
{
|
||||
archiveVersion = 1;
|
||||
classes = {
|
||||
};
|
||||
objectVersion = 50;
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
D0C9CB942302B55400FAB518 /* LanguageSuggestionUI.h in Headers */ = {isa = PBXBuildFile; fileRef = D0C9CB922302B55400FAB518 /* LanguageSuggestionUI.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
D0C9CB9F2302B5CF00FAB518 /* LanguageSuggestionController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9CB9E2302B5CF00FAB518 /* LanguageSuggestionController.swift */; };
|
||||
D0C9CBA22302B60B00FAB518 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9CBA12302B60A00FAB518 /* Foundation.framework */; };
|
||||
D0C9CBA42302B61000FAB518 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9CBA32302B61000FAB518 /* UIKit.framework */; };
|
||||
D0C9CBA62302B61100FAB518 /* SwiftSignalKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9CBA52302B61100FAB518 /* SwiftSignalKit.framework */; };
|
||||
D0C9CBA82302B61600FAB518 /* AsyncDisplayKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9CBA72302B61600FAB518 /* AsyncDisplayKit.framework */; };
|
||||
D0C9CBAA2302B61B00FAB518 /* Display.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9CBA92302B61B00FAB518 /* Display.framework */; };
|
||||
D0C9CBAC2302B62300FAB518 /* TelegramCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9CBAB2302B62300FAB518 /* TelegramCore.framework */; };
|
||||
D0C9CBAE2302B62900FAB518 /* TelegramPresentationData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9CBAD2302B62900FAB518 /* TelegramPresentationData.framework */; };
|
||||
D0C9CBB02302B62E00FAB518 /* ActivityIndicator.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9CBAF2302B62E00FAB518 /* ActivityIndicator.framework */; };
|
||||
D0C9CBB22302B63500FAB518 /* AccountContext.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9CBB12302B63500FAB518 /* AccountContext.framework */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
D0C9CB8F2302B55400FAB518 /* LanguageSuggestionUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = LanguageSuggestionUI.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9CB922302B55400FAB518 /* LanguageSuggestionUI.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LanguageSuggestionUI.h; sourceTree = "<group>"; };
|
||||
D0C9CB932302B55400FAB518 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||
D0C9CB9E2302B5CF00FAB518 /* LanguageSuggestionController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LanguageSuggestionController.swift; sourceTree = "<group>"; };
|
||||
D0C9CBA12302B60A00FAB518 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
|
||||
D0C9CBA32302B61000FAB518 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
|
||||
D0C9CBA52302B61100FAB518 /* SwiftSignalKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = SwiftSignalKit.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9CBA72302B61600FAB518 /* AsyncDisplayKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AsyncDisplayKit.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9CBA92302B61B00FAB518 /* Display.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Display.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9CBAB2302B62300FAB518 /* TelegramCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramCore.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9CBAD2302B62900FAB518 /* TelegramPresentationData.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramPresentationData.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9CBAF2302B62E00FAB518 /* ActivityIndicator.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ActivityIndicator.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9CBB12302B63500FAB518 /* AccountContext.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AccountContext.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
D0C9CB8C2302B55400FAB518 /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
D0C9CBB22302B63500FAB518 /* AccountContext.framework in Frameworks */,
|
||||
D0C9CBB02302B62E00FAB518 /* ActivityIndicator.framework in Frameworks */,
|
||||
D0C9CBAE2302B62900FAB518 /* TelegramPresentationData.framework in Frameworks */,
|
||||
D0C9CBAC2302B62300FAB518 /* TelegramCore.framework in Frameworks */,
|
||||
D0C9CBAA2302B61B00FAB518 /* Display.framework in Frameworks */,
|
||||
D0C9CBA82302B61600FAB518 /* AsyncDisplayKit.framework in Frameworks */,
|
||||
D0C9CBA62302B61100FAB518 /* SwiftSignalKit.framework in Frameworks */,
|
||||
D0C9CBA42302B61000FAB518 /* UIKit.framework in Frameworks */,
|
||||
D0C9CBA22302B60B00FAB518 /* Foundation.framework in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXFrameworksBuildPhase section */
|
||||
|
||||
/* Begin PBXGroup section */
|
||||
D0C9CB852302B55400FAB518 = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
D0C9CB932302B55400FAB518 /* Info.plist */,
|
||||
D0C9CB912302B55400FAB518 /* Sources */,
|
||||
D0C9CB902302B55400FAB518 /* Products */,
|
||||
D0C9CBA02302B60900FAB518 /* Frameworks */,
|
||||
);
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
D0C9CB902302B55400FAB518 /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
D0C9CB8F2302B55400FAB518 /* LanguageSuggestionUI.framework */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
D0C9CB912302B55400FAB518 /* Sources */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
D0C9CB9E2302B5CF00FAB518 /* LanguageSuggestionController.swift */,
|
||||
D0C9CB922302B55400FAB518 /* LanguageSuggestionUI.h */,
|
||||
);
|
||||
path = Sources;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
D0C9CBA02302B60900FAB518 /* Frameworks */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
D0C9CBB12302B63500FAB518 /* AccountContext.framework */,
|
||||
D0C9CBAF2302B62E00FAB518 /* ActivityIndicator.framework */,
|
||||
D0C9CBAD2302B62900FAB518 /* TelegramPresentationData.framework */,
|
||||
D0C9CBAB2302B62300FAB518 /* TelegramCore.framework */,
|
||||
D0C9CBA92302B61B00FAB518 /* Display.framework */,
|
||||
D0C9CBA72302B61600FAB518 /* AsyncDisplayKit.framework */,
|
||||
D0C9CBA52302B61100FAB518 /* SwiftSignalKit.framework */,
|
||||
D0C9CBA32302B61000FAB518 /* UIKit.framework */,
|
||||
D0C9CBA12302B60A00FAB518 /* Foundation.framework */,
|
||||
);
|
||||
name = Frameworks;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXGroup section */
|
||||
|
||||
/* Begin PBXHeadersBuildPhase section */
|
||||
D0C9CB8A2302B55400FAB518 /* Headers */ = {
|
||||
isa = PBXHeadersBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
D0C9CB942302B55400FAB518 /* LanguageSuggestionUI.h in Headers */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXHeadersBuildPhase section */
|
||||
|
||||
/* Begin PBXNativeTarget section */
|
||||
D0C9CB8E2302B55400FAB518 /* LanguageSuggestionUI */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = D0C9CB972302B55400FAB518 /* Build configuration list for PBXNativeTarget "LanguageSuggestionUI" */;
|
||||
buildPhases = (
|
||||
D0C9CB8A2302B55400FAB518 /* Headers */,
|
||||
D0C9CB8B2302B55400FAB518 /* Sources */,
|
||||
D0C9CB8C2302B55400FAB518 /* Frameworks */,
|
||||
D0C9CB8D2302B55400FAB518 /* Resources */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
);
|
||||
name = LanguageSuggestionUI;
|
||||
productName = LanguageSuggestionUI;
|
||||
productReference = D0C9CB8F2302B55400FAB518 /* LanguageSuggestionUI.framework */;
|
||||
productType = "com.apple.product-type.framework";
|
||||
};
|
||||
/* End PBXNativeTarget section */
|
||||
|
||||
/* Begin PBXProject section */
|
||||
D0C9CB862302B55400FAB518 /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
DefaultBuildSystemTypeForWorkspace = Latest;
|
||||
LastUpgradeCheck = 1030;
|
||||
ORGANIZATIONNAME = "Telegram Messenger LLP";
|
||||
TargetAttributes = {
|
||||
D0C9CB8E2302B55400FAB518 = {
|
||||
CreatedOnToolsVersion = 10.3;
|
||||
LastSwiftMigration = 1030;
|
||||
};
|
||||
};
|
||||
};
|
||||
buildConfigurationList = D0C9CB892302B55400FAB518 /* Build configuration list for PBXProject "LanguageSuggestionUI_Xcode" */;
|
||||
compatibilityVersion = "Xcode 9.3";
|
||||
developmentRegion = en;
|
||||
hasScannedForEncodings = 0;
|
||||
knownRegions = (
|
||||
en,
|
||||
);
|
||||
mainGroup = D0C9CB852302B55400FAB518;
|
||||
productRefGroup = D0C9CB902302B55400FAB518 /* Products */;
|
||||
projectDirPath = "";
|
||||
projectRoot = "";
|
||||
targets = (
|
||||
D0C9CB8E2302B55400FAB518 /* LanguageSuggestionUI */,
|
||||
);
|
||||
};
|
||||
/* End PBXProject section */
|
||||
|
||||
/* Begin PBXResourcesBuildPhase section */
|
||||
D0C9CB8D2302B55400FAB518 /* Resources */ = {
|
||||
isa = PBXResourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXResourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXSourcesBuildPhase section */
|
||||
D0C9CB8B2302B55400FAB518 /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
D0C9CB9F2302B5CF00FAB518 /* LanguageSuggestionController.swift in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXSourcesBuildPhase section */
|
||||
|
||||
/* Begin XCBuildConfiguration section */
|
||||
D0C9CB952302B55400FAB518 /* 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;
|
||||
};
|
||||
D0C9CB962302B55400FAB518 /* 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;
|
||||
};
|
||||
D0C9CB982302B55400FAB518 /* 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.LanguageSuggestionUI;
|
||||
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;
|
||||
};
|
||||
D0C9CB992302B55400FAB518 /* 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.LanguageSuggestionUI;
|
||||
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
|
||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||
SKIP_INSTALL = YES;
|
||||
SWIFT_VERSION = 5.0;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
};
|
||||
name = ReleaseAppStoreLLC;
|
||||
};
|
||||
D0C9CB9A2302B59500FAB518 /* 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;
|
||||
};
|
||||
D0C9CB9B2302B59500FAB518 /* 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.LanguageSuggestionUI;
|
||||
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;
|
||||
};
|
||||
D0C9CB9C2302B5A000FAB518 /* 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;
|
||||
};
|
||||
D0C9CB9D2302B5A000FAB518 /* 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.LanguageSuggestionUI;
|
||||
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 */
|
||||
D0C9CB892302B55400FAB518 /* Build configuration list for PBXProject "LanguageSuggestionUI_Xcode" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
D0C9CB952302B55400FAB518 /* DebugAppStoreLLC */,
|
||||
D0C9CB9A2302B59500FAB518 /* DebugHockeyapp */,
|
||||
D0C9CB962302B55400FAB518 /* ReleaseAppStoreLLC */,
|
||||
D0C9CB9C2302B5A000FAB518 /* ReleaseHockeyappInternal */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = ReleaseAppStoreLLC;
|
||||
};
|
||||
D0C9CB972302B55400FAB518 /* Build configuration list for PBXNativeTarget "LanguageSuggestionUI" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
D0C9CB982302B55400FAB518 /* DebugAppStoreLLC */,
|
||||
D0C9CB9B2302B59500FAB518 /* DebugHockeyapp */,
|
||||
D0C9CB992302B55400FAB518 /* ReleaseAppStoreLLC */,
|
||||
D0C9CB9D2302B5A000FAB518 /* ReleaseHockeyappInternal */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = ReleaseAppStoreLLC;
|
||||
};
|
||||
/* End XCConfigurationList section */
|
||||
};
|
||||
rootObject = D0C9CB862302B55400FAB518 /* Project object */;
|
||||
}
|
||||
|
|
@ -0,0 +1,370 @@
|
|||
import Foundation
|
||||
import UIKit
|
||||
import SwiftSignalKit
|
||||
import AsyncDisplayKit
|
||||
import Display
|
||||
import TelegramCore
|
||||
import TelegramPresentationData
|
||||
import ActivityIndicator
|
||||
import AccountContext
|
||||
|
||||
public struct LanguageSuggestionControllerStrings {
|
||||
let ChooseLanguage: String
|
||||
let Other: String
|
||||
let English: String
|
||||
|
||||
public init(localization: SuggestedLocalizationInfo) {
|
||||
var chooseLanguage = "Choose Your Language"
|
||||
var other = "Other"
|
||||
var english = "English"
|
||||
|
||||
for entry in localization.extractedEntries {
|
||||
switch entry {
|
||||
case let .string(key, value):
|
||||
switch key {
|
||||
case "Localization.ChooseLanguage":
|
||||
chooseLanguage = value
|
||||
case "Localization.LanguageOther":
|
||||
other = value
|
||||
case "Localization.EnglishLanguageName":
|
||||
english = value
|
||||
default:
|
||||
break
|
||||
}
|
||||
default:
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
self.ChooseLanguage = chooseLanguage
|
||||
self.Other = other
|
||||
self.English = english
|
||||
}
|
||||
|
||||
public init(bundle: Bundle?) {
|
||||
var chooseLanguage = "Choose Your Language"
|
||||
var other = "Other"
|
||||
var english = "English"
|
||||
|
||||
if let bundle = bundle {
|
||||
for key in LanguageSuggestionControllerStrings.keys {
|
||||
let value = bundle.localizedString(forKey: key, value: nil, table: nil)
|
||||
if value != key {
|
||||
switch key {
|
||||
case "Localization.ChooseLanguage":
|
||||
chooseLanguage = value
|
||||
case "Localization.LanguageOther":
|
||||
other = value
|
||||
case "Localization.EnglishLanguageName":
|
||||
english = value
|
||||
default:
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
self.ChooseLanguage = chooseLanguage
|
||||
self.Other = other
|
||||
self.English = english
|
||||
}
|
||||
|
||||
public static let keys: [String] = [
|
||||
"Localization.ChooseLanguage",
|
||||
"Localization.LanguageOther",
|
||||
"Localization.EnglishLanguageName"
|
||||
]
|
||||
}
|
||||
|
||||
private enum LanguageSuggestionItemType {
|
||||
case localization(String)
|
||||
case disclosure
|
||||
case action
|
||||
}
|
||||
|
||||
private struct LanguageSuggestionItem {
|
||||
public let type: LanguageSuggestionItemType
|
||||
public let title: String
|
||||
public let subtitle: String?
|
||||
public let action: () -> Void
|
||||
|
||||
public init(type: LanguageSuggestionItemType, title: String, subtitle: String?, action: @escaping () -> Void) {
|
||||
self.type = type
|
||||
self.title = title
|
||||
self.subtitle = subtitle
|
||||
self.action = action
|
||||
}
|
||||
}
|
||||
|
||||
private final class LanguageSuggestionItemNode: HighlightableButtonNode {
|
||||
private let backgroundNode: ASDisplayNode
|
||||
private let separatorNode: ASDisplayNode
|
||||
private let subtitleNode: ASTextNode
|
||||
private let iconNode: ASImageNode
|
||||
|
||||
let item: LanguageSuggestionItem
|
||||
|
||||
override var isSelected: Bool {
|
||||
didSet {
|
||||
if case .localization = self.item.type {
|
||||
self.iconNode.isHidden = !self.isSelected
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
init(theme: PresentationTheme, item: LanguageSuggestionItem) {
|
||||
self.item = item
|
||||
|
||||
self.backgroundNode = ASDisplayNode()
|
||||
self.backgroundNode.isLayerBacked = true
|
||||
self.backgroundNode.backgroundColor = theme.actionSheet.opaqueItemHighlightedBackgroundColor
|
||||
self.backgroundNode.alpha = 0.0
|
||||
|
||||
self.separatorNode = ASDisplayNode()
|
||||
self.separatorNode.backgroundColor = theme.actionSheet.opaqueItemSeparatorColor
|
||||
|
||||
self.subtitleNode = ASTextNode()
|
||||
|
||||
self.iconNode = ASImageNode()
|
||||
|
||||
super.init()
|
||||
|
||||
self.addSubnode(self.subtitleNode)
|
||||
self.addSubnode(self.separatorNode)
|
||||
self.addSubnode(self.iconNode)
|
||||
|
||||
var color: UIColor = theme.actionSheet.primaryTextColor
|
||||
var alignment: ASHorizontalAlignment = .left
|
||||
var inset: CGFloat = 19.0
|
||||
var icon: UIImage?
|
||||
switch item.type {
|
||||
case .action:
|
||||
alignment = .middle
|
||||
color = theme.actionSheet.controlAccentColor
|
||||
inset = 0.0
|
||||
case .disclosure:
|
||||
icon = PresentationResourcesItemList.disclosureArrowImage(theme)
|
||||
case .localization:
|
||||
icon = PresentationResourcesItemList.checkIconImage(theme)
|
||||
}
|
||||
|
||||
self.iconNode.image = icon
|
||||
self.contentHorizontalAlignment = alignment
|
||||
self.setTitle(item.title, with: Font.regular(17.0), with: color, for: [])
|
||||
|
||||
var titleVerticalOffset: CGFloat = 0.0
|
||||
if let subtitle = item.subtitle {
|
||||
self.subtitleNode.attributedText = NSAttributedString(string: subtitle, font: Font.regular(14.0), textColor: theme.actionSheet.secondaryTextColor)
|
||||
titleVerticalOffset = 20.0
|
||||
}
|
||||
self.contentEdgeInsets = UIEdgeInsets(top: 0.0, left: inset, bottom: titleVerticalOffset, right: 0.0)
|
||||
|
||||
self.highligthedChanged = { [weak self] value in
|
||||
if let strongSelf = self {
|
||||
if value {
|
||||
if strongSelf.backgroundNode.supernode == nil {
|
||||
strongSelf.insertSubnode(strongSelf.backgroundNode, at: 0)
|
||||
}
|
||||
strongSelf.backgroundNode.layer.removeAnimation(forKey: "opacity")
|
||||
strongSelf.backgroundNode.alpha = 1.0
|
||||
} else if !strongSelf.backgroundNode.alpha.isZero {
|
||||
strongSelf.backgroundNode.alpha = 0.0
|
||||
strongSelf.backgroundNode.layer.animateAlpha(from: 1.0, to: 0.0, duration: 0.25)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override func didLoad() {
|
||||
super.didLoad()
|
||||
|
||||
self.addTarget(self, action: #selector(self.pressed), forControlEvents: .touchUpInside)
|
||||
}
|
||||
|
||||
@objc func pressed() {
|
||||
self.item.action()
|
||||
}
|
||||
|
||||
public func updateLayout(_ constrainedSize: CGSize) -> CGSize {
|
||||
let bounds = CGRect(origin: CGPoint(), size: CGSize(width: constrainedSize.width, height: self.item.subtitle != nil ? 58.0 : 44.0))
|
||||
self.backgroundNode.frame = bounds
|
||||
|
||||
let subtitleSize = self.subtitleNode.measure(bounds.size)
|
||||
self.subtitleNode.frame = CGRect(origin: CGPoint(x: 19.0, y: 31.0), size: subtitleSize)
|
||||
self.separatorNode.frame = CGRect(x: 0.0, y: bounds.height - UIScreenPixel, width: bounds.width, height: UIScreenPixel)
|
||||
if let icon = self.iconNode.image {
|
||||
self.iconNode.frame = CGRect(origin: CGPoint(x: bounds.width - icon.size.width - 19.0, y: floorToScreenPixels((bounds.height - icon.size.height) / 2.0)), size: icon.size)
|
||||
}
|
||||
return bounds.size
|
||||
}
|
||||
}
|
||||
|
||||
private final class LanguageSuggestionAlertContentNode: AlertContentNode {
|
||||
private var validLayout: CGSize?
|
||||
|
||||
private let titleNode: ASTextNode
|
||||
private let subtitleNode: ASTextNode
|
||||
private let titleSeparatorNode: ASDisplayNode
|
||||
private let activityIndicator: ActivityIndicator
|
||||
|
||||
private var nodes: [LanguageSuggestionItemNode]
|
||||
|
||||
private let disposable = MetaDisposable()
|
||||
|
||||
override var dismissOnOutsideTap: Bool {
|
||||
return self.isUserInteractionEnabled
|
||||
}
|
||||
|
||||
init(theme: PresentationTheme, strings: LanguageSuggestionControllerStrings, englishStrings: LanguageSuggestionControllerStrings, suggestedLocalization: LocalizationInfo, openSelection: @escaping () -> Void, applyLocalization: @escaping (String, () -> Void) -> Void, dismiss: @escaping () -> Void) {
|
||||
let selectedLocalization = ValuePromise(suggestedLocalization.languageCode, ignoreRepeated: true)
|
||||
|
||||
self.titleNode = ASTextNode()
|
||||
self.titleNode.attributedText = NSAttributedString(string: strings.ChooseLanguage, font: Font.bold(17.0), textColor: theme.actionSheet.primaryTextColor, paragraphAlignment: .center)
|
||||
self.titleNode.maximumNumberOfLines = 2
|
||||
|
||||
self.subtitleNode = ASTextNode()
|
||||
self.subtitleNode.attributedText = NSAttributedString(string: englishStrings.ChooseLanguage, font: Font.regular(14.0), textColor: theme.actionSheet.secondaryTextColor, paragraphAlignment: .center)
|
||||
self.subtitleNode.maximumNumberOfLines = 2
|
||||
|
||||
self.titleSeparatorNode = ASDisplayNode()
|
||||
self.titleSeparatorNode.backgroundColor = theme.actionSheet.opaqueItemSeparatorColor
|
||||
|
||||
self.activityIndicator = ActivityIndicator(type: .custom(theme.actionSheet.controlAccentColor, 22.0, 1.0, false))
|
||||
self.activityIndicator.isHidden = true
|
||||
|
||||
var items: [LanguageSuggestionItem] = []
|
||||
items.append(LanguageSuggestionItem(type: .localization(suggestedLocalization.languageCode), title: suggestedLocalization.localizedTitle, subtitle: suggestedLocalization.title, action: {
|
||||
selectedLocalization.set(suggestedLocalization.languageCode)
|
||||
}))
|
||||
items.append(LanguageSuggestionItem(type: .localization("en"), title: strings.English, subtitle: englishStrings.English, action: {
|
||||
selectedLocalization.set("en")
|
||||
}))
|
||||
items.append(LanguageSuggestionItem(type: .disclosure, title: strings.Other, subtitle: englishStrings.Other != strings.Other ? englishStrings.Other : nil, action: {
|
||||
openSelection()
|
||||
}))
|
||||
|
||||
var applyImpl: (() -> Void)?
|
||||
items.append(LanguageSuggestionItem(type: .action, title: "OK", subtitle: nil, action: {
|
||||
applyImpl?()
|
||||
}))
|
||||
|
||||
self.nodes = items.map { LanguageSuggestionItemNode(theme: theme, item: $0) }
|
||||
|
||||
super.init()
|
||||
|
||||
self.addSubnode(self.titleNode)
|
||||
self.addSubnode(self.subtitleNode)
|
||||
self.addSubnode(self.titleSeparatorNode)
|
||||
self.addSubnode(self.activityIndicator)
|
||||
for node in self.nodes {
|
||||
self.addSubnode(node)
|
||||
}
|
||||
|
||||
self.disposable.set(selectedLocalization.get().start(next: { [weak self] selectedCode in
|
||||
if let strongSelf = self {
|
||||
for node in strongSelf.nodes {
|
||||
if case let .localization(code) = node.item.type {
|
||||
node.isSelected = code == selectedCode
|
||||
}
|
||||
}
|
||||
}
|
||||
}))
|
||||
|
||||
applyImpl = { [weak self] in
|
||||
if let strongSelf = self {
|
||||
strongSelf.isUserInteractionEnabled = false
|
||||
|
||||
_ = (selectedLocalization.get()
|
||||
|> take(1)).start(next: { selectedCode in
|
||||
applyLocalization(selectedCode, { [weak self] in
|
||||
if let strongSelf = self {
|
||||
strongSelf.activityIndicator.isHidden = false
|
||||
if let lastNode = strongSelf.nodes.last {
|
||||
lastNode.isHidden = true
|
||||
}
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
deinit {
|
||||
self.disposable.dispose()
|
||||
}
|
||||
|
||||
override func updateLayout(size: CGSize, transition: ContainedViewLayoutTransition) -> CGSize {
|
||||
var size = size
|
||||
size.width = min(size.width, 270.0)
|
||||
|
||||
self.validLayout = size
|
||||
|
||||
var origin: CGPoint = CGPoint(x: 0.0, y: 17.0)
|
||||
|
||||
let titleSize = self.titleNode.measure(size)
|
||||
transition.updateFrame(node: self.titleNode, frame: CGRect(origin: CGPoint(x: floorToScreenPixels((size.width - titleSize.width) / 2.0), y: origin.y), size: titleSize))
|
||||
origin.y += titleSize.height + 3.0
|
||||
|
||||
let subtitleSize = self.subtitleNode.measure(size)
|
||||
transition.updateFrame(node: self.subtitleNode, frame: CGRect(origin: CGPoint(x: floorToScreenPixels((size.width - subtitleSize.width) / 2.0), y: origin.y), size: subtitleSize))
|
||||
origin.y += subtitleSize.height + 17.0
|
||||
transition.updateFrame(node: self.titleSeparatorNode, frame: CGRect(x: 0.0, y: origin.y - UIScreenPixel, width: size.width, height: UIScreenPixel))
|
||||
|
||||
var lastNodeSize: CGSize?
|
||||
for node in self.nodes {
|
||||
let size = node.updateLayout(size)
|
||||
transition.updateFrame(node: node, frame: CGRect(origin: origin, size: size))
|
||||
origin.y += size.height
|
||||
lastNodeSize = size
|
||||
}
|
||||
|
||||
if let lastSize = lastNodeSize {
|
||||
let indicatorSize = self.activityIndicator.measure(CGSize(width: 100.0, height: 100.0))
|
||||
transition.updateFrame(node: self.activityIndicator, frame: CGRect(origin: CGPoint(x: floorToScreenPixels((size.width - indicatorSize.width) / 2.0), y: origin.y - lastSize.height + floorToScreenPixels((lastSize.height - indicatorSize.height) / 2.0)), size: indicatorSize))
|
||||
}
|
||||
|
||||
return CGSize(width: size.width, height: origin.y - UIScreenPixel)
|
||||
}
|
||||
}
|
||||
|
||||
public func languageSuggestionController(context: AccountContext, suggestedLocalization: SuggestedLocalizationInfo, currentLanguageCode: String, openSelection: @escaping () -> Void) -> AlertController? {
|
||||
guard let localization = suggestedLocalization.availableLocalizations.filter({ $0.languageCode == suggestedLocalization.languageCode }).first else {
|
||||
return nil
|
||||
}
|
||||
|
||||
let theme = context.sharedContext.currentPresentationData.with { $0 }.theme
|
||||
let strings = LanguageSuggestionControllerStrings(localization: suggestedLocalization)
|
||||
guard let mainPath = Bundle.main.path(forResource: "en", ofType: "lproj") else {
|
||||
return nil
|
||||
}
|
||||
let englishStrings = LanguageSuggestionControllerStrings(bundle: Bundle(path: mainPath))
|
||||
|
||||
let disposable = MetaDisposable()
|
||||
|
||||
var dismissImpl: ((Bool) -> Void)?
|
||||
let contentNode = LanguageSuggestionAlertContentNode(theme: theme, strings: strings, englishStrings: englishStrings, suggestedLocalization: localization, openSelection: {
|
||||
dismissImpl?(true)
|
||||
openSelection()
|
||||
}, applyLocalization: { languageCode, startActivity in
|
||||
if languageCode == currentLanguageCode {
|
||||
dismissImpl?(true)
|
||||
} else {
|
||||
startActivity()
|
||||
disposable.set((downloadAndApplyLocalization(accountManager: context.sharedContext.accountManager, postbox: context.account.postbox, network: context.account.network, languageCode: languageCode)
|
||||
|> deliverOnMainQueue).start(completed: {
|
||||
dismissImpl?(true)
|
||||
}))
|
||||
}
|
||||
}, dismiss: {
|
||||
dismissImpl?(true)
|
||||
})
|
||||
let controller = AlertController(theme: AlertControllerTheme(presentationTheme: theme), contentNode: contentNode)
|
||||
dismissImpl = { [weak controller] animated in
|
||||
if animated {
|
||||
controller?.dismissAnimated()
|
||||
} else {
|
||||
controller?.dismiss()
|
||||
}
|
||||
}
|
||||
return controller
|
||||
}
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
//
|
||||
// LanguageSuggestionUI.h
|
||||
// LanguageSuggestionUI
|
||||
//
|
||||
// Created by Peter on 8/13/19.
|
||||
// Copyright © 2019 Telegram Messenger LLP. All rights reserved.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
//! Project version number for LanguageSuggestionUI.
|
||||
FOUNDATION_EXPORT double LanguageSuggestionUIVersionNumber;
|
||||
|
||||
//! Project version string for LanguageSuggestionUI.
|
||||
FOUNDATION_EXPORT const unsigned char LanguageSuggestionUIVersionString[];
|
||||
|
||||
// In this header, you should import all the public headers of your framework using statements like #import <LanguageSuggestionUI/PublicHeader.h>
|
||||
|
||||
|
||||
|
|
@ -9,14 +9,14 @@ import Tuples
|
|||
import ImageBlur
|
||||
|
||||
private func imageFromAJpeg(data: Data) -> (UIImage, UIImage)? {
|
||||
if let (colorData, alphaData) = data.withUnsafeBytes({ (bytes: UnsafePointer<UInt8>) -> (Data, Data)? in
|
||||
if let (colorData, alphaData) = data.withUnsafeBytes({ bytes -> (Data, Data)? in
|
||||
var colorSize: Int32 = 0
|
||||
memcpy(&colorSize, bytes, 4)
|
||||
memcpy(&colorSize, bytes.baseAddress, 4)
|
||||
if colorSize < 0 || Int(colorSize) > data.count - 8 {
|
||||
return nil
|
||||
}
|
||||
var alphaSize: Int32 = 0
|
||||
memcpy(&alphaSize, bytes.advanced(by: 4 + Int(colorSize)), 4)
|
||||
memcpy(&alphaSize, bytes.baseAddress?.advanced(by: 4 + Int(colorSize)), 4)
|
||||
if alphaSize < 0 || Int(alphaSize) > data.count - Int(colorSize) - 8 {
|
||||
return nil
|
||||
}
|
||||
|
|
@ -265,7 +265,6 @@ public func chatMessageAnimatedStickerBackingData(postbox: Postbox, fileReferenc
|
|||
public func chatMessageLegacySticker(account: Account, file: TelegramMediaFile, small: Bool, fitSize: CGSize, fetched: Bool = false, onlyFullSize: Bool = false) -> Signal<(TransformImageArguments) -> DrawingContext?, NoError> {
|
||||
let signal = chatMessageStickerDatas(postbox: account.postbox, file: file, small: small, fetched: fetched, onlyFullSize: onlyFullSize, synchronousLoad: false)
|
||||
return signal |> map { value in
|
||||
let thumbnailData = value._0
|
||||
let fullSizeData = value._1
|
||||
let fullSizeComplete = value._2
|
||||
return { preArguments in
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@ import ShareController
|
|||
import AlertUI
|
||||
import GalleryUI
|
||||
import LegacyUI
|
||||
import ChatListUI
|
||||
|
||||
private final class ChannelInfoControllerArguments {
|
||||
let account: Account
|
||||
|
|
|
|||
|
|
@ -34,6 +34,7 @@ import LegacyUI
|
|||
import InstantPageUI
|
||||
import LocationUI
|
||||
import BotPaymentsUI
|
||||
import DeleteChatPeerActionSheetItem
|
||||
|
||||
public enum ChatControllerPeekActions {
|
||||
case standard
|
||||
|
|
@ -1320,13 +1321,13 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G
|
|||
})
|
||||
}, addContact: { [weak self] phoneNumber in
|
||||
if let strongSelf = self {
|
||||
openAddContact(context: strongSelf.context, phoneNumber: phoneNumber, present: { [weak self] controller, arguments in
|
||||
strongSelf.context.sharedContext.openAddContact(context: strongSelf.context, firstName: "", lastName: "", phoneNumber: phoneNumber, label: defaultContactLabel, present: { [weak self] controller, arguments in
|
||||
self?.present(controller, in: .window(.root), with: arguments)
|
||||
}, pushController: { [weak self] controller in
|
||||
if let strongSelf = self {
|
||||
(strongSelf.navigationController as? NavigationController)?.pushViewController(controller)
|
||||
}
|
||||
})
|
||||
}, completed: {})
|
||||
}
|
||||
}, rateCall: { [weak self] message, callId in
|
||||
if let strongSelf = self {
|
||||
|
|
|
|||
|
|
@ -77,34 +77,6 @@ struct ChatEditMessageState: PostboxCoding, Equatable {
|
|||
}
|
||||
}
|
||||
|
||||
final class ChatEmbeddedInterfaceState: PeerChatListEmbeddedInterfaceState {
|
||||
let timestamp: Int32
|
||||
let text: NSAttributedString
|
||||
|
||||
init(timestamp: Int32, text: NSAttributedString) {
|
||||
self.timestamp = timestamp
|
||||
self.text = text
|
||||
}
|
||||
|
||||
init(decoder: PostboxDecoder) {
|
||||
self.timestamp = decoder.decodeInt32ForKey("d", orElse: 0)
|
||||
self.text = ((decoder.decodeObjectForKey("at", decoder: { ChatTextInputStateText(decoder: $0) }) as? ChatTextInputStateText) ?? ChatTextInputStateText()).attributedText()
|
||||
}
|
||||
|
||||
func encode(_ encoder: PostboxEncoder) {
|
||||
encoder.encodeInt32(self.timestamp, forKey: "d")
|
||||
encoder.encodeObject(ChatTextInputStateText(attributedText: self.text), forKey: "at")
|
||||
}
|
||||
|
||||
public func isEqual(to: PeerChatListEmbeddedInterfaceState) -> Bool {
|
||||
if let to = to as? ChatEmbeddedInterfaceState {
|
||||
return self.timestamp == to.timestamp && self.text.isEqual(to: to.text)
|
||||
} else {
|
||||
return false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
struct ChatInterfaceMessageActionsState: PostboxCoding, Equatable {
|
||||
var closedButtonKeyboardMessageId: MessageId?
|
||||
var processedSetupReplyMessageId: MessageId?
|
||||
|
|
|
|||
|
|
@ -1,22 +0,0 @@
|
|||
import Foundation
|
||||
import UIKit
|
||||
import TelegramPresentationData
|
||||
import TelegramUIPreferences
|
||||
|
||||
final class ChatListPresentationData {
|
||||
let theme: PresentationTheme
|
||||
let strings: PresentationStrings
|
||||
let dateTimeFormat: PresentationDateTimeFormat
|
||||
let nameSortOrder: PresentationPersonNameOrder
|
||||
let nameDisplayOrder: PresentationPersonNameOrder
|
||||
let disableAnimations: Bool
|
||||
|
||||
init(theme: PresentationTheme, strings: PresentationStrings, dateTimeFormat: PresentationDateTimeFormat, nameSortOrder: PresentationPersonNameOrder, nameDisplayOrder: PresentationPersonNameOrder, disableAnimations: Bool) {
|
||||
self.theme = theme
|
||||
self.strings = strings
|
||||
self.dateTimeFormat = dateTimeFormat
|
||||
self.nameSortOrder = nameSortOrder
|
||||
self.nameDisplayOrder = nameDisplayOrder
|
||||
self.disableAnimations = disableAnimations
|
||||
}
|
||||
}
|
||||
|
|
@ -7,6 +7,7 @@ import TelegramCore
|
|||
import AccountContext
|
||||
import LocalizedPeerData
|
||||
import ContextUI
|
||||
import ChatListUI
|
||||
|
||||
struct ChatMessageItemWidthFill {
|
||||
let compactInset: CGFloat
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@ import TelegramUIPreferences
|
|||
import ActivityIndicator
|
||||
import TelegramStringFormatting
|
||||
import PeerPresenceStatusManager
|
||||
import ChatTitleActivityNode
|
||||
|
||||
enum ChatTitleContent {
|
||||
case peer(peerView: PeerView, onlineMemberCount: Int32?, isScheduledMessages: Bool)
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ import TemporaryCachedPeerDataManager
|
|||
import TelegramUIPreferences
|
||||
import TelegramNotices
|
||||
import InstantPageUI
|
||||
import AccountContext
|
||||
|
||||
private var telegramUIDeclaredEncodables: Void = {
|
||||
declareEncodable(InAppNotificationSettings.self, f: { InAppNotificationSettings(decoder: $0) })
|
||||
|
|
|
|||
|
|
@ -23,6 +23,7 @@ import LegacyUI
|
|||
import LocationUI
|
||||
import ItemListPeerItem
|
||||
import ContactListUI
|
||||
import ChatListUI
|
||||
|
||||
private final class GroupInfoArguments {
|
||||
let context: AccountContext
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ import SwiftSignalKit
|
|||
import TelegramPresentationData
|
||||
import TelegramBaseController
|
||||
import AccountContext
|
||||
import ChatListUI
|
||||
|
||||
final class HashtagSearchController: TelegramBaseController {
|
||||
private let queue = Queue()
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ import Postbox
|
|||
import TelegramCore
|
||||
import TelegramPresentationData
|
||||
import AccountContext
|
||||
import ChatListUI
|
||||
|
||||
final class HashtagSearchControllerNode: ASDisplayNode {
|
||||
private let toolbarBackgroundNode: ASDisplayNode
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ import Postbox
|
|||
import AccountContext
|
||||
import GalleryUI
|
||||
import InstantPageUI
|
||||
import ChatListUI
|
||||
|
||||
public func navigateToChatControllerImpl(_ params: NavigateToChatControllerParams) {
|
||||
var found = false
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@ import SearchUI
|
|||
import ItemListPeerItem
|
||||
import ContactsPeerItem
|
||||
import ChatListSearchItemHeader
|
||||
import ChatListUI
|
||||
|
||||
private final class NotificationExceptionState : Equatable {
|
||||
let mode:NotificationExceptionMode
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ import DeviceAccess
|
|||
import AccountContext
|
||||
import AlertUI
|
||||
|
||||
func openAddContact(context: AccountContext, firstName: String = "", lastName: String = "", phoneNumber: String, label: String = "_$!<Mobile>!$_", present: @escaping (ViewController, Any?) -> Void, pushController: @escaping (ViewController) -> Void, completed: @escaping () -> Void = {}) {
|
||||
func openAddContactImpl(context: AccountContext, firstName: String = "", lastName: String = "", phoneNumber: String, label: String = "_$!<Mobile>!$_", present: @escaping (ViewController, Any?) -> Void, pushController: @escaping (ViewController) -> Void, completed: @escaping () -> Void = {}) {
|
||||
let _ = (DeviceAccess.authorizationStatus(subject: .contacts)
|
||||
|> take(1)
|
||||
|> deliverOnMainQueue).start(next: { value in
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ import TelegramPresentationData
|
|||
import ProgressNavigationButtonNode
|
||||
import AccountContext
|
||||
import SearchUI
|
||||
import ChatListUI
|
||||
|
||||
public final class PeerSelectionController: ViewController {
|
||||
private let context: AccountContext
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ import AccountContext
|
|||
import SearchBarNode
|
||||
import SearchUI
|
||||
import ContactListUI
|
||||
import ChatListUI
|
||||
|
||||
final class PeerSelectionControllerNode: ASDisplayNode {
|
||||
private let context: AccountContext
|
||||
|
|
|
|||
|
|
@ -26,6 +26,7 @@ import PassportUI
|
|||
import SearchUI
|
||||
import ItemListPeerItem
|
||||
import CallListUI
|
||||
import ChatListUI
|
||||
|
||||
private let maximumNumberOfAccounts = 3
|
||||
|
||||
|
|
@ -1178,12 +1179,7 @@ public func settingsController(context: AccountContext, accountManager: AccountM
|
|||
actionsDisposable.dispose()
|
||||
}
|
||||
|
||||
let icon: UIImage?
|
||||
if (useSpecialTabBarIcons()) {
|
||||
icon = UIImage(bundleImageName: "Chat List/Tabs/NY/IconSettings")
|
||||
} else {
|
||||
icon = UIImage(bundleImageName: "Chat List/Tabs/IconSettings")
|
||||
}
|
||||
let icon = UIImage(bundleImageName: "Chat List/Tabs/IconSettings")
|
||||
|
||||
let notificationsFromAllAccounts = accountManager.sharedData(keys: [ApplicationSpecificSharedDataKeys.inAppNotificationSettings])
|
||||
|> map { sharedData -> Bool in
|
||||
|
|
@ -1388,7 +1384,7 @@ public func settingsController(context: AccountContext, accountManager: AccountM
|
|||
})
|
||||
if let selectedAccount = selectedAccount, let sharedContext = sharedContext {
|
||||
let accountContext = sharedContext.makeTempAccountContext(account: selectedAccount)
|
||||
let chatListController = ChatListController(context: accountContext, groupId: .root, controlsHistoryPreload: false, hideNetworkActivityStatus: true)
|
||||
let chatListController = ChatListController(context: accountContext, groupId: .root, controlsHistoryPreload: false, hideNetworkActivityStatus: true, enableDebugActions: !GlobalExperimentalSettings.isAppStoreBuild)
|
||||
return chatListController
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import TelegramUIPreferences
|
|||
import AccountContext
|
||||
import DeviceLocationManager
|
||||
import LegacyUI
|
||||
import ChatListUI
|
||||
|
||||
private enum CallStatusText: Equatable {
|
||||
case none
|
||||
|
|
@ -979,4 +980,20 @@ public final class SharedAccountContextImpl: SharedAccountContext {
|
|||
public func makeContactSelectionController(_ params: ContactSelectionControllerParams) -> ContactSelectionController {
|
||||
return ContactSelectionControllerImpl(params)
|
||||
}
|
||||
|
||||
public func makeComposeController(context: AccountContext) -> ViewController {
|
||||
return ComposeController(context: context)
|
||||
}
|
||||
|
||||
public func makeProxySettingsController(context: AccountContext) -> ViewController {
|
||||
return proxySettingsController(context: context)
|
||||
}
|
||||
|
||||
public func makeLocalizationListController(context: AccountContext) -> ViewController {
|
||||
return LocalizationListController(context: context)
|
||||
}
|
||||
|
||||
public func openAddContact(context: AccountContext, firstName: String, lastName: String, phoneNumber: String, label: String, present: @escaping (ViewController, Any?) -> Void, pushController: @escaping (ViewController) -> Void, completed: @escaping () -> Void) {
|
||||
openAddContactImpl(context: context, firstName: firstName, lastName: lastName, phoneNumber: phoneNumber, label: label, present: present, pushController: pushController, completed: completed)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import TelegramUIPrivateModule
|
|||
import AccountContext
|
||||
import ContactListUI
|
||||
import CallListUI
|
||||
import ChatListUI
|
||||
|
||||
public final class TelegramRootController: NavigationController {
|
||||
private let context: AccountContext
|
||||
|
|
@ -83,7 +84,7 @@ public final class TelegramRootController: NavigationController {
|
|||
|
||||
public func addRootControllers(showCallsTab: Bool) {
|
||||
let tabBarController = TabBarController(navigationBarPresentationData: NavigationBarPresentationData(presentationData: self.presentationData), theme: TabBarControllerTheme(rootControllerTheme: self.presentationData.theme))
|
||||
let chatListController = ChatListController(context: self.context, groupId: .root, controlsHistoryPreload: true)
|
||||
let chatListController = ChatListController(context: self.context, groupId: .root, controlsHistoryPreload: true, enableDebugActions: !GlobalExperimentalSettings.isAppStoreBuild)
|
||||
if let sharedContext = self.context.sharedContext as? SharedAccountContextImpl {
|
||||
chatListController.tabBarItem.badgeValue = sharedContext.switchingData.chatListBadge
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ import TelegramCore
|
|||
import TelegramPresentationData
|
||||
import TelegramUIPreferences
|
||||
import AccountContext
|
||||
import ChatListUI
|
||||
|
||||
class ThemePreviewControllerNode: ASDisplayNode, UIScrollViewDelegate {
|
||||
private let context: AccountContext
|
||||
|
|
|
|||
|
|
@ -90,13 +90,6 @@
|
|||
09D304152173C0E900C00567 /* WatchManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09D304142173C0E900C00567 /* WatchManager.swift */; };
|
||||
09D304182173C15700C00567 /* WatchSettingsController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09D304172173C15700C00567 /* WatchSettingsController.swift */; };
|
||||
09D96899221DE92600B1458A /* ID3ArtworkReader.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09D96898221DE92600B1458A /* ID3ArtworkReader.swift */; };
|
||||
09D9689D221F74F000B1458A /* ChatTitleActivityNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09D9689C221F74F000B1458A /* ChatTitleActivityNode.swift */; };
|
||||
09D9689F221F760900B1458A /* ChatTitleActivityContentNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09D9689E221F760900B1458A /* ChatTitleActivityContentNode.swift */; };
|
||||
09D968A1221F7FF100B1458A /* ChatTypingActivityContentNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09D968A0221F7FF100B1458A /* ChatTypingActivityContentNode.swift */; };
|
||||
09D968A3221F800A00B1458A /* ChatUploadingActivityContentNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09D968A2221F800A00B1458A /* ChatUploadingActivityContentNode.swift */; };
|
||||
09D968A5221F801A00B1458A /* ChatPlayingActivityContentNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09D968A4221F801A00B1458A /* ChatPlayingActivityContentNode.swift */; };
|
||||
09D968A7221F803500B1458A /* ChatRecordingVoiceActivityContentNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09D968A6221F803500B1458A /* ChatRecordingVoiceActivityContentNode.swift */; };
|
||||
09D968A9221F804700B1458A /* ChatRecordingVideoActivityContentNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09D968A8221F804700B1458A /* ChatRecordingVideoActivityContentNode.swift */; };
|
||||
09DD5D5021ECC3C400D7007A /* SuppressContactsWarning.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09DD5D4F21ECC3C400D7007A /* SuppressContactsWarning.swift */; };
|
||||
09DD5D5221ED175300D7007A /* WallpaperColorPickerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09DD5D5121ED175300D7007A /* WallpaperColorPickerNode.swift */; };
|
||||
09DD88E921BAF65E000766BC /* ItemListAddressItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09DD88E821BAF65E000766BC /* ItemListAddressItem.swift */; };
|
||||
|
|
@ -117,8 +110,6 @@
|
|||
09EDAD2C2211552F0012A50B /* AutodownloadMediaCategoryController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09EDAD2B2211552F0012A50B /* AutodownloadMediaCategoryController.swift */; };
|
||||
09EDAD2E221164440012A50B /* AutodownloadSizeLimitItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09EDAD2D221164440012A50B /* AutodownloadSizeLimitItem.swift */; };
|
||||
09EDAD30221164530012A50B /* AutodownloadDataUsagePickerItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09EDAD2F221164530012A50B /* AutodownloadDataUsagePickerItem.swift */; };
|
||||
09F21563225C776100AEDF6D /* ChatListBadgeNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09F21562225C776000AEDF6D /* ChatListBadgeNode.swift */; };
|
||||
09F21565225C83E100AEDF6D /* ChatListStatusNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09F21564225C83E100AEDF6D /* ChatListStatusNode.swift */; };
|
||||
09F2158D225CF5BC00AEDF6D /* Pasteboard.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09F2158C225CF5BC00AEDF6D /* Pasteboard.swift */; };
|
||||
09F664C021EAAFAF00AB7E26 /* ThemeColorsGridController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09F664BF21EAAFAF00AB7E26 /* ThemeColorsGridController.swift */; };
|
||||
09F664C221EAAFCB00AB7E26 /* ThemeColorsGridControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09F664C121EAAFCB00AB7E26 /* ThemeColorsGridControllerNode.swift */; };
|
||||
|
|
@ -142,7 +133,6 @@
|
|||
9F06830B21A404C4001D8EDB /* NotificationExceptionSettingsController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F06830A21A404C4001D8EDB /* NotificationExceptionSettingsController.swift */; };
|
||||
D000CABA21EE130D0011B15D /* MapResourceToAvatarSizes.swift in Sources */ = {isa = PBXBuildFile; fileRef = D000CAB921EE130D0011B15D /* MapResourceToAvatarSizes.swift */; };
|
||||
D000CABC21F158AD0011B15D /* PrepareSecretThumbnailData.swift in Sources */ = {isa = PBXBuildFile; fileRef = D000CABB21F158AD0011B15D /* PrepareSecretThumbnailData.swift */; };
|
||||
D00580B321E4B51600CB7CD3 /* DeleteChatPeerActionSheetItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00580B221E4B51600CB7CD3 /* DeleteChatPeerActionSheetItem.swift */; };
|
||||
D0068FA821760FA300D1B315 /* StoreDownloadedMedia.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0068FA721760FA300D1B315 /* StoreDownloadedMedia.swift */; };
|
||||
D007019C2029E8F2006B9E34 /* LegacyICloudFileController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D007019B2029E8F2006B9E34 /* LegacyICloudFileController.swift */; };
|
||||
D007019E2029EFDD006B9E34 /* ICloudResources.swift in Sources */ = {isa = PBXBuildFile; fileRef = D007019D2029EFDD006B9E34 /* ICloudResources.swift */; };
|
||||
|
|
@ -207,7 +197,6 @@
|
|||
D015E04F225D2E5900CB9E8A /* WebP.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D015E04E225D2E5900CB9E8A /* WebP.framework */; };
|
||||
D017734C22049BF800DA06A7 /* UpgradedAccounts.swift in Sources */ = {isa = PBXBuildFile; fileRef = D017734B22049BF800DA06A7 /* UpgradedAccounts.swift */; };
|
||||
D01776BE1F1E76920044446D /* PeerMediaCollectionSectionsNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01776BD1F1E76920044446D /* PeerMediaCollectionSectionsNode.swift */; };
|
||||
D01847801FFBD12E00075256 /* ChatListPresentationData.swift in Sources */ = {isa = PBXBuildFile; fileRef = D018477F1FFBD12E00075256 /* ChatListPresentationData.swift */; };
|
||||
D01848E821A03BDA00B6DEBD /* ChatSearchState.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01848E721A03BDA00B6DEBD /* ChatSearchState.swift */; };
|
||||
D0185E882089ED5F005E1A6C /* ProxyListSettingsController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0185E872089ED5F005E1A6C /* ProxyListSettingsController.swift */; };
|
||||
D0185E8A208A01AF005E1A6C /* ProxySettingsActionItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0185E89208A01AF005E1A6C /* ProxySettingsActionItem.swift */; };
|
||||
|
|
@ -284,11 +273,9 @@
|
|||
D06350AE2229A7F800FA2B32 /* InChatPrefetchManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D06350AD2229A7F800FA2B32 /* InChatPrefetchManager.swift */; };
|
||||
D0642EFC1F3E1E7B00792790 /* ChatHistoryNavigationButtons.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0642EFB1F3E1E7B00792790 /* ChatHistoryNavigationButtons.swift */; };
|
||||
D0671F2D2145AB28000A8AE7 /* LegacyAvatarPicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0671F2C2145AB28000A8AE7 /* LegacyAvatarPicker.swift */; };
|
||||
D0684A041F6C3AD50059F570 /* ChatListTypingNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0684A031F6C3AD50059F570 /* ChatListTypingNode.swift */; };
|
||||
D069F5D0212700B90000565A /* StickerPanePeerSpecificSetupGridItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D069F5CF212700B90000565A /* StickerPanePeerSpecificSetupGridItem.swift */; };
|
||||
D06BB8821F58994B0084FC30 /* LegacyInstantVideoController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D06BB8811F58994B0084FC30 /* LegacyInstantVideoController.swift */; };
|
||||
D06E0F8E1F79ABFB003CF3DD /* ChatLoadingNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D06E0F8D1F79ABFB003CF3DD /* ChatLoadingNode.swift */; };
|
||||
D06E4C312134910400088087 /* ChatListEmptyNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D06E4C302134910400088087 /* ChatListEmptyNode.swift */; };
|
||||
D06E4C332134A59700088087 /* ThemeAccentColorActionSheet.swift in Sources */ = {isa = PBXBuildFile; fileRef = D06E4C322134A59700088087 /* ThemeAccentColorActionSheet.swift */; };
|
||||
D06E4C352134AE3C00088087 /* ThemeAutoNightSettingsController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D06E4C342134AE3C00088087 /* ThemeAutoNightSettingsController.swift */; };
|
||||
D06F1EA41F6C0A5D00FE8B74 /* ChatHistorySearchContainerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D06F1EA31F6C0A5D00FE8B74 /* ChatHistorySearchContainerNode.swift */; };
|
||||
|
|
@ -309,7 +296,6 @@
|
|||
D07ABBA5202A14BC003671DE /* LegacyImagePicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = D07ABBA4202A14BC003671DE /* LegacyImagePicker.swift */; };
|
||||
D07ABBAB202A1BD1003671DE /* LegacyWallpaperPicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = D07ABBAA202A1BD1003671DE /* LegacyWallpaperPicker.swift */; };
|
||||
D07BCBFE1F2B792300ED97AA /* LegacyComponents.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D07BCBFD1F2B792300ED97AA /* LegacyComponents.framework */; };
|
||||
D07E413B208A432100FCA8F0 /* ChatListTitleProxyNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D07E413A208A432100FCA8F0 /* ChatListTitleProxyNode.swift */; };
|
||||
D07E413D208A494D00FCA8F0 /* ProxyServerActionSheetController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D07E413C208A494D00FCA8F0 /* ProxyServerActionSheetController.swift */; };
|
||||
D081A9A922EB26AE0069C449 /* PhoneLabelController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D081A9A822EB26AE0069C449 /* PhoneLabelController.swift */; };
|
||||
D081E104217F57D2003CD921 /* LanguageLinkPreviewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D081E103217F57D2003CD921 /* LanguageLinkPreviewController.swift */; };
|
||||
|
|
@ -371,7 +357,6 @@
|
|||
D09E77AB22FA5CEA00B9CCA7 /* Tuples.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D09E77AA22FA5CEA00B9CCA7 /* Tuples.framework */; };
|
||||
D09E77AD22FA5CEA00B9CCA7 /* UrlEscaping.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D09E77AC22FA5CEA00B9CCA7 /* UrlEscaping.framework */; };
|
||||
D0A8998D217A294100759EE6 /* SaveIncomingMediaController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0A8998C217A294100759EE6 /* SaveIncomingMediaController.swift */; };
|
||||
D0AA29AE1F72770D00C050AC /* ChatListItemStrings.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AA29AD1F72770D00C050AC /* ChatListItemStrings.swift */; };
|
||||
D0AA840C1FEB2BA3005C6E91 /* OverlayPlayerControlsNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AA840B1FEB2BA3005C6E91 /* OverlayPlayerControlsNode.swift */; };
|
||||
D0AB262921C307D7008F6685 /* ChatMessagePollBubbleContentNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AB262821C307D7008F6685 /* ChatMessagePollBubbleContentNode.swift */; };
|
||||
D0AB269E21D56A12008F6685 /* ChannelPermissionsController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AB269D21D56A12008F6685 /* ChannelPermissionsController.swift */; };
|
||||
|
|
@ -458,7 +443,6 @@
|
|||
D0C12EB01F9A8D1300600BB2 /* ListMessageDateHeader.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C12EAF1F9A8D1300600BB2 /* ListMessageDateHeader.swift */; };
|
||||
D0C26D571FDF2388004ABF18 /* OpenChatMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C26D561FDF2388004ABF18 /* OpenChatMessage.swift */; };
|
||||
D0C45E9F213FFAFD00988156 /* Lottie.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C45E9E213FFAFD00988156 /* Lottie.framework */; };
|
||||
D0C683FC21AD797F00A6CAD5 /* ChatListSelection.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C683FB21AD797F00A6CAD5 /* ChatListSelection.swift */; };
|
||||
D0C9BFAD22FE316E00FAB518 /* ComposePollUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9BFAC22FE316E00FAB518 /* ComposePollUI.framework */; };
|
||||
D0C9BFDF22FE349C00FAB518 /* AlertUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9BFDE22FE349C00FAB518 /* AlertUI.framework */; };
|
||||
D0C9C00322FE37A500FAB518 /* TouchDownGesture.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C00222FE37A500FAB518 /* TouchDownGesture.framework */; };
|
||||
|
|
@ -505,6 +489,11 @@
|
|||
D0C9C9DE2302267200FAB518 /* SolidRoundedButtonNode.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C9DD2302267200FAB518 /* SolidRoundedButtonNode.framework */; };
|
||||
D0C9CA192302297C00FAB518 /* PasscodeUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9CA182302297C00FAB518 /* PasscodeUI.framework */; };
|
||||
D0C9CA8223022E3900FAB518 /* CallListUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9CA8123022E3900FAB518 /* CallListUI.framework */; };
|
||||
D0C9CAFD2302370900FAB518 /* ChatListUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9CAFC2302370900FAB518 /* ChatListUI.framework */; };
|
||||
D0C9CB422302B15500FAB518 /* ChatTitleActivityNode.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9CB412302B15500FAB518 /* ChatTitleActivityNode.framework */; };
|
||||
D0C9CB822302B38A00FAB518 /* DeleteChatPeerActionSheetItem.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9CB812302B38A00FAB518 /* DeleteChatPeerActionSheetItem.framework */; };
|
||||
D0C9CBB62302B65600FAB518 /* LanguageSuggestionUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9CBB52302B65600FAB518 /* LanguageSuggestionUI.framework */; };
|
||||
D0C9CBD72302C09000FAB518 /* TextSelectionNode.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9CBD62302C09000FAB518 /* TextSelectionNode.framework */; };
|
||||
D0CAD90120AEECAC00ACD96E /* ChatEditInterfaceMessageState.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0CAD90020AEECAC00ACD96E /* ChatEditInterfaceMessageState.swift */; };
|
||||
D0CB27CF20C17A4A001ACF93 /* TermsOfServiceController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0CB27CE20C17A4A001ACF93 /* TermsOfServiceController.swift */; };
|
||||
D0CB27D220C17A7F001ACF93 /* TermsOfServiceControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0CB27D120C17A7F001ACF93 /* TermsOfServiceControllerNode.swift */; };
|
||||
|
|
@ -590,7 +579,6 @@
|
|||
D0EC6CCD1EB9F58800EBF1C3 /* DeclareEncodables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D073CE701DCBF23F007511FD /* DeclareEncodables.swift */; };
|
||||
D0EC6CCE1EB9F58800EBF1C3 /* AccountContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = D05811931DD5F9380057C769 /* AccountContext.swift */; };
|
||||
D0EC6CD11EB9F58800EBF1C3 /* UrlHandling.swift in Sources */ = {isa = PBXBuildFile; fileRef = D023836F1DDF0462004018B6 /* UrlHandling.swift */; };
|
||||
D0EC6CD51EB9F58800EBF1C3 /* StoredMessageFromSearchPeer.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01749541E1082770057C89A /* StoredMessageFromSearchPeer.swift */; };
|
||||
D0EC6CD71EB9F58800EBF1C3 /* EmojiUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01D6BFB1E42AB3C006151C6 /* EmojiUtils.swift */; };
|
||||
D0EC6CD91EB9F58800EBF1C3 /* ValidateAddressNameInteractive.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E305A41E5B2BFB00D7A3A2 /* ValidateAddressNameInteractive.swift */; };
|
||||
D0EC6CDC1EB9F58800EBF1C3 /* TelegramAccountAuxiliaryMethods.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F3A8AA1E82D83E00B4C64C /* TelegramAccountAuxiliaryMethods.swift */; };
|
||||
|
|
@ -621,12 +609,6 @@
|
|||
D0EC6D311EB9F58800EBF1C3 /* RadialTimeoutNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00C7CE51E378FD00080C3D5 /* RadialTimeoutNode.swift */; };
|
||||
D0EC6D3A1EB9F58800EBF1C3 /* AudioWaveformNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0568AAC1DF198130022E7DA /* AudioWaveformNode.swift */; };
|
||||
D0EC6D3B1EB9F58800EBF1C3 /* EditableTokenListNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0BC38621E3F9EFA0044D6FE /* EditableTokenListNode.swift */; };
|
||||
D0EC6D4B1EB9F58800EBF1C3 /* ChatListNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D07CFF781DCA226F00761F81 /* ChatListNode.swift */; };
|
||||
D0EC6D4D1EB9F58800EBF1C3 /* ChatListHoleItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F69DFB1D6B8A880046BCD6 /* ChatListHoleItem.swift */; };
|
||||
D0EC6D4E1EB9F58800EBF1C3 /* ChatListItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F69DFC1D6B8A880046BCD6 /* ChatListItem.swift */; };
|
||||
D0EC6D501EB9F58800EBF1C3 /* ChatListNodeEntries.swift in Sources */ = {isa = PBXBuildFile; fileRef = D07CFF7A1DCA24BF00761F81 /* ChatListNodeEntries.swift */; };
|
||||
D0EC6D511EB9F58800EBF1C3 /* ChatListViewTransition.swift in Sources */ = {isa = PBXBuildFile; fileRef = D07CFF7C1DCA273400761F81 /* ChatListViewTransition.swift */; };
|
||||
D0EC6D521EB9F58800EBF1C3 /* ChatListNodeLocation.swift in Sources */ = {isa = PBXBuildFile; fileRef = D07CFF7E1DCA308500761F81 /* ChatListNodeLocation.swift */; };
|
||||
D0EC6D531EB9F58800EBF1C3 /* ChatHistoryViewForLocation.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E7A1BE1D8C24B900C37A6F /* ChatHistoryViewForLocation.swift */; };
|
||||
D0EC6D541EB9F58800EBF1C3 /* ChatHistoryEntriesForView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E7A1C01D8C258D00C37A6F /* ChatHistoryEntriesForView.swift */; };
|
||||
D0EC6D551EB9F58800EBF1C3 /* PreparedChatHistoryViewTransition.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E7A1C21D8C25D600C37A6F /* PreparedChatHistoryViewTransition.swift */; };
|
||||
|
|
@ -654,12 +636,6 @@
|
|||
D0EC6D731EB9F58800EBF1C3 /* AuthorizationSequenceSignUpController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F53BF61E79593500117362 /* AuthorizationSequenceSignUpController.swift */; };
|
||||
D0EC6D741EB9F58800EBF1C3 /* AuthorizationSequenceSignUpControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F53BF81E79593F00117362 /* AuthorizationSequenceSignUpControllerNode.swift */; };
|
||||
D0EC6D751EB9F58800EBF1C3 /* TelegramRootController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D05174C21EAE583800A1BF36 /* TelegramRootController.swift */; };
|
||||
D0EC6D761EB9F58800EBF1C3 /* ChatListController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F69DF81D6B8A880046BCD6 /* ChatListController.swift */; };
|
||||
D0EC6D771EB9F58800EBF1C3 /* ChatListControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F69DF91D6B8A880046BCD6 /* ChatListControllerNode.swift */; };
|
||||
D0EC6D781EB9F58800EBF1C3 /* ChatListTitleView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01749611E11DB240057C89A /* ChatListTitleView.swift */; };
|
||||
D0EC6D791EB9F58800EBF1C3 /* ChatListTitleLockView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0575AEA1E9FD579006F2541 /* ChatListTitleLockView.swift */; };
|
||||
D0EC6D7A1EB9F58800EBF1C3 /* ChatListSearchContainerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F69E071D6B8A9C0046BCD6 /* ChatListSearchContainerNode.swift */; };
|
||||
D0EC6D7B1EB9F58800EBF1C3 /* ChatListRecentPeersListItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D049EAED1E44BB3200A2CD3A /* ChatListRecentPeersListItem.swift */; };
|
||||
D0EC6D7F1EB9F58800EBF1C3 /* HashtagSearchController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01749501E1067E40057C89A /* HashtagSearchController.swift */; };
|
||||
D0EC6D801EB9F58800EBF1C3 /* HashtagSearchControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D01749521E1068820057C89A /* HashtagSearchControllerNode.swift */; };
|
||||
D0EC6D811EB9F58800EBF1C3 /* ChatController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F69E0E1D6B8ACF0046BCD6 /* ChatController.swift */; };
|
||||
|
|
@ -866,7 +842,6 @@
|
|||
D0FA08C8204982DC00DD23FC /* ChatTextInputActionButtonsNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0FA08C7204982DC00DD23FC /* ChatTextInputActionButtonsNode.swift */; };
|
||||
D0FA08CA2049BEAC00DD23FC /* ChatEmptyNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0FA08C92049BEAC00DD23FC /* ChatEmptyNode.swift */; };
|
||||
D0FAB13E22EBC25300D8BED2 /* ChatMessageBubbleBackdrop.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0FAB13D22EBC25300D8BED2 /* ChatMessageBubbleBackdrop.swift */; };
|
||||
D0FBE84F2273395C00B33B52 /* ChatListArchiveInfoItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0FBE84E2273395C00B33B52 /* ChatListArchiveInfoItem.swift */; };
|
||||
D0FC194D201F82A000FEDBB2 /* OpenResolvedUrl.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0FC194C201F82A000FEDBB2 /* OpenResolvedUrl.swift */; };
|
||||
D0FC408E1D5B8E7500261D9D /* TelegramUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0FC408D1D5B8E7500261D9D /* TelegramUITests.swift */; };
|
||||
D0FE4DE41F0AEBB900E8A0B3 /* SharedVideoContextManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0FE4DE31F0AEBB900E8A0B3 /* SharedVideoContextManager.swift */; };
|
||||
|
|
@ -955,13 +930,6 @@
|
|||
09D304142173C0E900C00567 /* WatchManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WatchManager.swift; sourceTree = "<group>"; };
|
||||
09D304172173C15700C00567 /* WatchSettingsController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WatchSettingsController.swift; sourceTree = "<group>"; };
|
||||
09D96898221DE92600B1458A /* ID3ArtworkReader.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ID3ArtworkReader.swift; sourceTree = "<group>"; };
|
||||
09D9689C221F74F000B1458A /* ChatTitleActivityNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatTitleActivityNode.swift; sourceTree = "<group>"; };
|
||||
09D9689E221F760900B1458A /* ChatTitleActivityContentNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatTitleActivityContentNode.swift; sourceTree = "<group>"; };
|
||||
09D968A0221F7FF100B1458A /* ChatTypingActivityContentNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatTypingActivityContentNode.swift; sourceTree = "<group>"; };
|
||||
09D968A2221F800A00B1458A /* ChatUploadingActivityContentNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatUploadingActivityContentNode.swift; sourceTree = "<group>"; };
|
||||
09D968A4221F801A00B1458A /* ChatPlayingActivityContentNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatPlayingActivityContentNode.swift; sourceTree = "<group>"; };
|
||||
09D968A6221F803500B1458A /* ChatRecordingVoiceActivityContentNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatRecordingVoiceActivityContentNode.swift; sourceTree = "<group>"; };
|
||||
09D968A8221F804700B1458A /* ChatRecordingVideoActivityContentNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatRecordingVideoActivityContentNode.swift; sourceTree = "<group>"; };
|
||||
09DD5D4F21ECC3C400D7007A /* SuppressContactsWarning.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SuppressContactsWarning.swift; sourceTree = "<group>"; };
|
||||
09DD5D5121ED175300D7007A /* WallpaperColorPickerNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WallpaperColorPickerNode.swift; sourceTree = "<group>"; };
|
||||
09DD88E821BAF65E000766BC /* ItemListAddressItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ItemListAddressItem.swift; sourceTree = "<group>"; };
|
||||
|
|
@ -982,8 +950,6 @@
|
|||
09EDAD2B2211552F0012A50B /* AutodownloadMediaCategoryController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AutodownloadMediaCategoryController.swift; sourceTree = "<group>"; };
|
||||
09EDAD2D221164440012A50B /* AutodownloadSizeLimitItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AutodownloadSizeLimitItem.swift; sourceTree = "<group>"; };
|
||||
09EDAD2F221164530012A50B /* AutodownloadDataUsagePickerItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AutodownloadDataUsagePickerItem.swift; sourceTree = "<group>"; };
|
||||
09F21562225C776000AEDF6D /* ChatListBadgeNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatListBadgeNode.swift; sourceTree = "<group>"; };
|
||||
09F21564225C83E100AEDF6D /* ChatListStatusNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatListStatusNode.swift; sourceTree = "<group>"; };
|
||||
09F2158C225CF5BC00AEDF6D /* Pasteboard.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Pasteboard.swift; sourceTree = "<group>"; };
|
||||
09F664BF21EAAFAF00AB7E26 /* ThemeColorsGridController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemeColorsGridController.swift; sourceTree = "<group>"; };
|
||||
09F664C121EAAFCB00AB7E26 /* ThemeColorsGridControllerNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemeColorsGridControllerNode.swift; sourceTree = "<group>"; };
|
||||
|
|
@ -1014,7 +980,6 @@
|
|||
D002A0DA1E9C190700A81812 /* SoftwareVideoThumbnailLayer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SoftwareVideoThumbnailLayer.swift; sourceTree = "<group>"; };
|
||||
D002A0DC1E9CD52A00A81812 /* ChatMediaInputRecentGifsItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMediaInputRecentGifsItem.swift; sourceTree = "<group>"; };
|
||||
D003702D1DA43052004308D3 /* ItemListAvatarAndNameItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ItemListAvatarAndNameItem.swift; sourceTree = "<group>"; };
|
||||
D00580B221E4B51600CB7CD3 /* DeleteChatPeerActionSheetItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeleteChatPeerActionSheetItem.swift; sourceTree = "<group>"; };
|
||||
D0068FA721760FA300D1B315 /* StoreDownloadedMedia.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StoreDownloadedMedia.swift; sourceTree = "<group>"; };
|
||||
D007019B2029E8F2006B9E34 /* LegacyICloudFileController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LegacyICloudFileController.swift; sourceTree = "<group>"; };
|
||||
D007019D2029EFDD006B9E34 /* ICloudResources.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ICloudResources.swift; sourceTree = "<group>"; };
|
||||
|
|
@ -1088,13 +1053,10 @@
|
|||
D015E04E225D2E5900CB9E8A /* WebP.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = WebP.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D01749501E1067E40057C89A /* HashtagSearchController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HashtagSearchController.swift; sourceTree = "<group>"; };
|
||||
D01749521E1068820057C89A /* HashtagSearchControllerNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HashtagSearchControllerNode.swift; sourceTree = "<group>"; };
|
||||
D01749541E1082770057C89A /* StoredMessageFromSearchPeer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StoredMessageFromSearchPeer.swift; sourceTree = "<group>"; };
|
||||
D01749561E1087CC0057C89A /* ChatBotStartInputPanelNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatBotStartInputPanelNode.swift; sourceTree = "<group>"; };
|
||||
D01749611E11DB240057C89A /* ChatListTitleView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatListTitleView.swift; sourceTree = "<group>"; };
|
||||
D017734B22049BF800DA06A7 /* UpgradedAccounts.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UpgradedAccounts.swift; sourceTree = "<group>"; };
|
||||
D01776BD1F1E76920044446D /* PeerMediaCollectionSectionsNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerMediaCollectionSectionsNode.swift; sourceTree = "<group>"; };
|
||||
D0177B831DFB095000A5083A /* FileMediaResourceStatus.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FileMediaResourceStatus.swift; sourceTree = "<group>"; };
|
||||
D018477F1FFBD12E00075256 /* ChatListPresentationData.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatListPresentationData.swift; sourceTree = "<group>"; };
|
||||
D01848E721A03BDA00B6DEBD /* ChatSearchState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatSearchState.swift; sourceTree = "<group>"; };
|
||||
D0185E872089ED5F005E1A6C /* ProxyListSettingsController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProxyListSettingsController.swift; sourceTree = "<group>"; };
|
||||
D0185E89208A01AF005E1A6C /* ProxySettingsActionItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProxySettingsActionItem.swift; sourceTree = "<group>"; };
|
||||
|
|
@ -1194,7 +1156,6 @@
|
|||
D048B338203C532800038D05 /* ChatMediaInputPane.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatMediaInputPane.swift; sourceTree = "<group>"; };
|
||||
D049EAE11E447AD500A2CD3A /* StickersChatInputContextPanelNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StickersChatInputContextPanelNode.swift; sourceTree = "<group>"; };
|
||||
D049EAE51E44AD5600A2CD3A /* ChatMediaInputMetaSectionItemNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMediaInputMetaSectionItemNode.swift; sourceTree = "<group>"; };
|
||||
D049EAED1E44BB3200A2CD3A /* ChatListRecentPeersListItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatListRecentPeersListItem.swift; sourceTree = "<group>"; };
|
||||
D049EAF21E44DE2500A2CD3A /* AuthorizationSequenceController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthorizationSequenceController.swift; sourceTree = "<group>"; };
|
||||
D04B4D121EEA0A6500711AF6 /* ChatMessageMapBubbleContentNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMessageMapBubbleContentNode.swift; sourceTree = "<group>"; };
|
||||
D04BB2B21E44E56200650E93 /* AuthorizationSequenceSplashController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthorizationSequenceSplashController.swift; sourceTree = "<group>"; };
|
||||
|
|
@ -1223,7 +1184,6 @@
|
|||
D056CD751FF2A30900880D28 /* ChatSwipeToReplyRecognizer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatSwipeToReplyRecognizer.swift; sourceTree = "<group>"; };
|
||||
D056CD771FF2A6EE00880D28 /* ChatMessageSwipeToReplyNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatMessageSwipeToReplyNode.swift; sourceTree = "<group>"; };
|
||||
D056CD791FF3CC2A00880D28 /* ListMessagePlaybackOverlayNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ListMessagePlaybackOverlayNode.swift; sourceTree = "<group>"; };
|
||||
D0575AEA1E9FD579006F2541 /* ChatListTitleLockView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatListTitleLockView.swift; sourceTree = "<group>"; };
|
||||
D0575AEC1E9FF1AD006F2541 /* ChatMediaInputTrendingPane.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMediaInputTrendingPane.swift; sourceTree = "<group>"; };
|
||||
D0575AEE1E9FF881006F2541 /* ChatMediaInputTrendingItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMediaInputTrendingItem.swift; sourceTree = "<group>"; };
|
||||
D0575AF61EA0ED4F006F2541 /* ChatMessageInstantVideoItemNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMessageInstantVideoItemNode.swift; sourceTree = "<group>"; };
|
||||
|
|
@ -1251,13 +1211,11 @@
|
|||
D06350AD2229A7F800FA2B32 /* InChatPrefetchManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InChatPrefetchManager.swift; sourceTree = "<group>"; };
|
||||
D0642EFB1F3E1E7B00792790 /* ChatHistoryNavigationButtons.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatHistoryNavigationButtons.swift; sourceTree = "<group>"; };
|
||||
D0671F2C2145AB28000A8AE7 /* LegacyAvatarPicker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LegacyAvatarPicker.swift; sourceTree = "<group>"; };
|
||||
D0684A031F6C3AD50059F570 /* ChatListTypingNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatListTypingNode.swift; sourceTree = "<group>"; };
|
||||
D06879561DB8F22200424BBD /* FetchCachedRepresentations.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FetchCachedRepresentations.swift; sourceTree = "<group>"; };
|
||||
D069F5CF212700B90000565A /* StickerPanePeerSpecificSetupGridItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StickerPanePeerSpecificSetupGridItem.swift; sourceTree = "<group>"; };
|
||||
D06BB8811F58994B0084FC30 /* LegacyInstantVideoController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LegacyInstantVideoController.swift; sourceTree = "<group>"; };
|
||||
D06E0F8D1F79ABFB003CF3DD /* ChatLoadingNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatLoadingNode.swift; sourceTree = "<group>"; };
|
||||
D06E4AC31E84806300627D1D /* FetchPhotoLibraryImageResource.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FetchPhotoLibraryImageResource.swift; sourceTree = "<group>"; };
|
||||
D06E4C302134910400088087 /* ChatListEmptyNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatListEmptyNode.swift; sourceTree = "<group>"; };
|
||||
D06E4C322134A59700088087 /* ThemeAccentColorActionSheet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemeAccentColorActionSheet.swift; sourceTree = "<group>"; };
|
||||
D06E4C342134AE3C00088087 /* ThemeAutoNightSettingsController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemeAutoNightSettingsController.swift; sourceTree = "<group>"; };
|
||||
D06F1EA31F6C0A5D00FE8B74 /* ChatHistorySearchContainerNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatHistorySearchContainerNode.swift; sourceTree = "<group>"; };
|
||||
|
|
@ -1290,12 +1248,7 @@
|
|||
D07BCBFD1F2B792300ED97AA /* LegacyComponents.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = LegacyComponents.framework; path = "../LegacyComponents/build/Debug-iphoneos/LegacyComponents.framework"; sourceTree = "<group>"; };
|
||||
D07CFF731DCA207200761F81 /* PeerSelectionController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerSelectionController.swift; sourceTree = "<group>"; };
|
||||
D07CFF751DCA224100761F81 /* PeerSelectionControllerNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerSelectionControllerNode.swift; sourceTree = "<group>"; };
|
||||
D07CFF781DCA226F00761F81 /* ChatListNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatListNode.swift; sourceTree = "<group>"; };
|
||||
D07CFF7A1DCA24BF00761F81 /* ChatListNodeEntries.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatListNodeEntries.swift; sourceTree = "<group>"; };
|
||||
D07CFF7C1DCA273400761F81 /* ChatListViewTransition.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatListViewTransition.swift; sourceTree = "<group>"; };
|
||||
D07CFF7E1DCA308500761F81 /* ChatListNodeLocation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatListNodeLocation.swift; sourceTree = "<group>"; };
|
||||
D07CFF861DCAAE5E00761F81 /* ForwardAccessoryPanelNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ForwardAccessoryPanelNode.swift; sourceTree = "<group>"; };
|
||||
D07E413A208A432100FCA8F0 /* ChatListTitleProxyNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatListTitleProxyNode.swift; sourceTree = "<group>"; };
|
||||
D07E413C208A494D00FCA8F0 /* ProxyServerActionSheetController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProxyServerActionSheetController.swift; sourceTree = "<group>"; };
|
||||
D081A9A822EB26AE0069C449 /* PhoneLabelController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PhoneLabelController.swift; sourceTree = "<group>"; };
|
||||
D081E103217F57D2003CD921 /* LanguageLinkPreviewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LanguageLinkPreviewController.swift; sourceTree = "<group>"; };
|
||||
|
|
@ -1377,7 +1330,6 @@
|
|||
D0A11BFD1E7840A50081CE03 /* ChangePhoneNumberControllerNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChangePhoneNumberControllerNode.swift; sourceTree = "<group>"; };
|
||||
D0A749961E3AA25200AD786E /* NotificationSoundSelection.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NotificationSoundSelection.swift; sourceTree = "<group>"; };
|
||||
D0A8998C217A294100759EE6 /* SaveIncomingMediaController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SaveIncomingMediaController.swift; sourceTree = "<group>"; };
|
||||
D0AA29AD1F72770D00C050AC /* ChatListItemStrings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatListItemStrings.swift; sourceTree = "<group>"; };
|
||||
D0AA840B1FEB2BA3005C6E91 /* OverlayPlayerControlsNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OverlayPlayerControlsNode.swift; sourceTree = "<group>"; };
|
||||
D0AB0BB01D6718DA002C78E7 /* libiconv.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libiconv.tbd; path = usr/lib/libiconv.tbd; sourceTree = SDKROOT; };
|
||||
D0AB0BB21D6718EB002C78E7 /* libz.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libz.tbd; path = usr/lib/libz.tbd; sourceTree = SDKROOT; };
|
||||
|
|
@ -1492,7 +1444,6 @@
|
|||
D0C50E3D1E93D09200F62E39 /* NotificationItemContainerNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NotificationItemContainerNode.swift; sourceTree = "<group>"; };
|
||||
D0C50E3F1E93D3B000F62E39 /* ChatMessageNotificationItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMessageNotificationItem.swift; sourceTree = "<group>"; };
|
||||
D0C50E431E93FCD200F62E39 /* notification.caf */ = {isa = PBXFileReference; lastKnownFileType = file; name = notification.caf; path = TelegramUI/Sounds/notification.caf; sourceTree = "<group>"; };
|
||||
D0C683FB21AD797F00A6CAD5 /* ChatListSelection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatListSelection.swift; sourceTree = "<group>"; };
|
||||
D0C932351E0988C60074F044 /* ChatButtonKeyboardInputNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatButtonKeyboardInputNode.swift; sourceTree = "<group>"; };
|
||||
D0C932371E09E0EA0074F044 /* ChatBotInfoItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatBotInfoItem.swift; sourceTree = "<group>"; };
|
||||
D0C9323B1E0B4AE90074F044 /* DataAndStorageSettingsController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DataAndStorageSettingsController.swift; sourceTree = "<group>"; };
|
||||
|
|
@ -1543,6 +1494,11 @@
|
|||
D0C9C9DD2302267200FAB518 /* SolidRoundedButtonNode.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = SolidRoundedButtonNode.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9CA182302297C00FAB518 /* PasscodeUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = PasscodeUI.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9CA8123022E3900FAB518 /* CallListUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = CallListUI.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9CAFC2302370900FAB518 /* ChatListUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ChatListUI.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9CB412302B15500FAB518 /* ChatTitleActivityNode.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ChatTitleActivityNode.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9CB812302B38A00FAB518 /* DeleteChatPeerActionSheetItem.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = DeleteChatPeerActionSheetItem.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9CBB52302B65600FAB518 /* LanguageSuggestionUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = LanguageSuggestionUI.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9CBD62302C09000FAB518 /* TextSelectionNode.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TextSelectionNode.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0CAD90020AEECAC00ACD96E /* ChatEditInterfaceMessageState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatEditInterfaceMessageState.swift; sourceTree = "<group>"; };
|
||||
D0CB27CE20C17A4A001ACF93 /* TermsOfServiceController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TermsOfServiceController.swift; sourceTree = "<group>"; };
|
||||
D0CB27D120C17A7F001ACF93 /* TermsOfServiceControllerNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TermsOfServiceControllerNode.swift; sourceTree = "<group>"; };
|
||||
|
|
@ -1717,11 +1673,6 @@
|
|||
D0F69CD61D6B87D30046BCD6 /* MediaManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MediaManager.swift; sourceTree = "<group>"; };
|
||||
D0F69DB91D6B88190046BCD6 /* TelegramUI.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = TelegramUI.xcconfig; path = TelegramUI/Config/TelegramUI.xcconfig; sourceTree = "<group>"; };
|
||||
D0F69DC41D6B89E10046BCD6 /* RadialProgressNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RadialProgressNode.swift; sourceTree = "<group>"; };
|
||||
D0F69DF81D6B8A880046BCD6 /* ChatListController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatListController.swift; sourceTree = "<group>"; };
|
||||
D0F69DF91D6B8A880046BCD6 /* ChatListControllerNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatListControllerNode.swift; sourceTree = "<group>"; };
|
||||
D0F69DFB1D6B8A880046BCD6 /* ChatListHoleItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatListHoleItem.swift; sourceTree = "<group>"; };
|
||||
D0F69DFC1D6B8A880046BCD6 /* ChatListItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatListItem.swift; sourceTree = "<group>"; };
|
||||
D0F69E071D6B8A9C0046BCD6 /* ChatListSearchContainerNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatListSearchContainerNode.swift; sourceTree = "<group>"; };
|
||||
D0F69E0E1D6B8ACF0046BCD6 /* ChatController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatController.swift; sourceTree = "<group>"; };
|
||||
D0F69E0F1D6B8ACF0046BCD6 /* ChatControllerInteraction.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatControllerInteraction.swift; sourceTree = "<group>"; };
|
||||
D0F69E101D6B8ACF0046BCD6 /* ChatControllerNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatControllerNode.swift; sourceTree = "<group>"; };
|
||||
|
|
@ -1765,7 +1716,6 @@
|
|||
D0FA0AC41E77431A005BB9B7 /* InstalledStickerPacksController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = InstalledStickerPacksController.swift; sourceTree = "<group>"; };
|
||||
D0FA35001EA6127000E56FFA /* StorageUsageController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StorageUsageController.swift; sourceTree = "<group>"; };
|
||||
D0FAB13D22EBC25300D8BED2 /* ChatMessageBubbleBackdrop.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatMessageBubbleBackdrop.swift; sourceTree = "<group>"; };
|
||||
D0FBE84E2273395C00B33B52 /* ChatListArchiveInfoItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatListArchiveInfoItem.swift; sourceTree = "<group>"; };
|
||||
D0FC194C201F82A000FEDBB2 /* OpenResolvedUrl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OpenResolvedUrl.swift; sourceTree = "<group>"; };
|
||||
D0FC40821D5B8E7400261D9D /* TelegramUI.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TelegramUI.h; sourceTree = "<group>"; };
|
||||
D0FC40831D5B8E7400261D9D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||
|
|
@ -1780,6 +1730,11 @@
|
|||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
D0C9CBD72302C09000FAB518 /* TextSelectionNode.framework in Frameworks */,
|
||||
D0C9CBB62302B65600FAB518 /* LanguageSuggestionUI.framework in Frameworks */,
|
||||
D0C9CB822302B38A00FAB518 /* DeleteChatPeerActionSheetItem.framework in Frameworks */,
|
||||
D0C9CB422302B15500FAB518 /* ChatTitleActivityNode.framework in Frameworks */,
|
||||
D0C9CAFD2302370900FAB518 /* ChatListUI.framework in Frameworks */,
|
||||
D0C9CA8223022E3900FAB518 /* CallListUI.framework in Frameworks */,
|
||||
D0C9CA192302297C00FAB518 /* PasscodeUI.framework in Frameworks */,
|
||||
D0C9C9DE2302267200FAB518 /* SolidRoundedButtonNode.framework in Frameworks */,
|
||||
|
|
@ -2045,13 +2000,6 @@
|
|||
09D9689B221F74AA00B1458A /* Title Activity Indicator */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
09D9689C221F74F000B1458A /* ChatTitleActivityNode.swift */,
|
||||
09D9689E221F760900B1458A /* ChatTitleActivityContentNode.swift */,
|
||||
09D968A0221F7FF100B1458A /* ChatTypingActivityContentNode.swift */,
|
||||
09D968A2221F800A00B1458A /* ChatUploadingActivityContentNode.swift */,
|
||||
09D968A6221F803500B1458A /* ChatRecordingVoiceActivityContentNode.swift */,
|
||||
09D968A8221F804700B1458A /* ChatRecordingVideoActivityContentNode.swift */,
|
||||
09D968A4221F801A00B1458A /* ChatPlayingActivityContentNode.swift */,
|
||||
);
|
||||
name = "Title Activity Indicator";
|
||||
sourceTree = "<group>";
|
||||
|
|
@ -2083,7 +2031,6 @@
|
|||
isa = PBXGroup;
|
||||
children = (
|
||||
D09250051FE5371D003F693F /* GlobalExperimentalSettings.swift */,
|
||||
D01749541E1082770057C89A /* StoredMessageFromSearchPeer.swift */,
|
||||
D0068FA721760FA300D1B315 /* StoreDownloadedMedia.swift */,
|
||||
D0EC55A2210231D600D1992C /* SearchPeerMembers.swift */,
|
||||
09CE950D2237E45E00A7D2C3 /* CachedFaqInstantPage.swift */,
|
||||
|
|
@ -2156,13 +2103,6 @@
|
|||
name = Share;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
D0104F261F471702004E4881 /* Instant Page Gallery */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
);
|
||||
name = "Instant Page Gallery";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
D01590A922BD46690017C33E /* Animation */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
|
|
@ -2608,25 +2548,6 @@
|
|||
name = "Instant Page";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
D07CFF771DCA226200761F81 /* Chat List Node */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
D07CFF781DCA226F00761F81 /* ChatListNode.swift */,
|
||||
D0F69DFB1D6B8A880046BCD6 /* ChatListHoleItem.swift */,
|
||||
D0F69DFC1D6B8A880046BCD6 /* ChatListItem.swift */,
|
||||
D0FBE84E2273395C00B33B52 /* ChatListArchiveInfoItem.swift */,
|
||||
D0AA29AD1F72770D00C050AC /* ChatListItemStrings.swift */,
|
||||
D07CFF7A1DCA24BF00761F81 /* ChatListNodeEntries.swift */,
|
||||
D07CFF7C1DCA273400761F81 /* ChatListViewTransition.swift */,
|
||||
D07CFF7E1DCA308500761F81 /* ChatListNodeLocation.swift */,
|
||||
D0684A031F6C3AD50059F570 /* ChatListTypingNode.swift */,
|
||||
D018477F1FFBD12E00075256 /* ChatListPresentationData.swift */,
|
||||
09F21562225C776000AEDF6D /* ChatListBadgeNode.swift */,
|
||||
09F21564225C83E100AEDF6D /* ChatListStatusNode.swift */,
|
||||
);
|
||||
name = "Chat List Node";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
D081E102217F57B2003CD921 /* Language Link Preview */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
|
|
@ -2659,6 +2580,11 @@
|
|||
D08D45281D5E340200A7428A /* Frameworks */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
D0C9CBD62302C09000FAB518 /* TextSelectionNode.framework */,
|
||||
D0C9CBB52302B65600FAB518 /* LanguageSuggestionUI.framework */,
|
||||
D0C9CB812302B38A00FAB518 /* DeleteChatPeerActionSheetItem.framework */,
|
||||
D0C9CB412302B15500FAB518 /* ChatTitleActivityNode.framework */,
|
||||
D0C9CAFC2302370900FAB518 /* ChatListUI.framework */,
|
||||
D0C9CA8123022E3900FAB518 /* CallListUI.framework */,
|
||||
D0C9CA182302297C00FAB518 /* PasscodeUI.framework */,
|
||||
D0C9C9DD2302267200FAB518 /* SolidRoundedButtonNode.framework */,
|
||||
|
|
@ -2798,13 +2724,6 @@
|
|||
name = Frameworks;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
D093D81E20699A6000BC3599 /* Form */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
);
|
||||
name = Form;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
D099EA1D1DE744EE001AF5A8 /* Horizontal List */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
|
|
@ -3415,7 +3334,6 @@
|
|||
children = (
|
||||
D0F69DBF1D6B89AE0046BCD6 /* Nodes */,
|
||||
D0F69DD31D6B8A160046BCD6 /* Controllers */,
|
||||
D07CFF771DCA226200761F81 /* Chat List Node */,
|
||||
D0E7A1BB1D8C17EB00C37A6F /* Chat History Node */,
|
||||
);
|
||||
name = Components;
|
||||
|
|
@ -3435,7 +3353,6 @@
|
|||
D0B2F76B2052A7D600D3BFB9 /* SinglePhoneInputNode.swift */,
|
||||
D056CD6F1FF147B000880D28 /* IconButtonNode.swift */,
|
||||
09F85BA621E7DA5F00D73170 /* BlurredImageNode.swift */,
|
||||
D00580B221E4B51600CB7CD3 /* DeleteChatPeerActionSheetItem.swift */,
|
||||
09749BCE21F236F2008FDDE9 /* ModernCheckNode.swift */,
|
||||
);
|
||||
name = Nodes;
|
||||
|
|
@ -3452,7 +3369,6 @@
|
|||
isa = PBXGroup;
|
||||
children = (
|
||||
D01B27931E38F3920022A4C0 /* Item List */,
|
||||
D093D81E20699A6000BC3599 /* Form */,
|
||||
);
|
||||
name = Controllers;
|
||||
sourceTree = "<group>";
|
||||
|
|
@ -3462,7 +3378,7 @@
|
|||
children = (
|
||||
D0F69DE71D6B8A590046BCD6 /* Authorization */,
|
||||
D05174C11EAE582A00A1BF36 /* Root */,
|
||||
D0F69DF61D6B8A720046BCD6 /* Chat List */,
|
||||
D017494F1E1067C00057C89A /* Hashtag Search */,
|
||||
D0F69E0D1D6B8AB90046BCD6 /* Chat */,
|
||||
D04281F2200E5A70009DDE36 /* Chat Recent Actions */,
|
||||
D00DE6961E8E8E21003F0D76 /* Share */,
|
||||
|
|
@ -3495,39 +3411,6 @@
|
|||
name = Authorization;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
D0F69DF61D6B8A720046BCD6 /* Chat List */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
D0F69DF81D6B8A880046BCD6 /* ChatListController.swift */,
|
||||
D0F69DF91D6B8A880046BCD6 /* ChatListControllerNode.swift */,
|
||||
D01749611E11DB240057C89A /* ChatListTitleView.swift */,
|
||||
D0575AEA1E9FD579006F2541 /* ChatListTitleLockView.swift */,
|
||||
D07E413A208A432100FCA8F0 /* ChatListTitleProxyNode.swift */,
|
||||
D06E4C302134910400088087 /* ChatListEmptyNode.swift */,
|
||||
D017494F1E1067C00057C89A /* Hashtag Search */,
|
||||
D0C683FB21AD797F00A6CAD5 /* ChatListSelection.swift */,
|
||||
D0F69E051D6B8A8B0046BCD6 /* Search */,
|
||||
);
|
||||
name = "Chat List";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
D0F69E051D6B8A8B0046BCD6 /* Search */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
D0F69E071D6B8A9C0046BCD6 /* ChatListSearchContainerNode.swift */,
|
||||
D0F69E061D6B8A930046BCD6 /* Recent Peers */,
|
||||
);
|
||||
name = Search;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
D0F69E061D6B8A930046BCD6 /* Recent Peers */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
D049EAED1E44BB3200A2CD3A /* ChatListRecentPeersListItem.swift */,
|
||||
);
|
||||
name = "Recent Peers";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
D0F69E0D1D6B8AB90046BCD6 /* Chat */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
|
|
@ -3662,7 +3545,6 @@
|
|||
D0F69E4F1D6B8BC40046BCD6 /* Gallery */,
|
||||
D0575AF81EA0FD94006F2541 /* Avatar Gallery */,
|
||||
D0EEE99F2165583B001292A6 /* Document */,
|
||||
D0104F261F471702004E4881 /* Instant Page Gallery */,
|
||||
D07827CC1E03F32C00071108 /* Instant Page */,
|
||||
D0D748041E7AF62000F4B1F6 /* Stickers */,
|
||||
D020A9D81FEAE611008C66F7 /* Player */,
|
||||
|
|
@ -4114,12 +3996,10 @@
|
|||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
D0684A041F6C3AD50059F570 /* ChatListTypingNode.swift in Sources */,
|
||||
D0383EE6207D299600C45548 /* EmojisChatInputPanelItem.swift in Sources */,
|
||||
D00817E322B47A14008A895F /* TGPresentationAutoNightPreferences.m in Sources */,
|
||||
D0E1199E229809B6008CAE3A /* ChannelDiscussionGroupActionSheetItem.swift in Sources */,
|
||||
09EDAD2A220DA6A40012A50B /* VolumeButtons.swift in Sources */,
|
||||
09D968A9221F804700B1458A /* ChatRecordingVideoActivityContentNode.swift in Sources */,
|
||||
D0E1199A2297F9C6008CAE3A /* ChannelDiscussionGroupSetupController.swift in Sources */,
|
||||
D083491C209361DC008CFD52 /* AvatarGalleryItemFooterContentNode.swift in Sources */,
|
||||
090E778A22A9F23C00CD99F5 /* ChannelOwnershipTransferController.swift in Sources */,
|
||||
|
|
@ -4159,7 +4039,6 @@
|
|||
D0EC6CCE1EB9F58800EBF1C3 /* AccountContext.swift in Sources */,
|
||||
D0EC6CD11EB9F58800EBF1C3 /* UrlHandling.swift in Sources */,
|
||||
09F85BA521E7821500D73170 /* ThemeGridSelectionPanelNode.swift in Sources */,
|
||||
D0EC6CD51EB9F58800EBF1C3 /* StoredMessageFromSearchPeer.swift in Sources */,
|
||||
09CE950E2237E45E00A7D2C3 /* CachedFaqInstantPage.swift in Sources */,
|
||||
D0EC6CD71EB9F58800EBF1C3 /* EmojiUtils.swift in Sources */,
|
||||
D0EC6CD91EB9F58800EBF1C3 /* ValidateAddressNameInteractive.swift in Sources */,
|
||||
|
|
@ -4178,8 +4057,6 @@
|
|||
D0E8B8BF20447A4600605593 /* SecretChatKeyControllerNode.swift in Sources */,
|
||||
D02B2B9820810DA00062476B /* StickerPaneSearchStickerItem.swift in Sources */,
|
||||
D020A9DC1FEAE6E7008C66F7 /* OverlayPlayerControllerNode.swift in Sources */,
|
||||
09D968A1221F7FF100B1458A /* ChatTypingActivityContentNode.swift in Sources */,
|
||||
09D968A3221F800A00B1458A /* ChatUploadingActivityContentNode.swift in Sources */,
|
||||
090E778622A9B95A00CD99F5 /* PeersNearbyController.swift in Sources */,
|
||||
D04ECD721FFBF22B00DE9029 /* OpenUrl.swift in Sources */,
|
||||
D056CD7A1FF3CC2A00880D28 /* ListMessagePlaybackOverlayNode.swift in Sources */,
|
||||
|
|
@ -4215,7 +4092,6 @@
|
|||
D0EC6D091EB9F58800EBF1C3 /* info.c in Sources */,
|
||||
D0EC6D0A1EB9F58800EBF1C3 /* internal.c in Sources */,
|
||||
D0EC6D0B1EB9F58800EBF1C3 /* opusfile.c in Sources */,
|
||||
D01847801FFBD12E00075256 /* ChatListPresentationData.swift in Sources */,
|
||||
09C500242142BA6400EF253E /* ItemListWebsiteItem.swift in Sources */,
|
||||
D0EC6D0C1EB9F58800EBF1C3 /* stream.c in Sources */,
|
||||
09FFBCD72281BB2D00C33B4B /* ChatTextLinkEditController.swift in Sources */,
|
||||
|
|
@ -4223,7 +4099,6 @@
|
|||
D0AB269E21D56A12008F6685 /* ChannelPermissionsController.swift in Sources */,
|
||||
D0B69C3920EBB397003632C7 /* ChatMessageInteractiveInstantVideoNode.swift in Sources */,
|
||||
09F79A0D21C88E8900820234 /* LegacyWebSearchEditor.swift in Sources */,
|
||||
09F21565225C83E100AEDF6D /* ChatListStatusNode.swift in Sources */,
|
||||
D056CD701FF147B000880D28 /* IconButtonNode.swift in Sources */,
|
||||
D0F760DB222034910074F7E5 /* ChannelStatsController.swift in Sources */,
|
||||
D0FA08CA2049BEAC00DD23FC /* ChatEmptyNode.swift in Sources */,
|
||||
|
|
@ -4239,7 +4114,6 @@
|
|||
D0CE67941F7DB45100FFB557 /* ChatMessageContactBubbleContentNode.swift in Sources */,
|
||||
09749BCD21F23139008FDDE9 /* WallpaperGalleryDecorationNode.swift in Sources */,
|
||||
09EDAD26220D30980012A50B /* AutodownloadConnectionTypeController.swift in Sources */,
|
||||
09D968A7221F803500B1458A /* ChatRecordingVoiceActivityContentNode.swift in Sources */,
|
||||
D05D8B3A2192FC460064586F /* LocalizationListController.swift in Sources */,
|
||||
D0943AFE1FDAE454001522CC /* ChatMultipleAvatarsNavigationNode.swift in Sources */,
|
||||
D0B21B15220D85DD003F741D /* TabBarAccountSwitchController.swift in Sources */,
|
||||
|
|
@ -4283,15 +4157,9 @@
|
|||
D0CE8CE51F6F354400AA2DB0 /* ChatTextInputAccessoryItem.swift in Sources */,
|
||||
D097C26820DD0A1D007BB4B8 /* PeerReportController.swift in Sources */,
|
||||
09F664C621EB400A00AB7E26 /* ThemeGridSearchContentNode.swift in Sources */,
|
||||
D0EC6D4B1EB9F58800EBF1C3 /* ChatListNode.swift in Sources */,
|
||||
D0EC6D4D1EB9F58800EBF1C3 /* ChatListHoleItem.swift in Sources */,
|
||||
0962E67921B67A9800245FD9 /* ChatMessageAnimatedStickerItemNode.swift in Sources */,
|
||||
D0EC6D4E1EB9F58800EBF1C3 /* ChatListItem.swift in Sources */,
|
||||
D0B2F76A2052920D00D3BFB9 /* UserInfoEditingPhoneItem.swift in Sources */,
|
||||
D0AEAE272080D6970013176E /* PaneSearchBarNode.swift in Sources */,
|
||||
D0EC6D501EB9F58800EBF1C3 /* ChatListNodeEntries.swift in Sources */,
|
||||
D0EC6D511EB9F58800EBF1C3 /* ChatListViewTransition.swift in Sources */,
|
||||
D0EC6D521EB9F58800EBF1C3 /* ChatListNodeLocation.swift in Sources */,
|
||||
D0EC6D531EB9F58800EBF1C3 /* ChatHistoryViewForLocation.swift in Sources */,
|
||||
D06BB8821F58994B0084FC30 /* LegacyInstantVideoController.swift in Sources */,
|
||||
D0EC6D541EB9F58800EBF1C3 /* ChatHistoryEntriesForView.swift in Sources */,
|
||||
|
|
@ -4316,7 +4184,6 @@
|
|||
D0EC6D5D1EB9F58800EBF1C3 /* ListMessageSnippetItemNode.swift in Sources */,
|
||||
D0EC6D5E1EB9F58800EBF1C3 /* ListMessageHoleItem.swift in Sources */,
|
||||
D0EC6D5F1EB9F58800EBF1C3 /* GridMessageItem.swift in Sources */,
|
||||
09F21563225C776100AEDF6D /* ChatListBadgeNode.swift in Sources */,
|
||||
D00817CB22B47A14008A895F /* WatchBridge.swift in Sources */,
|
||||
D0EC6D601EB9F58800EBF1C3 /* GridHoleItem.swift in Sources */,
|
||||
D0EC6D611EB9F58800EBF1C3 /* GridMessageSelectionNode.swift in Sources */,
|
||||
|
|
@ -4333,7 +4200,6 @@
|
|||
D0EC6D691EB9F58800EBF1C3 /* AuthorizationSequenceSplashController.swift in Sources */,
|
||||
09E4A805223D4A5A0038140F /* OpenSettings.swift in Sources */,
|
||||
D0EC6D6A1EB9F58800EBF1C3 /* AuthorizationSequenceSplashControllerNode.swift in Sources */,
|
||||
D0C683FC21AD797F00A6CAD5 /* ChatListSelection.swift in Sources */,
|
||||
D0EC6D6D1EB9F58800EBF1C3 /* AuthorizationSequencePhoneEntryController.swift in Sources */,
|
||||
D0EC6D6E1EB9F58800EBF1C3 /* AuthorizationSequencePhoneEntryControllerNode.swift in Sources */,
|
||||
D0B85C211FF70BEC00E795B4 /* AuthorizationSequenceAwaitingAccountResetControllerNode.swift in Sources */,
|
||||
|
|
@ -4349,15 +4215,9 @@
|
|||
091954792294754E00E11046 /* AnimatedStickerUtils.swift in Sources */,
|
||||
D0EC6D741EB9F58800EBF1C3 /* AuthorizationSequenceSignUpControllerNode.swift in Sources */,
|
||||
D0EC6D751EB9F58800EBF1C3 /* TelegramRootController.swift in Sources */,
|
||||
D0EC6D761EB9F58800EBF1C3 /* ChatListController.swift in Sources */,
|
||||
D0EC6D771EB9F58800EBF1C3 /* ChatListControllerNode.swift in Sources */,
|
||||
D0EC6D781EB9F58800EBF1C3 /* ChatListTitleView.swift in Sources */,
|
||||
D0F6800A1EE750EE000E5906 /* ChannelBannedMemberController.swift in Sources */,
|
||||
D0EC6D791EB9F58800EBF1C3 /* ChatListTitleLockView.swift in Sources */,
|
||||
D03AA4DF202DBF6F0056C405 /* ChatContextResultPeekContentNode.swift in Sources */,
|
||||
D00817D622B47A14008A895F /* TGProxyItem.m in Sources */,
|
||||
D0EC6D7A1EB9F58800EBF1C3 /* ChatListSearchContainerNode.swift in Sources */,
|
||||
D0EC6D7B1EB9F58800EBF1C3 /* ChatListRecentPeersListItem.swift in Sources */,
|
||||
0910B0ED21FA178C00F8F87D /* WallpaperPreviewMedia.swift in Sources */,
|
||||
D0EC6D7F1EB9F58800EBF1C3 /* HashtagSearchController.swift in Sources */,
|
||||
D0EC6D801EB9F58800EBF1C3 /* HashtagSearchControllerNode.swift in Sources */,
|
||||
|
|
@ -4410,7 +4270,6 @@
|
|||
09D304152173C0E900C00567 /* WatchManager.swift in Sources */,
|
||||
9F06830921A404AB001D8EDB /* NotificationExceptionControllerNode.swift in Sources */,
|
||||
D035734B22B5CCCA00F0920D /* LegacyBuffer.swift in Sources */,
|
||||
09D9689D221F74F000B1458A /* ChatTitleActivityNode.swift in Sources */,
|
||||
D0EC6D991EB9F58900EBF1C3 /* ChatMessageMediaBubbleContentNode.swift in Sources */,
|
||||
D0EC6D9A1EB9F58900EBF1C3 /* ChatMessageReplyInfoNode.swift in Sources */,
|
||||
D0FE4DE41F0AEBB900E8A0B3 /* SharedVideoContextManager.swift in Sources */,
|
||||
|
|
@ -4420,7 +4279,6 @@
|
|||
D0750C8222B2E4EE00BE5F6E /* SharedWakeupManager.swift in Sources */,
|
||||
D0EC6D9D1EB9F58900EBF1C3 /* ChatMessageTextBubbleContentNode.swift in Sources */,
|
||||
D00817DE22B47A14008A895F /* TGBridgeServer.m in Sources */,
|
||||
D0FBE84F2273395C00B33B52 /* ChatListArchiveInfoItem.swift in Sources */,
|
||||
09F664D021EBCFB900AB7E26 /* WallpaperCropNode.swift in Sources */,
|
||||
D0EC6D9E1EB9F58900EBF1C3 /* ChatMessageWebpageBubbleContentNode.swift in Sources */,
|
||||
D0750C8722B2E76300BE5F6E /* ShareExtensionContext.swift in Sources */,
|
||||
|
|
@ -4440,7 +4298,6 @@
|
|||
D0EC6DAB1EB9F58900EBF1C3 /* ChatInterfaceStateAccessoryPanels.swift in Sources */,
|
||||
D0EC6DAC1EB9F58900EBF1C3 /* ChatInterfaceStateInputPanels.swift in Sources */,
|
||||
D056CD761FF2A30900880D28 /* ChatSwipeToReplyRecognizer.swift in Sources */,
|
||||
D00580B321E4B51600CB7CD3 /* DeleteChatPeerActionSheetItem.swift in Sources */,
|
||||
D091C7A41F8EBB1E00D7DE13 /* ChatPresentationData.swift in Sources */,
|
||||
09A218F522A15F1400DE6898 /* ThemeSettingsAppIconItem.swift in Sources */,
|
||||
D0EC6DAD1EB9F58900EBF1C3 /* ChatInterfaceStateNavigationButtons.swift in Sources */,
|
||||
|
|
@ -4458,7 +4315,6 @@
|
|||
D0EC6DB51EB9F58900EBF1C3 /* ReplyAccessoryPanelNode.swift in Sources */,
|
||||
D0EC6DB61EB9F58900EBF1C3 /* ForwardAccessoryPanelNode.swift in Sources */,
|
||||
D0EC6DB71EB9F58900EBF1C3 /* EditAccessoryPanelNode.swift in Sources */,
|
||||
D06E4C312134910400088087 /* ChatListEmptyNode.swift in Sources */,
|
||||
D0EC6DB81EB9F58900EBF1C3 /* WebpagePreviewAccessoryPanelNode.swift in Sources */,
|
||||
D0EC6DB91EB9F58900EBF1C3 /* ChatInputNode.swift in Sources */,
|
||||
099529AC21CDBBB200805E13 /* QRCode.swift in Sources */,
|
||||
|
|
@ -4551,14 +4407,12 @@
|
|||
D0EC6DF91EB9F58900EBF1C3 /* PeerMediaCollectionInterfaceStateButtons.swift in Sources */,
|
||||
09F664C821EB4A2600AB7E26 /* ThemeGridSearchItem.swift in Sources */,
|
||||
09A218D9229EE1B600DE6898 /* HorizontalStickerGridItem.swift in Sources */,
|
||||
D07E413B208A432100FCA8F0 /* ChatListTitleProxyNode.swift in Sources */,
|
||||
09EC0DED22CB583C00E7185B /* TextLinkHandling.swift in Sources */,
|
||||
D08984F02114AE0C00918162 /* DataPrivacySettingsController.swift in Sources */,
|
||||
D0EC6DFB1EB9F58900EBF1C3 /* AvatarGalleryController.swift in Sources */,
|
||||
D00817DB22B47A14008A895F /* LegacyChatImport.swift in Sources */,
|
||||
09EDAD2C2211552F0012A50B /* AutodownloadMediaCategoryController.swift in Sources */,
|
||||
090B48C82200BCA8005083FA /* WallpaperUploadManager.swift in Sources */,
|
||||
09D968A5221F801A00B1458A /* ChatPlayingActivityContentNode.swift in Sources */,
|
||||
D0E8B8BB2044780600605593 /* ItemListSecretChatKeyItem.swift in Sources */,
|
||||
D06F31E62135A41C001A0F12 /* ThemeSettingsBrightnessItem.swift in Sources */,
|
||||
D01590BD22BDAEBC0017C33E /* DDSImage.cpp in Sources */,
|
||||
|
|
@ -4611,7 +4465,6 @@
|
|||
D0EC6E321EB9F58900EBF1C3 /* CreateGroupController.swift in Sources */,
|
||||
D0EC55A3210231D600D1992C /* SearchPeerMembers.swift in Sources */,
|
||||
D0EC6E331EB9F58900EBF1C3 /* CreateChannelController.swift in Sources */,
|
||||
D0AA29AE1F72770D00C050AC /* ChatListItemStrings.swift in Sources */,
|
||||
D0EC6E351EB9F58900EBF1C3 /* ItemListAvatarAndNameItem.swift in Sources */,
|
||||
D00ACA5A2022897D0045D427 /* ProcessedPeerRestrictionText.swift in Sources */,
|
||||
D04203152037162700490EA5 /* MediaInputPaneTrendingItem.swift in Sources */,
|
||||
|
|
@ -4730,7 +4583,6 @@
|
|||
09F664C221EAAFCB00AB7E26 /* ThemeColorsGridControllerNode.swift in Sources */,
|
||||
D0BCC3D420404CC7008126C2 /* ChatMessageActionSheetController.swift in Sources */,
|
||||
0957DE2322DE28FB001B4D57 /* ThemePreviewController.swift in Sources */,
|
||||
09D9689F221F760900B1458A /* ChatTitleActivityContentNode.swift in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
|
|
|
|||
22
submodules/TextSelectionNode/TextSelectionNode/Info.plist
Normal file
22
submodules/TextSelectionNode/TextSelectionNode/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,19 @@
|
|||
//
|
||||
// TextSelectionNode.h
|
||||
// TextSelectionNode
|
||||
//
|
||||
// Created by Peter on 8/13/19.
|
||||
// Copyright © 2019 Telegram Messenger LLP. All rights reserved.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
//! Project version number for TextSelectionNode.
|
||||
FOUNDATION_EXPORT double TextSelectionNodeVersionNumber;
|
||||
|
||||
//! Project version string for TextSelectionNode.
|
||||
FOUNDATION_EXPORT const unsigned char TextSelectionNodeVersionString[];
|
||||
|
||||
// In this header, you should import all the public headers of your framework using statements like #import <TextSelectionNode/PublicHeader.h>
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,520 @@
|
|||
// !$*UTF8*$!
|
||||
{
|
||||
archiveVersion = 1;
|
||||
classes = {
|
||||
};
|
||||
objectVersion = 50;
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
D0C9CBCC2302C00600FAB518 /* TextSelectionNode.h in Headers */ = {isa = PBXBuildFile; fileRef = D0C9CBCA2302C00600FAB518 /* TextSelectionNode.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
D0C9CBC72302C00600FAB518 /* TextSelectionNode.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = TextSelectionNode.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0C9CBCA2302C00600FAB518 /* TextSelectionNode.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TextSelectionNode.h; sourceTree = "<group>"; };
|
||||
D0C9CBCB2302C00600FAB518 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
D0C9CBC42302C00600FAB518 /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXFrameworksBuildPhase section */
|
||||
|
||||
/* Begin PBXGroup section */
|
||||
D0C9CBBD2302C00600FAB518 = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
D0C9CBC92302C00600FAB518 /* TextSelectionNode */,
|
||||
D0C9CBC82302C00600FAB518 /* Products */,
|
||||
);
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
D0C9CBC82302C00600FAB518 /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
D0C9CBC72302C00600FAB518 /* TextSelectionNode.framework */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
D0C9CBC92302C00600FAB518 /* TextSelectionNode */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
D0C9CBCA2302C00600FAB518 /* TextSelectionNode.h */,
|
||||
D0C9CBCB2302C00600FAB518 /* Info.plist */,
|
||||
);
|
||||
path = TextSelectionNode;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXGroup section */
|
||||
|
||||
/* Begin PBXHeadersBuildPhase section */
|
||||
D0C9CBC22302C00600FAB518 /* Headers */ = {
|
||||
isa = PBXHeadersBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
D0C9CBCC2302C00600FAB518 /* TextSelectionNode.h in Headers */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXHeadersBuildPhase section */
|
||||
|
||||
/* Begin PBXNativeTarget section */
|
||||
D0C9CBC62302C00600FAB518 /* TextSelectionNode */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = D0C9CBCF2302C00600FAB518 /* Build configuration list for PBXNativeTarget "TextSelectionNode" */;
|
||||
buildPhases = (
|
||||
D0C9CBC22302C00600FAB518 /* Headers */,
|
||||
D0C9CBC32302C00600FAB518 /* Sources */,
|
||||
D0C9CBC42302C00600FAB518 /* Frameworks */,
|
||||
D0C9CBC52302C00600FAB518 /* Resources */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
);
|
||||
name = TextSelectionNode;
|
||||
productName = TextSelectionNode;
|
||||
productReference = D0C9CBC72302C00600FAB518 /* TextSelectionNode.framework */;
|
||||
productType = "com.apple.product-type.framework";
|
||||
};
|
||||
/* End PBXNativeTarget section */
|
||||
|
||||
/* Begin PBXProject section */
|
||||
D0C9CBBE2302C00600FAB518 /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
DefaultBuildSystemTypeForWorkspace = Latest;
|
||||
LastUpgradeCheck = 1030;
|
||||
ORGANIZATIONNAME = "Telegram Messenger LLP";
|
||||
TargetAttributes = {
|
||||
D0C9CBC62302C00600FAB518 = {
|
||||
CreatedOnToolsVersion = 10.3;
|
||||
};
|
||||
};
|
||||
};
|
||||
buildConfigurationList = D0C9CBC12302C00600FAB518 /* Build configuration list for PBXProject "TextSelectionNode_Xcode" */;
|
||||
compatibilityVersion = "Xcode 9.3";
|
||||
developmentRegion = en;
|
||||
hasScannedForEncodings = 0;
|
||||
knownRegions = (
|
||||
en,
|
||||
);
|
||||
mainGroup = D0C9CBBD2302C00600FAB518;
|
||||
productRefGroup = D0C9CBC82302C00600FAB518 /* Products */;
|
||||
projectDirPath = "";
|
||||
projectRoot = "";
|
||||
targets = (
|
||||
D0C9CBC62302C00600FAB518 /* TextSelectionNode */,
|
||||
);
|
||||
};
|
||||
/* End PBXProject section */
|
||||
|
||||
/* Begin PBXResourcesBuildPhase section */
|
||||
D0C9CBC52302C00600FAB518 /* Resources */ = {
|
||||
isa = PBXResourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXResourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXSourcesBuildPhase section */
|
||||
D0C9CBC32302C00600FAB518 /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXSourcesBuildPhase section */
|
||||
|
||||
/* Begin XCBuildConfiguration section */
|
||||
D0C9CBCD2302C00600FAB518 /* 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;
|
||||
};
|
||||
D0C9CBCE2302C00600FAB518 /* 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;
|
||||
};
|
||||
D0C9CBD02302C00600FAB518 /* DebugAppStoreLLC */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
CODE_SIGN_IDENTITY = "";
|
||||
CODE_SIGN_STYLE = Manual;
|
||||
DEFINES_MODULE = YES;
|
||||
DEVELOPMENT_TEAM = "";
|
||||
DYLIB_COMPATIBILITY_VERSION = 1;
|
||||
DYLIB_CURRENT_VERSION = 1;
|
||||
DYLIB_INSTALL_NAME_BASE = "@rpath";
|
||||
INFOPLIST_FILE = Info.plist;
|
||||
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
|
||||
LD_RUNPATH_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
"@loader_path/Frameworks",
|
||||
);
|
||||
MACH_O_TYPE = staticlib;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = org.telegram.TextSelectionNode;
|
||||
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
|
||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||
SKIP_INSTALL = YES;
|
||||
SWIFT_VERSION = 5.0;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
};
|
||||
name = DebugAppStoreLLC;
|
||||
};
|
||||
D0C9CBD12302C00600FAB518 /* ReleaseAppStoreLLC */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
CODE_SIGN_IDENTITY = "";
|
||||
CODE_SIGN_STYLE = Manual;
|
||||
DEFINES_MODULE = YES;
|
||||
DEVELOPMENT_TEAM = "";
|
||||
DYLIB_COMPATIBILITY_VERSION = 1;
|
||||
DYLIB_CURRENT_VERSION = 1;
|
||||
DYLIB_INSTALL_NAME_BASE = "@rpath";
|
||||
INFOPLIST_FILE = Info.plist;
|
||||
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
|
||||
LD_RUNPATH_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
"@loader_path/Frameworks",
|
||||
);
|
||||
MACH_O_TYPE = staticlib;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = org.telegram.TextSelectionNode;
|
||||
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
|
||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||
SKIP_INSTALL = YES;
|
||||
SWIFT_VERSION = 5.0;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
};
|
||||
name = ReleaseAppStoreLLC;
|
||||
};
|
||||
D0C9CBD22302C06100FAB518 /* 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;
|
||||
};
|
||||
D0C9CBD32302C06100FAB518 /* DebugHockeyapp */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
CODE_SIGN_IDENTITY = "";
|
||||
CODE_SIGN_STYLE = Manual;
|
||||
DEFINES_MODULE = YES;
|
||||
DEVELOPMENT_TEAM = "";
|
||||
DYLIB_COMPATIBILITY_VERSION = 1;
|
||||
DYLIB_CURRENT_VERSION = 1;
|
||||
DYLIB_INSTALL_NAME_BASE = "@rpath";
|
||||
INFOPLIST_FILE = Info.plist;
|
||||
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
|
||||
LD_RUNPATH_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
"@loader_path/Frameworks",
|
||||
);
|
||||
MACH_O_TYPE = staticlib;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = org.telegram.TextSelectionNode;
|
||||
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
|
||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||
SKIP_INSTALL = YES;
|
||||
SWIFT_VERSION = 5.0;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
};
|
||||
name = DebugHockeyapp;
|
||||
};
|
||||
D0C9CBD42302C06E00FAB518 /* 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;
|
||||
};
|
||||
D0C9CBD52302C06E00FAB518 /* ReleaseHockeyappInternal */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
CODE_SIGN_IDENTITY = "";
|
||||
CODE_SIGN_STYLE = Manual;
|
||||
DEFINES_MODULE = YES;
|
||||
DEVELOPMENT_TEAM = "";
|
||||
DYLIB_COMPATIBILITY_VERSION = 1;
|
||||
DYLIB_CURRENT_VERSION = 1;
|
||||
DYLIB_INSTALL_NAME_BASE = "@rpath";
|
||||
INFOPLIST_FILE = Info.plist;
|
||||
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
|
||||
LD_RUNPATH_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
"@loader_path/Frameworks",
|
||||
);
|
||||
MACH_O_TYPE = staticlib;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = org.telegram.TextSelectionNode;
|
||||
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 */
|
||||
D0C9CBC12302C00600FAB518 /* Build configuration list for PBXProject "TextSelectionNode_Xcode" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
D0C9CBCD2302C00600FAB518 /* DebugAppStoreLLC */,
|
||||
D0C9CBD22302C06100FAB518 /* DebugHockeyapp */,
|
||||
D0C9CBCE2302C00600FAB518 /* ReleaseAppStoreLLC */,
|
||||
D0C9CBD42302C06E00FAB518 /* ReleaseHockeyappInternal */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = ReleaseAppStoreLLC;
|
||||
};
|
||||
D0C9CBCF2302C00600FAB518 /* Build configuration list for PBXNativeTarget "TextSelectionNode" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
D0C9CBD02302C00600FAB518 /* DebugAppStoreLLC */,
|
||||
D0C9CBD32302C06100FAB518 /* DebugHockeyapp */,
|
||||
D0C9CBD12302C00600FAB518 /* ReleaseAppStoreLLC */,
|
||||
D0C9CBD52302C06E00FAB518 /* ReleaseHockeyappInternal */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = ReleaseAppStoreLLC;
|
||||
};
|
||||
/* End XCConfigurationList section */
|
||||
};
|
||||
rootObject = D0C9CBBE2302C00600FAB518 /* Project object */;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue