From f1d1754aa58d0d8bb95fac5a2b2981cd77e8f949 Mon Sep 17 00:00:00 2001 From: Peter <> Date: Fri, 30 Aug 2019 23:32:32 +0400 Subject: [PATCH] Temp --- App/App.xcodeproj/project.pbxproj | 2124 ++++++++++------- .../xcshareddata/xcschemes/App.xcscheme | 2 +- App/App.xcworkspace/buck-project.meta.json | 1 - App/App.xcworkspace/contents.xcworkspacedata | 1 - App/BUCK | 29 +- App/Info.plist | 336 ++- App/Info_bak.plist | 52 + .../buck-project.meta.json | 1 + .../contents.xcworkspacedata | 1 + .../xcshareddata/IDEWorkspaceChecks.plist | 0 .../xcshareddata/WorkspaceSettings.xcsettings | 0 .../xcschemes/Telegram_Buck.xcscheme} | 74 +- BUCK | 49 + Config/app_configuration.bzl | 29 +- Config/buck_rule_macros.bzl | 27 +- Config/configs.bzl | 5 + Makefile | 27 +- Telegram-iOS.xcodeproj/project.pbxproj | 422 +++- .../contents.xcworkspacedata | 5 +- .../AppIcon.appiconset/Contents.json | 0 .../AppIcon.appiconset/icon@1024px.png | Bin .../AppIcon.appiconset/icon@120px.png | Bin .../AppIcon.appiconset/icon@152px.png | Bin .../AppIcon.appiconset/icon@167px.png | Bin .../AppIcon.appiconset/icon@180px.png | Bin .../AppIcon.appiconset/icon@76px.png | Bin .../AppIconLLC.appiconset/BlueIcon@2x-1.png | Bin .../AppIconLLC.appiconset/BlueIcon@2x.png | Bin .../AppIconLLC.appiconset/BlueIcon@3x.png | Bin .../AppIconLLC.appiconset/BlueIconIpad.png | Bin .../AppIconLLC.appiconset/BlueIconIpad@2x.png | Bin .../BlueIconLargeIpad@2x.png | Bin .../BlueNotificationIcon.png | Bin .../BlueNotificationIcon@2x-1.png | Bin .../BlueNotificationIcon@2x.png | Bin .../BlueNotificationIcon@3x.png | Bin .../AppIconLLC.appiconset/Contents.json | 0 .../Simple-iTunesArtwork.png | Bin .../AppIconLLC.appiconset/Simple@29x29.png | Bin .../AppIconLLC.appiconset/Simple@40x40-1.png | Bin .../AppIconLLC.appiconset/Simple@58x58-1.png | Bin .../AppIconLLC.appiconset/Simple@58x58.png | Bin .../AppIconLLC.appiconset/Simple@80x80-1.png | Bin .../AppIconLLC.appiconset/Simple@80x80.png | Bin .../AppIconLLC.appiconset/Simple@87x87.png | Bin .../Contents.json | 0 .../Shortcuts/Contents.json | 0 .../SavedMessages.imageset/Contents.json | 0 .../SavedMessagesIcon@2x.png | Bin .../SavedMessagesIcon@3x.png | Bin .../NavigationBackArrowLight@2x.png | Bin .../Resources}/NavigationShadow@2x.png | Bin Telegram-iOS/Resources/PhoneCountries.txt | 232 -- .../Resources/SFCompactRounded-Semibold.otf | Bin 193812 -> 0 bytes check_env.sh | 6 + log.txt | 0 package_app.sh | 18 +- .../AccountContext.xcodeproj/project.pbxproj | 20 + .../AnimationUI.xcodeproj/project.pbxproj | 20 - .../project.pbxproj | 8 +- submodules/AnimationUI/BUCK | 1 + .../AnimationUI/Sources/AnimationNode.swift | 7 +- .../AnimationUI/Sources/FrameworkBundle.swift | 6 - .../AppBundle.xcodeproj/project.pbxproj | 343 +++ .../xcshareddata/xcschemes/AppBundle.xcscheme | 1 + .../AppBundle_Xcode.xcodeproj/project.pbxproj | 528 ++++ submodules/AppBundle/BUCK | 21 + submodules/AppBundle/Info.plist | 22 + submodules/AppBundle/Sources/AppBundle.h | 16 + submodules/AppBundle/Sources/AppBundle.m | 19 + .../AvatarNode.xcodeproj/project.pbxproj | 20 - .../project.pbxproj | 8 +- submodules/AvatarNode/BUCK | 1 + .../AvatarNode/Sources/AvatarNode.swift | 1 + .../AvatarNode/Sources/FrameworkBundle.swift | 13 - submodules/BotPaymentsUI/BUCK | 1 + .../BotPaymentsUI.xcodeproj/project.pbxproj | 20 - .../project.pbxproj | 8 +- .../BotCheckoutPaymentMethodSheet.swift | 1 + .../Sources/FrameworkBundle.swift | 13 - submodules/BuildConfig/BUCK | 17 +- .../CallListUI.xcodeproj/project.pbxproj | 20 - .../project.pbxproj | 4 - .../Sources/CallListController.swift | 1 + .../CallListUI/Sources/FrameworkBundle.swift | 13 - submodules/ChatListUI/BUCK | 1 + .../ChatListUI.xcodeproj/project.pbxproj | 20 - .../project.pbxproj | 8 +- .../Sources/ChatListController.swift | 1 + .../Sources/ChatListTitleProxyNode.swift | 1 + .../ChatListUI/Sources/FrameworkBundle.swift | 13 - .../Node/ChatListArchiveInfoItem.swift | 1 + submodules/ContactListUI/BUCK | 1 + .../ContactListUI.xcodeproj/project.pbxproj | 20 - .../project.pbxproj | 8 +- .../Sources/ContactAddItem.swift | 1 + .../Sources/ContactListNode.swift | 1 + .../Sources/ContactsController.swift | 1 + .../Sources/ContactsControllerNode.swift | 1 + .../Sources/FrameworkBundle.swift | 13 - .../InviteContactsControllerNode.swift | 1 + .../ContextUI.xcodeproj/project.pbxproj | 110 + submodules/CountrySelectionUI/BUCK | 1 + .../project.pbxproj | 20 - .../project.pbxproj | 8 +- ...onSequenceCountrySelectionController.swift | 3 +- ...quenceCountrySelectionControllerNode.swift | 3 +- .../Sources/FrameworkBundle.swift | 13 - submodules/Display/BUCK | 1 + .../Display/NavigationBackButtonNode.swift | 3 +- .../NavigationTransitionCoordinator.swift | 3 +- .../Display_Xcode.xcodeproj/project.pbxproj | 8 - submodules/Emoji/Sources/EmojiUtils.swift | 1 - submodules/GalleryUI/BUCK | 1 + .../GalleryUI.xcodeproj/project.pbxproj | 20 - .../GalleryUI_Xcode.xcodeproj/project.pbxproj | 8 +- .../ChatItemGalleryFooterContentNode.swift | 1 + .../GalleryUI/Sources/FrameworkBundle.swift | 14 - .../Items/ChatAnimationGalleryItem.swift | 1 + .../Items/UniversalVideoGalleryItem.swift | 1 + .../SecretMediaPreviewController.swift | 1 + submodules/InstantPageUI/BUCK | 1 + .../InstantPageUI.xcodeproj/project.pbxproj | 20 - .../project.pbxproj | 8 +- .../Sources/FrameworkBundle.swift | 13 - .../InstantPageGalleryFooterContentNode.swift | 1 + .../Sources/InstantPageImageNode.swift | 1 + .../Sources/InstantPageNavigationBar.swift | 1 + .../InstantPagePeerReferenceNode.swift | 1 + ...InstantPageSettingsBacklightItemNode.swift | 2 +- .../InstantPageSettingsFontSizeItemNode.swift | 2 +- .../Sources/InstantPageSettingsNode.swift | 1 + submodules/ItemListAddressItem/BUCK | 1 + .../project.pbxproj | 20 - .../project.pbxproj | 8 +- .../Sources/FrameworkBundle.swift | 13 - .../Sources/ItemListAddressItem.swift | 1 + submodules/ItemListAvatarAndNameInfoItem/BUCK | 1 + .../project.pbxproj | 20 - .../project.pbxproj | 8 +- .../Sources/FrameworkBundle.swift | 13 - .../Sources/ItemListAvatarAndNameItem.swift | 1 + submodules/LegacyComponents/BUCK | 3 +- .../LegacyComponentsInternal.m | 10 +- .../project.pbxproj | 4 + .../project.pbxproj | 20 + submodules/LiveLocationPositionNode/BUCK | 1 + .../project.pbxproj | 20 - .../project.pbxproj | 8 +- .../ChatMessageLiveLocationPositionNode.swift | 1 + .../Sources/FrameworkBundle.swift | 13 - submodules/LocationUI/BUCK | 1 + .../LocationUI.xcodeproj/project.pbxproj | 20 - .../project.pbxproj | 8 +- .../LocationUI/Sources/FrameworkBundle.swift | 13 - .../Sources/LegacyLocationController.swift | 1 + .../Sources/LegacyLocationPicker.swift | 1 + submodules/MessageReactionListUI/BUCK | 13 +- .../project.pbxproj | 1015 ++++++++ .../xcschemes/MessageReactionListUI.xcscheme | 1 + submodules/OpenInExternalAppUI/BUCK | 1 + .../project.pbxproj | 20 - .../project.pbxproj | 8 +- .../Sources/FrameworkBundle.swift | 13 - .../Sources/OpenInActionSheetController.swift | 1 + submodules/PasscodeUI/BUCK | 1 + .../PasscodeUI.xcodeproj/project.pbxproj | 20 - .../project.pbxproj | 8 +- .../PasscodeUI/Sources/FrameworkBundle.swift | 13 - .../Sources/PasscodeEntryControllerNode.swift | 1 + submodules/PassportUI/BUCK | 1 + .../PassportUI.xcodeproj/project.pbxproj | 20 - .../project.pbxproj | 8 +- .../PassportUI/Sources/FrameworkBundle.swift | 13 - .../Sources/SecureIdAuthAcceptNode.swift | 1 + .../Sources/SecureIdAuthHeaderNode.swift | 1 + ...ecureIdAuthPasswordOptionContentNode.swift | 1 + ...SecureIdAuthPasswordSetupContentNode.swift | 1 + .../SecureIdDocumentFormControllerNode.swift | 1 + ...reIdDocumentGalleryFooterContentNode.swift | 1 + submodules/PeerAvatarGalleryUI/BUCK | 1 + .../project.pbxproj | 20 - .../project.pbxproj | 8 +- .../AvatarGalleryItemFooterContentNode.swift | 1 + .../Sources/FrameworkBundle.swift | 13 - submodules/PeerInfoUI/BUCK | 1 + .../PeerInfoUI.xcodeproj/project.pbxproj | 42 +- .../project.pbxproj | 8 +- ...hannelDiscussionGroupSetupHeaderItem.swift | 1 + .../PeerInfoUI/Sources/FrameworkBundle.swift | 13 - .../Sources/GroupInfoController.swift | 1 + .../Sources/GroupStickerPackCurrentItem.swift | 1 + .../Sources/UserInfoEditingPhoneItem.swift | 1 + submodules/PeersNearbyUI/BUCK | 1 + .../PeersNearbyUI.xcodeproj/project.pbxproj | 20 - .../project.pbxproj | 8 +- .../Sources/FrameworkBundle.swift | 13 - .../Sources/PeersNearbyController.swift | 1 + submodules/PhotoResources/BUCK | 1 + .../PhotoResources.xcodeproj/project.pbxproj | 20 - .../project.pbxproj | 8 +- .../Sources/FrameworkBundle.swift | 13 - .../Sources/PhotoResources.swift | 1 + submodules/RLottie/BUCK | 2 +- .../RLottie/RLottie.xcodeproj/project.pbxproj | 22 - .../project.pbxproj | 42 + .../Sources/ReactionSelectionNode.swift | 3 +- submodules/SearchBarNode/BUCK | 1 + .../SearchBarNode.xcodeproj/project.pbxproj | 20 - .../project.pbxproj | 8 +- .../Sources/FrameworkBundle.swift | 13 - .../SearchBarNode/Sources/SearchBarNode.swift | 1 + .../Sources/SearchBarPlaceholderNode.swift | 1 + submodules/SettingsUI/BUCK | 1 + .../SettingsUI.xcodeproj/project.pbxproj | 95 +- .../project.pbxproj | 8 +- .../ChangePhoneNumberIntroController.swift | 1 + .../SettingsUI/Sources/FrameworkBundle.swift | 13 - .../PrivacyAndSecurityController.swift | 1 + .../PrivacyIntroController.swift | 1 + .../RecentSessionsEmptyStateItem.swift | 1 + .../Sources/SettingsController.swift | 1 + .../Themes/ThemeGridSelectionPanelNode.swift | 1 + .../Themes/ThemePreviewController.swift | 1 + .../Themes/ThemeSettingsBrightnessItem.swift | 1 + .../Themes/ThemeSettingsFontSizeItem.swift | 1 + .../Themes/ThemeSettingsThemeItem.swift | 1 + .../Sources/Themes/WallpaperGalleryItem.swift | 1 + submodules/ShareController/BUCK | 1 + .../ShareController.xcodeproj/project.pbxproj | 20 - .../project.pbxproj | 8 +- .../Sources/FrameworkBundle.swift | 13 - .../Sources/ShareInputFieldNode.swift | 1 + .../Sources/SharePeersContainerNode.swift | 1 + .../Sources/ShareSearchBarNode.swift | 1 + submodules/TelegramCallsUI/BUCK | 1 + .../Sources/CallController.swift | 1 + .../Sources/CallControllerButton.swift | 1 + .../Sources/CallKitIntegration.swift | 3 +- .../Sources/CallRatingController.swift | 1 + .../Sources/CallSuggestTabController.swift | 1 + .../Sources/FrameworkBundle.swift | 13 - .../TelegramCallsUI.xcodeproj/project.pbxproj | 20 - .../project.pbxproj | 8 +- submodules/TelegramPermissionsUI/BUCK | 1 + .../Sources/FrameworkBundle.swift | 13 - .../Sources/PermissionControllerNode.swift | 1 + .../project.pbxproj | 20 - .../project.pbxproj | 8 +- submodules/TelegramPresentationData/BUCK | 1 + .../ChatControllerBackgroundNode.swift | 3 +- .../Sources/FrameworkSpecific.swift | 13 - .../Sources/PresentationData.swift | 3 +- .../Sources/PresentationStrings.swift | 3 +- .../PresentationThemeEssentialGraphics.swift | 1 + .../PresentationResourcesCallList.swift | 1 + .../Resources/PresentationResourcesChat.swift | 1 + .../PresentationResourcesChatList.swift | 1 + .../PresentationResourcesItemList.swift | 1 + .../PresentationResourcesRootController.swift | 1 + .../PresentationResourcesSettings.swift | 1 + .../project.pbxproj | 54 +- .../project.pbxproj | 8 +- submodules/TelegramStringFormatting/BUCK | 1 + .../Sources/CurrencyFormat.swift | 3 +- .../Sources/FrameworkBundle.swift | 6 - .../project.pbxproj | 20 - .../project.pbxproj | 8 +- submodules/TelegramUI/BUCK | 19 + .../ChatContextResultPeekContentNode.swift | 1 + .../TelegramUI/ChatController.swift | 3 +- .../TelegramUI/TelegramUI/ChatEmptyNode.swift | 1 + .../ChatInterfaceStateContextMenus.swift | 1 + .../ChatMessageBubbleItemNode.swift | 3 +- .../ChatMessageCallBubbleContentNode.swift | 1 + .../ChatMessageInteractiveMediaBadge.swift | 1 + .../ChatMessageSelectionInputPanelNode.swift | 1 + .../ChatMessageSwipeToReplyNode.swift | 1 + .../ChatRecordingPreviewInputPanelNode.swift | 1 + ...SendMessageActionSheetControllerNode.swift | 1 + ...TextInputAudioRecordingOverlayButton.swift | 1 + ...ChatTextInputSlowmodePlaceholderNode.swift | 1 + .../TelegramUI/ComposeController.swift | 1 + .../TelegramUI/ComposeControllerNode.swift | 1 + .../TelegramUI/Config/TelegramUI.xcconfig | 2 - .../TelegramUI/EmojiResources.swift | 3 +- .../TelegramUI/FrameworkBundle.swift | 14 - .../TelegramUI/GifPaneSearchContentNode.swift | 1 + .../LegacyInstantVideoController.swift | 1 + .../OverlayInstantVideoDecoration.swift | 1 + .../OverlayPlayerControlsNode.swift | 1 + .../TelegramUI/PaneSearchBarNode.swift | 1 + .../PaneSearchBarPlaceholderItem.swift | 1 + .../PeerMediaCollectionEmptyNode.swift | 1 + .../TelegramUI/ServiceSoundManager.swift | 3 +- .../StickerPaneSearchContentNode.swift | 1 + .../TelegramUI/TelegramRootController.swift | 1 + .../project.pbxproj | 398 +-- submodules/TelegramUniversalVideoContent/BUCK | 1 + .../Sources/FrameworkBundle.swift | 13 - .../Sources/GenericEmbedImplementation.swift | 3 +- .../Sources/OverlayVideoDecoration.swift | 1 + .../PictureInPictureVideoControlsNode.swift | 1 + .../Sources/VimeoEmbedImplementation.swift | 3 +- .../Sources/YoutubeEmbedImplementation.swift | 3 +- .../project.pbxproj | 20 - .../project.pbxproj | 8 +- .../project.pbxproj | 132 + submodules/UndoUI/BUCK | 1 + .../UndoUI/Sources/FrameworkBundle.swift | 13 - .../Sources/UndoOverlayControllerNode.swift | 1 + .../UndoUI/UndoUI.xcodeproj/project.pbxproj | 20 - .../UndoUI_Xcode.xcodeproj/project.pbxproj | 8 +- submodules/WallpaperResources/BUCK | 1 + .../Sources/FrameworkBundle.swift | 13 - .../Sources/WallpaperResources.swift | 5 +- .../project.pbxproj | 36 +- .../project.pbxproj | 8 +- submodules/WebSearchUI/BUCK | 1 + .../WebSearchUI/Sources/FrameworkBundle.swift | 13 - .../Sources/WebSearchControllerNode.swift | 1 + .../WebSearchUI.xcodeproj/project.pbxproj | 20 - .../project.pbxproj | 8 +- submodules/libtgvoip/BUCK | 29 +- submodules/libtgvoip/libtgvoip.h | 6 + .../libtgvoip_Xcode.xcodeproj/project.pbxproj | 4 + 326 files changed, 4981 insertions(+), 2895 deletions(-) delete mode 100644 App/App.xcworkspace/buck-project.meta.json delete mode 100644 App/App.xcworkspace/contents.xcworkspacedata create mode 100644 App/Info_bak.plist create mode 100644 App/Telegram_Buck.xcworkspace/buck-project.meta.json create mode 100644 App/Telegram_Buck.xcworkspace/contents.xcworkspacedata rename App/{App.xcworkspace => Telegram_Buck.xcworkspace}/xcshareddata/IDEWorkspaceChecks.plist (100%) rename App/{App.xcworkspace => Telegram_Buck.xcworkspace}/xcshareddata/WorkspaceSettings.xcsettings (100%) rename App/{App.xcworkspace/xcshareddata/xcschemes/App.xcscheme => Telegram_Buck.xcworkspace/xcshareddata/xcschemes/Telegram_Buck.xcscheme} (98%) create mode 100644 BUCK rename Telegram-iOS/{Images.xcassets => Icons.xcassets}/AppIcon.appiconset/Contents.json (100%) rename Telegram-iOS/{Images.xcassets => Icons.xcassets}/AppIcon.appiconset/icon@1024px.png (100%) rename Telegram-iOS/{Images.xcassets => Icons.xcassets}/AppIcon.appiconset/icon@120px.png (100%) rename Telegram-iOS/{Images.xcassets => Icons.xcassets}/AppIcon.appiconset/icon@152px.png (100%) rename Telegram-iOS/{Images.xcassets => Icons.xcassets}/AppIcon.appiconset/icon@167px.png (100%) rename Telegram-iOS/{Images.xcassets => Icons.xcassets}/AppIcon.appiconset/icon@180px.png (100%) rename Telegram-iOS/{Images.xcassets => Icons.xcassets}/AppIcon.appiconset/icon@76px.png (100%) rename Telegram-iOS/{Images.xcassets => Icons.xcassets}/AppIconLLC.appiconset/BlueIcon@2x-1.png (100%) rename Telegram-iOS/{Images.xcassets => Icons.xcassets}/AppIconLLC.appiconset/BlueIcon@2x.png (100%) rename Telegram-iOS/{Images.xcassets => Icons.xcassets}/AppIconLLC.appiconset/BlueIcon@3x.png (100%) rename Telegram-iOS/{Images.xcassets => Icons.xcassets}/AppIconLLC.appiconset/BlueIconIpad.png (100%) rename Telegram-iOS/{Images.xcassets => Icons.xcassets}/AppIconLLC.appiconset/BlueIconIpad@2x.png (100%) rename Telegram-iOS/{Images.xcassets => Icons.xcassets}/AppIconLLC.appiconset/BlueIconLargeIpad@2x.png (100%) rename Telegram-iOS/{Images.xcassets => Icons.xcassets}/AppIconLLC.appiconset/BlueNotificationIcon.png (100%) rename Telegram-iOS/{Images.xcassets => Icons.xcassets}/AppIconLLC.appiconset/BlueNotificationIcon@2x-1.png (100%) rename Telegram-iOS/{Images.xcassets => Icons.xcassets}/AppIconLLC.appiconset/BlueNotificationIcon@2x.png (100%) rename Telegram-iOS/{Images.xcassets => Icons.xcassets}/AppIconLLC.appiconset/BlueNotificationIcon@3x.png (100%) rename Telegram-iOS/{Images.xcassets => Icons.xcassets}/AppIconLLC.appiconset/Contents.json (100%) rename Telegram-iOS/{Images.xcassets => Icons.xcassets}/AppIconLLC.appiconset/Simple-iTunesArtwork.png (100%) rename Telegram-iOS/{Images.xcassets => Icons.xcassets}/AppIconLLC.appiconset/Simple@29x29.png (100%) rename Telegram-iOS/{Images.xcassets => Icons.xcassets}/AppIconLLC.appiconset/Simple@40x40-1.png (100%) rename Telegram-iOS/{Images.xcassets => Icons.xcassets}/AppIconLLC.appiconset/Simple@58x58-1.png (100%) rename Telegram-iOS/{Images.xcassets => Icons.xcassets}/AppIconLLC.appiconset/Simple@58x58.png (100%) rename Telegram-iOS/{Images.xcassets => Icons.xcassets}/AppIconLLC.appiconset/Simple@80x80-1.png (100%) rename Telegram-iOS/{Images.xcassets => Icons.xcassets}/AppIconLLC.appiconset/Simple@80x80.png (100%) rename Telegram-iOS/{Images.xcassets => Icons.xcassets}/AppIconLLC.appiconset/Simple@87x87.png (100%) rename Telegram-iOS/{Images.xcassets => Icons.xcassets}/Contents.json (100%) rename Telegram-iOS/{Images.xcassets => Icons.xcassets}/Shortcuts/Contents.json (100%) rename Telegram-iOS/{Images.xcassets => Icons.xcassets}/Shortcuts/SavedMessages.imageset/Contents.json (100%) rename Telegram-iOS/{Images.xcassets => Icons.xcassets}/Shortcuts/SavedMessages.imageset/SavedMessagesIcon@2x.png (100%) rename Telegram-iOS/{Images.xcassets => Icons.xcassets}/Shortcuts/SavedMessages.imageset/SavedMessagesIcon@3x.png (100%) rename {submodules/Display/Display => Telegram-iOS/Resources}/NavigationBackArrowLight@2x.png (100%) rename {submodules/Display/Display => Telegram-iOS/Resources}/NavigationShadow@2x.png (100%) delete mode 100644 Telegram-iOS/Resources/PhoneCountries.txt delete mode 100644 Telegram-iOS/Resources/SFCompactRounded-Semibold.otf create mode 100644 check_env.sh delete mode 100644 log.txt delete mode 100644 submodules/AnimationUI/Sources/FrameworkBundle.swift create mode 100644 submodules/AppBundle/AppBundle.xcodeproj/project.pbxproj create mode 100644 submodules/AppBundle/AppBundle.xcodeproj/xcshareddata/xcschemes/AppBundle.xcscheme create mode 100644 submodules/AppBundle/AppBundle_Xcode.xcodeproj/project.pbxproj create mode 100644 submodules/AppBundle/BUCK create mode 100644 submodules/AppBundle/Info.plist create mode 100644 submodules/AppBundle/Sources/AppBundle.h create mode 100644 submodules/AppBundle/Sources/AppBundle.m delete mode 100644 submodules/AvatarNode/Sources/FrameworkBundle.swift delete mode 100644 submodules/BotPaymentsUI/Sources/FrameworkBundle.swift delete mode 100644 submodules/CallListUI/Sources/FrameworkBundle.swift delete mode 100644 submodules/ChatListUI/Sources/FrameworkBundle.swift delete mode 100644 submodules/ContactListUI/Sources/FrameworkBundle.swift delete mode 100644 submodules/CountrySelectionUI/Sources/FrameworkBundle.swift delete mode 100644 submodules/GalleryUI/Sources/FrameworkBundle.swift delete mode 100644 submodules/InstantPageUI/Sources/FrameworkBundle.swift delete mode 100644 submodules/ItemListAddressItem/Sources/FrameworkBundle.swift delete mode 100644 submodules/ItemListAvatarAndNameInfoItem/Sources/FrameworkBundle.swift delete mode 100644 submodules/LiveLocationPositionNode/Sources/FrameworkBundle.swift delete mode 100644 submodules/LocationUI/Sources/FrameworkBundle.swift create mode 100644 submodules/MessageReactionListUI/MessageReactionListUI.xcodeproj/project.pbxproj create mode 100644 submodules/MessageReactionListUI/MessageReactionListUI.xcodeproj/xcshareddata/xcschemes/MessageReactionListUI.xcscheme delete mode 100644 submodules/OpenInExternalAppUI/Sources/FrameworkBundle.swift delete mode 100644 submodules/PasscodeUI/Sources/FrameworkBundle.swift delete mode 100644 submodules/PassportUI/Sources/FrameworkBundle.swift delete mode 100644 submodules/PeerAvatarGalleryUI/Sources/FrameworkBundle.swift delete mode 100644 submodules/PeerInfoUI/Sources/FrameworkBundle.swift delete mode 100644 submodules/PeersNearbyUI/Sources/FrameworkBundle.swift delete mode 100644 submodules/PhotoResources/Sources/FrameworkBundle.swift delete mode 100644 submodules/SearchBarNode/Sources/FrameworkBundle.swift delete mode 100644 submodules/SettingsUI/Sources/FrameworkBundle.swift delete mode 100644 submodules/ShareController/Sources/FrameworkBundle.swift delete mode 100644 submodules/TelegramCallsUI/Sources/FrameworkBundle.swift delete mode 100644 submodules/TelegramPermissionsUI/Sources/FrameworkBundle.swift delete mode 100644 submodules/TelegramPresentationData/Sources/FrameworkSpecific.swift delete mode 100644 submodules/TelegramStringFormatting/Sources/FrameworkBundle.swift delete mode 100644 submodules/TelegramUI/TelegramUI/Config/TelegramUI.xcconfig delete mode 100644 submodules/TelegramUI/TelegramUI/FrameworkBundle.swift delete mode 100644 submodules/TelegramUniversalVideoContent/Sources/FrameworkBundle.swift delete mode 100644 submodules/UndoUI/Sources/FrameworkBundle.swift delete mode 100644 submodules/WallpaperResources/Sources/FrameworkBundle.swift delete mode 100644 submodules/WebSearchUI/Sources/FrameworkBundle.swift create mode 100644 submodules/libtgvoip/libtgvoip.h diff --git a/App/App.xcodeproj/project.pbxproj b/App/App.xcodeproj/project.pbxproj index 0083e5a12f..f4adb2c57c 100644 --- a/App/App.xcodeproj/project.pbxproj +++ b/App/App.xcodeproj/project.pbxproj @@ -1,883 +1,1241 @@ - - - - - archiveVersion - 1 - classes - - - objectVersion - 46 - objects - - 1DD70E29001F47FB00000000 - - isa - PBXFileReference - name - BUCK - path - BUCK - sourceTree - SOURCE_ROOT - explicitFileType - text.script.python - - 1DD70E296ABF6A1200000000 - - isa - PBXFileReference - name - Empty.swift - path - SupportFiles/Empty.swift - sourceTree - SOURCE_ROOT - - 1DD70E2906C06BEE00000000 - - isa - PBXFileReference - name - Info.plist - path - Info.plist - sourceTree - ]]> - explicitFileType - text.plist - - B401C979EAB5339800000000 - - isa - PBXGroup - name - Sources - sourceTree - ]]> - children - - 1DD70E296ABF6A1200000000 - 1DD70E2906C06BEE00000000 - - - B401C9790001020100000000 - - isa - PBXGroup - name - App - sourceTree - ]]> - children - - 1DD70E29001F47FB00000000 - B401C979EAB5339800000000 - - - 1DD70E29001F47FB00000001 - - isa - PBXFileReference - name - BUCK - path - BUCK - sourceTree - SOURCE_ROOT - explicitFileType - text.script.python - - 1DD70E29988E33D500000000 - - isa - PBXFileReference - name - Application.swift - path - Sources/Application.swift - sourceTree - SOURCE_ROOT - - 1DD70E29BF88817800000000 - - isa - PBXFileReference - name - main.m - path - Sources/main.m - sourceTree - SOURCE_ROOT - lastKnownFileType - sourcecode.c.objc - - B401C979EAB5339800000001 - - isa - PBXGroup - name - Sources - sourceTree - ]]> - children - - 1DD70E29988E33D500000000 - 1DD70E29BF88817800000000 - - - B401C979C43AA77A00000000 - - isa - PBXGroup - name - AppLibrary - sourceTree - ]]> - children - - 1DD70E29001F47FB00000001 - B401C979EAB5339800000001 - - - 1DD70E29898E549400000000 - - isa - PBXFileReference - name - App-Debug.xcconfig - path - ../buck-out/gen/App/App-Debug.xcconfig - sourceTree - SOURCE_ROOT - explicitFileType - text.xcconfig - - 1DD70E29446E16FE00000000 - - isa - PBXFileReference - name - App-Profile.xcconfig - path - ../buck-out/gen/App/App-Profile.xcconfig - sourceTree - SOURCE_ROOT - explicitFileType - text.xcconfig - - 1DD70E29B804C26000000000 - - isa - PBXFileReference - name - App-Release.xcconfig - path - ../buck-out/gen/App/App-Release.xcconfig - sourceTree - SOURCE_ROOT - explicitFileType - text.xcconfig - - 1DD70E294E27EDFB00000000 - - isa - PBXFileReference - name - AppLibrary-Debug.xcconfig - path - ../buck-out/gen/App/AppLibrary-Debug.xcconfig - sourceTree - SOURCE_ROOT - explicitFileType - text.xcconfig - - 1DD70E294906F2A500000000 - - isa - PBXFileReference - name - AppLibrary-Profile.xcconfig - path - ../buck-out/gen/App/AppLibrary-Profile.xcconfig - sourceTree - SOURCE_ROOT - explicitFileType - text.xcconfig - - 1DD70E29BC9D9E0700000000 - - isa - PBXFileReference - name - AppLibrary-Release.xcconfig - path - ../buck-out/gen/App/AppLibrary-Release.xcconfig - sourceTree - SOURCE_ROOT - explicitFileType - text.xcconfig - - B401C9792F7F325000000000 - - isa - PBXGroup - name - Buck (Do Not Modify) - sourceTree - ]]> - children - - 1DD70E29898E549400000000 - 1DD70E29446E16FE00000000 - 1DD70E29B804C26000000000 - 1DD70E294E27EDFB00000000 - 1DD70E294906F2A500000000 - 1DD70E29BC9D9E0700000000 - - - B401C979B781F65D00000000 - - isa - PBXGroup - name - Configurations - sourceTree - ]]> - children - - B401C9792F7F325000000000 - - - 1DD70E297ADFB9F200000000 - - isa - PBXFileReference - name - libAppLibrary.a - path - libAppLibrary.a - sourceTree - BUILT_PRODUCTS_DIR - explicitFileType - archive.ar - - 1DD70E296A98D72D00000000 - - isa - PBXFileReference - name - libAsyncDisplayKit.dylib - path - libAsyncDisplayKit.dylib - sourceTree - BUILT_PRODUCTS_DIR - explicitFileType - compiled.mach-o.dylib - - 1DD70E29FF334B1F00000000 - - isa - PBXFileReference - name - libDisplay.dylib - path - libDisplay.dylib - sourceTree - BUILT_PRODUCTS_DIR - explicitFileType - compiled.mach-o.dylib - - 1DD70E29B22505DC00000000 - - isa - PBXFileReference - name - libMtProtoKit.dylib - path - libMtProtoKit.dylib - sourceTree - BUILT_PRODUCTS_DIR - explicitFileType - compiled.mach-o.dylib - - 1DD70E29DB6520C800000000 - - isa - PBXFileReference - name - libPostbox.dylib - path - libPostbox.dylib - sourceTree - BUILT_PRODUCTS_DIR - explicitFileType - compiled.mach-o.dylib - - 1DD70E29D65BA68200000000 - - isa - PBXFileReference - name - libSwiftSignalKit.dylib - path - libSwiftSignalKit.dylib - sourceTree - BUILT_PRODUCTS_DIR - explicitFileType - compiled.mach-o.dylib - - 1DD70E29119CDA0700000000 - - isa - PBXFileReference - name - libTelegramCore.dylib - path - libTelegramCore.dylib - sourceTree - BUILT_PRODUCTS_DIR - explicitFileType - compiled.mach-o.dylib - - 1DD70E291E5A1E9C00000000 - - isa - PBXFileReference - name - libTelegramUI.dylib - path - libTelegramUI.dylib - sourceTree - BUILT_PRODUCTS_DIR - explicitFileType - compiled.mach-o.dylib - - B401C97968022A5500000000 - - isa - PBXGroup - name - Frameworks - sourceTree - ]]> - children - - 1DD70E297ADFB9F200000000 - 1DD70E296A98D72D00000000 - 1DD70E29FF334B1F00000000 - 1DD70E29B22505DC00000000 - 1DD70E29DB6520C800000000 - 1DD70E29D65BA68200000000 - 1DD70E29119CDA0700000000 - 1DD70E291E5A1E9C00000000 - - - 1DD70E2933D47CB400000000 - - isa - PBXFileReference - name - App.app - path - App.app - sourceTree - BUILT_PRODUCTS_DIR - explicitFileType - wrapper.application - - 1DD70E297ADFB9F200000001 - - isa - PBXFileReference - name - libAppLibrary.a - path - libAppLibrary.a - sourceTree - BUILT_PRODUCTS_DIR - explicitFileType - archive.ar - - B401C979C806358400000000 - - isa - PBXGroup - name - Products - sourceTree - ]]> - children - - 1DD70E2933D47CB400000000 - 1DD70E297ADFB9F200000001 - - - B401C979EFB6AC4600000000 - - isa - PBXGroup - name - mainGroup - sourceTree - ]]> - children - - B401C9790001020100000000 - B401C979C43AA77A00000000 - B401C979B781F65D00000000 - B401C97968022A5500000000 - B401C979C806358400000000 - - - E7A30F046ABF6A1200000000 - - isa - PBXBuildFile - fileRef - 1DD70E296ABF6A1200000000 - - 1870857F0000000000000000 - - isa - PBXSourcesBuildPhase - files - - E7A30F046ABF6A1200000000 - - - E7A30F047ADFB9F200000000 - - isa - PBXBuildFile - fileRef - 1DD70E297ADFB9F200000000 - - E7A30F046A98D72D00000000 - - isa - PBXBuildFile - fileRef - 1DD70E296A98D72D00000000 - - E7A30F04FF334B1F00000000 - - isa - PBXBuildFile - fileRef - 1DD70E29FF334B1F00000000 - - E7A30F04B22505DC00000000 - - isa - PBXBuildFile - fileRef - 1DD70E29B22505DC00000000 - - E7A30F04DB6520C800000000 - - isa - PBXBuildFile - fileRef - 1DD70E29DB6520C800000000 - - E7A30F04D65BA68200000000 - - isa - PBXBuildFile - fileRef - 1DD70E29D65BA68200000000 - - E7A30F04119CDA0700000000 - - isa - PBXBuildFile - fileRef - 1DD70E29119CDA0700000000 - - E7A30F041E5A1E9C00000000 - - isa - PBXBuildFile - fileRef - 1DD70E291E5A1E9C00000000 - - 4F426D880000000000000000 - - isa - PBXFrameworksBuildPhase - files - - E7A30F047ADFB9F200000000 - E7A30F046A98D72D00000000 - E7A30F04FF334B1F00000000 - E7A30F04B22505DC00000000 - E7A30F04DB6520C800000000 - E7A30F04D65BA68200000000 - E7A30F04119CDA0700000000 - E7A30F041E5A1E9C00000000 - - - E7A30F046A98D72D00000001 - - isa - PBXBuildFile - fileRef - 1DD70E296A98D72D00000000 - - E7A30F04FF334B1F00000001 - - isa - PBXBuildFile - fileRef - 1DD70E29FF334B1F00000000 - - E7A30F04B22505DC00000001 - - isa - PBXBuildFile - fileRef - 1DD70E29B22505DC00000000 - - E7A30F04DB6520C800000001 - - isa - PBXBuildFile - fileRef - 1DD70E29DB6520C800000000 - - E7A30F04D65BA68200000001 - - isa - PBXBuildFile - fileRef - 1DD70E29D65BA68200000000 - - E7A30F04119CDA0700000001 - - isa - PBXBuildFile - fileRef - 1DD70E29119CDA0700000000 - - E7A30F041E5A1E9C00000001 - - isa - PBXBuildFile - fileRef - 1DD70E291E5A1E9C00000000 - - FAF5FAC90000000000000000 - - isa - PBXCopyFilesBuildPhase - files - - E7A30F046A98D72D00000001 - E7A30F04FF334B1F00000001 - E7A30F04B22505DC00000001 - E7A30F04DB6520C800000001 - E7A30F04D65BA68200000001 - E7A30F04119CDA0700000001 - E7A30F041E5A1E9C00000001 - - dstSubfolderSpec - 10 - dstPath - - - 4952437303EDA63300000000 - - isa - XCBuildConfiguration - name - Debug - buildSettings - - - baseConfigurationReference - 1DD70E29898E549400000000 - - 4952437350C7218900000000 - - isa - XCBuildConfiguration - name - Profile - buildSettings - - - baseConfigurationReference - 1DD70E29446E16FE00000000 - - 49524373A439BFE700000000 - - isa - XCBuildConfiguration - name - Release - buildSettings - - - baseConfigurationReference - 1DD70E29B804C26000000000 - - 218C37090000000000000000 - - isa - XCConfigurationList - buildConfigurations - - 4952437303EDA63300000000 - 4952437350C7218900000000 - 49524373A439BFE700000000 - - defaultConfigurationIsVisible - - - E66DC04E0001020100000000 - - isa - PBXNativeTarget - name - App - productName - App - productReference - 1DD70E2933D47CB400000000 - productType - com.apple.product-type.application - dependencies - - - buildPhases - - 1870857F0000000000000000 - 4F426D880000000000000000 - FAF5FAC90000000000000000 - - buildConfigurationList - 218C37090000000000000000 - - E7A30F04988E33D500000000 - - isa - PBXBuildFile - fileRef - 1DD70E29988E33D500000000 - - E7A30F04BF88817800000000 - - isa - PBXBuildFile - fileRef - 1DD70E29BF88817800000000 - - 1870857F0000000000000001 - - isa - PBXSourcesBuildPhase - files - - E7A30F04988E33D500000000 - E7A30F04BF88817800000000 - - - E7A30F04FF334B1F00000002 - - isa - PBXBuildFile - fileRef - 1DD70E29FF334B1F00000000 - - E7A30F04DB6520C800000002 - - isa - PBXBuildFile - fileRef - 1DD70E29DB6520C800000000 - - E7A30F04D65BA68200000002 - - isa - PBXBuildFile - fileRef - 1DD70E29D65BA68200000000 - - E7A30F04119CDA0700000002 - - isa - PBXBuildFile - fileRef - 1DD70E29119CDA0700000000 - - E7A30F041E5A1E9C00000002 - - isa - PBXBuildFile - fileRef - 1DD70E291E5A1E9C00000000 - - FAF5FAC90000000000000001 - - isa - PBXCopyFilesBuildPhase - files - - E7A30F04FF334B1F00000002 - E7A30F04DB6520C800000002 - E7A30F04D65BA68200000002 - E7A30F04119CDA0700000002 - E7A30F041E5A1E9C00000002 - - name - Fake Swift Dependencies (Copy Files Phase) - runOnlyForDeploymentPostprocessing - 1 - dstSubfolderSpec - 16 - dstPath - - - 4952437303EDA63300000001 - - isa - XCBuildConfiguration - name - Debug - buildSettings - - - baseConfigurationReference - 1DD70E294E27EDFB00000000 - - 4952437350C7218900000001 - - isa - XCBuildConfiguration - name - Profile - buildSettings - - - baseConfigurationReference - 1DD70E294906F2A500000000 - - 49524373A439BFE700000001 - - isa - XCBuildConfiguration - name - Release - buildSettings - - - baseConfigurationReference - 1DD70E29BC9D9E0700000000 - - 218C37090000000000000001 - - isa - XCConfigurationList - buildConfigurations - - 4952437303EDA63300000001 - 4952437350C7218900000001 - 49524373A439BFE700000001 - - defaultConfigurationIsVisible - - - E66DC04EC43AA77A00000000 - - isa - PBXNativeTarget - name - AppLibrary - productName - AppLibrary - productReference - 1DD70E297ADFB9F200000001 - productType - com.apple.product-type.library.static - dependencies - - - buildPhases - - 1870857F0000000000000001 - FAF5FAC90000000000000001 - - buildConfigurationList - 218C37090000000000000001 - - 4952437303EDA63300000002 - - isa - XCBuildConfiguration - name - Debug - buildSettings - - - - 4952437350C7218900000002 - - isa - XCBuildConfiguration - name - Profile - buildSettings - - - - 49524373A439BFE700000002 - - isa - XCBuildConfiguration - name - Release - buildSettings - - - - 218C37090000000000000002 - - isa - XCConfigurationList - buildConfigurations - - 4952437303EDA63300000002 - 4952437350C7218900000002 - 49524373A439BFE700000002 - - defaultConfigurationIsVisible - - - 96C847930001020100000000 - - isa - PBXProject - mainGroup - B401C979EFB6AC4600000000 - targets - - E66DC04E0001020100000000 - E66DC04EC43AA77A00000000 - - buildConfigurationList - 218C37090000000000000002 - compatibilityVersion - Xcode 3.2 - attributes - - LastUpgradeCheck - 9999 - - - - rootObject - 96C847930001020100000000 - - \ No newline at end of file +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + E7A30F0400ACCBB200000000 /* stp_card_jcb_template@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E2900ACCBB200000000 /* stp_card_jcb_template@2x.png */; }; + E7A30F0400BF759200000000 /* anim_read.json in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E2900BF759200000000 /* anim_read.json */; }; + E7A30F040261A45100000000 /* stp_card_jcb_template@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E290261A45100000000 /* stp_card_jcb_template@3x.png */; }; + E7A30F0402BAF11C00000000 /* 0.m4a in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E2902BAF11C00000000 /* 0.m4a */; }; + E7A30F0402C9089D00000000 /* 1.m4a in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E2902C9089D00000000 /* 1.m4a */; }; + E7A30F0402D7201E00000000 /* 2.m4a in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E2902D7201E00000000 /* 2.m4a */; }; + E7A30F0402E5379F00000000 /* 3.m4a in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E2902E5379F00000000 /* 3.m4a */; }; + E7A30F0402F34F2000000000 /* 4.m4a in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E2902F34F2000000000 /* 4.m4a */; }; + E7A30F04030166A100000000 /* 5.m4a in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E29030166A100000000 /* 5.m4a */; }; + E7A30F04030F7E2200000000 /* 6.m4a in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E29030F7E2200000000 /* 6.m4a */; }; + E7A30F04031D95A300000000 /* 7.m4a in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E29031D95A300000000 /* 7.m4a */; }; + E7A30F04032BAD2400000000 /* 8.m4a in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E29032BAD2400000000 /* 8.m4a */; }; + E7A30F040339C4A500000000 /* 9.m4a in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E290339C4A500000000 /* 9.m4a */; }; + E7A30F04038EEE9000000000 /* BlueClassicIcon@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E29038EEE9000000000 /* BlueClassicIcon@2x.png */; }; + E7A30F04039E80E800000000 /* BlackClassicIconLargeIpad@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E29039E80E800000000 /* BlackClassicIconLargeIpad@2x.png */; }; + E7A30F040543C72F00000000 /* BlueClassicIcon@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E290543C72F00000000 /* BlueClassicIcon@3x.png */; }; + E7A30F0405F13DFA00000000 /* BlueFilledIconIpad.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E2905F13DFA00000000 /* BlueFilledIconIpad.png */; }; + E7A30F04061BC94A00000000 /* GenericUserScript.js in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E29061BC94A00000000 /* GenericUserScript.js */; }; + E7A30F040933E8F400000000 /* stp_card_form_front@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E290933E8F400000000 /* stp_card_form_front@2x.png */; }; + E7A30F040AE8C19300000000 /* stp_card_form_front@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E290AE8C19300000000 /* stp_card_form_front@3x.png */; }; + E7A30F040BE206B800000000 /* heart.tgs in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E290BE206B800000000 /* heart.tgs */; }; + E7A30F041040865A00000000 /* PhotoEditorCaption@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E291040865A00000000 /* PhotoEditorCaption@2x.png */; }; + E7A30F04119CDA0700000000 /* libTelegramCore.dylib in Fake Swift Dependencies (Copy Files Phase) */ = {isa = PBXBuildFile; fileRef = 1DD70E29119CDA0700000000 /* libTelegramCore.dylib */; }; + E7A30F04119CDA0700000001 /* libTelegramCore.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 1DD70E29119CDA0700000000 /* libTelegramCore.dylib */; }; + E7A30F04119CDA0700000002 /* libTelegramCore.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = 1DD70E29119CDA0700000000 /* libTelegramCore.dylib */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; }; + E7A30F0411F55EF900000000 /* PhotoEditorCaption@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E2911F55EF900000000 /* PhotoEditorCaption@3x.png */; }; + E7A30F041292048700000000 /* Instagram.html in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E291292048700000000 /* Instagram.html */; }; + E7A30F041493803B00000000 /* lol.tgs in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E291493803B00000000 /* lol.tgs */; }; + E7A30F041572F3F900000000 /* stp_card_mastercard_template@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E291572F3F900000000 /* stp_card_mastercard_template@2x.png */; }; + E7A30F0415A3422A00000000 /* thumbsup.tgs in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E2915A3422A00000000 /* thumbsup.tgs */; }; + E7A30F041727CC9800000000 /* stp_card_mastercard_template@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E291727CC9800000000 /* stp_card_mastercard_template@3x.png */; }; + E7A30F0417567CC800000000 /* powerful_infinity_white@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E2917567CC800000000 /* powerful_infinity_white@2x.png */; }; + E7A30F041882772900000000 /* PhotoEditorMute@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E291882772900000000 /* PhotoEditorMute@2x.png */; }; + E7A30F0418FC359D00000000 /* BlackFilledIconIpad@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E2918FC359D00000000 /* BlackFilledIconIpad@2x.png */; }; + E7A30F04193BD71700000000 /* stp_card_jcb@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E29193BD71700000000 /* stp_card_jcb@2x.png */; }; + E7A30F041AF0AFB600000000 /* stp_card_jcb@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E291AF0AFB600000000 /* stp_card_jcb@3x.png */; }; + E7A30F041BA19CD900000000 /* BlueNotificationIcon.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E291BA19CD900000000 /* BlueNotificationIcon.png */; }; + E7A30F041E5A1E9C00000000 /* libTelegramUI.dylib in Fake Swift Dependencies (Copy Files Phase) */ = {isa = PBXBuildFile; fileRef = 1DD70E291E5A1E9C00000000 /* libTelegramUI.dylib */; }; + E7A30F041E5A1E9C00000001 /* libTelegramUI.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 1DD70E291E5A1E9C00000000 /* libTelegramUI.dylib */; }; + E7A30F041E5A1E9C00000002 /* libTelegramUI.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = 1DD70E291E5A1E9C00000000 /* libTelegramUI.dylib */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; }; + E7A30F041FC4F2F000000000 /* stp_card_mastercard@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E291FC4F2F000000000 /* stp_card_mastercard@2x.png */; }; + E7A30F042179CB8F00000000 /* stp_card_mastercard@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E292179CB8F00000000 /* stp_card_mastercard@3x.png */; }; + E7A30F04225D12D700000000 /* private_door@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E29225D12D700000000 /* private_door@2x.png */; }; + E7A30F0423B3C2EF00000000 /* ic_pencil@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E2923B3C2EF00000000 /* ic_pencil@2x.png */; }; + E7A30F042602319200000000 /* poop.tgs in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E292602319200000000 /* poop.tgs */; }; + E7A30F0428A3C00D00000000 /* NavigationShadow@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E2928A3C00D00000000 /* NavigationShadow@2x.png */; }; + E7A30F042925AEA200000000 /* Icons.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E292925AEA200000000 /* Icons.xcassets */; }; + E7A30F042D05879B00000000 /* anim_unarchive.json in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E292D05879B00000000 /* anim_unarchive.json */; }; + E7A30F042DEB974300000000 /* PhotoEditorMuteActive@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E292DEB974300000000 /* PhotoEditorMuteActive@2x.png */; }; + E7A30F042DF18A2400000000 /* BlueIconIpad@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E292DF18A2400000000 /* BlueIconIpad@2x.png */; }; + E7A30F042E63F3BE00000000 /* BlackNotificationIcon.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E292E63F3BE00000000 /* BlackNotificationIcon.png */; }; + E7A30F043453BAB500000000 /* BlackClassicIcon@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E293453BAB500000000 /* BlackClassicIcon@2x.png */; }; + E7A30F043549D4C400000000 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E293549D4C400000000 /* Images.xcassets */; }; + E7A30F043608935400000000 /* BlackClassicIcon@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E293608935400000000 /* BlackClassicIcon@3x.png */; }; + E7A30F0436B60A1F00000000 /* BlackFilledIconIpad.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E2936B60A1F00000000 /* BlackFilledIconIpad.png */; }; + E7A30F043830E74200000000 /* meh.tgs in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E293830E74200000000 /* meh.tgs */; }; + E7A30F043AA15AF800000000 /* BlueIconIpad.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E293AA15AF800000000 /* BlueIconIpad.png */; }; + E7A30F043C169B2E00000000 /* powerful_mask@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E293C169B2E00000000 /* powerful_mask@2x.png */; }; + E7A30F043C514E0100000000 /* begin_record.caf in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E293C514E0100000000 /* begin_record.caf */; }; + E7A30F043E51265C00000000 /* cry.tgs in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E293E51265C00000000 /* cry.tgs */; }; + E7A30F043F61D17900000000 /* MessageSent.caf in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E293F61D17900000000 /* MessageSent.caf */; }; + E7A30F0440197DFD00000000 /* VimeoUserScript.js in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E2940197DFD00000000 /* VimeoUserScript.js */; }; + E7A30F04406BEF2900000000 /* anim_archiveAvatar.json in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E29406BEF2900000000 /* anim_archiveAvatar.json */; }; + E7A30F04443B21A300000000 /* stp_card_amex@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E29443B21A300000000 /* stp_card_amex@2x.png */; }; + E7A30F04453E9D0800000000 /* powerful_star@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E29453E9D0800000000 /* powerful_star@2x.png */; }; + E7A30F0445EFFA4200000000 /* stp_card_amex@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E2945EFFA4200000000 /* stp_card_amex@3x.png */; }; + E7A30F0445FD987A00000000 /* smile.tgs in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E2945FD987A00000000 /* smile.tgs */; }; + E7A30F0448ED794E00000000 /* telegram_plane1@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E2948ED794E00000000 /* telegram_plane1@2x.png */; }; + E7A30F044D77B07700000000 /* anim_infotip.json in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E294D77B07700000000 /* anim_infotip.json */; }; + E7A30F044D95CA7700000000 /* stp_card_form_applepay@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E294D95CA7700000000 /* stp_card_form_applepay@2x.png */; }; + E7A30F044F4AA31600000000 /* stp_card_form_applepay@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E294F4AA31600000000 /* stp_card_form_applepay@3x.png */; }; + E7A30F04501FCBD600000000 /* telegram_sphere@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E29501FCBD600000000 /* telegram_sphere@2x.png */; }; + E7A30F0451A94A6400000000 /* start_arrow_ipad@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E2951A94A6400000000 /* start_arrow_ipad@2x.png */; }; + E7A30F045283D1B900000000 /* celebrate.tgs in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E295283D1B900000000 /* celebrate.tgs */; }; + E7A30F0456813D8800000000 /* PhoneCountries.txt in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E2956813D8800000000 /* PhoneCountries.txt */; }; + E7A30F0457CD649600000000 /* voip_end.caf in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E2957CD649600000000 /* voip_end.caf */; }; + E7A30F045AFA9C2600000000 /* BlueClassicIconIpad@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E295AFA9C2600000000 /* BlueClassicIconIpad@2x.png */; }; + E7A30F045B2A553100000000 /* BlueFilledIconLargeIpad@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E295B2A553100000000 /* BlueFilledIconLargeIpad@2x.png */; }; + E7A30F045B60B39500000000 /* start_arrow@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E295B60B39500000000 /* start_arrow@2x.png */; }; + E7A30F045D05708E00000000 /* TwitchUserScript.js in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E295D05708E00000000 /* TwitchUserScript.js */; }; + E7A30F045FFC844500000000 /* notification.caf in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E295FFC844500000000 /* notification.caf */; }; + E7A30F046587237E00000000 /* YoutubeUserScript.js in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E296587237E00000000 /* YoutubeUserScript.js */; }; + E7A30F0465E934B700000000 /* voip_fail.caf in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E2965E934B700000000 /* voip_fail.caf */; }; + E7A30F0466DD7C1700000000 /* BlueClassicNotificationIcon.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E2966DD7C1700000000 /* BlueClassicNotificationIcon.png */; }; + E7A30F0467C217F600000000 /* anim_unmute.json in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E2967C217F600000000 /* anim_unmute.json */; }; + E7A30F0468FBAA6A00000000 /* LegacyComponentsResources.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E2968FBAA6A00000000 /* LegacyComponentsResources.bundle */; }; + E7A30F046A98D72D00000000 /* libAsyncDisplayKit.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 1DD70E296A98D72D00000000 /* libAsyncDisplayKit.dylib */; }; + E7A30F046A98D72D00000001 /* libAsyncDisplayKit.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = 1DD70E296A98D72D00000000 /* libAsyncDisplayKit.dylib */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; }; + E7A30F046ABF6A1200000000 /* Empty.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1DD70E296ABF6A1200000000 /* Empty.swift */; }; + E7A30F046AD832AE00000000 /* ic_cam_lens@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E296AD832AE00000000 /* ic_cam_lens@2x.png */; }; + E7A30F046C599FD900000000 /* NavigationBackArrowLight@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E296C599FD900000000 /* NavigationBackArrowLight@2x.png */; }; + E7A30F046E8A8A4800000000 /* sad.tgs in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E296E8A8A4800000000 /* sad.tgs */; }; + E7A30F046F409B3900000000 /* voip_connecting.mp3 in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E296F409B3900000000 /* voip_connecting.mp3 */; }; + E7A30F04705B110100000000 /* stp_card_visa@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E29705B110100000000 /* stp_card_visa@2x.png */; }; + E7A30F04720FE9A000000000 /* stp_card_visa@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E29720FE9A000000000 /* stp_card_visa@3x.png */; }; + E7A30F04748244C600000000 /* Twitch.html in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E29748244C600000000 /* Twitch.html */; }; + E7A30F0474B4E65D00000000 /* 100.m4a in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E2974B4E65D00000000 /* 100.m4a */; }; + E7A30F0474C2FDDE00000000 /* 101.m4a in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E2974C2FDDE00000000 /* 101.m4a */; }; + E7A30F0474D1155F00000000 /* 102.m4a in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E2974D1155F00000000 /* 102.m4a */; }; + E7A30F0474DF2CE000000000 /* 103.m4a in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E2974DF2CE000000000 /* 103.m4a */; }; + E7A30F0474ED446100000000 /* 104.m4a in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E2974ED446100000000 /* 104.m4a */; }; + E7A30F0474FB5BE200000000 /* 105.m4a in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E2974FB5BE200000000 /* 105.m4a */; }; + E7A30F047509736300000000 /* 106.m4a in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E297509736300000000 /* 106.m4a */; }; + E7A30F0475178AE400000000 /* 107.m4a in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E2975178AE400000000 /* 107.m4a */; }; + E7A30F047525A26500000000 /* 108.m4a in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E297525A26500000000 /* 108.m4a */; }; + E7A30F047533B9E600000000 /* 109.m4a in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E297533B9E600000000 /* 109.m4a */; }; + E7A30F0475FF5D6600000000 /* anim_hide.json in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E2975FF5D6600000000 /* anim_hide.json */; }; + E7A30F047669BEFC00000000 /* 110.m4a in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E297669BEFC00000000 /* 110.m4a */; }; + E7A30F047677D67D00000000 /* 111.m4a in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E297677D67D00000000 /* 111.m4a */; }; + E7A30F0477E4942F00000000 /* BlueIconLargeIpad@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E2977E4942F00000000 /* BlueIconLargeIpad@2x.png */; }; + E7A30F047809716A00000000 /* ChatWallpaperBuiltin0.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E297809716A00000000 /* ChatWallpaperBuiltin0.jpg */; }; + E7A30F04793765CC00000000 /* ic_smile_eye@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E29793765CC00000000 /* ic_smile_eye@2x.png */; }; + E7A30F04799DE7B600000000 /* Youtube.html in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E29799DE7B600000000 /* Youtube.html */; }; + E7A30F047ADFB9F200000000 /* libAppLibrary.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 1DD70E297ADFB9F200000000 /* libAppLibrary.a */; }; + E7A30F047E472C5600000000 /* BlackFilledIconLargeIpad@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E297E472C5600000000 /* BlackFilledIconLargeIpad@2x.png */; }; + E7A30F0485169C9700000000 /* ic_cam@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E2985169C9700000000 /* ic_cam@2x.png */; }; + E7A30F04853D725600000000 /* SFCompactRounded-Semibold.otf in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E29853D725600000000 /* SFCompactRounded-Semibold.otf */; }; + E7A30F04884756EF00000000 /* anim_mute.json in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E29884756EF00000000 /* anim_mute.json */; }; + E7A30F0488BEEF0900000000 /* BlackIcon@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E2988BEEF0900000000 /* BlackIcon@2x.png */; }; + E7A30F048A46FE9000000000 /* ic_bubble@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E298A46FE9000000000 /* ic_bubble@2x.png */; }; + E7A30F048A73C7A800000000 /* BlackIcon@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E298A73C7A800000000 /* BlackIcon@3x.png */; }; + E7A30F048AA6EB1400000000 /* BlackIconLargeIpad@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E298AA6EB1400000000 /* BlackIconLargeIpad@2x.png */; }; + E7A30F048CC42D1400000000 /* stp_card_applepay@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E298CC42D1400000000 /* stp_card_applepay@2x.png */; }; + E7A30F048DB231DC00000000 /* stp_card_placeholder_template@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E298DB231DC00000000 /* stp_card_placeholder_template@2x.png */; }; + E7A30F048E7905B300000000 /* stp_card_applepay@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E298E7905B300000000 /* stp_card_applepay@3x.png */; }; + E7A30F048E96E34200000000 /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E298E96E34200000000 /* LaunchScreen.xib */; }; + E7A30F048F670A7B00000000 /* stp_card_placeholder_template@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E298F670A7B00000000 /* stp_card_placeholder_template@3x.png */; }; + E7A30F0494DA3D4400000000 /* stp_card_diners_template@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E2994DA3D4400000000 /* stp_card_diners_template@2x.png */; }; + E7A30F04968F15E300000000 /* stp_card_diners_template@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E29968F15E300000000 /* stp_card_diners_template@3x.png */; }; + E7A30F04976A9EA600000000 /* stp_card_amex_template@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E29976A9EA600000000 /* stp_card_amex_template@2x.png */; }; + E7A30F04988E33D500000000 /* Application.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1DD70E29988E33D500000000 /* Application.swift */; }; + E7A30F04991F774500000000 /* stp_card_amex_template@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E29991F774500000000 /* stp_card_amex_template@3x.png */; }; + E7A30F0499319B4600000000 /* ic_bubble_dot@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E2999319B4600000000 /* ic_bubble_dot@2x.png */; }; + E7A30F049F00BA0200000000 /* anim_archive.json in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E299F00BA0200000000 /* anim_archive.json */; }; + E7A30F049F5C287E00000000 /* stp_card_form_back@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E299F5C287E00000000 /* stp_card_form_back@2x.png */; }; + E7A30F04A0160D3000000000 /* stp_card_discover_template@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E29A0160D3000000000 /* stp_card_discover_template@2x.png */; }; + E7A30F04A111011D00000000 /* stp_card_form_back@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E29A111011D00000000 /* stp_card_form_back@3x.png */; }; + E7A30F04A1CAE5CF00000000 /* stp_card_discover_template@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E29A1CAE5CF00000000 /* stp_card_discover_template@3x.png */; }; + E7A30F04A28B5AB000000000 /* anim_archiveswipe.json in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E29A28B5AB000000000 /* anim_archiveswipe.json */; }; + E7A30F04A4169AE300000000 /* AppIcons.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E29A4169AE300000000 /* AppIcons.xcassets */; }; + E7A30F04A75B899200000000 /* BlackClassicNotificationIcon.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E29A75B899200000000 /* BlackClassicNotificationIcon.png */; }; + E7A30F04A86C10B100000000 /* BlackClassicIconIpad.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E29A86C10B100000000 /* BlackClassicIconIpad.png */; }; + E7A30F04A9DA63C800000000 /* fast_arrow_shadow@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E29A9DA63C800000000 /* fast_arrow_shadow@2x.png */; }; + E7A30F04ABD35C0F00000000 /* anim_pin.json in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E29ABD35C0F00000000 /* anim_pin.json */; }; + E7A30F04B22505DC00000000 /* libMtProtoKit.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 1DD70E29B22505DC00000000 /* libMtProtoKit.dylib */; }; + E7A30F04B22505DC00000001 /* libMtProtoKit.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = 1DD70E29B22505DC00000000 /* libMtProtoKit.dylib */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; }; + E7A30F04B308DE2800000000 /* anim_unpin.json in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E29B308DE2800000000 /* anim_unpin.json */; }; + E7A30F04B3538C4D00000000 /* fast_spiral@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E29B3538C4D00000000 /* fast_spiral@2x.png */; }; + E7A30F04B3A6F94500000000 /* stp_card_diners@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E29B3A6F94500000000 /* stp_card_diners@2x.png */; }; + E7A30F04B55BD1E400000000 /* stp_card_diners@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E29B55BD1E400000000 /* stp_card_diners@3x.png */; }; + E7A30F04B78460EB00000000 /* poker.tgs in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E29B78460EB00000000 /* poker.tgs */; }; + E7A30F04B9D1C16900000000 /* private_screw@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E29B9D1C16900000000 /* private_screw@2x.png */; }; + E7A30F04BA96313500000000 /* Vimeo.html in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E29BA96313500000000 /* Vimeo.html */; }; + E7A30F04BAE267F200000000 /* powerful_infinity@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E29BAE267F200000000 /* powerful_infinity@2x.png */; }; + E7A30F04BE69B5E500000000 /* anim_group.json in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E29BE69B5E500000000 /* anim_group.json */; }; + E7A30F04BF5CBB6200000000 /* knot_up1@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E29BF5CBB6200000000 /* knot_up1@2x.png */; }; + E7A30F04BF88817800000000 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 1DD70E29BF88817800000000 /* main.m */; }; + E7A30F04C097583600000000 /* BlueClassicIconIpad.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E29C097583600000000 /* BlueClassicIconIpad.png */; }; + E7A30F04C320736D00000000 /* BlueClassicIconLargeIpad@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E29C320736D00000000 /* BlueClassicIconLargeIpad@2x.png */; }; + E7A30F04C364694E00000000 /* ok.tgs in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E29C364694E00000000 /* ok.tgs */; }; + E7A30F04C3C271B400000000 /* stp_card_cvc_amex@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E29C3C271B400000000 /* stp_card_cvc_amex@2x.png */; }; + E7A30F04C54DDB8700000000 /* BlackFilledIcon@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E29C54DDB8700000000 /* BlackFilledIcon@2x.png */; }; + E7A30F04C5774A5300000000 /* stp_card_cvc_amex@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E29C5774A5300000000 /* stp_card_cvc_amex@3x.png */; }; + E7A30F04C682CDCB00000000 /* BlackClassicIconIpad@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E29C682CDCB00000000 /* BlackClassicIconIpad@2x.png */; }; + E7A30F04C702B42600000000 /* BlackFilledIcon@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E29C702B42600000000 /* BlackFilledIcon@3x.png */; }; + E7A30F04C78B98B000000000 /* voip_ringback.caf in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E29C78B98B000000000 /* voip_ringback.caf */; }; + E7A30F04CAE3F0A300000000 /* BlueNotificationIcon@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E29CAE3F0A300000000 /* BlueNotificationIcon@2x.png */; }; + E7A30F04CC98C94200000000 /* BlueNotificationIcon@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E29CC98C94200000000 /* BlueNotificationIcon@3x.png */; }; + E7A30F04CE4715BE00000000 /* anim_ungroup.json in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E29CE4715BE00000000 /* anim_ungroup.json */; }; + E7A30F04CED3B81F00000000 /* BlackIconIpad@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E29CED3B81F00000000 /* BlackIconIpad@2x.png */; }; + E7A30F04CFF88DE800000000 /* ic_videocam@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E29CFF88DE800000000 /* ic_videocam@2x.png */; }; + E7A30F04D061F39E00000000 /* BlackNotificationIcon@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E29D061F39E00000000 /* BlackNotificationIcon@2x.png */; }; + E7A30F04D216CC3D00000000 /* BlackNotificationIcon@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E29D216CC3D00000000 /* BlackNotificationIcon@3x.png */; }; + E7A30F04D373AFE200000000 /* BlueFilledIconIpad@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E29D373AFE200000000 /* BlueFilledIconIpad@2x.png */; }; + E7A30F04D42F293000000000 /* stp_card_cvc@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E29D42F293000000000 /* stp_card_cvc@2x.png */; }; + E7A30F04D43F404C00000000 /* BlueFilledIcon@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E29D43F404C00000000 /* BlueFilledIcon@2x.png */; }; + E7A30F04D548E25500000000 /* stp_card_applepay_template@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E29D548E25500000000 /* stp_card_applepay_template@2x.png */; }; + E7A30F04D5E401CF00000000 /* stp_card_cvc@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E29D5E401CF00000000 /* stp_card_cvc@3x.png */; }; + E7A30F04D5F418EB00000000 /* BlueFilledIcon@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E29D5F418EB00000000 /* BlueFilledIcon@3x.png */; }; + E7A30F04D64F57BC00000000 /* fast_body@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E29D64F57BC00000000 /* fast_body@2x.png */; }; + E7A30F04D65BA68200000000 /* libSwiftSignalKit.dylib in Fake Swift Dependencies (Copy Files Phase) */ = {isa = PBXBuildFile; fileRef = 1DD70E29D65BA68200000000 /* libSwiftSignalKit.dylib */; }; + E7A30F04D65BA68200000001 /* libSwiftSignalKit.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 1DD70E29D65BA68200000000 /* libSwiftSignalKit.dylib */; }; + E7A30F04D65BA68200000002 /* libSwiftSignalKit.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = 1DD70E29D65BA68200000000 /* libSwiftSignalKit.dylib */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; }; + E7A30F04D6FDBAF400000000 /* stp_card_applepay_template@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E29D6FDBAF400000000 /* stp_card_applepay_template@3x.png */; }; + E7A30F04D743E0A500000000 /* BlueClassicNotificationIcon@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E29D743E0A500000000 /* BlueClassicNotificationIcon@2x.png */; }; + E7A30F04D8F8B94400000000 /* BlueClassicNotificationIcon@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E29D8F8B94400000000 /* BlueClassicNotificationIcon@3x.png */; }; + E7A30F04DB6520C800000000 /* libPostbox.dylib in Fake Swift Dependencies (Copy Files Phase) */ = {isa = PBXBuildFile; fileRef = 1DD70E29DB6520C800000000 /* libPostbox.dylib */; }; + E7A30F04DB6520C800000001 /* libPostbox.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 1DD70E29DB6520C800000000 /* libPostbox.dylib */; }; + E7A30F04DB6520C800000002 /* libPostbox.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = 1DD70E29DB6520C800000000 /* libPostbox.dylib */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; }; + E7A30F04DBA6021D00000000 /* anim_delete.json in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E29DBA6021D00000000 /* anim_delete.json */; }; + E7A30F04DC82BB6100000000 /* anim_success.json in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E29DC82BB6100000000 /* anim_success.json */; }; + E7A30F04DCE9E9AA00000000 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = C73440C0DCE9E9AA00000000 /* Localizable.strings */; }; + E7A30F04E03A369900000000 /* anim_unread.json in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E29E03A369900000000 /* anim_unread.json */; }; + E7A30F04E0F809FE00000000 /* ic_smile@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E29E0F809FE00000000 /* ic_smile@2x.png */; }; + E7A30F04E16766DD00000000 /* BlackIconIpad.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E29E16766DD00000000 /* BlackIconIpad.png */; }; + E7A30F04E1BF190800000000 /* stp_card_visa_template@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E29E1BF190800000000 /* stp_card_visa_template@2x.png */; }; + E7A30F04E373F1A700000000 /* stp_card_visa_template@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E29E373F1A700000000 /* stp_card_visa_template@3x.png */; }; + E7A30F04E4269D4A00000000 /* BlackClassicNotificationIcon@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E29E4269D4A00000000 /* BlackClassicNotificationIcon@2x.png */; }; + E7A30F04E5D6389D00000000 /* WhiteFilledIcon@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E29E5D6389D00000000 /* WhiteFilledIcon@2x.png */; }; + E7A30F04E5DB75E900000000 /* BlackClassicNotificationIcon@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E29E5DB75E900000000 /* BlackClassicNotificationIcon@3x.png */; }; + E7A30F04E78B113C00000000 /* WhiteFilledIcon@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E29E78B113C00000000 /* WhiteFilledIcon@3x.png */; }; + E7A30F04EB14130700000000 /* currencies.json in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E29EB14130700000000 /* currencies.json */; }; + E7A30F04EE385A8D00000000 /* surprised.tgs in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E29EE385A8D00000000 /* surprised.tgs */; }; + E7A30F04EEB88B8E00000000 /* BlueIcon@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E29EEB88B8E00000000 /* BlueIcon@2x.png */; }; + E7A30F04EFAF72C800000000 /* PresentationStrings.mapping in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E29EFAF72C800000000 /* PresentationStrings.mapping */; }; + E7A30F04F06D642D00000000 /* BlueIcon@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E29F06D642D00000000 /* BlueIcon@3x.png */; }; + E7A30F04F1FA330600000000 /* Emoji.mapping in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E29F1FA330600000000 /* Emoji.mapping */; }; + E7A30F04F6D6001100000000 /* ic_pin@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E29F6D6001100000000 /* ic_pin@2x.png */; }; + E7A30F04F76B198200000000 /* Generic.html in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E29F76B198200000000 /* Generic.html */; }; + E7A30F04F8214FD900000000 /* stp_card_discover@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E29F8214FD900000000 /* stp_card_discover@2x.png */; }; + E7A30F04F9D6287800000000 /* stp_card_discover@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E29F9D6287800000000 /* stp_card_discover@3x.png */; }; + E7A30F04FA28CA1200000000 /* voip_busy.caf in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E29FA28CA1200000000 /* voip_busy.caf */; }; + E7A30F04FABB82B800000000 /* start_arrow_ipad.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E29FABB82B800000000 /* start_arrow_ipad.png */; }; + E7A30F04FB06A0E800000000 /* knot_down@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E29FB06A0E800000000 /* knot_down@2x.png */; }; + E7A30F04FE6965DB00000000 /* fast_arrow@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DD70E29FE6965DB00000000 /* fast_arrow@2x.png */; }; + E7A30F04FF334B1F00000000 /* libDisplay.dylib in Fake Swift Dependencies (Copy Files Phase) */ = {isa = PBXBuildFile; fileRef = 1DD70E29FF334B1F00000000 /* libDisplay.dylib */; }; + E7A30F04FF334B1F00000001 /* libDisplay.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 1DD70E29FF334B1F00000000 /* libDisplay.dylib */; }; + E7A30F04FF334B1F00000002 /* libDisplay.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = 1DD70E29FF334B1F00000000 /* libDisplay.dylib */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; }; +/* End PBXBuildFile section */ + +/* Begin PBXCopyFilesBuildPhase section */ + FAF5FAC90000000000000000 /* Fake Swift Dependencies (Copy Files Phase) */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 0; + dstPath = ""; + dstSubfolderSpec = 16; + files = ( + E7A30F04FF334B1F00000000 /* libDisplay.dylib in Fake Swift Dependencies (Copy Files Phase) */, + E7A30F04DB6520C800000000 /* libPostbox.dylib in Fake Swift Dependencies (Copy Files Phase) */, + E7A30F04D65BA68200000000 /* libSwiftSignalKit.dylib in Fake Swift Dependencies (Copy Files Phase) */, + E7A30F04119CDA0700000000 /* libTelegramCore.dylib in Fake Swift Dependencies (Copy Files Phase) */, + E7A30F041E5A1E9C00000000 /* libTelegramUI.dylib in Fake Swift Dependencies (Copy Files Phase) */, + ); + name = "Fake Swift Dependencies (Copy Files Phase)"; + runOnlyForDeploymentPostprocessing = 1; + }; + FAF5FAC90000000000000001 /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 0; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + E7A30F046A98D72D00000001 /* libAsyncDisplayKit.dylib in CopyFiles */, + E7A30F04FF334B1F00000002 /* libDisplay.dylib in CopyFiles */, + E7A30F04B22505DC00000001 /* libMtProtoKit.dylib in CopyFiles */, + E7A30F04DB6520C800000002 /* libPostbox.dylib in CopyFiles */, + E7A30F04D65BA68200000002 /* libSwiftSignalKit.dylib in CopyFiles */, + E7A30F04119CDA0700000002 /* libTelegramCore.dylib in CopyFiles */, + E7A30F041E5A1E9C00000002 /* libTelegramUI.dylib in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 1DD70E2900000C3100000000 /* ar */ = {isa = PBXFileReference; explicitFileType = text.plist.strings; name = ar; path = "../Telegram-iOS/ar.lproj/Localizable.strings"; sourceTree = SOURCE_ROOT; }; + 1DD70E2900000C5E00000000 /* ca */ = {isa = PBXFileReference; explicitFileType = text.plist.strings; name = ca; path = "../Telegram-iOS/ca.lproj/Localizable.strings"; sourceTree = SOURCE_ROOT; }; + 1DD70E2900000C8100000000 /* de */ = {isa = PBXFileReference; explicitFileType = text.plist.strings; name = de; path = "../Telegram-iOS/de.lproj/Localizable.strings"; sourceTree = SOURCE_ROOT; }; + 1DD70E2900000CA900000000 /* en */ = {isa = PBXFileReference; explicitFileType = text.plist.strings; name = en; path = "../Telegram-iOS/en.lproj/Localizable.strings"; sourceTree = SOURCE_ROOT; }; + 1DD70E2900000CAE00000000 /* es */ = {isa = PBXFileReference; explicitFileType = text.plist.strings; name = es; path = "../Telegram-iOS/es.lproj/Localizable.strings"; sourceTree = SOURCE_ROOT; }; + 1DD70E2900000CCC00000000 /* fr */ = {isa = PBXFileReference; explicitFileType = text.plist.strings; name = fr; path = "../Telegram-iOS/fr.lproj/Localizable.strings"; sourceTree = SOURCE_ROOT; }; + 1DD70E2900000D1B00000000 /* id */ = {isa = PBXFileReference; explicitFileType = text.plist.strings; name = id; path = "../Telegram-iOS/id.lproj/Localizable.strings"; sourceTree = SOURCE_ROOT; }; + 1DD70E2900000D2B00000000 /* it */ = {isa = PBXFileReference; explicitFileType = text.plist.strings; name = it; path = "../Telegram-iOS/it.lproj/Localizable.strings"; sourceTree = SOURCE_ROOT; }; + 1DD70E2900000D6400000000 /* ko */ = {isa = PBXFileReference; explicitFileType = text.plist.strings; name = ko; path = "../Telegram-iOS/ko.lproj/Localizable.strings"; sourceTree = SOURCE_ROOT; }; + 1DD70E2900000DA600000000 /* ms */ = {isa = PBXFileReference; explicitFileType = text.plist.strings; name = ms; path = "../Telegram-iOS/ms.lproj/Localizable.strings"; sourceTree = SOURCE_ROOT; }; + 1DD70E2900000DBE00000000 /* nl */ = {isa = PBXFileReference; explicitFileType = text.plist.strings; name = nl; path = "../Telegram-iOS/nl.lproj/Localizable.strings"; sourceTree = SOURCE_ROOT; }; + 1DD70E2900000E0400000000 /* pt */ = {isa = PBXFileReference; explicitFileType = text.plist.strings; name = pt; path = "../Telegram-iOS/pt.lproj/Localizable.strings"; sourceTree = SOURCE_ROOT; }; + 1DD70E2900000E4300000000 /* ru */ = {isa = PBXFileReference; explicitFileType = text.plist.strings; name = ru; path = "../Telegram-iOS/ru.lproj/Localizable.strings"; sourceTree = SOURCE_ROOT; }; + 1DD70E2900000E7E00000000 /* tr */ = {isa = PBXFileReference; explicitFileType = text.plist.strings; name = tr; path = "../Telegram-iOS/tr.lproj/Localizable.strings"; sourceTree = SOURCE_ROOT; }; + 1DD70E2900000E9600000000 /* uk */ = {isa = PBXFileReference; explicitFileType = text.plist.strings; name = uk; path = "../Telegram-iOS/uk.lproj/Localizable.strings"; sourceTree = SOURCE_ROOT; }; + 1DD70E29001F47FB00000000 /* BUCK */ = {isa = PBXFileReference; explicitFileType = text.script.python; path = BUCK; sourceTree = SOURCE_ROOT; }; + 1DD70E29001F47FB00000001 /* BUCK */ = {isa = PBXFileReference; explicitFileType = text.script.python; path = BUCK; sourceTree = SOURCE_ROOT; }; + 1DD70E2900ACCBB200000000 /* stp_card_jcb_template@2x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "stp_card_jcb_template@2x.png"; path = "../submodules/TelegramUI/TelegramUI/Resources/Stripe/stp_card_jcb_template@2x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E2900BF759200000000 /* anim_read.json */ = {isa = PBXFileReference; explicitFileType = text.json; name = anim_read.json; path = ../submodules/TelegramUI/TelegramUI/Resources/Animations/anim_read.json; sourceTree = SOURCE_ROOT; }; + 1DD70E290261A45100000000 /* stp_card_jcb_template@3x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "stp_card_jcb_template@3x.png"; path = "../submodules/TelegramUI/TelegramUI/Resources/Stripe/stp_card_jcb_template@3x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E2902BAF11C00000000 /* 0.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; name = 0.m4a; path = "../Telegram-iOS/Resources/notifications/0.m4a"; sourceTree = SOURCE_ROOT; }; + 1DD70E2902C9089D00000000 /* 1.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; name = 1.m4a; path = "../Telegram-iOS/Resources/notifications/1.m4a"; sourceTree = SOURCE_ROOT; }; + 1DD70E2902D7201E00000000 /* 2.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; name = 2.m4a; path = "../Telegram-iOS/Resources/notifications/2.m4a"; sourceTree = SOURCE_ROOT; }; + 1DD70E2902E5379F00000000 /* 3.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; name = 3.m4a; path = "../Telegram-iOS/Resources/notifications/3.m4a"; sourceTree = SOURCE_ROOT; }; + 1DD70E2902F34F2000000000 /* 4.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; name = 4.m4a; path = "../Telegram-iOS/Resources/notifications/4.m4a"; sourceTree = SOURCE_ROOT; }; + 1DD70E29030166A100000000 /* 5.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; name = 5.m4a; path = "../Telegram-iOS/Resources/notifications/5.m4a"; sourceTree = SOURCE_ROOT; }; + 1DD70E29030F7E2200000000 /* 6.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; name = 6.m4a; path = "../Telegram-iOS/Resources/notifications/6.m4a"; sourceTree = SOURCE_ROOT; }; + 1DD70E29031D95A300000000 /* 7.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; name = 7.m4a; path = "../Telegram-iOS/Resources/notifications/7.m4a"; sourceTree = SOURCE_ROOT; }; + 1DD70E29032BAD2400000000 /* 8.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; name = 8.m4a; path = "../Telegram-iOS/Resources/notifications/8.m4a"; sourceTree = SOURCE_ROOT; }; + 1DD70E290339C4A500000000 /* 9.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; name = 9.m4a; path = "../Telegram-iOS/Resources/notifications/9.m4a"; sourceTree = SOURCE_ROOT; }; + 1DD70E29038EEE9000000000 /* BlueClassicIcon@2x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "BlueClassicIcon@2x.png"; path = "../Telegram-iOS/BlueClassicIcon@2x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E29039E80E800000000 /* BlackClassicIconLargeIpad@2x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "BlackClassicIconLargeIpad@2x.png"; path = "../Telegram-iOS/BlackClassicIconLargeIpad@2x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E290543C72F00000000 /* BlueClassicIcon@3x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "BlueClassicIcon@3x.png"; path = "../Telegram-iOS/BlueClassicIcon@3x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E2905F13DFA00000000 /* BlueFilledIconIpad.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = BlueFilledIconIpad.png; path = "../Telegram-iOS/BlueFilledIconIpad.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E29061BC94A00000000 /* GenericUserScript.js */ = {isa = PBXFileReference; explicitFileType = sourcecode.javascript; name = GenericUserScript.js; path = ../submodules/TelegramUI/TelegramUI/Resources/WebEmbed/GenericUserScript.js; sourceTree = SOURCE_ROOT; }; + 1DD70E2906C06BEE00000000 /* Info.plist */ = {isa = PBXFileReference; explicitFileType = text.plist; path = Info.plist; sourceTree = ""; }; + 1DD70E290933E8F400000000 /* stp_card_form_front@2x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "stp_card_form_front@2x.png"; path = "../submodules/TelegramUI/TelegramUI/Resources/Stripe/stp_card_form_front@2x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E290AE8C19300000000 /* stp_card_form_front@3x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "stp_card_form_front@3x.png"; path = "../submodules/TelegramUI/TelegramUI/Resources/Stripe/stp_card_form_front@3x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E290BE206B800000000 /* heart.tgs */ = {isa = PBXFileReference; lastKnownFileType = file; name = heart.tgs; path = ../submodules/TelegramUI/TelegramUI/Resources/BuiltinReactions/heart.tgs; sourceTree = SOURCE_ROOT; }; + 1DD70E291040865A00000000 /* PhotoEditorCaption@2x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "PhotoEditorCaption@2x.png"; path = "../Telegram-iOS/Resources/PhotoEditor/PhotoEditorCaption@2x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E29119CDA0700000000 /* libTelegramCore.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; path = libTelegramCore.dylib; sourceTree = BUILT_PRODUCTS_DIR; }; + 1DD70E2911F55EF900000000 /* PhotoEditorCaption@3x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "PhotoEditorCaption@3x.png"; path = "../Telegram-iOS/Resources/PhotoEditor/PhotoEditorCaption@3x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E291292048700000000 /* Instagram.html */ = {isa = PBXFileReference; explicitFileType = text.html; name = Instagram.html; path = ../submodules/TelegramUI/TelegramUI/Resources/WebEmbed/Instagram.html; sourceTree = SOURCE_ROOT; }; + 1DD70E291493803B00000000 /* lol.tgs */ = {isa = PBXFileReference; lastKnownFileType = file; name = lol.tgs; path = ../submodules/TelegramUI/TelegramUI/Resources/BuiltinReactions/lol.tgs; sourceTree = SOURCE_ROOT; }; + 1DD70E291572F3F900000000 /* stp_card_mastercard_template@2x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "stp_card_mastercard_template@2x.png"; path = "../submodules/TelegramUI/TelegramUI/Resources/Stripe/stp_card_mastercard_template@2x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E2915A3422A00000000 /* thumbsup.tgs */ = {isa = PBXFileReference; lastKnownFileType = file; name = thumbsup.tgs; path = ../submodules/TelegramUI/TelegramUI/Resources/BuiltinReactions/thumbsup.tgs; sourceTree = SOURCE_ROOT; }; + 1DD70E291727CC9800000000 /* stp_card_mastercard_template@3x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "stp_card_mastercard_template@3x.png"; path = "../submodules/TelegramUI/TelegramUI/Resources/Stripe/stp_card_mastercard_template@3x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E2917567CC800000000 /* powerful_infinity_white@2x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "powerful_infinity_white@2x.png"; path = "../Telegram-iOS/Resources/intro/powerful_infinity_white@2x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E291882772900000000 /* PhotoEditorMute@2x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "PhotoEditorMute@2x.png"; path = "../Telegram-iOS/Resources/PhotoEditor/PhotoEditorMute@2x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E2918FC359D00000000 /* BlackFilledIconIpad@2x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "BlackFilledIconIpad@2x.png"; path = "../Telegram-iOS/BlackFilledIconIpad@2x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E29193BD71700000000 /* stp_card_jcb@2x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "stp_card_jcb@2x.png"; path = "../submodules/TelegramUI/TelegramUI/Resources/Stripe/stp_card_jcb@2x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E291AF0AFB600000000 /* stp_card_jcb@3x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "stp_card_jcb@3x.png"; path = "../submodules/TelegramUI/TelegramUI/Resources/Stripe/stp_card_jcb@3x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E291BA19CD900000000 /* BlueNotificationIcon.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = BlueNotificationIcon.png; path = "../Telegram-iOS/BlueNotificationIcon.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E291E5A1E9C00000000 /* libTelegramUI.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; path = libTelegramUI.dylib; sourceTree = BUILT_PRODUCTS_DIR; }; + 1DD70E291FC4F2F000000000 /* stp_card_mastercard@2x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "stp_card_mastercard@2x.png"; path = "../submodules/TelegramUI/TelegramUI/Resources/Stripe/stp_card_mastercard@2x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E292179CB8F00000000 /* stp_card_mastercard@3x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "stp_card_mastercard@3x.png"; path = "../submodules/TelegramUI/TelegramUI/Resources/Stripe/stp_card_mastercard@3x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E29225D12D700000000 /* private_door@2x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "private_door@2x.png"; path = "../Telegram-iOS/Resources/intro/private_door@2x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E2923B3C2EF00000000 /* ic_pencil@2x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "ic_pencil@2x.png"; path = "../Telegram-iOS/Resources/intro/ic_pencil@2x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E292602319200000000 /* poop.tgs */ = {isa = PBXFileReference; lastKnownFileType = file; name = poop.tgs; path = ../submodules/TelegramUI/TelegramUI/Resources/BuiltinReactions/poop.tgs; sourceTree = SOURCE_ROOT; }; + 1DD70E2928A3C00D00000000 /* NavigationShadow@2x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "NavigationShadow@2x.png"; path = "../Telegram-iOS/Resources/NavigationShadow@2x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E292925AEA200000000 /* Icons.xcassets */ = {isa = PBXFileReference; explicitFileType = folder.assetcatalog; name = Icons.xcassets; path = "../Telegram-iOS/Icons.xcassets"; sourceTree = SOURCE_ROOT; }; + 1DD70E292D05879B00000000 /* anim_unarchive.json */ = {isa = PBXFileReference; explicitFileType = text.json; name = anim_unarchive.json; path = ../submodules/TelegramUI/TelegramUI/Resources/Animations/anim_unarchive.json; sourceTree = SOURCE_ROOT; }; + 1DD70E292DEB974300000000 /* PhotoEditorMuteActive@2x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "PhotoEditorMuteActive@2x.png"; path = "../Telegram-iOS/Resources/PhotoEditor/PhotoEditorMuteActive@2x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E292DF18A2400000000 /* BlueIconIpad@2x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "BlueIconIpad@2x.png"; path = "../Telegram-iOS/BlueIconIpad@2x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E292E63F3BE00000000 /* BlackNotificationIcon.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = BlackNotificationIcon.png; path = "../Telegram-iOS/BlackNotificationIcon.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E293453BAB500000000 /* BlackClassicIcon@2x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "BlackClassicIcon@2x.png"; path = "../Telegram-iOS/BlackClassicIcon@2x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E293549D4C400000000 /* Images.xcassets */ = {isa = PBXFileReference; explicitFileType = folder.assetcatalog; name = Images.xcassets; path = ../submodules/TelegramUI/Images.xcassets; sourceTree = SOURCE_ROOT; }; + 1DD70E293608935400000000 /* BlackClassicIcon@3x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "BlackClassicIcon@3x.png"; path = "../Telegram-iOS/BlackClassicIcon@3x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E2936B60A1F00000000 /* BlackFilledIconIpad.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = BlackFilledIconIpad.png; path = "../Telegram-iOS/BlackFilledIconIpad.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E293830E74200000000 /* meh.tgs */ = {isa = PBXFileReference; lastKnownFileType = file; name = meh.tgs; path = ../submodules/TelegramUI/TelegramUI/Resources/BuiltinReactions/meh.tgs; sourceTree = SOURCE_ROOT; }; + 1DD70E293AA15AF800000000 /* BlueIconIpad.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = BlueIconIpad.png; path = "../Telegram-iOS/BlueIconIpad.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E293C169B2E00000000 /* powerful_mask@2x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "powerful_mask@2x.png"; path = "../Telegram-iOS/Resources/intro/powerful_mask@2x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E293C514E0100000000 /* begin_record.caf */ = {isa = PBXFileReference; lastKnownFileType = file; name = begin_record.caf; path = "../Telegram-iOS/Resources/begin_record.caf"; sourceTree = SOURCE_ROOT; }; + 1DD70E293E51265C00000000 /* cry.tgs */ = {isa = PBXFileReference; lastKnownFileType = file; name = cry.tgs; path = ../submodules/TelegramUI/TelegramUI/Resources/BuiltinReactions/cry.tgs; sourceTree = SOURCE_ROOT; }; + 1DD70E293F61D17900000000 /* MessageSent.caf */ = {isa = PBXFileReference; lastKnownFileType = file; name = MessageSent.caf; path = ../submodules/TelegramUI/TelegramUI/Sounds/MessageSent.caf; sourceTree = SOURCE_ROOT; }; + 1DD70E2940197DFD00000000 /* VimeoUserScript.js */ = {isa = PBXFileReference; explicitFileType = sourcecode.javascript; name = VimeoUserScript.js; path = ../submodules/TelegramUI/TelegramUI/Resources/WebEmbed/VimeoUserScript.js; sourceTree = SOURCE_ROOT; }; + 1DD70E29406BEF2900000000 /* anim_archiveAvatar.json */ = {isa = PBXFileReference; explicitFileType = text.json; name = anim_archiveAvatar.json; path = ../submodules/TelegramUI/TelegramUI/Resources/Animations/anim_archiveAvatar.json; sourceTree = SOURCE_ROOT; }; + 1DD70E29443B21A300000000 /* stp_card_amex@2x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "stp_card_amex@2x.png"; path = "../submodules/TelegramUI/TelegramUI/Resources/Stripe/stp_card_amex@2x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E29453E9D0800000000 /* powerful_star@2x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "powerful_star@2x.png"; path = "../Telegram-iOS/Resources/intro/powerful_star@2x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E2945EFFA4200000000 /* stp_card_amex@3x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "stp_card_amex@3x.png"; path = "../submodules/TelegramUI/TelegramUI/Resources/Stripe/stp_card_amex@3x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E2945FD987A00000000 /* smile.tgs */ = {isa = PBXFileReference; lastKnownFileType = file; name = smile.tgs; path = ../submodules/TelegramUI/TelegramUI/Resources/BuiltinReactions/smile.tgs; sourceTree = SOURCE_ROOT; }; + 1DD70E2948ED794E00000000 /* telegram_plane1@2x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "telegram_plane1@2x.png"; path = "../Telegram-iOS/Resources/intro/telegram_plane1@2x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E294906F2A500000000 /* AppLibrary-Profile.xcconfig */ = {isa = PBXFileReference; explicitFileType = text.xcconfig; name = "AppLibrary-Profile.xcconfig"; path = "../buck-out/gen/App/AppLibrary-Profile.xcconfig"; sourceTree = SOURCE_ROOT; }; + 1DD70E294D77B07700000000 /* anim_infotip.json */ = {isa = PBXFileReference; explicitFileType = text.json; name = anim_infotip.json; path = ../submodules/TelegramUI/TelegramUI/Resources/Animations/anim_infotip.json; sourceTree = SOURCE_ROOT; }; + 1DD70E294D95CA7700000000 /* stp_card_form_applepay@2x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "stp_card_form_applepay@2x.png"; path = "../submodules/TelegramUI/TelegramUI/Resources/Stripe/stp_card_form_applepay@2x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E294E27EDFB00000000 /* AppLibrary-Debug.xcconfig */ = {isa = PBXFileReference; explicitFileType = text.xcconfig; name = "AppLibrary-Debug.xcconfig"; path = "../buck-out/gen/App/AppLibrary-Debug.xcconfig"; sourceTree = SOURCE_ROOT; }; + 1DD70E294F4AA31600000000 /* stp_card_form_applepay@3x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "stp_card_form_applepay@3x.png"; path = "../submodules/TelegramUI/TelegramUI/Resources/Stripe/stp_card_form_applepay@3x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E29501FCBD600000000 /* telegram_sphere@2x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "telegram_sphere@2x.png"; path = "../Telegram-iOS/Resources/intro/telegram_sphere@2x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E2951A94A6400000000 /* start_arrow_ipad@2x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "start_arrow_ipad@2x.png"; path = "../Telegram-iOS/Resources/intro/start_arrow_ipad@2x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E295283D1B900000000 /* celebrate.tgs */ = {isa = PBXFileReference; lastKnownFileType = file; name = celebrate.tgs; path = ../submodules/TelegramUI/TelegramUI/Resources/BuiltinReactions/celebrate.tgs; sourceTree = SOURCE_ROOT; }; + 1DD70E2956813D8800000000 /* PhoneCountries.txt */ = {isa = PBXFileReference; explicitFileType = text; name = PhoneCountries.txt; path = ../submodules/TelegramUI/TelegramUI/Resources/PhoneCountries.txt; sourceTree = SOURCE_ROOT; }; + 1DD70E2957CD649600000000 /* voip_end.caf */ = {isa = PBXFileReference; lastKnownFileType = file; name = voip_end.caf; path = "../Telegram-iOS/Resources/voip_end.caf"; sourceTree = SOURCE_ROOT; }; + 1DD70E295AFA9C2600000000 /* BlueClassicIconIpad@2x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "BlueClassicIconIpad@2x.png"; path = "../Telegram-iOS/BlueClassicIconIpad@2x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E295B2A553100000000 /* BlueFilledIconLargeIpad@2x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "BlueFilledIconLargeIpad@2x.png"; path = "../Telegram-iOS/BlueFilledIconLargeIpad@2x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E295B60B39500000000 /* start_arrow@2x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "start_arrow@2x.png"; path = "../Telegram-iOS/Resources/intro/start_arrow@2x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E295D05708E00000000 /* TwitchUserScript.js */ = {isa = PBXFileReference; explicitFileType = sourcecode.javascript; name = TwitchUserScript.js; path = ../submodules/TelegramUI/TelegramUI/Resources/WebEmbed/TwitchUserScript.js; sourceTree = SOURCE_ROOT; }; + 1DD70E295FFC844500000000 /* notification.caf */ = {isa = PBXFileReference; lastKnownFileType = file; name = notification.caf; path = ../submodules/TelegramUI/TelegramUI/Sounds/notification.caf; sourceTree = SOURCE_ROOT; }; + 1DD70E296587237E00000000 /* YoutubeUserScript.js */ = {isa = PBXFileReference; explicitFileType = sourcecode.javascript; name = YoutubeUserScript.js; path = ../submodules/TelegramUI/TelegramUI/Resources/WebEmbed/YoutubeUserScript.js; sourceTree = SOURCE_ROOT; }; + 1DD70E2965E934B700000000 /* voip_fail.caf */ = {isa = PBXFileReference; lastKnownFileType = file; name = voip_fail.caf; path = "../Telegram-iOS/Resources/voip_fail.caf"; sourceTree = SOURCE_ROOT; }; + 1DD70E2966DD7C1700000000 /* BlueClassicNotificationIcon.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = BlueClassicNotificationIcon.png; path = "../Telegram-iOS/BlueClassicNotificationIcon.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E2967C217F600000000 /* anim_unmute.json */ = {isa = PBXFileReference; explicitFileType = text.json; name = anim_unmute.json; path = ../submodules/TelegramUI/TelegramUI/Resources/Animations/anim_unmute.json; sourceTree = SOURCE_ROOT; }; + 1DD70E2968FBAA6A00000000 /* LegacyComponentsResources.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; name = LegacyComponentsResources.bundle; path = ../submodules/LegacyComponents/LegacyComponents/Resources/LegacyComponentsResources.bundle; sourceTree = SOURCE_ROOT; }; + 1DD70E296A98D72D00000000 /* libAsyncDisplayKit.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; path = libAsyncDisplayKit.dylib; sourceTree = BUILT_PRODUCTS_DIR; }; + 1DD70E296ABF6A1200000000 /* Empty.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = Empty.swift; path = SupportFiles/Empty.swift; sourceTree = SOURCE_ROOT; }; + 1DD70E296AD832AE00000000 /* ic_cam_lens@2x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "ic_cam_lens@2x.png"; path = "../Telegram-iOS/Resources/intro/ic_cam_lens@2x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E296C599FD900000000 /* NavigationBackArrowLight@2x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "NavigationBackArrowLight@2x.png"; path = "../Telegram-iOS/Resources/NavigationBackArrowLight@2x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E296E8A8A4800000000 /* sad.tgs */ = {isa = PBXFileReference; lastKnownFileType = file; name = sad.tgs; path = ../submodules/TelegramUI/TelegramUI/Resources/BuiltinReactions/sad.tgs; sourceTree = SOURCE_ROOT; }; + 1DD70E296F409B3900000000 /* voip_connecting.mp3 */ = {isa = PBXFileReference; explicitFileType = audio.mp3; name = voip_connecting.mp3; path = "../Telegram-iOS/Resources/voip_connecting.mp3"; sourceTree = SOURCE_ROOT; }; + 1DD70E29705B110100000000 /* stp_card_visa@2x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "stp_card_visa@2x.png"; path = "../submodules/TelegramUI/TelegramUI/Resources/Stripe/stp_card_visa@2x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E29720FE9A000000000 /* stp_card_visa@3x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "stp_card_visa@3x.png"; path = "../submodules/TelegramUI/TelegramUI/Resources/Stripe/stp_card_visa@3x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E29748244C600000000 /* Twitch.html */ = {isa = PBXFileReference; explicitFileType = text.html; name = Twitch.html; path = ../submodules/TelegramUI/TelegramUI/Resources/WebEmbed/Twitch.html; sourceTree = SOURCE_ROOT; }; + 1DD70E2974B4E65D00000000 /* 100.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; name = 100.m4a; path = "../Telegram-iOS/Resources/notifications/100.m4a"; sourceTree = SOURCE_ROOT; }; + 1DD70E2974C2FDDE00000000 /* 101.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; name = 101.m4a; path = "../Telegram-iOS/Resources/notifications/101.m4a"; sourceTree = SOURCE_ROOT; }; + 1DD70E2974D1155F00000000 /* 102.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; name = 102.m4a; path = "../Telegram-iOS/Resources/notifications/102.m4a"; sourceTree = SOURCE_ROOT; }; + 1DD70E2974DF2CE000000000 /* 103.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; name = 103.m4a; path = "../Telegram-iOS/Resources/notifications/103.m4a"; sourceTree = SOURCE_ROOT; }; + 1DD70E2974ED446100000000 /* 104.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; name = 104.m4a; path = "../Telegram-iOS/Resources/notifications/104.m4a"; sourceTree = SOURCE_ROOT; }; + 1DD70E2974FB5BE200000000 /* 105.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; name = 105.m4a; path = "../Telegram-iOS/Resources/notifications/105.m4a"; sourceTree = SOURCE_ROOT; }; + 1DD70E297509736300000000 /* 106.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; name = 106.m4a; path = "../Telegram-iOS/Resources/notifications/106.m4a"; sourceTree = SOURCE_ROOT; }; + 1DD70E2975178AE400000000 /* 107.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; name = 107.m4a; path = "../Telegram-iOS/Resources/notifications/107.m4a"; sourceTree = SOURCE_ROOT; }; + 1DD70E297525A26500000000 /* 108.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; name = 108.m4a; path = "../Telegram-iOS/Resources/notifications/108.m4a"; sourceTree = SOURCE_ROOT; }; + 1DD70E297533B9E600000000 /* 109.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; name = 109.m4a; path = "../Telegram-iOS/Resources/notifications/109.m4a"; sourceTree = SOURCE_ROOT; }; + 1DD70E2975FF5D6600000000 /* anim_hide.json */ = {isa = PBXFileReference; explicitFileType = text.json; name = anim_hide.json; path = ../submodules/TelegramUI/TelegramUI/Resources/Animations/anim_hide.json; sourceTree = SOURCE_ROOT; }; + 1DD70E297669BEFC00000000 /* 110.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; name = 110.m4a; path = "../Telegram-iOS/Resources/notifications/110.m4a"; sourceTree = SOURCE_ROOT; }; + 1DD70E297677D67D00000000 /* 111.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; name = 111.m4a; path = "../Telegram-iOS/Resources/notifications/111.m4a"; sourceTree = SOURCE_ROOT; }; + 1DD70E2977E4942F00000000 /* BlueIconLargeIpad@2x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "BlueIconLargeIpad@2x.png"; path = "../Telegram-iOS/BlueIconLargeIpad@2x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E297809716A00000000 /* ChatWallpaperBuiltin0.jpg */ = {isa = PBXFileReference; explicitFileType = image.jpeg; name = ChatWallpaperBuiltin0.jpg; path = ../submodules/TelegramUI/TelegramUI/Resources/ChatWallpaperBuiltin0.jpg; sourceTree = SOURCE_ROOT; }; + 1DD70E29793765CC00000000 /* ic_smile_eye@2x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "ic_smile_eye@2x.png"; path = "../Telegram-iOS/Resources/intro/ic_smile_eye@2x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E29799DE7B600000000 /* Youtube.html */ = {isa = PBXFileReference; explicitFileType = text.html; name = Youtube.html; path = ../submodules/TelegramUI/TelegramUI/Resources/WebEmbed/Youtube.html; sourceTree = SOURCE_ROOT; }; + 1DD70E297ADFB9F200000000 /* libAppLibrary.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; path = libAppLibrary.a; sourceTree = BUILT_PRODUCTS_DIR; }; + 1DD70E297ADFB9F200000001 /* libAppLibrary.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; path = libAppLibrary.a; sourceTree = BUILT_PRODUCTS_DIR; }; + 1DD70E297D676FDE00000000 /* Telegram-Profile.xcconfig */ = {isa = PBXFileReference; explicitFileType = text.xcconfig; name = "Telegram-Profile.xcconfig"; path = "../buck-out/gen/App/Telegram-Profile.xcconfig"; sourceTree = SOURCE_ROOT; }; + 1DD70E297E472C5600000000 /* BlackFilledIconLargeIpad@2x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "BlackFilledIconLargeIpad@2x.png"; path = "../Telegram-iOS/BlackFilledIconLargeIpad@2x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E2985169C9700000000 /* ic_cam@2x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "ic_cam@2x.png"; path = "../Telegram-iOS/Resources/intro/ic_cam@2x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E29853D725600000000 /* SFCompactRounded-Semibold.otf */ = {isa = PBXFileReference; lastKnownFileType = file; name = "SFCompactRounded-Semibold.otf"; path = "../submodules/TelegramUI/TelegramUI/Resources/Fonts/SFCompactRounded-Semibold.otf"; sourceTree = SOURCE_ROOT; }; + 1DD70E29884756EF00000000 /* anim_mute.json */ = {isa = PBXFileReference; explicitFileType = text.json; name = anim_mute.json; path = ../submodules/TelegramUI/TelegramUI/Resources/Animations/anim_mute.json; sourceTree = SOURCE_ROOT; }; + 1DD70E2988BEEF0900000000 /* BlackIcon@2x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "BlackIcon@2x.png"; path = "../Telegram-iOS/BlackIcon@2x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E298A46FE9000000000 /* ic_bubble@2x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "ic_bubble@2x.png"; path = "../Telegram-iOS/Resources/intro/ic_bubble@2x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E298A73C7A800000000 /* BlackIcon@3x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "BlackIcon@3x.png"; path = "../Telegram-iOS/BlackIcon@3x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E298AA6EB1400000000 /* BlackIconLargeIpad@2x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "BlackIconLargeIpad@2x.png"; path = "../Telegram-iOS/BlackIconLargeIpad@2x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E298CC42D1400000000 /* stp_card_applepay@2x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "stp_card_applepay@2x.png"; path = "../submodules/TelegramUI/TelegramUI/Resources/Stripe/stp_card_applepay@2x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E298DB231DC00000000 /* stp_card_placeholder_template@2x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "stp_card_placeholder_template@2x.png"; path = "../submodules/TelegramUI/TelegramUI/Resources/Stripe/stp_card_placeholder_template@2x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E298E7905B300000000 /* stp_card_applepay@3x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "stp_card_applepay@3x.png"; path = "../submodules/TelegramUI/TelegramUI/Resources/Stripe/stp_card_applepay@3x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E298E96E34200000000 /* LaunchScreen.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = LaunchScreen.xib; path = "../Telegram-iOS/Base.lproj/LaunchScreen.xib"; sourceTree = SOURCE_ROOT; }; + 1DD70E298F670A7B00000000 /* stp_card_placeholder_template@3x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "stp_card_placeholder_template@3x.png"; path = "../submodules/TelegramUI/TelegramUI/Resources/Stripe/stp_card_placeholder_template@3x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E2994DA3D4400000000 /* stp_card_diners_template@2x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "stp_card_diners_template@2x.png"; path = "../submodules/TelegramUI/TelegramUI/Resources/Stripe/stp_card_diners_template@2x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E29968F15E300000000 /* stp_card_diners_template@3x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "stp_card_diners_template@3x.png"; path = "../submodules/TelegramUI/TelegramUI/Resources/Stripe/stp_card_diners_template@3x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E29976A9EA600000000 /* stp_card_amex_template@2x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "stp_card_amex_template@2x.png"; path = "../submodules/TelegramUI/TelegramUI/Resources/Stripe/stp_card_amex_template@2x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E29988E33D500000000 /* Application.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = Application.swift; path = Sources/Application.swift; sourceTree = SOURCE_ROOT; }; + 1DD70E29991F774500000000 /* stp_card_amex_template@3x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "stp_card_amex_template@3x.png"; path = "../submodules/TelegramUI/TelegramUI/Resources/Stripe/stp_card_amex_template@3x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E2999319B4600000000 /* ic_bubble_dot@2x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "ic_bubble_dot@2x.png"; path = "../Telegram-iOS/Resources/intro/ic_bubble_dot@2x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E299F00BA0200000000 /* anim_archive.json */ = {isa = PBXFileReference; explicitFileType = text.json; name = anim_archive.json; path = ../submodules/TelegramUI/TelegramUI/Resources/Animations/anim_archive.json; sourceTree = SOURCE_ROOT; }; + 1DD70E299F5C287E00000000 /* stp_card_form_back@2x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "stp_card_form_back@2x.png"; path = "../submodules/TelegramUI/TelegramUI/Resources/Stripe/stp_card_form_back@2x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E29A0160D3000000000 /* stp_card_discover_template@2x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "stp_card_discover_template@2x.png"; path = "../submodules/TelegramUI/TelegramUI/Resources/Stripe/stp_card_discover_template@2x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E29A111011D00000000 /* stp_card_form_back@3x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "stp_card_form_back@3x.png"; path = "../submodules/TelegramUI/TelegramUI/Resources/Stripe/stp_card_form_back@3x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E29A1CAE5CF00000000 /* stp_card_discover_template@3x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "stp_card_discover_template@3x.png"; path = "../submodules/TelegramUI/TelegramUI/Resources/Stripe/stp_card_discover_template@3x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E29A28B5AB000000000 /* anim_archiveswipe.json */ = {isa = PBXFileReference; explicitFileType = text.json; name = anim_archiveswipe.json; path = ../submodules/TelegramUI/TelegramUI/Resources/Animations/anim_archiveswipe.json; sourceTree = SOURCE_ROOT; }; + 1DD70E29A4169AE300000000 /* AppIcons.xcassets */ = {isa = PBXFileReference; explicitFileType = folder.assetcatalog; name = AppIcons.xcassets; path = "../Telegram-iOS/AppIcons.xcassets"; sourceTree = SOURCE_ROOT; }; + 1DD70E29A75B899200000000 /* BlackClassicNotificationIcon.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = BlackClassicNotificationIcon.png; path = "../Telegram-iOS/BlackClassicNotificationIcon.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E29A86C10B100000000 /* BlackClassicIconIpad.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = BlackClassicIconIpad.png; path = "../Telegram-iOS/BlackClassicIconIpad.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E29A8C8657400000000 /* Telegram-Debug.xcconfig */ = {isa = PBXFileReference; explicitFileType = text.xcconfig; name = "Telegram-Debug.xcconfig"; path = "../buck-out/gen/App/Telegram-Debug.xcconfig"; sourceTree = SOURCE_ROOT; }; + 1DD70E29A9DA63C800000000 /* fast_arrow_shadow@2x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "fast_arrow_shadow@2x.png"; path = "../Telegram-iOS/Resources/intro/fast_arrow_shadow@2x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E29ABD35C0F00000000 /* anim_pin.json */ = {isa = PBXFileReference; explicitFileType = text.json; name = anim_pin.json; path = ../submodules/TelegramUI/TelegramUI/Resources/Animations/anim_pin.json; sourceTree = SOURCE_ROOT; }; + 1DD70E29B22505DC00000000 /* libMtProtoKit.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; path = libMtProtoKit.dylib; sourceTree = BUILT_PRODUCTS_DIR; }; + 1DD70E29B308DE2800000000 /* anim_unpin.json */ = {isa = PBXFileReference; explicitFileType = text.json; name = anim_unpin.json; path = ../submodules/TelegramUI/TelegramUI/Resources/Animations/anim_unpin.json; sourceTree = SOURCE_ROOT; }; + 1DD70E29B3538C4D00000000 /* fast_spiral@2x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "fast_spiral@2x.png"; path = "../Telegram-iOS/Resources/intro/fast_spiral@2x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E29B3A6F94500000000 /* stp_card_diners@2x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "stp_card_diners@2x.png"; path = "../submodules/TelegramUI/TelegramUI/Resources/Stripe/stp_card_diners@2x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E29B55BD1E400000000 /* stp_card_diners@3x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "stp_card_diners@3x.png"; path = "../submodules/TelegramUI/TelegramUI/Resources/Stripe/stp_card_diners@3x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E29B78460EB00000000 /* poker.tgs */ = {isa = PBXFileReference; lastKnownFileType = file; name = poker.tgs; path = ../submodules/TelegramUI/TelegramUI/Resources/BuiltinReactions/poker.tgs; sourceTree = SOURCE_ROOT; }; + 1DD70E29B9D1C16900000000 /* private_screw@2x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "private_screw@2x.png"; path = "../Telegram-iOS/Resources/intro/private_screw@2x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E29BA96313500000000 /* Vimeo.html */ = {isa = PBXFileReference; explicitFileType = text.html; name = Vimeo.html; path = ../submodules/TelegramUI/TelegramUI/Resources/WebEmbed/Vimeo.html; sourceTree = SOURCE_ROOT; }; + 1DD70E29BAE267F200000000 /* powerful_infinity@2x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "powerful_infinity@2x.png"; path = "../Telegram-iOS/Resources/intro/powerful_infinity@2x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E29BC9D9E0700000000 /* AppLibrary-Release.xcconfig */ = {isa = PBXFileReference; explicitFileType = text.xcconfig; name = "AppLibrary-Release.xcconfig"; path = "../buck-out/gen/App/AppLibrary-Release.xcconfig"; sourceTree = SOURCE_ROOT; }; + 1DD70E29BE69B5E500000000 /* anim_group.json */ = {isa = PBXFileReference; explicitFileType = text.json; name = anim_group.json; path = ../submodules/TelegramUI/TelegramUI/Resources/Animations/anim_group.json; sourceTree = SOURCE_ROOT; }; + 1DD70E29BF5CBB6200000000 /* knot_up1@2x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "knot_up1@2x.png"; path = "../Telegram-iOS/Resources/intro/knot_up1@2x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E29BF88817800000000 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = main.m; path = Sources/main.m; sourceTree = SOURCE_ROOT; }; + 1DD70E29C097583600000000 /* BlueClassicIconIpad.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = BlueClassicIconIpad.png; path = "../Telegram-iOS/BlueClassicIconIpad.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E29C320736D00000000 /* BlueClassicIconLargeIpad@2x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "BlueClassicIconLargeIpad@2x.png"; path = "../Telegram-iOS/BlueClassicIconLargeIpad@2x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E29C364694E00000000 /* ok.tgs */ = {isa = PBXFileReference; lastKnownFileType = file; name = ok.tgs; path = ../submodules/TelegramUI/TelegramUI/Resources/BuiltinReactions/ok.tgs; sourceTree = SOURCE_ROOT; }; + 1DD70E29C3C271B400000000 /* stp_card_cvc_amex@2x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "stp_card_cvc_amex@2x.png"; path = "../submodules/TelegramUI/TelegramUI/Resources/Stripe/stp_card_cvc_amex@2x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E29C54DDB8700000000 /* BlackFilledIcon@2x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "BlackFilledIcon@2x.png"; path = "../Telegram-iOS/BlackFilledIcon@2x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E29C5774A5300000000 /* stp_card_cvc_amex@3x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "stp_card_cvc_amex@3x.png"; path = "../submodules/TelegramUI/TelegramUI/Resources/Stripe/stp_card_cvc_amex@3x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E29C682CDCB00000000 /* BlackClassicIconIpad@2x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "BlackClassicIconIpad@2x.png"; path = "../Telegram-iOS/BlackClassicIconIpad@2x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E29C702B42600000000 /* BlackFilledIcon@3x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "BlackFilledIcon@3x.png"; path = "../Telegram-iOS/BlackFilledIcon@3x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E29C78B98B000000000 /* voip_ringback.caf */ = {isa = PBXFileReference; lastKnownFileType = file; name = voip_ringback.caf; path = "../Telegram-iOS/Resources/voip_ringback.caf"; sourceTree = SOURCE_ROOT; }; + 1DD70E29CAE3F0A300000000 /* BlueNotificationIcon@2x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "BlueNotificationIcon@2x.png"; path = "../Telegram-iOS/BlueNotificationIcon@2x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E29CC98C94200000000 /* BlueNotificationIcon@3x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "BlueNotificationIcon@3x.png"; path = "../Telegram-iOS/BlueNotificationIcon@3x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E29CE4715BE00000000 /* anim_ungroup.json */ = {isa = PBXFileReference; explicitFileType = text.json; name = anim_ungroup.json; path = ../submodules/TelegramUI/TelegramUI/Resources/Animations/anim_ungroup.json; sourceTree = SOURCE_ROOT; }; + 1DD70E29CED3B81F00000000 /* BlackIconIpad@2x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "BlackIconIpad@2x.png"; path = "../Telegram-iOS/BlackIconIpad@2x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E29CFF88DE800000000 /* ic_videocam@2x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "ic_videocam@2x.png"; path = "../Telegram-iOS/Resources/intro/ic_videocam@2x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E29D061F39E00000000 /* BlackNotificationIcon@2x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "BlackNotificationIcon@2x.png"; path = "../Telegram-iOS/BlackNotificationIcon@2x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E29D216CC3D00000000 /* BlackNotificationIcon@3x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "BlackNotificationIcon@3x.png"; path = "../Telegram-iOS/BlackNotificationIcon@3x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E29D373AFE200000000 /* BlueFilledIconIpad@2x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "BlueFilledIconIpad@2x.png"; path = "../Telegram-iOS/BlueFilledIconIpad@2x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E29D42F293000000000 /* stp_card_cvc@2x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "stp_card_cvc@2x.png"; path = "../submodules/TelegramUI/TelegramUI/Resources/Stripe/stp_card_cvc@2x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E29D43F404C00000000 /* BlueFilledIcon@2x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "BlueFilledIcon@2x.png"; path = "../Telegram-iOS/BlueFilledIcon@2x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E29D548E25500000000 /* stp_card_applepay_template@2x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "stp_card_applepay_template@2x.png"; path = "../submodules/TelegramUI/TelegramUI/Resources/Stripe/stp_card_applepay_template@2x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E29D5E401CF00000000 /* stp_card_cvc@3x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "stp_card_cvc@3x.png"; path = "../submodules/TelegramUI/TelegramUI/Resources/Stripe/stp_card_cvc@3x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E29D5F418EB00000000 /* BlueFilledIcon@3x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "BlueFilledIcon@3x.png"; path = "../Telegram-iOS/BlueFilledIcon@3x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E29D64F57BC00000000 /* fast_body@2x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "fast_body@2x.png"; path = "../Telegram-iOS/Resources/intro/fast_body@2x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E29D65BA68200000000 /* libSwiftSignalKit.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; path = libSwiftSignalKit.dylib; sourceTree = BUILT_PRODUCTS_DIR; }; + 1DD70E29D6FDBAF400000000 /* stp_card_applepay_template@3x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "stp_card_applepay_template@3x.png"; path = "../submodules/TelegramUI/TelegramUI/Resources/Stripe/stp_card_applepay_template@3x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E29D743E0A500000000 /* BlueClassicNotificationIcon@2x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "BlueClassicNotificationIcon@2x.png"; path = "../Telegram-iOS/BlueClassicNotificationIcon@2x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E29D83C37D400000000 /* Telegram.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; path = Telegram.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 1DD70E29D8F8B94400000000 /* BlueClassicNotificationIcon@3x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "BlueClassicNotificationIcon@3x.png"; path = "../Telegram-iOS/BlueClassicNotificationIcon@3x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E29DB6520C800000000 /* libPostbox.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; path = libPostbox.dylib; sourceTree = BUILT_PRODUCTS_DIR; }; + 1DD70E29DBA6021D00000000 /* anim_delete.json */ = {isa = PBXFileReference; explicitFileType = text.json; name = anim_delete.json; path = ../submodules/TelegramUI/TelegramUI/Resources/Animations/anim_delete.json; sourceTree = SOURCE_ROOT; }; + 1DD70E29DC82BB6100000000 /* anim_success.json */ = {isa = PBXFileReference; explicitFileType = text.json; name = anim_success.json; path = ../submodules/TelegramUI/TelegramUI/Resources/Animations/anim_success.json; sourceTree = SOURCE_ROOT; }; + 1DD70E29E03A369900000000 /* anim_unread.json */ = {isa = PBXFileReference; explicitFileType = text.json; name = anim_unread.json; path = ../submodules/TelegramUI/TelegramUI/Resources/Animations/anim_unread.json; sourceTree = SOURCE_ROOT; }; + 1DD70E29E0F809FE00000000 /* ic_smile@2x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "ic_smile@2x.png"; path = "../Telegram-iOS/Resources/intro/ic_smile@2x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E29E16766DD00000000 /* BlackIconIpad.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = BlackIconIpad.png; path = "../Telegram-iOS/BlackIconIpad.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E29E1BF190800000000 /* stp_card_visa_template@2x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "stp_card_visa_template@2x.png"; path = "../submodules/TelegramUI/TelegramUI/Resources/Stripe/stp_card_visa_template@2x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E29E373F1A700000000 /* stp_card_visa_template@3x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "stp_card_visa_template@3x.png"; path = "../submodules/TelegramUI/TelegramUI/Resources/Stripe/stp_card_visa_template@3x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E29E4269D4A00000000 /* BlackClassicNotificationIcon@2x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "BlackClassicNotificationIcon@2x.png"; path = "../Telegram-iOS/BlackClassicNotificationIcon@2x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E29E5D6389D00000000 /* WhiteFilledIcon@2x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "WhiteFilledIcon@2x.png"; path = "../Telegram-iOS/WhiteFilledIcon@2x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E29E5DB75E900000000 /* BlackClassicNotificationIcon@3x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "BlackClassicNotificationIcon@3x.png"; path = "../Telegram-iOS/BlackClassicNotificationIcon@3x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E29E78B113C00000000 /* WhiteFilledIcon@3x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "WhiteFilledIcon@3x.png"; path = "../Telegram-iOS/WhiteFilledIcon@3x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E29EB14130700000000 /* currencies.json */ = {isa = PBXFileReference; explicitFileType = text.json; name = currencies.json; path = ../submodules/TelegramUI/TelegramUI/Resources/currencies.json; sourceTree = SOURCE_ROOT; }; + 1DD70E29EE385A8D00000000 /* surprised.tgs */ = {isa = PBXFileReference; lastKnownFileType = file; name = surprised.tgs; path = ../submodules/TelegramUI/TelegramUI/Resources/BuiltinReactions/surprised.tgs; sourceTree = SOURCE_ROOT; }; + 1DD70E29EEB88B8E00000000 /* BlueIcon@2x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "BlueIcon@2x.png"; path = "../Telegram-iOS/BlueIcon@2x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E29EFAF72C800000000 /* PresentationStrings.mapping */ = {isa = PBXFileReference; lastKnownFileType = file; name = PresentationStrings.mapping; path = ../submodules/TelegramUI/TelegramUI/Resources/PresentationStrings.mapping; sourceTree = SOURCE_ROOT; }; + 1DD70E29F06D642D00000000 /* BlueIcon@3x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "BlueIcon@3x.png"; path = "../Telegram-iOS/BlueIcon@3x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E29F0FE1B4000000000 /* Telegram-Release.xcconfig */ = {isa = PBXFileReference; explicitFileType = text.xcconfig; name = "Telegram-Release.xcconfig"; path = "../buck-out/gen/App/Telegram-Release.xcconfig"; sourceTree = SOURCE_ROOT; }; + 1DD70E29F1FA330600000000 /* Emoji.mapping */ = {isa = PBXFileReference; lastKnownFileType = file; name = Emoji.mapping; path = ../submodules/TelegramUI/TelegramUI/Resources/Emoji.mapping; sourceTree = SOURCE_ROOT; }; + 1DD70E29F6D6001100000000 /* ic_pin@2x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "ic_pin@2x.png"; path = "../Telegram-iOS/Resources/intro/ic_pin@2x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E29F76B198200000000 /* Generic.html */ = {isa = PBXFileReference; explicitFileType = text.html; name = Generic.html; path = ../submodules/TelegramUI/TelegramUI/Resources/WebEmbed/Generic.html; sourceTree = SOURCE_ROOT; }; + 1DD70E29F8214FD900000000 /* stp_card_discover@2x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "stp_card_discover@2x.png"; path = "../submodules/TelegramUI/TelegramUI/Resources/Stripe/stp_card_discover@2x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E29F9D6287800000000 /* stp_card_discover@3x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "stp_card_discover@3x.png"; path = "../submodules/TelegramUI/TelegramUI/Resources/Stripe/stp_card_discover@3x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E29FA28CA1200000000 /* voip_busy.caf */ = {isa = PBXFileReference; lastKnownFileType = file; name = voip_busy.caf; path = "../Telegram-iOS/Resources/voip_busy.caf"; sourceTree = SOURCE_ROOT; }; + 1DD70E29FABB82B800000000 /* start_arrow_ipad.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = start_arrow_ipad.png; path = "../Telegram-iOS/Resources/intro/start_arrow_ipad.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E29FB06A0E800000000 /* knot_down@2x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "knot_down@2x.png"; path = "../Telegram-iOS/Resources/intro/knot_down@2x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E29FE6965DB00000000 /* fast_arrow@2x.png */ = {isa = PBXFileReference; explicitFileType = image.png; name = "fast_arrow@2x.png"; path = "../Telegram-iOS/Resources/intro/fast_arrow@2x.png"; sourceTree = SOURCE_ROOT; }; + 1DD70E29FF334B1F00000000 /* libDisplay.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; path = libDisplay.dylib; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 4F426D880000000000000000 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 0; + files = ( + E7A30F047ADFB9F200000000 /* libAppLibrary.a in Frameworks */, + E7A30F046A98D72D00000000 /* libAsyncDisplayKit.dylib in Frameworks */, + E7A30F04FF334B1F00000001 /* libDisplay.dylib in Frameworks */, + E7A30F04B22505DC00000000 /* libMtProtoKit.dylib in Frameworks */, + E7A30F04DB6520C800000001 /* libPostbox.dylib in Frameworks */, + E7A30F04D65BA68200000001 /* libSwiftSignalKit.dylib in Frameworks */, + E7A30F04119CDA0700000001 /* libTelegramCore.dylib in Frameworks */, + E7A30F041E5A1E9C00000001 /* libTelegramUI.dylib in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + B401C979013EDE0500000000 /* Resources */ = { + isa = PBXGroup; + children = ( + 1DD70E2902BAF11C00000000 /* 0.m4a */, + 1DD70E2902C9089D00000000 /* 1.m4a */, + 1DD70E2974B4E65D00000000 /* 100.m4a */, + 1DD70E2974C2FDDE00000000 /* 101.m4a */, + 1DD70E2974D1155F00000000 /* 102.m4a */, + 1DD70E2974DF2CE000000000 /* 103.m4a */, + 1DD70E2974ED446100000000 /* 104.m4a */, + 1DD70E2974FB5BE200000000 /* 105.m4a */, + 1DD70E297509736300000000 /* 106.m4a */, + 1DD70E2975178AE400000000 /* 107.m4a */, + 1DD70E297525A26500000000 /* 108.m4a */, + 1DD70E297533B9E600000000 /* 109.m4a */, + 1DD70E297669BEFC00000000 /* 110.m4a */, + 1DD70E297677D67D00000000 /* 111.m4a */, + 1DD70E2902D7201E00000000 /* 2.m4a */, + 1DD70E2902E5379F00000000 /* 3.m4a */, + 1DD70E2902F34F2000000000 /* 4.m4a */, + 1DD70E29030166A100000000 /* 5.m4a */, + 1DD70E29030F7E2200000000 /* 6.m4a */, + 1DD70E29031D95A300000000 /* 7.m4a */, + 1DD70E29032BAD2400000000 /* 8.m4a */, + 1DD70E290339C4A500000000 /* 9.m4a */, + 1DD70E29A4169AE300000000 /* AppIcons.xcassets */, + 1DD70E293453BAB500000000 /* BlackClassicIcon@2x.png */, + 1DD70E293608935400000000 /* BlackClassicIcon@3x.png */, + 1DD70E29A86C10B100000000 /* BlackClassicIconIpad.png */, + 1DD70E29C682CDCB00000000 /* BlackClassicIconIpad@2x.png */, + 1DD70E29039E80E800000000 /* BlackClassicIconLargeIpad@2x.png */, + 1DD70E29A75B899200000000 /* BlackClassicNotificationIcon.png */, + 1DD70E29E4269D4A00000000 /* BlackClassicNotificationIcon@2x.png */, + 1DD70E29E5DB75E900000000 /* BlackClassicNotificationIcon@3x.png */, + 1DD70E29C54DDB8700000000 /* BlackFilledIcon@2x.png */, + 1DD70E29C702B42600000000 /* BlackFilledIcon@3x.png */, + 1DD70E2936B60A1F00000000 /* BlackFilledIconIpad.png */, + 1DD70E2918FC359D00000000 /* BlackFilledIconIpad@2x.png */, + 1DD70E297E472C5600000000 /* BlackFilledIconLargeIpad@2x.png */, + 1DD70E2988BEEF0900000000 /* BlackIcon@2x.png */, + 1DD70E298A73C7A800000000 /* BlackIcon@3x.png */, + 1DD70E29E16766DD00000000 /* BlackIconIpad.png */, + 1DD70E29CED3B81F00000000 /* BlackIconIpad@2x.png */, + 1DD70E298AA6EB1400000000 /* BlackIconLargeIpad@2x.png */, + 1DD70E292E63F3BE00000000 /* BlackNotificationIcon.png */, + 1DD70E29D061F39E00000000 /* BlackNotificationIcon@2x.png */, + 1DD70E29D216CC3D00000000 /* BlackNotificationIcon@3x.png */, + 1DD70E29038EEE9000000000 /* BlueClassicIcon@2x.png */, + 1DD70E290543C72F00000000 /* BlueClassicIcon@3x.png */, + 1DD70E29C097583600000000 /* BlueClassicIconIpad.png */, + 1DD70E295AFA9C2600000000 /* BlueClassicIconIpad@2x.png */, + 1DD70E29C320736D00000000 /* BlueClassicIconLargeIpad@2x.png */, + 1DD70E2966DD7C1700000000 /* BlueClassicNotificationIcon.png */, + 1DD70E29D743E0A500000000 /* BlueClassicNotificationIcon@2x.png */, + 1DD70E29D8F8B94400000000 /* BlueClassicNotificationIcon@3x.png */, + 1DD70E29D43F404C00000000 /* BlueFilledIcon@2x.png */, + 1DD70E29D5F418EB00000000 /* BlueFilledIcon@3x.png */, + 1DD70E2905F13DFA00000000 /* BlueFilledIconIpad.png */, + 1DD70E29D373AFE200000000 /* BlueFilledIconIpad@2x.png */, + 1DD70E295B2A553100000000 /* BlueFilledIconLargeIpad@2x.png */, + 1DD70E29EEB88B8E00000000 /* BlueIcon@2x.png */, + 1DD70E29F06D642D00000000 /* BlueIcon@3x.png */, + 1DD70E293AA15AF800000000 /* BlueIconIpad.png */, + 1DD70E292DF18A2400000000 /* BlueIconIpad@2x.png */, + 1DD70E2977E4942F00000000 /* BlueIconLargeIpad@2x.png */, + 1DD70E291BA19CD900000000 /* BlueNotificationIcon.png */, + 1DD70E29CAE3F0A300000000 /* BlueNotificationIcon@2x.png */, + 1DD70E29CC98C94200000000 /* BlueNotificationIcon@3x.png */, + 1DD70E297809716A00000000 /* ChatWallpaperBuiltin0.jpg */, + 1DD70E29F1FA330600000000 /* Emoji.mapping */, + 1DD70E29F76B198200000000 /* Generic.html */, + 1DD70E29061BC94A00000000 /* GenericUserScript.js */, + 1DD70E292925AEA200000000 /* Icons.xcassets */, + 1DD70E293549D4C400000000 /* Images.xcassets */, + 1DD70E291292048700000000 /* Instagram.html */, + 1DD70E298E96E34200000000 /* LaunchScreen.xib */, + 1DD70E2968FBAA6A00000000 /* LegacyComponentsResources.bundle */, + C73440C0DCE9E9AA00000000 /* Localizable.strings */, + 1DD70E293F61D17900000000 /* MessageSent.caf */, + 1DD70E296C599FD900000000 /* NavigationBackArrowLight@2x.png */, + 1DD70E2928A3C00D00000000 /* NavigationShadow@2x.png */, + 1DD70E2956813D8800000000 /* PhoneCountries.txt */, + 1DD70E291040865A00000000 /* PhotoEditorCaption@2x.png */, + 1DD70E2911F55EF900000000 /* PhotoEditorCaption@3x.png */, + 1DD70E291882772900000000 /* PhotoEditorMute@2x.png */, + 1DD70E292DEB974300000000 /* PhotoEditorMuteActive@2x.png */, + 1DD70E29EFAF72C800000000 /* PresentationStrings.mapping */, + 1DD70E29853D725600000000 /* SFCompactRounded-Semibold.otf */, + 1DD70E29748244C600000000 /* Twitch.html */, + 1DD70E295D05708E00000000 /* TwitchUserScript.js */, + 1DD70E29BA96313500000000 /* Vimeo.html */, + 1DD70E2940197DFD00000000 /* VimeoUserScript.js */, + 1DD70E29E5D6389D00000000 /* WhiteFilledIcon@2x.png */, + 1DD70E29E78B113C00000000 /* WhiteFilledIcon@3x.png */, + 1DD70E29799DE7B600000000 /* Youtube.html */, + 1DD70E296587237E00000000 /* YoutubeUserScript.js */, + 1DD70E299F00BA0200000000 /* anim_archive.json */, + 1DD70E29406BEF2900000000 /* anim_archiveAvatar.json */, + 1DD70E29A28B5AB000000000 /* anim_archiveswipe.json */, + 1DD70E29DBA6021D00000000 /* anim_delete.json */, + 1DD70E29BE69B5E500000000 /* anim_group.json */, + 1DD70E2975FF5D6600000000 /* anim_hide.json */, + 1DD70E294D77B07700000000 /* anim_infotip.json */, + 1DD70E29884756EF00000000 /* anim_mute.json */, + 1DD70E29ABD35C0F00000000 /* anim_pin.json */, + 1DD70E2900BF759200000000 /* anim_read.json */, + 1DD70E29DC82BB6100000000 /* anim_success.json */, + 1DD70E292D05879B00000000 /* anim_unarchive.json */, + 1DD70E29CE4715BE00000000 /* anim_ungroup.json */, + 1DD70E2967C217F600000000 /* anim_unmute.json */, + 1DD70E29B308DE2800000000 /* anim_unpin.json */, + 1DD70E29E03A369900000000 /* anim_unread.json */, + 1DD70E293C514E0100000000 /* begin_record.caf */, + 1DD70E295283D1B900000000 /* celebrate.tgs */, + 1DD70E293E51265C00000000 /* cry.tgs */, + 1DD70E29EB14130700000000 /* currencies.json */, + 1DD70E29FE6965DB00000000 /* fast_arrow@2x.png */, + 1DD70E29A9DA63C800000000 /* fast_arrow_shadow@2x.png */, + 1DD70E29D64F57BC00000000 /* fast_body@2x.png */, + 1DD70E29B3538C4D00000000 /* fast_spiral@2x.png */, + 1DD70E290BE206B800000000 /* heart.tgs */, + 1DD70E298A46FE9000000000 /* ic_bubble@2x.png */, + 1DD70E2999319B4600000000 /* ic_bubble_dot@2x.png */, + 1DD70E2985169C9700000000 /* ic_cam@2x.png */, + 1DD70E296AD832AE00000000 /* ic_cam_lens@2x.png */, + 1DD70E2923B3C2EF00000000 /* ic_pencil@2x.png */, + 1DD70E29F6D6001100000000 /* ic_pin@2x.png */, + 1DD70E29E0F809FE00000000 /* ic_smile@2x.png */, + 1DD70E29793765CC00000000 /* ic_smile_eye@2x.png */, + 1DD70E29CFF88DE800000000 /* ic_videocam@2x.png */, + 1DD70E29FB06A0E800000000 /* knot_down@2x.png */, + 1DD70E29BF5CBB6200000000 /* knot_up1@2x.png */, + 1DD70E291493803B00000000 /* lol.tgs */, + 1DD70E293830E74200000000 /* meh.tgs */, + 1DD70E295FFC844500000000 /* notification.caf */, + 1DD70E29C364694E00000000 /* ok.tgs */, + 1DD70E29B78460EB00000000 /* poker.tgs */, + 1DD70E292602319200000000 /* poop.tgs */, + 1DD70E29BAE267F200000000 /* powerful_infinity@2x.png */, + 1DD70E2917567CC800000000 /* powerful_infinity_white@2x.png */, + 1DD70E293C169B2E00000000 /* powerful_mask@2x.png */, + 1DD70E29453E9D0800000000 /* powerful_star@2x.png */, + 1DD70E29225D12D700000000 /* private_door@2x.png */, + 1DD70E29B9D1C16900000000 /* private_screw@2x.png */, + 1DD70E296E8A8A4800000000 /* sad.tgs */, + 1DD70E2945FD987A00000000 /* smile.tgs */, + 1DD70E295B60B39500000000 /* start_arrow@2x.png */, + 1DD70E29FABB82B800000000 /* start_arrow_ipad.png */, + 1DD70E2951A94A6400000000 /* start_arrow_ipad@2x.png */, + 1DD70E29443B21A300000000 /* stp_card_amex@2x.png */, + 1DD70E2945EFFA4200000000 /* stp_card_amex@3x.png */, + 1DD70E29976A9EA600000000 /* stp_card_amex_template@2x.png */, + 1DD70E29991F774500000000 /* stp_card_amex_template@3x.png */, + 1DD70E298CC42D1400000000 /* stp_card_applepay@2x.png */, + 1DD70E298E7905B300000000 /* stp_card_applepay@3x.png */, + 1DD70E29D548E25500000000 /* stp_card_applepay_template@2x.png */, + 1DD70E29D6FDBAF400000000 /* stp_card_applepay_template@3x.png */, + 1DD70E29D42F293000000000 /* stp_card_cvc@2x.png */, + 1DD70E29D5E401CF00000000 /* stp_card_cvc@3x.png */, + 1DD70E29C3C271B400000000 /* stp_card_cvc_amex@2x.png */, + 1DD70E29C5774A5300000000 /* stp_card_cvc_amex@3x.png */, + 1DD70E29B3A6F94500000000 /* stp_card_diners@2x.png */, + 1DD70E29B55BD1E400000000 /* stp_card_diners@3x.png */, + 1DD70E2994DA3D4400000000 /* stp_card_diners_template@2x.png */, + 1DD70E29968F15E300000000 /* stp_card_diners_template@3x.png */, + 1DD70E29F8214FD900000000 /* stp_card_discover@2x.png */, + 1DD70E29F9D6287800000000 /* stp_card_discover@3x.png */, + 1DD70E29A0160D3000000000 /* stp_card_discover_template@2x.png */, + 1DD70E29A1CAE5CF00000000 /* stp_card_discover_template@3x.png */, + 1DD70E294D95CA7700000000 /* stp_card_form_applepay@2x.png */, + 1DD70E294F4AA31600000000 /* stp_card_form_applepay@3x.png */, + 1DD70E299F5C287E00000000 /* stp_card_form_back@2x.png */, + 1DD70E29A111011D00000000 /* stp_card_form_back@3x.png */, + 1DD70E290933E8F400000000 /* stp_card_form_front@2x.png */, + 1DD70E290AE8C19300000000 /* stp_card_form_front@3x.png */, + 1DD70E29193BD71700000000 /* stp_card_jcb@2x.png */, + 1DD70E291AF0AFB600000000 /* stp_card_jcb@3x.png */, + 1DD70E2900ACCBB200000000 /* stp_card_jcb_template@2x.png */, + 1DD70E290261A45100000000 /* stp_card_jcb_template@3x.png */, + 1DD70E291FC4F2F000000000 /* stp_card_mastercard@2x.png */, + 1DD70E292179CB8F00000000 /* stp_card_mastercard@3x.png */, + 1DD70E291572F3F900000000 /* stp_card_mastercard_template@2x.png */, + 1DD70E291727CC9800000000 /* stp_card_mastercard_template@3x.png */, + 1DD70E298DB231DC00000000 /* stp_card_placeholder_template@2x.png */, + 1DD70E298F670A7B00000000 /* stp_card_placeholder_template@3x.png */, + 1DD70E29705B110100000000 /* stp_card_visa@2x.png */, + 1DD70E29720FE9A000000000 /* stp_card_visa@3x.png */, + 1DD70E29E1BF190800000000 /* stp_card_visa_template@2x.png */, + 1DD70E29E373F1A700000000 /* stp_card_visa_template@3x.png */, + 1DD70E29EE385A8D00000000 /* surprised.tgs */, + 1DD70E2948ED794E00000000 /* telegram_plane1@2x.png */, + 1DD70E29501FCBD600000000 /* telegram_sphere@2x.png */, + 1DD70E2915A3422A00000000 /* thumbsup.tgs */, + 1DD70E29FA28CA1200000000 /* voip_busy.caf */, + 1DD70E296F409B3900000000 /* voip_connecting.mp3 */, + 1DD70E2957CD649600000000 /* voip_end.caf */, + 1DD70E2965E934B700000000 /* voip_fail.caf */, + 1DD70E29C78B98B000000000 /* voip_ringback.caf */, + ); + name = Resources; + sourceTree = ""; + }; + B401C9792F7F325000000000 /* Buck (Do Not Modify) */ = { + isa = PBXGroup; + children = ( + 1DD70E294E27EDFB00000000 /* AppLibrary-Debug.xcconfig */, + 1DD70E294906F2A500000000 /* AppLibrary-Profile.xcconfig */, + 1DD70E29BC9D9E0700000000 /* AppLibrary-Release.xcconfig */, + 1DD70E29A8C8657400000000 /* Telegram-Debug.xcconfig */, + 1DD70E297D676FDE00000000 /* Telegram-Profile.xcconfig */, + 1DD70E29F0FE1B4000000000 /* Telegram-Release.xcconfig */, + ); + name = "Buck (Do Not Modify)"; + sourceTree = ""; + }; + B401C97968022A5500000000 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 1DD70E297ADFB9F200000000 /* libAppLibrary.a */, + 1DD70E296A98D72D00000000 /* libAsyncDisplayKit.dylib */, + 1DD70E29FF334B1F00000000 /* libDisplay.dylib */, + 1DD70E29B22505DC00000000 /* libMtProtoKit.dylib */, + 1DD70E29DB6520C800000000 /* libPostbox.dylib */, + 1DD70E29D65BA68200000000 /* libSwiftSignalKit.dylib */, + 1DD70E29119CDA0700000000 /* libTelegramCore.dylib */, + 1DD70E291E5A1E9C00000000 /* libTelegramUI.dylib */, + ); + name = Frameworks; + sourceTree = ""; + }; + B401C979B2C34D2100000000 /* Telegram */ = { + isa = PBXGroup; + children = ( + 1DD70E29001F47FB00000001 /* BUCK */, + B401C979013EDE0500000000 /* Resources */, + B401C979EAB5339800000001 /* Sources */, + ); + name = Telegram; + sourceTree = ""; + }; + B401C979B781F65D00000000 /* Configurations */ = { + isa = PBXGroup; + children = ( + B401C9792F7F325000000000 /* Buck (Do Not Modify) */, + ); + name = Configurations; + sourceTree = ""; + }; + B401C979C43AA77A00000000 /* AppLibrary */ = { + isa = PBXGroup; + children = ( + 1DD70E29001F47FB00000000 /* BUCK */, + B401C979EAB5339800000000 /* Sources */, + ); + name = AppLibrary; + sourceTree = ""; + }; + B401C979C806358400000000 /* Products */ = { + isa = PBXGroup; + children = ( + 1DD70E29D83C37D400000000 /* Telegram.app */, + 1DD70E297ADFB9F200000001 /* libAppLibrary.a */, + ); + name = Products; + sourceTree = ""; + }; + B401C979EAB5339800000000 /* Sources */ = { + isa = PBXGroup; + children = ( + 1DD70E29988E33D500000000 /* Application.swift */, + 1DD70E29BF88817800000000 /* main.m */, + ); + name = Sources; + sourceTree = ""; + }; + B401C979EAB5339800000001 /* Sources */ = { + isa = PBXGroup; + children = ( + 1DD70E296ABF6A1200000000 /* Empty.swift */, + 1DD70E2906C06BEE00000000 /* Info.plist */, + ); + name = Sources; + sourceTree = ""; + }; + B401C979EFB6AC4600000000 /* mainGroup */ = { + isa = PBXGroup; + children = ( + B401C979C43AA77A00000000 /* AppLibrary */, + B401C979B781F65D00000000 /* Configurations */, + B401C97968022A5500000000 /* Frameworks */, + B401C979C806358400000000 /* Products */, + B401C979B2C34D2100000000 /* Telegram */, + ); + name = mainGroup; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + E66DC04EB2C34D2100000000 /* Telegram */ = { + isa = PBXNativeTarget; + buildConfigurationList = 218C37090000000000000001 /* Build configuration list for PBXNativeTarget "Telegram" */; + buildPhases = ( + 1870857F0000000000000001 /* Sources */, + 4F426D880000000000000000 /* Frameworks */, + 8A032D2C0000000000000000 /* Resources */, + FAF5FAC90000000000000001 /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Telegram; + productName = Telegram; + productReference = 1DD70E29D83C37D400000000 /* Telegram.app */; + productType = "com.apple.product-type.application"; + }; + E66DC04EC43AA77A00000000 /* AppLibrary */ = { + isa = PBXNativeTarget; + buildConfigurationList = 218C37090000000000000000 /* Build configuration list for PBXNativeTarget "AppLibrary" */; + buildPhases = ( + 1870857F0000000000000000 /* Sources */, + FAF5FAC90000000000000000 /* Fake Swift Dependencies (Copy Files Phase) */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = AppLibrary; + productName = AppLibrary; + productReference = 1DD70E297ADFB9F200000001 /* libAppLibrary.a */; + productType = "com.apple.product-type.library.static"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 96C847930001020100000000 /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 9999; + TargetAttributes = { + E66DC04EB2C34D2100000000 = { + DevelopmentTeam = X834Q8SBVP; + }; + }; + }; + buildConfigurationList = 218C37090000000000000002 /* Build configuration list for PBXProject "App" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ar, + ca, + de, + es, + fr, + id, + it, + ko, + ms, + nl, + pt, + ru, + tr, + uk, + ); + mainGroup = B401C979EFB6AC4600000000 /* mainGroup */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + E66DC04EC43AA77A00000000 /* AppLibrary */, + E66DC04EB2C34D2100000000 /* Telegram */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 8A032D2C0000000000000000 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 0; + files = ( + E7A30F049F00BA0200000000 /* anim_archive.json in Resources */, + E7A30F04406BEF2900000000 /* anim_archiveAvatar.json in Resources */, + E7A30F04A28B5AB000000000 /* anim_archiveswipe.json in Resources */, + E7A30F04DBA6021D00000000 /* anim_delete.json in Resources */, + E7A30F04BE69B5E500000000 /* anim_group.json in Resources */, + E7A30F0475FF5D6600000000 /* anim_hide.json in Resources */, + E7A30F044D77B07700000000 /* anim_infotip.json in Resources */, + E7A30F04884756EF00000000 /* anim_mute.json in Resources */, + E7A30F04ABD35C0F00000000 /* anim_pin.json in Resources */, + E7A30F0400BF759200000000 /* anim_read.json in Resources */, + E7A30F04DC82BB6100000000 /* anim_success.json in Resources */, + E7A30F042D05879B00000000 /* anim_unarchive.json in Resources */, + E7A30F04CE4715BE00000000 /* anim_ungroup.json in Resources */, + E7A30F0467C217F600000000 /* anim_unmute.json in Resources */, + E7A30F04B308DE2800000000 /* anim_unpin.json in Resources */, + E7A30F04E03A369900000000 /* anim_unread.json in Resources */, + E7A30F045283D1B900000000 /* celebrate.tgs in Resources */, + E7A30F043E51265C00000000 /* cry.tgs in Resources */, + E7A30F040BE206B800000000 /* heart.tgs in Resources */, + E7A30F041493803B00000000 /* lol.tgs in Resources */, + E7A30F043830E74200000000 /* meh.tgs in Resources */, + E7A30F04C364694E00000000 /* ok.tgs in Resources */, + E7A30F04B78460EB00000000 /* poker.tgs in Resources */, + E7A30F042602319200000000 /* poop.tgs in Resources */, + E7A30F046E8A8A4800000000 /* sad.tgs in Resources */, + E7A30F0445FD987A00000000 /* smile.tgs in Resources */, + E7A30F04EE385A8D00000000 /* surprised.tgs in Resources */, + E7A30F0415A3422A00000000 /* thumbsup.tgs in Resources */, + E7A30F047809716A00000000 /* ChatWallpaperBuiltin0.jpg in Resources */, + E7A30F04F1FA330600000000 /* Emoji.mapping in Resources */, + E7A30F04853D725600000000 /* SFCompactRounded-Semibold.otf in Resources */, + E7A30F0456813D8800000000 /* PhoneCountries.txt in Resources */, + E7A30F04EFAF72C800000000 /* PresentationStrings.mapping in Resources */, + E7A30F04443B21A300000000 /* stp_card_amex@2x.png in Resources */, + E7A30F0445EFFA4200000000 /* stp_card_amex@3x.png in Resources */, + E7A30F04976A9EA600000000 /* stp_card_amex_template@2x.png in Resources */, + E7A30F04991F774500000000 /* stp_card_amex_template@3x.png in Resources */, + E7A30F048CC42D1400000000 /* stp_card_applepay@2x.png in Resources */, + E7A30F048E7905B300000000 /* stp_card_applepay@3x.png in Resources */, + E7A30F04D548E25500000000 /* stp_card_applepay_template@2x.png in Resources */, + E7A30F04D6FDBAF400000000 /* stp_card_applepay_template@3x.png in Resources */, + E7A30F04D42F293000000000 /* stp_card_cvc@2x.png in Resources */, + E7A30F04D5E401CF00000000 /* stp_card_cvc@3x.png in Resources */, + E7A30F04C3C271B400000000 /* stp_card_cvc_amex@2x.png in Resources */, + E7A30F04C5774A5300000000 /* stp_card_cvc_amex@3x.png in Resources */, + E7A30F04B3A6F94500000000 /* stp_card_diners@2x.png in Resources */, + E7A30F04B55BD1E400000000 /* stp_card_diners@3x.png in Resources */, + E7A30F0494DA3D4400000000 /* stp_card_diners_template@2x.png in Resources */, + E7A30F04968F15E300000000 /* stp_card_diners_template@3x.png in Resources */, + E7A30F04F8214FD900000000 /* stp_card_discover@2x.png in Resources */, + E7A30F04F9D6287800000000 /* stp_card_discover@3x.png in Resources */, + E7A30F04A0160D3000000000 /* stp_card_discover_template@2x.png in Resources */, + E7A30F04A1CAE5CF00000000 /* stp_card_discover_template@3x.png in Resources */, + E7A30F044D95CA7700000000 /* stp_card_form_applepay@2x.png in Resources */, + E7A30F044F4AA31600000000 /* stp_card_form_applepay@3x.png in Resources */, + E7A30F049F5C287E00000000 /* stp_card_form_back@2x.png in Resources */, + E7A30F04A111011D00000000 /* stp_card_form_back@3x.png in Resources */, + E7A30F040933E8F400000000 /* stp_card_form_front@2x.png in Resources */, + E7A30F040AE8C19300000000 /* stp_card_form_front@3x.png in Resources */, + E7A30F04193BD71700000000 /* stp_card_jcb@2x.png in Resources */, + E7A30F041AF0AFB600000000 /* stp_card_jcb@3x.png in Resources */, + E7A30F0400ACCBB200000000 /* stp_card_jcb_template@2x.png in Resources */, + E7A30F040261A45100000000 /* stp_card_jcb_template@3x.png in Resources */, + E7A30F041FC4F2F000000000 /* stp_card_mastercard@2x.png in Resources */, + E7A30F042179CB8F00000000 /* stp_card_mastercard@3x.png in Resources */, + E7A30F041572F3F900000000 /* stp_card_mastercard_template@2x.png in Resources */, + E7A30F041727CC9800000000 /* stp_card_mastercard_template@3x.png in Resources */, + E7A30F048DB231DC00000000 /* stp_card_placeholder_template@2x.png in Resources */, + E7A30F048F670A7B00000000 /* stp_card_placeholder_template@3x.png in Resources */, + E7A30F04705B110100000000 /* stp_card_visa@2x.png in Resources */, + E7A30F04720FE9A000000000 /* stp_card_visa@3x.png in Resources */, + E7A30F04E1BF190800000000 /* stp_card_visa_template@2x.png in Resources */, + E7A30F04E373F1A700000000 /* stp_card_visa_template@3x.png in Resources */, + E7A30F04F76B198200000000 /* Generic.html in Resources */, + E7A30F04061BC94A00000000 /* GenericUserScript.js in Resources */, + E7A30F041292048700000000 /* Instagram.html in Resources */, + E7A30F04748244C600000000 /* Twitch.html in Resources */, + E7A30F045D05708E00000000 /* TwitchUserScript.js in Resources */, + E7A30F04BA96313500000000 /* Vimeo.html in Resources */, + E7A30F0440197DFD00000000 /* VimeoUserScript.js in Resources */, + E7A30F04799DE7B600000000 /* Youtube.html in Resources */, + E7A30F046587237E00000000 /* YoutubeUserScript.js in Resources */, + E7A30F04EB14130700000000 /* currencies.json in Resources */, + E7A30F043F61D17900000000 /* MessageSent.caf in Resources */, + E7A30F045FFC844500000000 /* notification.caf in Resources */, + E7A30F046C599FD900000000 /* NavigationBackArrowLight@2x.png in Resources */, + E7A30F0428A3C00D00000000 /* NavigationShadow@2x.png in Resources */, + E7A30F041040865A00000000 /* PhotoEditorCaption@2x.png in Resources */, + E7A30F0411F55EF900000000 /* PhotoEditorCaption@3x.png in Resources */, + E7A30F041882772900000000 /* PhotoEditorMute@2x.png in Resources */, + E7A30F042DEB974300000000 /* PhotoEditorMuteActive@2x.png in Resources */, + E7A30F043C514E0100000000 /* begin_record.caf in Resources */, + E7A30F04FE6965DB00000000 /* fast_arrow@2x.png in Resources */, + E7A30F04A9DA63C800000000 /* fast_arrow_shadow@2x.png in Resources */, + E7A30F04D64F57BC00000000 /* fast_body@2x.png in Resources */, + E7A30F04B3538C4D00000000 /* fast_spiral@2x.png in Resources */, + E7A30F048A46FE9000000000 /* ic_bubble@2x.png in Resources */, + E7A30F0499319B4600000000 /* ic_bubble_dot@2x.png in Resources */, + E7A30F0485169C9700000000 /* ic_cam@2x.png in Resources */, + E7A30F046AD832AE00000000 /* ic_cam_lens@2x.png in Resources */, + E7A30F0423B3C2EF00000000 /* ic_pencil@2x.png in Resources */, + E7A30F04F6D6001100000000 /* ic_pin@2x.png in Resources */, + E7A30F04E0F809FE00000000 /* ic_smile@2x.png in Resources */, + E7A30F04793765CC00000000 /* ic_smile_eye@2x.png in Resources */, + E7A30F04CFF88DE800000000 /* ic_videocam@2x.png in Resources */, + E7A30F04FB06A0E800000000 /* knot_down@2x.png in Resources */, + E7A30F04BF5CBB6200000000 /* knot_up1@2x.png in Resources */, + E7A30F04BAE267F200000000 /* powerful_infinity@2x.png in Resources */, + E7A30F0417567CC800000000 /* powerful_infinity_white@2x.png in Resources */, + E7A30F043C169B2E00000000 /* powerful_mask@2x.png in Resources */, + E7A30F04453E9D0800000000 /* powerful_star@2x.png in Resources */, + E7A30F04225D12D700000000 /* private_door@2x.png in Resources */, + E7A30F04B9D1C16900000000 /* private_screw@2x.png in Resources */, + E7A30F045B60B39500000000 /* start_arrow@2x.png in Resources */, + E7A30F04FABB82B800000000 /* start_arrow_ipad.png in Resources */, + E7A30F0451A94A6400000000 /* start_arrow_ipad@2x.png in Resources */, + E7A30F0448ED794E00000000 /* telegram_plane1@2x.png in Resources */, + E7A30F04501FCBD600000000 /* telegram_sphere@2x.png in Resources */, + E7A30F0402BAF11C00000000 /* 0.m4a in Resources */, + E7A30F0402C9089D00000000 /* 1.m4a in Resources */, + E7A30F0474B4E65D00000000 /* 100.m4a in Resources */, + E7A30F0474C2FDDE00000000 /* 101.m4a in Resources */, + E7A30F0474D1155F00000000 /* 102.m4a in Resources */, + E7A30F0474DF2CE000000000 /* 103.m4a in Resources */, + E7A30F0474ED446100000000 /* 104.m4a in Resources */, + E7A30F0474FB5BE200000000 /* 105.m4a in Resources */, + E7A30F047509736300000000 /* 106.m4a in Resources */, + E7A30F0475178AE400000000 /* 107.m4a in Resources */, + E7A30F047525A26500000000 /* 108.m4a in Resources */, + E7A30F047533B9E600000000 /* 109.m4a in Resources */, + E7A30F047669BEFC00000000 /* 110.m4a in Resources */, + E7A30F047677D67D00000000 /* 111.m4a in Resources */, + E7A30F0402D7201E00000000 /* 2.m4a in Resources */, + E7A30F0402E5379F00000000 /* 3.m4a in Resources */, + E7A30F0402F34F2000000000 /* 4.m4a in Resources */, + E7A30F04030166A100000000 /* 5.m4a in Resources */, + E7A30F04030F7E2200000000 /* 6.m4a in Resources */, + E7A30F04031D95A300000000 /* 7.m4a in Resources */, + E7A30F04032BAD2400000000 /* 8.m4a in Resources */, + E7A30F040339C4A500000000 /* 9.m4a in Resources */, + E7A30F04FA28CA1200000000 /* voip_busy.caf in Resources */, + E7A30F046F409B3900000000 /* voip_connecting.mp3 in Resources */, + E7A30F0457CD649600000000 /* voip_end.caf in Resources */, + E7A30F0465E934B700000000 /* voip_fail.caf in Resources */, + E7A30F04C78B98B000000000 /* voip_ringback.caf in Resources */, + E7A30F043453BAB500000000 /* BlackClassicIcon@2x.png in Resources */, + E7A30F043608935400000000 /* BlackClassicIcon@3x.png in Resources */, + E7A30F04A86C10B100000000 /* BlackClassicIconIpad.png in Resources */, + E7A30F04C682CDCB00000000 /* BlackClassicIconIpad@2x.png in Resources */, + E7A30F04039E80E800000000 /* BlackClassicIconLargeIpad@2x.png in Resources */, + E7A30F04A75B899200000000 /* BlackClassicNotificationIcon.png in Resources */, + E7A30F04E4269D4A00000000 /* BlackClassicNotificationIcon@2x.png in Resources */, + E7A30F04E5DB75E900000000 /* BlackClassicNotificationIcon@3x.png in Resources */, + E7A30F04C54DDB8700000000 /* BlackFilledIcon@2x.png in Resources */, + E7A30F04C702B42600000000 /* BlackFilledIcon@3x.png in Resources */, + E7A30F0436B60A1F00000000 /* BlackFilledIconIpad.png in Resources */, + E7A30F0418FC359D00000000 /* BlackFilledIconIpad@2x.png in Resources */, + E7A30F047E472C5600000000 /* BlackFilledIconLargeIpad@2x.png in Resources */, + E7A30F0488BEEF0900000000 /* BlackIcon@2x.png in Resources */, + E7A30F048A73C7A800000000 /* BlackIcon@3x.png in Resources */, + E7A30F04E16766DD00000000 /* BlackIconIpad.png in Resources */, + E7A30F04CED3B81F00000000 /* BlackIconIpad@2x.png in Resources */, + E7A30F048AA6EB1400000000 /* BlackIconLargeIpad@2x.png in Resources */, + E7A30F042E63F3BE00000000 /* BlackNotificationIcon.png in Resources */, + E7A30F04D061F39E00000000 /* BlackNotificationIcon@2x.png in Resources */, + E7A30F04D216CC3D00000000 /* BlackNotificationIcon@3x.png in Resources */, + E7A30F04038EEE9000000000 /* BlueClassicIcon@2x.png in Resources */, + E7A30F040543C72F00000000 /* BlueClassicIcon@3x.png in Resources */, + E7A30F04C097583600000000 /* BlueClassicIconIpad.png in Resources */, + E7A30F045AFA9C2600000000 /* BlueClassicIconIpad@2x.png in Resources */, + E7A30F04C320736D00000000 /* BlueClassicIconLargeIpad@2x.png in Resources */, + E7A30F0466DD7C1700000000 /* BlueClassicNotificationIcon.png in Resources */, + E7A30F04D743E0A500000000 /* BlueClassicNotificationIcon@2x.png in Resources */, + E7A30F04D8F8B94400000000 /* BlueClassicNotificationIcon@3x.png in Resources */, + E7A30F04D43F404C00000000 /* BlueFilledIcon@2x.png in Resources */, + E7A30F04D5F418EB00000000 /* BlueFilledIcon@3x.png in Resources */, + E7A30F0405F13DFA00000000 /* BlueFilledIconIpad.png in Resources */, + E7A30F04D373AFE200000000 /* BlueFilledIconIpad@2x.png in Resources */, + E7A30F045B2A553100000000 /* BlueFilledIconLargeIpad@2x.png in Resources */, + E7A30F04EEB88B8E00000000 /* BlueIcon@2x.png in Resources */, + E7A30F04F06D642D00000000 /* BlueIcon@3x.png in Resources */, + E7A30F043AA15AF800000000 /* BlueIconIpad.png in Resources */, + E7A30F042DF18A2400000000 /* BlueIconIpad@2x.png in Resources */, + E7A30F0477E4942F00000000 /* BlueIconLargeIpad@2x.png in Resources */, + E7A30F041BA19CD900000000 /* BlueNotificationIcon.png in Resources */, + E7A30F04CAE3F0A300000000 /* BlueNotificationIcon@2x.png in Resources */, + E7A30F04CC98C94200000000 /* BlueNotificationIcon@3x.png in Resources */, + E7A30F04E5D6389D00000000 /* WhiteFilledIcon@2x.png in Resources */, + E7A30F04E78B113C00000000 /* WhiteFilledIcon@3x.png in Resources */, + E7A30F048E96E34200000000 /* LaunchScreen.xib in Resources */, + E7A30F0468FBAA6A00000000 /* LegacyComponentsResources.bundle in Resources */, + E7A30F04A4169AE300000000 /* AppIcons.xcassets in Resources */, + E7A30F042925AEA200000000 /* Icons.xcassets in Resources */, + E7A30F043549D4C400000000 /* Images.xcassets in Resources */, + E7A30F04DCE9E9AA00000000 /* Localizable.strings in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 1870857F0000000000000000 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 0; + files = ( + E7A30F04988E33D500000000 /* Application.swift in Sources */, + E7A30F04BF88817800000000 /* main.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 1870857F0000000000000001 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 0; + files = ( + E7A30F046ABF6A1200000000 /* Empty.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + C73440C0DCE9E9AA00000000 /* Localizable.strings */ = { + isa = PBXVariantGroup; + children = ( + 1DD70E2900000C3100000000 /* ar */, + 1DD70E2900000C5E00000000 /* ca */, + 1DD70E2900000C8100000000 /* de */, + 1DD70E2900000CA900000000 /* en */, + 1DD70E2900000CAE00000000 /* es */, + 1DD70E2900000CCC00000000 /* fr */, + 1DD70E2900000D1B00000000 /* id */, + 1DD70E2900000D2B00000000 /* it */, + 1DD70E2900000D6400000000 /* ko */, + 1DD70E2900000DA600000000 /* ms */, + 1DD70E2900000DBE00000000 /* nl */, + 1DD70E2900000E0400000000 /* pt */, + 1DD70E2900000E4300000000 /* ru */, + 1DD70E2900000E7E00000000 /* tr */, + 1DD70E2900000E9600000000 /* uk */, + ); + name = Localizable.strings; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 4952437303EDA63300000000 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 1DD70E294E27EDFB00000000 /* AppLibrary-Debug.xcconfig */; + buildSettings = { + }; + name = Debug; + }; + 4952437303EDA63300000001 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 1DD70E29A8C8657400000000 /* Telegram-Debug.xcconfig */; + buildSettings = { + }; + name = Debug; + }; + 4952437303EDA63300000002 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + }; + name = Debug; + }; + 4952437350C7218900000000 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 1DD70E294906F2A500000000 /* AppLibrary-Profile.xcconfig */; + buildSettings = { + }; + name = Profile; + }; + 4952437350C7218900000001 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 1DD70E297D676FDE00000000 /* Telegram-Profile.xcconfig */; + buildSettings = { + }; + name = Profile; + }; + 4952437350C7218900000002 /* Profile */ = { + isa = XCBuildConfiguration; + buildSettings = { + }; + name = Profile; + }; + 49524373A439BFE700000000 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 1DD70E29BC9D9E0700000000 /* AppLibrary-Release.xcconfig */; + buildSettings = { + }; + name = Release; + }; + 49524373A439BFE700000001 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 1DD70E29F0FE1B4000000000 /* Telegram-Release.xcconfig */; + buildSettings = { + }; + name = Release; + }; + 49524373A439BFE700000002 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 218C37090000000000000000 /* Build configuration list for PBXNativeTarget "AppLibrary" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 4952437303EDA63300000000 /* Debug */, + 4952437350C7218900000000 /* Profile */, + 49524373A439BFE700000000 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 218C37090000000000000001 /* Build configuration list for PBXNativeTarget "Telegram" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 4952437303EDA63300000001 /* Debug */, + 4952437350C7218900000001 /* Profile */, + 49524373A439BFE700000001 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 218C37090000000000000002 /* Build configuration list for PBXProject "App" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 4952437303EDA63300000002 /* Debug */, + 4952437350C7218900000002 /* Profile */, + 49524373A439BFE700000002 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 96C847930001020100000000 /* Project object */; +} diff --git a/App/App.xcodeproj/xcshareddata/xcschemes/App.xcscheme b/App/App.xcodeproj/xcshareddata/xcschemes/App.xcscheme index 6ca885fee6..636972782d 100644 --- a/App/App.xcodeproj/xcshareddata/xcschemes/App.xcscheme +++ b/App/App.xcodeproj/xcshareddata/xcschemes/App.xcscheme @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/App/App.xcworkspace/buck-project.meta.json b/App/App.xcworkspace/buck-project.meta.json deleted file mode 100644 index f0a3491a77..0000000000 --- a/App/App.xcworkspace/buck-project.meta.json +++ /dev/null @@ -1 +0,0 @@ -{"required-targets":["//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_ac3_parser.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_adts_parser.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_avcodec.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_avdct.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_avfft.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_d3d11va.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_dirac.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_dv_profile.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_dxva2.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_jni.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_mediacodec.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_qsv.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_vaapi.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_vdpau.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_version.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_videotoolbox.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_vorbis_parser.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_xvmc.h","//submodules/FFMpeg:ffmpeg_header_libavformat_sub_avformat.h","//submodules/FFMpeg:ffmpeg_header_libavformat_sub_avio.h","//submodules/FFMpeg:ffmpeg_header_libavformat_sub_version.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_adler32.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_aes.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_aes_ctr.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_attributes.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_audio_fifo.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_avassert.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_avconfig.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_avstring.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_avutil.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_base64.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_blowfish.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_bprint.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_bswap.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_buffer.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_camellia.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_cast5.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_channel_layout.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_common.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_cpu.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_crc.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_des.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_dict.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_display.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_downmix_info.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_encryption_info.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_error.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_eval.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_ffversion.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_fifo.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_file.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_frame.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_hash.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_hmac.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_hwcontext.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_hwcontext_cuda.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_hwcontext_d3d11va.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_hwcontext_drm.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_hwcontext_dxva2.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_hwcontext_mediacodec.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_hwcontext_qsv.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_hwcontext_vaapi.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_hwcontext_vdpau.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_hwcontext_videotoolbox.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_imgutils.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_intfloat.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_intreadwrite.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_lfg.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_log.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_lzo.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_macros.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_mastering_display_metadata.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_mathematics.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_md5.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_mem.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_motion_vector.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_murmur3.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_opt.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_parseutils.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_pixdesc.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_pixelutils.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_pixfmt.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_random_seed.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_rational.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_rc4.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_replaygain.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_ripemd.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_samplefmt.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_sha.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_sha512.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_spherical.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_stereo3d.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_tea.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_threadmessage.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_time.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_timecode.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_timestamp.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_tree.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_twofish.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_version.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_xtea.h","//submodules/FFMpeg:ffmpeg_header_libswresample_sub_swresample.h","//submodules/FFMpeg:ffmpeg_header_libswresample_sub_version.h","//submodules/FFMpeg:libffmpeg_build","//submodules/MtProtoKit:openssl_libs","//submodules/Opus:opus_lib_file","//submodules/WebP:WebP_lib_file"],"xcconfig-paths":["buck-out/gen/App/App-Debug.xcconfig","buck-out/gen/App/App-Profile.xcconfig","buck-out/gen/App/App-Release.xcconfig","buck-out/gen/App/AppLibrary-Debug.xcconfig","buck-out/gen/App/AppLibrary-Profile.xcconfig","buck-out/gen/App/AppLibrary-Release.xcconfig","buck-out/gen/submodules/AccountContext/AccountContext-Debug.xcconfig","buck-out/gen/submodules/AccountContext/AccountContext-Profile.xcconfig","buck-out/gen/submodules/AccountContext/AccountContext-Release.xcconfig","buck-out/gen/submodules/ActionSheetPeerItem/ActionSheetPeerItem-Debug.xcconfig","buck-out/gen/submodules/ActionSheetPeerItem/ActionSheetPeerItem-Profile.xcconfig","buck-out/gen/submodules/ActionSheetPeerItem/ActionSheetPeerItem-Release.xcconfig","buck-out/gen/submodules/ActivityIndicator/ActivityIndicator-Debug.xcconfig","buck-out/gen/submodules/ActivityIndicator/ActivityIndicator-Profile.xcconfig","buck-out/gen/submodules/ActivityIndicator/ActivityIndicator-Release.xcconfig","buck-out/gen/submodules/AlertUI/AlertUI-Debug.xcconfig","buck-out/gen/submodules/AlertUI/AlertUI-Profile.xcconfig","buck-out/gen/submodules/AlertUI/AlertUI-Release.xcconfig","buck-out/gen/submodules/AnimationUI/AnimationUI-Debug.xcconfig","buck-out/gen/submodules/AnimationUI/AnimationUI-Profile.xcconfig","buck-out/gen/submodules/AnimationUI/AnimationUI-Release.xcconfig","buck-out/gen/submodules/AsyncDisplayKit/AsyncDisplayKit#shared-Debug.xcconfig","buck-out/gen/submodules/AsyncDisplayKit/AsyncDisplayKit#shared-Profile.xcconfig","buck-out/gen/submodules/AsyncDisplayKit/AsyncDisplayKit#shared-Release.xcconfig","buck-out/gen/submodules/AuthorizationUI/AuthorizationUI-Debug.xcconfig","buck-out/gen/submodules/AuthorizationUI/AuthorizationUI-Profile.xcconfig","buck-out/gen/submodules/AuthorizationUI/AuthorizationUI-Release.xcconfig","buck-out/gen/submodules/AvatarNode/AvatarNode-Debug.xcconfig","buck-out/gen/submodules/AvatarNode/AvatarNode-Profile.xcconfig","buck-out/gen/submodules/AvatarNode/AvatarNode-Release.xcconfig","buck-out/gen/submodules/BotPaymentsUI/BotPaymentsUI-Debug.xcconfig","buck-out/gen/submodules/BotPaymentsUI/BotPaymentsUI-Profile.xcconfig","buck-out/gen/submodules/BotPaymentsUI/BotPaymentsUI-Release.xcconfig","buck-out/gen/submodules/BuildConfig/BuildConfig-Debug.xcconfig","buck-out/gen/submodules/BuildConfig/BuildConfig-Profile.xcconfig","buck-out/gen/submodules/BuildConfig/BuildConfig-Release.xcconfig","buck-out/gen/submodules/CallListUI/CallListUI-Debug.xcconfig","buck-out/gen/submodules/CallListUI/CallListUI-Profile.xcconfig","buck-out/gen/submodules/CallListUI/CallListUI-Release.xcconfig","buck-out/gen/submodules/ChatListSearchItemHeader/ChatListSearchItemHeader-Debug.xcconfig","buck-out/gen/submodules/ChatListSearchItemHeader/ChatListSearchItemHeader-Profile.xcconfig","buck-out/gen/submodules/ChatListSearchItemHeader/ChatListSearchItemHeader-Release.xcconfig","buck-out/gen/submodules/ChatListSearchItemNode/ChatListSearchItemNode-Debug.xcconfig","buck-out/gen/submodules/ChatListSearchItemNode/ChatListSearchItemNode-Profile.xcconfig","buck-out/gen/submodules/ChatListSearchItemNode/ChatListSearchItemNode-Release.xcconfig","buck-out/gen/submodules/ChatListSearchRecentPeersNode/ChatListSearchRecentPeersNode-Debug.xcconfig","buck-out/gen/submodules/ChatListSearchRecentPeersNode/ChatListSearchRecentPeersNode-Profile.xcconfig","buck-out/gen/submodules/ChatListSearchRecentPeersNode/ChatListSearchRecentPeersNode-Release.xcconfig","buck-out/gen/submodules/ChatListUI/ChatListUI-Debug.xcconfig","buck-out/gen/submodules/ChatListUI/ChatListUI-Profile.xcconfig","buck-out/gen/submodules/ChatListUI/ChatListUI-Release.xcconfig","buck-out/gen/submodules/ChatTitleActivityNode/ChatTitleActivityNode-Debug.xcconfig","buck-out/gen/submodules/ChatTitleActivityNode/ChatTitleActivityNode-Profile.xcconfig","buck-out/gen/submodules/ChatTitleActivityNode/ChatTitleActivityNode-Release.xcconfig","buck-out/gen/submodules/CheckNode/CheckNode-Debug.xcconfig","buck-out/gen/submodules/CheckNode/CheckNode-Profile.xcconfig","buck-out/gen/submodules/CheckNode/CheckNode-Release.xcconfig","buck-out/gen/submodules/ComposePollUI/ComposePollUI-Debug.xcconfig","buck-out/gen/submodules/ComposePollUI/ComposePollUI-Profile.xcconfig","buck-out/gen/submodules/ComposePollUI/ComposePollUI-Release.xcconfig","buck-out/gen/submodules/ContactListUI/ContactListUI-Debug.xcconfig","buck-out/gen/submodules/ContactListUI/ContactListUI-Profile.xcconfig","buck-out/gen/submodules/ContactListUI/ContactListUI-Release.xcconfig","buck-out/gen/submodules/ContactsPeerItem/ContactsPeerItem-Debug.xcconfig","buck-out/gen/submodules/ContactsPeerItem/ContactsPeerItem-Profile.xcconfig","buck-out/gen/submodules/ContactsPeerItem/ContactsPeerItem-Release.xcconfig","buck-out/gen/submodules/ContextUI/ContextUI-Debug.xcconfig","buck-out/gen/submodules/ContextUI/ContextUI-Profile.xcconfig","buck-out/gen/submodules/ContextUI/ContextUI-Release.xcconfig","buck-out/gen/submodules/CounterContollerTitleView/CounterContollerTitleView-Debug.xcconfig","buck-out/gen/submodules/CounterContollerTitleView/CounterContollerTitleView-Profile.xcconfig","buck-out/gen/submodules/CounterContollerTitleView/CounterContollerTitleView-Release.xcconfig","buck-out/gen/submodules/CountrySelectionUI/CountrySelectionUI-Debug.xcconfig","buck-out/gen/submodules/CountrySelectionUI/CountrySelectionUI-Profile.xcconfig","buck-out/gen/submodules/CountrySelectionUI/CountrySelectionUI-Release.xcconfig","buck-out/gen/submodules/Crc32/Crc32-Debug.xcconfig","buck-out/gen/submodules/Crc32/Crc32-Profile.xcconfig","buck-out/gen/submodules/Crc32/Crc32-Release.xcconfig","buck-out/gen/submodules/DateSelectionUI/DateSelectionUI-Debug.xcconfig","buck-out/gen/submodules/DateSelectionUI/DateSelectionUI-Profile.xcconfig","buck-out/gen/submodules/DateSelectionUI/DateSelectionUI-Release.xcconfig","buck-out/gen/submodules/DeleteChatPeerActionSheetItem/DeleteChatPeerActionSheetItem-Debug.xcconfig","buck-out/gen/submodules/DeleteChatPeerActionSheetItem/DeleteChatPeerActionSheetItem-Profile.xcconfig","buck-out/gen/submodules/DeleteChatPeerActionSheetItem/DeleteChatPeerActionSheetItem-Release.xcconfig","buck-out/gen/submodules/DeviceAccess/DeviceAccess-Debug.xcconfig","buck-out/gen/submodules/DeviceAccess/DeviceAccess-Profile.xcconfig","buck-out/gen/submodules/DeviceAccess/DeviceAccess-Release.xcconfig","buck-out/gen/submodules/DeviceLocationManager/DeviceLocationManager-Debug.xcconfig","buck-out/gen/submodules/DeviceLocationManager/DeviceLocationManager-Profile.xcconfig","buck-out/gen/submodules/DeviceLocationManager/DeviceLocationManager-Release.xcconfig","buck-out/gen/submodules/DeviceProximity/DeviceProximity-Debug.xcconfig","buck-out/gen/submodules/DeviceProximity/DeviceProximity-Profile.xcconfig","buck-out/gen/submodules/DeviceProximity/DeviceProximity-Release.xcconfig","buck-out/gen/submodules/DirectionalPanGesture/DirectionalPanGesture-Debug.xcconfig","buck-out/gen/submodules/DirectionalPanGesture/DirectionalPanGesture-Profile.xcconfig","buck-out/gen/submodules/DirectionalPanGesture/DirectionalPanGesture-Release.xcconfig","buck-out/gen/submodules/Display/Display#shared-Debug.xcconfig","buck-out/gen/submodules/Display/Display#shared-Profile.xcconfig","buck-out/gen/submodules/Display/Display#shared-Release.xcconfig","buck-out/gen/submodules/Emoji/Emoji-Debug.xcconfig","buck-out/gen/submodules/Emoji/Emoji-Profile.xcconfig","buck-out/gen/submodules/Emoji/Emoji-Release.xcconfig","buck-out/gen/submodules/EncryptionKeyVisualization/EncryptionKeyVisualization-Debug.xcconfig","buck-out/gen/submodules/EncryptionKeyVisualization/EncryptionKeyVisualization-Profile.xcconfig","buck-out/gen/submodules/EncryptionKeyVisualization/EncryptionKeyVisualization-Release.xcconfig","buck-out/gen/submodules/FFMpeg/FFMpeg-Debug.xcconfig","buck-out/gen/submodules/FFMpeg/FFMpeg-Profile.xcconfig","buck-out/gen/submodules/FFMpeg/FFMpeg-Release.xcconfig","buck-out/gen/submodules/FFMpeg/libffmpeg-Debug.xcconfig","buck-out/gen/submodules/FFMpeg/libffmpeg-Profile.xcconfig","buck-out/gen/submodules/FFMpeg/libffmpeg-Release.xcconfig","buck-out/gen/submodules/GZip/GZip-Debug.xcconfig","buck-out/gen/submodules/GZip/GZip-Profile.xcconfig","buck-out/gen/submodules/GZip/GZip-Release.xcconfig","buck-out/gen/submodules/GalleryUI/GalleryUI-Debug.xcconfig","buck-out/gen/submodules/GalleryUI/GalleryUI-Profile.xcconfig","buck-out/gen/submodules/GalleryUI/GalleryUI-Release.xcconfig","buck-out/gen/submodules/GameUI/GameUI-Debug.xcconfig","buck-out/gen/submodules/GameUI/GameUI-Profile.xcconfig","buck-out/gen/submodules/GameUI/GameUI-Release.xcconfig","buck-out/gen/submodules/Geocoding/Geocoding-Debug.xcconfig","buck-out/gen/submodules/Geocoding/Geocoding-Profile.xcconfig","buck-out/gen/submodules/Geocoding/Geocoding-Release.xcconfig","buck-out/gen/submodules/GridMessageSelectionNode/GridMessageSelectionNode-Debug.xcconfig","buck-out/gen/submodules/GridMessageSelectionNode/GridMessageSelectionNode-Profile.xcconfig","buck-out/gen/submodules/GridMessageSelectionNode/GridMessageSelectionNode-Release.xcconfig","buck-out/gen/submodules/HashtagSearchUI/HashtagSearchUI-Debug.xcconfig","buck-out/gen/submodules/HashtagSearchUI/HashtagSearchUI-Profile.xcconfig","buck-out/gen/submodules/HashtagSearchUI/HashtagSearchUI-Release.xcconfig","buck-out/gen/submodules/HexColor/HexColor-Debug.xcconfig","buck-out/gen/submodules/HexColor/HexColor-Profile.xcconfig","buck-out/gen/submodules/HexColor/HexColor-Release.xcconfig","buck-out/gen/submodules/HockeySDK-iOS/HockeySDK-Debug.xcconfig","buck-out/gen/submodules/HockeySDK-iOS/HockeySDK-Profile.xcconfig","buck-out/gen/submodules/HockeySDK-iOS/HockeySDK-Release.xcconfig","buck-out/gen/submodules/HorizontalPeerItem/HorizontalPeerItem-Debug.xcconfig","buck-out/gen/submodules/HorizontalPeerItem/HorizontalPeerItem-Profile.xcconfig","buck-out/gen/submodules/HorizontalPeerItem/HorizontalPeerItem-Release.xcconfig","buck-out/gen/submodules/ImageBlur/ImageBlur-Debug.xcconfig","buck-out/gen/submodules/ImageBlur/ImageBlur-Profile.xcconfig","buck-out/gen/submodules/ImageBlur/ImageBlur-Release.xcconfig","buck-out/gen/submodules/ImageCompression/ImageCompression-Debug.xcconfig","buck-out/gen/submodules/ImageCompression/ImageCompression-Profile.xcconfig","buck-out/gen/submodules/ImageCompression/ImageCompression-Release.xcconfig","buck-out/gen/submodules/ImageTransparency/ImageTransparency-Debug.xcconfig","buck-out/gen/submodules/ImageTransparency/ImageTransparency-Profile.xcconfig","buck-out/gen/submodules/ImageTransparency/ImageTransparency-Release.xcconfig","buck-out/gen/submodules/InstantPageCache/InstantPageCache-Debug.xcconfig","buck-out/gen/submodules/InstantPageCache/InstantPageCache-Profile.xcconfig","buck-out/gen/submodules/InstantPageCache/InstantPageCache-Release.xcconfig","buck-out/gen/submodules/InstantPageUI/InstantPageUI-Debug.xcconfig","buck-out/gen/submodules/InstantPageUI/InstantPageUI-Profile.xcconfig","buck-out/gen/submodules/InstantPageUI/InstantPageUI-Release.xcconfig","buck-out/gen/submodules/ItemListAddressItem/ItemListAddressItem-Debug.xcconfig","buck-out/gen/submodules/ItemListAddressItem/ItemListAddressItem-Profile.xcconfig","buck-out/gen/submodules/ItemListAddressItem/ItemListAddressItem-Release.xcconfig","buck-out/gen/submodules/ItemListAvatarAndNameInfoItem/ItemListAvatarAndNameInfoItem-Debug.xcconfig","buck-out/gen/submodules/ItemListAvatarAndNameInfoItem/ItemListAvatarAndNameInfoItem-Profile.xcconfig","buck-out/gen/submodules/ItemListAvatarAndNameInfoItem/ItemListAvatarAndNameInfoItem-Release.xcconfig","buck-out/gen/submodules/ItemListPeerActionItem/ItemListPeerActionItem-Debug.xcconfig","buck-out/gen/submodules/ItemListPeerActionItem/ItemListPeerActionItem-Profile.xcconfig","buck-out/gen/submodules/ItemListPeerActionItem/ItemListPeerActionItem-Release.xcconfig","buck-out/gen/submodules/ItemListPeerItem/ItemListPeerItem-Debug.xcconfig","buck-out/gen/submodules/ItemListPeerItem/ItemListPeerItem-Profile.xcconfig","buck-out/gen/submodules/ItemListPeerItem/ItemListPeerItem-Release.xcconfig","buck-out/gen/submodules/ItemListStickerPackItem/ItemListStickerPackItem-Debug.xcconfig","buck-out/gen/submodules/ItemListStickerPackItem/ItemListStickerPackItem-Profile.xcconfig","buck-out/gen/submodules/ItemListStickerPackItem/ItemListStickerPackItem-Release.xcconfig","buck-out/gen/submodules/ItemListUI/ItemListUI-Debug.xcconfig","buck-out/gen/submodules/ItemListUI/ItemListUI-Profile.xcconfig","buck-out/gen/submodules/ItemListUI/ItemListUI-Release.xcconfig","buck-out/gen/submodules/JoinLinkPreviewUI/JoinLinkPreviewUI-Debug.xcconfig","buck-out/gen/submodules/JoinLinkPreviewUI/JoinLinkPreviewUI-Profile.xcconfig","buck-out/gen/submodules/JoinLinkPreviewUI/JoinLinkPreviewUI-Release.xcconfig","buck-out/gen/submodules/LanguageLinkPreviewUI/LanguageLinkPreviewUI-Debug.xcconfig","buck-out/gen/submodules/LanguageLinkPreviewUI/LanguageLinkPreviewUI-Profile.xcconfig","buck-out/gen/submodules/LanguageLinkPreviewUI/LanguageLinkPreviewUI-Release.xcconfig","buck-out/gen/submodules/LanguageSuggestionUI/LanguageSuggestionUI-Debug.xcconfig","buck-out/gen/submodules/LanguageSuggestionUI/LanguageSuggestionUI-Profile.xcconfig","buck-out/gen/submodules/LanguageSuggestionUI/LanguageSuggestionUI-Release.xcconfig","buck-out/gen/submodules/LegacyComponents/LegacyComponents-Debug.xcconfig","buck-out/gen/submodules/LegacyComponents/LegacyComponents-Profile.xcconfig","buck-out/gen/submodules/LegacyComponents/LegacyComponents-Release.xcconfig","buck-out/gen/submodules/LegacyDataImport/LegacyDataImport-Debug.xcconfig","buck-out/gen/submodules/LegacyDataImport/LegacyDataImport-Profile.xcconfig","buck-out/gen/submodules/LegacyDataImport/LegacyDataImport-Release.xcconfig","buck-out/gen/submodules/LegacyMediaPickerUI/LegacyMediaPickerUI-Debug.xcconfig","buck-out/gen/submodules/LegacyMediaPickerUI/LegacyMediaPickerUI-Profile.xcconfig","buck-out/gen/submodules/LegacyMediaPickerUI/LegacyMediaPickerUI-Release.xcconfig","buck-out/gen/submodules/LegacyUI/LegacyUI-Debug.xcconfig","buck-out/gen/submodules/LegacyUI/LegacyUI-Profile.xcconfig","buck-out/gen/submodules/LegacyUI/LegacyUI-Release.xcconfig","buck-out/gen/submodules/LightweightAccountData/LightweightAccountData-Debug.xcconfig","buck-out/gen/submodules/LightweightAccountData/LightweightAccountData-Profile.xcconfig","buck-out/gen/submodules/LightweightAccountData/LightweightAccountData-Release.xcconfig","buck-out/gen/submodules/ListSectionHeaderNode/ListSectionHeaderNode-Debug.xcconfig","buck-out/gen/submodules/ListSectionHeaderNode/ListSectionHeaderNode-Profile.xcconfig","buck-out/gen/submodules/ListSectionHeaderNode/ListSectionHeaderNode-Release.xcconfig","buck-out/gen/submodules/LiveLocationManager/LiveLocationManager-Debug.xcconfig","buck-out/gen/submodules/LiveLocationManager/LiveLocationManager-Profile.xcconfig","buck-out/gen/submodules/LiveLocationManager/LiveLocationManager-Release.xcconfig","buck-out/gen/submodules/LiveLocationPositionNode/LiveLocationPositionNode-Debug.xcconfig","buck-out/gen/submodules/LiveLocationPositionNode/LiveLocationPositionNode-Profile.xcconfig","buck-out/gen/submodules/LiveLocationPositionNode/LiveLocationPositionNode-Release.xcconfig","buck-out/gen/submodules/LiveLocationTimerNode/LiveLocationTimerNode-Debug.xcconfig","buck-out/gen/submodules/LiveLocationTimerNode/LiveLocationTimerNode-Profile.xcconfig","buck-out/gen/submodules/LiveLocationTimerNode/LiveLocationTimerNode-Release.xcconfig","buck-out/gen/submodules/LocalAuth/LocalAuth-Debug.xcconfig","buck-out/gen/submodules/LocalAuth/LocalAuth-Profile.xcconfig","buck-out/gen/submodules/LocalAuth/LocalAuth-Release.xcconfig","buck-out/gen/submodules/LocalMediaResources/LocalMediaResources-Debug.xcconfig","buck-out/gen/submodules/LocalMediaResources/LocalMediaResources-Profile.xcconfig","buck-out/gen/submodules/LocalMediaResources/LocalMediaResources-Release.xcconfig","buck-out/gen/submodules/LocalizedPeerData/LocalizedPeerData-Debug.xcconfig","buck-out/gen/submodules/LocalizedPeerData/LocalizedPeerData-Profile.xcconfig","buck-out/gen/submodules/LocalizedPeerData/LocalizedPeerData-Release.xcconfig","buck-out/gen/submodules/LocationUI/LocationUI-Debug.xcconfig","buck-out/gen/submodules/LocationUI/LocationUI-Profile.xcconfig","buck-out/gen/submodules/LocationUI/LocationUI-Release.xcconfig","buck-out/gen/submodules/MapResourceToAvatarSizes/MapResourceToAvatarSizes-Debug.xcconfig","buck-out/gen/submodules/MapResourceToAvatarSizes/MapResourceToAvatarSizes-Profile.xcconfig","buck-out/gen/submodules/MapResourceToAvatarSizes/MapResourceToAvatarSizes-Release.xcconfig","buck-out/gen/submodules/MediaPlayer/UniversalMediaPlayer-Debug.xcconfig","buck-out/gen/submodules/MediaPlayer/UniversalMediaPlayer-Profile.xcconfig","buck-out/gen/submodules/MediaPlayer/UniversalMediaPlayer-Release.xcconfig","buck-out/gen/submodules/MediaResources/MediaResources-Debug.xcconfig","buck-out/gen/submodules/MediaResources/MediaResources-Profile.xcconfig","buck-out/gen/submodules/MediaResources/MediaResources-Release.xcconfig","buck-out/gen/submodules/MergeLists/MergeLists-Debug.xcconfig","buck-out/gen/submodules/MergeLists/MergeLists-Profile.xcconfig","buck-out/gen/submodules/MergeLists/MergeLists-Release.xcconfig","buck-out/gen/submodules/MimeTypes/MimeTypes-Debug.xcconfig","buck-out/gen/submodules/MimeTypes/MimeTypes-Profile.xcconfig","buck-out/gen/submodules/MimeTypes/MimeTypes-Release.xcconfig","buck-out/gen/submodules/MosaicLayout/MosaicLayout-Debug.xcconfig","buck-out/gen/submodules/MosaicLayout/MosaicLayout-Profile.xcconfig","buck-out/gen/submodules/MosaicLayout/MosaicLayout-Release.xcconfig","buck-out/gen/submodules/MtProtoKit/MtProtoKit#shared-Debug.xcconfig","buck-out/gen/submodules/MtProtoKit/MtProtoKit#shared-Profile.xcconfig","buck-out/gen/submodules/MtProtoKit/MtProtoKit#shared-Release.xcconfig","buck-out/gen/submodules/MtProtoKit/openssl-Debug.xcconfig","buck-out/gen/submodules/MtProtoKit/openssl-Profile.xcconfig","buck-out/gen/submodules/MtProtoKit/openssl-Release.xcconfig","buck-out/gen/submodules/MusicAlbumArtResources/MusicAlbumArtResources-Debug.xcconfig","buck-out/gen/submodules/MusicAlbumArtResources/MusicAlbumArtResources-Profile.xcconfig","buck-out/gen/submodules/MusicAlbumArtResources/MusicAlbumArtResources-Release.xcconfig","buck-out/gen/submodules/NotificationMuteSettingsUI/NotificationMuteSettingsUI-Debug.xcconfig","buck-out/gen/submodules/NotificationMuteSettingsUI/NotificationMuteSettingsUI-Profile.xcconfig","buck-out/gen/submodules/NotificationMuteSettingsUI/NotificationMuteSettingsUI-Release.xcconfig","buck-out/gen/submodules/NotificationSoundSelectionUI/NotificationSoundSelectionUI-Debug.xcconfig","buck-out/gen/submodules/NotificationSoundSelectionUI/NotificationSoundSelectionUI-Profile.xcconfig","buck-out/gen/submodules/NotificationSoundSelectionUI/NotificationSoundSelectionUI-Release.xcconfig","buck-out/gen/submodules/OpenInExternalAppUI/OpenInExternalAppUI-Debug.xcconfig","buck-out/gen/submodules/OpenInExternalAppUI/OpenInExternalAppUI-Profile.xcconfig","buck-out/gen/submodules/OpenInExternalAppUI/OpenInExternalAppUI-Release.xcconfig","buck-out/gen/submodules/Opus/opus-Debug.xcconfig","buck-out/gen/submodules/Opus/opus-Profile.xcconfig","buck-out/gen/submodules/Opus/opus-Release.xcconfig","buck-out/gen/submodules/Opus/opus_lib-Debug.xcconfig","buck-out/gen/submodules/Opus/opus_lib-Profile.xcconfig","buck-out/gen/submodules/Opus/opus_lib-Release.xcconfig","buck-out/gen/submodules/OpusBinding/OpusBinding-Debug.xcconfig","buck-out/gen/submodules/OpusBinding/OpusBinding-Profile.xcconfig","buck-out/gen/submodules/OpusBinding/OpusBinding-Release.xcconfig","buck-out/gen/submodules/OverlayStatusController/OverlayStatusController-Debug.xcconfig","buck-out/gen/submodules/OverlayStatusController/OverlayStatusController-Profile.xcconfig","buck-out/gen/submodules/OverlayStatusController/OverlayStatusController-Release.xcconfig","buck-out/gen/submodules/PasscodeUI/PasscodeUI-Debug.xcconfig","buck-out/gen/submodules/PasscodeUI/PasscodeUI-Profile.xcconfig","buck-out/gen/submodules/PasscodeUI/PasscodeUI-Release.xcconfig","buck-out/gen/submodules/PassportUI/PassportUI-Debug.xcconfig","buck-out/gen/submodules/PassportUI/PassportUI-Profile.xcconfig","buck-out/gen/submodules/PassportUI/PassportUI-Release.xcconfig","buck-out/gen/submodules/PasswordSetupUI/PasswordSetupUI-Debug.xcconfig","buck-out/gen/submodules/PasswordSetupUI/PasswordSetupUI-Profile.xcconfig","buck-out/gen/submodules/PasswordSetupUI/PasswordSetupUI-Release.xcconfig","buck-out/gen/submodules/Pdf/Pdf-Debug.xcconfig","buck-out/gen/submodules/Pdf/Pdf-Profile.xcconfig","buck-out/gen/submodules/Pdf/Pdf-Release.xcconfig","buck-out/gen/submodules/PeerAvatarGalleryUI/PeerAvatarGalleryUI-Debug.xcconfig","buck-out/gen/submodules/PeerAvatarGalleryUI/PeerAvatarGalleryUI-Profile.xcconfig","buck-out/gen/submodules/PeerAvatarGalleryUI/PeerAvatarGalleryUI-Release.xcconfig","buck-out/gen/submodules/PeerInfoUI/PeerInfoUI-Debug.xcconfig","buck-out/gen/submodules/PeerInfoUI/PeerInfoUI-Profile.xcconfig","buck-out/gen/submodules/PeerInfoUI/PeerInfoUI-Release.xcconfig","buck-out/gen/submodules/PeerOnlineMarkerNode/PeerOnlineMarkerNode-Debug.xcconfig","buck-out/gen/submodules/PeerOnlineMarkerNode/PeerOnlineMarkerNode-Profile.xcconfig","buck-out/gen/submodules/PeerOnlineMarkerNode/PeerOnlineMarkerNode-Release.xcconfig","buck-out/gen/submodules/PeerPresenceStatusManager/PeerPresenceStatusManager-Debug.xcconfig","buck-out/gen/submodules/PeerPresenceStatusManager/PeerPresenceStatusManager-Profile.xcconfig","buck-out/gen/submodules/PeerPresenceStatusManager/PeerPresenceStatusManager-Release.xcconfig","buck-out/gen/submodules/PeersNearbyIconNode/PeersNearbyIconNode-Debug.xcconfig","buck-out/gen/submodules/PeersNearbyIconNode/PeersNearbyIconNode-Profile.xcconfig","buck-out/gen/submodules/PeersNearbyIconNode/PeersNearbyIconNode-Release.xcconfig","buck-out/gen/submodules/PeersNearbyUI/PeersNearbyUI-Debug.xcconfig","buck-out/gen/submodules/PeersNearbyUI/PeersNearbyUI-Profile.xcconfig","buck-out/gen/submodules/PeersNearbyUI/PeersNearbyUI-Release.xcconfig","buck-out/gen/submodules/PersistentStringHash/PersistentStringHash-Debug.xcconfig","buck-out/gen/submodules/PersistentStringHash/PersistentStringHash-Profile.xcconfig","buck-out/gen/submodules/PersistentStringHash/PersistentStringHash-Release.xcconfig","buck-out/gen/submodules/PhoneInputNode/PhoneInputNode-Debug.xcconfig","buck-out/gen/submodules/PhoneInputNode/PhoneInputNode-Profile.xcconfig","buck-out/gen/submodules/PhoneInputNode/PhoneInputNode-Release.xcconfig","buck-out/gen/submodules/PhotoResources/PhotoResources-Debug.xcconfig","buck-out/gen/submodules/PhotoResources/PhotoResources-Profile.xcconfig","buck-out/gen/submodules/PhotoResources/PhotoResources-Release.xcconfig","buck-out/gen/submodules/PlatformRestrictionMatching/PlatformRestrictionMatching-Debug.xcconfig","buck-out/gen/submodules/PlatformRestrictionMatching/PlatformRestrictionMatching-Profile.xcconfig","buck-out/gen/submodules/PlatformRestrictionMatching/PlatformRestrictionMatching-Release.xcconfig","buck-out/gen/submodules/Postbox/Postbox#shared-Debug.xcconfig","buck-out/gen/submodules/Postbox/Postbox#shared-Profile.xcconfig","buck-out/gen/submodules/Postbox/Postbox#shared-Release.xcconfig","buck-out/gen/submodules/ProgressNavigationButtonNode/ProgressNavigationButtonNode-Debug.xcconfig","buck-out/gen/submodules/ProgressNavigationButtonNode/ProgressNavigationButtonNode-Profile.xcconfig","buck-out/gen/submodules/ProgressNavigationButtonNode/ProgressNavigationButtonNode-Release.xcconfig","buck-out/gen/submodules/QrCode/QrCode-Debug.xcconfig","buck-out/gen/submodules/QrCode/QrCode-Profile.xcconfig","buck-out/gen/submodules/QrCode/QrCode-Release.xcconfig","buck-out/gen/submodules/RLottie/RLottie-Debug.xcconfig","buck-out/gen/submodules/RLottie/RLottie-Profile.xcconfig","buck-out/gen/submodules/RLottie/RLottie-Release.xcconfig","buck-out/gen/submodules/RMIntro/RMIntro-Debug.xcconfig","buck-out/gen/submodules/RMIntro/RMIntro-Profile.xcconfig","buck-out/gen/submodules/RMIntro/RMIntro-Release.xcconfig","buck-out/gen/submodules/RadialStatusNode/RadialStatusNode-Debug.xcconfig","buck-out/gen/submodules/RadialStatusNode/RadialStatusNode-Profile.xcconfig","buck-out/gen/submodules/RadialStatusNode/RadialStatusNode-Release.xcconfig","buck-out/gen/submodules/RaiseToListen/RaiseToListen-Debug.xcconfig","buck-out/gen/submodules/RaiseToListen/RaiseToListen-Profile.xcconfig","buck-out/gen/submodules/RaiseToListen/RaiseToListen-Release.xcconfig","buck-out/gen/submodules/ReactionSelectionNode/ReactionSelectionNode-Debug.xcconfig","buck-out/gen/submodules/ReactionSelectionNode/ReactionSelectionNode-Profile.xcconfig","buck-out/gen/submodules/ReactionSelectionNode/ReactionSelectionNode-Release.xcconfig","buck-out/gen/submodules/SSignalKit/SSignalKit/SSignalKit-Debug.xcconfig","buck-out/gen/submodules/SSignalKit/SSignalKit/SSignalKit-Profile.xcconfig","buck-out/gen/submodules/SSignalKit/SSignalKit/SSignalKit-Release.xcconfig","buck-out/gen/submodules/SSignalKit/SwiftSignalKit/SwiftSignalKit#shared-Debug.xcconfig","buck-out/gen/submodules/SSignalKit/SwiftSignalKit/SwiftSignalKit#shared-Profile.xcconfig","buck-out/gen/submodules/SSignalKit/SwiftSignalKit/SwiftSignalKit#shared-Release.xcconfig","buck-out/gen/submodules/SaveToCameraRoll/SaveToCameraRoll-Debug.xcconfig","buck-out/gen/submodules/SaveToCameraRoll/SaveToCameraRoll-Profile.xcconfig","buck-out/gen/submodules/SaveToCameraRoll/SaveToCameraRoll-Release.xcconfig","buck-out/gen/submodules/ScreenCaptureDetection/ScreenCaptureDetection-Debug.xcconfig","buck-out/gen/submodules/ScreenCaptureDetection/ScreenCaptureDetection-Profile.xcconfig","buck-out/gen/submodules/ScreenCaptureDetection/ScreenCaptureDetection-Release.xcconfig","buck-out/gen/submodules/SearchBarNode/SearchBarNode-Debug.xcconfig","buck-out/gen/submodules/SearchBarNode/SearchBarNode-Profile.xcconfig","buck-out/gen/submodules/SearchBarNode/SearchBarNode-Release.xcconfig","buck-out/gen/submodules/SearchUI/SearchUI-Debug.xcconfig","buck-out/gen/submodules/SearchUI/SearchUI-Profile.xcconfig","buck-out/gen/submodules/SearchUI/SearchUI-Release.xcconfig","buck-out/gen/submodules/SelectablePeerNode/SelectablePeerNode-Debug.xcconfig","buck-out/gen/submodules/SelectablePeerNode/SelectablePeerNode-Profile.xcconfig","buck-out/gen/submodules/SelectablePeerNode/SelectablePeerNode-Release.xcconfig","buck-out/gen/submodules/SettingsUI/SettingsUI-Debug.xcconfig","buck-out/gen/submodules/SettingsUI/SettingsUI-Profile.xcconfig","buck-out/gen/submodules/SettingsUI/SettingsUI-Release.xcconfig","buck-out/gen/submodules/ShareController/ShareController-Debug.xcconfig","buck-out/gen/submodules/ShareController/ShareController-Profile.xcconfig","buck-out/gen/submodules/ShareController/ShareController-Release.xcconfig","buck-out/gen/submodules/ShareItems/ShareItems-Debug.xcconfig","buck-out/gen/submodules/ShareItems/ShareItems-Profile.xcconfig","buck-out/gen/submodules/ShareItems/ShareItems-Release.xcconfig","buck-out/gen/submodules/SinglePhoneInputNode/SinglePhoneInputNode-Debug.xcconfig","buck-out/gen/submodules/SinglePhoneInputNode/SinglePhoneInputNode-Profile.xcconfig","buck-out/gen/submodules/SinglePhoneInputNode/SinglePhoneInputNode-Release.xcconfig","buck-out/gen/submodules/SolidRoundedButtonNode/SolidRoundedButtonNode-Debug.xcconfig","buck-out/gen/submodules/SolidRoundedButtonNode/SolidRoundedButtonNode-Profile.xcconfig","buck-out/gen/submodules/SolidRoundedButtonNode/SolidRoundedButtonNode-Release.xcconfig","buck-out/gen/submodules/StickerPackPreviewUI/StickerPackPreviewUI-Debug.xcconfig","buck-out/gen/submodules/StickerPackPreviewUI/StickerPackPreviewUI-Profile.xcconfig","buck-out/gen/submodules/StickerPackPreviewUI/StickerPackPreviewUI-Release.xcconfig","buck-out/gen/submodules/StickerResources/StickerResources-Debug.xcconfig","buck-out/gen/submodules/StickerResources/StickerResources-Profile.xcconfig","buck-out/gen/submodules/StickerResources/StickerResources-Release.xcconfig","buck-out/gen/submodules/Stripe/Stripe-Debug.xcconfig","buck-out/gen/submodules/Stripe/Stripe-Profile.xcconfig","buck-out/gen/submodules/Stripe/Stripe-Release.xcconfig","buck-out/gen/submodules/SwipeToDismissGesture/SwipeToDismissGesture-Debug.xcconfig","buck-out/gen/submodules/SwipeToDismissGesture/SwipeToDismissGesture-Profile.xcconfig","buck-out/gen/submodules/SwipeToDismissGesture/SwipeToDismissGesture-Release.xcconfig","buck-out/gen/submodules/SwitchNode/SwitchNode-Debug.xcconfig","buck-out/gen/submodules/SwitchNode/SwitchNode-Profile.xcconfig","buck-out/gen/submodules/SwitchNode/SwitchNode-Release.xcconfig","buck-out/gen/submodules/TelegramApi/TelegramApi-Debug.xcconfig","buck-out/gen/submodules/TelegramApi/TelegramApi-Profile.xcconfig","buck-out/gen/submodules/TelegramApi/TelegramApi-Release.xcconfig","buck-out/gen/submodules/TelegramAudio/TelegramAudio-Debug.xcconfig","buck-out/gen/submodules/TelegramAudio/TelegramAudio-Profile.xcconfig","buck-out/gen/submodules/TelegramAudio/TelegramAudio-Release.xcconfig","buck-out/gen/submodules/TelegramBaseController/TelegramBaseController-Debug.xcconfig","buck-out/gen/submodules/TelegramBaseController/TelegramBaseController-Profile.xcconfig","buck-out/gen/submodules/TelegramBaseController/TelegramBaseController-Release.xcconfig","buck-out/gen/submodules/TelegramCallsUI/TelegramCallsUI-Debug.xcconfig","buck-out/gen/submodules/TelegramCallsUI/TelegramCallsUI-Profile.xcconfig","buck-out/gen/submodules/TelegramCallsUI/TelegramCallsUI-Release.xcconfig","buck-out/gen/submodules/TelegramCore/TelegramCore#shared-Debug.xcconfig","buck-out/gen/submodules/TelegramCore/TelegramCore#shared-Profile.xcconfig","buck-out/gen/submodules/TelegramCore/TelegramCore#shared-Release.xcconfig","buck-out/gen/submodules/TelegramNotices/TelegramNotices-Debug.xcconfig","buck-out/gen/submodules/TelegramNotices/TelegramNotices-Profile.xcconfig","buck-out/gen/submodules/TelegramNotices/TelegramNotices-Release.xcconfig","buck-out/gen/submodules/TelegramPermissions/TelegramPermissions-Debug.xcconfig","buck-out/gen/submodules/TelegramPermissions/TelegramPermissions-Profile.xcconfig","buck-out/gen/submodules/TelegramPermissions/TelegramPermissions-Release.xcconfig","buck-out/gen/submodules/TelegramPermissionsUI/TelegramPermissionsUI-Debug.xcconfig","buck-out/gen/submodules/TelegramPermissionsUI/TelegramPermissionsUI-Profile.xcconfig","buck-out/gen/submodules/TelegramPermissionsUI/TelegramPermissionsUI-Release.xcconfig","buck-out/gen/submodules/TelegramPresentationData/TelegramPresentationData-Debug.xcconfig","buck-out/gen/submodules/TelegramPresentationData/TelegramPresentationData-Profile.xcconfig","buck-out/gen/submodules/TelegramPresentationData/TelegramPresentationData-Release.xcconfig","buck-out/gen/submodules/TelegramStringFormatting/TelegramStringFormatting-Debug.xcconfig","buck-out/gen/submodules/TelegramStringFormatting/TelegramStringFormatting-Profile.xcconfig","buck-out/gen/submodules/TelegramStringFormatting/TelegramStringFormatting-Release.xcconfig","buck-out/gen/submodules/TelegramUI/TelegramUI#shared-Debug.xcconfig","buck-out/gen/submodules/TelegramUI/TelegramUI#shared-Profile.xcconfig","buck-out/gen/submodules/TelegramUI/TelegramUI#shared-Release.xcconfig","buck-out/gen/submodules/TelegramUIPreferences/TelegramUIPreferences-Debug.xcconfig","buck-out/gen/submodules/TelegramUIPreferences/TelegramUIPreferences-Profile.xcconfig","buck-out/gen/submodules/TelegramUIPreferences/TelegramUIPreferences-Release.xcconfig","buck-out/gen/submodules/TelegramUniversalVideoContent/TelegramUniversalVideoContent-Debug.xcconfig","buck-out/gen/submodules/TelegramUniversalVideoContent/TelegramUniversalVideoContent-Profile.xcconfig","buck-out/gen/submodules/TelegramUniversalVideoContent/TelegramUniversalVideoContent-Release.xcconfig","buck-out/gen/submodules/TelegramUpdateUI/TelegramUpdateUI-Debug.xcconfig","buck-out/gen/submodules/TelegramUpdateUI/TelegramUpdateUI-Profile.xcconfig","buck-out/gen/submodules/TelegramUpdateUI/TelegramUpdateUI-Release.xcconfig","buck-out/gen/submodules/TelegramVoip/TelegramVoip-Debug.xcconfig","buck-out/gen/submodules/TelegramVoip/TelegramVoip-Profile.xcconfig","buck-out/gen/submodules/TelegramVoip/TelegramVoip-Release.xcconfig","buck-out/gen/submodules/TemporaryCachedPeerDataManager/TemporaryCachedPeerDataManager-Debug.xcconfig","buck-out/gen/submodules/TemporaryCachedPeerDataManager/TemporaryCachedPeerDataManager-Profile.xcconfig","buck-out/gen/submodules/TemporaryCachedPeerDataManager/TemporaryCachedPeerDataManager-Release.xcconfig","buck-out/gen/submodules/TextFormat/TextFormat-Debug.xcconfig","buck-out/gen/submodules/TextFormat/TextFormat-Profile.xcconfig","buck-out/gen/submodules/TextFormat/TextFormat-Release.xcconfig","buck-out/gen/submodules/TextSelectionNode/TextSelectionNode-Debug.xcconfig","buck-out/gen/submodules/TextSelectionNode/TextSelectionNode-Profile.xcconfig","buck-out/gen/submodules/TextSelectionNode/TextSelectionNode-Release.xcconfig","buck-out/gen/submodules/TinyThumbnail/TinyThumbnail-Debug.xcconfig","buck-out/gen/submodules/TinyThumbnail/TinyThumbnail-Profile.xcconfig","buck-out/gen/submodules/TinyThumbnail/TinyThumbnail-Release.xcconfig","buck-out/gen/submodules/TouchDownGesture/TouchDownGesture-Debug.xcconfig","buck-out/gen/submodules/TouchDownGesture/TouchDownGesture-Profile.xcconfig","buck-out/gen/submodules/TouchDownGesture/TouchDownGesture-Release.xcconfig","buck-out/gen/submodules/Tuples/Tuples-Debug.xcconfig","buck-out/gen/submodules/Tuples/Tuples-Profile.xcconfig","buck-out/gen/submodules/Tuples/Tuples-Release.xcconfig","buck-out/gen/submodules/UndoUI/UndoUI-Debug.xcconfig","buck-out/gen/submodules/UndoUI/UndoUI-Profile.xcconfig","buck-out/gen/submodules/UndoUI/UndoUI-Release.xcconfig","buck-out/gen/submodules/UrlEscaping/UrlEscaping-Debug.xcconfig","buck-out/gen/submodules/UrlEscaping/UrlEscaping-Profile.xcconfig","buck-out/gen/submodules/UrlEscaping/UrlEscaping-Release.xcconfig","buck-out/gen/submodules/UrlHandling/UrlHandling-Debug.xcconfig","buck-out/gen/submodules/UrlHandling/UrlHandling-Profile.xcconfig","buck-out/gen/submodules/UrlHandling/UrlHandling-Release.xcconfig","buck-out/gen/submodules/WallpaperResources/WallpaperResources-Debug.xcconfig","buck-out/gen/submodules/WallpaperResources/WallpaperResources-Profile.xcconfig","buck-out/gen/submodules/WallpaperResources/WallpaperResources-Release.xcconfig","buck-out/gen/submodules/WatchBridge/WatchBridge-Debug.xcconfig","buck-out/gen/submodules/WatchBridge/WatchBridge-Profile.xcconfig","buck-out/gen/submodules/WatchBridge/WatchBridge-Release.xcconfig","buck-out/gen/submodules/WatchBridgeAudio/WatchBridgeAudio-Debug.xcconfig","buck-out/gen/submodules/WatchBridgeAudio/WatchBridgeAudio-Profile.xcconfig","buck-out/gen/submodules/WatchBridgeAudio/WatchBridgeAudio-Release.xcconfig","buck-out/gen/submodules/WatchCommon/WatchCommon-Debug.xcconfig","buck-out/gen/submodules/WatchCommon/WatchCommon-Profile.xcconfig","buck-out/gen/submodules/WatchCommon/WatchCommon-Release.xcconfig","buck-out/gen/submodules/WebP/WebPImage-Debug.xcconfig","buck-out/gen/submodules/WebP/WebPImage-Profile.xcconfig","buck-out/gen/submodules/WebP/WebPImage-Release.xcconfig","buck-out/gen/submodules/WebP/WebP_lib-Debug.xcconfig","buck-out/gen/submodules/WebP/WebP_lib-Profile.xcconfig","buck-out/gen/submodules/WebP/WebP_lib-Release.xcconfig","buck-out/gen/submodules/WebSearchUI/WebSearchUI-Debug.xcconfig","buck-out/gen/submodules/WebSearchUI/WebSearchUI-Profile.xcconfig","buck-out/gen/submodules/WebSearchUI/WebSearchUI-Release.xcconfig","buck-out/gen/submodules/WebUI/WebUI-Debug.xcconfig","buck-out/gen/submodules/WebUI/WebUI-Profile.xcconfig","buck-out/gen/submodules/WebUI/WebUI-Release.xcconfig","buck-out/gen/submodules/WebsiteType/WebsiteType-Debug.xcconfig","buck-out/gen/submodules/WebsiteType/WebsiteType-Profile.xcconfig","buck-out/gen/submodules/WebsiteType/WebsiteType-Release.xcconfig","buck-out/gen/submodules/YuvConversion/YuvConversion-Debug.xcconfig","buck-out/gen/submodules/YuvConversion/YuvConversion-Profile.xcconfig","buck-out/gen/submodules/YuvConversion/YuvConversion-Release.xcconfig","buck-out/gen/submodules/libphonenumber/libphonenumber-Debug.xcconfig","buck-out/gen/submodules/libphonenumber/libphonenumber-Profile.xcconfig","buck-out/gen/submodules/libphonenumber/libphonenumber-Release.xcconfig","buck-out/gen/submodules/libtgvoip/libtgvoip-Debug.xcconfig","buck-out/gen/submodules/libtgvoip/libtgvoip-Profile.xcconfig","buck-out/gen/submodules/libtgvoip/libtgvoip-Release.xcconfig","buck-out/gen/submodules/lottie-ios/Lottie-Debug.xcconfig","buck-out/gen/submodules/lottie-ios/Lottie-Profile.xcconfig","buck-out/gen/submodules/lottie-ios/Lottie-Release.xcconfig","buck-out/gen/submodules/sqlcipher/sqlcipher-Debug.xcconfig","buck-out/gen/submodules/sqlcipher/sqlcipher-Profile.xcconfig","buck-out/gen/submodules/sqlcipher/sqlcipher-Release.xcconfig"],"copy-in-xcode":[]} \ No newline at end of file diff --git a/App/App.xcworkspace/contents.xcworkspacedata b/App/App.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 0df6cedd5b..0000000000 --- a/App/App.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/App/BUCK b/App/BUCK index 70b10d176e..4bf0d7f273 100644 --- a/App/BUCK +++ b/App/BUCK @@ -19,6 +19,7 @@ ui_tests = [ static_library_dependencies = [ ] + framework_dependencies = [ "//submodules/MtProtoKit:MtProtoKit", "//submodules/SSignalKit/SwiftSignalKit:SwiftSignalKit", @@ -29,6 +30,18 @@ framework_dependencies = [ "//submodules/TelegramUI:TelegramUI", ] +resource_dependencies = [ + "//submodules/LegacyComponents:LegacyComponentsResources", + "//submodules/TelegramUI:TelegramUIAssets", + "//submodules/TelegramUI:TelegramUIResources", + "//:AppResources", + "//:AppStringResources", + "//:Icons", + "//:AppIcons", + "//:AdditionalIcons", + "//:LaunchScreen", +] + build_phase_scripts = [ ] @@ -56,7 +69,7 @@ apple_binary( "//App:", "//App/...", ], - configs = app_binary_configs("App"), + configs = app_binary_configs("Telegram"), swift_version = native.read_config("swift", "version"), srcs = [ "SupportFiles/Empty.swift", @@ -64,32 +77,32 @@ apple_binary( deps = [ ":AppLibrary", ] + + resource_dependencies, ) xcode_workspace_config( name = "workspace", - workspace_name = "App", - src_target = ":App", + workspace_name = "Telegram_Buck", + src_target = ":Telegram", ) apple_bundle( - name = "App", + name = "Telegram", visibility = [ "//App:", ], extension = "app", binary = ":AppBinary", - product_name = "App", + product_name = "Telegram", info_plist = "Info.plist", - info_plist_substitutions = app_info_plist_substitutions("App"), + info_plist_substitutions = app_info_plist_substitutions("Telegram"), deps = [ - #"//submodules/Emoji:EmojiFiles", ] + framework_bundle_dependencies(framework_dependencies), ) apple_package( name = "AppPackage", - bundle = ":App", + bundle = ":Telegram", ) diff --git a/App/Info.plist b/App/Info.plist index 64ef73c0b6..0c3c9d00ae 100644 --- a/App/Info.plist +++ b/App/Info.plist @@ -2,19 +2,180 @@ + CFBundleAllowMixedLocalizations + CFBundleDevelopmentRegion - $(DEVELOPMENT_LANGUAGE) + en + CFBundleDisplayName + ${APP_NAME} CFBundleExecutable - App - CFBundleIconFiles - - Icon.png - Icon@2x.png - Icon-72.png - Icon-72@2x.png - Icon-Small-50.png - Icon-Small-50@2x.png - + $(EXECUTABLE_NAME) + CFBundleIcons + + CFBundleAlternateIcons + + Black + + CFBundleIconFiles + + BlackIcon + BlackNotificationIcon + + UIPrerenderedIcon + + + BlackClassic + + CFBundleIconFiles + + BlackClassicIcon + BlackClassicNotificationIcon + + UIPrerenderedIcon + + + BlackFilled + + CFBundleIconFiles + + BlackFilledIcon + + UIPrerenderedIcon + + + Blue + + CFBundleIconFiles + + BlueIcon + BlueNotificationIcon + + UIPrerenderedIcon + + + BlueClassic + + CFBundleIconFiles + + BlueClassicIcon + BlueClassicNotificationIcon + + UIPrerenderedIcon + + + BlueFilled + + CFBundleIconFiles + + BlueFilledIcon + + UIPrerenderedIcon + + + WhiteFilled + + CFBundleIconFiles + + WhiteFilledIcon + + UIPrerenderedIcon + + + + CFBundlePrimaryIcon + + CFBundleIconName + AppIconLLC + UIPrerenderedIcon + + + + CFBundleIcons~ipad + + CFBundleAlternateIcons + + Black + + CFBundleIconFiles + + BlackIconIpad + BlackIconLargeIpad + BlackNotificationIcon + + UIPrerenderedIcon + + + BlackClassic + + CFBundleIconFiles + + BlackClassicIconIpad + BlackClassicIconLargeIpad + BlackClassicNotificationIcon + + UIPrerenderedIcon + + + BlackFilled + + CFBundleIconFiles + + BlackFilledIconIpad + BlackFilledIconLargeIpad + + UIPrerenderedIcon + + + Blue + + CFBundleIconFiles + + BlueIconIpad + BlueIconLargeIpad + BlueNotificationIcon + + UIPrerenderedIcon + + + BlueClassic + + CFBundleIconFiles + + BlueClassicIconIpad + BlueClassicIconLargeIpad + BlueClassicNotificationIcon + + UIPrerenderedIcon + + + BlueFilled + + CFBundleIconFiles + + BlueFilledIconIpad + BlueFilledIconLargeIpad + + UIPrerenderedIcon + + + WhiteFilled + + CFBundleIconFiles + + WhiteFilledIcon + + UIPrerenderedIcon + + + + CFBundlePrimaryIcon + + CFBundleIconName + AppIconLLC + UIPrerenderedIcon + + + CFBundleIdentifier $(PRODUCT_BUNDLE_IDENTIFIER) CFBundleInfoDictionaryVersion @@ -24,17 +185,134 @@ CFBundlePackageType APPL CFBundleShortVersionString - 1.0 + 5.11 + CFBundleSignature + ???? + CFBundleURLTypes + + + CFBundleTypeRole + Viewer + CFBundleURLName + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleURLSchemes + + telegram + + + + CFBundleTypeRole + Editor + CFBundleURLName + $(PRODUCT_BUNDLE_IDENTIFIER).compatibility + CFBundleURLSchemes + + tg + $(APP_SPECIFIC_URL_SCHEME) + + + + CFBundleTypeRole + Viewer + CFBundleURLName + $(PRODUCT_BUNDLE_IDENTIFIER).dropbox + CFBundleURLSchemes + + db-pa9wtoz9l514anx + + + CFBundleVersion - 1 + ${BUILD_NUMBER} + ITSAppUsesNonExemptEncryption + + LSApplicationQueriesSchemes + + instagram + comgooglemaps-x-callback + foursquare + here-location + yandexmaps + yandexnavi + comgooglemaps + youtube + twitter + vk + waze + googlechrome + googlechromes + firefox + touch-http + touch-https + yandexbrowser-open-url + vimeo + vine + coub + uber + citymapper + lyft + opera-http + opera-https + firefox-focus + ddgQuickLink + moovit + LSRequiresIPhoneOS + NSAppTransportSecurity + + NSAllowsArbitraryLoads + + + NSCameraUsageDescription + We need this so that you can take and share photos and videos. + NSContactsUsageDescription + Telegram stores your contacts heavily encrypted in the cloud to let you connect with your friends across all your devices. + NSFaceIDUsageDescription + You can use Face ID to unlock the app. + NSLocationAlwaysUsageDescription + When you send your location to your friends, Telegram needs access to show them a map. You also need this to send locations from an Apple Watch. + NSLocationWhenInUseUsageDescription + When you send your location to your friends, Telegram needs access to show them a map. + NSMicrophoneUsageDescription + We need this so that you can record and share voice messages and videos with sound. + NSMotionUsageDescription + When you send your location to your friends, Telegram needs access to show them a map. + NSPhotoLibraryAddUsageDescription + We need this so that you can share photos and videos from your photo library. + NSPhotoLibraryUsageDescription + We need this so that you can share photos and videos from your photo library. + NSSiriUsageDescription + You can use Siri to send messages. + NSUserActivityTypes + + INSendMessageIntent + RemindAboutChatIntent + + UIAppFonts + + SFCompactRounded-Semibold.otf + + UIBackgroundModes + + audio + fetch + location + remote-notification + voip + + UIFileSharingEnabled + UILaunchStoryboardName LaunchScreen UIRequiredDeviceCapabilities - arm64 + armv7 + UIRequiresPersistentWiFi + + UIStatusBarStyle + UIStatusBarStyleDefault UISupportedInterfaceOrientations UIInterfaceOrientationPortrait @@ -48,5 +326,35 @@ UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight + UIViewControllerBasedStatusBarAppearance + + UIViewEdgeAntialiasing + + UIViewGroupOpacity + + UTImportedTypeDeclarations + + + UTTypeConformsTo + + public.data + + UTTypeDescription + Telegram iOS Color Theme File + UTTypeIconFiles + + BlueIcon@3x.png + + UTTypeIdentifier + org.telegram.Telegram-iOS.theme + UTTypeTagSpecification + + public.filename-extension + + tgios-theme + + + + diff --git a/App/Info_bak.plist b/App/Info_bak.plist new file mode 100644 index 0000000000..64ef73c0b6 --- /dev/null +++ b/App/Info_bak.plist @@ -0,0 +1,52 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + App + CFBundleIconFiles + + Icon.png + Icon@2x.png + Icon-72.png + Icon-72@2x.png + Icon-Small-50.png + Icon-Small-50@2x.png + + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + LSRequiresIPhoneOS + + UILaunchStoryboardName + LaunchScreen + UIRequiredDeviceCapabilities + + arm64 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + + diff --git a/App/Telegram_Buck.xcworkspace/buck-project.meta.json b/App/Telegram_Buck.xcworkspace/buck-project.meta.json new file mode 100644 index 0000000000..d2de42c689 --- /dev/null +++ b/App/Telegram_Buck.xcworkspace/buck-project.meta.json @@ -0,0 +1 @@ +{"required-targets":["//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_ac3_parser.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_adts_parser.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_avcodec.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_avdct.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_avfft.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_d3d11va.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_dirac.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_dv_profile.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_dxva2.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_jni.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_mediacodec.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_qsv.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_vaapi.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_vdpau.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_version.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_videotoolbox.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_vorbis_parser.h","//submodules/FFMpeg:ffmpeg_header_libavcodec_sub_xvmc.h","//submodules/FFMpeg:ffmpeg_header_libavformat_sub_avformat.h","//submodules/FFMpeg:ffmpeg_header_libavformat_sub_avio.h","//submodules/FFMpeg:ffmpeg_header_libavformat_sub_version.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_adler32.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_aes.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_aes_ctr.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_attributes.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_audio_fifo.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_avassert.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_avconfig.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_avstring.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_avutil.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_base64.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_blowfish.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_bprint.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_bswap.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_buffer.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_camellia.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_cast5.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_channel_layout.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_common.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_cpu.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_crc.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_des.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_dict.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_display.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_downmix_info.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_encryption_info.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_error.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_eval.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_ffversion.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_fifo.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_file.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_frame.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_hash.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_hmac.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_hwcontext.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_hwcontext_cuda.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_hwcontext_d3d11va.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_hwcontext_drm.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_hwcontext_dxva2.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_hwcontext_mediacodec.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_hwcontext_qsv.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_hwcontext_vaapi.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_hwcontext_vdpau.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_hwcontext_videotoolbox.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_imgutils.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_intfloat.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_intreadwrite.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_lfg.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_log.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_lzo.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_macros.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_mastering_display_metadata.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_mathematics.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_md5.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_mem.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_motion_vector.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_murmur3.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_opt.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_parseutils.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_pixdesc.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_pixelutils.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_pixfmt.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_random_seed.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_rational.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_rc4.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_replaygain.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_ripemd.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_samplefmt.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_sha.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_sha512.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_spherical.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_stereo3d.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_tea.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_threadmessage.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_time.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_timecode.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_timestamp.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_tree.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_twofish.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_version.h","//submodules/FFMpeg:ffmpeg_header_libavutil_sub_xtea.h","//submodules/FFMpeg:ffmpeg_header_libswresample_sub_swresample.h","//submodules/FFMpeg:ffmpeg_header_libswresample_sub_version.h","//submodules/FFMpeg:libffmpeg_build","//submodules/MtProtoKit:openssl_libs","//submodules/Opus:opus_lib_file","//submodules/WebP:WebP_lib_file"],"xcconfig-paths":["buck-out/gen/App/AppLibrary-Debug.xcconfig","buck-out/gen/App/AppLibrary-Profile.xcconfig","buck-out/gen/App/AppLibrary-Release.xcconfig","buck-out/gen/App/Telegram-Debug.xcconfig","buck-out/gen/App/Telegram-Profile.xcconfig","buck-out/gen/App/Telegram-Release.xcconfig","buck-out/gen/submodules/AccountContext/AccountContext-Debug.xcconfig","buck-out/gen/submodules/AccountContext/AccountContext-Profile.xcconfig","buck-out/gen/submodules/AccountContext/AccountContext-Release.xcconfig","buck-out/gen/submodules/ActionSheetPeerItem/ActionSheetPeerItem-Debug.xcconfig","buck-out/gen/submodules/ActionSheetPeerItem/ActionSheetPeerItem-Profile.xcconfig","buck-out/gen/submodules/ActionSheetPeerItem/ActionSheetPeerItem-Release.xcconfig","buck-out/gen/submodules/ActivityIndicator/ActivityIndicator-Debug.xcconfig","buck-out/gen/submodules/ActivityIndicator/ActivityIndicator-Profile.xcconfig","buck-out/gen/submodules/ActivityIndicator/ActivityIndicator-Release.xcconfig","buck-out/gen/submodules/AlertUI/AlertUI-Debug.xcconfig","buck-out/gen/submodules/AlertUI/AlertUI-Profile.xcconfig","buck-out/gen/submodules/AlertUI/AlertUI-Release.xcconfig","buck-out/gen/submodules/AnimationUI/AnimationUI-Debug.xcconfig","buck-out/gen/submodules/AnimationUI/AnimationUI-Profile.xcconfig","buck-out/gen/submodules/AnimationUI/AnimationUI-Release.xcconfig","buck-out/gen/submodules/AppBundle/AppBundle-Debug.xcconfig","buck-out/gen/submodules/AppBundle/AppBundle-Profile.xcconfig","buck-out/gen/submodules/AppBundle/AppBundle-Release.xcconfig","buck-out/gen/submodules/AsyncDisplayKit/AsyncDisplayKit#shared-Debug.xcconfig","buck-out/gen/submodules/AsyncDisplayKit/AsyncDisplayKit#shared-Profile.xcconfig","buck-out/gen/submodules/AsyncDisplayKit/AsyncDisplayKit#shared-Release.xcconfig","buck-out/gen/submodules/AuthorizationUI/AuthorizationUI-Debug.xcconfig","buck-out/gen/submodules/AuthorizationUI/AuthorizationUI-Profile.xcconfig","buck-out/gen/submodules/AuthorizationUI/AuthorizationUI-Release.xcconfig","buck-out/gen/submodules/AvatarNode/AvatarNode-Debug.xcconfig","buck-out/gen/submodules/AvatarNode/AvatarNode-Profile.xcconfig","buck-out/gen/submodules/AvatarNode/AvatarNode-Release.xcconfig","buck-out/gen/submodules/BotPaymentsUI/BotPaymentsUI-Debug.xcconfig","buck-out/gen/submodules/BotPaymentsUI/BotPaymentsUI-Profile.xcconfig","buck-out/gen/submodules/BotPaymentsUI/BotPaymentsUI-Release.xcconfig","buck-out/gen/submodules/BuildConfig/BuildConfig-Debug.xcconfig","buck-out/gen/submodules/BuildConfig/BuildConfig-Profile.xcconfig","buck-out/gen/submodules/BuildConfig/BuildConfig-Release.xcconfig","buck-out/gen/submodules/CallListUI/CallListUI-Debug.xcconfig","buck-out/gen/submodules/CallListUI/CallListUI-Profile.xcconfig","buck-out/gen/submodules/CallListUI/CallListUI-Release.xcconfig","buck-out/gen/submodules/ChatListSearchItemHeader/ChatListSearchItemHeader-Debug.xcconfig","buck-out/gen/submodules/ChatListSearchItemHeader/ChatListSearchItemHeader-Profile.xcconfig","buck-out/gen/submodules/ChatListSearchItemHeader/ChatListSearchItemHeader-Release.xcconfig","buck-out/gen/submodules/ChatListSearchItemNode/ChatListSearchItemNode-Debug.xcconfig","buck-out/gen/submodules/ChatListSearchItemNode/ChatListSearchItemNode-Profile.xcconfig","buck-out/gen/submodules/ChatListSearchItemNode/ChatListSearchItemNode-Release.xcconfig","buck-out/gen/submodules/ChatListSearchRecentPeersNode/ChatListSearchRecentPeersNode-Debug.xcconfig","buck-out/gen/submodules/ChatListSearchRecentPeersNode/ChatListSearchRecentPeersNode-Profile.xcconfig","buck-out/gen/submodules/ChatListSearchRecentPeersNode/ChatListSearchRecentPeersNode-Release.xcconfig","buck-out/gen/submodules/ChatListUI/ChatListUI-Debug.xcconfig","buck-out/gen/submodules/ChatListUI/ChatListUI-Profile.xcconfig","buck-out/gen/submodules/ChatListUI/ChatListUI-Release.xcconfig","buck-out/gen/submodules/ChatTitleActivityNode/ChatTitleActivityNode-Debug.xcconfig","buck-out/gen/submodules/ChatTitleActivityNode/ChatTitleActivityNode-Profile.xcconfig","buck-out/gen/submodules/ChatTitleActivityNode/ChatTitleActivityNode-Release.xcconfig","buck-out/gen/submodules/CheckNode/CheckNode-Debug.xcconfig","buck-out/gen/submodules/CheckNode/CheckNode-Profile.xcconfig","buck-out/gen/submodules/CheckNode/CheckNode-Release.xcconfig","buck-out/gen/submodules/ComposePollUI/ComposePollUI-Debug.xcconfig","buck-out/gen/submodules/ComposePollUI/ComposePollUI-Profile.xcconfig","buck-out/gen/submodules/ComposePollUI/ComposePollUI-Release.xcconfig","buck-out/gen/submodules/ContactListUI/ContactListUI-Debug.xcconfig","buck-out/gen/submodules/ContactListUI/ContactListUI-Profile.xcconfig","buck-out/gen/submodules/ContactListUI/ContactListUI-Release.xcconfig","buck-out/gen/submodules/ContactsPeerItem/ContactsPeerItem-Debug.xcconfig","buck-out/gen/submodules/ContactsPeerItem/ContactsPeerItem-Profile.xcconfig","buck-out/gen/submodules/ContactsPeerItem/ContactsPeerItem-Release.xcconfig","buck-out/gen/submodules/ContextUI/ContextUI-Debug.xcconfig","buck-out/gen/submodules/ContextUI/ContextUI-Profile.xcconfig","buck-out/gen/submodules/ContextUI/ContextUI-Release.xcconfig","buck-out/gen/submodules/CounterContollerTitleView/CounterContollerTitleView-Debug.xcconfig","buck-out/gen/submodules/CounterContollerTitleView/CounterContollerTitleView-Profile.xcconfig","buck-out/gen/submodules/CounterContollerTitleView/CounterContollerTitleView-Release.xcconfig","buck-out/gen/submodules/CountrySelectionUI/CountrySelectionUI-Debug.xcconfig","buck-out/gen/submodules/CountrySelectionUI/CountrySelectionUI-Profile.xcconfig","buck-out/gen/submodules/CountrySelectionUI/CountrySelectionUI-Release.xcconfig","buck-out/gen/submodules/Crc32/Crc32-Debug.xcconfig","buck-out/gen/submodules/Crc32/Crc32-Profile.xcconfig","buck-out/gen/submodules/Crc32/Crc32-Release.xcconfig","buck-out/gen/submodules/DateSelectionUI/DateSelectionUI-Debug.xcconfig","buck-out/gen/submodules/DateSelectionUI/DateSelectionUI-Profile.xcconfig","buck-out/gen/submodules/DateSelectionUI/DateSelectionUI-Release.xcconfig","buck-out/gen/submodules/DeleteChatPeerActionSheetItem/DeleteChatPeerActionSheetItem-Debug.xcconfig","buck-out/gen/submodules/DeleteChatPeerActionSheetItem/DeleteChatPeerActionSheetItem-Profile.xcconfig","buck-out/gen/submodules/DeleteChatPeerActionSheetItem/DeleteChatPeerActionSheetItem-Release.xcconfig","buck-out/gen/submodules/DeviceAccess/DeviceAccess-Debug.xcconfig","buck-out/gen/submodules/DeviceAccess/DeviceAccess-Profile.xcconfig","buck-out/gen/submodules/DeviceAccess/DeviceAccess-Release.xcconfig","buck-out/gen/submodules/DeviceLocationManager/DeviceLocationManager-Debug.xcconfig","buck-out/gen/submodules/DeviceLocationManager/DeviceLocationManager-Profile.xcconfig","buck-out/gen/submodules/DeviceLocationManager/DeviceLocationManager-Release.xcconfig","buck-out/gen/submodules/DeviceProximity/DeviceProximity-Debug.xcconfig","buck-out/gen/submodules/DeviceProximity/DeviceProximity-Profile.xcconfig","buck-out/gen/submodules/DeviceProximity/DeviceProximity-Release.xcconfig","buck-out/gen/submodules/DirectionalPanGesture/DirectionalPanGesture-Debug.xcconfig","buck-out/gen/submodules/DirectionalPanGesture/DirectionalPanGesture-Profile.xcconfig","buck-out/gen/submodules/DirectionalPanGesture/DirectionalPanGesture-Release.xcconfig","buck-out/gen/submodules/Display/Display#shared-Debug.xcconfig","buck-out/gen/submodules/Display/Display#shared-Profile.xcconfig","buck-out/gen/submodules/Display/Display#shared-Release.xcconfig","buck-out/gen/submodules/Emoji/Emoji-Debug.xcconfig","buck-out/gen/submodules/Emoji/Emoji-Profile.xcconfig","buck-out/gen/submodules/Emoji/Emoji-Release.xcconfig","buck-out/gen/submodules/EncryptionKeyVisualization/EncryptionKeyVisualization-Debug.xcconfig","buck-out/gen/submodules/EncryptionKeyVisualization/EncryptionKeyVisualization-Profile.xcconfig","buck-out/gen/submodules/EncryptionKeyVisualization/EncryptionKeyVisualization-Release.xcconfig","buck-out/gen/submodules/FFMpeg/FFMpeg-Debug.xcconfig","buck-out/gen/submodules/FFMpeg/FFMpeg-Profile.xcconfig","buck-out/gen/submodules/FFMpeg/FFMpeg-Release.xcconfig","buck-out/gen/submodules/FFMpeg/libffmpeg-Debug.xcconfig","buck-out/gen/submodules/FFMpeg/libffmpeg-Profile.xcconfig","buck-out/gen/submodules/FFMpeg/libffmpeg-Release.xcconfig","buck-out/gen/submodules/GZip/GZip-Debug.xcconfig","buck-out/gen/submodules/GZip/GZip-Profile.xcconfig","buck-out/gen/submodules/GZip/GZip-Release.xcconfig","buck-out/gen/submodules/GalleryUI/GalleryUI-Debug.xcconfig","buck-out/gen/submodules/GalleryUI/GalleryUI-Profile.xcconfig","buck-out/gen/submodules/GalleryUI/GalleryUI-Release.xcconfig","buck-out/gen/submodules/GameUI/GameUI-Debug.xcconfig","buck-out/gen/submodules/GameUI/GameUI-Profile.xcconfig","buck-out/gen/submodules/GameUI/GameUI-Release.xcconfig","buck-out/gen/submodules/Geocoding/Geocoding-Debug.xcconfig","buck-out/gen/submodules/Geocoding/Geocoding-Profile.xcconfig","buck-out/gen/submodules/Geocoding/Geocoding-Release.xcconfig","buck-out/gen/submodules/GridMessageSelectionNode/GridMessageSelectionNode-Debug.xcconfig","buck-out/gen/submodules/GridMessageSelectionNode/GridMessageSelectionNode-Profile.xcconfig","buck-out/gen/submodules/GridMessageSelectionNode/GridMessageSelectionNode-Release.xcconfig","buck-out/gen/submodules/HashtagSearchUI/HashtagSearchUI-Debug.xcconfig","buck-out/gen/submodules/HashtagSearchUI/HashtagSearchUI-Profile.xcconfig","buck-out/gen/submodules/HashtagSearchUI/HashtagSearchUI-Release.xcconfig","buck-out/gen/submodules/HexColor/HexColor-Debug.xcconfig","buck-out/gen/submodules/HexColor/HexColor-Profile.xcconfig","buck-out/gen/submodules/HexColor/HexColor-Release.xcconfig","buck-out/gen/submodules/HockeySDK-iOS/HockeySDK-Debug.xcconfig","buck-out/gen/submodules/HockeySDK-iOS/HockeySDK-Profile.xcconfig","buck-out/gen/submodules/HockeySDK-iOS/HockeySDK-Release.xcconfig","buck-out/gen/submodules/HorizontalPeerItem/HorizontalPeerItem-Debug.xcconfig","buck-out/gen/submodules/HorizontalPeerItem/HorizontalPeerItem-Profile.xcconfig","buck-out/gen/submodules/HorizontalPeerItem/HorizontalPeerItem-Release.xcconfig","buck-out/gen/submodules/ImageBlur/ImageBlur-Debug.xcconfig","buck-out/gen/submodules/ImageBlur/ImageBlur-Profile.xcconfig","buck-out/gen/submodules/ImageBlur/ImageBlur-Release.xcconfig","buck-out/gen/submodules/ImageCompression/ImageCompression-Debug.xcconfig","buck-out/gen/submodules/ImageCompression/ImageCompression-Profile.xcconfig","buck-out/gen/submodules/ImageCompression/ImageCompression-Release.xcconfig","buck-out/gen/submodules/ImageTransparency/ImageTransparency-Debug.xcconfig","buck-out/gen/submodules/ImageTransparency/ImageTransparency-Profile.xcconfig","buck-out/gen/submodules/ImageTransparency/ImageTransparency-Release.xcconfig","buck-out/gen/submodules/InstantPageCache/InstantPageCache-Debug.xcconfig","buck-out/gen/submodules/InstantPageCache/InstantPageCache-Profile.xcconfig","buck-out/gen/submodules/InstantPageCache/InstantPageCache-Release.xcconfig","buck-out/gen/submodules/InstantPageUI/InstantPageUI-Debug.xcconfig","buck-out/gen/submodules/InstantPageUI/InstantPageUI-Profile.xcconfig","buck-out/gen/submodules/InstantPageUI/InstantPageUI-Release.xcconfig","buck-out/gen/submodules/ItemListAddressItem/ItemListAddressItem-Debug.xcconfig","buck-out/gen/submodules/ItemListAddressItem/ItemListAddressItem-Profile.xcconfig","buck-out/gen/submodules/ItemListAddressItem/ItemListAddressItem-Release.xcconfig","buck-out/gen/submodules/ItemListAvatarAndNameInfoItem/ItemListAvatarAndNameInfoItem-Debug.xcconfig","buck-out/gen/submodules/ItemListAvatarAndNameInfoItem/ItemListAvatarAndNameInfoItem-Profile.xcconfig","buck-out/gen/submodules/ItemListAvatarAndNameInfoItem/ItemListAvatarAndNameInfoItem-Release.xcconfig","buck-out/gen/submodules/ItemListPeerActionItem/ItemListPeerActionItem-Debug.xcconfig","buck-out/gen/submodules/ItemListPeerActionItem/ItemListPeerActionItem-Profile.xcconfig","buck-out/gen/submodules/ItemListPeerActionItem/ItemListPeerActionItem-Release.xcconfig","buck-out/gen/submodules/ItemListPeerItem/ItemListPeerItem-Debug.xcconfig","buck-out/gen/submodules/ItemListPeerItem/ItemListPeerItem-Profile.xcconfig","buck-out/gen/submodules/ItemListPeerItem/ItemListPeerItem-Release.xcconfig","buck-out/gen/submodules/ItemListStickerPackItem/ItemListStickerPackItem-Debug.xcconfig","buck-out/gen/submodules/ItemListStickerPackItem/ItemListStickerPackItem-Profile.xcconfig","buck-out/gen/submodules/ItemListStickerPackItem/ItemListStickerPackItem-Release.xcconfig","buck-out/gen/submodules/ItemListUI/ItemListUI-Debug.xcconfig","buck-out/gen/submodules/ItemListUI/ItemListUI-Profile.xcconfig","buck-out/gen/submodules/ItemListUI/ItemListUI-Release.xcconfig","buck-out/gen/submodules/JoinLinkPreviewUI/JoinLinkPreviewUI-Debug.xcconfig","buck-out/gen/submodules/JoinLinkPreviewUI/JoinLinkPreviewUI-Profile.xcconfig","buck-out/gen/submodules/JoinLinkPreviewUI/JoinLinkPreviewUI-Release.xcconfig","buck-out/gen/submodules/LanguageLinkPreviewUI/LanguageLinkPreviewUI-Debug.xcconfig","buck-out/gen/submodules/LanguageLinkPreviewUI/LanguageLinkPreviewUI-Profile.xcconfig","buck-out/gen/submodules/LanguageLinkPreviewUI/LanguageLinkPreviewUI-Release.xcconfig","buck-out/gen/submodules/LanguageSuggestionUI/LanguageSuggestionUI-Debug.xcconfig","buck-out/gen/submodules/LanguageSuggestionUI/LanguageSuggestionUI-Profile.xcconfig","buck-out/gen/submodules/LanguageSuggestionUI/LanguageSuggestionUI-Release.xcconfig","buck-out/gen/submodules/LegacyComponents/LegacyComponents-Debug.xcconfig","buck-out/gen/submodules/LegacyComponents/LegacyComponents-Profile.xcconfig","buck-out/gen/submodules/LegacyComponents/LegacyComponents-Release.xcconfig","buck-out/gen/submodules/LegacyDataImport/LegacyDataImport-Debug.xcconfig","buck-out/gen/submodules/LegacyDataImport/LegacyDataImport-Profile.xcconfig","buck-out/gen/submodules/LegacyDataImport/LegacyDataImport-Release.xcconfig","buck-out/gen/submodules/LegacyMediaPickerUI/LegacyMediaPickerUI-Debug.xcconfig","buck-out/gen/submodules/LegacyMediaPickerUI/LegacyMediaPickerUI-Profile.xcconfig","buck-out/gen/submodules/LegacyMediaPickerUI/LegacyMediaPickerUI-Release.xcconfig","buck-out/gen/submodules/LegacyUI/LegacyUI-Debug.xcconfig","buck-out/gen/submodules/LegacyUI/LegacyUI-Profile.xcconfig","buck-out/gen/submodules/LegacyUI/LegacyUI-Release.xcconfig","buck-out/gen/submodules/LightweightAccountData/LightweightAccountData-Debug.xcconfig","buck-out/gen/submodules/LightweightAccountData/LightweightAccountData-Profile.xcconfig","buck-out/gen/submodules/LightweightAccountData/LightweightAccountData-Release.xcconfig","buck-out/gen/submodules/ListSectionHeaderNode/ListSectionHeaderNode-Debug.xcconfig","buck-out/gen/submodules/ListSectionHeaderNode/ListSectionHeaderNode-Profile.xcconfig","buck-out/gen/submodules/ListSectionHeaderNode/ListSectionHeaderNode-Release.xcconfig","buck-out/gen/submodules/LiveLocationManager/LiveLocationManager-Debug.xcconfig","buck-out/gen/submodules/LiveLocationManager/LiveLocationManager-Profile.xcconfig","buck-out/gen/submodules/LiveLocationManager/LiveLocationManager-Release.xcconfig","buck-out/gen/submodules/LiveLocationPositionNode/LiveLocationPositionNode-Debug.xcconfig","buck-out/gen/submodules/LiveLocationPositionNode/LiveLocationPositionNode-Profile.xcconfig","buck-out/gen/submodules/LiveLocationPositionNode/LiveLocationPositionNode-Release.xcconfig","buck-out/gen/submodules/LiveLocationTimerNode/LiveLocationTimerNode-Debug.xcconfig","buck-out/gen/submodules/LiveLocationTimerNode/LiveLocationTimerNode-Profile.xcconfig","buck-out/gen/submodules/LiveLocationTimerNode/LiveLocationTimerNode-Release.xcconfig","buck-out/gen/submodules/LocalAuth/LocalAuth-Debug.xcconfig","buck-out/gen/submodules/LocalAuth/LocalAuth-Profile.xcconfig","buck-out/gen/submodules/LocalAuth/LocalAuth-Release.xcconfig","buck-out/gen/submodules/LocalMediaResources/LocalMediaResources-Debug.xcconfig","buck-out/gen/submodules/LocalMediaResources/LocalMediaResources-Profile.xcconfig","buck-out/gen/submodules/LocalMediaResources/LocalMediaResources-Release.xcconfig","buck-out/gen/submodules/LocalizedPeerData/LocalizedPeerData-Debug.xcconfig","buck-out/gen/submodules/LocalizedPeerData/LocalizedPeerData-Profile.xcconfig","buck-out/gen/submodules/LocalizedPeerData/LocalizedPeerData-Release.xcconfig","buck-out/gen/submodules/LocationUI/LocationUI-Debug.xcconfig","buck-out/gen/submodules/LocationUI/LocationUI-Profile.xcconfig","buck-out/gen/submodules/LocationUI/LocationUI-Release.xcconfig","buck-out/gen/submodules/MapResourceToAvatarSizes/MapResourceToAvatarSizes-Debug.xcconfig","buck-out/gen/submodules/MapResourceToAvatarSizes/MapResourceToAvatarSizes-Profile.xcconfig","buck-out/gen/submodules/MapResourceToAvatarSizes/MapResourceToAvatarSizes-Release.xcconfig","buck-out/gen/submodules/MediaPlayer/UniversalMediaPlayer-Debug.xcconfig","buck-out/gen/submodules/MediaPlayer/UniversalMediaPlayer-Profile.xcconfig","buck-out/gen/submodules/MediaPlayer/UniversalMediaPlayer-Release.xcconfig","buck-out/gen/submodules/MediaResources/MediaResources-Debug.xcconfig","buck-out/gen/submodules/MediaResources/MediaResources-Profile.xcconfig","buck-out/gen/submodules/MediaResources/MediaResources-Release.xcconfig","buck-out/gen/submodules/MergeLists/MergeLists-Debug.xcconfig","buck-out/gen/submodules/MergeLists/MergeLists-Profile.xcconfig","buck-out/gen/submodules/MergeLists/MergeLists-Release.xcconfig","buck-out/gen/submodules/MessageReactionListUI/MessageReactionListUI-Debug.xcconfig","buck-out/gen/submodules/MessageReactionListUI/MessageReactionListUI-Profile.xcconfig","buck-out/gen/submodules/MessageReactionListUI/MessageReactionListUI-Release.xcconfig","buck-out/gen/submodules/MimeTypes/MimeTypes-Debug.xcconfig","buck-out/gen/submodules/MimeTypes/MimeTypes-Profile.xcconfig","buck-out/gen/submodules/MimeTypes/MimeTypes-Release.xcconfig","buck-out/gen/submodules/MosaicLayout/MosaicLayout-Debug.xcconfig","buck-out/gen/submodules/MosaicLayout/MosaicLayout-Profile.xcconfig","buck-out/gen/submodules/MosaicLayout/MosaicLayout-Release.xcconfig","buck-out/gen/submodules/MtProtoKit/MtProtoKit#shared-Debug.xcconfig","buck-out/gen/submodules/MtProtoKit/MtProtoKit#shared-Profile.xcconfig","buck-out/gen/submodules/MtProtoKit/MtProtoKit#shared-Release.xcconfig","buck-out/gen/submodules/MtProtoKit/openssl-Debug.xcconfig","buck-out/gen/submodules/MtProtoKit/openssl-Profile.xcconfig","buck-out/gen/submodules/MtProtoKit/openssl-Release.xcconfig","buck-out/gen/submodules/MusicAlbumArtResources/MusicAlbumArtResources-Debug.xcconfig","buck-out/gen/submodules/MusicAlbumArtResources/MusicAlbumArtResources-Profile.xcconfig","buck-out/gen/submodules/MusicAlbumArtResources/MusicAlbumArtResources-Release.xcconfig","buck-out/gen/submodules/NotificationMuteSettingsUI/NotificationMuteSettingsUI-Debug.xcconfig","buck-out/gen/submodules/NotificationMuteSettingsUI/NotificationMuteSettingsUI-Profile.xcconfig","buck-out/gen/submodules/NotificationMuteSettingsUI/NotificationMuteSettingsUI-Release.xcconfig","buck-out/gen/submodules/NotificationSoundSelectionUI/NotificationSoundSelectionUI-Debug.xcconfig","buck-out/gen/submodules/NotificationSoundSelectionUI/NotificationSoundSelectionUI-Profile.xcconfig","buck-out/gen/submodules/NotificationSoundSelectionUI/NotificationSoundSelectionUI-Release.xcconfig","buck-out/gen/submodules/OpenInExternalAppUI/OpenInExternalAppUI-Debug.xcconfig","buck-out/gen/submodules/OpenInExternalAppUI/OpenInExternalAppUI-Profile.xcconfig","buck-out/gen/submodules/OpenInExternalAppUI/OpenInExternalAppUI-Release.xcconfig","buck-out/gen/submodules/Opus/opus-Debug.xcconfig","buck-out/gen/submodules/Opus/opus-Profile.xcconfig","buck-out/gen/submodules/Opus/opus-Release.xcconfig","buck-out/gen/submodules/Opus/opus_lib-Debug.xcconfig","buck-out/gen/submodules/Opus/opus_lib-Profile.xcconfig","buck-out/gen/submodules/Opus/opus_lib-Release.xcconfig","buck-out/gen/submodules/OpusBinding/OpusBinding-Debug.xcconfig","buck-out/gen/submodules/OpusBinding/OpusBinding-Profile.xcconfig","buck-out/gen/submodules/OpusBinding/OpusBinding-Release.xcconfig","buck-out/gen/submodules/OverlayStatusController/OverlayStatusController-Debug.xcconfig","buck-out/gen/submodules/OverlayStatusController/OverlayStatusController-Profile.xcconfig","buck-out/gen/submodules/OverlayStatusController/OverlayStatusController-Release.xcconfig","buck-out/gen/submodules/PasscodeUI/PasscodeUI-Debug.xcconfig","buck-out/gen/submodules/PasscodeUI/PasscodeUI-Profile.xcconfig","buck-out/gen/submodules/PasscodeUI/PasscodeUI-Release.xcconfig","buck-out/gen/submodules/PassportUI/PassportUI-Debug.xcconfig","buck-out/gen/submodules/PassportUI/PassportUI-Profile.xcconfig","buck-out/gen/submodules/PassportUI/PassportUI-Release.xcconfig","buck-out/gen/submodules/PasswordSetupUI/PasswordSetupUI-Debug.xcconfig","buck-out/gen/submodules/PasswordSetupUI/PasswordSetupUI-Profile.xcconfig","buck-out/gen/submodules/PasswordSetupUI/PasswordSetupUI-Release.xcconfig","buck-out/gen/submodules/Pdf/Pdf-Debug.xcconfig","buck-out/gen/submodules/Pdf/Pdf-Profile.xcconfig","buck-out/gen/submodules/Pdf/Pdf-Release.xcconfig","buck-out/gen/submodules/PeerAvatarGalleryUI/PeerAvatarGalleryUI-Debug.xcconfig","buck-out/gen/submodules/PeerAvatarGalleryUI/PeerAvatarGalleryUI-Profile.xcconfig","buck-out/gen/submodules/PeerAvatarGalleryUI/PeerAvatarGalleryUI-Release.xcconfig","buck-out/gen/submodules/PeerInfoUI/PeerInfoUI-Debug.xcconfig","buck-out/gen/submodules/PeerInfoUI/PeerInfoUI-Profile.xcconfig","buck-out/gen/submodules/PeerInfoUI/PeerInfoUI-Release.xcconfig","buck-out/gen/submodules/PeerOnlineMarkerNode/PeerOnlineMarkerNode-Debug.xcconfig","buck-out/gen/submodules/PeerOnlineMarkerNode/PeerOnlineMarkerNode-Profile.xcconfig","buck-out/gen/submodules/PeerOnlineMarkerNode/PeerOnlineMarkerNode-Release.xcconfig","buck-out/gen/submodules/PeerPresenceStatusManager/PeerPresenceStatusManager-Debug.xcconfig","buck-out/gen/submodules/PeerPresenceStatusManager/PeerPresenceStatusManager-Profile.xcconfig","buck-out/gen/submodules/PeerPresenceStatusManager/PeerPresenceStatusManager-Release.xcconfig","buck-out/gen/submodules/PeersNearbyIconNode/PeersNearbyIconNode-Debug.xcconfig","buck-out/gen/submodules/PeersNearbyIconNode/PeersNearbyIconNode-Profile.xcconfig","buck-out/gen/submodules/PeersNearbyIconNode/PeersNearbyIconNode-Release.xcconfig","buck-out/gen/submodules/PeersNearbyUI/PeersNearbyUI-Debug.xcconfig","buck-out/gen/submodules/PeersNearbyUI/PeersNearbyUI-Profile.xcconfig","buck-out/gen/submodules/PeersNearbyUI/PeersNearbyUI-Release.xcconfig","buck-out/gen/submodules/PersistentStringHash/PersistentStringHash-Debug.xcconfig","buck-out/gen/submodules/PersistentStringHash/PersistentStringHash-Profile.xcconfig","buck-out/gen/submodules/PersistentStringHash/PersistentStringHash-Release.xcconfig","buck-out/gen/submodules/PhoneInputNode/PhoneInputNode-Debug.xcconfig","buck-out/gen/submodules/PhoneInputNode/PhoneInputNode-Profile.xcconfig","buck-out/gen/submodules/PhoneInputNode/PhoneInputNode-Release.xcconfig","buck-out/gen/submodules/PhotoResources/PhotoResources-Debug.xcconfig","buck-out/gen/submodules/PhotoResources/PhotoResources-Profile.xcconfig","buck-out/gen/submodules/PhotoResources/PhotoResources-Release.xcconfig","buck-out/gen/submodules/PlatformRestrictionMatching/PlatformRestrictionMatching-Debug.xcconfig","buck-out/gen/submodules/PlatformRestrictionMatching/PlatformRestrictionMatching-Profile.xcconfig","buck-out/gen/submodules/PlatformRestrictionMatching/PlatformRestrictionMatching-Release.xcconfig","buck-out/gen/submodules/Postbox/Postbox#shared-Debug.xcconfig","buck-out/gen/submodules/Postbox/Postbox#shared-Profile.xcconfig","buck-out/gen/submodules/Postbox/Postbox#shared-Release.xcconfig","buck-out/gen/submodules/ProgressNavigationButtonNode/ProgressNavigationButtonNode-Debug.xcconfig","buck-out/gen/submodules/ProgressNavigationButtonNode/ProgressNavigationButtonNode-Profile.xcconfig","buck-out/gen/submodules/ProgressNavigationButtonNode/ProgressNavigationButtonNode-Release.xcconfig","buck-out/gen/submodules/QrCode/QrCode-Debug.xcconfig","buck-out/gen/submodules/QrCode/QrCode-Profile.xcconfig","buck-out/gen/submodules/QrCode/QrCode-Release.xcconfig","buck-out/gen/submodules/RLottie/RLottie-Debug.xcconfig","buck-out/gen/submodules/RLottie/RLottie-Profile.xcconfig","buck-out/gen/submodules/RLottie/RLottie-Release.xcconfig","buck-out/gen/submodules/RMIntro/RMIntro-Debug.xcconfig","buck-out/gen/submodules/RMIntro/RMIntro-Profile.xcconfig","buck-out/gen/submodules/RMIntro/RMIntro-Release.xcconfig","buck-out/gen/submodules/RadialStatusNode/RadialStatusNode-Debug.xcconfig","buck-out/gen/submodules/RadialStatusNode/RadialStatusNode-Profile.xcconfig","buck-out/gen/submodules/RadialStatusNode/RadialStatusNode-Release.xcconfig","buck-out/gen/submodules/RaiseToListen/RaiseToListen-Debug.xcconfig","buck-out/gen/submodules/RaiseToListen/RaiseToListen-Profile.xcconfig","buck-out/gen/submodules/RaiseToListen/RaiseToListen-Release.xcconfig","buck-out/gen/submodules/ReactionSelectionNode/ReactionSelectionNode-Debug.xcconfig","buck-out/gen/submodules/ReactionSelectionNode/ReactionSelectionNode-Profile.xcconfig","buck-out/gen/submodules/ReactionSelectionNode/ReactionSelectionNode-Release.xcconfig","buck-out/gen/submodules/SSignalKit/SSignalKit/SSignalKit-Debug.xcconfig","buck-out/gen/submodules/SSignalKit/SSignalKit/SSignalKit-Profile.xcconfig","buck-out/gen/submodules/SSignalKit/SSignalKit/SSignalKit-Release.xcconfig","buck-out/gen/submodules/SSignalKit/SwiftSignalKit/SwiftSignalKit#shared-Debug.xcconfig","buck-out/gen/submodules/SSignalKit/SwiftSignalKit/SwiftSignalKit#shared-Profile.xcconfig","buck-out/gen/submodules/SSignalKit/SwiftSignalKit/SwiftSignalKit#shared-Release.xcconfig","buck-out/gen/submodules/SaveToCameraRoll/SaveToCameraRoll-Debug.xcconfig","buck-out/gen/submodules/SaveToCameraRoll/SaveToCameraRoll-Profile.xcconfig","buck-out/gen/submodules/SaveToCameraRoll/SaveToCameraRoll-Release.xcconfig","buck-out/gen/submodules/ScreenCaptureDetection/ScreenCaptureDetection-Debug.xcconfig","buck-out/gen/submodules/ScreenCaptureDetection/ScreenCaptureDetection-Profile.xcconfig","buck-out/gen/submodules/ScreenCaptureDetection/ScreenCaptureDetection-Release.xcconfig","buck-out/gen/submodules/SearchBarNode/SearchBarNode-Debug.xcconfig","buck-out/gen/submodules/SearchBarNode/SearchBarNode-Profile.xcconfig","buck-out/gen/submodules/SearchBarNode/SearchBarNode-Release.xcconfig","buck-out/gen/submodules/SearchUI/SearchUI-Debug.xcconfig","buck-out/gen/submodules/SearchUI/SearchUI-Profile.xcconfig","buck-out/gen/submodules/SearchUI/SearchUI-Release.xcconfig","buck-out/gen/submodules/SelectablePeerNode/SelectablePeerNode-Debug.xcconfig","buck-out/gen/submodules/SelectablePeerNode/SelectablePeerNode-Profile.xcconfig","buck-out/gen/submodules/SelectablePeerNode/SelectablePeerNode-Release.xcconfig","buck-out/gen/submodules/SettingsUI/SettingsUI-Debug.xcconfig","buck-out/gen/submodules/SettingsUI/SettingsUI-Profile.xcconfig","buck-out/gen/submodules/SettingsUI/SettingsUI-Release.xcconfig","buck-out/gen/submodules/ShareController/ShareController-Debug.xcconfig","buck-out/gen/submodules/ShareController/ShareController-Profile.xcconfig","buck-out/gen/submodules/ShareController/ShareController-Release.xcconfig","buck-out/gen/submodules/ShareItems/ShareItems-Debug.xcconfig","buck-out/gen/submodules/ShareItems/ShareItems-Profile.xcconfig","buck-out/gen/submodules/ShareItems/ShareItems-Release.xcconfig","buck-out/gen/submodules/SinglePhoneInputNode/SinglePhoneInputNode-Debug.xcconfig","buck-out/gen/submodules/SinglePhoneInputNode/SinglePhoneInputNode-Profile.xcconfig","buck-out/gen/submodules/SinglePhoneInputNode/SinglePhoneInputNode-Release.xcconfig","buck-out/gen/submodules/SolidRoundedButtonNode/SolidRoundedButtonNode-Debug.xcconfig","buck-out/gen/submodules/SolidRoundedButtonNode/SolidRoundedButtonNode-Profile.xcconfig","buck-out/gen/submodules/SolidRoundedButtonNode/SolidRoundedButtonNode-Release.xcconfig","buck-out/gen/submodules/StickerPackPreviewUI/StickerPackPreviewUI-Debug.xcconfig","buck-out/gen/submodules/StickerPackPreviewUI/StickerPackPreviewUI-Profile.xcconfig","buck-out/gen/submodules/StickerPackPreviewUI/StickerPackPreviewUI-Release.xcconfig","buck-out/gen/submodules/StickerResources/StickerResources-Debug.xcconfig","buck-out/gen/submodules/StickerResources/StickerResources-Profile.xcconfig","buck-out/gen/submodules/StickerResources/StickerResources-Release.xcconfig","buck-out/gen/submodules/Stripe/Stripe-Debug.xcconfig","buck-out/gen/submodules/Stripe/Stripe-Profile.xcconfig","buck-out/gen/submodules/Stripe/Stripe-Release.xcconfig","buck-out/gen/submodules/SwipeToDismissGesture/SwipeToDismissGesture-Debug.xcconfig","buck-out/gen/submodules/SwipeToDismissGesture/SwipeToDismissGesture-Profile.xcconfig","buck-out/gen/submodules/SwipeToDismissGesture/SwipeToDismissGesture-Release.xcconfig","buck-out/gen/submodules/SwitchNode/SwitchNode-Debug.xcconfig","buck-out/gen/submodules/SwitchNode/SwitchNode-Profile.xcconfig","buck-out/gen/submodules/SwitchNode/SwitchNode-Release.xcconfig","buck-out/gen/submodules/TelegramApi/TelegramApi-Debug.xcconfig","buck-out/gen/submodules/TelegramApi/TelegramApi-Profile.xcconfig","buck-out/gen/submodules/TelegramApi/TelegramApi-Release.xcconfig","buck-out/gen/submodules/TelegramAudio/TelegramAudio-Debug.xcconfig","buck-out/gen/submodules/TelegramAudio/TelegramAudio-Profile.xcconfig","buck-out/gen/submodules/TelegramAudio/TelegramAudio-Release.xcconfig","buck-out/gen/submodules/TelegramBaseController/TelegramBaseController-Debug.xcconfig","buck-out/gen/submodules/TelegramBaseController/TelegramBaseController-Profile.xcconfig","buck-out/gen/submodules/TelegramBaseController/TelegramBaseController-Release.xcconfig","buck-out/gen/submodules/TelegramCallsUI/TelegramCallsUI-Debug.xcconfig","buck-out/gen/submodules/TelegramCallsUI/TelegramCallsUI-Profile.xcconfig","buck-out/gen/submodules/TelegramCallsUI/TelegramCallsUI-Release.xcconfig","buck-out/gen/submodules/TelegramCore/TelegramCore#shared-Debug.xcconfig","buck-out/gen/submodules/TelegramCore/TelegramCore#shared-Profile.xcconfig","buck-out/gen/submodules/TelegramCore/TelegramCore#shared-Release.xcconfig","buck-out/gen/submodules/TelegramNotices/TelegramNotices-Debug.xcconfig","buck-out/gen/submodules/TelegramNotices/TelegramNotices-Profile.xcconfig","buck-out/gen/submodules/TelegramNotices/TelegramNotices-Release.xcconfig","buck-out/gen/submodules/TelegramPermissions/TelegramPermissions-Debug.xcconfig","buck-out/gen/submodules/TelegramPermissions/TelegramPermissions-Profile.xcconfig","buck-out/gen/submodules/TelegramPermissions/TelegramPermissions-Release.xcconfig","buck-out/gen/submodules/TelegramPermissionsUI/TelegramPermissionsUI-Debug.xcconfig","buck-out/gen/submodules/TelegramPermissionsUI/TelegramPermissionsUI-Profile.xcconfig","buck-out/gen/submodules/TelegramPermissionsUI/TelegramPermissionsUI-Release.xcconfig","buck-out/gen/submodules/TelegramPresentationData/TelegramPresentationData-Debug.xcconfig","buck-out/gen/submodules/TelegramPresentationData/TelegramPresentationData-Profile.xcconfig","buck-out/gen/submodules/TelegramPresentationData/TelegramPresentationData-Release.xcconfig","buck-out/gen/submodules/TelegramStringFormatting/TelegramStringFormatting-Debug.xcconfig","buck-out/gen/submodules/TelegramStringFormatting/TelegramStringFormatting-Profile.xcconfig","buck-out/gen/submodules/TelegramStringFormatting/TelegramStringFormatting-Release.xcconfig","buck-out/gen/submodules/TelegramUI/TelegramUI#shared-Debug.xcconfig","buck-out/gen/submodules/TelegramUI/TelegramUI#shared-Profile.xcconfig","buck-out/gen/submodules/TelegramUI/TelegramUI#shared-Release.xcconfig","buck-out/gen/submodules/TelegramUIPreferences/TelegramUIPreferences-Debug.xcconfig","buck-out/gen/submodules/TelegramUIPreferences/TelegramUIPreferences-Profile.xcconfig","buck-out/gen/submodules/TelegramUIPreferences/TelegramUIPreferences-Release.xcconfig","buck-out/gen/submodules/TelegramUniversalVideoContent/TelegramUniversalVideoContent-Debug.xcconfig","buck-out/gen/submodules/TelegramUniversalVideoContent/TelegramUniversalVideoContent-Profile.xcconfig","buck-out/gen/submodules/TelegramUniversalVideoContent/TelegramUniversalVideoContent-Release.xcconfig","buck-out/gen/submodules/TelegramUpdateUI/TelegramUpdateUI-Debug.xcconfig","buck-out/gen/submodules/TelegramUpdateUI/TelegramUpdateUI-Profile.xcconfig","buck-out/gen/submodules/TelegramUpdateUI/TelegramUpdateUI-Release.xcconfig","buck-out/gen/submodules/TelegramVoip/TelegramVoip-Debug.xcconfig","buck-out/gen/submodules/TelegramVoip/TelegramVoip-Profile.xcconfig","buck-out/gen/submodules/TelegramVoip/TelegramVoip-Release.xcconfig","buck-out/gen/submodules/TemporaryCachedPeerDataManager/TemporaryCachedPeerDataManager-Debug.xcconfig","buck-out/gen/submodules/TemporaryCachedPeerDataManager/TemporaryCachedPeerDataManager-Profile.xcconfig","buck-out/gen/submodules/TemporaryCachedPeerDataManager/TemporaryCachedPeerDataManager-Release.xcconfig","buck-out/gen/submodules/TextFormat/TextFormat-Debug.xcconfig","buck-out/gen/submodules/TextFormat/TextFormat-Profile.xcconfig","buck-out/gen/submodules/TextFormat/TextFormat-Release.xcconfig","buck-out/gen/submodules/TextSelectionNode/TextSelectionNode-Debug.xcconfig","buck-out/gen/submodules/TextSelectionNode/TextSelectionNode-Profile.xcconfig","buck-out/gen/submodules/TextSelectionNode/TextSelectionNode-Release.xcconfig","buck-out/gen/submodules/TinyThumbnail/TinyThumbnail-Debug.xcconfig","buck-out/gen/submodules/TinyThumbnail/TinyThumbnail-Profile.xcconfig","buck-out/gen/submodules/TinyThumbnail/TinyThumbnail-Release.xcconfig","buck-out/gen/submodules/TouchDownGesture/TouchDownGesture-Debug.xcconfig","buck-out/gen/submodules/TouchDownGesture/TouchDownGesture-Profile.xcconfig","buck-out/gen/submodules/TouchDownGesture/TouchDownGesture-Release.xcconfig","buck-out/gen/submodules/Tuples/Tuples-Debug.xcconfig","buck-out/gen/submodules/Tuples/Tuples-Profile.xcconfig","buck-out/gen/submodules/Tuples/Tuples-Release.xcconfig","buck-out/gen/submodules/UndoUI/UndoUI-Debug.xcconfig","buck-out/gen/submodules/UndoUI/UndoUI-Profile.xcconfig","buck-out/gen/submodules/UndoUI/UndoUI-Release.xcconfig","buck-out/gen/submodules/UrlEscaping/UrlEscaping-Debug.xcconfig","buck-out/gen/submodules/UrlEscaping/UrlEscaping-Profile.xcconfig","buck-out/gen/submodules/UrlEscaping/UrlEscaping-Release.xcconfig","buck-out/gen/submodules/UrlHandling/UrlHandling-Debug.xcconfig","buck-out/gen/submodules/UrlHandling/UrlHandling-Profile.xcconfig","buck-out/gen/submodules/UrlHandling/UrlHandling-Release.xcconfig","buck-out/gen/submodules/WallpaperResources/WallpaperResources-Debug.xcconfig","buck-out/gen/submodules/WallpaperResources/WallpaperResources-Profile.xcconfig","buck-out/gen/submodules/WallpaperResources/WallpaperResources-Release.xcconfig","buck-out/gen/submodules/WatchBridge/WatchBridge-Debug.xcconfig","buck-out/gen/submodules/WatchBridge/WatchBridge-Profile.xcconfig","buck-out/gen/submodules/WatchBridge/WatchBridge-Release.xcconfig","buck-out/gen/submodules/WatchBridgeAudio/WatchBridgeAudio-Debug.xcconfig","buck-out/gen/submodules/WatchBridgeAudio/WatchBridgeAudio-Profile.xcconfig","buck-out/gen/submodules/WatchBridgeAudio/WatchBridgeAudio-Release.xcconfig","buck-out/gen/submodules/WatchCommon/WatchCommon-Debug.xcconfig","buck-out/gen/submodules/WatchCommon/WatchCommon-Profile.xcconfig","buck-out/gen/submodules/WatchCommon/WatchCommon-Release.xcconfig","buck-out/gen/submodules/WebP/WebPImage-Debug.xcconfig","buck-out/gen/submodules/WebP/WebPImage-Profile.xcconfig","buck-out/gen/submodules/WebP/WebPImage-Release.xcconfig","buck-out/gen/submodules/WebP/WebP_lib-Debug.xcconfig","buck-out/gen/submodules/WebP/WebP_lib-Profile.xcconfig","buck-out/gen/submodules/WebP/WebP_lib-Release.xcconfig","buck-out/gen/submodules/WebSearchUI/WebSearchUI-Debug.xcconfig","buck-out/gen/submodules/WebSearchUI/WebSearchUI-Profile.xcconfig","buck-out/gen/submodules/WebSearchUI/WebSearchUI-Release.xcconfig","buck-out/gen/submodules/WebUI/WebUI-Debug.xcconfig","buck-out/gen/submodules/WebUI/WebUI-Profile.xcconfig","buck-out/gen/submodules/WebUI/WebUI-Release.xcconfig","buck-out/gen/submodules/WebsiteType/WebsiteType-Debug.xcconfig","buck-out/gen/submodules/WebsiteType/WebsiteType-Profile.xcconfig","buck-out/gen/submodules/WebsiteType/WebsiteType-Release.xcconfig","buck-out/gen/submodules/YuvConversion/YuvConversion-Debug.xcconfig","buck-out/gen/submodules/YuvConversion/YuvConversion-Profile.xcconfig","buck-out/gen/submodules/YuvConversion/YuvConversion-Release.xcconfig","buck-out/gen/submodules/libphonenumber/libphonenumber-Debug.xcconfig","buck-out/gen/submodules/libphonenumber/libphonenumber-Profile.xcconfig","buck-out/gen/submodules/libphonenumber/libphonenumber-Release.xcconfig","buck-out/gen/submodules/libtgvoip/libtgvoip-Debug.xcconfig","buck-out/gen/submodules/libtgvoip/libtgvoip-Profile.xcconfig","buck-out/gen/submodules/libtgvoip/libtgvoip-Release.xcconfig","buck-out/gen/submodules/lottie-ios/Lottie-Debug.xcconfig","buck-out/gen/submodules/lottie-ios/Lottie-Profile.xcconfig","buck-out/gen/submodules/lottie-ios/Lottie-Release.xcconfig","buck-out/gen/submodules/sqlcipher/sqlcipher-Debug.xcconfig","buck-out/gen/submodules/sqlcipher/sqlcipher-Profile.xcconfig","buck-out/gen/submodules/sqlcipher/sqlcipher-Release.xcconfig"],"copy-in-xcode":[]} \ No newline at end of file diff --git a/App/Telegram_Buck.xcworkspace/contents.xcworkspacedata b/App/Telegram_Buck.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000000..f5e50db414 --- /dev/null +++ b/App/Telegram_Buck.xcworkspace/contents.xcworkspacedata @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/App/App.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/App/Telegram_Buck.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist similarity index 100% rename from App/App.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist rename to App/Telegram_Buck.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist diff --git a/App/App.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/App/Telegram_Buck.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings similarity index 100% rename from App/App.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings rename to App/Telegram_Buck.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings diff --git a/App/App.xcworkspace/xcshareddata/xcschemes/App.xcscheme b/App/Telegram_Buck.xcworkspace/xcshareddata/xcschemes/Telegram_Buck.xcscheme similarity index 98% rename from App/App.xcworkspace/xcshareddata/xcschemes/App.xcscheme rename to App/Telegram_Buck.xcworkspace/xcshareddata/xcschemes/Telegram_Buck.xcscheme index f407d980a6..bb0a071231 100644 --- a/App/App.xcworkspace/xcshareddata/xcschemes/App.xcscheme +++ b/App/Telegram_Buck.xcworkspace/xcshareddata/xcschemes/Telegram_Buck.xcscheme @@ -20,6 +20,20 @@ ReferencedContainer = "container:../submodules/AsyncDisplayKit/AsyncDisplayKit.xcodeproj"> + + + + + + + + + + + + - - - - @@ -2356,9 +2384,9 @@ runnableDebuggingMode = "0"> @@ -2375,9 +2403,9 @@ runnableDebuggingMode = "0"> diff --git a/BUCK b/BUCK new file mode 100644 index 0000000000..34b66d07fa --- /dev/null +++ b/BUCK @@ -0,0 +1,49 @@ + +apple_resource( + name = "AppResources", + files = glob([ + "Telegram-iOS/Resources/**/*", + ], exclude = ["Telegram-iOS/Resources/**/.*"]), + visibility = ["PUBLIC"], +) + +apple_resource( + name = "AppStringResources", + files = [], + variants = glob([ + "Telegram-iOS/*.lproj/Localizable.strings", + ]), + visibility = ["PUBLIC"], +) + +apple_asset_catalog( + name = 'Icons', + dirs = [ + "Telegram-iOS/Icons.xcassets", + ], + visibility = ["PUBLIC"], +) + +apple_asset_catalog( + name = 'AppIcons', + dirs = [ + "Telegram-iOS/AppIcons.xcassets", + ], + visibility = ["PUBLIC"], +) + +apple_resource( + name = "AdditionalIcons", + files = glob([ + "Telegram-iOS/*.png", + ]), + visibility = ["PUBLIC"], +) + +apple_resource( + name = 'LaunchScreen', + files = [ + 'Telegram-iOS/Base.lproj/LaunchScreen.xib', + ], + visibility = ["PUBLIC"], +) diff --git a/Config/app_configuration.bzl b/Config/app_configuration.bzl index 5ae7cd7e15..dbc6f547a5 100644 --- a/Config/app_configuration.bzl +++ b/Config/app_configuration.bzl @@ -1,9 +1,20 @@ -AppConfig = { - "apiId": "8", - "apiHash": "7245de8e747a0d6fbe11f7cc14fcc0bb", - "hockeyAppId": "ad8831329ffc8f8aff9a2b0b86558b24", - "isInternalBuild": "true", - "isAppStoreBuild": "false", - "appstoreId": "686449807", - "appSpecificUrlScheme": "tgapp", -} + +def appConfig(): + apiId = native.read_config("custom", "apiId") + apiHash = native.read_config("custom", "apiHash") + hockeyAppId = native.read_config("custom", "hockeyAppId") + isInternalBuild = native.read_config("custom", "isInternalBuild") + isAppStoreBuild = native.read_config("custom", "isAppStoreBuild") + appStoreId = native.read_config("custom", "appStoreId") + appSpecificUrlScheme = native.read_config("custom", "appSpecificUrlScheme") + buildNumber = native.read_config("custom", "buildNumber") + return { + "apiId": apiId, + "apiHash": apiHash, + "hockeyAppId": hockeyAppId, + "isInternalBuild": isInternalBuild, + "isAppStoreBuild": isAppStoreBuild, + "appStoreId": appStoreId, + "appSpecificUrlScheme": appSpecificUrlScheme, + "buildNumber": buildNumber, + } diff --git a/Config/buck_rule_macros.bzl b/Config/buck_rule_macros.bzl index 08ff783602..f9ad73a2d7 100644 --- a/Config/buck_rule_macros.bzl +++ b/Config/buck_rule_macros.bzl @@ -14,23 +14,37 @@ def apple_lib( swift_version = None, modular = True, compiler_flags = None, + platform_compiler_flags = None, swift_compiler_flags = None, warning_as_error = False, suppress_warnings = False, has_cpp = False, framework = False): swift_version = swift_version or native.read_config('swift', 'version') - compiler_flags = compiler_flags or [] swift_compiler_flags = swift_compiler_flags or [] if native.read_config("xcode", "beta") == "True": warning_as_error = False + if platform_compiler_flags != None: + if compiler_flags != None: + fail("compiler_flags and platform_compiler_flags are mutually exclusive") + compiler_flags = [] + for i in range(len(platform_compiler_flags)): + if warning_as_error: + platform_compiler_flags[i][1].append("-Werror") + elif suppress_warnings: + platform_compiler_flags[i][1].append("-w") + else: + compiler_flags = compiler_flags or [] + if warning_as_error: + compiler_flags.append("-Werror") + elif suppress_warnings: + compiler_flags.append("-w") + if warning_as_error: - compiler_flags.append("-Werror") swift_compiler_flags.append("-warnings-as-errors") elif suppress_warnings: - compiler_flags.append("-w") swift_compiler_flags.append("-suppress-warnings") if framework: @@ -61,6 +75,7 @@ def apple_lib( configs = framework_library_configs(name), modular = modular, compiler_flags = compiler_flags, + platform_compiler_flags = platform_compiler_flags, swift_compiler_flags = swift_compiler_flags, preferred_linkage = "shared", link_style = "static", @@ -84,6 +99,7 @@ def apple_lib( configs = framework_library_configs(name), modular = modular, compiler_flags = compiler_flags, + platform_compiler_flags = platform_compiler_flags, swift_compiler_flags = swift_compiler_flags, preferred_linkage = "shared", link_style = "static", @@ -116,6 +132,7 @@ def apple_lib( configs = library_configs(), modular = modular, compiler_flags = compiler_flags, + platform_compiler_flags = platform_compiler_flags, swift_compiler_flags = swift_compiler_flags, ) @@ -134,6 +151,7 @@ def static_library( info_plist_substitutions = {}, modular = True, compiler_flags = None, + platform_compiler_flags = None, swift_compiler_flags = None, warning_as_error = False, suppress_warnings = True): @@ -145,6 +163,7 @@ def static_library( headers = headers, modular = modular, compiler_flags = compiler_flags, + platform_compiler_flags = platform_compiler_flags, swift_compiler_flags = swift_compiler_flags, extra_xcode_files = extra_xcode_files, deps = deps, @@ -170,6 +189,7 @@ def framework( info_plist_substitutions = {}, modular = True, compiler_flags = None, + platform_compiler_flags = None, swift_compiler_flags = None, warning_as_error = False, suppress_warnings = True): @@ -181,6 +201,7 @@ def framework( headers = headers, modular = modular, compiler_flags = compiler_flags, + platform_compiler_flags = platform_compiler_flags, swift_compiler_flags = swift_compiler_flags, extra_xcode_files = extra_xcode_files, deps = deps, diff --git a/Config/configs.bzl b/Config/configs.bzl index 5f61681a31..6315741916 100644 --- a/Config/configs.bzl +++ b/Config/configs.bzl @@ -1,4 +1,5 @@ load("//Config:utils.bzl", "config_with_updated_linker_flags", "configs_with_config") +load("//Config:app_configuration.bzl", "appConfig") DEVELOPMENT_LANGUAGE = "en" @@ -94,6 +95,7 @@ def app_binary_configs(name): "CODE_SIGN_ENTITLEMENTS": "Telegram-iOS.entitlements", "DEVELOPMENT_TEAM": "X834Q8SBVP", "PROVISIONING_PROFILE_SPECIFIER": "match Development org.telegram.Telegram-iOS", + "ASSETCATALOG_COMPILER_APPICON_NAME": "AppIcon", } binary_config = merge_dict(SHARED_CONFIGS, binary_specific_config) binary_config = merge_dict(binary_config, optimization_config()) @@ -116,7 +118,10 @@ def app_info_plist_substitutions(name): "EXECUTABLE_NAME": name, "PRODUCT_BUNDLE_IDENTIFIER": "org.telegram.Telegram-iOS", "PRODUCT_NAME": name, + "APP_NAME": name, "CURRENT_PROJECT_VERSION": "1", "CODE_SIGN_IDENTITY": "iPhone Developer: Peter Iakovlev (9J4EJ3F97G)", + "APP_SPECIFIC_URL_SCHEME": appConfig()["appSpecificUrlScheme"], + "BUILD_NUMBER": appConfig()["buildNumber"], } return substitutions diff --git a/Makefile b/Makefile index c258fb8169..0ddd0d8dc6 100644 --- a/Makefile +++ b/Makefile @@ -1,17 +1,21 @@ .PHONY : build build_arm64 build_verbose targets project kill_xcode clean +BUCK_OPTIONS=--config custom.apiId="${TELEGRAM_API_ID}" --config custom.apiHash="${TELGRAM_API_HASH}" --config custom.hockeyAppId="${TELGRAM_HOCKEYAPP_ID}" --config custom.isInternalBuild="${TELEGRAM_IS_INTERNAL_BUILD}" --config custom.isAppStoreBuild="${TELEGRAM_IS_APPSTORE_BUILD}" --config custom.appStoreId="${TELEGRAM_APPSTORE_ID}" --config custom.appSpecificUrlScheme="${TELEGRAM_APP_SPECIFIC_URL_SCHEME}" --config custom.buildNumber="${TELEGRAM_BUILD_NUMBER}" BUCK=/Users/peter/build/buck-next/buck/buck-out/gen/programs/buck.pex -build: - $(BUCK) build //App:AppPackage#iphoneos-arm64,iphoneos-armv7 - sh package_app.sh $(BUCK) iphoneos-arm64,iphoneos-armv7 +check_env: + sh check_env.sh -build_arm64: - $(BUCK) build //App:AppPackage#iphoneos-arm64 - sh package_app.sh $(BUCK) iphoneos-arm64 +build: check_env + $(BUCK) build //App:AppPackage#iphoneos-arm64,iphoneos-armv7 ${BUCK_OPTIONS} + sh package_app.sh $(BUCK) "${BUCK_OPTIONS}" iphoneos-arm64,iphoneos-armv7 -build_verbose: - $(BUCK) build //App:AppPackage#iphoneos-armv7,iphoneos-arm64 --verbose 8 +build_arm64: check_env + $(BUCK) build //App:AppPackage#iphoneos-arm64 ${BUCK_OPTIONS} + sh package_app.sh $(BUCK) "${BUCK_OPTIONS}" iphoneos-arm64 + +build_verbose: check_env + $(BUCK) build //App:AppPackage#iphoneos-armv7,iphoneos-arm64 --verbose 8 ${BUCK_OPTIONS} targets: $(BUCK) targets //... @@ -23,7 +27,6 @@ kill_xcode: clean: kill_xcode sh clean.sh -project: kill_xcode - $(BUCK) project //App:workspace --config custom.mode=project - open App/App.xcworkspace - +project: check_env kill_xcode + $(BUCK) project //App:workspace --config custom.mode=project ${BUCK_OPTIONS} + open App/Telegram_Buck.xcworkspace diff --git a/Telegram-iOS.xcodeproj/project.pbxproj b/Telegram-iOS.xcodeproj/project.pbxproj index 600bb45c29..477187b983 100644 --- a/Telegram-iOS.xcodeproj/project.pbxproj +++ b/Telegram-iOS.xcodeproj/project.pbxproj @@ -219,20 +219,20 @@ 09EC5CDA22CBBF9600292E42 /* telegram_plane1@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 09EC5CD922CBBF9600292E42 /* telegram_plane1@2x.png */; }; 09FDAEE62140477F00BF856F /* MtProtoKitDynamic.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 09FDAEE52140477F00BF856F /* MtProtoKitDynamic.framework */; }; D000CACF21FB6E380011B15D /* NotificationService.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = D000CAC821FB6E370011B15D /* NotificationService.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; - D001D5AA1F878DA300DF975A /* PhoneCountries.txt in Resources */ = {isa = PBXBuildFile; fileRef = D001D5A91F878DA300DF975A /* PhoneCountries.txt */; }; D008185022B5797A008A895F /* BuildConfig.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D008184F22B5797A008A895F /* BuildConfig.framework */; }; D008185222B57986008A895F /* BuildConfig.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D008185122B57986008A895F /* BuildConfig.framework */; }; D008185422B57994008A895F /* BuildConfig.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D008185322B57994008A895F /* BuildConfig.framework */; }; D008185622B579A1008A895F /* BuildConfig.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D008185522B579A1008A895F /* BuildConfig.framework */; }; D008185822B579AD008A895F /* BuildConfig.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D008185722B579AD008A895F /* BuildConfig.framework */; }; D00818A522B58CCB008A895F /* WatchCommonWatch.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D00818A422B58CCB008A895F /* WatchCommonWatch.framework */; }; - D00859A91B28189D00EAF753 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = D00859A81B28189D00EAF753 /* Images.xcassets */; }; + D00859A91B28189D00EAF753 /* Icons.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = D00859A81B28189D00EAF753 /* Icons.xcassets */; }; D00859AC1B28189D00EAF753 /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = D00859AA1B28189D00EAF753 /* LaunchScreen.xib */; }; D00ED75A1FE94630001F38BD /* AppIntentVocabulary.plist in Resources */ = {isa = PBXBuildFile; fileRef = D00ED7581FE94630001F38BD /* AppIntentVocabulary.plist */; }; D00ED75D1FE95287001F38BD /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = D00ED75B1FE95287001F38BD /* InfoPlist.strings */; }; D015E04D225D2D8F00CB9E8A /* WebP.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D015E04C225D2D8F00CB9E8A /* WebP.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; D015E050225D303F00CB9E8A /* WebP.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D015E04C225D2D8F00CB9E8A /* WebP.framework */; }; D015E051225D303F00CB9E8A /* WebP.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = D015E04C225D2D8F00CB9E8A /* WebP.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + D01748C7231976B200AF3D3A /* LegacyComponentsResources.bundle in Resources */ = {isa = PBXBuildFile; fileRef = D01748C6231976B100AF3D3A /* LegacyComponentsResources.bundle */; }; D021D4D9219CAEDD0064BEBA /* Config-Fork.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = D021D4D8219CAEDD0064BEBA /* Config-Fork.xcconfig */; }; D02CF5FD215D9ABF00E0F56A /* UserNotifications.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0AA1A671D568BA400152314 /* UserNotifications.framework */; }; D02CF5FE215D9ABF00E0F56A /* UserNotificationsUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0AA1A691D568BA400152314 /* UserNotificationsUI.framework */; }; @@ -400,6 +400,94 @@ D0E8C2E02285EA6A009F26E8 /* BlackIcon@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0E8C2DF2285EA6A009F26E8 /* BlackIcon@3x.png */; }; D0ECCB7F1FE9C38500609802 /* Telegram_iOS_UITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0ECCB7E1FE9C38500609802 /* Telegram_iOS_UITests.swift */; }; D0ECCB8A1FE9C4AC00609802 /* SnapshotHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0ECCB891FE9C4AC00609802 /* SnapshotHelper.swift */; }; + D0EFF27C2319835B00CF5164 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF27B2319835A00CF5164 /* Images.xcassets */; }; + D0EFF2D52319838800CF5164 /* PhoneCountries.txt in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF27D2319838400CF5164 /* PhoneCountries.txt */; }; + D0EFF2D62319838800CF5164 /* currencies.json in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF27E2319838500CF5164 /* currencies.json */; }; + D0EFF2D72319838800CF5164 /* Emoji.mapping in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF27F2319838500CF5164 /* Emoji.mapping */; }; + D0EFF2D82319838800CF5164 /* lol.tgs in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2812319838500CF5164 /* lol.tgs */; }; + D0EFF2D92319838800CF5164 /* thumbsup.tgs in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2822319838500CF5164 /* thumbsup.tgs */; }; + D0EFF2DA2319838800CF5164 /* poker.tgs in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2832319838500CF5164 /* poker.tgs */; }; + D0EFF2DB2319838800CF5164 /* cry.tgs in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2842319838500CF5164 /* cry.tgs */; }; + D0EFF2DC2319838800CF5164 /* meh.tgs in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2852319838500CF5164 /* meh.tgs */; }; + D0EFF2DD2319838800CF5164 /* sad.tgs in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2862319838500CF5164 /* sad.tgs */; }; + D0EFF2DE2319838800CF5164 /* surprised.tgs in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2872319838500CF5164 /* surprised.tgs */; }; + D0EFF2DF2319838800CF5164 /* ok.tgs in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2882319838500CF5164 /* ok.tgs */; }; + D0EFF2E02319838800CF5164 /* heart.tgs in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2892319838500CF5164 /* heart.tgs */; }; + D0EFF2E12319838800CF5164 /* poop.tgs in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF28A2319838500CF5164 /* poop.tgs */; }; + D0EFF2E22319838800CF5164 /* celebrate.tgs in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF28B2319838600CF5164 /* celebrate.tgs */; }; + D0EFF2E32319838800CF5164 /* smile.tgs in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF28C2319838600CF5164 /* smile.tgs */; }; + D0EFF2E42319838800CF5164 /* ChatWallpaperBuiltin0.jpg in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF28D2319838600CF5164 /* ChatWallpaperBuiltin0.jpg */; }; + D0EFF2E52319838800CF5164 /* stp_card_visa_template@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF28F2319838600CF5164 /* stp_card_visa_template@3x.png */; }; + D0EFF2E62319838800CF5164 /* stp_card_form_back@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2902319838600CF5164 /* stp_card_form_back@3x.png */; }; + D0EFF2E72319838800CF5164 /* stp_card_amex@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2912319838600CF5164 /* stp_card_amex@3x.png */; }; + D0EFF2E82319838800CF5164 /* stp_card_diners@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2922319838600CF5164 /* stp_card_diners@2x.png */; }; + D0EFF2E92319838800CF5164 /* stp_card_diners_template@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2932319838600CF5164 /* stp_card_diners_template@2x.png */; }; + D0EFF2EA2319838800CF5164 /* stp_card_amex_template@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2942319838600CF5164 /* stp_card_amex_template@3x.png */; }; + D0EFF2EB2319838800CF5164 /* stp_card_diners_template@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2952319838600CF5164 /* stp_card_diners_template@3x.png */; }; + D0EFF2EC2319838800CF5164 /* stp_card_amex_template@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2962319838600CF5164 /* stp_card_amex_template@2x.png */; }; + D0EFF2ED2319838800CF5164 /* stp_card_diners@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2972319838600CF5164 /* stp_card_diners@3x.png */; }; + D0EFF2EE2319838800CF5164 /* stp_card_amex@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2982319838600CF5164 /* stp_card_amex@2x.png */; }; + D0EFF2EF2319838800CF5164 /* stp_card_form_back@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2992319838600CF5164 /* stp_card_form_back@2x.png */; }; + D0EFF2F02319838800CF5164 /* stp_card_visa_template@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF29A2319838600CF5164 /* stp_card_visa_template@2x.png */; }; + D0EFF2F12319838800CF5164 /* stp_card_form_front@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF29B2319838600CF5164 /* stp_card_form_front@2x.png */; }; + D0EFF2F22319838800CF5164 /* stp_card_applepay_template@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF29C2319838600CF5164 /* stp_card_applepay_template@2x.png */; }; + D0EFF2F32319838800CF5164 /* stp_card_cvc_amex@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF29D2319838600CF5164 /* stp_card_cvc_amex@3x.png */; }; + D0EFF2F42319838800CF5164 /* stp_card_discover@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF29E2319838600CF5164 /* stp_card_discover@3x.png */; }; + D0EFF2F52319838800CF5164 /* stp_card_cvc@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF29F2319838600CF5164 /* stp_card_cvc@2x.png */; }; + D0EFF2F62319838800CF5164 /* stp_card_jcb_template@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2A02319838600CF5164 /* stp_card_jcb_template@3x.png */; }; + D0EFF2F72319838800CF5164 /* stp_card_jcb@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2A12319838600CF5164 /* stp_card_jcb@3x.png */; }; + D0EFF2F82319838800CF5164 /* stp_card_jcb@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2A22319838600CF5164 /* stp_card_jcb@2x.png */; }; + D0EFF2F92319838800CF5164 /* stp_card_cvc@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2A32319838600CF5164 /* stp_card_cvc@3x.png */; }; + D0EFF2FA2319838800CF5164 /* stp_card_jcb_template@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2A42319838600CF5164 /* stp_card_jcb_template@2x.png */; }; + D0EFF2FB2319838800CF5164 /* stp_card_discover@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2A52319838600CF5164 /* stp_card_discover@2x.png */; }; + D0EFF2FC2319838800CF5164 /* stp_card_cvc_amex@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2A62319838600CF5164 /* stp_card_cvc_amex@2x.png */; }; + D0EFF2FD2319838800CF5164 /* stp_card_applepay_template@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2A72319838600CF5164 /* stp_card_applepay_template@3x.png */; }; + D0EFF2FE2319838800CF5164 /* stp_card_form_front@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2A82319838600CF5164 /* stp_card_form_front@3x.png */; }; + D0EFF2FF2319838800CF5164 /* stp_card_visa@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2A92319838600CF5164 /* stp_card_visa@3x.png */; }; + D0EFF3002319838800CF5164 /* stp_card_placeholder_template@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2AA2319838600CF5164 /* stp_card_placeholder_template@3x.png */; }; + D0EFF3012319838800CF5164 /* stp_card_applepay@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2AB2319838600CF5164 /* stp_card_applepay@2x.png */; }; + D0EFF3022319838800CF5164 /* stp_card_applepay@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2AC2319838600CF5164 /* stp_card_applepay@3x.png */; }; + D0EFF3032319838800CF5164 /* stp_card_placeholder_template@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2AD2319838600CF5164 /* stp_card_placeholder_template@2x.png */; }; + D0EFF3042319838800CF5164 /* stp_card_visa@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2AE2319838600CF5164 /* stp_card_visa@2x.png */; }; + D0EFF3052319838800CF5164 /* stp_card_mastercard_template@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2AF2319838600CF5164 /* stp_card_mastercard_template@3x.png */; }; + D0EFF3062319838800CF5164 /* stp_card_discover_template@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2B02319838600CF5164 /* stp_card_discover_template@2x.png */; }; + D0EFF3072319838800CF5164 /* stp_card_form_applepay@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2B12319838600CF5164 /* stp_card_form_applepay@3x.png */; }; + D0EFF3082319838800CF5164 /* stp_card_mastercard@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2B22319838600CF5164 /* stp_card_mastercard@2x.png */; }; + D0EFF3092319838800CF5164 /* stp_card_mastercard@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2B32319838600CF5164 /* stp_card_mastercard@3x.png */; }; + D0EFF30A2319838800CF5164 /* stp_card_discover_template@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2B42319838600CF5164 /* stp_card_discover_template@3x.png */; }; + D0EFF30B2319838800CF5164 /* stp_card_form_applepay@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2B52319838600CF5164 /* stp_card_form_applepay@2x.png */; }; + D0EFF30C2319838800CF5164 /* stp_card_mastercard_template@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2B62319838600CF5164 /* stp_card_mastercard_template@2x.png */; }; + D0EFF30D2319838800CF5164 /* anim_read.json in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2B82319838700CF5164 /* anim_read.json */; }; + D0EFF30E2319838800CF5164 /* anim_archive.json in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2B92319838700CF5164 /* anim_archive.json */; }; + D0EFF30F2319838800CF5164 /* anim_pin.json in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2BA2319838700CF5164 /* anim_pin.json */; }; + D0EFF3102319838800CF5164 /* anim_infotip.json in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2BB2319838700CF5164 /* anim_infotip.json */; }; + D0EFF3112319838800CF5164 /* anim_unmute.json in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2BC2319838700CF5164 /* anim_unmute.json */; }; + D0EFF3122319838800CF5164 /* anim_unpin.json in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2BD2319838700CF5164 /* anim_unpin.json */; }; + D0EFF3132319838800CF5164 /* anim_success.json in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2BE2319838700CF5164 /* anim_success.json */; }; + D0EFF3142319838800CF5164 /* anim_unread.json in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2BF2319838700CF5164 /* anim_unread.json */; }; + D0EFF3152319838800CF5164 /* anim_archiveswipe.json in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2C02319838700CF5164 /* anim_archiveswipe.json */; }; + D0EFF3162319838800CF5164 /* anim_delete.json in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2C12319838700CF5164 /* anim_delete.json */; }; + D0EFF3172319838800CF5164 /* anim_archiveAvatar.json in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2C22319838700CF5164 /* anim_archiveAvatar.json */; }; + D0EFF3182319838800CF5164 /* anim_unarchive.json in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2C32319838700CF5164 /* anim_unarchive.json */; }; + D0EFF3192319838800CF5164 /* anim_ungroup.json in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2C42319838700CF5164 /* anim_ungroup.json */; }; + D0EFF31A2319838800CF5164 /* anim_hide.json in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2C52319838700CF5164 /* anim_hide.json */; }; + D0EFF31B2319838800CF5164 /* anim_group.json in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2C62319838700CF5164 /* anim_group.json */; }; + D0EFF31C2319838800CF5164 /* anim_mute.json in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2C72319838700CF5164 /* anim_mute.json */; }; + D0EFF31D2319838800CF5164 /* PresentationStrings.mapping in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2C82319838700CF5164 /* PresentationStrings.mapping */; }; + D0EFF31E2319838800CF5164 /* VimeoUserScript.js in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2CA2319838700CF5164 /* VimeoUserScript.js */; }; + D0EFF31F2319838800CF5164 /* TwitchUserScript.js in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2CB2319838700CF5164 /* TwitchUserScript.js */; }; + D0EFF3202319838800CF5164 /* Youtube.html in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2CC2319838700CF5164 /* Youtube.html */; }; + D0EFF3212319838800CF5164 /* Twitch.html in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2CD2319838700CF5164 /* Twitch.html */; }; + D0EFF3222319838800CF5164 /* Vimeo.html in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2CE2319838700CF5164 /* Vimeo.html */; }; + D0EFF3232319838800CF5164 /* Instagram.html in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2CF2319838700CF5164 /* Instagram.html */; }; + D0EFF3242319838800CF5164 /* Generic.html in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2D02319838700CF5164 /* Generic.html */; }; + D0EFF3252319838800CF5164 /* GenericUserScript.js in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2D12319838700CF5164 /* GenericUserScript.js */; }; + D0EFF3262319838800CF5164 /* YoutubeUserScript.js in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2D22319838700CF5164 /* YoutubeUserScript.js */; }; + D0EFF3272319838800CF5164 /* SFCompactRounded-Semibold.otf in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF2D42319838700CF5164 /* SFCompactRounded-Semibold.otf */; }; + D0EFF32B231983BF00CF5164 /* MessageSent.caf in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF329231983BF00CF5164 /* MessageSent.caf */; }; + D0EFF32C231983BF00CF5164 /* notification.caf in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF32A231983BF00CF5164 /* notification.caf */; }; + D0EFF33023198D3200CF5164 /* NavigationBackArrowLight@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF32E23198D3200CF5164 /* NavigationBackArrowLight@2x.png */; }; + D0EFF33123198D3200CF5164 /* NavigationShadow@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0EFF32F23198D3200CF5164 /* NavigationShadow@2x.png */; }; D0F575132083B96B00F1C1E1 /* CloudKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0F575122083B96B00F1C1E1 /* CloudKit.framework */; }; D0FC1948201D2DA800FEDBB2 /* SFCompactRounded-Semibold.otf in Resources */ = {isa = PBXBuildFile; fileRef = D0FC1947201D2DA700FEDBB2 /* SFCompactRounded-Semibold.otf */; }; /* End PBXBuildFile section */ @@ -881,7 +969,6 @@ D000CAC221FB6E170011B15D /* NotificationService-AppStore.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = "NotificationService-AppStore.entitlements"; sourceTree = ""; }; D000CAC321FB6E170011B15D /* NotificationService-AppStoreLLC.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = "NotificationService-AppStoreLLC.entitlements"; sourceTree = ""; }; D000CAC821FB6E370011B15D /* NotificationService.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = NotificationService.appex; sourceTree = BUILT_PRODUCTS_DIR; }; - D001D5A91F878DA300DF975A /* PhoneCountries.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = PhoneCountries.txt; path = "Telegram-iOS/Resources/PhoneCountries.txt"; sourceTree = ""; }; D006CFA121A8D12600FDCD32 /* ModernProto.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ModernProto.framework; path = "../../../Library/Developer/Xcode/DerivedData/Telegram-iOS-ffbqcdyqpehxdvcwhyaorlehrrdc/Build/Products/Debug Hockeyapp-iphoneos/ModernProto.framework"; sourceTree = ""; }; D008184B22B578EC008A895F /* WatchCommon.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = WatchCommon.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D008184D22B5796E008A895F /* BuildConfig.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = BuildConfig.framework; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -895,13 +982,14 @@ D00818CE22B595DB008A895F /* LightweightAccountData.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = LightweightAccountData.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D008599C1B28189D00EAF753 /* Telegram.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Telegram.app; sourceTree = BUILT_PRODUCTS_DIR; }; D00859A01B28189D00EAF753 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - D00859A81B28189D00EAF753 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = ""; }; + D00859A81B28189D00EAF753 /* Icons.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Icons.xcassets; sourceTree = ""; }; D00859AB1B28189D00EAF753 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/LaunchScreen.xib; sourceTree = ""; }; D00859B61B28189D00EAF753 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; D00859B71B28189D00EAF753 /* Telegram_iOSTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Telegram_iOSTests.swift; sourceTree = ""; }; D00ED7591FE94630001F38BD /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = en; path = en.lproj/AppIntentVocabulary.plist; sourceTree = ""; }; D00ED75C1FE95287001F38BD /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; D015E04C225D2D8F00CB9E8A /* WebP.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = WebP.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D01748C6231976B100AF3D3A /* LegacyComponentsResources.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; name = LegacyComponentsResources.bundle; path = submodules/LegacyComponents/LegacyComponents/Resources/LegacyComponentsResources.bundle; sourceTree = ""; }; D01A47521F4DBEB100383CC1 /* libHockeySDK.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libHockeySDK.a; path = "../../build/HockeySDK-iOS/Support/build/Debug-iphoneos/libHockeySDK.a"; sourceTree = ""; }; D01A47541F4DBED700383CC1 /* HockeySDK.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = HockeySDK.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D021D4D7219CAEDD0064BEBA /* Telegram-iOS-Fork.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = "Telegram-iOS-Fork.entitlements"; sourceTree = ""; }; @@ -1129,6 +1217,94 @@ D0ECCB801FE9C38500609802 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; D0ECCB891FE9C4AC00609802 /* SnapshotHelper.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SnapshotHelper.swift; sourceTree = ""; }; D0ED633C21FF3F28001D4648 /* NotificationService-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "NotificationService-Bridging-Header.h"; sourceTree = ""; }; + D0EFF27B2319835A00CF5164 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = submodules/TelegramUI/Images.xcassets; sourceTree = ""; }; + D0EFF27D2319838400CF5164 /* PhoneCountries.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = PhoneCountries.txt; path = submodules/TelegramUI/TelegramUI/Resources/PhoneCountries.txt; sourceTree = ""; }; + D0EFF27E2319838500CF5164 /* currencies.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; name = currencies.json; path = submodules/TelegramUI/TelegramUI/Resources/currencies.json; sourceTree = ""; }; + D0EFF27F2319838500CF5164 /* Emoji.mapping */ = {isa = PBXFileReference; lastKnownFileType = file; name = Emoji.mapping; path = submodules/TelegramUI/TelegramUI/Resources/Emoji.mapping; sourceTree = ""; }; + D0EFF2812319838500CF5164 /* lol.tgs */ = {isa = PBXFileReference; lastKnownFileType = file; path = lol.tgs; sourceTree = ""; }; + D0EFF2822319838500CF5164 /* thumbsup.tgs */ = {isa = PBXFileReference; lastKnownFileType = file; path = thumbsup.tgs; sourceTree = ""; }; + D0EFF2832319838500CF5164 /* poker.tgs */ = {isa = PBXFileReference; lastKnownFileType = file; path = poker.tgs; sourceTree = ""; }; + D0EFF2842319838500CF5164 /* cry.tgs */ = {isa = PBXFileReference; lastKnownFileType = file; path = cry.tgs; sourceTree = ""; }; + D0EFF2852319838500CF5164 /* meh.tgs */ = {isa = PBXFileReference; lastKnownFileType = file; path = meh.tgs; sourceTree = ""; }; + D0EFF2862319838500CF5164 /* sad.tgs */ = {isa = PBXFileReference; lastKnownFileType = file; path = sad.tgs; sourceTree = ""; }; + D0EFF2872319838500CF5164 /* surprised.tgs */ = {isa = PBXFileReference; lastKnownFileType = file; path = surprised.tgs; sourceTree = ""; }; + D0EFF2882319838500CF5164 /* ok.tgs */ = {isa = PBXFileReference; lastKnownFileType = file; path = ok.tgs; sourceTree = ""; }; + D0EFF2892319838500CF5164 /* heart.tgs */ = {isa = PBXFileReference; lastKnownFileType = file; path = heart.tgs; sourceTree = ""; }; + D0EFF28A2319838500CF5164 /* poop.tgs */ = {isa = PBXFileReference; lastKnownFileType = file; path = poop.tgs; sourceTree = ""; }; + D0EFF28B2319838600CF5164 /* celebrate.tgs */ = {isa = PBXFileReference; lastKnownFileType = file; path = celebrate.tgs; sourceTree = ""; }; + D0EFF28C2319838600CF5164 /* smile.tgs */ = {isa = PBXFileReference; lastKnownFileType = file; path = smile.tgs; sourceTree = ""; }; + D0EFF28D2319838600CF5164 /* ChatWallpaperBuiltin0.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; name = ChatWallpaperBuiltin0.jpg; path = submodules/TelegramUI/TelegramUI/Resources/ChatWallpaperBuiltin0.jpg; sourceTree = ""; }; + D0EFF28F2319838600CF5164 /* stp_card_visa_template@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_visa_template@3x.png"; sourceTree = ""; }; + D0EFF2902319838600CF5164 /* stp_card_form_back@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_form_back@3x.png"; sourceTree = ""; }; + D0EFF2912319838600CF5164 /* stp_card_amex@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_amex@3x.png"; sourceTree = ""; }; + D0EFF2922319838600CF5164 /* stp_card_diners@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_diners@2x.png"; sourceTree = ""; }; + D0EFF2932319838600CF5164 /* stp_card_diners_template@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_diners_template@2x.png"; sourceTree = ""; }; + D0EFF2942319838600CF5164 /* stp_card_amex_template@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_amex_template@3x.png"; sourceTree = ""; }; + D0EFF2952319838600CF5164 /* stp_card_diners_template@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_diners_template@3x.png"; sourceTree = ""; }; + D0EFF2962319838600CF5164 /* stp_card_amex_template@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_amex_template@2x.png"; sourceTree = ""; }; + D0EFF2972319838600CF5164 /* stp_card_diners@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_diners@3x.png"; sourceTree = ""; }; + D0EFF2982319838600CF5164 /* stp_card_amex@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_amex@2x.png"; sourceTree = ""; }; + D0EFF2992319838600CF5164 /* stp_card_form_back@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_form_back@2x.png"; sourceTree = ""; }; + D0EFF29A2319838600CF5164 /* stp_card_visa_template@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_visa_template@2x.png"; sourceTree = ""; }; + D0EFF29B2319838600CF5164 /* stp_card_form_front@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_form_front@2x.png"; sourceTree = ""; }; + D0EFF29C2319838600CF5164 /* stp_card_applepay_template@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_applepay_template@2x.png"; sourceTree = ""; }; + D0EFF29D2319838600CF5164 /* stp_card_cvc_amex@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_cvc_amex@3x.png"; sourceTree = ""; }; + D0EFF29E2319838600CF5164 /* stp_card_discover@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_discover@3x.png"; sourceTree = ""; }; + D0EFF29F2319838600CF5164 /* stp_card_cvc@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_cvc@2x.png"; sourceTree = ""; }; + D0EFF2A02319838600CF5164 /* stp_card_jcb_template@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_jcb_template@3x.png"; sourceTree = ""; }; + D0EFF2A12319838600CF5164 /* stp_card_jcb@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_jcb@3x.png"; sourceTree = ""; }; + D0EFF2A22319838600CF5164 /* stp_card_jcb@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_jcb@2x.png"; sourceTree = ""; }; + D0EFF2A32319838600CF5164 /* stp_card_cvc@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_cvc@3x.png"; sourceTree = ""; }; + D0EFF2A42319838600CF5164 /* stp_card_jcb_template@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_jcb_template@2x.png"; sourceTree = ""; }; + D0EFF2A52319838600CF5164 /* stp_card_discover@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_discover@2x.png"; sourceTree = ""; }; + D0EFF2A62319838600CF5164 /* stp_card_cvc_amex@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_cvc_amex@2x.png"; sourceTree = ""; }; + D0EFF2A72319838600CF5164 /* stp_card_applepay_template@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_applepay_template@3x.png"; sourceTree = ""; }; + D0EFF2A82319838600CF5164 /* stp_card_form_front@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_form_front@3x.png"; sourceTree = ""; }; + D0EFF2A92319838600CF5164 /* stp_card_visa@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_visa@3x.png"; sourceTree = ""; }; + D0EFF2AA2319838600CF5164 /* stp_card_placeholder_template@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_placeholder_template@3x.png"; sourceTree = ""; }; + D0EFF2AB2319838600CF5164 /* stp_card_applepay@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_applepay@2x.png"; sourceTree = ""; }; + D0EFF2AC2319838600CF5164 /* stp_card_applepay@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_applepay@3x.png"; sourceTree = ""; }; + D0EFF2AD2319838600CF5164 /* stp_card_placeholder_template@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_placeholder_template@2x.png"; sourceTree = ""; }; + D0EFF2AE2319838600CF5164 /* stp_card_visa@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_visa@2x.png"; sourceTree = ""; }; + D0EFF2AF2319838600CF5164 /* stp_card_mastercard_template@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_mastercard_template@3x.png"; sourceTree = ""; }; + D0EFF2B02319838600CF5164 /* stp_card_discover_template@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_discover_template@2x.png"; sourceTree = ""; }; + D0EFF2B12319838600CF5164 /* stp_card_form_applepay@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_form_applepay@3x.png"; sourceTree = ""; }; + D0EFF2B22319838600CF5164 /* stp_card_mastercard@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_mastercard@2x.png"; sourceTree = ""; }; + D0EFF2B32319838600CF5164 /* stp_card_mastercard@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_mastercard@3x.png"; sourceTree = ""; }; + D0EFF2B42319838600CF5164 /* stp_card_discover_template@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_discover_template@3x.png"; sourceTree = ""; }; + D0EFF2B52319838600CF5164 /* stp_card_form_applepay@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_form_applepay@2x.png"; sourceTree = ""; }; + D0EFF2B62319838600CF5164 /* stp_card_mastercard_template@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_mastercard_template@2x.png"; sourceTree = ""; }; + D0EFF2B82319838700CF5164 /* anim_read.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = anim_read.json; sourceTree = ""; }; + D0EFF2B92319838700CF5164 /* anim_archive.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = anim_archive.json; sourceTree = ""; }; + D0EFF2BA2319838700CF5164 /* anim_pin.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = anim_pin.json; sourceTree = ""; }; + D0EFF2BB2319838700CF5164 /* anim_infotip.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = anim_infotip.json; sourceTree = ""; }; + D0EFF2BC2319838700CF5164 /* anim_unmute.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = anim_unmute.json; sourceTree = ""; }; + D0EFF2BD2319838700CF5164 /* anim_unpin.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = anim_unpin.json; sourceTree = ""; }; + D0EFF2BE2319838700CF5164 /* anim_success.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = anim_success.json; sourceTree = ""; }; + D0EFF2BF2319838700CF5164 /* anim_unread.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = anim_unread.json; sourceTree = ""; }; + D0EFF2C02319838700CF5164 /* anim_archiveswipe.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = anim_archiveswipe.json; sourceTree = ""; }; + D0EFF2C12319838700CF5164 /* anim_delete.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = anim_delete.json; sourceTree = ""; }; + D0EFF2C22319838700CF5164 /* anim_archiveAvatar.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = anim_archiveAvatar.json; sourceTree = ""; }; + D0EFF2C32319838700CF5164 /* anim_unarchive.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = anim_unarchive.json; sourceTree = ""; }; + D0EFF2C42319838700CF5164 /* anim_ungroup.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = anim_ungroup.json; sourceTree = ""; }; + D0EFF2C52319838700CF5164 /* anim_hide.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = anim_hide.json; sourceTree = ""; }; + D0EFF2C62319838700CF5164 /* anim_group.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = anim_group.json; sourceTree = ""; }; + D0EFF2C72319838700CF5164 /* anim_mute.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = anim_mute.json; sourceTree = ""; }; + D0EFF2C82319838700CF5164 /* PresentationStrings.mapping */ = {isa = PBXFileReference; lastKnownFileType = file; name = PresentationStrings.mapping; path = submodules/TelegramUI/TelegramUI/Resources/PresentationStrings.mapping; sourceTree = ""; }; + D0EFF2CA2319838700CF5164 /* VimeoUserScript.js */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.javascript; path = VimeoUserScript.js; sourceTree = ""; }; + D0EFF2CB2319838700CF5164 /* TwitchUserScript.js */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.javascript; path = TwitchUserScript.js; sourceTree = ""; }; + D0EFF2CC2319838700CF5164 /* Youtube.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = Youtube.html; sourceTree = ""; }; + D0EFF2CD2319838700CF5164 /* Twitch.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = Twitch.html; sourceTree = ""; }; + D0EFF2CE2319838700CF5164 /* Vimeo.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = Vimeo.html; sourceTree = ""; }; + D0EFF2CF2319838700CF5164 /* Instagram.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = Instagram.html; sourceTree = ""; }; + D0EFF2D02319838700CF5164 /* Generic.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = Generic.html; sourceTree = ""; }; + D0EFF2D12319838700CF5164 /* GenericUserScript.js */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.javascript; path = GenericUserScript.js; sourceTree = ""; }; + D0EFF2D22319838700CF5164 /* YoutubeUserScript.js */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.javascript; path = YoutubeUserScript.js; sourceTree = ""; }; + D0EFF2D42319838700CF5164 /* SFCompactRounded-Semibold.otf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "SFCompactRounded-Semibold.otf"; sourceTree = ""; }; + D0EFF329231983BF00CF5164 /* MessageSent.caf */ = {isa = PBXFileReference; lastKnownFileType = file; path = MessageSent.caf; sourceTree = ""; }; + D0EFF32A231983BF00CF5164 /* notification.caf */ = {isa = PBXFileReference; lastKnownFileType = file; path = notification.caf; sourceTree = ""; }; + D0EFF32E23198D3200CF5164 /* NavigationBackArrowLight@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "NavigationBackArrowLight@2x.png"; path = "Telegram-iOS/Resources/NavigationBackArrowLight@2x.png"; sourceTree = ""; }; + D0EFF32F23198D3200CF5164 /* NavigationShadow@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "NavigationShadow@2x.png"; path = "Telegram-iOS/Resources/NavigationShadow@2x.png"; sourceTree = ""; }; D0F575122083B96B00F1C1E1 /* CloudKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CloudKit.framework; path = System/Library/Frameworks/CloudKit.framework; sourceTree = SDKROOT; }; D0FC1947201D2DA700FEDBB2 /* SFCompactRounded-Semibold.otf */ = {isa = PBXFileReference; lastKnownFileType = file; name = "SFCompactRounded-Semibold.otf"; path = "Telegram-iOS/Resources/SFCompactRounded-Semibold.otf"; sourceTree = ""; }; /* End PBXFileReference section */ @@ -1951,7 +2127,7 @@ D079FD001F06BBD10038FADE /* Telegram-iOS-AppStore.entitlements */, D0E3A7071B285B5000A402D9 /* Telegram-iOS-Hockeyapp.entitlements */, D021D4D7219CAEDD0064BEBA /* Telegram-iOS-Fork.entitlements */, - D00859A81B28189D00EAF753 /* Images.xcassets */, + D00859A81B28189D00EAF753 /* Icons.xcassets */, D00859AA1B28189D00EAF753 /* LaunchScreen.xib */, D008599F1B28189D00EAF753 /* Supporting Files */, ); @@ -2085,6 +2261,21 @@ D023EBB31DDB2F0E00BD496D /* Resources */ = { isa = PBXGroup; children = ( + D0EFF32E23198D3200CF5164 /* NavigationBackArrowLight@2x.png */, + D0EFF32F23198D3200CF5164 /* NavigationShadow@2x.png */, + D0EFF328231983BF00CF5164 /* Sounds */, + D0EFF2B72319838700CF5164 /* Animations */, + D0EFF2802319838500CF5164 /* BuiltinReactions */, + D0EFF28D2319838600CF5164 /* ChatWallpaperBuiltin0.jpg */, + D0EFF27E2319838500CF5164 /* currencies.json */, + D0EFF27F2319838500CF5164 /* Emoji.mapping */, + D0EFF2D32319838700CF5164 /* Fonts */, + D0EFF27D2319838400CF5164 /* PhoneCountries.txt */, + D0EFF2C82319838700CF5164 /* PresentationStrings.mapping */, + D0EFF28E2319838600CF5164 /* Stripe */, + D0EFF2C92319838700CF5164 /* WebEmbed */, + D0EFF27B2319835A00CF5164 /* Images.xcassets */, + D01748C6231976B100AF3D3A /* LegacyComponentsResources.bundle */, D0E8B8AC2044496C00605593 /* voip_busy.caf */, D0E8B8A82044496B00605593 /* voip_connecting.mp3 */, D0E8B8A92044496C00605593 /* voip_end.caf */, @@ -2092,7 +2283,6 @@ D0E8B8AB2044496C00605593 /* voip_ringback.caf */, D0FC1947201D2DA700FEDBB2 /* SFCompactRounded-Semibold.otf */, D0CFBB921FD88C2900B65C0D /* begin_record.caf */, - D001D5A91F878DA300DF975A /* PhoneCountries.txt */, D04DCC0A1F71C80000B021D7 /* notifications */, D050F21B1E49DEDE00988324 /* intro */, ); @@ -2480,6 +2670,134 @@ path = "Telegram-iOS UITests"; sourceTree = ""; }; + D0EFF2802319838500CF5164 /* BuiltinReactions */ = { + isa = PBXGroup; + children = ( + D0EFF2812319838500CF5164 /* lol.tgs */, + D0EFF2822319838500CF5164 /* thumbsup.tgs */, + D0EFF2832319838500CF5164 /* poker.tgs */, + D0EFF2842319838500CF5164 /* cry.tgs */, + D0EFF2852319838500CF5164 /* meh.tgs */, + D0EFF2862319838500CF5164 /* sad.tgs */, + D0EFF2872319838500CF5164 /* surprised.tgs */, + D0EFF2882319838500CF5164 /* ok.tgs */, + D0EFF2892319838500CF5164 /* heart.tgs */, + D0EFF28A2319838500CF5164 /* poop.tgs */, + D0EFF28B2319838600CF5164 /* celebrate.tgs */, + D0EFF28C2319838600CF5164 /* smile.tgs */, + ); + name = BuiltinReactions; + path = submodules/TelegramUI/TelegramUI/Resources/BuiltinReactions; + sourceTree = ""; + }; + D0EFF28E2319838600CF5164 /* Stripe */ = { + isa = PBXGroup; + children = ( + D0EFF28F2319838600CF5164 /* stp_card_visa_template@3x.png */, + D0EFF2902319838600CF5164 /* stp_card_form_back@3x.png */, + D0EFF2912319838600CF5164 /* stp_card_amex@3x.png */, + D0EFF2922319838600CF5164 /* stp_card_diners@2x.png */, + D0EFF2932319838600CF5164 /* stp_card_diners_template@2x.png */, + D0EFF2942319838600CF5164 /* stp_card_amex_template@3x.png */, + D0EFF2952319838600CF5164 /* stp_card_diners_template@3x.png */, + D0EFF2962319838600CF5164 /* stp_card_amex_template@2x.png */, + D0EFF2972319838600CF5164 /* stp_card_diners@3x.png */, + D0EFF2982319838600CF5164 /* stp_card_amex@2x.png */, + D0EFF2992319838600CF5164 /* stp_card_form_back@2x.png */, + D0EFF29A2319838600CF5164 /* stp_card_visa_template@2x.png */, + D0EFF29B2319838600CF5164 /* stp_card_form_front@2x.png */, + D0EFF29C2319838600CF5164 /* stp_card_applepay_template@2x.png */, + D0EFF29D2319838600CF5164 /* stp_card_cvc_amex@3x.png */, + D0EFF29E2319838600CF5164 /* stp_card_discover@3x.png */, + D0EFF29F2319838600CF5164 /* stp_card_cvc@2x.png */, + D0EFF2A02319838600CF5164 /* stp_card_jcb_template@3x.png */, + D0EFF2A12319838600CF5164 /* stp_card_jcb@3x.png */, + D0EFF2A22319838600CF5164 /* stp_card_jcb@2x.png */, + D0EFF2A32319838600CF5164 /* stp_card_cvc@3x.png */, + D0EFF2A42319838600CF5164 /* stp_card_jcb_template@2x.png */, + D0EFF2A52319838600CF5164 /* stp_card_discover@2x.png */, + D0EFF2A62319838600CF5164 /* stp_card_cvc_amex@2x.png */, + D0EFF2A72319838600CF5164 /* stp_card_applepay_template@3x.png */, + D0EFF2A82319838600CF5164 /* stp_card_form_front@3x.png */, + D0EFF2A92319838600CF5164 /* stp_card_visa@3x.png */, + D0EFF2AA2319838600CF5164 /* stp_card_placeholder_template@3x.png */, + D0EFF2AB2319838600CF5164 /* stp_card_applepay@2x.png */, + D0EFF2AC2319838600CF5164 /* stp_card_applepay@3x.png */, + D0EFF2AD2319838600CF5164 /* stp_card_placeholder_template@2x.png */, + D0EFF2AE2319838600CF5164 /* stp_card_visa@2x.png */, + D0EFF2AF2319838600CF5164 /* stp_card_mastercard_template@3x.png */, + D0EFF2B02319838600CF5164 /* stp_card_discover_template@2x.png */, + D0EFF2B12319838600CF5164 /* stp_card_form_applepay@3x.png */, + D0EFF2B22319838600CF5164 /* stp_card_mastercard@2x.png */, + D0EFF2B32319838600CF5164 /* stp_card_mastercard@3x.png */, + D0EFF2B42319838600CF5164 /* stp_card_discover_template@3x.png */, + D0EFF2B52319838600CF5164 /* stp_card_form_applepay@2x.png */, + D0EFF2B62319838600CF5164 /* stp_card_mastercard_template@2x.png */, + ); + name = Stripe; + path = submodules/TelegramUI/TelegramUI/Resources/Stripe; + sourceTree = ""; + }; + D0EFF2B72319838700CF5164 /* Animations */ = { + isa = PBXGroup; + children = ( + D0EFF2B82319838700CF5164 /* anim_read.json */, + D0EFF2B92319838700CF5164 /* anim_archive.json */, + D0EFF2BA2319838700CF5164 /* anim_pin.json */, + D0EFF2BB2319838700CF5164 /* anim_infotip.json */, + D0EFF2BC2319838700CF5164 /* anim_unmute.json */, + D0EFF2BD2319838700CF5164 /* anim_unpin.json */, + D0EFF2BE2319838700CF5164 /* anim_success.json */, + D0EFF2BF2319838700CF5164 /* anim_unread.json */, + D0EFF2C02319838700CF5164 /* anim_archiveswipe.json */, + D0EFF2C12319838700CF5164 /* anim_delete.json */, + D0EFF2C22319838700CF5164 /* anim_archiveAvatar.json */, + D0EFF2C32319838700CF5164 /* anim_unarchive.json */, + D0EFF2C42319838700CF5164 /* anim_ungroup.json */, + D0EFF2C52319838700CF5164 /* anim_hide.json */, + D0EFF2C62319838700CF5164 /* anim_group.json */, + D0EFF2C72319838700CF5164 /* anim_mute.json */, + ); + name = Animations; + path = submodules/TelegramUI/TelegramUI/Resources/Animations; + sourceTree = ""; + }; + D0EFF2C92319838700CF5164 /* WebEmbed */ = { + isa = PBXGroup; + children = ( + D0EFF2CA2319838700CF5164 /* VimeoUserScript.js */, + D0EFF2CB2319838700CF5164 /* TwitchUserScript.js */, + D0EFF2CC2319838700CF5164 /* Youtube.html */, + D0EFF2CD2319838700CF5164 /* Twitch.html */, + D0EFF2CE2319838700CF5164 /* Vimeo.html */, + D0EFF2CF2319838700CF5164 /* Instagram.html */, + D0EFF2D02319838700CF5164 /* Generic.html */, + D0EFF2D12319838700CF5164 /* GenericUserScript.js */, + D0EFF2D22319838700CF5164 /* YoutubeUserScript.js */, + ); + name = WebEmbed; + path = submodules/TelegramUI/TelegramUI/Resources/WebEmbed; + sourceTree = ""; + }; + D0EFF2D32319838700CF5164 /* Fonts */ = { + isa = PBXGroup; + children = ( + D0EFF2D42319838700CF5164 /* SFCompactRounded-Semibold.otf */, + ); + name = Fonts; + path = submodules/TelegramUI/TelegramUI/Resources/Fonts; + sourceTree = ""; + }; + D0EFF328231983BF00CF5164 /* Sounds */ = { + isa = PBXGroup; + children = ( + D0EFF329231983BF00CF5164 /* MessageSent.caf */, + D0EFF32A231983BF00CF5164 /* notification.caf */, + ); + name = Sounds; + path = submodules/TelegramUI/TelegramUI/Sounds; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -2827,21 +3145,32 @@ buildActionMask = 2147483647; files = ( D0CE6F6B213EDA4400BCD44B /* InfoPlist.strings in Resources */, + D0EFF2E02319838800CF5164 /* heart.tgs in Resources */, D08DB0AC213F4D1D00F2ADBF /* ic_bubble_dot@2x.png in Resources */, D08DB0B0213F4D1D00F2ADBF /* ic_pin@2x.png in Resources */, D04DCC211F71C80000B021D7 /* 0.m4a in Resources */, D04DCC261F71C80000B021D7 /* 103.m4a in Resources */, 09A218F222A1570A00DE6898 /* BlueFilledIcon@2x.png in Resources */, + D0EFF2EC2319838800CF5164 /* stp_card_amex_template@2x.png in Resources */, + D0EFF30B2319838800CF5164 /* stp_card_form_applepay@2x.png in Resources */, + D0EFF2F52319838800CF5164 /* stp_card_cvc@2x.png in Resources */, 09E9600922C23FF200B13673 /* BlueNotificationIcon.png in Resources */, + D0EFF30F2319838800CF5164 /* anim_pin.json in Resources */, 090E777722A6945900CD99F5 /* BlueClassicIcon@2x.png in Resources */, D0CE6F69213EDA4400BCD44B /* AppIntentVocabulary.plist in Resources */, D08DB0C0213F4D1D00F2ADBF /* telegram_sphere@2x.png in Resources */, + D0EFF3062319838800CF5164 /* stp_card_discover_template@2x.png in Resources */, D08DB0AB213F4D1D00F2ADBF /* ic_bubble@2x.png in Resources */, + D0EFF32C231983BF00CF5164 /* notification.caf in Resources */, D04DCC341F71C80000B021D7 /* 7.m4a in Resources */, 09E9600722C23FF200B13673 /* BlackNotificationIcon@3x.png in Resources */, 09EBE2A522B004EA00F670AB /* BlueFilledIconIpad.png in Resources */, 094DDF5C22E8C310004B0256 /* AppIntentVocabulary.plist in Resources */, 094DDF3C22E7A98E004B0256 /* Localizable.strings in Resources */, + D0EFF2F62319838800CF5164 /* stp_card_jcb_template@3x.png in Resources */, + D0EFF2D92319838800CF5164 /* thumbsup.tgs in Resources */, + D0EFF3022319838800CF5164 /* stp_card_applepay@3x.png in Resources */, + D0EFF2E62319838800CF5164 /* stp_card_form_back@3x.png in Resources */, 094DDF3422E7A61B004B0256 /* AppIntentVocabulary.plist in Resources */, D0CE6F60213EDA4400BCD44B /* AppIntentVocabulary.plist in Resources */, D0CE6F63213EDA4400BCD44B /* AppIntentVocabulary.plist in Resources */, @@ -2855,21 +3184,40 @@ D0CE6F68213EDA4400BCD44B /* InfoPlist.strings in Resources */, 09A218EE22A1570A00DE6898 /* BlueFilledIcon@3x.png in Resources */, 09E9600C22C23FF200B13673 /* BlueNotificationIcon@3x.png in Resources */, + D0EFF2FE2319838800CF5164 /* stp_card_form_front@3x.png in Resources */, 09E9601422C2441000B13673 /* BlackClassicNotificationIcon@3x.png in Resources */, D0CE6F6A213EDA4400BCD44B /* Localizable.strings in Resources */, + D0EFF3132319838800CF5164 /* anim_success.json in Resources */, + D0EFF3212319838800CF5164 /* Twitch.html in Resources */, + D0EFF2FF2319838800CF5164 /* stp_card_visa@3x.png in Resources */, + D0EFF2F02319838800CF5164 /* stp_card_visa_template@2x.png in Resources */, 09A4193522B7A4D500637EB4 /* BlackClassicIconIpad@2x.png in Resources */, + D0EFF3122319838800CF5164 /* anim_unpin.json in Resources */, + D0EFF3112319838800CF5164 /* anim_unmute.json in Resources */, + D0EFF2E32319838800CF5164 /* smile.tgs in Resources */, + D0EFF3142319838800CF5164 /* anim_unread.json in Resources */, 09E9601622C2441000B13673 /* BlueClassicNotificationIcon@2x.png in Resources */, + D0EFF2D52319838800CF5164 /* PhoneCountries.txt in Resources */, 09E9601322C2441000B13673 /* BlackClassicNotificationIcon@2x.png in Resources */, + D0EFF3052319838800CF5164 /* stp_card_mastercard_template@3x.png in Resources */, D0E8C2DE2285EA55009F26E8 /* BlackIcon@2x.png in Resources */, + D0EFF3272319838800CF5164 /* SFCompactRounded-Semibold.otf in Resources */, D09DCBB71D0C856B00F51FFE /* Localizable.strings in Resources */, 094DDF5722E8C310004B0256 /* Localizable.strings in Resources */, + D0EFF2E92319838800CF5164 /* stp_card_diners_template@2x.png in Resources */, D0CE6F66213EDA4400BCD44B /* AppIntentVocabulary.plist in Resources */, + D0EFF2E72319838800CF5164 /* stp_card_amex@3x.png in Resources */, D08DB0B8213F4D1D00F2ADBF /* powerful_mask@2x.png in Resources */, D08DB0B4213F4D1D00F2ADBF /* knot_down@2x.png in Resources */, + D0EFF2DB2319838800CF5164 /* cry.tgs in Resources */, + D0EFF2F72319838800CF5164 /* stp_card_jcb@3x.png in Resources */, 094DDF4822E7A9A8004B0256 /* AppIntentVocabulary.plist in Resources */, 09EC5CDA22CBBF9600292E42 /* telegram_plane1@2x.png in Resources */, + D0EFF3082319838800CF5164 /* stp_card_mastercard@2x.png in Resources */, D08DB0BC213F4D1D00F2ADBF /* start_arrow@2x.png in Resources */, + D0EFF2FB2319838800CF5164 /* stp_card_discover@2x.png in Resources */, D08DB0B6213F4D1D00F2ADBF /* powerful_infinity@2x.png in Resources */, + D0EFF3042319838800CF5164 /* stp_card_visa@2x.png in Resources */, 094DDF5B22E8C310004B0256 /* InfoPlist.strings in Resources */, 09EBE2AA22B004EA00F670AB /* BlueIconLargeIpad@2x.png in Resources */, D0CE6F5B213EDA4400BCD44B /* Localizable.strings in Resources */, @@ -2877,10 +3225,13 @@ 094DDF5922E8C310004B0256 /* AppIntentVocabulary.plist in Resources */, 09A4193422B7A4D500637EB4 /* BlackClassicIconIpad.png in Resources */, 094DDF4622E7A9A8004B0256 /* Localizable.strings in Resources */, + D0EFF27C2319835B00CF5164 /* Images.xcassets in Resources */, 09A4193222B7A4D500637EB4 /* BlueClassicIconIpad.png in Resources */, + D0EFF2D82319838800CF5164 /* lol.tgs in Resources */, D0CE6F62213EDA4400BCD44B /* InfoPlist.strings in Resources */, D08DB0A8213F4D1D00F2ADBF /* fast_arrow_shadow@2x.png in Resources */, D0CFBB931FD88C2900B65C0D /* begin_record.caf in Resources */, + D0EFF3002319838800CF5164 /* stp_card_placeholder_template@3x.png in Resources */, D04DCC2C1F71C80000B021D7 /* 109.m4a in Resources */, D08DB0BD213F4D1D00F2ADBF /* start_arrow_ipad.png in Resources */, 09EBE2AB22B004EA00F670AB /* BlackIconLargeIpad@2x.png in Resources */, @@ -2888,92 +3239,147 @@ D0CE6F64213EDA4400BCD44B /* Localizable.strings in Resources */, D0CE6F6C213EDA4400BCD44B /* AppIntentVocabulary.plist in Resources */, 094DDF3E22E7A98E004B0256 /* AppIntentVocabulary.plist in Resources */, + D0EFF3252319838800CF5164 /* GenericUserScript.js in Resources */, 094DDF3D22E7A98E004B0256 /* InfoPlist.strings in Resources */, D04DCC231F71C80000B021D7 /* 100.m4a in Resources */, + D0EFF2EF2319838800CF5164 /* stp_card_form_back@2x.png in Resources */, + D0EFF33123198D3200CF5164 /* NavigationShadow@2x.png in Resources */, + D0EFF31D2319838800CF5164 /* PresentationStrings.mapping in Resources */, + D0EFF2EE2319838800CF5164 /* stp_card_amex@2x.png in Resources */, 09E9600A22C23FF200B13673 /* BlueNotificationIcon@2x.png in Resources */, 094DDF3222E7A61B004B0256 /* Localizable.strings in Resources */, 09A218EF22A1570A00DE6898 /* BlueIcon@2x.png in Resources */, D04DCC281F71C80000B021D7 /* 105.m4a in Resources */, + D0EFF32B231983BF00CF5164 /* MessageSent.caf in Resources */, D08DB0BB213F4D1D00F2ADBF /* private_screw@2x.png in Resources */, D0CE6F5F213EDA4400BCD44B /* InfoPlist.strings in Resources */, + D0EFF2EA2319838800CF5164 /* stp_card_amex_template@3x.png in Resources */, D04DCC2D1F71C80000B021D7 /* 110.m4a in Resources */, 094DDF5A22E8C310004B0256 /* Localizable.strings in Resources */, + D0EFF2DF2319838800CF5164 /* ok.tgs in Resources */, D04DCC2B1F71C80000B021D7 /* 108.m4a in Resources */, D00859AC1B28189D00EAF753 /* LaunchScreen.xib in Resources */, D08DB0B5213F4D1D00F2ADBF /* knot_up1@2x.png in Resources */, D0E8B8AD2044496C00605593 /* voip_connecting.mp3 in Resources */, + D0EFF31F2319838800CF5164 /* TwitchUserScript.js in Resources */, + D0EFF2F42319838800CF5164 /* stp_card_discover@3x.png in Resources */, D08DB0BE213F4D1D00F2ADBF /* start_arrow_ipad@2x.png in Resources */, D08DB0A9213F4D1D00F2ADBF /* fast_body@2x.png in Resources */, D04DCC321F71C80000B021D7 /* 5.m4a in Resources */, D04DCC241F71C80000B021D7 /* 101.m4a in Resources */, 09A4193122B7A4D500637EB4 /* BlackClassicIconLargeIpad@2x.png in Resources */, + D0EFF3262319838800CF5164 /* YoutubeUserScript.js in Resources */, + D0EFF2E42319838800CF5164 /* ChatWallpaperBuiltin0.jpg in Resources */, D04DCC351F71C80000B021D7 /* 8.m4a in Resources */, + D0EFF3182319838800CF5164 /* anim_unarchive.json in Resources */, + D0EFF2DA2319838800CF5164 /* poker.tgs in Resources */, D08DB0B1213F4D1D00F2ADBF /* ic_smile@2x.png in Resources */, + D0EFF3102319838800CF5164 /* anim_infotip.json in Resources */, + D0EFF2DC2319838800CF5164 /* meh.tgs in Resources */, 09EBE2A722B004EA00F670AB /* BlueIconIpad.png in Resources */, + D0EFF33023198D3200CF5164 /* NavigationBackArrowLight@2x.png in Resources */, D0CE6F57213EDA4400BCD44B /* AppIntentVocabulary.plist in Resources */, + D0EFF2FD2319838800CF5164 /* stp_card_applepay_template@3x.png in Resources */, D0CE6F59213EDA4400BCD44B /* InfoPlist.strings in Resources */, D08DB0B9213F4D1D00F2ADBF /* powerful_star@2x.png in Resources */, D04DCC271F71C80000B021D7 /* 104.m4a in Resources */, 09E9600B22C23FF200B13673 /* BlackNotificationIcon@2x.png in Resources */, 090E777522A6945900CD99F5 /* BlueClassicIcon@3x.png in Resources */, + D0EFF2F92319838800CF5164 /* stp_card_cvc@3x.png in Resources */, + D0EFF2FA2319838800CF5164 /* stp_card_jcb_template@2x.png in Resources */, + D0EFF2F12319838800CF5164 /* stp_card_form_front@2x.png in Resources */, 09A218F122A1570A00DE6898 /* BlackFilledIcon@3x.png in Resources */, D04DCC2A1F71C80000B021D7 /* 107.m4a in Resources */, D08DB0BA213F4D1D00F2ADBF /* private_door@2x.png in Resources */, + D0EFF2E52319838800CF5164 /* stp_card_visa_template@3x.png in Resources */, 09A218F022A1570A00DE6898 /* BlackFilledIcon@2x.png in Resources */, + D0EFF30C2319838800CF5164 /* stp_card_mastercard_template@2x.png in Resources */, D08DB0AE213F4D1D00F2ADBF /* ic_cam_lens@2x.png in Resources */, + D0EFF3192319838800CF5164 /* anim_ungroup.json in Resources */, + D0EFF30D2319838800CF5164 /* anim_read.json in Resources */, + D0EFF2D72319838800CF5164 /* Emoji.mapping in Resources */, + D0EFF3202319838800CF5164 /* Youtube.html in Resources */, 09A218F322A1570A00DE6898 /* BlueIcon@3x.png in Resources */, + D0EFF2F32319838800CF5164 /* stp_card_cvc_amex@3x.png in Resources */, + D0EFF2D62319838800CF5164 /* currencies.json in Resources */, D04DCC2F1F71C80000B021D7 /* 2.m4a in Resources */, + D0EFF2DE2319838800CF5164 /* surprised.tgs in Resources */, 09EBE2AC22B004EA00F670AB /* BlackIconIpad.png in Resources */, + D0EFF2E12319838800CF5164 /* poop.tgs in Resources */, + D0EFF31B2319838800CF5164 /* anim_group.json in Resources */, 09EBE2B022B004EA00F670AB /* BlueFilledIconLargeIpad@2x.png in Resources */, + D0EFF3222319838800CF5164 /* Vimeo.html in Resources */, + D0EFF2E22319838800CF5164 /* celebrate.tgs in Resources */, D0CE6F58213EDA4400BCD44B /* Localizable.strings in Resources */, D08DB0AF213F4D1D00F2ADBF /* ic_pencil@2x.png in Resources */, 094DDF5822E8C310004B0256 /* InfoPlist.strings in Resources */, + D0EFF2DD2319838800CF5164 /* sad.tgs in Resources */, 09E9601822C2441000B13673 /* BlueClassicNotificationIcon@3x.png in Resources */, + D01748C7231976B200AF3D3A /* LegacyComponentsResources.bundle in Resources */, D0CE6F67213EDA4400BCD44B /* Localizable.strings in Resources */, + D0EFF3242319838800CF5164 /* Generic.html in Resources */, 09A4193322B7A4D500637EB4 /* BlueClassicIconLargeIpad@2x.png in Resources */, D04DCC291F71C80000B021D7 /* 106.m4a in Resources */, D0CE6F5E213EDA4400BCD44B /* Localizable.strings in Resources */, D052974622B0073F004ABAF6 /* WhiteFilledIcon@3x.png in Resources */, D08DB0B7213F4D1D00F2ADBF /* powerful_infinity_white@2x.png in Resources */, - D00859A91B28189D00EAF753 /* Images.xcassets in Resources */, + D00859A91B28189D00EAF753 /* Icons.xcassets in Resources */, 094DDF0922E7A0D3004B0256 /* InfoPlist.strings in Resources */, - D001D5AA1F878DA300DF975A /* PhoneCountries.txt in Resources */, + D0EFF3172319838800CF5164 /* anim_archiveAvatar.json in Resources */, + D0EFF3092319838800CF5164 /* stp_card_mastercard@3x.png in Resources */, + D0EFF2F22319838800CF5164 /* stp_card_applepay_template@2x.png in Resources */, 094DDF0822E7A0D3004B0256 /* Localizable.strings in Resources */, 094DDF4722E7A9A8004B0256 /* InfoPlist.strings in Resources */, D0CE6F56213EDA4400BCD44B /* InfoPlist.strings in Resources */, D0CE6F65213EDA4400BCD44B /* InfoPlist.strings in Resources */, + D0EFF31E2319838800CF5164 /* VimeoUserScript.js in Resources */, D0E8B8B12044496C00605593 /* voip_busy.caf in Resources */, + D0EFF3072319838800CF5164 /* stp_card_form_applepay@3x.png in Resources */, + D0EFF3152319838800CF5164 /* anim_archiveswipe.json in Resources */, + D0EFF3032319838800CF5164 /* stp_card_placeholder_template@2x.png in Resources */, 09EBE2A622B004EA00F670AB /* BlueIconIpad@2x.png in Resources */, D08DB0A7213F4D1D00F2ADBF /* fast_arrow@2x.png in Resources */, 094DDF0A22E7A0D3004B0256 /* AppIntentVocabulary.plist in Resources */, D0E8B8AF2044496C00605593 /* voip_fail.caf in Resources */, D0CE6F55213EDA4400BCD44B /* Localizable.strings in Resources */, + D0EFF2E82319838800CF5164 /* stp_card_diners@2x.png in Resources */, D08DB0B2213F4D1D00F2ADBF /* ic_smile_eye@2x.png in Resources */, D08DB0B3213F4D1D00F2ADBF /* ic_videocam@2x.png in Resources */, D04DCC2E1F71C80000B021D7 /* 111.m4a in Resources */, D08DB0AA213F4D1D00F2ADBF /* fast_spiral@2x.png in Resources */, + D0EFF2EB2319838800CF5164 /* stp_card_diners_template@3x.png in Resources */, D0CE6F5C213EDA4400BCD44B /* InfoPlist.strings in Resources */, D052974722B0073F004ABAF6 /* WhiteFilledIcon@2x.png in Resources */, D0CE6F5D213EDA4400BCD44B /* AppIntentVocabulary.plist in Resources */, D0CE6F61213EDA4400BCD44B /* Localizable.strings in Resources */, D04DCC311F71C80000B021D7 /* 4.m4a in Resources */, D0FC1948201D2DA800FEDBB2 /* SFCompactRounded-Semibold.otf in Resources */, + D0EFF31C2319838800CF5164 /* anim_mute.json in Resources */, D04DCC331F71C80000B021D7 /* 6.m4a in Resources */, D04DCC251F71C80000B021D7 /* 102.m4a in Resources */, 09EBE2A822B004EA00F670AB /* BlackFilledIconIpad@2x.png in Resources */, D021D4D9219CAEDD0064BEBA /* Config-Fork.xcconfig in Resources */, + D0EFF31A2319838800CF5164 /* anim_hide.json in Resources */, D08DB0AD213F4D1D00F2ADBF /* ic_cam@2x.png in Resources */, + D0EFF3232319838800CF5164 /* Instagram.html in Resources */, + D0EFF30E2319838800CF5164 /* anim_archive.json in Resources */, 094DDF3322E7A61B004B0256 /* InfoPlist.strings in Resources */, 090E777622A6945900CD99F5 /* BlackClassicIcon@3x.png in Resources */, D0E8B8B02044496C00605593 /* voip_ringback.caf in Resources */, 09E9600822C23FF200B13673 /* BlackNotificationIcon.png in Resources */, + D0EFF2ED2319838800CF5164 /* stp_card_diners@3x.png in Resources */, + D0EFF2F82319838800CF5164 /* stp_card_jcb@2x.png in Resources */, + D0EFF3012319838800CF5164 /* stp_card_applepay@2x.png in Resources */, 09EBE2A922B004EA00F670AB /* BlackFilledIconLargeIpad@2x.png in Resources */, + D0EFF30A2319838800CF5164 /* stp_card_discover_template@3x.png in Resources */, 090E777422A6945900CD99F5 /* BlackClassicIcon@2x.png in Resources */, + D0EFF2FC2319838800CF5164 /* stp_card_cvc_amex@2x.png in Resources */, D00ED75A1FE94630001F38BD /* AppIntentVocabulary.plist in Resources */, D04DCC221F71C80000B021D7 /* 1.m4a in Resources */, 09EBE2AD22B004EA00F670AB /* BlackFilledIconIpad.png in Resources */, 09E9601522C2441000B13673 /* BlueClassicNotificationIcon.png in Resources */, D0E8C2E02285EA6A009F26E8 /* BlackIcon@3x.png in Resources */, + D0EFF3162319838800CF5164 /* anim_delete.json in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/Telegram-iOS.xcworkspace/contents.xcworkspacedata b/Telegram-iOS.xcworkspace/contents.xcworkspacedata index 1d692dab05..ba3aded920 100644 --- a/Telegram-iOS.xcworkspace/contents.xcworkspacedata +++ b/Telegram-iOS.xcworkspace/contents.xcworkspacedata @@ -60,6 +60,9 @@ + + @@ -177,7 +180,7 @@ location = "container:" name = "Image Processing"> + location = "group:submodules/YuvConversion/YuvConversion_Xcode.xcodeproj"> diff --git a/Telegram-iOS/Images.xcassets/AppIcon.appiconset/Contents.json b/Telegram-iOS/Icons.xcassets/AppIcon.appiconset/Contents.json similarity index 100% rename from Telegram-iOS/Images.xcassets/AppIcon.appiconset/Contents.json rename to Telegram-iOS/Icons.xcassets/AppIcon.appiconset/Contents.json diff --git a/Telegram-iOS/Images.xcassets/AppIcon.appiconset/icon@1024px.png b/Telegram-iOS/Icons.xcassets/AppIcon.appiconset/icon@1024px.png similarity index 100% rename from Telegram-iOS/Images.xcassets/AppIcon.appiconset/icon@1024px.png rename to Telegram-iOS/Icons.xcassets/AppIcon.appiconset/icon@1024px.png diff --git a/Telegram-iOS/Images.xcassets/AppIcon.appiconset/icon@120px.png b/Telegram-iOS/Icons.xcassets/AppIcon.appiconset/icon@120px.png similarity index 100% rename from Telegram-iOS/Images.xcassets/AppIcon.appiconset/icon@120px.png rename to Telegram-iOS/Icons.xcassets/AppIcon.appiconset/icon@120px.png diff --git a/Telegram-iOS/Images.xcassets/AppIcon.appiconset/icon@152px.png b/Telegram-iOS/Icons.xcassets/AppIcon.appiconset/icon@152px.png similarity index 100% rename from Telegram-iOS/Images.xcassets/AppIcon.appiconset/icon@152px.png rename to Telegram-iOS/Icons.xcassets/AppIcon.appiconset/icon@152px.png diff --git a/Telegram-iOS/Images.xcassets/AppIcon.appiconset/icon@167px.png b/Telegram-iOS/Icons.xcassets/AppIcon.appiconset/icon@167px.png similarity index 100% rename from Telegram-iOS/Images.xcassets/AppIcon.appiconset/icon@167px.png rename to Telegram-iOS/Icons.xcassets/AppIcon.appiconset/icon@167px.png diff --git a/Telegram-iOS/Images.xcassets/AppIcon.appiconset/icon@180px.png b/Telegram-iOS/Icons.xcassets/AppIcon.appiconset/icon@180px.png similarity index 100% rename from Telegram-iOS/Images.xcassets/AppIcon.appiconset/icon@180px.png rename to Telegram-iOS/Icons.xcassets/AppIcon.appiconset/icon@180px.png diff --git a/Telegram-iOS/Images.xcassets/AppIcon.appiconset/icon@76px.png b/Telegram-iOS/Icons.xcassets/AppIcon.appiconset/icon@76px.png similarity index 100% rename from Telegram-iOS/Images.xcassets/AppIcon.appiconset/icon@76px.png rename to Telegram-iOS/Icons.xcassets/AppIcon.appiconset/icon@76px.png diff --git a/Telegram-iOS/Images.xcassets/AppIconLLC.appiconset/BlueIcon@2x-1.png b/Telegram-iOS/Icons.xcassets/AppIconLLC.appiconset/BlueIcon@2x-1.png similarity index 100% rename from Telegram-iOS/Images.xcassets/AppIconLLC.appiconset/BlueIcon@2x-1.png rename to Telegram-iOS/Icons.xcassets/AppIconLLC.appiconset/BlueIcon@2x-1.png diff --git a/Telegram-iOS/Images.xcassets/AppIconLLC.appiconset/BlueIcon@2x.png b/Telegram-iOS/Icons.xcassets/AppIconLLC.appiconset/BlueIcon@2x.png similarity index 100% rename from Telegram-iOS/Images.xcassets/AppIconLLC.appiconset/BlueIcon@2x.png rename to Telegram-iOS/Icons.xcassets/AppIconLLC.appiconset/BlueIcon@2x.png diff --git a/Telegram-iOS/Images.xcassets/AppIconLLC.appiconset/BlueIcon@3x.png b/Telegram-iOS/Icons.xcassets/AppIconLLC.appiconset/BlueIcon@3x.png similarity index 100% rename from Telegram-iOS/Images.xcassets/AppIconLLC.appiconset/BlueIcon@3x.png rename to Telegram-iOS/Icons.xcassets/AppIconLLC.appiconset/BlueIcon@3x.png diff --git a/Telegram-iOS/Images.xcassets/AppIconLLC.appiconset/BlueIconIpad.png b/Telegram-iOS/Icons.xcassets/AppIconLLC.appiconset/BlueIconIpad.png similarity index 100% rename from Telegram-iOS/Images.xcassets/AppIconLLC.appiconset/BlueIconIpad.png rename to Telegram-iOS/Icons.xcassets/AppIconLLC.appiconset/BlueIconIpad.png diff --git a/Telegram-iOS/Images.xcassets/AppIconLLC.appiconset/BlueIconIpad@2x.png b/Telegram-iOS/Icons.xcassets/AppIconLLC.appiconset/BlueIconIpad@2x.png similarity index 100% rename from Telegram-iOS/Images.xcassets/AppIconLLC.appiconset/BlueIconIpad@2x.png rename to Telegram-iOS/Icons.xcassets/AppIconLLC.appiconset/BlueIconIpad@2x.png diff --git a/Telegram-iOS/Images.xcassets/AppIconLLC.appiconset/BlueIconLargeIpad@2x.png b/Telegram-iOS/Icons.xcassets/AppIconLLC.appiconset/BlueIconLargeIpad@2x.png similarity index 100% rename from Telegram-iOS/Images.xcassets/AppIconLLC.appiconset/BlueIconLargeIpad@2x.png rename to Telegram-iOS/Icons.xcassets/AppIconLLC.appiconset/BlueIconLargeIpad@2x.png diff --git a/Telegram-iOS/Images.xcassets/AppIconLLC.appiconset/BlueNotificationIcon.png b/Telegram-iOS/Icons.xcassets/AppIconLLC.appiconset/BlueNotificationIcon.png similarity index 100% rename from Telegram-iOS/Images.xcassets/AppIconLLC.appiconset/BlueNotificationIcon.png rename to Telegram-iOS/Icons.xcassets/AppIconLLC.appiconset/BlueNotificationIcon.png diff --git a/Telegram-iOS/Images.xcassets/AppIconLLC.appiconset/BlueNotificationIcon@2x-1.png b/Telegram-iOS/Icons.xcassets/AppIconLLC.appiconset/BlueNotificationIcon@2x-1.png similarity index 100% rename from Telegram-iOS/Images.xcassets/AppIconLLC.appiconset/BlueNotificationIcon@2x-1.png rename to Telegram-iOS/Icons.xcassets/AppIconLLC.appiconset/BlueNotificationIcon@2x-1.png diff --git a/Telegram-iOS/Images.xcassets/AppIconLLC.appiconset/BlueNotificationIcon@2x.png b/Telegram-iOS/Icons.xcassets/AppIconLLC.appiconset/BlueNotificationIcon@2x.png similarity index 100% rename from Telegram-iOS/Images.xcassets/AppIconLLC.appiconset/BlueNotificationIcon@2x.png rename to Telegram-iOS/Icons.xcassets/AppIconLLC.appiconset/BlueNotificationIcon@2x.png diff --git a/Telegram-iOS/Images.xcassets/AppIconLLC.appiconset/BlueNotificationIcon@3x.png b/Telegram-iOS/Icons.xcassets/AppIconLLC.appiconset/BlueNotificationIcon@3x.png similarity index 100% rename from Telegram-iOS/Images.xcassets/AppIconLLC.appiconset/BlueNotificationIcon@3x.png rename to Telegram-iOS/Icons.xcassets/AppIconLLC.appiconset/BlueNotificationIcon@3x.png diff --git a/Telegram-iOS/Images.xcassets/AppIconLLC.appiconset/Contents.json b/Telegram-iOS/Icons.xcassets/AppIconLLC.appiconset/Contents.json similarity index 100% rename from Telegram-iOS/Images.xcassets/AppIconLLC.appiconset/Contents.json rename to Telegram-iOS/Icons.xcassets/AppIconLLC.appiconset/Contents.json diff --git a/Telegram-iOS/Images.xcassets/AppIconLLC.appiconset/Simple-iTunesArtwork.png b/Telegram-iOS/Icons.xcassets/AppIconLLC.appiconset/Simple-iTunesArtwork.png similarity index 100% rename from Telegram-iOS/Images.xcassets/AppIconLLC.appiconset/Simple-iTunesArtwork.png rename to Telegram-iOS/Icons.xcassets/AppIconLLC.appiconset/Simple-iTunesArtwork.png diff --git a/Telegram-iOS/Images.xcassets/AppIconLLC.appiconset/Simple@29x29.png b/Telegram-iOS/Icons.xcassets/AppIconLLC.appiconset/Simple@29x29.png similarity index 100% rename from Telegram-iOS/Images.xcassets/AppIconLLC.appiconset/Simple@29x29.png rename to Telegram-iOS/Icons.xcassets/AppIconLLC.appiconset/Simple@29x29.png diff --git a/Telegram-iOS/Images.xcassets/AppIconLLC.appiconset/Simple@40x40-1.png b/Telegram-iOS/Icons.xcassets/AppIconLLC.appiconset/Simple@40x40-1.png similarity index 100% rename from Telegram-iOS/Images.xcassets/AppIconLLC.appiconset/Simple@40x40-1.png rename to Telegram-iOS/Icons.xcassets/AppIconLLC.appiconset/Simple@40x40-1.png diff --git a/Telegram-iOS/Images.xcassets/AppIconLLC.appiconset/Simple@58x58-1.png b/Telegram-iOS/Icons.xcassets/AppIconLLC.appiconset/Simple@58x58-1.png similarity index 100% rename from Telegram-iOS/Images.xcassets/AppIconLLC.appiconset/Simple@58x58-1.png rename to Telegram-iOS/Icons.xcassets/AppIconLLC.appiconset/Simple@58x58-1.png diff --git a/Telegram-iOS/Images.xcassets/AppIconLLC.appiconset/Simple@58x58.png b/Telegram-iOS/Icons.xcassets/AppIconLLC.appiconset/Simple@58x58.png similarity index 100% rename from Telegram-iOS/Images.xcassets/AppIconLLC.appiconset/Simple@58x58.png rename to Telegram-iOS/Icons.xcassets/AppIconLLC.appiconset/Simple@58x58.png diff --git a/Telegram-iOS/Images.xcassets/AppIconLLC.appiconset/Simple@80x80-1.png b/Telegram-iOS/Icons.xcassets/AppIconLLC.appiconset/Simple@80x80-1.png similarity index 100% rename from Telegram-iOS/Images.xcassets/AppIconLLC.appiconset/Simple@80x80-1.png rename to Telegram-iOS/Icons.xcassets/AppIconLLC.appiconset/Simple@80x80-1.png diff --git a/Telegram-iOS/Images.xcassets/AppIconLLC.appiconset/Simple@80x80.png b/Telegram-iOS/Icons.xcassets/AppIconLLC.appiconset/Simple@80x80.png similarity index 100% rename from Telegram-iOS/Images.xcassets/AppIconLLC.appiconset/Simple@80x80.png rename to Telegram-iOS/Icons.xcassets/AppIconLLC.appiconset/Simple@80x80.png diff --git a/Telegram-iOS/Images.xcassets/AppIconLLC.appiconset/Simple@87x87.png b/Telegram-iOS/Icons.xcassets/AppIconLLC.appiconset/Simple@87x87.png similarity index 100% rename from Telegram-iOS/Images.xcassets/AppIconLLC.appiconset/Simple@87x87.png rename to Telegram-iOS/Icons.xcassets/AppIconLLC.appiconset/Simple@87x87.png diff --git a/Telegram-iOS/Images.xcassets/Contents.json b/Telegram-iOS/Icons.xcassets/Contents.json similarity index 100% rename from Telegram-iOS/Images.xcassets/Contents.json rename to Telegram-iOS/Icons.xcassets/Contents.json diff --git a/Telegram-iOS/Images.xcassets/Shortcuts/Contents.json b/Telegram-iOS/Icons.xcassets/Shortcuts/Contents.json similarity index 100% rename from Telegram-iOS/Images.xcassets/Shortcuts/Contents.json rename to Telegram-iOS/Icons.xcassets/Shortcuts/Contents.json diff --git a/Telegram-iOS/Images.xcassets/Shortcuts/SavedMessages.imageset/Contents.json b/Telegram-iOS/Icons.xcassets/Shortcuts/SavedMessages.imageset/Contents.json similarity index 100% rename from Telegram-iOS/Images.xcassets/Shortcuts/SavedMessages.imageset/Contents.json rename to Telegram-iOS/Icons.xcassets/Shortcuts/SavedMessages.imageset/Contents.json diff --git a/Telegram-iOS/Images.xcassets/Shortcuts/SavedMessages.imageset/SavedMessagesIcon@2x.png b/Telegram-iOS/Icons.xcassets/Shortcuts/SavedMessages.imageset/SavedMessagesIcon@2x.png similarity index 100% rename from Telegram-iOS/Images.xcassets/Shortcuts/SavedMessages.imageset/SavedMessagesIcon@2x.png rename to Telegram-iOS/Icons.xcassets/Shortcuts/SavedMessages.imageset/SavedMessagesIcon@2x.png diff --git a/Telegram-iOS/Images.xcassets/Shortcuts/SavedMessages.imageset/SavedMessagesIcon@3x.png b/Telegram-iOS/Icons.xcassets/Shortcuts/SavedMessages.imageset/SavedMessagesIcon@3x.png similarity index 100% rename from Telegram-iOS/Images.xcassets/Shortcuts/SavedMessages.imageset/SavedMessagesIcon@3x.png rename to Telegram-iOS/Icons.xcassets/Shortcuts/SavedMessages.imageset/SavedMessagesIcon@3x.png diff --git a/submodules/Display/Display/NavigationBackArrowLight@2x.png b/Telegram-iOS/Resources/NavigationBackArrowLight@2x.png similarity index 100% rename from submodules/Display/Display/NavigationBackArrowLight@2x.png rename to Telegram-iOS/Resources/NavigationBackArrowLight@2x.png diff --git a/submodules/Display/Display/NavigationShadow@2x.png b/Telegram-iOS/Resources/NavigationShadow@2x.png similarity index 100% rename from submodules/Display/Display/NavigationShadow@2x.png rename to Telegram-iOS/Resources/NavigationShadow@2x.png diff --git a/Telegram-iOS/Resources/PhoneCountries.txt b/Telegram-iOS/Resources/PhoneCountries.txt deleted file mode 100644 index 0f0932ed27..0000000000 --- a/Telegram-iOS/Resources/PhoneCountries.txt +++ /dev/null @@ -1,232 +0,0 @@ -1876;JM;Jamaica -1869;KN;Saint Kitts & Nevis -1868;TT;Trinidad & Tobago -1784;VC;Saint Vincent & the Grenadines -1767;DM;Dominica -1758;LC;Saint Lucia -1721;SX;Sint Maarten -1684;AS;American Samoa -1671;GU;Guam -1670;MP;Northern Mariana Islands -1664;MS;Montserrat -1649;TC;Turks & Caicos Islands -1473;GD;Grenada -1441;BM;Bermuda -1345;KY;Cayman Islands -1340;VI;US Virgin Islands -1284;VG;British Virgin Islands -1268;AG;Antigua & Barbuda -1264;AI;Anguilla -1246;BB;Barbados -1242;BS;Bahamas -998;UZ;Uzbekistan -996;KG;Kyrgyzstan -995;GE;Georgia -994;AZ;Azerbaijan -993;TM;Turkmenistan -992;TJ;Tajikistan -977;NP;Nepal -976;MN;Mongolia -975;BT;Bhutan -974;QA;Qatar -973;BH;Bahrain -972;IL;Israel -971;AE;United Arab Emirates -970;PS;Palestine -968;OM;Oman -967;YE;Yemen -966;SA;Saudi Arabia -965;KW;Kuwait -964;IQ;Iraq -963;SY;Syrian Arab Republic -962;JO;Jordan -961;LB;Lebanon -960;MV;Maldives -886;TW;Taiwan -880;BD;Bangladesh -856;LA;Laos -855;KH;Cambodia -853;MO;Macau -852;HK;Hong Kong -850;KP;North Korea -692;MH;Marshall Islands -691;FM;Micronesia -690;TK;Tokelau -689;PF;French Polynesia -688;TV;Tuvalu -687;NC;New Caledonia -686;KI;Kiribati -685;WS;Samoa -683;NU;Niue -682;CK;Cook Islands -681;WF;Wallis & Futuna -680;PW;Palau -679;FJ;Fiji -678;VU;Vanuatu -677;SB;Solomon Islands -676;TO;Tonga -675;PG;Papua New Guinea -674;NR;Nauru -673;BN;Brunei Darussalam -672;NF;Norfolk Island -670;TL;Timor-Leste -599;BQ;Bonaire, Sint Eustatius & Saba -599;CW;Curaçao -598;UY;Uruguay -597;SR;Suriname -596;MQ;Martinique -595;PY;Paraguay -594;GF;French Guiana -593;EC;Ecuador -592;GY;Guyana -591;BO;Bolivia -590;GP;Guadeloupe -509;HT;Haiti -508;PM;Saint Pierre & Miquelon -507;PA;Panama -506;CR;Costa Rica -505;NI;Nicaragua -504;HN;Honduras -503;SV;El Salvador -502;GT;Guatemala -501;BZ;Belize -500;FK;Falkland Islands -423;LI;Liechtenstein -421;SK;Slovakia -420;CZ;Czech Republic -383;XK;Kosovo -389;MK;Macedonia -387;BA;Bosnia & Herzegovina -386;SI;Slovenia -385;HR;Croatia -382;ME;Montenegro -381;RS;Serbia -380;UA;Ukraine -378;SM;San Marino -377;MC;Monaco -376;AD;Andorra -375;BY;Belarus -374;AM;Armenia -373;MD;Moldova -372;EE;Estonia -371;LV;Latvia -370;LT;Lithuania -359;BG;Bulgaria -358;FI;Finland -357;CY;Cyprus -356;MT;Malta -355;AL;Albania -354;IS;Iceland -353;IE;Ireland -352;LU;Luxembourg -351;PT;Portugal -350;GI;Gibraltar -299;GL;Greenland -298;FO;Faroe Islands -297;AW;Aruba -291;ER;Eritrea -290;SH;Saint Helena -269;KM;Comoros -268;SZ;Swaziland -267;BW;Botswana -266;LS;Lesotho -265;MW;Malawi -264;NA;Namibia -263;ZW;Zimbabwe -262;RE;Réunion -261;MG;Madagascar -260;ZM;Zambia -258;MZ;Mozambique -257;BI;Burundi -256;UG;Uganda -255;TZ;Tanzania -254;KE;Kenya -253;DJ;Djibouti -252;SO;Somalia -251;ET;Ethiopia -250;RW;Rwanda -249;SD;Sudan -248;SC;Seychelles -247;SH;Saint Helena -246;IO;Diego Garcia -245;GW;Guinea-Bissau -244;AO;Angola -243;CD;Congo (Dem. Rep.) -242;CG;Congo (Rep.) -241;GA;Gabon -240;GQ;Equatorial Guinea -239;ST;São Tomé & Príncipe -238;CV;Cape Verde -237;CM;Cameroon -236;CF;Central African Rep. -235;TD;Chad -234;NG;Nigeria -233;GH;Ghana -232;SL;Sierra Leone -231;LR;Liberia -230;MU;Mauritius -229;BJ;Benin -228;TG;Togo -227;NE;Niger -226;BF;Burkina Faso -225;CI;Côte d`Ivoire -224;GN;Guinea -223;ML;Mali -222;MR;Mauritania -221;SN;Senegal -220;GM;Gambia -218;LY;Libya -216;TN;Tunisia -213;DZ;Algeria -212;MA;Morocco -211;SS;South Sudan -98;IR;Iran -95;MM;Myanmar -94;LK;Sri Lanka -93;AF;Afghanistan -92;PK;Pakistan -91;IN;India -90;TR;Turkey -86;CN;China -84;VN;Vietnam -82;KR;South Korea -81;JP;Japan -66;TH;Thailand -65;SG;Singapore -64;NZ;New Zealand -63;PH;Philippines -62;ID;Indonesia -61;AU;Australia -60;MY;Malaysia -58;VE;Venezuela -57;CO;Colombia -56;CL;Chile -55;BR;Brazil -54;AR;Argentina -53;CU;Cuba -52;MX;Mexico -51;PE;Peru -49;DE;Germany -48;PL;Poland -47;NO;Norway -46;SE;Sweden -45;DK;Denmark -44;GB;United Kingdom -43;AT;Austria -41;CH;Switzerland -40;RO;Romania -39;IT;Italy -36;HU;Hungary -34;ES;Spain -33;FR;France -32;BE;Belgium -31;NL;Netherlands -30;GR;Greece -27;ZA;South Africa -20;EG;Egypt -7;RU;Russian Federation -7;KZ;Kazakhstan -1;US;USA -1;PR;Puerto Rico -1;DO;Dominican Rep. -1;CA;Canada diff --git a/Telegram-iOS/Resources/SFCompactRounded-Semibold.otf b/Telegram-iOS/Resources/SFCompactRounded-Semibold.otf deleted file mode 100644 index 100e58bff77dcda3e00f0ead36c94f9b68d7b2b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 193812 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%0Dm?j#cj9`0q0T2k^g1j%5vc`dL=*M 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 Rwd<*WsourceTree SOURCE_ROOT + 1DD70E297819F1E000000000 + + isa + PBXFileReference + name + ThemeUpdateManager.swift + path + Sources/ThemeUpdateManager.swift + sourceTree + SOURCE_ROOT + 1DD70E29A055C05700000000 isa @@ -355,6 +366,7 @@ 1DD70E29BEA4BC8700000000 1DD70E29A82E88C500000000 1DD70E290F2FA2FD00000000 + 1DD70E297819F1E000000000 1DD70E29A055C05700000000 1DD70E29900C6ACF00000000 1DD70E29CEBFB42300000000 @@ -873,6 +885,13 @@ fileRef 1DD70E290F2FA2FD00000000 + E7A30F047819F1E000000000 + + isa + PBXBuildFile + fileRef + 1DD70E297819F1E000000000 + E7A30F04A055C05700000000 isa @@ -924,6 +943,7 @@ E7A30F04BEA4BC8700000000 E7A30F04A82E88C500000000 E7A30F040F2FA2FD00000000 + E7A30F047819F1E000000000 E7A30F04A055C05700000000 E7A30F04900C6ACF00000000 E7A30F04CEBFB42300000000 diff --git a/submodules/AnimationUI/AnimationUI.xcodeproj/project.pbxproj b/submodules/AnimationUI/AnimationUI.xcodeproj/project.pbxproj index 3288ad7589..905f2feda1 100644 --- a/submodules/AnimationUI/AnimationUI.xcodeproj/project.pbxproj +++ b/submodules/AnimationUI/AnimationUI.xcodeproj/project.pbxproj @@ -68,17 +68,6 @@ sourceTree SOURCE_ROOT - 1DD70E291289FAA500000000 - - isa - PBXFileReference - name - FrameworkBundle.swift - path - Sources/FrameworkBundle.swift - sourceTree - SOURCE_ROOT - 1DD70E2968DC800500000000 isa @@ -104,7 +93,6 @@ 1DD70E29F846183C00000000 1DD70E29D847F9AB00000000 1DD70E291FD1D5AC00000000 - 1DD70E291289FAA500000000 1DD70E2968DC800500000000 @@ -397,13 +385,6 @@ fileRef 1DD70E291FD1D5AC00000000 - E7A30F041289FAA500000000 - - isa - PBXBuildFile - fileRef - 1DD70E291289FAA500000000 - E7A30F0468DC800500000000 isa @@ -421,7 +402,6 @@ E7A30F04F846183C00000000 E7A30F04D847F9AB00000000 E7A30F041FD1D5AC00000000 - E7A30F041289FAA500000000 E7A30F0468DC800500000000 diff --git a/submodules/AnimationUI/AnimationUI_Xcode.xcodeproj/project.pbxproj b/submodules/AnimationUI/AnimationUI_Xcode.xcodeproj/project.pbxproj index 495c71077b..85107a7fc7 100644 --- a/submodules/AnimationUI/AnimationUI_Xcode.xcodeproj/project.pbxproj +++ b/submodules/AnimationUI/AnimationUI_Xcode.xcodeproj/project.pbxproj @@ -29,7 +29,7 @@ D06018A922F361F900796784 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D06018A822F361F800796784 /* UIKit.framework */; }; D06018AB22F361FC00796784 /* AsyncDisplayKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D06018AA22F361FC00796784 /* AsyncDisplayKit.framework */; }; D06018AD22F361FF00796784 /* Lottie.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D06018AC22F361FF00796784 /* Lottie.framework */; }; - D06018AF22F3641F00796784 /* FrameworkBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = D06018AE22F3641F00796784 /* FrameworkBundle.swift */; }; + D0EFF2442319802E00CF5164 /* AppBundle.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0EFF2432319802E00CF5164 /* AppBundle.framework */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -57,7 +57,7 @@ D06018A822F361F800796784 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; D06018AA22F361FC00796784 /* AsyncDisplayKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AsyncDisplayKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D06018AC22F361FF00796784 /* Lottie.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Lottie.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - D06018AE22F3641F00796784 /* FrameworkBundle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FrameworkBundle.swift; sourceTree = ""; }; + D0EFF2432319802E00CF5164 /* AppBundle.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AppBundle.framework; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -65,6 +65,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + D0EFF2442319802E00CF5164 /* AppBundle.framework in Frameworks */, D03E3E8E2304B6EC0049C28B /* YuvConversion.framework in Frameworks */, D03E3E642304B5640049C28B /* MobileCoreServices.framework in Frameworks */, D03E3E622304B55F0049C28B /* SwiftSignalKit.framework in Frameworks */, @@ -114,7 +115,6 @@ D03E3E4E2304B50A0049C28B /* AnimatedStickerUtils.swift */, D06018A322F361E800796784 /* AnimationNode.swift */, D060186F22F35FCD00796784 /* AnimationUI.h */, - D06018AE22F3641F00796784 /* FrameworkBundle.swift */, ); path = Sources; sourceTree = ""; @@ -122,6 +122,7 @@ D06018A522F361F400796784 /* Frameworks */ = { isa = PBXGroup; children = ( + D0EFF2432319802E00CF5164 /* AppBundle.framework */, D03E3E8D2304B6EC0049C28B /* YuvConversion.framework */, D03E3E632304B5640049C28B /* MobileCoreServices.framework */, D03E3E612304B55F0049C28B /* SwiftSignalKit.framework */, @@ -224,7 +225,6 @@ files = ( D03E3E672304B61A0049C28B /* AnimationRenderer.swift in Sources */, D03E3E4F2304B50A0049C28B /* AnimatedStickerNode.swift in Sources */, - D06018AF22F3641F00796784 /* FrameworkBundle.swift in Sources */, D03E3E502304B50A0049C28B /* AnimatedStickerUtils.swift in Sources */, D03E3E682304B61A0049C28B /* SoftwareAnimationRenderer.swift in Sources */, D06018A422F361E800796784 /* AnimationNode.swift in Sources */, diff --git a/submodules/AnimationUI/BUCK b/submodules/AnimationUI/BUCK index b2ac31610c..042eeaa82d 100644 --- a/submodules/AnimationUI/BUCK +++ b/submodules/AnimationUI/BUCK @@ -18,6 +18,7 @@ static_library( "//submodules/GZip:GZip", "//submodules/RLottie:RLottie", "//submodules/lottie-ios:Lottie", + "//submodules/AppBundle:AppBundle", ], frameworks = [ "$SDKROOT/System/Library/Frameworks/Foundation.framework", diff --git a/submodules/AnimationUI/Sources/AnimationNode.swift b/submodules/AnimationUI/Sources/AnimationNode.swift index 2ef1462a22..f8eb9ba649 100644 --- a/submodules/AnimationUI/Sources/AnimationNode.swift +++ b/submodules/AnimationUI/Sources/AnimationNode.swift @@ -2,6 +2,7 @@ import Foundation import UIKit import AsyncDisplayKit import Lottie +import AppBundle public final class AnimationNode : ASDisplayNode { private let scale: CGFloat @@ -24,8 +25,8 @@ public final class AnimationNode : ASDisplayNode { super.init() self.setViewBlock({ - if let animation = animation, let url = frameworkBundle.url(forResource: animation, withExtension: "json"), let composition = LOTComposition(filePath: url.path) { - let view = LOTAnimationView(model: composition, in: frameworkBundle) + if let animation = animation, let url = getAppBundle().url(forResource: animation, withExtension: "json"), let composition = LOTComposition(filePath: url.path) { + let view = LOTAnimationView(model: composition, in: getAppBundle()) view.animationSpeed = self.speed view.backgroundColor = .clear view.isOpaque = false @@ -48,7 +49,7 @@ public final class AnimationNode : ASDisplayNode { } public func setAnimation(name: String) { - if let url = frameworkBundle.url(forResource: name, withExtension: "json"), let composition = LOTComposition(filePath: url.path) { + if let url = getAppBundle().url(forResource: name, withExtension: "json"), let composition = LOTComposition(filePath: url.path) { self.animationView()?.sceneModel = composition } } diff --git a/submodules/AnimationUI/Sources/FrameworkBundle.swift b/submodules/AnimationUI/Sources/FrameworkBundle.swift deleted file mode 100644 index 2d6a4df5c4..0000000000 --- a/submodules/AnimationUI/Sources/FrameworkBundle.swift +++ /dev/null @@ -1,6 +0,0 @@ -import Foundation - -private class FrameworkBundleClass: NSObject { -} - -let frameworkBundle: Bundle = Bundle(for: FrameworkBundleClass.self) diff --git a/submodules/AppBundle/AppBundle.xcodeproj/project.pbxproj b/submodules/AppBundle/AppBundle.xcodeproj/project.pbxproj new file mode 100644 index 0000000000..3db1a77eb0 --- /dev/null +++ b/submodules/AppBundle/AppBundle.xcodeproj/project.pbxproj @@ -0,0 +1,343 @@ + + + + + archiveVersion + 1 + classes + + + objectVersion + 46 + objects + + 1DD70E29001F47FB00000000 + + isa + PBXFileReference + name + BUCK + path + BUCK + sourceTree + SOURCE_ROOT + explicitFileType + text.script.python + + 1DD70E2942D2F31D00000000 + + isa + PBXFileReference + name + AppBundle.h + path + Sources/AppBundle.h + sourceTree + SOURCE_ROOT + lastKnownFileType + sourcecode.c.h + + 1DD70E2942D2F32200000000 + + isa + PBXFileReference + name + AppBundle.m + path + Sources/AppBundle.m + sourceTree + SOURCE_ROOT + lastKnownFileType + sourcecode.c.objc + + B401C979EAB5339800000000 + + isa + PBXGroup + name + Sources + sourceTree + ]]> + children + + 1DD70E2942D2F31D00000000 + 1DD70E2942D2F32200000000 + + + B401C979B3E1D9E300000000 + + isa + PBXGroup + name + AppBundle + sourceTree + ]]> + children + + 1DD70E29001F47FB00000000 + B401C979EAB5339800000000 + + + 1DD70E293DCA7C7200000000 + + isa + PBXFileReference + name + AppBundle-Debug.xcconfig + path + ../../buck-out/gen/submodules/AppBundle/AppBundle-Debug.xcconfig + sourceTree + SOURCE_ROOT + explicitFileType + text.xcconfig + + 1DD70E29DA3FBF5C00000000 + + isa + PBXFileReference + name + AppBundle-Profile.xcconfig + path + ../../buck-out/gen/submodules/AppBundle/AppBundle-Profile.xcconfig + sourceTree + SOURCE_ROOT + explicitFileType + text.xcconfig + + 1DD70E294DD66ABE00000000 + + isa + PBXFileReference + name + AppBundle-Release.xcconfig + path + ../../buck-out/gen/submodules/AppBundle/AppBundle-Release.xcconfig + sourceTree + SOURCE_ROOT + explicitFileType + text.xcconfig + + B401C9792F7F325000000000 + + isa + PBXGroup + name + Buck (Do Not Modify) + sourceTree + ]]> + children + + 1DD70E293DCA7C7200000000 + 1DD70E29DA3FBF5C00000000 + 1DD70E294DD66ABE00000000 + + + B401C979B781F65D00000000 + + isa + PBXGroup + name + Configurations + sourceTree + ]]> + children + + B401C9792F7F325000000000 + + + 1DD70E295222FB7100000000 + + isa + PBXFileReference + name + libAppBundle.a + path + libAppBundle.a + sourceTree + BUILT_PRODUCTS_DIR + explicitFileType + archive.ar + + B401C979C806358400000000 + + isa + PBXGroup + name + Products + sourceTree + ]]> + children + + 1DD70E295222FB7100000000 + + + B401C979EFB6AC4600000000 + + isa + PBXGroup + name + mainGroup + sourceTree + ]]> + children + + B401C979B3E1D9E300000000 + B401C979B781F65D00000000 + B401C979C806358400000000 + + + E7A30F0442D2F32200000000 + + isa + PBXBuildFile + fileRef + 1DD70E2942D2F32200000000 + + 1870857F0000000000000000 + + isa + PBXSourcesBuildPhase + files + + E7A30F0442D2F32200000000 + + + 4952437303EDA63300000000 + + isa + XCBuildConfiguration + name + Debug + buildSettings + + + baseConfigurationReference + 1DD70E293DCA7C7200000000 + + 4952437350C7218900000000 + + isa + XCBuildConfiguration + name + Profile + buildSettings + + + baseConfigurationReference + 1DD70E29DA3FBF5C00000000 + + 49524373A439BFE700000000 + + isa + XCBuildConfiguration + name + Release + buildSettings + + + baseConfigurationReference + 1DD70E294DD66ABE00000000 + + 218C37090000000000000000 + + isa + XCConfigurationList + buildConfigurations + + 4952437303EDA63300000000 + 4952437350C7218900000000 + 49524373A439BFE700000000 + + defaultConfigurationIsVisible + + + E66DC04EB3E1D9E300000000 + + isa + PBXNativeTarget + name + AppBundle + productName + AppBundle + productReference + 1DD70E295222FB7100000000 + productType + com.apple.product-type.library.static + dependencies + + + buildPhases + + 1870857F0000000000000000 + + buildConfigurationList + 218C37090000000000000000 + + 4952437303EDA63300000001 + + isa + XCBuildConfiguration + name + Debug + buildSettings + + + + 4952437350C7218900000001 + + isa + XCBuildConfiguration + name + Profile + buildSettings + + + + 49524373A439BFE700000001 + + isa + XCBuildConfiguration + name + Release + buildSettings + + + + 218C37090000000000000001 + + isa + XCConfigurationList + buildConfigurations + + 4952437303EDA63300000001 + 4952437350C7218900000001 + 49524373A439BFE700000001 + + defaultConfigurationIsVisible + + + 96C84793B3E1D9E300000000 + + isa + PBXProject + mainGroup + B401C979EFB6AC4600000000 + targets + + E66DC04EB3E1D9E300000000 + + buildConfigurationList + 218C37090000000000000001 + compatibilityVersion + Xcode 3.2 + attributes + + LastUpgradeCheck + 9999 + + + + rootObject + 96C84793B3E1D9E300000000 + + \ No newline at end of file diff --git a/submodules/AppBundle/AppBundle.xcodeproj/xcshareddata/xcschemes/AppBundle.xcscheme b/submodules/AppBundle/AppBundle.xcodeproj/xcshareddata/xcschemes/AppBundle.xcscheme new file mode 100644 index 0000000000..dc37f524cc --- /dev/null +++ b/submodules/AppBundle/AppBundle.xcodeproj/xcshareddata/xcschemes/AppBundle.xcscheme @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/submodules/AppBundle/AppBundle_Xcode.xcodeproj/project.pbxproj b/submodules/AppBundle/AppBundle_Xcode.xcodeproj/project.pbxproj new file mode 100644 index 0000000000..96019b014e --- /dev/null +++ b/submodules/AppBundle/AppBundle_Xcode.xcodeproj/project.pbxproj @@ -0,0 +1,528 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + D01748D923197B1000AF3D3A /* AppBundle.h in Headers */ = {isa = PBXBuildFile; fileRef = D01748D723197B1000AF3D3A /* AppBundle.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D01748E523197B4800AF3D3A /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D01748E423197B4800AF3D3A /* Foundation.framework */; }; + D01748E723197B6500AF3D3A /* AppBundle.m in Sources */ = {isa = PBXBuildFile; fileRef = D01748E623197B6500AF3D3A /* AppBundle.m */; }; + D0EFF23A23197E5600CF5164 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0EFF23923197E5600CF5164 /* UIKit.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + D01748D423197B1000AF3D3A /* AppBundle.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = AppBundle.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D01748D723197B1000AF3D3A /* AppBundle.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppBundle.h; sourceTree = ""; }; + D01748D823197B1000AF3D3A /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + D01748E423197B4800AF3D3A /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + D01748E623197B6500AF3D3A /* AppBundle.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppBundle.m; sourceTree = ""; }; + D0EFF23923197E5600CF5164 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + D01748D123197B1000AF3D3A /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + D0EFF23A23197E5600CF5164 /* UIKit.framework in Frameworks */, + D01748E523197B4800AF3D3A /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + D01748CA23197B1000AF3D3A = { + isa = PBXGroup; + children = ( + D01748D823197B1000AF3D3A /* Info.plist */, + D01748D623197B1000AF3D3A /* Sources */, + D01748D523197B1000AF3D3A /* Products */, + D01748E323197B4700AF3D3A /* Frameworks */, + ); + sourceTree = ""; + }; + D01748D523197B1000AF3D3A /* Products */ = { + isa = PBXGroup; + children = ( + D01748D423197B1000AF3D3A /* AppBundle.framework */, + ); + name = Products; + sourceTree = ""; + }; + D01748D623197B1000AF3D3A /* Sources */ = { + isa = PBXGroup; + children = ( + D01748E623197B6500AF3D3A /* AppBundle.m */, + D01748D723197B1000AF3D3A /* AppBundle.h */, + ); + path = Sources; + sourceTree = ""; + }; + D01748E323197B4700AF3D3A /* Frameworks */ = { + isa = PBXGroup; + children = ( + D0EFF23923197E5600CF5164 /* UIKit.framework */, + D01748E423197B4800AF3D3A /* Foundation.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + D01748CF23197B1000AF3D3A /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + D01748D923197B1000AF3D3A /* AppBundle.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + D01748D323197B1000AF3D3A /* AppBundle */ = { + isa = PBXNativeTarget; + buildConfigurationList = D01748DC23197B1000AF3D3A /* Build configuration list for PBXNativeTarget "AppBundle" */; + buildPhases = ( + D01748CF23197B1000AF3D3A /* Headers */, + D01748D023197B1000AF3D3A /* Sources */, + D01748D123197B1000AF3D3A /* Frameworks */, + D01748D223197B1000AF3D3A /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = AppBundle; + productName = AppBundle; + productReference = D01748D423197B1000AF3D3A /* AppBundle.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + D01748CB23197B1000AF3D3A /* Project object */ = { + isa = PBXProject; + attributes = { + DefaultBuildSystemTypeForWorkspace = Latest; + LastUpgradeCheck = 1030; + ORGANIZATIONNAME = "Telegram Messenger LLP"; + TargetAttributes = { + D01748D323197B1000AF3D3A = { + CreatedOnToolsVersion = 10.3; + }; + }; + }; + buildConfigurationList = D01748CE23197B1000AF3D3A /* Build configuration list for PBXProject "AppBundle_Xcode" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = D01748CA23197B1000AF3D3A; + productRefGroup = D01748D523197B1000AF3D3A /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + D01748D323197B1000AF3D3A /* AppBundle */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + D01748D223197B1000AF3D3A /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + D01748D023197B1000AF3D3A /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D01748E723197B6500AF3D3A /* AppBundle.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + D01748DA23197B1000AF3D3A /* 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; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = DebugAppStoreLLC; + }; + D01748DB23197B1000AF3D3A /* 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; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = ReleaseAppStoreLLC; + }; + D01748DD23197B1000AF3D3A /* 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.AppBundle; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = DebugAppStoreLLC; + }; + D01748DE23197B1000AF3D3A /* 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.AppBundle; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = ReleaseAppStoreLLC; + }; + D01748DF23197B3200AF3D3A /* 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; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = DebugHockeyapp; + }; + D01748E023197B3200AF3D3A /* 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.AppBundle; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = DebugHockeyapp; + }; + D01748E123197B3B00AF3D3A /* 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; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = ReleaseHockeyappInternal; + }; + D01748E223197B3B00AF3D3A /* 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.AppBundle; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = ReleaseHockeyappInternal; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + D01748CE23197B1000AF3D3A /* Build configuration list for PBXProject "AppBundle_Xcode" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D01748DA23197B1000AF3D3A /* DebugAppStoreLLC */, + D01748DF23197B3200AF3D3A /* DebugHockeyapp */, + D01748DB23197B1000AF3D3A /* ReleaseAppStoreLLC */, + D01748E123197B3B00AF3D3A /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; + D01748DC23197B1000AF3D3A /* Build configuration list for PBXNativeTarget "AppBundle" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D01748DD23197B1000AF3D3A /* DebugAppStoreLLC */, + D01748E023197B3200AF3D3A /* DebugHockeyapp */, + D01748DE23197B1000AF3D3A /* ReleaseAppStoreLLC */, + D01748E223197B3B00AF3D3A /* ReleaseHockeyappInternal */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = ReleaseAppStoreLLC; + }; +/* End XCConfigurationList section */ + }; + rootObject = D01748CB23197B1000AF3D3A /* Project object */; +} diff --git a/submodules/AppBundle/BUCK b/submodules/AppBundle/BUCK new file mode 100644 index 0000000000..7c15ea5d15 --- /dev/null +++ b/submodules/AppBundle/BUCK @@ -0,0 +1,21 @@ +load("//Config:buck_rule_macros.bzl", "static_library") + +static_library( + name = "AppBundle", + srcs = glob([ + "Sources/**/*.swift", + "Sources/**/*.m", + ]), + headers = glob([ + "Sources/**/*.h", + ]), + exported_headers = glob([ + "Sources/**/*.h", + ]), + deps = [ + ], + frameworks = [ + "$SDKROOT/System/Library/Frameworks/Foundation.framework", + "$SDKROOT/System/Library/Frameworks/UIKit.framework", + ], +) diff --git a/submodules/AppBundle/Info.plist b/submodules/AppBundle/Info.plist new file mode 100644 index 0000000000..e1fe4cfb7b --- /dev/null +++ b/submodules/AppBundle/Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + + diff --git a/submodules/AppBundle/Sources/AppBundle.h b/submodules/AppBundle/Sources/AppBundle.h new file mode 100644 index 0000000000..b78e84bc8d --- /dev/null +++ b/submodules/AppBundle/Sources/AppBundle.h @@ -0,0 +1,16 @@ +#import +#import + +//! Project version number for AppBundle. +FOUNDATION_EXPORT double AppBundleVersionNumber; + +//! Project version string for AppBundle. +FOUNDATION_EXPORT const unsigned char AppBundleVersionString[]; + +NSBundle * _Nonnull getAppBundle(void); + +@interface UIImage (AppBundle) + +- (instancetype _Nullable)initWithBundleImageName:(NSString * _Nonnull)bundleImageName; + +@end diff --git a/submodules/AppBundle/Sources/AppBundle.m b/submodules/AppBundle/Sources/AppBundle.m new file mode 100644 index 0000000000..69026173b2 --- /dev/null +++ b/submodules/AppBundle/Sources/AppBundle.m @@ -0,0 +1,19 @@ +#import "AppBundle.h" + +NSBundle * _Nonnull getAppBundle() { + NSBundle *bundle = [NSBundle mainBundle]; + if ([[bundle.bundleURL pathExtension] isEqualToString:@"appex"]) { + bundle = [NSBundle bundleWithURL:[[bundle.bundleURL URLByDeletingLastPathComponent] URLByDeletingLastPathComponent]]; + } else if ([[bundle.bundleURL pathExtension] isEqualToString:@"Frameworks"]) { + bundle = [NSBundle bundleWithURL:[bundle.bundleURL URLByDeletingLastPathComponent]]; + } + return bundle; +} + +@implementation UIImage (AppBundle) + +- (instancetype _Nullable)initWithBundleImageName:(NSString * _Nonnull)bundleImageName { + return [UIImage imageNamed:bundleImageName inBundle:getAppBundle() compatibleWithTraitCollection:nil]; +} + +@end diff --git a/submodules/AvatarNode/AvatarNode.xcodeproj/project.pbxproj b/submodules/AvatarNode/AvatarNode.xcodeproj/project.pbxproj index 8ee044ccec..7a4345f8d2 100644 --- a/submodules/AvatarNode/AvatarNode.xcodeproj/project.pbxproj +++ b/submodules/AvatarNode/AvatarNode.xcodeproj/project.pbxproj @@ -35,17 +35,6 @@ sourceTree SOURCE_ROOT - 1DD70E291289FAA500000000 - - isa - PBXFileReference - name - FrameworkBundle.swift - path - Sources/FrameworkBundle.swift - sourceTree - SOURCE_ROOT - 1DD70E29D83ECBE000000000 isa @@ -68,7 +57,6 @@ children 1DD70E29119E958000000000 - 1DD70E291289FAA500000000 1DD70E29D83ECBE000000000 @@ -368,13 +356,6 @@ fileRef 1DD70E29119E958000000000 - E7A30F041289FAA500000000 - - isa - PBXBuildFile - fileRef - 1DD70E291289FAA500000000 - E7A30F04D83ECBE000000000 isa @@ -389,7 +370,6 @@ files E7A30F04119E958000000000 - E7A30F041289FAA500000000 E7A30F04D83ECBE000000000 diff --git a/submodules/AvatarNode/AvatarNode_Xcode.xcodeproj/project.pbxproj b/submodules/AvatarNode/AvatarNode_Xcode.xcodeproj/project.pbxproj index ecbd956d77..1e6ac43597 100644 --- a/submodules/AvatarNode/AvatarNode_Xcode.xcodeproj/project.pbxproj +++ b/submodules/AvatarNode/AvatarNode_Xcode.xcodeproj/project.pbxproj @@ -16,7 +16,7 @@ D0879B0D22F7088F00C4D6B3 /* Display.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879B0C22F7088F00C4D6B3 /* Display.framework */; }; D0879B0F22F7089400C4D6B3 /* TelegramPresentationData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879B0E22F7089400C4D6B3 /* TelegramPresentationData.framework */; }; D0879B1522F70BAF00C4D6B3 /* PeerAvatar.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0879B1422F70BAF00C4D6B3 /* PeerAvatar.swift */; }; - D0879B1722F70BFB00C4D6B3 /* FrameworkBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0879B1622F70BFB00C4D6B3 /* FrameworkBundle.swift */; }; + D0EFF2582319812900CF5164 /* AppBundle.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0EFF2572319812900CF5164 /* AppBundle.framework */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -31,7 +31,7 @@ D0879B0C22F7088F00C4D6B3 /* Display.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Display.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D0879B0E22F7089400C4D6B3 /* TelegramPresentationData.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramPresentationData.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D0879B1422F70BAF00C4D6B3 /* PeerAvatar.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeerAvatar.swift; sourceTree = ""; }; - D0879B1622F70BFB00C4D6B3 /* FrameworkBundle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FrameworkBundle.swift; sourceTree = ""; }; + D0EFF2572319812900CF5164 /* AppBundle.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AppBundle.framework; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -39,6 +39,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + D0EFF2582319812900CF5164 /* AppBundle.framework in Frameworks */, D0879B0F22F7089400C4D6B3 /* TelegramPresentationData.framework in Frameworks */, D0879B0D22F7088F00C4D6B3 /* Display.framework in Frameworks */, D0879B0B22F7088B00C4D6B3 /* AsyncDisplayKit.framework in Frameworks */, @@ -74,7 +75,6 @@ children = ( D0879B1422F70BAF00C4D6B3 /* PeerAvatar.swift */, D0879B0122F7087800C4D6B3 /* AvatarNode.swift */, - D0879B1622F70BFB00C4D6B3 /* FrameworkBundle.swift */, D0879AF522F7079F00C4D6B3 /* AvatarNode.h */, ); path = Sources; @@ -83,6 +83,7 @@ D0879B0322F7087F00C4D6B3 /* Frameworks */ = { isa = PBXGroup; children = ( + D0EFF2572319812900CF5164 /* AppBundle.framework */, D0879B0E22F7089400C4D6B3 /* TelegramPresentationData.framework */, D0879B0C22F7088F00C4D6B3 /* Display.framework */, D0879B0A22F7088B00C4D6B3 /* AsyncDisplayKit.framework */, @@ -175,7 +176,6 @@ files = ( D0879B1522F70BAF00C4D6B3 /* PeerAvatar.swift in Sources */, D0879B0222F7087800C4D6B3 /* AvatarNode.swift in Sources */, - D0879B1722F70BFB00C4D6B3 /* FrameworkBundle.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/submodules/AvatarNode/BUCK b/submodules/AvatarNode/BUCK index 66d6862bdc..93c3fb0d60 100644 --- a/submodules/AvatarNode/BUCK +++ b/submodules/AvatarNode/BUCK @@ -11,6 +11,7 @@ static_library( "//submodules/TelegramCore:TelegramCore#shared", "//submodules/TelegramPresentationData:TelegramPresentationData", "//submodules/AnimationUI:AnimationUI", + "//submodules/AppBundle:AppBundle", ], frameworks = [ "$SDKROOT/System/Library/Frameworks/Foundation.framework", diff --git a/submodules/AvatarNode/Sources/AvatarNode.swift b/submodules/AvatarNode/Sources/AvatarNode.swift index 91c25c2819..d94d57f7c5 100644 --- a/submodules/AvatarNode/Sources/AvatarNode.swift +++ b/submodules/AvatarNode/Sources/AvatarNode.swift @@ -7,6 +7,7 @@ import TelegramCore import SwiftSignalKit import TelegramPresentationData import AnimationUI +import AppBundle private let deletedIcon = UIImage(bundleImageName: "Avatar/DeletedIcon")?.precomposed() private let savedMessagesIcon = generateTintedImage(image: UIImage(bundleImageName: "Avatar/SavedMessagesIcon"), color: .white) diff --git a/submodules/AvatarNode/Sources/FrameworkBundle.swift b/submodules/AvatarNode/Sources/FrameworkBundle.swift deleted file mode 100644 index 8ca13d7d92..0000000000 --- a/submodules/AvatarNode/Sources/FrameworkBundle.swift +++ /dev/null @@ -1,13 +0,0 @@ -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) - } -} diff --git a/submodules/BotPaymentsUI/BUCK b/submodules/BotPaymentsUI/BUCK index 69089759d8..a29631df06 100644 --- a/submodules/BotPaymentsUI/BUCK +++ b/submodules/BotPaymentsUI/BUCK @@ -18,6 +18,7 @@ static_library( "//submodules/TelegramNotices:TelegramNotices", "//submodules/Stripe:Stripe", "//submodules/CountrySelectionUI:CountrySelectionUI", + "//submodules/AppBundle:AppBundle", ], frameworks = [ "$SDKROOT/System/Library/Frameworks/Foundation.framework", diff --git a/submodules/BotPaymentsUI/BotPaymentsUI.xcodeproj/project.pbxproj b/submodules/BotPaymentsUI/BotPaymentsUI.xcodeproj/project.pbxproj index 4c1ce1fa6b..3170cf34bc 100644 --- a/submodules/BotPaymentsUI/BotPaymentsUI.xcodeproj/project.pbxproj +++ b/submodules/BotPaymentsUI/BotPaymentsUI.xcodeproj/project.pbxproj @@ -299,17 +299,6 @@ sourceTree SOURCE_ROOT - 1DD70E291289FAA500000000 - - isa - PBXFileReference - name - FrameworkBundle.swift - path - Sources/FrameworkBundle.swift - sourceTree - SOURCE_ROOT - B401C979EAB5339800000000 isa @@ -345,7 +334,6 @@ 1DD70E29CC5195E600000000 1DD70E29938515F200000000 1DD70E29CDAC281400000000 - 1DD70E291289FAA500000000 B401C97922643F8800000000 @@ -1176,13 +1164,6 @@ fileRef 1DD70E29CDAC281400000000 - E7A30F041289FAA500000000 - - isa - PBXBuildFile - fileRef - 1DD70E291289FAA500000000 - 1870857F0000000000000000 isa @@ -1214,7 +1195,6 @@ E7A30F04CC5195E600000000 E7A30F04938515F200000000 E7A30F04CDAC281400000000 - E7A30F041289FAA500000000 E7A30F04D65BA68200000000 diff --git a/submodules/BotPaymentsUI/BotPaymentsUI_Xcode.xcodeproj/project.pbxproj b/submodules/BotPaymentsUI/BotPaymentsUI_Xcode.xcodeproj/project.pbxproj index 84108cc736..7f0005e3a4 100644 --- a/submodules/BotPaymentsUI/BotPaymentsUI_Xcode.xcodeproj/project.pbxproj +++ b/submodules/BotPaymentsUI/BotPaymentsUI_Xcode.xcodeproj/project.pbxproj @@ -40,12 +40,12 @@ D0C9C7B52301FFE500FAB518 /* TelegramCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C7B42301FFE500FAB518 /* TelegramCore.framework */; }; D0C9C7B72301FFE900FAB518 /* SwiftSignalKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C7B62301FFE900FAB518 /* SwiftSignalKit.framework */; }; D0C9C7B92301FFEF00FAB518 /* TelegramPresentationData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C7B82301FFEF00FAB518 /* TelegramPresentationData.framework */; }; - D0C9C7BF2302023D00FAB518 /* FrameworkBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C7BE2302023D00FAB518 /* FrameworkBundle.swift */; }; D0C9C7E32302035800FAB518 /* LocalAuth.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C7E22302035800FAB518 /* LocalAuth.framework */; }; D0C9C7E72302041100FAB518 /* AccountContext.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C7E62302041100FAB518 /* AccountContext.framework */; }; D0C9C7E9230205A500FAB518 /* ItemListUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C7E8230205A500FAB518 /* ItemListUI.framework */; }; D0C9C7EB230205D700FAB518 /* PasswordSetupUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C7EA230205D700FAB518 /* PasswordSetupUI.framework */; }; D0C9C7EF2302061E00FAB518 /* PhotoResources.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C7EE2302061E00FAB518 /* PhotoResources.framework */; }; + D0EFF27A2319832400CF5164 /* AppBundle.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0EFF2792319832400CF5164 /* AppBundle.framework */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -84,12 +84,12 @@ D0C9C7B42301FFE500FAB518 /* TelegramCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D0C9C7B62301FFE900FAB518 /* SwiftSignalKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = SwiftSignalKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D0C9C7B82301FFEF00FAB518 /* TelegramPresentationData.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramPresentationData.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - D0C9C7BE2302023D00FAB518 /* FrameworkBundle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FrameworkBundle.swift; sourceTree = ""; }; D0C9C7E22302035800FAB518 /* LocalAuth.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = LocalAuth.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D0C9C7E62302041100FAB518 /* AccountContext.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AccountContext.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D0C9C7E8230205A500FAB518 /* ItemListUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ItemListUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D0C9C7EA230205D700FAB518 /* PasswordSetupUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = PasswordSetupUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D0C9C7EE2302061E00FAB518 /* PhotoResources.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = PhotoResources.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D0EFF2792319832400CF5164 /* AppBundle.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AppBundle.framework; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -97,6 +97,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + D0EFF27A2319832400CF5164 /* AppBundle.framework in Frameworks */, D0C9C7EF2302061E00FAB518 /* PhotoResources.framework in Frameworks */, D0C9C7EB230205D700FAB518 /* PasswordSetupUI.framework in Frameworks */, D0C9C7E9230205A500FAB518 /* ItemListUI.framework in Frameworks */, @@ -161,7 +162,6 @@ D0C9C77D2301FFCA00FAB518 /* BotPaymentTextItemNode.swift */, D0C9C7812301FFCA00FAB518 /* BotReceiptController.swift */, D0C9C7862301FFCB00FAB518 /* BotReceiptControllerNode.swift */, - D0C9C7BE2302023D00FAB518 /* FrameworkBundle.swift */, D0C9C6CB2301FC9300FAB518 /* BotPaymentsUI.h */, ); path = Sources; @@ -170,6 +170,7 @@ D0C9C7AB2301FFD300FAB518 /* Frameworks */ = { isa = PBXGroup; children = ( + D0EFF2792319832400CF5164 /* AppBundle.framework */, D0C9C7EE2302061E00FAB518 /* PhotoResources.framework */, D0C9C7EA230205D700FAB518 /* PasswordSetupUI.framework */, D0C9C7E8230205A500FAB518 /* ItemListUI.framework */, @@ -286,7 +287,6 @@ D0C9C7A12301FFD000FAB518 /* BotCheckoutWebInteractionControllerNode.swift in Sources */, D0C9C7922301FFD000FAB518 /* BotCheckoutPasswordEntryController.swift in Sources */, D0C9C7932301FFD000FAB518 /* BotPaymentActionItemNode.swift in Sources */, - D0C9C7BF2302023D00FAB518 /* FrameworkBundle.swift in Sources */, D0C9C7A72301FFD000FAB518 /* BotCheckoutNativeCardEntryControllerNode.swift in Sources */, D0C9C7A52301FFD000FAB518 /* BotPaymentFieldItemNode.swift in Sources */, D0C9C79C2301FFD000FAB518 /* BotCheckoutWebInteractionController.swift in Sources */, diff --git a/submodules/BotPaymentsUI/Sources/BotCheckoutPaymentMethodSheet.swift b/submodules/BotPaymentsUI/Sources/BotCheckoutPaymentMethodSheet.swift index 630da03eb4..bf43dd2e23 100644 --- a/submodules/BotPaymentsUI/Sources/BotCheckoutPaymentMethodSheet.swift +++ b/submodules/BotPaymentsUI/Sources/BotCheckoutPaymentMethodSheet.swift @@ -5,6 +5,7 @@ import AsyncDisplayKit import SwiftSignalKit import TelegramCore import AccountContext +import AppBundle struct BotCheckoutPaymentWebToken: Equatable { let title: String diff --git a/submodules/BotPaymentsUI/Sources/FrameworkBundle.swift b/submodules/BotPaymentsUI/Sources/FrameworkBundle.swift deleted file mode 100644 index 8ca13d7d92..0000000000 --- a/submodules/BotPaymentsUI/Sources/FrameworkBundle.swift +++ /dev/null @@ -1,13 +0,0 @@ -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) - } -} diff --git a/submodules/BuildConfig/BUCK b/submodules/BuildConfig/BUCK index cdf9a1bed4..1acc7024d4 100644 --- a/submodules/BuildConfig/BUCK +++ b/submodules/BuildConfig/BUCK @@ -1,5 +1,5 @@ load("//Config:buck_rule_macros.bzl", "static_library") -load("//Config:app_configuration.bzl", "AppConfig") +load("//Config:app_configuration.bzl", "appConfig") static_library( name = "BuildConfig", @@ -7,14 +7,13 @@ static_library( "Sources/*.m", ]), compiler_flags = [ - '-DAPP_CONFIG_API_ID=' + AppConfig["apiId"], - '-DAPP_CONFIG_API_HASH="' + AppConfig["apiHash"] + '"', - '-DAPP_CONFIG_HOCKEYAPP_ID="' + AppConfig["hockeyAppId"] + '"', - '-DAPP_CONFIG_IS_INTERNAL_BUILD=' + AppConfig["isInternalBuild"], - '-DAPP_CONFIG_IS_APPSTORE_BUILD=' + AppConfig["isAppStoreBuild"], - '-DAPP_CONFIG_APPSTORE_ID=' + AppConfig["appstoreId"], - '-DAPP_SPECIFIC_URL_SCHEME="' + AppConfig["appSpecificUrlScheme"] + '"', - + '-DAPP_CONFIG_API_ID=' + appConfig()["apiId"], + '-DAPP_CONFIG_API_HASH="' + appConfig()["apiHash"] + '"', + '-DAPP_CONFIG_HOCKEYAPP_ID="' + appConfig()["hockeyAppId"] + '"', + '-DAPP_CONFIG_IS_INTERNAL_BUILD=' + appConfig()["isInternalBuild"], + '-DAPP_CONFIG_IS_APPSTORE_BUILD=' + appConfig()["isAppStoreBuild"], + '-DAPP_CONFIG_APPSTORE_ID=' + appConfig()["appStoreId"], + '-DAPP_SPECIFIC_URL_SCHEME="' + appConfig()["appSpecificUrlScheme"] + '"', ], headers = glob([ "Sources/*.h", diff --git a/submodules/CallListUI/CallListUI.xcodeproj/project.pbxproj b/submodules/CallListUI/CallListUI.xcodeproj/project.pbxproj index d8d2d640a6..796faba925 100644 --- a/submodules/CallListUI/CallListUI.xcodeproj/project.pbxproj +++ b/submodules/CallListUI/CallListUI.xcodeproj/project.pbxproj @@ -101,17 +101,6 @@ sourceTree SOURCE_ROOT - 1DD70E291289FAA500000000 - - isa - PBXFileReference - name - FrameworkBundle.swift - path - Sources/FrameworkBundle.swift - sourceTree - SOURCE_ROOT - B401C979EAB5339800000000 isa @@ -129,7 +118,6 @@ 1DD70E29AB92F37700000000 1DD70E2970B6869800000000 1DD70E291FE77B5B00000000 - 1DD70E291289FAA500000000 B401C979C8F48FD000000000 @@ -750,13 +738,6 @@ fileRef 1DD70E291FE77B5B00000000 - E7A30F041289FAA500000000 - - isa - PBXBuildFile - fileRef - 1DD70E291289FAA500000000 - 1870857F0000000000000000 isa @@ -770,7 +751,6 @@ E7A30F04AB92F37700000000 E7A30F0470B6869800000000 E7A30F041FE77B5B00000000 - E7A30F041289FAA500000000 E7A30F04D65BA68200000000 diff --git a/submodules/CallListUI/CallListUI_Xcode.xcodeproj/project.pbxproj b/submodules/CallListUI/CallListUI_Xcode.xcodeproj/project.pbxproj index d8988982ba..bd3fd10a95 100644 --- a/submodules/CallListUI/CallListUI_Xcode.xcodeproj/project.pbxproj +++ b/submodules/CallListUI/CallListUI_Xcode.xcodeproj/project.pbxproj @@ -30,7 +30,6 @@ D0C9CA7C23022DCC00FAB518 /* TelegramUIPreferences.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9CA7B23022DCC00FAB518 /* TelegramUIPreferences.framework */; }; D0C9CA7E23022DD900FAB518 /* TelegramNotices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9CA7D23022DD900FAB518 /* TelegramNotices.framework */; }; D0C9CA8023022E1F00FAB518 /* MergeLists.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9CA7F23022E1F00FAB518 /* MergeLists.framework */; }; - D0C9CA8423022E6600FAB518 /* FrameworkBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9CA8323022E6600FAB518 /* FrameworkBundle.swift */; }; D0C9CA8623022FCD00FAB518 /* CallListHoleItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9CA8523022FCD00FAB518 /* CallListHoleItem.swift */; }; /* End PBXBuildFile section */ @@ -60,7 +59,6 @@ D0C9CA7B23022DCC00FAB518 /* TelegramUIPreferences.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramUIPreferences.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D0C9CA7D23022DD900FAB518 /* TelegramNotices.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramNotices.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D0C9CA7F23022E1F00FAB518 /* MergeLists.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = MergeLists.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - D0C9CA8323022E6600FAB518 /* FrameworkBundle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FrameworkBundle.swift; sourceTree = ""; }; D0C9CA8523022FCD00FAB518 /* CallListHoleItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CallListHoleItem.swift; sourceTree = ""; }; /* End PBXFileReference section */ @@ -119,7 +117,6 @@ D0C9CA5523022D5E00FAB518 /* CallListNodeEntries.swift */, D0C9CA5623022D5E00FAB518 /* CallListNodeLocation.swift */, D0C9CA5723022D5E00FAB518 /* CallListViewTransition.swift */, - D0C9CA8323022E6600FAB518 /* FrameworkBundle.swift */, D0C9CA4823022CEB00FAB518 /* CallListUI.h */, ); path = Sources; @@ -234,7 +231,6 @@ D0C9CA5B23022D5F00FAB518 /* CallListNodeEntries.swift in Sources */, D0C9CA5F23022D5F00FAB518 /* CallListController.swift in Sources */, D0C9CA5E23022D5F00FAB518 /* CallListControllerNode.swift in Sources */, - D0C9CA8423022E6600FAB518 /* FrameworkBundle.swift in Sources */, D0C9CA5A23022D5F00FAB518 /* CallListCallItem.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; diff --git a/submodules/CallListUI/Sources/CallListController.swift b/submodules/CallListUI/Sources/CallListController.swift index fa6e82e03e..17ac428fbb 100644 --- a/submodules/CallListUI/Sources/CallListController.swift +++ b/submodules/CallListUI/Sources/CallListController.swift @@ -9,6 +9,7 @@ import TelegramPresentationData import ItemListUI import AccountContext import AlertUI +import AppBundle public enum CallListControllerMode { case tab diff --git a/submodules/CallListUI/Sources/FrameworkBundle.swift b/submodules/CallListUI/Sources/FrameworkBundle.swift deleted file mode 100644 index 8ca13d7d92..0000000000 --- a/submodules/CallListUI/Sources/FrameworkBundle.swift +++ /dev/null @@ -1,13 +0,0 @@ -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) - } -} diff --git a/submodules/ChatListUI/BUCK b/submodules/ChatListUI/BUCK index fe20d2e97f..4543d32fe2 100644 --- a/submodules/ChatListUI/BUCK +++ b/submodules/ChatListUI/BUCK @@ -36,6 +36,7 @@ static_library( "//submodules/ContactsPeerItem:ContactsPeerItem", "//submodules/ContactListUI:ContactListUI", "//submodules/PhotoResources:PhotoResources", + "//submodules/AppBundle:AppBundle", ], frameworks = [ "$SDKROOT/System/Library/Frameworks/Foundation.framework", diff --git a/submodules/ChatListUI/ChatListUI.xcodeproj/project.pbxproj b/submodules/ChatListUI/ChatListUI.xcodeproj/project.pbxproj index 70b8bb15cb..1390f46a28 100644 --- a/submodules/ChatListUI/ChatListUI.xcodeproj/project.pbxproj +++ b/submodules/ChatListUI/ChatListUI.xcodeproj/project.pbxproj @@ -281,17 +281,6 @@ sourceTree SOURCE_ROOT - 1DD70E291289FAA500000000 - - isa - PBXFileReference - name - FrameworkBundle.swift - path - Sources/FrameworkBundle.swift - sourceTree - SOURCE_ROOT - B401C979EAB5339800000000 isa @@ -312,7 +301,6 @@ 1DD70E299588C17700000000 1DD70E294EC20C1300000000 1DD70E29E691DAEC00000000 - 1DD70E291289FAA500000000 B401C9790758854A00000000 @@ -1465,13 +1453,6 @@ fileRef 1DD70E29E691DAEC00000000 - E7A30F041289FAA500000000 - - isa - PBXBuildFile - fileRef - 1DD70E291289FAA500000000 - 1870857F0000000000000000 isa @@ -1499,7 +1480,6 @@ E7A30F049588C17700000000 E7A30F044EC20C1300000000 E7A30F04E691DAEC00000000 - E7A30F041289FAA500000000 E7A30F04D65BA68200000000 diff --git a/submodules/ChatListUI/ChatListUI_Xcode.xcodeproj/project.pbxproj b/submodules/ChatListUI/ChatListUI_Xcode.xcodeproj/project.pbxproj index 7c5da4b686..c1fd596638 100644 --- a/submodules/ChatListUI/ChatListUI_Xcode.xcodeproj/project.pbxproj +++ b/submodules/ChatListUI/ChatListUI_Xcode.xcodeproj/project.pbxproj @@ -55,12 +55,12 @@ 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 */; }; D0C9CBE62303387E00FAB518 /* ContactsPeerItem.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9CBE52303387E00FAB518 /* ContactsPeerItem.framework */; }; D0C9CBE82303407100FAB518 /* ContactListUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9CBE72303407100FAB518 /* ContactListUI.framework */; }; + D0EFF272231982C700CF5164 /* AppBundle.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0EFF271231982C700CF5164 /* AppBundle.framework */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -114,12 +114,12 @@ 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 = ""; }; 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; }; D0C9CBE52303387E00FAB518 /* ContactsPeerItem.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ContactsPeerItem.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D0C9CBE72303407100FAB518 /* ContactListUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ContactListUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D0EFF271231982C700CF5164 /* AppBundle.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AppBundle.framework; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -127,6 +127,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + D0EFF272231982C700CF5164 /* AppBundle.framework in Frameworks */, D0C9CBE82303407100FAB518 /* ContactListUI.framework in Frameworks */, D0C9CBE62303387E00FAB518 /* ContactsPeerItem.framework in Frameworks */, D0C9CBB42302B64C00FAB518 /* LanguageSuggestionUI.framework in Frameworks */, @@ -195,7 +196,6 @@ D0C9CAA9230235E400FAB518 /* ChatListTitleLockView.swift */, D0C9CAA7230235E300FAB518 /* ChatListTitleProxyNode.swift */, D0C9CAA8230235E400FAB518 /* ChatListTitleView.swift */, - D0C9CB06230237D000FAB518 /* FrameworkBundle.swift */, D0C9CA98230234D400FAB518 /* ChatListUI.h */, ); path = Sources; @@ -204,6 +204,7 @@ D0C9CAB62302360600FAB518 /* Frameworks */ = { isa = PBXGroup; children = ( + D0EFF271231982C700CF5164 /* AppBundle.framework */, D0C9CBE72303407100FAB518 /* ContactListUI.framework */, D0C9CBE52303387E00FAB518 /* ContactsPeerItem.framework */, D0C9CBB32302B64C00FAB518 /* LanguageSuggestionUI.framework */, @@ -346,7 +347,6 @@ 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 */, diff --git a/submodules/ChatListUI/Sources/ChatListController.swift b/submodules/ChatListUI/Sources/ChatListController.swift index 4efb5d9f71..434d90d411 100644 --- a/submodules/ChatListUI/Sources/ChatListController.swift +++ b/submodules/ChatListUI/Sources/ChatListController.swift @@ -15,6 +15,7 @@ import TelegramNotices import SearchUI import DeleteChatPeerActionSheetItem import LanguageSuggestionUI +import AppBundle public func useSpecialTabBarIcons() -> Bool { return (Date(timeIntervalSince1970: 1545642000)...Date(timeIntervalSince1970: 1546387200)).contains(Date()) diff --git a/submodules/ChatListUI/Sources/ChatListTitleProxyNode.swift b/submodules/ChatListUI/Sources/ChatListTitleProxyNode.swift index 645e5dd761..617d4fea7b 100644 --- a/submodules/ChatListUI/Sources/ChatListTitleProxyNode.swift +++ b/submodules/ChatListUI/Sources/ChatListTitleProxyNode.swift @@ -4,6 +4,7 @@ import Display import AsyncDisplayKit import TelegramPresentationData import ActivityIndicator +import AppBundle enum ChatTitleProxyStatus { case connecting diff --git a/submodules/ChatListUI/Sources/FrameworkBundle.swift b/submodules/ChatListUI/Sources/FrameworkBundle.swift deleted file mode 100644 index 8ca13d7d92..0000000000 --- a/submodules/ChatListUI/Sources/FrameworkBundle.swift +++ /dev/null @@ -1,13 +0,0 @@ -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) - } -} diff --git a/submodules/ChatListUI/Sources/Node/ChatListArchiveInfoItem.swift b/submodules/ChatListUI/Sources/Node/ChatListArchiveInfoItem.swift index b6c9defbd5..13e836f1d9 100644 --- a/submodules/ChatListUI/Sources/Node/ChatListArchiveInfoItem.swift +++ b/submodules/ChatListUI/Sources/Node/ChatListArchiveInfoItem.swift @@ -6,6 +6,7 @@ import Display import SwiftSignalKit import TelegramPresentationData import ListSectionHeaderNode +import AppBundle class ChatListArchiveInfoItem: ListViewItem { let theme: PresentationTheme diff --git a/submodules/ContactListUI/BUCK b/submodules/ContactListUI/BUCK index a95e22bb63..9b4477027d 100644 --- a/submodules/ContactListUI/BUCK +++ b/submodules/ContactListUI/BUCK @@ -24,6 +24,7 @@ static_library( "//submodules/TelegramNotices:TelegramNotices", "//submodules/AlertUI:AlertUI", "//submodules/ShareController:ShareController", + "//submodules/AppBundle:AppBundle", ], frameworks = [ "$SDKROOT/System/Library/Frameworks/Foundation.framework", diff --git a/submodules/ContactListUI/ContactListUI.xcodeproj/project.pbxproj b/submodules/ContactListUI/ContactListUI.xcodeproj/project.pbxproj index e7ed0f4a34..6e19e03e6b 100644 --- a/submodules/ContactListUI/ContactListUI.xcodeproj/project.pbxproj +++ b/submodules/ContactListUI/ContactListUI.xcodeproj/project.pbxproj @@ -168,17 +168,6 @@ sourceTree SOURCE_ROOT - 1DD70E291289FAA500000000 - - isa - PBXFileReference - name - FrameworkBundle.swift - path - Sources/FrameworkBundle.swift - sourceTree - SOURCE_ROOT - 1DD70E2947849BFD00000000 isa @@ -229,7 +218,6 @@ 1DD70E29D5D22BD400000000 1DD70E2955D77CF600000000 1DD70E2912C86E8D00000000 - 1DD70E291289FAA500000000 1DD70E2947849BFD00000000 1DD70E29CB13B09F00000000 1DD70E29D3C9BBF800000000 @@ -1066,13 +1054,6 @@ fileRef 1DD70E2912C86E8D00000000 - E7A30F041289FAA500000000 - - isa - PBXBuildFile - fileRef - 1DD70E291289FAA500000000 - E7A30F0447849BFD00000000 isa @@ -1107,7 +1088,6 @@ E7A30F04D5D22BD400000000 E7A30F0455D77CF600000000 E7A30F0412C86E8D00000000 - E7A30F041289FAA500000000 E7A30F0447849BFD00000000 E7A30F04CB13B09F00000000 E7A30F04D3C9BBF800000000 diff --git a/submodules/ContactListUI/ContactListUI_Xcode.xcodeproj/project.pbxproj b/submodules/ContactListUI/ContactListUI_Xcode.xcodeproj/project.pbxproj index 74c9237560..76109f32df 100644 --- a/submodules/ContactListUI/ContactListUI_Xcode.xcodeproj/project.pbxproj +++ b/submodules/ContactListUI/ContactListUI_Xcode.xcodeproj/project.pbxproj @@ -26,7 +26,6 @@ D0C9C831230207E600FAB518 /* ContactsController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C82B230207E600FAB518 /* ContactsController.swift */; }; D0C9C832230207E600FAB518 /* ContactsControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C82C230207E600FAB518 /* ContactsControllerNode.swift */; }; D0C9C833230207E600FAB518 /* InviteContactsControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C82D230207E600FAB518 /* InviteContactsControllerNode.swift */; }; - D0C9C835230207EE00FAB518 /* FrameworkBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C834230207EE00FAB518 /* FrameworkBundle.swift */; }; D0C9C8392302088800FAB518 /* Display.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C8382302088800FAB518 /* Display.framework */; }; D0C9C83B2302088C00FAB518 /* AsyncDisplayKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C83A2302088C00FAB518 /* AsyncDisplayKit.framework */; }; D0C9C83D2302089300FAB518 /* MergeLists.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C83C2302089300FAB518 /* MergeLists.framework */; }; @@ -36,6 +35,7 @@ D0C9C91323020DBF00FAB518 /* ContactsPeerItem.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C91223020DBF00FAB518 /* ContactsPeerItem.framework */; }; D0C9C94F2302140500FAB518 /* ChatListSearchItemNode.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C94E2302140500FAB518 /* ChatListSearchItemNode.framework */; }; D0C9C98D2302153C00FAB518 /* TelegramPermissionsUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C98C2302153C00FAB518 /* TelegramPermissionsUI.framework */; }; + D0EFF2782319830300CF5164 /* AppBundle.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0EFF2772319830300CF5164 /* AppBundle.framework */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -60,7 +60,6 @@ D0C9C82B230207E600FAB518 /* ContactsController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ContactsController.swift; sourceTree = ""; }; D0C9C82C230207E600FAB518 /* ContactsControllerNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ContactsControllerNode.swift; sourceTree = ""; }; D0C9C82D230207E600FAB518 /* InviteContactsControllerNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = InviteContactsControllerNode.swift; sourceTree = ""; }; - D0C9C834230207EE00FAB518 /* FrameworkBundle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FrameworkBundle.swift; sourceTree = ""; }; D0C9C8382302088800FAB518 /* Display.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Display.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D0C9C83A2302088C00FAB518 /* AsyncDisplayKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AsyncDisplayKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D0C9C83C2302089300FAB518 /* MergeLists.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = MergeLists.framework; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -70,6 +69,7 @@ D0C9C91223020DBF00FAB518 /* ContactsPeerItem.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ContactsPeerItem.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D0C9C94E2302140500FAB518 /* ChatListSearchItemNode.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ChatListSearchItemNode.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D0C9C98C2302153C00FAB518 /* TelegramPermissionsUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramPermissionsUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D0EFF2772319830300CF5164 /* AppBundle.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AppBundle.framework; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -77,6 +77,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + D0EFF2782319830300CF5164 /* AppBundle.framework in Frameworks */, D0C9C98D2302153C00FAB518 /* TelegramPermissionsUI.framework in Frameworks */, D0C9C94F2302140500FAB518 /* ChatListSearchItemNode.framework in Frameworks */, D0C9C91323020DBF00FAB518 /* ContactsPeerItem.framework in Frameworks */, @@ -131,7 +132,6 @@ D0C9C80B2302077E00FAB518 /* ContactListActionItem.swift */, D0C9C80A2302077E00FAB518 /* ContactListNameIndexHeader.swift */, D0C9C80D2302077F00FAB518 /* ContactListNode.swift */, - D0C9C834230207EE00FAB518 /* FrameworkBundle.swift */, D0C9C7FD230206F600FAB518 /* ContactListUI.h */, ); path = Sources; @@ -140,6 +140,7 @@ D0C9C817230207B900FAB518 /* Frameworks */ = { isa = PBXGroup; children = ( + D0EFF2772319830300CF5164 /* AppBundle.framework */, D0C9C98C2302153C00FAB518 /* TelegramPermissionsUI.framework */, D0C9C94E2302140500FAB518 /* ChatListSearchItemNode.framework */, D0C9C91223020DBF00FAB518 /* ContactsPeerItem.framework */, @@ -248,7 +249,6 @@ D0C9C8132302077F00FAB518 /* ContactListNode.swift in Sources */, D0C9C8102302077F00FAB518 /* ContactListNameIndexHeader.swift in Sources */, D0C9C82F230207E600FAB518 /* InviteContactsController.swift in Sources */, - D0C9C835230207EE00FAB518 /* FrameworkBundle.swift in Sources */, D0C9C8112302077F00FAB518 /* ContactListActionItem.swift in Sources */, D0C9C831230207E600FAB518 /* ContactsController.swift in Sources */, D0C9C8122302077F00FAB518 /* ContactAddItem.swift in Sources */, diff --git a/submodules/ContactListUI/Sources/ContactAddItem.swift b/submodules/ContactListUI/Sources/ContactAddItem.swift index db676a4fe8..57259e3343 100644 --- a/submodules/ContactListUI/Sources/ContactAddItem.swift +++ b/submodules/ContactListUI/Sources/ContactAddItem.swift @@ -6,6 +6,7 @@ import Display import SwiftSignalKit import TelegramCore import TelegramPresentationData +import AppBundle private let titleFont = Font.regular(17.0) diff --git a/submodules/ContactListUI/Sources/ContactListNode.swift b/submodules/ContactListUI/Sources/ContactListNode.swift index 0cd7dbcb7f..59d795a9b1 100644 --- a/submodules/ContactListUI/Sources/ContactListNode.swift +++ b/submodules/ContactListUI/Sources/ContactListNode.swift @@ -19,6 +19,7 @@ import ChatListSearchItemNode import ChatListSearchItemHeader import SearchUI import TelegramPermissionsUI +import AppBundle private let dropDownIcon = { () -> UIImage in UIGraphicsBeginImageContextWithOptions(CGSize(width: 12.0, height: 12.0), false, 0.0) diff --git a/submodules/ContactListUI/Sources/ContactsController.swift b/submodules/ContactListUI/Sources/ContactsController.swift index 0d20dfbf71..138c67ec4b 100644 --- a/submodules/ContactListUI/Sources/ContactsController.swift +++ b/submodules/ContactListUI/Sources/ContactsController.swift @@ -15,6 +15,7 @@ import TelegramNotices import ContactsPeerItem import SearchUI import TelegramPermissionsUI +import AppBundle private func fixListNodeScrolling(_ listNode: ListView, searchNode: NavigationBarSearchContentNode) -> Bool { if searchNode.expansionProgress > 0.0 && searchNode.expansionProgress < 1.0 { diff --git a/submodules/ContactListUI/Sources/ContactsControllerNode.swift b/submodules/ContactListUI/Sources/ContactsControllerNode.swift index e2b8618087..8bfd38edcd 100644 --- a/submodules/ContactListUI/Sources/ContactsControllerNode.swift +++ b/submodules/ContactListUI/Sources/ContactsControllerNode.swift @@ -11,6 +11,7 @@ import DeviceAccess import AccountContext import SearchBarNode import SearchUI +import AppBundle private final class ContactsControllerNodeView: UITracingLayerView, PreviewingHostView { var previewingDelegate: PreviewingHostViewDelegate? { diff --git a/submodules/ContactListUI/Sources/FrameworkBundle.swift b/submodules/ContactListUI/Sources/FrameworkBundle.swift deleted file mode 100644 index 8ca13d7d92..0000000000 --- a/submodules/ContactListUI/Sources/FrameworkBundle.swift +++ /dev/null @@ -1,13 +0,0 @@ -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) - } -} diff --git a/submodules/ContactListUI/Sources/InviteContactsControllerNode.swift b/submodules/ContactListUI/Sources/InviteContactsControllerNode.swift index e5a3fba84e..bd61b4e668 100644 --- a/submodules/ContactListUI/Sources/InviteContactsControllerNode.swift +++ b/submodules/ContactListUI/Sources/InviteContactsControllerNode.swift @@ -14,6 +14,7 @@ import SearchBarNode import SearchUI import ContactsPeerItem import ChatListSearchItemHeader +import AppBundle private enum InviteContactsEntryId: Hashable { case option(index: Int) diff --git a/submodules/ContextUI/ContextUI.xcodeproj/project.pbxproj b/submodules/ContextUI/ContextUI.xcodeproj/project.pbxproj index 7471eac946..6124b875c6 100644 --- a/submodules/ContextUI/ContextUI.xcodeproj/project.pbxproj +++ b/submodules/ContextUI/ContextUI.xcodeproj/project.pbxproj @@ -177,6 +177,19 @@ B401C979EAB5339800000000 + 1DD70E292420028600000000 + + isa + PBXFileReference + name + libAnimationUI.a + path + libAnimationUI.a + sourceTree + BUILT_PRODUCTS_DIR + explicitFileType + archive.ar + 1DD70E29FF334B1F00000000 isa @@ -190,6 +203,19 @@ explicitFileType compiled.mach-o.dylib + 1DD70E29D6F14E1000000000 + + isa + PBXFileReference + name + libImageBlur.a + path + libImageBlur.a + sourceTree + BUILT_PRODUCTS_DIR + explicitFileType + archive.ar + 1DD70E2936DE2CF900000000 isa @@ -216,6 +242,32 @@ explicitFileType compiled.mach-o.dylib + 1DD70E29AD66967300000000 + + isa + PBXFileReference + name + libReactionSelectionNode.a + path + libReactionSelectionNode.a + sourceTree + BUILT_PRODUCTS_DIR + explicitFileType + archive.ar + + 1DD70E293594DCC000000000 + + isa + PBXFileReference + name + libStickerResources.a + path + libStickerResources.a + sourceTree + BUILT_PRODUCTS_DIR + explicitFileType + archive.ar + 1DD70E29D65BA68200000000 isa @@ -281,6 +333,19 @@ explicitFileType archive.ar + 1DD70E29CD296A8300000000 + + isa + PBXFileReference + name + libTuples.a + path + libTuples.a + sourceTree + BUILT_PRODUCTS_DIR + explicitFileType + archive.ar + B401C97968022A5500000000 isa @@ -291,14 +356,19 @@ ]]> children + 1DD70E292420028600000000 1DD70E29FF334B1F00000000 + 1DD70E29D6F14E1000000000 1DD70E2936DE2CF900000000 1DD70E29DB6520C800000000 + 1DD70E29AD66967300000000 + 1DD70E293594DCC000000000 1DD70E29D65BA68200000000 1DD70E29119CDA0700000000 1DD70E2984A59C1D00000000 1DD70E292395015100000000 1DD70E29F40A586F00000000 + 1DD70E29CD296A8300000000 1DD70E296C9831F100000000 @@ -426,6 +496,13 @@ fileRef 1DD70E2936DE2CF900000000 + E7A30F04D6F14E1000000000 + + isa + PBXBuildFile + fileRef + 1DD70E29D6F14E1000000000 + E7A30F042395015100000000 isa @@ -433,6 +510,27 @@ fileRef 1DD70E292395015100000000 + E7A30F04CD296A8300000000 + + isa + PBXBuildFile + fileRef + 1DD70E29CD296A8300000000 + + E7A30F043594DCC000000000 + + isa + PBXBuildFile + fileRef + 1DD70E293594DCC000000000 + + E7A30F042420028600000000 + + isa + PBXBuildFile + fileRef + 1DD70E292420028600000000 + E7A30F0484A59C1D00000000 isa @@ -440,6 +538,13 @@ fileRef 1DD70E2984A59C1D00000000 + E7A30F04AD66967300000000 + + isa + PBXBuildFile + fileRef + 1DD70E29AD66967300000000 + E7A30F04F40A586F00000000 isa @@ -458,8 +563,13 @@ E7A30F04D65BA68200000000 E7A30F04119CDA0700000000 E7A30F0436DE2CF900000000 + E7A30F04D6F14E1000000000 E7A30F042395015100000000 + E7A30F04CD296A8300000000 + E7A30F043594DCC000000000 + E7A30F042420028600000000 E7A30F0484A59C1D00000000 + E7A30F04AD66967300000000 E7A30F04F40A586F00000000 name diff --git a/submodules/CountrySelectionUI/BUCK b/submodules/CountrySelectionUI/BUCK index e6bfe1447c..d42c4ed704 100644 --- a/submodules/CountrySelectionUI/BUCK +++ b/submodules/CountrySelectionUI/BUCK @@ -12,6 +12,7 @@ static_library( "//submodules/TelegramPresentationData:TelegramPresentationData", "//submodules/TelegramStringFormatting:TelegramStringFormatting", "//submodules/SearchBarNode:SearchBarNode", + "//submodules/AppBundle:AppBundle", ], frameworks = [ "$SDKROOT/System/Library/Frameworks/Foundation.framework", diff --git a/submodules/CountrySelectionUI/CountrySelectionUI.xcodeproj/project.pbxproj b/submodules/CountrySelectionUI/CountrySelectionUI.xcodeproj/project.pbxproj index 71be39fccc..62d7106f07 100644 --- a/submodules/CountrySelectionUI/CountrySelectionUI.xcodeproj/project.pbxproj +++ b/submodules/CountrySelectionUI/CountrySelectionUI.xcodeproj/project.pbxproj @@ -124,17 +124,6 @@ sourceTree SOURCE_ROOT - 1DD70E291289FAA500000000 - - isa - PBXFileReference - name - FrameworkBundle.swift - path - Sources/FrameworkBundle.swift - sourceTree - SOURCE_ROOT - B401C979EAB5339800000000 isa @@ -148,7 +137,6 @@ 1DD70E29B790435100000000 1DD70E2973938DF300000000 1DD70E29373FDCD900000000 - 1DD70E291289FAA500000000 B401C979C262DBCA00000000 @@ -422,13 +410,6 @@ fileRef 1DD70E29373FDCD900000000 - E7A30F041289FAA500000000 - - isa - PBXBuildFile - fileRef - 1DD70E291289FAA500000000 - 1870857F0000000000000000 isa @@ -438,7 +419,6 @@ E7A30F04B790435100000000 E7A30F0473938DF300000000 E7A30F04373FDCD900000000 - E7A30F041289FAA500000000 E7A30F04FF334B1F00000000 diff --git a/submodules/CountrySelectionUI/CountrySelectionUI_Xcode.xcodeproj/project.pbxproj b/submodules/CountrySelectionUI/CountrySelectionUI_Xcode.xcodeproj/project.pbxproj index 93a5689204..d52f585933 100644 --- a/submodules/CountrySelectionUI/CountrySelectionUI_Xcode.xcodeproj/project.pbxproj +++ b/submodules/CountrySelectionUI/CountrySelectionUI_Xcode.xcodeproj/project.pbxproj @@ -16,9 +16,9 @@ D0C9C2AB2300A1A500FAB518 /* AsyncDisplayKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C2AA2300A1A500FAB518 /* AsyncDisplayKit.framework */; }; D0C9C2AD2300A1AC00FAB518 /* TelegramPresentationData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C2AC2300A1AC00FAB518 /* TelegramPresentationData.framework */; }; D0C9C2AF2300A1B100FAB518 /* TelegramStringFormatting.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C2AE2300A1B100FAB518 /* TelegramStringFormatting.framework */; }; - D0C9C2B52300A1F300FAB518 /* FrameworkBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C2B42300A1F300FAB518 /* FrameworkBundle.swift */; }; D0C9C2D02300A2D400FAB518 /* SearchBarNode.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C2CF2300A2D400FAB518 /* SearchBarNode.framework */; }; D0C9C4472300DE5100FAB518 /* CountryList.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C4462300DE5100FAB518 /* CountryList.swift */; }; + D0EFF2462319804800CF5164 /* AppBundle.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0EFF2452319804800CF5164 /* AppBundle.framework */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -33,9 +33,9 @@ D0C9C2AA2300A1A500FAB518 /* AsyncDisplayKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AsyncDisplayKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D0C9C2AC2300A1AC00FAB518 /* TelegramPresentationData.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramPresentationData.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D0C9C2AE2300A1B100FAB518 /* TelegramStringFormatting.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramStringFormatting.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - D0C9C2B42300A1F300FAB518 /* FrameworkBundle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FrameworkBundle.swift; sourceTree = ""; }; D0C9C2CF2300A2D400FAB518 /* SearchBarNode.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = SearchBarNode.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D0C9C4462300DE5100FAB518 /* CountryList.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CountryList.swift; sourceTree = ""; }; + D0EFF2452319804800CF5164 /* AppBundle.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AppBundle.framework; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -43,6 +43,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + D0EFF2462319804800CF5164 /* AppBundle.framework in Frameworks */, D0C9C2D02300A2D400FAB518 /* SearchBarNode.framework in Frameworks */, D0C9C2AF2300A1B100FAB518 /* TelegramStringFormatting.framework in Frameworks */, D0C9C2AD2300A1AC00FAB518 /* TelegramPresentationData.framework in Frameworks */, @@ -80,7 +81,6 @@ D0C9C4462300DE5100FAB518 /* CountryList.swift */, D0C9C29F2300A18B00FAB518 /* AuthorizationSequenceCountrySelectionController.swift */, D0C9C2A02300A18C00FAB518 /* AuthorizationSequenceCountrySelectionControllerNode.swift */, - D0C9C2B42300A1F300FAB518 /* FrameworkBundle.swift */, D0C9C2932300A11000FAB518 /* CountrySelectionUI.h */, ); path = Sources; @@ -89,6 +89,7 @@ D0C9C2A32300A19900FAB518 /* Frameworks */ = { isa = PBXGroup; children = ( + D0EFF2452319804800CF5164 /* AppBundle.framework */, D0C9C2CF2300A2D400FAB518 /* SearchBarNode.framework */, D0C9C2AE2300A1B100FAB518 /* TelegramStringFormatting.framework */, D0C9C2AC2300A1AC00FAB518 /* TelegramPresentationData.framework */, @@ -183,7 +184,6 @@ D0C9C4472300DE5100FAB518 /* CountryList.swift in Sources */, D0C9C2A22300A18C00FAB518 /* AuthorizationSequenceCountrySelectionControllerNode.swift in Sources */, D0C9C2A12300A18C00FAB518 /* AuthorizationSequenceCountrySelectionController.swift in Sources */, - D0C9C2B52300A1F300FAB518 /* FrameworkBundle.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/submodules/CountrySelectionUI/Sources/AuthorizationSequenceCountrySelectionController.swift b/submodules/CountrySelectionUI/Sources/AuthorizationSequenceCountrySelectionController.swift index 977e8b9507..634d08f6c1 100644 --- a/submodules/CountrySelectionUI/Sources/AuthorizationSequenceCountrySelectionController.swift +++ b/submodules/CountrySelectionUI/Sources/AuthorizationSequenceCountrySelectionController.swift @@ -5,9 +5,10 @@ import AsyncDisplayKit import TelegramPresentationData import TelegramStringFormatting import SearchBarNode +import AppBundle private func loadCountryCodes() -> [(String, Int)] { - guard let filePath = frameworkBundle.path(forResource: "PhoneCountries", ofType: "txt") else { + guard let filePath = getAppBundle().path(forResource: "PhoneCountries", ofType: "txt") else { return [] } guard let stringData = try? Data(contentsOf: URL(fileURLWithPath: filePath)) else { diff --git a/submodules/CountrySelectionUI/Sources/AuthorizationSequenceCountrySelectionControllerNode.swift b/submodules/CountrySelectionUI/Sources/AuthorizationSequenceCountrySelectionControllerNode.swift index 4f005b50a3..02e1095c8d 100644 --- a/submodules/CountrySelectionUI/Sources/AuthorizationSequenceCountrySelectionControllerNode.swift +++ b/submodules/CountrySelectionUI/Sources/AuthorizationSequenceCountrySelectionControllerNode.swift @@ -5,9 +5,10 @@ import Display import TelegramCore import TelegramPresentationData import TelegramStringFormatting +import AppBundle private func loadCountryCodes() -> [(String, Int)] { - guard let filePath = frameworkBundle.path(forResource: "PhoneCountries", ofType: "txt") else { + guard let filePath = getAppBundle().path(forResource: "PhoneCountries", ofType: "txt") else { return [] } guard let stringData = try? Data(contentsOf: URL(fileURLWithPath: filePath)) else { diff --git a/submodules/CountrySelectionUI/Sources/FrameworkBundle.swift b/submodules/CountrySelectionUI/Sources/FrameworkBundle.swift deleted file mode 100644 index 8ca13d7d92..0000000000 --- a/submodules/CountrySelectionUI/Sources/FrameworkBundle.swift +++ /dev/null @@ -1,13 +0,0 @@ -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) - } -} diff --git a/submodules/Display/BUCK b/submodules/Display/BUCK index fd888b797c..5a427b027d 100644 --- a/submodules/Display/BUCK +++ b/submodules/Display/BUCK @@ -15,6 +15,7 @@ framework( deps = [ "//submodules/AsyncDisplayKit:AsyncDisplayKit#dynamic", "//submodules/SSignalKit/SwiftSignalKit:SwiftSignalKit#dynamic", + "//submodules/AppBundle:AppBundle", ], frameworks = [ "$SDKROOT/System/Library/Frameworks/Foundation.framework", diff --git a/submodules/Display/Display/NavigationBackButtonNode.swift b/submodules/Display/Display/NavigationBackButtonNode.swift index 5b82bbab24..2aa17d953e 100644 --- a/submodules/Display/Display/NavigationBackButtonNode.swift +++ b/submodules/Display/Display/NavigationBackButtonNode.swift @@ -1,5 +1,6 @@ import UIKit import AsyncDisplayKit +import AppBundle public class NavigationBackButtonNode: ASControlNode { private func fontForCurrentState() -> UIFont { @@ -60,7 +61,7 @@ public class NavigationBackButtonNode: ASControlNode { self.label.displaysAsynchronously = false self.addSubnode(self.arrow) - let arrowImage = UIImage(named: "NavigationBackArrowLight", in: Bundle(for: NavigationBackButtonNode.self), compatibleWith: nil)?.precomposed() + let arrowImage = UIImage(named: "NavigationBackArrowLight", in: getAppBundle(), compatibleWith: nil)?.precomposed() self.arrow.contents = arrowImage?.cgImage self.arrow.frame = CGRect(origin: CGPoint(), size: arrowImage?.size ?? CGSize()) diff --git a/submodules/Display/Display/NavigationTransitionCoordinator.swift b/submodules/Display/Display/NavigationTransitionCoordinator.swift index 6254c7defe..7ebe56c0fa 100644 --- a/submodules/Display/Display/NavigationTransitionCoordinator.swift +++ b/submodules/Display/Display/NavigationTransitionCoordinator.swift @@ -1,4 +1,5 @@ import UIKit +import AppBundle enum NavigationTransition { case Push @@ -8,7 +9,7 @@ enum NavigationTransition { private let shadowWidth: CGFloat = 16.0 private func generateShadow() -> UIImage? { - return UIImage(named: "NavigationShadow", in: Bundle(for: NavigationBackButtonNode.self), compatibleWith: nil)?.precomposed().resizableImage(withCapInsets: UIEdgeInsets(), resizingMode: .tile) + return UIImage(named: "NavigationShadow", in: getAppBundle(), compatibleWith: nil)?.precomposed().resizableImage(withCapInsets: UIEdgeInsets(), resizingMode: .tile) } private let shadowImage = generateShadow() diff --git a/submodules/Display/Display_Xcode.xcodeproj/project.pbxproj b/submodules/Display/Display_Xcode.xcodeproj/project.pbxproj index b4241bb3e0..3525be327c 100644 --- a/submodules/Display/Display_Xcode.xcodeproj/project.pbxproj +++ b/submodules/Display/Display_Xcode.xcodeproj/project.pbxproj @@ -55,7 +55,6 @@ D03AA4EB202E02B10056C405 /* ListViewReorderingGestureRecognizer.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03AA4EA202E02B10056C405 /* ListViewReorderingGestureRecognizer.swift */; }; D03AA5162030C5F80056C405 /* ListViewTempItemNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03AA5152030C5F80056C405 /* ListViewTempItemNode.swift */; }; D03B0E701D6331FB00955575 /* StatusBarHost.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03B0E6F1D6331FB00955575 /* StatusBarHost.swift */; }; - D03E7DE41C96A90100C07816 /* NavigationShadow@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D03E7DE31C96A90100C07816 /* NavigationShadow@2x.png */; }; D03E7DE61C96B96E00C07816 /* NavigationBarTransitionContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E7DE51C96B96E00C07816 /* NavigationBarTransitionContainer.swift */; }; D03E7DF81C96C5F200C07816 /* NSWeakReference.h in Headers */ = {isa = PBXBuildFile; fileRef = D03E7DF61C96C5F200C07816 /* NSWeakReference.h */; settings = {ATTRIBUTES = (Public, ); }; }; D03E7DF91C96C5F200C07816 /* NSWeakReference.m in Sources */ = {isa = PBXBuildFile; fileRef = D03E7DF71C96C5F200C07816 /* NSWeakReference.m */; }; @@ -101,7 +100,6 @@ D05CC3201B695A9600E235A3 /* NavigationControllerProxy.h in Headers */ = {isa = PBXBuildFile; fileRef = D05CC3141B695A9600E235A3 /* NavigationControllerProxy.h */; settings = {ATTRIBUTES = (Public, ); }; }; D05CC3241B695B0700E235A3 /* NavigationBarProxy.h in Headers */ = {isa = PBXBuildFile; fileRef = D05CC3221B695B0700E235A3 /* NavigationBarProxy.h */; settings = {ATTRIBUTES = (Public, ); }; }; D05CC3251B695B0700E235A3 /* NavigationBarProxy.m in Sources */ = {isa = PBXBuildFile; fileRef = D05CC3231B695B0700E235A3 /* NavigationBarProxy.m */; }; - D05CC3271B69725400E235A3 /* NavigationBackArrowLight@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D05CC3261B69725400E235A3 /* NavigationBackArrowLight@2x.png */; }; D05CC3291B69750D00E235A3 /* InteractiveTransitionGestureRecognizer.swift in Sources */ = {isa = PBXBuildFile; fileRef = D05CC3281B69750D00E235A3 /* InteractiveTransitionGestureRecognizer.swift */; }; D060185F22F35E7400796784 /* ShakeAnimation.swift in Sources */ = {isa = PBXBuildFile; fileRef = D060185E22F35E7400796784 /* ShakeAnimation.swift */; }; D06B76DB20592A97006E9EEA /* LayoutSizes.swift in Sources */ = {isa = PBXBuildFile; fileRef = D06B76DA20592A97006E9EEA /* LayoutSizes.swift */; }; @@ -231,7 +229,6 @@ D03AA4EA202E02B10056C405 /* ListViewReorderingGestureRecognizer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ListViewReorderingGestureRecognizer.swift; sourceTree = ""; }; D03AA5152030C5F80056C405 /* ListViewTempItemNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ListViewTempItemNode.swift; sourceTree = ""; }; D03B0E6F1D6331FB00955575 /* StatusBarHost.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StatusBarHost.swift; sourceTree = ""; }; - D03E7DE31C96A90100C07816 /* NavigationShadow@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "NavigationShadow@2x.png"; sourceTree = ""; }; D03E7DE51C96B96E00C07816 /* NavigationBarTransitionContainer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NavigationBarTransitionContainer.swift; sourceTree = ""; }; D03E7DF61C96C5F200C07816 /* NSWeakReference.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSWeakReference.h; sourceTree = ""; }; D03E7DF71C96C5F200C07816 /* NSWeakReference.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSWeakReference.m; sourceTree = ""; }; @@ -280,7 +277,6 @@ D05CC3141B695A9600E235A3 /* NavigationControllerProxy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NavigationControllerProxy.h; sourceTree = ""; }; D05CC3221B695B0700E235A3 /* NavigationBarProxy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NavigationBarProxy.h; sourceTree = ""; }; D05CC3231B695B0700E235A3 /* NavigationBarProxy.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NavigationBarProxy.m; sourceTree = ""; }; - D05CC3261B69725400E235A3 /* NavigationBackArrowLight@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "NavigationBackArrowLight@2x.png"; sourceTree = ""; }; D05CC3281B69750D00E235A3 /* InteractiveTransitionGestureRecognizer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = InteractiveTransitionGestureRecognizer.swift; sourceTree = ""; }; D060185E22F35E7400796784 /* ShakeAnimation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ShakeAnimation.swift; sourceTree = ""; }; D06B76DA20592A97006E9EEA /* LayoutSizes.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LayoutSizes.swift; sourceTree = ""; }; @@ -575,8 +571,6 @@ D05CC2E11B69534100E235A3 /* Supporting Files */ = { isa = PBXGroup; children = ( - D03E7DE31C96A90100C07816 /* NavigationShadow@2x.png */, - D05CC3261B69725400E235A3 /* NavigationBackArrowLight@2x.png */, D05CC2661B69316F00E235A3 /* Display.h */, D05CC2681B69316F00E235A3 /* Info.plist */, ); @@ -852,8 +846,6 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - D03E7DE41C96A90100C07816 /* NavigationShadow@2x.png in Resources */, - D05CC3271B69725400E235A3 /* NavigationBackArrowLight@2x.png in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/submodules/Emoji/Sources/EmojiUtils.swift b/submodules/Emoji/Sources/EmojiUtils.swift index a28f276a3e..bcabb02c29 100644 --- a/submodules/Emoji/Sources/EmojiUtils.swift +++ b/submodules/Emoji/Sources/EmojiUtils.swift @@ -56,7 +56,6 @@ public extension String { } var isSingleEmoji: Bool { - print(Bundle(for: FrameworkClass.self).bundlePath) return self.emojis.count == 1 && self.containsEmoji } diff --git a/submodules/GalleryUI/BUCK b/submodules/GalleryUI/BUCK index 819a42cee6..f32a3d2406 100644 --- a/submodules/GalleryUI/BUCK +++ b/submodules/GalleryUI/BUCK @@ -21,6 +21,7 @@ static_library( "//submodules/ShareController:ShareController", "//submodules/SwipeToDismissGesture:SwipeToDismissGesture", "//submodules/CheckNode:CheckNode", + "//submodules/AppBundle:AppBundle", ], frameworks = [ "$SDKROOT/System/Library/Frameworks/Foundation.framework", diff --git a/submodules/GalleryUI/GalleryUI.xcodeproj/project.pbxproj b/submodules/GalleryUI/GalleryUI.xcodeproj/project.pbxproj index d871224da1..4892500c80 100644 --- a/submodules/GalleryUI/GalleryUI.xcodeproj/project.pbxproj +++ b/submodules/GalleryUI/GalleryUI.xcodeproj/project.pbxproj @@ -815,17 +815,6 @@ sourceTree SOURCE_ROOT - 1DD70E291289FAA500000000 - - isa - PBXFileReference - name - FrameworkBundle.swift - path - Sources/FrameworkBundle.swift - sourceTree - SOURCE_ROOT - 1DD70E29FA38189300000000 isa @@ -1015,7 +1004,6 @@ B401C979043AF7A000000000 1DD70E2978DEFDFE00000000 1DD70E2975D0EAEC00000000 - 1DD70E291289FAA500000000 1DD70E29FA38189300000000 1DD70E29C7EAF23500000000 1DD70E29E35656AE00000000 @@ -1139,13 +1127,6 @@ fileRef 1DD70E2975D0EAEC00000000 - E7A30F041289FAA500000000 - - isa - PBXBuildFile - fileRef - 1DD70E291289FAA500000000 - E7A30F04FA38189300000000 isa @@ -1271,7 +1252,6 @@ E7A30F049E33F93A00000000 E7A30F0478DEFDFE00000000 E7A30F0475D0EAEC00000000 - E7A30F041289FAA500000000 E7A30F04FA38189300000000 E7A30F04C7EAF23500000000 E7A30F04E35656AE00000000 diff --git a/submodules/GalleryUI/GalleryUI_Xcode.xcodeproj/project.pbxproj b/submodules/GalleryUI/GalleryUI_Xcode.xcodeproj/project.pbxproj index ceb0f97aa4..4da522f0f3 100644 --- a/submodules/GalleryUI/GalleryUI_Xcode.xcodeproj/project.pbxproj +++ b/submodules/GalleryUI/GalleryUI_Xcode.xcodeproj/project.pbxproj @@ -19,7 +19,6 @@ D0C9C3102300A58500FAB518 /* GalleryFooterContentNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C3032300A58500FAB518 /* GalleryFooterContentNode.swift */; }; D0C9C3112300A58500FAB518 /* GalleryVideoDecoration.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C3042300A58500FAB518 /* GalleryVideoDecoration.swift */; }; D0C9C3122300A58500FAB518 /* GalleryThumbnailContainerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C3052300A58500FAB518 /* GalleryThumbnailContainerNode.swift */; }; - D0C9C3132300A58500FAB518 /* FrameworkBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C3062300A58500FAB518 /* FrameworkBundle.swift */; }; D0C9C3142300A58500FAB518 /* GalleryPagerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C3072300A58500FAB518 /* GalleryPagerNode.swift */; }; D0C9C31B2300A9B900FAB518 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C31A2300A9B900FAB518 /* Foundation.framework */; }; D0C9C31D2300A9BD00FAB518 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C31C2300A9BD00FAB518 /* UIKit.framework */; }; @@ -49,6 +48,7 @@ D0C9C43B2300D6DC00FAB518 /* OpenInExternalAppUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C43A2300D6DC00FAB518 /* OpenInExternalAppUI.framework */; }; D0C9C4412300D91200FAB518 /* GalleryItemTransitionNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C4402300D91200FAB518 /* GalleryItemTransitionNode.swift */; }; D0C9C91723020E6100FAB518 /* ShareController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C91623020E6100FAB518 /* ShareController.framework */; }; + D0EFF262231981A300CF5164 /* AppBundle.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0EFF261231981A300CF5164 /* AppBundle.framework */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -66,7 +66,6 @@ D0C9C3032300A58500FAB518 /* GalleryFooterContentNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GalleryFooterContentNode.swift; sourceTree = ""; }; D0C9C3042300A58500FAB518 /* GalleryVideoDecoration.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GalleryVideoDecoration.swift; sourceTree = ""; }; D0C9C3052300A58500FAB518 /* GalleryThumbnailContainerNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GalleryThumbnailContainerNode.swift; sourceTree = ""; }; - D0C9C3062300A58500FAB518 /* FrameworkBundle.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FrameworkBundle.swift; sourceTree = ""; }; D0C9C3072300A58500FAB518 /* GalleryPagerNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GalleryPagerNode.swift; sourceTree = ""; }; D0C9C31A2300A9B900FAB518 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; D0C9C31C2300A9BD00FAB518 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; @@ -96,6 +95,7 @@ D0C9C43A2300D6DC00FAB518 /* OpenInExternalAppUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = OpenInExternalAppUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D0C9C4402300D91200FAB518 /* GalleryItemTransitionNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GalleryItemTransitionNode.swift; sourceTree = ""; }; D0C9C91623020E6100FAB518 /* ShareController.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ShareController.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D0EFF261231981A300CF5164 /* AppBundle.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AppBundle.framework; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -103,6 +103,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + D0EFF262231981A300CF5164 /* AppBundle.framework in Frameworks */, D0C9C91723020E6100FAB518 /* ShareController.framework in Frameworks */, D0C9C43B2300D6DC00FAB518 /* OpenInExternalAppUI.framework in Frameworks */, D0C9C3FD2300D59B00FAB518 /* ScreenCaptureDetection.framework in Frameworks */, @@ -165,7 +166,6 @@ D0C9C3072300A58500FAB518 /* GalleryPagerNode.swift */, D0C9C3052300A58500FAB518 /* GalleryThumbnailContainerNode.swift */, D0C9C3042300A58500FAB518 /* GalleryVideoDecoration.swift */, - D0C9C3062300A58500FAB518 /* FrameworkBundle.swift */, D0C9C2F32300A51400FAB518 /* GalleryUI.h */, D0C9C4402300D91200FAB518 /* GalleryItemTransitionNode.swift */, ); @@ -175,6 +175,7 @@ D0C9C3192300A9B900FAB518 /* Frameworks */ = { isa = PBXGroup; children = ( + D0EFF261231981A300CF5164 /* AppBundle.framework */, D0C9C91623020E6100FAB518 /* ShareController.framework */, D0C9C43A2300D6DC00FAB518 /* OpenInExternalAppUI.framework */, D0C9C3FC2300D59B00FAB518 /* ScreenCaptureDetection.framework */, @@ -306,7 +307,6 @@ D0C9C34D2300AA8A00FAB518 /* ChatAnimationGalleryItem.swift in Sources */, D0C9C3442300AA8A00FAB518 /* ChatImageGalleryItem.swift in Sources */, D0C9C34F2300AA8A00FAB518 /* ChatDocumentGalleryItem.swift in Sources */, - D0C9C3132300A58500FAB518 /* FrameworkBundle.swift in Sources */, D0C9C3082300A58500FAB518 /* GalleryItem.swift in Sources */, D0C9C3112300A58500FAB518 /* GalleryVideoDecoration.swift in Sources */, D0C9C34A2300AA8A00FAB518 /* ChatItemGalleryFooterContentNode.swift in Sources */, diff --git a/submodules/GalleryUI/Sources/ChatItemGalleryFooterContentNode.swift b/submodules/GalleryUI/Sources/ChatItemGalleryFooterContentNode.swift index 1d26d5c47d..8f6e8ae671 100644 --- a/submodules/GalleryUI/Sources/ChatItemGalleryFooterContentNode.swift +++ b/submodules/GalleryUI/Sources/ChatItemGalleryFooterContentNode.swift @@ -13,6 +13,7 @@ import AccountContext import RadialStatusNode import ShareController import OpenInExternalAppUI +import AppBundle private let deleteImage = generateTintedImage(image: UIImage(bundleImageName: "Chat/Input/Accessory Panels/MessageSelectionTrash"), color: .white) private let actionImage = generateTintedImage(image: UIImage(bundleImageName: "Chat/Input/Accessory Panels/MessageSelectionAction"), color: .white) diff --git a/submodules/GalleryUI/Sources/FrameworkBundle.swift b/submodules/GalleryUI/Sources/FrameworkBundle.swift deleted file mode 100644 index 3f7a202833..0000000000 --- a/submodules/GalleryUI/Sources/FrameworkBundle.swift +++ /dev/null @@ -1,14 +0,0 @@ -import Foundation -import UIKit - -private class FrameworkBundleClass: NSObject { -} - -let frameworkBundle: Bundle = Bundle(for: FrameworkBundleClass.self) -private let screenScaleFactor = Int(UIScreen.main.scale) - -extension UIImage { - convenience init?(bundleImageName: String) { - self.init(named: bundleImageName, in: frameworkBundle, compatibleWith: nil) - } -} diff --git a/submodules/GalleryUI/Sources/Items/ChatAnimationGalleryItem.swift b/submodules/GalleryUI/Sources/Items/ChatAnimationGalleryItem.swift index f179391722..6e8741fb8a 100644 --- a/submodules/GalleryUI/Sources/Items/ChatAnimationGalleryItem.swift +++ b/submodules/GalleryUI/Sources/Items/ChatAnimationGalleryItem.swift @@ -11,6 +11,7 @@ import AnimationUI import AccountContext import RadialStatusNode import StickerResources +import AppBundle class ChatAnimationGalleryItem: GalleryItem { let context: AccountContext diff --git a/submodules/GalleryUI/Sources/Items/UniversalVideoGalleryItem.swift b/submodules/GalleryUI/Sources/Items/UniversalVideoGalleryItem.swift index 0f65cb8abe..7d7914b285 100644 --- a/submodules/GalleryUI/Sources/Items/UniversalVideoGalleryItem.swift +++ b/submodules/GalleryUI/Sources/Items/UniversalVideoGalleryItem.swift @@ -10,6 +10,7 @@ import UniversalMediaPlayer import AccountContext import RadialStatusNode import TelegramUniversalVideoContent +import AppBundle public enum UniversalVideoGalleryItemContentInfo { case message(Message) diff --git a/submodules/GalleryUI/Sources/SecretMediaPreviewController.swift b/submodules/GalleryUI/Sources/SecretMediaPreviewController.swift index 9244ec960a..c2b2d7c83d 100644 --- a/submodules/GalleryUI/Sources/SecretMediaPreviewController.swift +++ b/submodules/GalleryUI/Sources/SecretMediaPreviewController.swift @@ -9,6 +9,7 @@ import TelegramPresentationData import AccountContext import RadialStatusNode import ScreenCaptureDetection +import AppBundle private func galleryMediaForMedia(media: Media) -> Media? { if let media = media as? TelegramMediaImage { diff --git a/submodules/InstantPageUI/BUCK b/submodules/InstantPageUI/BUCK index b5a18477a9..72be45275a 100644 --- a/submodules/InstantPageUI/BUCK +++ b/submodules/InstantPageUI/BUCK @@ -18,6 +18,7 @@ static_library( "//submodules/LiveLocationPositionNode:LiveLocationPositionNode", "//submodules/MosaicLayout:MosaicLayout", "//submodules/LocationUI:LocationUI", + "//submodules/AppBundle:AppBundle", ], frameworks = [ "$SDKROOT/System/Library/Frameworks/Foundation.framework", diff --git a/submodules/InstantPageUI/InstantPageUI.xcodeproj/project.pbxproj b/submodules/InstantPageUI/InstantPageUI.xcodeproj/project.pbxproj index 7d7dfbc3a0..93b606aff1 100644 --- a/submodules/InstantPageUI/InstantPageUI.xcodeproj/project.pbxproj +++ b/submodules/InstantPageUI/InstantPageUI.xcodeproj/project.pbxproj @@ -803,17 +803,6 @@ explicitFileType text.script.python - 1DD70E291289FAA500000000 - - isa - PBXFileReference - name - FrameworkBundle.swift - path - Sources/FrameworkBundle.swift - sourceTree - SOURCE_ROOT - 1DD70E293EE5EB7000000000 isa @@ -1407,7 +1396,6 @@ ]]> children - 1DD70E291289FAA500000000 1DD70E293EE5EB7000000000 1DD70E29025B7C1D00000000 1DD70E298CDC0AFE00000000 @@ -1519,13 +1507,6 @@ B401C979C806358400000000 - E7A30F041289FAA500000000 - - isa - PBXBuildFile - fileRef - 1DD70E291289FAA500000000 - E7A30F043EE5EB7000000000 isa @@ -1903,7 +1884,6 @@ PBXSourcesBuildPhase files - E7A30F041289FAA500000000 E7A30F043EE5EB7000000000 E7A30F04025B7C1D00000000 E7A30F048CDC0AFE00000000 diff --git a/submodules/InstantPageUI/InstantPageUI_Xcode.xcodeproj/project.pbxproj b/submodules/InstantPageUI/InstantPageUI_Xcode.xcodeproj/project.pbxproj index 8f903cc37b..de9739cefd 100644 --- a/submodules/InstantPageUI/InstantPageUI_Xcode.xcodeproj/project.pbxproj +++ b/submodules/InstantPageUI/InstantPageUI_Xcode.xcodeproj/project.pbxproj @@ -71,11 +71,11 @@ D0C9C5F72301D04A00FAB518 /* GalleryUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C5F62301D04A00FAB518 /* GalleryUI.framework */; }; D0C9C5F92301D04F00FAB518 /* AsyncDisplayKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C5F82301D04F00FAB518 /* AsyncDisplayKit.framework */; }; D0C9C5FB2301D05400FAB518 /* Display.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C5FA2301D05400FAB518 /* Display.framework */; }; - D0C9C5FD2301D0A900FAB518 /* FrameworkBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C5FC2301D0A900FAB518 /* FrameworkBundle.swift */; }; D0C9C6272301D21600FAB518 /* MusicAlbumArtResources.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C6262301D21600FAB518 /* MusicAlbumArtResources.framework */; }; D0C9C6572301D30C00FAB518 /* LiveLocationPositionNode.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C6562301D30C00FAB518 /* LiveLocationPositionNode.framework */; }; D0C9C67D2301D45A00FAB518 /* MosaicLayout.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C67C2301D45A00FAB518 /* MosaicLayout.framework */; }; D0C9C6BB2301D92000FAB518 /* LocationUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C6BA2301D92000FAB518 /* LocationUI.framework */; }; + D0EFF266231981C400CF5164 /* AppBundle.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0EFF265231981C400CF5164 /* AppBundle.framework */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -145,11 +145,11 @@ D0C9C5F62301D04A00FAB518 /* GalleryUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = GalleryUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D0C9C5F82301D04F00FAB518 /* AsyncDisplayKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AsyncDisplayKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D0C9C5FA2301D05400FAB518 /* Display.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Display.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - D0C9C5FC2301D0A900FAB518 /* FrameworkBundle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FrameworkBundle.swift; sourceTree = ""; }; D0C9C6262301D21600FAB518 /* MusicAlbumArtResources.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = MusicAlbumArtResources.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D0C9C6562301D30C00FAB518 /* LiveLocationPositionNode.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = LiveLocationPositionNode.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D0C9C67C2301D45A00FAB518 /* MosaicLayout.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = MosaicLayout.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D0C9C6BA2301D92000FAB518 /* LocationUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = LocationUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D0EFF265231981C400CF5164 /* AppBundle.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AppBundle.framework; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -157,6 +157,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + D0EFF266231981C400CF5164 /* AppBundle.framework in Frameworks */, D0C9C6BB2301D92000FAB518 /* LocationUI.framework in Frameworks */, D0C9C67D2301D45A00FAB518 /* MosaicLayout.framework in Frameworks */, D0C9C6572301D30C00FAB518 /* LiveLocationPositionNode.framework in Frameworks */, @@ -251,7 +252,6 @@ D0C9C5AC2301D04200FAB518 /* InstantPageTileNode.swift */, D0C9C5952301D03F00FAB518 /* InstantPageWebEmbedItem.swift */, D0C9C5AA2301D04200FAB518 /* InstantPageWebEmbedNode.swift */, - D0C9C5FC2301D0A900FAB518 /* FrameworkBundle.swift */, D0C9C56D2301CFA600FAB518 /* InstantPageUI.h */, ); path = Sources; @@ -260,6 +260,7 @@ D0C9C5792301D01200FAB518 /* Frameworks */ = { isa = PBXGroup; children = ( + D0EFF265231981C400CF5164 /* AppBundle.framework */, D0C9C6BA2301D92000FAB518 /* LocationUI.framework */, D0C9C67C2301D45A00FAB518 /* MosaicLayout.framework */, D0C9C6562301D30C00FAB518 /* LiveLocationPositionNode.framework */, @@ -377,7 +378,6 @@ D0C9C5EF2301D04700FAB518 /* InstantPageLayout.swift in Sources */, D0C9C5F02301D04700FAB518 /* InstantPageItem.swift in Sources */, D0C9C5DB2301D04700FAB518 /* InstantPageSlideshowItemNode.swift in Sources */, - D0C9C5FD2301D0A900FAB518 /* FrameworkBundle.swift in Sources */, D0C9C5E92301D04700FAB518 /* InstantPageTheme.swift in Sources */, D0C9C5D52301D04700FAB518 /* InstantPageSettingsNode.swift in Sources */, D0C9C5CF2301D04700FAB518 /* InstantPageSettingsFontFamilyItemNode.swift in Sources */, diff --git a/submodules/InstantPageUI/Sources/FrameworkBundle.swift b/submodules/InstantPageUI/Sources/FrameworkBundle.swift deleted file mode 100644 index 8ca13d7d92..0000000000 --- a/submodules/InstantPageUI/Sources/FrameworkBundle.swift +++ /dev/null @@ -1,13 +0,0 @@ -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) - } -} diff --git a/submodules/InstantPageUI/Sources/InstantPageGalleryFooterContentNode.swift b/submodules/InstantPageUI/Sources/InstantPageGalleryFooterContentNode.swift index 6d4bd12264..77199ced8c 100644 --- a/submodules/InstantPageUI/Sources/InstantPageGalleryFooterContentNode.swift +++ b/submodules/InstantPageUI/Sources/InstantPageGalleryFooterContentNode.swift @@ -11,6 +11,7 @@ import TextFormat import AccountContext import ShareController import GalleryUI +import AppBundle private let actionImage = generateTintedImage(image: UIImage(bundleImageName: "Chat/Input/Accessory Panels/MessageSelectionAction"), color: .white) diff --git a/submodules/InstantPageUI/Sources/InstantPageImageNode.swift b/submodules/InstantPageUI/Sources/InstantPageImageNode.swift index bcdae5eb38..4dd56cc27d 100644 --- a/submodules/InstantPageUI/Sources/InstantPageImageNode.swift +++ b/submodules/InstantPageUI/Sources/InstantPageImageNode.swift @@ -11,6 +11,7 @@ import RadialStatusNode import PhotoResources import MediaResources import LiveLocationPositionNode +import AppBundle private struct FetchControls { let fetch: (Bool) -> Void diff --git a/submodules/InstantPageUI/Sources/InstantPageNavigationBar.swift b/submodules/InstantPageUI/Sources/InstantPageNavigationBar.swift index 886077b6bf..5fea9c5f6f 100644 --- a/submodules/InstantPageUI/Sources/InstantPageNavigationBar.swift +++ b/submodules/InstantPageUI/Sources/InstantPageNavigationBar.swift @@ -3,6 +3,7 @@ import UIKit import Display import AsyncDisplayKit import TelegramPresentationData +import AppBundle private let backArrowImage = NavigationBarTheme.generateBackArrowImage(color: .white) private let moreImage = generateTintedImage(image: UIImage(bundleImageName: "Instant View/MoreIcon"), color: .white) diff --git a/submodules/InstantPageUI/Sources/InstantPagePeerReferenceNode.swift b/submodules/InstantPageUI/Sources/InstantPagePeerReferenceNode.swift index ac1cb8cf7f..f95e305c22 100644 --- a/submodules/InstantPageUI/Sources/InstantPagePeerReferenceNode.swift +++ b/submodules/InstantPageUI/Sources/InstantPagePeerReferenceNode.swift @@ -8,6 +8,7 @@ import Display import TelegramPresentationData import ActivityIndicator import AccountContext +import AppBundle private enum JoinState: Equatable { case none diff --git a/submodules/InstantPageUI/Sources/InstantPageSettingsBacklightItemNode.swift b/submodules/InstantPageUI/Sources/InstantPageSettingsBacklightItemNode.swift index eb66c3839e..f8b2423583 100644 --- a/submodules/InstantPageUI/Sources/InstantPageSettingsBacklightItemNode.swift +++ b/submodules/InstantPageUI/Sources/InstantPageSettingsBacklightItemNode.swift @@ -2,7 +2,7 @@ import Foundation import UIKit import AsyncDisplayKit import Display - +import AppBundle import LegacyComponents private func generateKnobImage() -> UIImage? { diff --git a/submodules/InstantPageUI/Sources/InstantPageSettingsFontSizeItemNode.swift b/submodules/InstantPageUI/Sources/InstantPageSettingsFontSizeItemNode.swift index 1469b1824f..188e08161c 100644 --- a/submodules/InstantPageUI/Sources/InstantPageSettingsFontSizeItemNode.swift +++ b/submodules/InstantPageUI/Sources/InstantPageSettingsFontSizeItemNode.swift @@ -2,7 +2,7 @@ import Foundation import UIKit import AsyncDisplayKit import Display - +import AppBundle import LegacyComponents private func generateKnobImage() -> UIImage? { diff --git a/submodules/InstantPageUI/Sources/InstantPageSettingsNode.swift b/submodules/InstantPageUI/Sources/InstantPageSettingsNode.swift index 8e2df91941..b269e96484 100644 --- a/submodules/InstantPageUI/Sources/InstantPageSettingsNode.swift +++ b/submodules/InstantPageUI/Sources/InstantPageSettingsNode.swift @@ -6,6 +6,7 @@ import Postbox import SwiftSignalKit import TelegramPresentationData import TelegramUIPreferences +import AppBundle private func generateArrowImage(color: UIColor) -> UIImage? { let smallRadius: CGFloat = 5.0 diff --git a/submodules/ItemListAddressItem/BUCK b/submodules/ItemListAddressItem/BUCK index 0056fd9caa..f999b68ec5 100644 --- a/submodules/ItemListAddressItem/BUCK +++ b/submodules/ItemListAddressItem/BUCK @@ -13,6 +13,7 @@ static_library( "//submodules/ItemListUI:ItemListUI", "//submodules/AccountContext:AccountContext", "//submodules/TextFormat:TextFormat", + "//submodules/AppBundle:AppBundle", ], frameworks = [ "$SDKROOT/System/Library/Frameworks/Foundation.framework", diff --git a/submodules/ItemListAddressItem/ItemListAddressItem.xcodeproj/project.pbxproj b/submodules/ItemListAddressItem/ItemListAddressItem.xcodeproj/project.pbxproj index 7c7eaae676..455bc5af13 100644 --- a/submodules/ItemListAddressItem/ItemListAddressItem.xcodeproj/project.pbxproj +++ b/submodules/ItemListAddressItem/ItemListAddressItem.xcodeproj/project.pbxproj @@ -467,17 +467,6 @@ explicitFileType text.script.python - 1DD70E291289FAA500000000 - - isa - PBXFileReference - name - FrameworkBundle.swift - path - Sources/FrameworkBundle.swift - sourceTree - SOURCE_ROOT - 1DD70E290A17F01B00000000 isa @@ -499,7 +488,6 @@ ]]> children - 1DD70E291289FAA500000000 1DD70E290A17F01B00000000 @@ -559,13 +547,6 @@ B401C979C806358400000000 - E7A30F041289FAA500000000 - - isa - PBXBuildFile - fileRef - 1DD70E291289FAA500000000 - E7A30F040A17F01B00000000 isa @@ -579,7 +560,6 @@ PBXSourcesBuildPhase files - E7A30F041289FAA500000000 E7A30F040A17F01B00000000 diff --git a/submodules/ItemListAddressItem/ItemListAddressItem_Xcode.xcodeproj/project.pbxproj b/submodules/ItemListAddressItem/ItemListAddressItem_Xcode.xcodeproj/project.pbxproj index 01adfaf460..6e33937ac5 100644 --- a/submodules/ItemListAddressItem/ItemListAddressItem_Xcode.xcodeproj/project.pbxproj +++ b/submodules/ItemListAddressItem/ItemListAddressItem_Xcode.xcodeproj/project.pbxproj @@ -18,7 +18,7 @@ D03E42DE230571DD0049C28B /* ItemListUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E42DD230571DD0049C28B /* ItemListUI.framework */; }; D03E42E0230571E20049C28B /* AccountContext.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E42DF230571E20049C28B /* AccountContext.framework */; }; D03E42E2230571E60049C28B /* TextFormat.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E42E1230571E60049C28B /* TextFormat.framework */; }; - D03E42E8230572780049C28B /* FrameworkBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E42E7230572780049C28B /* FrameworkBundle.swift */; }; + D0EFF2562319811E00CF5164 /* AppBundle.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0EFF2552319811E00CF5164 /* AppBundle.framework */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -35,7 +35,7 @@ D03E42DD230571DD0049C28B /* ItemListUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ItemListUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D03E42DF230571E20049C28B /* AccountContext.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AccountContext.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D03E42E1230571E60049C28B /* TextFormat.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TextFormat.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - D03E42E7230572780049C28B /* FrameworkBundle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FrameworkBundle.swift; sourceTree = ""; }; + D0EFF2552319811E00CF5164 /* AppBundle.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AppBundle.framework; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -43,6 +43,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + D0EFF2562319811E00CF5164 /* AppBundle.framework in Frameworks */, D03E42E2230571E60049C28B /* TextFormat.framework in Frameworks */, D03E42E0230571E20049C28B /* AccountContext.framework in Frameworks */, D03E42DE230571DD0049C28B /* ItemListUI.framework in Frameworks */, @@ -80,7 +81,6 @@ isa = PBXGroup; children = ( D03E42CA230571700049C28B /* ItemListAddressItem.swift */, - D03E42E7230572780049C28B /* FrameworkBundle.swift */, D03E42C2230571620049C28B /* ItemListAddressItem.h */, ); path = Sources; @@ -89,6 +89,7 @@ D03E42D0230571C20049C28B /* Frameworks */ = { isa = PBXGroup; children = ( + D0EFF2552319811E00CF5164 /* AppBundle.framework */, D03E42E1230571E60049C28B /* TextFormat.framework */, D03E42DF230571E20049C28B /* AccountContext.framework */, D03E42DD230571DD0049C28B /* ItemListUI.framework */, @@ -182,7 +183,6 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - D03E42E8230572780049C28B /* FrameworkBundle.swift in Sources */, D03E42CB230571710049C28B /* ItemListAddressItem.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; diff --git a/submodules/ItemListAddressItem/Sources/FrameworkBundle.swift b/submodules/ItemListAddressItem/Sources/FrameworkBundle.swift deleted file mode 100644 index 8ca13d7d92..0000000000 --- a/submodules/ItemListAddressItem/Sources/FrameworkBundle.swift +++ /dev/null @@ -1,13 +0,0 @@ -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) - } -} diff --git a/submodules/ItemListAddressItem/Sources/ItemListAddressItem.swift b/submodules/ItemListAddressItem/Sources/ItemListAddressItem.swift index 60893ed4a7..ee53aee5e8 100644 --- a/submodules/ItemListAddressItem/Sources/ItemListAddressItem.swift +++ b/submodules/ItemListAddressItem/Sources/ItemListAddressItem.swift @@ -7,6 +7,7 @@ import TelegramPresentationData import ItemListUI import AccountContext import TextFormat +import AppBundle public final class ItemListAddressItem: ListViewItem, ItemListItem { let theme: PresentationTheme diff --git a/submodules/ItemListAvatarAndNameInfoItem/BUCK b/submodules/ItemListAvatarAndNameInfoItem/BUCK index f8a2bf277b..76b3319fce 100644 --- a/submodules/ItemListAvatarAndNameInfoItem/BUCK +++ b/submodules/ItemListAvatarAndNameInfoItem/BUCK @@ -17,6 +17,7 @@ static_library( "//submodules/AvatarNode:AvatarNode", "//submodules/ActivityIndicator:ActivityIndicator", "//submodules/ItemListUI:ItemListUI", + "//submodules/AppBundle:AppBundle", ], frameworks = [ "$SDKROOT/System/Library/Frameworks/Foundation.framework", diff --git a/submodules/ItemListAvatarAndNameInfoItem/ItemListAvatarAndNameInfoItem.xcodeproj/project.pbxproj b/submodules/ItemListAvatarAndNameInfoItem/ItemListAvatarAndNameInfoItem.xcodeproj/project.pbxproj index dfdb7e1c3a..cc0befc30a 100644 --- a/submodules/ItemListAvatarAndNameInfoItem/ItemListAvatarAndNameInfoItem.xcodeproj/project.pbxproj +++ b/submodules/ItemListAvatarAndNameInfoItem/ItemListAvatarAndNameInfoItem.xcodeproj/project.pbxproj @@ -495,17 +495,6 @@ explicitFileType text.script.python - 1DD70E291289FAA500000000 - - isa - PBXFileReference - name - FrameworkBundle.swift - path - Sources/FrameworkBundle.swift - sourceTree - SOURCE_ROOT - 1DD70E29E343141000000000 isa @@ -527,7 +516,6 @@ ]]> children - 1DD70E291289FAA500000000 1DD70E29E343141000000000 @@ -587,13 +575,6 @@ B401C979C806358400000000 - E7A30F041289FAA500000000 - - isa - PBXBuildFile - fileRef - 1DD70E291289FAA500000000 - E7A30F04E343141000000000 isa @@ -607,7 +588,6 @@ PBXSourcesBuildPhase files - E7A30F041289FAA500000000 E7A30F04E343141000000000 diff --git a/submodules/ItemListAvatarAndNameInfoItem/ItemListAvatarAndNameInfoItem_Xcode.xcodeproj/project.pbxproj b/submodules/ItemListAvatarAndNameInfoItem/ItemListAvatarAndNameInfoItem_Xcode.xcodeproj/project.pbxproj index de2f1b650f..9be8a12ade 100644 --- a/submodules/ItemListAvatarAndNameInfoItem/ItemListAvatarAndNameInfoItem_Xcode.xcodeproj/project.pbxproj +++ b/submodules/ItemListAvatarAndNameInfoItem/ItemListAvatarAndNameInfoItem_Xcode.xcodeproj/project.pbxproj @@ -22,7 +22,7 @@ D03E3DCC2304AF6D0049C28B /* AvatarNode.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3DCB2304AF6D0049C28B /* AvatarNode.framework */; }; D03E3DCE2304AF720049C28B /* TelegramStringFormatting.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3DCD2304AF720049C28B /* TelegramStringFormatting.framework */; }; D03E3DD02304AF760049C28B /* PeerPresenceStatusManager.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3DCF2304AF760049C28B /* PeerPresenceStatusManager.framework */; }; - D03E3DD42304AFE80049C28B /* FrameworkBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E3DD32304AFE80049C28B /* FrameworkBundle.swift */; }; + D0EFF2542319810F00CF5164 /* AppBundle.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0EFF2532319810F00CF5164 /* AppBundle.framework */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -43,7 +43,7 @@ D03E3DCB2304AF6D0049C28B /* AvatarNode.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AvatarNode.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D03E3DCD2304AF720049C28B /* TelegramStringFormatting.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramStringFormatting.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D03E3DCF2304AF760049C28B /* PeerPresenceStatusManager.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = PeerPresenceStatusManager.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - D03E3DD32304AFE80049C28B /* FrameworkBundle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FrameworkBundle.swift; sourceTree = ""; }; + D0EFF2532319810F00CF5164 /* AppBundle.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AppBundle.framework; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -51,6 +51,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + D0EFF2542319810F00CF5164 /* AppBundle.framework in Frameworks */, D03E3DD02304AF760049C28B /* PeerPresenceStatusManager.framework in Frameworks */, D03E3DCE2304AF720049C28B /* TelegramStringFormatting.framework in Frameworks */, D03E3DCC2304AF6D0049C28B /* AvatarNode.framework in Frameworks */, @@ -93,7 +94,6 @@ children = ( D03E3DB42304AF2E0049C28B /* ItemListAvatarAndNameItem.swift */, D03E3DA82304AEDD0049C28B /* ItemListAvatarAndNameInfoItem.h */, - D03E3DD32304AFE80049C28B /* FrameworkBundle.swift */, ); path = Sources; sourceTree = ""; @@ -101,6 +101,7 @@ D03E3DB62304AF3A0049C28B /* Frameworks */ = { isa = PBXGroup; children = ( + D0EFF2532319810F00CF5164 /* AppBundle.framework */, D03E3DCF2304AF760049C28B /* PeerPresenceStatusManager.framework */, D03E3DCD2304AF720049C28B /* TelegramStringFormatting.framework */, D03E3DCB2304AF6D0049C28B /* AvatarNode.framework */, @@ -198,7 +199,6 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - D03E3DD42304AFE80049C28B /* FrameworkBundle.swift in Sources */, D03E3DB52304AF2E0049C28B /* ItemListAvatarAndNameItem.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; diff --git a/submodules/ItemListAvatarAndNameInfoItem/Sources/FrameworkBundle.swift b/submodules/ItemListAvatarAndNameInfoItem/Sources/FrameworkBundle.swift deleted file mode 100644 index 8ca13d7d92..0000000000 --- a/submodules/ItemListAvatarAndNameInfoItem/Sources/FrameworkBundle.swift +++ /dev/null @@ -1,13 +0,0 @@ -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) - } -} diff --git a/submodules/ItemListAvatarAndNameInfoItem/Sources/ItemListAvatarAndNameItem.swift b/submodules/ItemListAvatarAndNameInfoItem/Sources/ItemListAvatarAndNameItem.swift index b730cb973e..735bd17b34 100644 --- a/submodules/ItemListAvatarAndNameInfoItem/Sources/ItemListAvatarAndNameItem.swift +++ b/submodules/ItemListAvatarAndNameInfoItem/Sources/ItemListAvatarAndNameItem.swift @@ -11,6 +11,7 @@ import ActivityIndicator import AvatarNode import TelegramStringFormatting import PeerPresenceStatusManager +import AppBundle private let updatingAvatarOverlayImage = generateFilledCircleImage(diameter: 66.0, color: UIColor(white: 0.0, alpha: 0.4), backgroundColor: nil) diff --git a/submodules/LegacyComponents/BUCK b/submodules/LegacyComponents/BUCK index 39bd8cc190..d07844597c 100644 --- a/submodules/LegacyComponents/BUCK +++ b/submodules/LegacyComponents/BUCK @@ -5,6 +5,7 @@ apple_resource( dirs = [ "LegacyComponents/Resources/LegacyComponentsResources.bundle", ], + visibility = ["PUBLIC"], ) static_library( @@ -357,8 +358,8 @@ static_library( "LegacyComponents/TGMediaAssetsUtils.h", ], deps = [ - ":LegacyComponentsResources", "//submodules/SSignalKit/SSignalKit:SSignalKit", + "//submodules/AppBundle:AppBundle", ], frameworks = [ "$SDKROOT/System/Library/Frameworks/Foundation.framework", diff --git a/submodules/LegacyComponents/LegacyComponents/LegacyComponentsInternal.m b/submodules/LegacyComponents/LegacyComponents/LegacyComponentsInternal.m index bcc18ecbb0..cbed53166d 100644 --- a/submodules/LegacyComponents/LegacyComponents/LegacyComponentsInternal.m +++ b/submodules/LegacyComponents/LegacyComponents/LegacyComponentsInternal.m @@ -6,6 +6,8 @@ #import +#import + TGLocalization *legacyEffectiveLocalization() { return [[LegacyComponentsGlobals provider] effectiveLocalization]; } @@ -127,11 +129,11 @@ void TGDispatchAfter(double delay, dispatch_queue_t queue, dispatch_block_t bloc dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)((delay) * NSEC_PER_SEC)), queue, block); } -static NSBundle *frameworkBundle() { +static NSBundle *resourcesBundle() { static NSBundle *currentBundle = nil; static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ - currentBundle = [NSBundle bundleForClass:[LegacyComponentsGlobals class]]; + currentBundle = getAppBundle(); NSString *updatedPath = [[currentBundle bundlePath] stringByAppendingPathComponent:@"LegacyComponentsResources.bundle"]; currentBundle = [NSBundle bundleWithPath:updatedPath]; }); @@ -142,7 +144,7 @@ UIImage *TGComponentsImageNamed(NSString *name) { if (iosMajorVersion() < 8) return [UIImage imageNamed:[NSString stringWithFormat:@"LegacyComponentsResources.bundle/%@", name]]; - UIImage *image = [UIImage imageNamed:name inBundle:frameworkBundle() compatibleWithTraitCollection:nil]; + UIImage *image = [UIImage imageNamed:name inBundle:resourcesBundle() compatibleWithTraitCollection:nil]; if (image == nil) { assert(true); } @@ -150,5 +152,5 @@ UIImage *TGComponentsImageNamed(NSString *name) { } NSString *TGComponentsPathForResource(NSString *name, NSString *type) { - return [frameworkBundle() pathForResource:name ofType:type]; + return [resourcesBundle() pathForResource:name ofType:type]; } diff --git a/submodules/LegacyComponents/LegacyComponents_Xcode.xcodeproj/project.pbxproj b/submodules/LegacyComponents/LegacyComponents_Xcode.xcodeproj/project.pbxproj index b38c09fa04..1486613e64 100644 --- a/submodules/LegacyComponents/LegacyComponents_Xcode.xcodeproj/project.pbxproj +++ b/submodules/LegacyComponents/LegacyComponents_Xcode.xcodeproj/project.pbxproj @@ -1154,6 +1154,7 @@ D0BFAE5420AB33F900793CF2 /* TGIconSwitchView.h in Headers */ = {isa = PBXBuildFile; fileRef = D0BFAE5220AB33F800793CF2 /* TGIconSwitchView.h */; settings = {ATTRIBUTES = (Public, ); }; }; D0BFAE5720AB34AB00793CF2 /* TGAnimationUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = D0BFAE5520AB34AA00793CF2 /* TGAnimationUtils.h */; settings = {ATTRIBUTES = (Public, ); }; }; D0BFAE5820AB34AB00793CF2 /* TGAnimationUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = D0BFAE5620AB34AA00793CF2 /* TGAnimationUtils.m */; }; + D0EFF24023197FD500CF5164 /* AppBundle.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0EFF23F23197FD500CF5164 /* AppBundle.framework */; }; D0F7C9C41F55DA49005B255A /* TGVideoCameraMovieRecorder.h in Headers */ = {isa = PBXBuildFile; fileRef = D0F7C9C21F55DA49005B255A /* TGVideoCameraMovieRecorder.h */; settings = {ATTRIBUTES = (Public, ); }; }; D0F7C9C51F55DA49005B255A /* TGVideoCameraMovieRecorder.m in Sources */ = {isa = PBXBuildFile; fileRef = D0F7C9C31F55DA49005B255A /* TGVideoCameraMovieRecorder.m */; }; D0F7C9C81F55DA83005B255A /* TGVideoCameraGLRenderer.h in Headers */ = {isa = PBXBuildFile; fileRef = D0F7C9C61F55DA83005B255A /* TGVideoCameraGLRenderer.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -2318,6 +2319,7 @@ D0BFAE5520AB34AA00793CF2 /* TGAnimationUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TGAnimationUtils.h; sourceTree = ""; }; D0BFAE5620AB34AA00793CF2 /* TGAnimationUtils.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TGAnimationUtils.m; sourceTree = ""; }; D0EB42021F3142F400838FE6 /* LegacyComponentsResources.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; name = LegacyComponentsResources.bundle; path = Resources/LegacyComponentsResources.bundle; sourceTree = ""; }; + D0EFF23F23197FD500CF5164 /* AppBundle.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AppBundle.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D0F7C9C21F55DA49005B255A /* TGVideoCameraMovieRecorder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TGVideoCameraMovieRecorder.h; sourceTree = ""; }; D0F7C9C31F55DA49005B255A /* TGVideoCameraMovieRecorder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TGVideoCameraMovieRecorder.m; sourceTree = ""; }; D0F7C9C61F55DA83005B255A /* TGVideoCameraGLRenderer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TGVideoCameraGLRenderer.h; sourceTree = ""; }; @@ -2336,6 +2338,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + D0EFF24023197FD500CF5164 /* AppBundle.framework in Frameworks */, 09750F761F2FA816001B9886 /* SSignalKit.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; @@ -2782,6 +2785,7 @@ D01779051F20E0DE0044446D /* Frameworks */ = { isa = PBXGroup; children = ( + D0EFF23F23197FD500CF5164 /* AppBundle.framework */, 09750F741F2FA5E8001B9886 /* SSignalKit.framework */, ); name = Frameworks; diff --git a/submodules/LegacyMediaPickerUI/LegacyMediaPickerUI.xcodeproj/project.pbxproj b/submodules/LegacyMediaPickerUI/LegacyMediaPickerUI.xcodeproj/project.pbxproj index 6a29249e90..66a572b39a 100644 --- a/submodules/LegacyMediaPickerUI/LegacyMediaPickerUI.xcodeproj/project.pbxproj +++ b/submodules/LegacyMediaPickerUI/LegacyMediaPickerUI.xcodeproj/project.pbxproj @@ -447,6 +447,17 @@ sourceTree SOURCE_ROOT + 1DD70E291209BB0400000000 + + isa + PBXFileReference + name + LegacyICloudFilePicker.swift + path + Sources/LegacyICloudFilePicker.swift + sourceTree + SOURCE_ROOT + 1DD70E293C87ECC500000000 isa @@ -529,6 +540,7 @@ 1DD70E29B883E7D000000000 1DD70E29A10DBC7500000000 + 1DD70E291209BB0400000000 1DD70E293C87ECC500000000 1DD70E29F44A23ED00000000 1DD70E29F44A23F200000000 @@ -607,6 +619,13 @@ fileRef 1DD70E29A10DBC7500000000 + E7A30F041209BB0400000000 + + isa + PBXBuildFile + fileRef + 1DD70E291209BB0400000000 + E7A30F043C87ECC500000000 isa @@ -650,6 +669,7 @@ E7A30F04B883E7D000000000 E7A30F04A10DBC7500000000 + E7A30F041209BB0400000000 E7A30F043C87ECC500000000 E7A30F04F44A23F200000000 E7A30F047E812ACF00000000 diff --git a/submodules/LiveLocationPositionNode/BUCK b/submodules/LiveLocationPositionNode/BUCK index 847f6998fe..c7239974f1 100644 --- a/submodules/LiveLocationPositionNode/BUCK +++ b/submodules/LiveLocationPositionNode/BUCK @@ -12,6 +12,7 @@ static_library( "//submodules/TelegramCore:TelegramCore#shared", "//submodules/TelegramPresentationData:TelegramPresentationData", "//submodules/AvatarNode:AvatarNode", + "//submodules/AppBundle:AppBundle", ], frameworks = [ "$SDKROOT/System/Library/Frameworks/Foundation.framework", diff --git a/submodules/LiveLocationPositionNode/LiveLocationPositionNode.xcodeproj/project.pbxproj b/submodules/LiveLocationPositionNode/LiveLocationPositionNode.xcodeproj/project.pbxproj index 723bd209fd..5802d65b29 100644 --- a/submodules/LiveLocationPositionNode/LiveLocationPositionNode.xcodeproj/project.pbxproj +++ b/submodules/LiveLocationPositionNode/LiveLocationPositionNode.xcodeproj/project.pbxproj @@ -282,17 +282,6 @@ sourceTree SOURCE_ROOT - 1DD70E291289FAA500000000 - - isa - PBXFileReference - name - FrameworkBundle.swift - path - Sources/FrameworkBundle.swift - sourceTree - SOURCE_ROOT - B401C979EAB5339800000000 isa @@ -304,7 +293,6 @@ children 1DD70E29500D752000000000 - 1DD70E291289FAA500000000 B401C97946DD664C00000000 @@ -370,13 +358,6 @@ fileRef 1DD70E29500D752000000000 - E7A30F041289FAA500000000 - - isa - PBXBuildFile - fileRef - 1DD70E291289FAA500000000 - 1870857F0000000000000000 isa @@ -384,7 +365,6 @@ files E7A30F04500D752000000000 - E7A30F041289FAA500000000 E7A30F04FF334B1F00000000 diff --git a/submodules/LiveLocationPositionNode/LiveLocationPositionNode_Xcode.xcodeproj/project.pbxproj b/submodules/LiveLocationPositionNode/LiveLocationPositionNode_Xcode.xcodeproj/project.pbxproj index 8d20c24eda..1302f57523 100644 --- a/submodules/LiveLocationPositionNode/LiveLocationPositionNode_Xcode.xcodeproj/project.pbxproj +++ b/submodules/LiveLocationPositionNode/LiveLocationPositionNode_Xcode.xcodeproj/project.pbxproj @@ -17,7 +17,7 @@ D0C9C6512301D2DA00FAB518 /* Postbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C6502301D2DA00FAB518 /* Postbox.framework */; }; D0C9C6532301D2E000FAB518 /* TelegramPresentationData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C6522301D2E000FAB518 /* TelegramPresentationData.framework */; }; D0C9C6552301D2E400FAB518 /* AvatarNode.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C6542301D2E400FAB518 /* AvatarNode.framework */; }; - D0C9C65B2301D34000FAB518 /* FrameworkBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C65A2301D34000FAB518 /* FrameworkBundle.swift */; }; + D0EFF24E231980D200CF5164 /* AppBundle.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0EFF24D231980D200CF5164 /* AppBundle.framework */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -33,7 +33,7 @@ D0C9C6502301D2DA00FAB518 /* Postbox.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Postbox.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D0C9C6522301D2E000FAB518 /* TelegramPresentationData.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramPresentationData.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D0C9C6542301D2E400FAB518 /* AvatarNode.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AvatarNode.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - D0C9C65A2301D34000FAB518 /* FrameworkBundle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FrameworkBundle.swift; sourceTree = ""; }; + D0EFF24D231980D200CF5164 /* AppBundle.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AppBundle.framework; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -41,6 +41,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + D0EFF24E231980D200CF5164 /* AppBundle.framework in Frameworks */, D0C9C6552301D2E400FAB518 /* AvatarNode.framework in Frameworks */, D0C9C6532301D2E000FAB518 /* TelegramPresentationData.framework in Frameworks */, D0C9C6512301D2DA00FAB518 /* Postbox.framework in Frameworks */, @@ -77,7 +78,6 @@ isa = PBXGroup; children = ( D0C9C6432301D2BC00FAB518 /* ChatMessageLiveLocationPositionNode.swift */, - D0C9C65A2301D34000FAB518 /* FrameworkBundle.swift */, D0C9C6372301D25D00FAB518 /* LiveLocationPositionNode.h */, ); path = Sources; @@ -86,6 +86,7 @@ D0C9C6452301D2C700FAB518 /* Frameworks */ = { isa = PBXGroup; children = ( + D0EFF24D231980D200CF5164 /* AppBundle.framework */, D0C9C6542301D2E400FAB518 /* AvatarNode.framework */, D0C9C6522301D2E000FAB518 /* TelegramPresentationData.framework */, D0C9C6502301D2DA00FAB518 /* Postbox.framework */, @@ -178,7 +179,6 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - D0C9C65B2301D34000FAB518 /* FrameworkBundle.swift in Sources */, D0C9C6442301D2BC00FAB518 /* ChatMessageLiveLocationPositionNode.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; diff --git a/submodules/LiveLocationPositionNode/Sources/ChatMessageLiveLocationPositionNode.swift b/submodules/LiveLocationPositionNode/Sources/ChatMessageLiveLocationPositionNode.swift index 7d49098b6f..7da5cabc9e 100644 --- a/submodules/LiveLocationPositionNode/Sources/ChatMessageLiveLocationPositionNode.swift +++ b/submodules/LiveLocationPositionNode/Sources/ChatMessageLiveLocationPositionNode.swift @@ -6,6 +6,7 @@ import TelegramCore import Postbox import TelegramPresentationData import AvatarNode +import AppBundle private let avatarFont = UIFont(name: ".SFCompactRounded-Semibold", size: 24.0)! private let avatarBackgroundImage = UIImage(bundleImageName: "Chat/Message/LocationPin")?.precomposed() diff --git a/submodules/LiveLocationPositionNode/Sources/FrameworkBundle.swift b/submodules/LiveLocationPositionNode/Sources/FrameworkBundle.swift deleted file mode 100644 index 8ca13d7d92..0000000000 --- a/submodules/LiveLocationPositionNode/Sources/FrameworkBundle.swift +++ /dev/null @@ -1,13 +0,0 @@ -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) - } -} diff --git a/submodules/LocationUI/BUCK b/submodules/LocationUI/BUCK index 613577ee01..b97fa70d56 100644 --- a/submodules/LocationUI/BUCK +++ b/submodules/LocationUI/BUCK @@ -17,6 +17,7 @@ static_library( "//submodules/AccountContext:AccountContext", "//submodules/OpenInExternalAppUI:OpenInExternalAppUI", "//submodules/LegacyUI:LegacyUI", + "//submodules/AppBundle:AppBundle", ], frameworks = [ "$SDKROOT/System/Library/Frameworks/Foundation.framework", diff --git a/submodules/LocationUI/LocationUI.xcodeproj/project.pbxproj b/submodules/LocationUI/LocationUI.xcodeproj/project.pbxproj index ac70663b1f..aebaf8253f 100644 --- a/submodules/LocationUI/LocationUI.xcodeproj/project.pbxproj +++ b/submodules/LocationUI/LocationUI.xcodeproj/project.pbxproj @@ -663,17 +663,6 @@ explicitFileType text.script.python - 1DD70E291289FAA500000000 - - isa - PBXFileReference - name - FrameworkBundle.swift - path - Sources/FrameworkBundle.swift - sourceTree - SOURCE_ROOT - 1DD70E29E1165C1F00000000 isa @@ -706,7 +695,6 @@ ]]> children - 1DD70E291289FAA500000000 1DD70E29E1165C1F00000000 1DD70E29FAFE229100000000 @@ -767,13 +755,6 @@ B401C979C806358400000000 - E7A30F041289FAA500000000 - - isa - PBXBuildFile - fileRef - 1DD70E291289FAA500000000 - E7A30F04E1165C1F00000000 isa @@ -794,7 +775,6 @@ PBXSourcesBuildPhase files - E7A30F041289FAA500000000 E7A30F04E1165C1F00000000 E7A30F04FAFE229100000000 diff --git a/submodules/LocationUI/LocationUI_Xcode.xcodeproj/project.pbxproj b/submodules/LocationUI/LocationUI_Xcode.xcodeproj/project.pbxproj index 8536397cd7..fb3f7e6dbb 100644 --- a/submodules/LocationUI/LocationUI_Xcode.xcodeproj/project.pbxproj +++ b/submodules/LocationUI/LocationUI_Xcode.xcodeproj/project.pbxproj @@ -22,8 +22,8 @@ D0C9C6B12301D8E500FAB518 /* ShareController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C6B02301D8E500FAB518 /* ShareController.framework */; }; D0C9C6B32301D8EB00FAB518 /* AccountContext.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C6B22301D8EB00FAB518 /* AccountContext.framework */; }; D0C9C6B52301D8F000FAB518 /* OpenInExternalAppUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C6B42301D8F000FAB518 /* OpenInExternalAppUI.framework */; }; - D0C9C6B72301D8FE00FAB518 /* FrameworkBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C6B62301D8FE00FAB518 /* FrameworkBundle.swift */; }; D0C9C6BD2301D94000FAB518 /* CoreLocation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C6BC2301D94000FAB518 /* CoreLocation.framework */; }; + D0EFF268231981E400CF5164 /* AppBundle.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0EFF267231981E400CF5164 /* AppBundle.framework */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -44,8 +44,8 @@ D0C9C6B02301D8E500FAB518 /* ShareController.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ShareController.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D0C9C6B22301D8EB00FAB518 /* AccountContext.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AccountContext.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D0C9C6B42301D8F000FAB518 /* OpenInExternalAppUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = OpenInExternalAppUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - D0C9C6B62301D8FE00FAB518 /* FrameworkBundle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FrameworkBundle.swift; sourceTree = ""; }; D0C9C6BC2301D94000FAB518 /* CoreLocation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreLocation.framework; path = System/Library/Frameworks/CoreLocation.framework; sourceTree = SDKROOT; }; + D0EFF267231981E400CF5164 /* AppBundle.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AppBundle.framework; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -53,6 +53,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + D0EFF268231981E400CF5164 /* AppBundle.framework in Frameworks */, D0C9C6BD2301D94000FAB518 /* CoreLocation.framework in Frameworks */, D0C9C6B52301D8F000FAB518 /* OpenInExternalAppUI.framework in Frameworks */, D0C9C6B32301D8EB00FAB518 /* AccountContext.framework in Frameworks */, @@ -95,7 +96,6 @@ children = ( D0C9C6A92301D8CB00FAB518 /* LegacyLocationController.swift */, D0C9C6A82301D8CB00FAB518 /* LegacyLocationPicker.swift */, - D0C9C6B62301D8FE00FAB518 /* FrameworkBundle.swift */, D0C9C68D2301D83500FAB518 /* LocationUI.h */, ); path = Sources; @@ -104,6 +104,7 @@ D0C9C6992301D89600FAB518 /* Frameworks */ = { isa = PBXGroup; children = ( + D0EFF267231981E400CF5164 /* AppBundle.framework */, D0C9C6BC2301D94000FAB518 /* CoreLocation.framework */, D0C9C6B42301D8F000FAB518 /* OpenInExternalAppUI.framework */, D0C9C6B22301D8EB00FAB518 /* AccountContext.framework */, @@ -203,7 +204,6 @@ files = ( D0C9C6AA2301D8CB00FAB518 /* LegacyLocationPicker.swift in Sources */, D0C9C6AB2301D8CB00FAB518 /* LegacyLocationController.swift in Sources */, - D0C9C6B72301D8FE00FAB518 /* FrameworkBundle.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/submodules/LocationUI/Sources/FrameworkBundle.swift b/submodules/LocationUI/Sources/FrameworkBundle.swift deleted file mode 100644 index 8ca13d7d92..0000000000 --- a/submodules/LocationUI/Sources/FrameworkBundle.swift +++ /dev/null @@ -1,13 +0,0 @@ -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) - } -} diff --git a/submodules/LocationUI/Sources/LegacyLocationController.swift b/submodules/LocationUI/Sources/LegacyLocationController.swift index 32a18df551..4c8903b1bb 100644 --- a/submodules/LocationUI/Sources/LegacyLocationController.swift +++ b/submodules/LocationUI/Sources/LegacyLocationController.swift @@ -9,6 +9,7 @@ import AccountContext import ShareController import LegacyUI import OpenInExternalAppUI +import AppBundle private func generateClearIcon(color: UIColor) -> UIImage? { return generateTintedImage(image: UIImage(bundleImageName: "Components/Search Bar/Clear"), color: color) diff --git a/submodules/LocationUI/Sources/LegacyLocationPicker.swift b/submodules/LocationUI/Sources/LegacyLocationPicker.swift index 7e277d6947..bdb9575906 100644 --- a/submodules/LocationUI/Sources/LegacyLocationPicker.swift +++ b/submodules/LocationUI/Sources/LegacyLocationPicker.swift @@ -8,6 +8,7 @@ import SwiftSignalKit import TelegramPresentationData import AccountContext import LegacyUI +import AppBundle private func generateClearIcon(color: UIColor) -> UIImage? { return generateTintedImage(image: UIImage(bundleImageName: "Components/Search Bar/Clear"), color: color) diff --git a/submodules/MessageReactionListUI/BUCK b/submodules/MessageReactionListUI/BUCK index 0bc259397c..ac7c739abf 100644 --- a/submodules/MessageReactionListUI/BUCK +++ b/submodules/MessageReactionListUI/BUCK @@ -6,16 +6,15 @@ static_library( "Sources/**/*.swift", ]), deps = [ + "//submodules/SSignalKit/SwiftSignalKit:SwiftSignalKit#shared", "//submodules/TelegramCore:TelegramCore#shared", "//submodules/Postbox:Postbox#shared", - "//submodules/SSignalKit/SwiftSignalKit:SwiftSignalKit#shared", + "//submodules/AsyncDisplayKit:AsyncDisplayKit#shared", "//submodules/Display:Display#shared", - "//submodules/LocalMediaResources:LocalMediaResources", - "//submodules/TinyThumbnail:TinyThumbnail", - "//submodules/ImageBlur:ImageBlur", - "//submodules/MediaResources:MediaResources", - "//submodules/PhotoResources:PhotoResources", - "//submodules/PersistentStringHash:PersistentStringHash", + "//submodules/TelegramPresentationData:TelegramPresentationData", + "//submodules/AccountContext:AccountContext", + "//submodules/MergeLists:MergeLists", + "//submodules/ItemListPeerItem:ItemListPeerItem", ], frameworks = [ "$SDKROOT/System/Library/Frameworks/Foundation.framework", diff --git a/submodules/MessageReactionListUI/MessageReactionListUI.xcodeproj/project.pbxproj b/submodules/MessageReactionListUI/MessageReactionListUI.xcodeproj/project.pbxproj new file mode 100644 index 0000000000..f7fe13fca9 --- /dev/null +++ b/submodules/MessageReactionListUI/MessageReactionListUI.xcodeproj/project.pbxproj @@ -0,0 +1,1015 @@ + + + + + archiveVersion + 1 + classes + + + objectVersion + 46 + objects + + 1DD70E29ADE5417300000000 + + isa + PBXFileReference + name + MessageReactionListUI-Debug.xcconfig + path + ../../buck-out/gen/submodules/MessageReactionListUI/MessageReactionListUI-Debug.xcconfig + sourceTree + SOURCE_ROOT + explicitFileType + text.xcconfig + + 1DD70E29AEBD481D00000000 + + isa + PBXFileReference + name + MessageReactionListUI-Profile.xcconfig + path + ../../buck-out/gen/submodules/MessageReactionListUI/MessageReactionListUI-Profile.xcconfig + sourceTree + SOURCE_ROOT + explicitFileType + text.xcconfig + + 1DD70E292253F37F00000000 + + isa + PBXFileReference + name + MessageReactionListUI-Release.xcconfig + path + ../../buck-out/gen/submodules/MessageReactionListUI/MessageReactionListUI-Release.xcconfig + sourceTree + SOURCE_ROOT + explicitFileType + text.xcconfig + + B401C9792F7F325000000000 + + isa + PBXGroup + name + Buck (Do Not Modify) + sourceTree + ]]> + children + + 1DD70E29ADE5417300000000 + 1DD70E29AEBD481D00000000 + 1DD70E292253F37F00000000 + + + B401C979B781F65D00000000 + + isa + PBXGroup + name + Configurations + sourceTree + ]]> + children + + B401C9792F7F325000000000 + + + 1DD70E299D2580DA00000000 + + isa + PBXFileReference + name + libAccountContext.a + path + libAccountContext.a + sourceTree + BUILT_PRODUCTS_DIR + explicitFileType + archive.ar + + 1DD70E29BF0846EE00000000 + + isa + PBXFileReference + name + libActivityIndicator.a + path + libActivityIndicator.a + sourceTree + BUILT_PRODUCTS_DIR + explicitFileType + archive.ar + + 1DD70E292420028600000000 + + isa + PBXFileReference + name + libAnimationUI.a + path + libAnimationUI.a + sourceTree + BUILT_PRODUCTS_DIR + explicitFileType + archive.ar + + 1DD70E29A54A195300000000 + + isa + PBXFileReference + name + libAvatarNode.a + path + libAvatarNode.a + sourceTree + BUILT_PRODUCTS_DIR + explicitFileType + archive.ar + + 1DD70E2997B4D6D800000000 + + isa + PBXFileReference + name + libCheckNode.a + path + libCheckNode.a + sourceTree + BUILT_PRODUCTS_DIR + explicitFileType + archive.ar + + 1DD70E295915423000000000 + + isa + PBXFileReference + name + libDeviceLocationManager.a + path + libDeviceLocationManager.a + sourceTree + BUILT_PRODUCTS_DIR + explicitFileType + archive.ar + + 1DD70E29FF334B1F00000000 + + isa + PBXFileReference + name + libDisplay.dylib + path + libDisplay.dylib + sourceTree + BUILT_PRODUCTS_DIR + explicitFileType + compiled.mach-o.dylib + + 1DD70E29D6F14E1000000000 + + isa + PBXFileReference + name + libImageBlur.a + path + libImageBlur.a + sourceTree + BUILT_PRODUCTS_DIR + explicitFileType + archive.ar + + 1DD70E299A24C4DE00000000 + + isa + PBXFileReference + name + libItemListPeerItem.a + path + libItemListPeerItem.a + sourceTree + BUILT_PRODUCTS_DIR + explicitFileType + archive.ar + + 1DD70E295A26607D00000000 + + isa + PBXFileReference + name + libItemListUI.a + path + libItemListUI.a + sourceTree + BUILT_PRODUCTS_DIR + explicitFileType + archive.ar + + 1DD70E29CE34063500000000 + + isa + PBXFileReference + name + libLocalizedPeerData.a + path + libLocalizedPeerData.a + sourceTree + BUILT_PRODUCTS_DIR + explicitFileType + archive.ar + + 1DD70E2936DE2CF900000000 + + isa + PBXFileReference + name + libMediaResources.a + path + libMediaResources.a + sourceTree + BUILT_PRODUCTS_DIR + explicitFileType + archive.ar + + 1DD70E29C37F741500000000 + + isa + PBXFileReference + name + libMergeLists.a + path + libMergeLists.a + sourceTree + BUILT_PRODUCTS_DIR + explicitFileType + archive.ar + + 1DD70E29D233F68C00000000 + + isa + PBXFileReference + name + libPeerPresenceStatusManager.a + path + libPeerPresenceStatusManager.a + sourceTree + BUILT_PRODUCTS_DIR + explicitFileType + archive.ar + + 1DD70E290F1A3C6400000000 + + isa + PBXFileReference + name + libPlatformRestrictionMatching.a + path + libPlatformRestrictionMatching.a + sourceTree + BUILT_PRODUCTS_DIR + explicitFileType + archive.ar + + 1DD70E29DB6520C800000000 + + isa + PBXFileReference + name + libPostbox.dylib + path + libPostbox.dylib + sourceTree + BUILT_PRODUCTS_DIR + explicitFileType + compiled.mach-o.dylib + + 1DD70E29CBE117ED00000000 + + isa + PBXFileReference + name + libProgressNavigationButtonNode.a + path + libProgressNavigationButtonNode.a + sourceTree + BUILT_PRODUCTS_DIR + explicitFileType + archive.ar + + 1DD70E293594DCC000000000 + + isa + PBXFileReference + name + libStickerResources.a + path + libStickerResources.a + sourceTree + BUILT_PRODUCTS_DIR + explicitFileType + archive.ar + + 1DD70E29D65BA68200000000 + + isa + PBXFileReference + name + libSwiftSignalKit.dylib + path + libSwiftSignalKit.dylib + sourceTree + BUILT_PRODUCTS_DIR + explicitFileType + compiled.mach-o.dylib + + 1DD70E2925BBFEEE00000000 + + isa + PBXFileReference + name + libSwitchNode.a + path + libSwitchNode.a + sourceTree + BUILT_PRODUCTS_DIR + explicitFileType + archive.ar + + 1DD70E29F33FDAC300000000 + + isa + PBXFileReference + name + libTelegramAudio.a + path + libTelegramAudio.a + sourceTree + BUILT_PRODUCTS_DIR + explicitFileType + archive.ar + + 1DD70E29119CDA0700000000 + + isa + PBXFileReference + name + libTelegramCore.dylib + path + libTelegramCore.dylib + sourceTree + BUILT_PRODUCTS_DIR + explicitFileType + compiled.mach-o.dylib + + 1DD70E2984A59C1D00000000 + + isa + PBXFileReference + name + libTelegramPresentationData.a + path + libTelegramPresentationData.a + sourceTree + BUILT_PRODUCTS_DIR + explicitFileType + archive.ar + + 1DD70E29DD3C940F00000000 + + isa + PBXFileReference + name + libTelegramStringFormatting.a + path + libTelegramStringFormatting.a + sourceTree + BUILT_PRODUCTS_DIR + explicitFileType + archive.ar + + 1DD70E292395015100000000 + + isa + PBXFileReference + name + libTelegramUIPreferences.a + path + libTelegramUIPreferences.a + sourceTree + BUILT_PRODUCTS_DIR + explicitFileType + archive.ar + + 1DD70E29BA06E3A600000000 + + isa + PBXFileReference + name + libTemporaryCachedPeerDataManager.a + path + libTemporaryCachedPeerDataManager.a + sourceTree + BUILT_PRODUCTS_DIR + explicitFileType + archive.ar + + 1DD70E29F0C15F9C00000000 + + isa + PBXFileReference + name + libTextFormat.a + path + libTextFormat.a + sourceTree + BUILT_PRODUCTS_DIR + explicitFileType + archive.ar + + 1DD70E29CD296A8300000000 + + isa + PBXFileReference + name + libTuples.a + path + libTuples.a + sourceTree + BUILT_PRODUCTS_DIR + explicitFileType + archive.ar + + 1DD70E2951398CF200000000 + + isa + PBXFileReference + name + libUniversalMediaPlayer.a + path + libUniversalMediaPlayer.a + sourceTree + BUILT_PRODUCTS_DIR + explicitFileType + archive.ar + + B401C97968022A5500000000 + + isa + PBXGroup + name + Frameworks + sourceTree + ]]> + children + + 1DD70E299D2580DA00000000 + 1DD70E29BF0846EE00000000 + 1DD70E292420028600000000 + 1DD70E29A54A195300000000 + 1DD70E2997B4D6D800000000 + 1DD70E295915423000000000 + 1DD70E29FF334B1F00000000 + 1DD70E29D6F14E1000000000 + 1DD70E299A24C4DE00000000 + 1DD70E295A26607D00000000 + 1DD70E29CE34063500000000 + 1DD70E2936DE2CF900000000 + 1DD70E29C37F741500000000 + 1DD70E29D233F68C00000000 + 1DD70E290F1A3C6400000000 + 1DD70E29DB6520C800000000 + 1DD70E29CBE117ED00000000 + 1DD70E293594DCC000000000 + 1DD70E29D65BA68200000000 + 1DD70E2925BBFEEE00000000 + 1DD70E29F33FDAC300000000 + 1DD70E29119CDA0700000000 + 1DD70E2984A59C1D00000000 + 1DD70E29DD3C940F00000000 + 1DD70E292395015100000000 + 1DD70E29BA06E3A600000000 + 1DD70E29F0C15F9C00000000 + 1DD70E29CD296A8300000000 + 1DD70E2951398CF200000000 + + + 1DD70E29001F47FB00000000 + + isa + PBXFileReference + name + BUCK + path + BUCK + sourceTree + SOURCE_ROOT + explicitFileType + text.script.python + + 1DD70E298DEA121500000000 + + isa + PBXFileReference + name + MessageReactionCategoryNode.swift + path + Sources/MessageReactionCategoryNode.swift + sourceTree + SOURCE_ROOT + + 1DD70E29C02D1D4F00000000 + + isa + PBXFileReference + name + MessageReactionListController.swift + path + Sources/MessageReactionListController.swift + sourceTree + SOURCE_ROOT + + B401C979EAB5339800000000 + + isa + PBXGroup + name + Sources + sourceTree + ]]> + children + + 1DD70E298DEA121500000000 + 1DD70E29C02D1D4F00000000 + + + B401C979639FD30200000000 + + isa + PBXGroup + name + MessageReactionListUI + sourceTree + ]]> + children + + 1DD70E29001F47FB00000000 + B401C979EAB5339800000000 + + + 1DD70E29730E785000000000 + + isa + PBXFileReference + name + libMessageReactionListUI.a + path + libMessageReactionListUI.a + sourceTree + BUILT_PRODUCTS_DIR + explicitFileType + archive.ar + + B401C979C806358400000000 + + isa + PBXGroup + name + Products + sourceTree + ]]> + children + + 1DD70E29730E785000000000 + + + B401C979EFB6AC4600000000 + + isa + PBXGroup + name + mainGroup + sourceTree + ]]> + children + + B401C979B781F65D00000000 + B401C97968022A5500000000 + B401C979639FD30200000000 + B401C979C806358400000000 + + + E7A30F048DEA121500000000 + + isa + PBXBuildFile + fileRef + 1DD70E298DEA121500000000 + + E7A30F04C02D1D4F00000000 + + isa + PBXBuildFile + fileRef + 1DD70E29C02D1D4F00000000 + + 1870857F0000000000000000 + + isa + PBXSourcesBuildPhase + files + + E7A30F048DEA121500000000 + E7A30F04C02D1D4F00000000 + + + E7A30F04D65BA68200000000 + + isa + PBXBuildFile + fileRef + 1DD70E29D65BA68200000000 + + E7A30F045915423000000000 + + isa + PBXBuildFile + fileRef + 1DD70E295915423000000000 + + E7A30F04FF334B1F00000000 + + isa + PBXBuildFile + fileRef + 1DD70E29FF334B1F00000000 + + E7A30F04DB6520C800000000 + + isa + PBXBuildFile + fileRef + 1DD70E29DB6520C800000000 + + E7A30F04F33FDAC300000000 + + isa + PBXBuildFile + fileRef + 1DD70E29F33FDAC300000000 + + E7A30F04119CDA0700000000 + + isa + PBXBuildFile + fileRef + 1DD70E29119CDA0700000000 + + E7A30F0451398CF200000000 + + isa + PBXBuildFile + fileRef + 1DD70E2951398CF200000000 + + E7A30F0436DE2CF900000000 + + isa + PBXBuildFile + fileRef + 1DD70E2936DE2CF900000000 + + E7A30F042395015100000000 + + isa + PBXBuildFile + fileRef + 1DD70E292395015100000000 + + E7A30F0484A59C1D00000000 + + isa + PBXBuildFile + fileRef + 1DD70E2984A59C1D00000000 + + E7A30F04CE34063500000000 + + isa + PBXBuildFile + fileRef + 1DD70E29CE34063500000000 + + E7A30F040F1A3C6400000000 + + isa + PBXBuildFile + fileRef + 1DD70E290F1A3C6400000000 + + E7A30F04F0C15F9C00000000 + + isa + PBXBuildFile + fileRef + 1DD70E29F0C15F9C00000000 + + E7A30F04DD3C940F00000000 + + isa + PBXBuildFile + fileRef + 1DD70E29DD3C940F00000000 + + E7A30F04BA06E3A600000000 + + isa + PBXBuildFile + fileRef + 1DD70E29BA06E3A600000000 + + E7A30F049D2580DA00000000 + + isa + PBXBuildFile + fileRef + 1DD70E299D2580DA00000000 + + E7A30F04D6F14E1000000000 + + isa + PBXBuildFile + fileRef + 1DD70E29D6F14E1000000000 + + E7A30F04CD296A8300000000 + + isa + PBXBuildFile + fileRef + 1DD70E29CD296A8300000000 + + E7A30F043594DCC000000000 + + isa + PBXBuildFile + fileRef + 1DD70E293594DCC000000000 + + E7A30F042420028600000000 + + isa + PBXBuildFile + fileRef + 1DD70E292420028600000000 + + E7A30F04A54A195300000000 + + isa + PBXBuildFile + fileRef + 1DD70E29A54A195300000000 + + E7A30F0497B4D6D800000000 + + isa + PBXBuildFile + fileRef + 1DD70E2997B4D6D800000000 + + E7A30F04C37F741500000000 + + isa + PBXBuildFile + fileRef + 1DD70E29C37F741500000000 + + E7A30F04BF0846EE00000000 + + isa + PBXBuildFile + fileRef + 1DD70E29BF0846EE00000000 + + E7A30F04CBE117ED00000000 + + isa + PBXBuildFile + fileRef + 1DD70E29CBE117ED00000000 + + E7A30F0425BBFEEE00000000 + + isa + PBXBuildFile + fileRef + 1DD70E2925BBFEEE00000000 + + E7A30F045A26607D00000000 + + isa + PBXBuildFile + fileRef + 1DD70E295A26607D00000000 + + E7A30F04D233F68C00000000 + + isa + PBXBuildFile + fileRef + 1DD70E29D233F68C00000000 + + E7A30F049A24C4DE00000000 + + isa + PBXBuildFile + fileRef + 1DD70E299A24C4DE00000000 + + FAF5FAC90000000000000000 + + isa + PBXCopyFilesBuildPhase + files + + E7A30F04D65BA68200000000 + E7A30F045915423000000000 + E7A30F04FF334B1F00000000 + E7A30F04DB6520C800000000 + E7A30F04F33FDAC300000000 + E7A30F04119CDA0700000000 + E7A30F0451398CF200000000 + E7A30F0436DE2CF900000000 + E7A30F042395015100000000 + E7A30F0484A59C1D00000000 + E7A30F04CE34063500000000 + E7A30F040F1A3C6400000000 + E7A30F04F0C15F9C00000000 + E7A30F04DD3C940F00000000 + E7A30F04BA06E3A600000000 + E7A30F049D2580DA00000000 + E7A30F04D6F14E1000000000 + E7A30F04CD296A8300000000 + E7A30F043594DCC000000000 + E7A30F042420028600000000 + E7A30F04A54A195300000000 + E7A30F0497B4D6D800000000 + E7A30F04C37F741500000000 + E7A30F04BF0846EE00000000 + E7A30F04CBE117ED00000000 + E7A30F0425BBFEEE00000000 + E7A30F045A26607D00000000 + E7A30F04D233F68C00000000 + E7A30F049A24C4DE00000000 + + name + Fake Swift Dependencies (Copy Files Phase) + runOnlyForDeploymentPostprocessing + 1 + dstSubfolderSpec + 16 + dstPath + + + 4952437303EDA63300000000 + + isa + XCBuildConfiguration + name + Debug + buildSettings + + + baseConfigurationReference + 1DD70E29ADE5417300000000 + + 4952437350C7218900000000 + + isa + XCBuildConfiguration + name + Profile + buildSettings + + + baseConfigurationReference + 1DD70E29AEBD481D00000000 + + 49524373A439BFE700000000 + + isa + XCBuildConfiguration + name + Release + buildSettings + + + baseConfigurationReference + 1DD70E292253F37F00000000 + + 218C37090000000000000000 + + isa + XCConfigurationList + buildConfigurations + + 4952437303EDA63300000000 + 4952437350C7218900000000 + 49524373A439BFE700000000 + + defaultConfigurationIsVisible + + + E66DC04E639FD30200000000 + + isa + PBXNativeTarget + name + MessageReactionListUI + productName + MessageReactionListUI + productReference + 1DD70E29730E785000000000 + productType + com.apple.product-type.library.static + dependencies + + + buildPhases + + 1870857F0000000000000000 + FAF5FAC90000000000000000 + + buildConfigurationList + 218C37090000000000000000 + + 4952437303EDA63300000001 + + isa + XCBuildConfiguration + name + Debug + buildSettings + + + + 4952437350C7218900000001 + + isa + XCBuildConfiguration + name + Profile + buildSettings + + + + 49524373A439BFE700000001 + + isa + XCBuildConfiguration + name + Release + buildSettings + + + + 218C37090000000000000001 + + isa + XCConfigurationList + buildConfigurations + + 4952437303EDA63300000001 + 4952437350C7218900000001 + 49524373A439BFE700000001 + + defaultConfigurationIsVisible + + + 96C84793639FD30200000000 + + isa + PBXProject + mainGroup + B401C979EFB6AC4600000000 + targets + + E66DC04E639FD30200000000 + + buildConfigurationList + 218C37090000000000000001 + compatibilityVersion + Xcode 3.2 + attributes + + LastUpgradeCheck + 9999 + + + + rootObject + 96C84793639FD30200000000 + + \ No newline at end of file diff --git a/submodules/MessageReactionListUI/MessageReactionListUI.xcodeproj/xcshareddata/xcschemes/MessageReactionListUI.xcscheme b/submodules/MessageReactionListUI/MessageReactionListUI.xcodeproj/xcshareddata/xcschemes/MessageReactionListUI.xcscheme new file mode 100644 index 0000000000..230d2151ca --- /dev/null +++ b/submodules/MessageReactionListUI/MessageReactionListUI.xcodeproj/xcshareddata/xcschemes/MessageReactionListUI.xcscheme @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/submodules/OpenInExternalAppUI/BUCK b/submodules/OpenInExternalAppUI/BUCK index 2915332ff7..6022b3bef3 100644 --- a/submodules/OpenInExternalAppUI/BUCK +++ b/submodules/OpenInExternalAppUI/BUCK @@ -15,6 +15,7 @@ static_library( "//submodules/TelegramPresentationData:TelegramPresentationData", "//submodules/PhotoResources:PhotoResources", "//submodules/UrlEscaping:UrlEscaping", + "//submodules/AppBundle:AppBundle", ], frameworks = [ "$SDKROOT/System/Library/Frameworks/Foundation.framework", diff --git a/submodules/OpenInExternalAppUI/OpenInExternalAppUI.xcodeproj/project.pbxproj b/submodules/OpenInExternalAppUI/OpenInExternalAppUI.xcodeproj/project.pbxproj index fbfbbc0033..88224d5764 100644 --- a/submodules/OpenInExternalAppUI/OpenInExternalAppUI.xcodeproj/project.pbxproj +++ b/submodules/OpenInExternalAppUI/OpenInExternalAppUI.xcodeproj/project.pbxproj @@ -411,17 +411,6 @@ explicitFileType text.script.python - 1DD70E291289FAA500000000 - - isa - PBXFileReference - name - FrameworkBundle.swift - path - Sources/FrameworkBundle.swift - sourceTree - SOURCE_ROOT - 1DD70E29BC094D7B00000000 isa @@ -465,7 +454,6 @@ ]]> children - 1DD70E291289FAA500000000 1DD70E29BC094D7B00000000 1DD70E29DAE6437F00000000 1DD70E298AC3E5D400000000 @@ -527,13 +515,6 @@ B401C979C806358400000000 - E7A30F041289FAA500000000 - - isa - PBXBuildFile - fileRef - 1DD70E291289FAA500000000 - E7A30F04BC094D7B00000000 isa @@ -561,7 +542,6 @@ PBXSourcesBuildPhase files - E7A30F041289FAA500000000 E7A30F04BC094D7B00000000 E7A30F04DAE6437F00000000 E7A30F048AC3E5D400000000 diff --git a/submodules/OpenInExternalAppUI/OpenInExternalAppUI_Xcode.xcodeproj/project.pbxproj b/submodules/OpenInExternalAppUI/OpenInExternalAppUI_Xcode.xcodeproj/project.pbxproj index e0469f8a62..ed93bc31ae 100644 --- a/submodules/OpenInExternalAppUI/OpenInExternalAppUI_Xcode.xcodeproj/project.pbxproj +++ b/submodules/OpenInExternalAppUI/OpenInExternalAppUI_Xcode.xcodeproj/project.pbxproj @@ -24,7 +24,7 @@ D0C9C4352300D6B500FAB518 /* PhotoResources.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C4342300D6B500FAB518 /* PhotoResources.framework */; }; D0C9C4372300D6C100FAB518 /* CoreLocation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C4362300D6C000FAB518 /* CoreLocation.framework */; }; D0C9C4392300D6C400FAB518 /* UrlEscaping.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C4382300D6C400FAB518 /* UrlEscaping.framework */; }; - D0C9C43F2300D75500FAB518 /* FrameworkBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C43E2300D75500FAB518 /* FrameworkBundle.swift */; }; + D0EFF25A2319813400CF5164 /* AppBundle.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0EFF2592319813400CF5164 /* AppBundle.framework */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -47,7 +47,7 @@ D0C9C4342300D6B500FAB518 /* PhotoResources.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = PhotoResources.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D0C9C4362300D6C000FAB518 /* CoreLocation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreLocation.framework; path = System/Library/Frameworks/CoreLocation.framework; sourceTree = SDKROOT; }; D0C9C4382300D6C400FAB518 /* UrlEscaping.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = UrlEscaping.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - D0C9C43E2300D75500FAB518 /* FrameworkBundle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FrameworkBundle.swift; sourceTree = ""; }; + D0EFF2592319813400CF5164 /* AppBundle.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AppBundle.framework; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -55,6 +55,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + D0EFF25A2319813400CF5164 /* AppBundle.framework in Frameworks */, D0C9C4392300D6C400FAB518 /* UrlEscaping.framework in Frameworks */, D0C9C4372300D6C100FAB518 /* CoreLocation.framework in Frameworks */, D0C9C4352300D6B500FAB518 /* PhotoResources.framework in Frameworks */, @@ -98,7 +99,6 @@ D0C9C41A2300D67800FAB518 /* OpenInActionSheetController.swift */, D0C9C41B2300D67800FAB518 /* OpenInAppIconResources.swift */, D0C9C4192300D67800FAB518 /* OpenInOptions.swift */, - D0C9C43E2300D75500FAB518 /* FrameworkBundle.swift */, D0C9C40D2300D60C00FAB518 /* OpenInExternalAppUI.h */, ); path = Sources; @@ -107,6 +107,7 @@ D0C9C41F2300D68A00FAB518 /* Frameworks */ = { isa = PBXGroup; children = ( + D0EFF2592319813400CF5164 /* AppBundle.framework */, D0C9C4382300D6C400FAB518 /* UrlEscaping.framework */, D0C9C4362300D6C000FAB518 /* CoreLocation.framework */, D0C9C4342300D6B500FAB518 /* PhotoResources.framework */, @@ -204,7 +205,6 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - D0C9C43F2300D75500FAB518 /* FrameworkBundle.swift in Sources */, D0C9C41D2300D67800FAB518 /* OpenInActionSheetController.swift in Sources */, D0C9C41C2300D67800FAB518 /* OpenInOptions.swift in Sources */, D0C9C41E2300D67800FAB518 /* OpenInAppIconResources.swift in Sources */, diff --git a/submodules/OpenInExternalAppUI/Sources/FrameworkBundle.swift b/submodules/OpenInExternalAppUI/Sources/FrameworkBundle.swift deleted file mode 100644 index 8ca13d7d92..0000000000 --- a/submodules/OpenInExternalAppUI/Sources/FrameworkBundle.swift +++ /dev/null @@ -1,13 +0,0 @@ -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) - } -} diff --git a/submodules/OpenInExternalAppUI/Sources/OpenInActionSheetController.swift b/submodules/OpenInExternalAppUI/Sources/OpenInActionSheetController.swift index 2b59aa3d95..900de7cdab 100644 --- a/submodules/OpenInExternalAppUI/Sources/OpenInActionSheetController.swift +++ b/submodules/OpenInExternalAppUI/Sources/OpenInActionSheetController.swift @@ -9,6 +9,7 @@ import MapKit import TelegramPresentationData import AccountContext import PhotoResources +import AppBundle public struct OpenInControllerAction { public let title: String diff --git a/submodules/PasscodeUI/BUCK b/submodules/PasscodeUI/BUCK index 56dc1ce5af..306511e065 100644 --- a/submodules/PasscodeUI/BUCK +++ b/submodules/PasscodeUI/BUCK @@ -18,6 +18,7 @@ static_library( "//submodules/LegacyComponents:LegacyComponents", "//submodules/TelegramStringFormatting:TelegramStringFormatting", "//submodules/ImageBlur:ImageBlur", + "//submodules/AppBundle:AppBundle", ], frameworks = [ "$SDKROOT/System/Library/Frameworks/Foundation.framework", diff --git a/submodules/PasscodeUI/PasscodeUI.xcodeproj/project.pbxproj b/submodules/PasscodeUI/PasscodeUI.xcodeproj/project.pbxproj index 877b968393..769fc9bc55 100644 --- a/submodules/PasscodeUI/PasscodeUI.xcodeproj/project.pbxproj +++ b/submodules/PasscodeUI/PasscodeUI.xcodeproj/project.pbxproj @@ -355,17 +355,6 @@ explicitFileType text.script.python - 1DD70E291289FAA500000000 - - isa - PBXFileReference - name - FrameworkBundle.swift - path - Sources/FrameworkBundle.swift - sourceTree - SOURCE_ROOT - 1DD70E2944FAB31100000000 isa @@ -486,7 +475,6 @@ ]]> children - 1DD70E291289FAA500000000 1DD70E2944FAB31100000000 1DD70E298C702AD500000000 1DD70E297F6C137700000000 @@ -555,13 +543,6 @@ B401C979C806358400000000 - E7A30F041289FAA500000000 - - isa - PBXBuildFile - fileRef - 1DD70E291289FAA500000000 - E7A30F0444FAB31100000000 isa @@ -638,7 +619,6 @@ PBXSourcesBuildPhase files - E7A30F041289FAA500000000 E7A30F0444FAB31100000000 E7A30F048C702AD500000000 E7A30F047F6C137700000000 diff --git a/submodules/PasscodeUI/PasscodeUI_Xcode.xcodeproj/project.pbxproj b/submodules/PasscodeUI/PasscodeUI_Xcode.xcodeproj/project.pbxproj index 7c5dbbf5ae..2cf5134e1f 100644 --- a/submodules/PasscodeUI/PasscodeUI_Xcode.xcodeproj/project.pbxproj +++ b/submodules/PasscodeUI/PasscodeUI_Xcode.xcodeproj/project.pbxproj @@ -32,7 +32,7 @@ D0C9CA32230229DE00FAB518 /* TelegramCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9CA31230229DE00FAB518 /* TelegramCore.framework */; }; D0C9CA34230229F100FAB518 /* LegacyComponents.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9CA33230229F100FAB518 /* LegacyComponents.framework */; }; D0C9CA3623022A7400FAB518 /* TelegramStringFormatting.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9CA3523022A7400FAB518 /* TelegramStringFormatting.framework */; }; - D0C9CA3A23022AA300FAB518 /* FrameworkBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9CA3923022AA300FAB518 /* FrameworkBundle.swift */; }; + D0EFF274231982DF00CF5164 /* AppBundle.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0EFF273231982DF00CF5164 /* AppBundle.framework */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -63,7 +63,7 @@ D0C9CA31230229DE00FAB518 /* TelegramCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D0C9CA33230229F100FAB518 /* LegacyComponents.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = LegacyComponents.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D0C9CA3523022A7400FAB518 /* TelegramStringFormatting.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramStringFormatting.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - D0C9CA3923022AA300FAB518 /* FrameworkBundle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FrameworkBundle.swift; sourceTree = ""; }; + D0EFF273231982DF00CF5164 /* AppBundle.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AppBundle.framework; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -71,6 +71,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + D0EFF274231982DF00CF5164 /* AppBundle.framework in Frameworks */, D0C9CA3623022A7400FAB518 /* TelegramStringFormatting.framework in Frameworks */, D0C9CA34230229F100FAB518 /* LegacyComponents.framework in Frameworks */, D0C9CA32230229DE00FAB518 /* TelegramCore.framework in Frameworks */, @@ -122,7 +123,6 @@ D0C9CA092302293300FAB518 /* PasscodeLockIconNode.swift */, D0C9CA0D2302293400FAB518 /* PasscodeSetupController.swift */, D0C9CA072302293300FAB518 /* PasscodeSetupControllerNode.swift */, - D0C9CA3923022AA300FAB518 /* FrameworkBundle.swift */, D0C9C9F8230228D400FAB518 /* PasscodeUI.h */, ); path = Sources; @@ -131,6 +131,7 @@ D0C9CA1A2302298D00FAB518 /* Frameworks */ = { isa = PBXGroup; children = ( + D0EFF273231982DF00CF5164 /* AppBundle.framework */, D0C9CA3523022A7400FAB518 /* TelegramStringFormatting.framework */, D0C9CA33230229F100FAB518 /* LegacyComponents.framework */, D0C9CA31230229DE00FAB518 /* TelegramCore.framework */, @@ -237,7 +238,6 @@ D0C9CA142302293400FAB518 /* PasscodeEntryInputFieldNode.swift in Sources */, D0C9CA122302293400FAB518 /* PasscodeLayout.swift in Sources */, D0C9CA132302293400FAB518 /* PasscodeLockIconNode.swift in Sources */, - D0C9CA3A23022AA300FAB518 /* FrameworkBundle.swift in Sources */, D0C9CA102302293400FAB518 /* PasscodeEntryController.swift in Sources */, D0C9CA112302293400FAB518 /* PasscodeSetupControllerNode.swift in Sources */, ); diff --git a/submodules/PasscodeUI/Sources/FrameworkBundle.swift b/submodules/PasscodeUI/Sources/FrameworkBundle.swift deleted file mode 100644 index 8ca13d7d92..0000000000 --- a/submodules/PasscodeUI/Sources/FrameworkBundle.swift +++ /dev/null @@ -1,13 +0,0 @@ -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) - } -} diff --git a/submodules/PasscodeUI/Sources/PasscodeEntryControllerNode.swift b/submodules/PasscodeUI/Sources/PasscodeEntryControllerNode.swift index eedb3a847c..964b471071 100644 --- a/submodules/PasscodeUI/Sources/PasscodeEntryControllerNode.swift +++ b/submodules/PasscodeUI/Sources/PasscodeEntryControllerNode.swift @@ -8,6 +8,7 @@ import TelegramCore import TelegramPresentationData import AccountContext import LocalAuth +import AppBundle private let titleFont = Font.regular(20.0) private let subtitleFont = Font.regular(15.0) diff --git a/submodules/PassportUI/BUCK b/submodules/PassportUI/BUCK index a852478a96..bb0d57f428 100644 --- a/submodules/PassportUI/BUCK +++ b/submodules/PassportUI/BUCK @@ -21,6 +21,7 @@ static_library( "//submodules/ImageCompression:ImageCompression", "//submodules/DateSelectionUI:DateSelectionUI", "//submodules/PasswordSetupUI:PasswordSetupUI", + "//submodules/AppBundle:AppBundle", ], frameworks = [ "$SDKROOT/System/Library/Frameworks/Foundation.framework", diff --git a/submodules/PassportUI/PassportUI.xcodeproj/project.pbxproj b/submodules/PassportUI/PassportUI.xcodeproj/project.pbxproj index 69e01318db..dd6be374f8 100644 --- a/submodules/PassportUI/PassportUI.xcodeproj/project.pbxproj +++ b/submodules/PassportUI/PassportUI.xcodeproj/project.pbxproj @@ -1058,17 +1058,6 @@ sourceTree SOURCE_ROOT - 1DD70E291289FAA500000000 - - isa - PBXFileReference - name - FrameworkBundle.swift - path - Sources/FrameworkBundle.swift - sourceTree - SOURCE_ROOT - 1DD70E296E38F8E200000000 isa @@ -1389,7 +1378,6 @@ B401C979002180E400000000 1DD70E29D4C9F26B00000000 - 1DD70E291289FAA500000000 1DD70E296E38F8E200000000 1DD70E2942DAF07900000000 1DD70E290BAD464900000000 @@ -1560,13 +1548,6 @@ fileRef 1DD70E29D4C9F26B00000000 - E7A30F041289FAA500000000 - - isa - PBXBuildFile - fileRef - 1DD70E291289FAA500000000 - E7A30F046E38F8E200000000 isa @@ -1781,7 +1762,6 @@ E7A30F04B3F9004500000000 E7A30F04F5ED8FFF00000000 E7A30F04D4C9F26B00000000 - E7A30F041289FAA500000000 E7A30F046E38F8E200000000 E7A30F0442DAF07900000000 E7A30F040BAD464900000000 diff --git a/submodules/PassportUI/PassportUI_Xcode.xcodeproj/project.pbxproj b/submodules/PassportUI/PassportUI_Xcode.xcodeproj/project.pbxproj index c38de867f1..a05ab118fb 100644 --- a/submodules/PassportUI/PassportUI_Xcode.xcodeproj/project.pbxproj +++ b/submodules/PassportUI/PassportUI_Xcode.xcodeproj/project.pbxproj @@ -55,7 +55,6 @@ D0C9C255230022E000FAB518 /* TelegramPresentationData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C254230022E000FAB518 /* TelegramPresentationData.framework */; }; D0C9C25923009EC900FAB518 /* FindSecureIdValue.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C25823009EC900FAB518 /* FindSecureIdValue.swift */; }; D0C9C2812300A04900FAB518 /* PhoneInputNode.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C2802300A04900FAB518 /* PhoneInputNode.framework */; }; - D0C9C2852300A0BF00FAB518 /* FrameworkBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C2842300A0BF00FAB518 /* FrameworkBundle.swift */; }; D0C9C2B32300A1D300FAB518 /* CountrySelectionUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C2B22300A1D300FAB518 /* CountrySelectionUI.framework */; }; D0C9C3332300AA0100FAB518 /* GalleryUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C3322300AA0100FAB518 /* GalleryUI.framework */; }; D0C9C4492300E15E00FAB518 /* LegacySecureIdAttachmentMenu.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C4482300E15E00FAB518 /* LegacySecureIdAttachmentMenu.swift */; }; @@ -66,6 +65,7 @@ D0C9C4BF2300E5B400FAB518 /* ImageCompression.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C4BE2300E5B400FAB518 /* ImageCompression.framework */; }; D0C9C4DA2300E67200FAB518 /* DateSelectionUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C4D92300E67200FAB518 /* DateSelectionUI.framework */; }; D0C9C52D2300EFB100FAB518 /* PasswordSetupUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C52C2300EFB100FAB518 /* PasswordSetupUI.framework */; }; + D0EFF2602319818400CF5164 /* AppBundle.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0EFF25F2319818400CF5164 /* AppBundle.framework */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -119,7 +119,6 @@ D0C9C254230022E000FAB518 /* TelegramPresentationData.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramPresentationData.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D0C9C25823009EC900FAB518 /* FindSecureIdValue.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FindSecureIdValue.swift; sourceTree = ""; }; D0C9C2802300A04900FAB518 /* PhoneInputNode.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = PhoneInputNode.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - D0C9C2842300A0BF00FAB518 /* FrameworkBundle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FrameworkBundle.swift; sourceTree = ""; }; D0C9C2B22300A1D300FAB518 /* CountrySelectionUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = CountrySelectionUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D0C9C3322300AA0100FAB518 /* GalleryUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = GalleryUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D0C9C4482300E15E00FAB518 /* LegacySecureIdAttachmentMenu.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LegacySecureIdAttachmentMenu.swift; sourceTree = ""; }; @@ -130,6 +129,7 @@ D0C9C4BE2300E5B400FAB518 /* ImageCompression.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ImageCompression.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D0C9C4D92300E67200FAB518 /* DateSelectionUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = DateSelectionUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D0C9C52C2300EFB100FAB518 /* PasswordSetupUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = PasswordSetupUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D0EFF25F2319818400CF5164 /* AppBundle.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AppBundle.framework; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -137,6 +137,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + D0EFF2602319818400CF5164 /* AppBundle.framework in Frameworks */, D0C9C52D2300EFB100FAB518 /* PasswordSetupUI.framework in Frameworks */, D0C9C4DA2300E67200FAB518 /* DateSelectionUI.framework in Frameworks */, D0C9C4BF2300E5B400FAB518 /* ImageCompression.framework in Frameworks */, @@ -211,7 +212,6 @@ D0C9C25823009EC900FAB518 /* FindSecureIdValue.swift */, D0C9C4482300E15E00FAB518 /* LegacySecureIdAttachmentMenu.swift */, D0C9C44E2300E1D600FAB518 /* LegacySecureIdScanController.swift */, - D0C9C2842300A0BF00FAB518 /* FrameworkBundle.swift */, D0C9C1EE2300222100FAB518 /* PassportUI.h */, ); path = Sources; @@ -238,6 +238,7 @@ D0C9C245230022BF00FAB518 /* Frameworks */ = { isa = PBXGroup; children = ( + D0EFF25F2319818400CF5164 /* AppBundle.framework */, D0C9C52C2300EFB100FAB518 /* PasswordSetupUI.framework */, D0C9C4D92300E67200FAB518 /* DateSelectionUI.framework */, D0C9C4BE2300E5B400FAB518 /* ImageCompression.framework */, @@ -361,7 +362,6 @@ D0C9C23C230022AB00FAB518 /* SecureIdAuthController.swift in Sources */, D0C9C22E230022AB00FAB518 /* FormControllerScrollerNode.swift in Sources */, D0C9C22C230022AB00FAB518 /* FormControllerActionItem.swift in Sources */, - D0C9C2852300A0BF00FAB518 /* FrameworkBundle.swift in Sources */, D0C9C237230022AB00FAB518 /* SecureIdAuthFormContentNode.swift in Sources */, D0C9C22D230022AB00FAB518 /* FormEditableBlockItemNode.swift in Sources */, D0C9C239230022AB00FAB518 /* SecureIdAuthPasswordOptionContentNode.swift in Sources */, diff --git a/submodules/PassportUI/Sources/FrameworkBundle.swift b/submodules/PassportUI/Sources/FrameworkBundle.swift deleted file mode 100644 index 8ca13d7d92..0000000000 --- a/submodules/PassportUI/Sources/FrameworkBundle.swift +++ /dev/null @@ -1,13 +0,0 @@ -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) - } -} diff --git a/submodules/PassportUI/Sources/SecureIdAuthAcceptNode.swift b/submodules/PassportUI/Sources/SecureIdAuthAcceptNode.swift index ba1305eef0..9d10b38dc3 100644 --- a/submodules/PassportUI/Sources/SecureIdAuthAcceptNode.swift +++ b/submodules/PassportUI/Sources/SecureIdAuthAcceptNode.swift @@ -6,6 +6,7 @@ import Postbox import TelegramCore import SwiftSignalKit import TelegramPresentationData +import AppBundle private let textFont: UIFont = Font.regular(16.0) diff --git a/submodules/PassportUI/Sources/SecureIdAuthHeaderNode.swift b/submodules/PassportUI/Sources/SecureIdAuthHeaderNode.swift index 8727078f06..d183e98595 100644 --- a/submodules/PassportUI/Sources/SecureIdAuthHeaderNode.swift +++ b/submodules/PassportUI/Sources/SecureIdAuthHeaderNode.swift @@ -7,6 +7,7 @@ import TelegramCore import SwiftSignalKit import TelegramPresentationData import AvatarNode +import AppBundle private let avatarFont = UIFont(name: ".SFCompactRounded-Semibold", size: 26.0)! private let titleFont = Font.semibold(14.0) diff --git a/submodules/PassportUI/Sources/SecureIdAuthPasswordOptionContentNode.swift b/submodules/PassportUI/Sources/SecureIdAuthPasswordOptionContentNode.swift index 8dec00eebf..5da4d73188 100644 --- a/submodules/PassportUI/Sources/SecureIdAuthPasswordOptionContentNode.swift +++ b/submodules/PassportUI/Sources/SecureIdAuthPasswordOptionContentNode.swift @@ -4,6 +4,7 @@ import AsyncDisplayKit import Display import TelegramPresentationData import ActivityIndicator +import AppBundle private let passwordFont = Font.regular(16.0) private let buttonFont = Font.regular(17.0) diff --git a/submodules/PassportUI/Sources/SecureIdAuthPasswordSetupContentNode.swift b/submodules/PassportUI/Sources/SecureIdAuthPasswordSetupContentNode.swift index 0680a66849..6a0da6e4c1 100644 --- a/submodules/PassportUI/Sources/SecureIdAuthPasswordSetupContentNode.swift +++ b/submodules/PassportUI/Sources/SecureIdAuthPasswordSetupContentNode.swift @@ -3,6 +3,7 @@ import UIKit import AsyncDisplayKit import Display import TelegramPresentationData +import AppBundle private let titleFont = Font.regular(14.0) private let buttonFont = Font.regular(17.0) diff --git a/submodules/PassportUI/Sources/SecureIdDocumentFormControllerNode.swift b/submodules/PassportUI/Sources/SecureIdDocumentFormControllerNode.swift index 6ce48f0ca8..b2708d2a97 100644 --- a/submodules/PassportUI/Sources/SecureIdDocumentFormControllerNode.swift +++ b/submodules/PassportUI/Sources/SecureIdDocumentFormControllerNode.swift @@ -11,6 +11,7 @@ import AccountContext import GalleryUI import CountrySelectionUI import DateSelectionUI +import AppBundle private enum SecureIdDocumentFormTextField { case identifier diff --git a/submodules/PassportUI/Sources/SecureIdDocumentGalleryFooterContentNode.swift b/submodules/PassportUI/Sources/SecureIdDocumentGalleryFooterContentNode.swift index ea3162d838..94aa3f5fa9 100644 --- a/submodules/PassportUI/Sources/SecureIdDocumentGalleryFooterContentNode.swift +++ b/submodules/PassportUI/Sources/SecureIdDocumentGalleryFooterContentNode.swift @@ -9,6 +9,7 @@ import Photos import TelegramPresentationData import AccountContext import GalleryUI +import AppBundle private let deleteImage = generateTintedImage(image: UIImage(bundleImageName: "Chat/Input/Accessory Panels/MessageSelectionTrash"), color: .white) diff --git a/submodules/PeerAvatarGalleryUI/BUCK b/submodules/PeerAvatarGalleryUI/BUCK index e188cb44d5..7952073484 100644 --- a/submodules/PeerAvatarGalleryUI/BUCK +++ b/submodules/PeerAvatarGalleryUI/BUCK @@ -19,6 +19,7 @@ static_library( "//submodules/PhotoResources:PhotoResources", "//submodules/RadialStatusNode:RadialStatusNode", "//submodules/ShareController:ShareController", + "//submodules/AppBundle:AppBundle", ], frameworks = [ "$SDKROOT/System/Library/Frameworks/Foundation.framework", diff --git a/submodules/PeerAvatarGalleryUI/PeerAvatarGalleryUI.xcodeproj/project.pbxproj b/submodules/PeerAvatarGalleryUI/PeerAvatarGalleryUI.xcodeproj/project.pbxproj index a45f8c89e4..125fed1831 100644 --- a/submodules/PeerAvatarGalleryUI/PeerAvatarGalleryUI.xcodeproj/project.pbxproj +++ b/submodules/PeerAvatarGalleryUI/PeerAvatarGalleryUI.xcodeproj/project.pbxproj @@ -755,17 +755,6 @@ sourceTree SOURCE_ROOT - 1DD70E291289FAA500000000 - - isa - PBXFileReference - name - FrameworkBundle.swift - path - Sources/FrameworkBundle.swift - sourceTree - SOURCE_ROOT - 1DD70E2992EE2FAA00000000 isa @@ -789,7 +778,6 @@ 1DD70E29550A52FA00000000 1DD70E296334003900000000 - 1DD70E291289FAA500000000 1DD70E2992EE2FAA00000000 @@ -863,13 +851,6 @@ fileRef 1DD70E296334003900000000 - E7A30F041289FAA500000000 - - isa - PBXBuildFile - fileRef - 1DD70E291289FAA500000000 - E7A30F0492EE2FAA00000000 isa @@ -885,7 +866,6 @@ E7A30F04550A52FA00000000 E7A30F046334003900000000 - E7A30F041289FAA500000000 E7A30F0492EE2FAA00000000 diff --git a/submodules/PeerAvatarGalleryUI/PeerAvatarGalleryUI_Xcode.xcodeproj/project.pbxproj b/submodules/PeerAvatarGalleryUI/PeerAvatarGalleryUI_Xcode.xcodeproj/project.pbxproj index 310d6cd141..74af051f36 100644 --- a/submodules/PeerAvatarGalleryUI/PeerAvatarGalleryUI_Xcode.xcodeproj/project.pbxproj +++ b/submodules/PeerAvatarGalleryUI/PeerAvatarGalleryUI_Xcode.xcodeproj/project.pbxproj @@ -28,7 +28,7 @@ D03E41622304D4650049C28B /* PhotoResources.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41612304D4650049C28B /* PhotoResources.framework */; }; D03E41642304D4690049C28B /* RadialStatusNode.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41632304D4690049C28B /* RadialStatusNode.framework */; }; D03E41662304D46E0049C28B /* ShareController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41652304D46E0049C28B /* ShareController.framework */; }; - D03E416A2304D4F50049C28B /* FrameworkBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E41692304D4F50049C28B /* FrameworkBundle.swift */; }; + D0EFF264231981BA00CF5164 /* AppBundle.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0EFF263231981BA00CF5164 /* AppBundle.framework */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -55,7 +55,7 @@ D03E41612304D4650049C28B /* PhotoResources.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = PhotoResources.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D03E41632304D4690049C28B /* RadialStatusNode.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = RadialStatusNode.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D03E41652304D46E0049C28B /* ShareController.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ShareController.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - D03E41692304D4F50049C28B /* FrameworkBundle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FrameworkBundle.swift; sourceTree = ""; }; + D0EFF263231981BA00CF5164 /* AppBundle.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AppBundle.framework; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -63,6 +63,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + D0EFF264231981BA00CF5164 /* AppBundle.framework in Frameworks */, D03E41662304D46E0049C28B /* ShareController.framework in Frameworks */, D03E41642304D4690049C28B /* RadialStatusNode.framework in Frameworks */, D03E41622304D4650049C28B /* PhotoResources.framework in Frameworks */, @@ -110,7 +111,6 @@ D03E413C2304D3F50049C28B /* AvatarGalleryController.swift */, D03E413D2304D3F60049C28B /* AvatarGalleryItemFooterContentNode.swift */, D03E413E2304D3F60049C28B /* PeerAvatarImageGalleryItem.swift */, - D03E41692304D4F50049C28B /* FrameworkBundle.swift */, D03E41302304D37B0049C28B /* PeerAvatarGalleryUI.h */, ); path = Sources; @@ -119,6 +119,7 @@ D03E41442304D40D0049C28B /* Frameworks */ = { isa = PBXGroup; children = ( + D0EFF263231981BA00CF5164 /* AppBundle.framework */, D03E41652304D46E0049C28B /* ShareController.framework */, D03E41632304D4690049C28B /* RadialStatusNode.framework */, D03E41612304D4650049C28B /* PhotoResources.framework */, @@ -220,7 +221,6 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - D03E416A2304D4F50049C28B /* FrameworkBundle.swift in Sources */, D03E413F2304D3F60049C28B /* AvatarGalleryController.swift in Sources */, D03E41402304D3F60049C28B /* AvatarGalleryItemFooterContentNode.swift in Sources */, D03E41412304D3F60049C28B /* PeerAvatarImageGalleryItem.swift in Sources */, diff --git a/submodules/PeerAvatarGalleryUI/Sources/AvatarGalleryItemFooterContentNode.swift b/submodules/PeerAvatarGalleryUI/Sources/AvatarGalleryItemFooterContentNode.swift index d587bcf58e..e5b960bbea 100644 --- a/submodules/PeerAvatarGalleryUI/Sources/AvatarGalleryItemFooterContentNode.swift +++ b/submodules/PeerAvatarGalleryUI/Sources/AvatarGalleryItemFooterContentNode.swift @@ -11,6 +11,7 @@ import TelegramUIPreferences import TelegramStringFormatting import AccountContext import GalleryUI +import AppBundle private let deleteImage = generateTintedImage(image: UIImage(bundleImageName: "Chat/Input/Accessory Panels/MessageSelectionTrash"), color: .white) private let actionImage = generateTintedImage(image: UIImage(bundleImageName: "Chat/Input/Accessory Panels/MessageSelectionAction"), color: .white) diff --git a/submodules/PeerAvatarGalleryUI/Sources/FrameworkBundle.swift b/submodules/PeerAvatarGalleryUI/Sources/FrameworkBundle.swift deleted file mode 100644 index 8ca13d7d92..0000000000 --- a/submodules/PeerAvatarGalleryUI/Sources/FrameworkBundle.swift +++ /dev/null @@ -1,13 +0,0 @@ -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) - } -} diff --git a/submodules/PeerInfoUI/BUCK b/submodules/PeerInfoUI/BUCK index 466c451fa6..c12c6592dc 100644 --- a/submodules/PeerInfoUI/BUCK +++ b/submodules/PeerInfoUI/BUCK @@ -55,6 +55,7 @@ static_library( "//submodules/ItemListAddressItem:ItemListAddressItem", "//submodules/ContactListUI:ContactListUI", "//submodules/ContextUI:ContextUI", + "//submodules/AppBundle:AppBundle", ], frameworks = [ "$SDKROOT/System/Library/Frameworks/Foundation.framework", diff --git a/submodules/PeerInfoUI/PeerInfoUI.xcodeproj/project.pbxproj b/submodules/PeerInfoUI/PeerInfoUI.xcodeproj/project.pbxproj index 00b1ea568e..ec96b618b7 100644 --- a/submodules/PeerInfoUI/PeerInfoUI.xcodeproj/project.pbxproj +++ b/submodules/PeerInfoUI/PeerInfoUI.xcodeproj/project.pbxproj @@ -767,6 +767,19 @@ explicitFileType archive.ar + 1DD70E29AD66967300000000 + + isa + PBXFileReference + name + libReactionSelectionNode.a + path + libReactionSelectionNode.a + sourceTree + BUILT_PRODUCTS_DIR + explicitFileType + archive.ar + 1DD70E291D58331200000000 isa @@ -1246,6 +1259,7 @@ 1DD70E29DB6520C800000000 1DD70E29CBE117ED00000000 1DD70E293E4DE92B00000000 + 1DD70E29AD66967300000000 1DD70E291D58331200000000 1DD70E29CF967D4300000000 1DD70E29EA9CBB5B00000000 @@ -1535,17 +1549,6 @@ sourceTree SOURCE_ROOT - 1DD70E291289FAA500000000 - - isa - PBXFileReference - name - FrameworkBundle.swift - path - Sources/FrameworkBundle.swift - sourceTree - SOURCE_ROOT - 1DD70E295B494B0E00000000 isa @@ -1776,7 +1779,6 @@ 1DD70E29A3981B5400000000 1DD70E29F670175300000000 1DD70E29013401F900000000 - 1DD70E291289FAA500000000 1DD70E295B494B0E00000000 1DD70E294A7BFD0D00000000 1DD70E295DDA07D700000000 @@ -2007,13 +2009,6 @@ fileRef 1DD70E29013401F900000000 - E7A30F041289FAA500000000 - - isa - PBXBuildFile - fileRef - 1DD70E291289FAA500000000 - E7A30F045B494B0E00000000 isa @@ -2168,7 +2163,6 @@ E7A30F04A3981B5400000000 E7A30F04F670175300000000 E7A30F04013401F900000000 - E7A30F041289FAA500000000 E7A30F045B494B0E00000000 E7A30F044A7BFD0D00000000 E7A30F045DDA07D700000000 @@ -2553,6 +2547,13 @@ fileRef 1DD70E292F91702000000000 + E7A30F04AD66967300000000 + + isa + PBXBuildFile + fileRef + 1DD70E29AD66967300000000 + E7A30F04F40A586F00000000 isa @@ -2842,6 +2843,7 @@ E7A30F04524F478E00000000 E7A30F04DF758A8500000000 E7A30F042F91702000000000 + E7A30F04AD66967300000000 E7A30F04F40A586F00000000 E7A30F046C9831F100000000 E7A30F04A59C927400000000 diff --git a/submodules/PeerInfoUI/PeerInfoUI_Xcode.xcodeproj/project.pbxproj b/submodules/PeerInfoUI/PeerInfoUI_Xcode.xcodeproj/project.pbxproj index 3b58668939..2f3aa2c5bb 100644 --- a/submodules/PeerInfoUI/PeerInfoUI_Xcode.xcodeproj/project.pbxproj +++ b/submodules/PeerInfoUI/PeerInfoUI_Xcode.xcodeproj/project.pbxproj @@ -88,7 +88,6 @@ D03E41182304D2690049C28B /* LocationUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41172304D2690049C28B /* LocationUI.framework */; }; D03E411A2304D27E0049C28B /* StickerResources.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41192304D27E0049C28B /* StickerResources.framework */; }; D03E411C2304D2870049C28B /* StickerPackPreviewUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E411B2304D2870049C28B /* StickerPackPreviewUI.framework */; }; - D03E411E2304D2C20049C28B /* FrameworkBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E411D2304D2C20049C28B /* FrameworkBundle.swift */; }; D03E41212304D3040049C28B /* UserInfoEditingPhoneItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E411F2304D3030049C28B /* UserInfoEditingPhoneItem.swift */; }; D03E41222304D3040049C28B /* UserInfoEditingPhoneActionItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E41202304D3040049C28B /* UserInfoEditingPhoneActionItem.swift */; }; D03E41432304D4010049C28B /* PeerAvatarGalleryUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E41422304D4010049C28B /* PeerAvatarGalleryUI.framework */; }; @@ -100,6 +99,7 @@ D03E428823056B590049C28B /* NotificationSoundSelectionUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E428723056B590049C28B /* NotificationSoundSelectionUI.framework */; }; D03E42B223056C6E0049C28B /* EncryptionKeyVisualization.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E42B123056C6D0049C28B /* EncryptionKeyVisualization.framework */; }; D03E42E42305724A0049C28B /* ItemListAddressItem.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E42E32305724A0049C28B /* ItemListAddressItem.framework */; }; + D0EFF26C2319829500CF5164 /* AppBundle.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0EFF26B2319829500CF5164 /* AppBundle.framework */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -186,7 +186,6 @@ D03E41172304D2690049C28B /* LocationUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = LocationUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D03E41192304D27E0049C28B /* StickerResources.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = StickerResources.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D03E411B2304D2870049C28B /* StickerPackPreviewUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = StickerPackPreviewUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - D03E411D2304D2C20049C28B /* FrameworkBundle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FrameworkBundle.swift; sourceTree = ""; }; D03E411F2304D3030049C28B /* UserInfoEditingPhoneItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserInfoEditingPhoneItem.swift; sourceTree = ""; }; D03E41202304D3040049C28B /* UserInfoEditingPhoneActionItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserInfoEditingPhoneActionItem.swift; sourceTree = ""; }; D03E41422304D4010049C28B /* PeerAvatarGalleryUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = PeerAvatarGalleryUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -198,6 +197,7 @@ D03E428723056B590049C28B /* NotificationSoundSelectionUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = NotificationSoundSelectionUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D03E42B123056C6D0049C28B /* EncryptionKeyVisualization.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = EncryptionKeyVisualization.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D03E42E32305724A0049C28B /* ItemListAddressItem.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ItemListAddressItem.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D0EFF26B2319829500CF5164 /* AppBundle.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AppBundle.framework; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -205,6 +205,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + D0EFF26C2319829500CF5164 /* AppBundle.framework in Frameworks */, D03E42E42305724A0049C28B /* ItemListAddressItem.framework in Frameworks */, D03E42B223056C6E0049C28B /* EncryptionKeyVisualization.framework in Frameworks */, D03E428823056B590049C28B /* NotificationSoundSelectionUI.framework in Frameworks */, @@ -323,7 +324,6 @@ D03E407B2304D1190049C28B /* SecretChatKeyController.swift */, D03E407D2304D1190049C28B /* SecretChatKeyControllerNode.swift */, D03E408E2304D11D0049C28B /* UserInfoController.swift */, - D03E411D2304D2C20049C28B /* FrameworkBundle.swift */, D03E406C2304D0B30049C28B /* PeerInfoUI.h */, ); path = Sources; @@ -332,6 +332,7 @@ D03E40C82304D13C0049C28B /* Frameworks */ = { isa = PBXGroup; children = ( + D0EFF26B2319829500CF5164 /* AppBundle.framework */, D03E42E32305724A0049C28B /* ItemListAddressItem.framework */, D03E42B123056C6D0049C28B /* EncryptionKeyVisualization.framework */, D03E428723056B590049C28B /* NotificationSoundSelectionUI.framework */, @@ -491,7 +492,6 @@ D03E40B12304D1240049C28B /* ConvertToSupergroupController.swift in Sources */, D03E41222304D3040049C28B /* UserInfoEditingPhoneActionItem.swift in Sources */, D03E40A72304D1240049C28B /* ItemListSecretChatKeyItem.swift in Sources */, - D03E411E2304D2C20049C28B /* FrameworkBundle.swift in Sources */, D03E40BD2304D1240049C28B /* ChannelStatsControllerNode.swift in Sources */, D03E40AC2304D1240049C28B /* ChannelDiscussionGroupActionSheetItem.swift in Sources */, D03E40A62304D1240049C28B /* ChannelDiscussionGroupSetupController.swift in Sources */, diff --git a/submodules/PeerInfoUI/Sources/ChannelDiscussionGroupSetupHeaderItem.swift b/submodules/PeerInfoUI/Sources/ChannelDiscussionGroupSetupHeaderItem.swift index 644872f784..03aba65955 100644 --- a/submodules/PeerInfoUI/Sources/ChannelDiscussionGroupSetupHeaderItem.swift +++ b/submodules/PeerInfoUI/Sources/ChannelDiscussionGroupSetupHeaderItem.swift @@ -6,6 +6,7 @@ import SwiftSignalKit import TelegramPresentationData import ItemListUI import TextFormat +import AppBundle class ChannelDiscussionGroupSetupHeaderItem: ListViewItem, ItemListItem { let theme: PresentationTheme diff --git a/submodules/PeerInfoUI/Sources/FrameworkBundle.swift b/submodules/PeerInfoUI/Sources/FrameworkBundle.swift deleted file mode 100644 index 8ca13d7d92..0000000000 --- a/submodules/PeerInfoUI/Sources/FrameworkBundle.swift +++ /dev/null @@ -1,13 +0,0 @@ -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) - } -} diff --git a/submodules/PeerInfoUI/Sources/GroupInfoController.swift b/submodules/PeerInfoUI/Sources/GroupInfoController.swift index e4efa8bec2..11ba952010 100644 --- a/submodules/PeerInfoUI/Sources/GroupInfoController.swift +++ b/submodules/PeerInfoUI/Sources/GroupInfoController.swift @@ -33,6 +33,7 @@ import NotificationMuteSettingsUI import MapResourceToAvatarSizes import NotificationSoundSelectionUI import ItemListAddressItem +import AppBundle private final class GroupInfoArguments { let context: AccountContext diff --git a/submodules/PeerInfoUI/Sources/GroupStickerPackCurrentItem.swift b/submodules/PeerInfoUI/Sources/GroupStickerPackCurrentItem.swift index afd9cfd188..1f9fa3103d 100644 --- a/submodules/PeerInfoUI/Sources/GroupStickerPackCurrentItem.swift +++ b/submodules/PeerInfoUI/Sources/GroupStickerPackCurrentItem.swift @@ -9,6 +9,7 @@ import TelegramPresentationData import ItemListUI import ActivityIndicator import StickerResources +import AppBundle enum GroupStickerPackCurrentItemContent: Equatable { case notFound diff --git a/submodules/PeerInfoUI/Sources/UserInfoEditingPhoneItem.swift b/submodules/PeerInfoUI/Sources/UserInfoEditingPhoneItem.swift index 30aa46a336..6dcadd8838 100644 --- a/submodules/PeerInfoUI/Sources/UserInfoEditingPhoneItem.swift +++ b/submodules/PeerInfoUI/Sources/UserInfoEditingPhoneItem.swift @@ -6,6 +6,7 @@ import SwiftSignalKit import TelegramPresentationData import ItemListUI import SinglePhoneInputNode +import AppBundle private func generateClearIcon(color: UIColor) -> UIImage? { return generateTintedImage(image: UIImage(bundleImageName: "Components/Search Bar/Clear"), color: color) diff --git a/submodules/PeersNearbyUI/BUCK b/submodules/PeersNearbyUI/BUCK index db334b0278..385a18107f 100644 --- a/submodules/PeersNearbyUI/BUCK +++ b/submodules/PeersNearbyUI/BUCK @@ -23,6 +23,7 @@ static_library( "//submodules/ItemListPeerActionItem:ItemListPeerActionItem", "//submodules/PeersNearbyIconNode:PeersNearbyIconNode", "//submodules/Geocoding:Geocoding", + "//submodules/AppBundle:AppBundle", ], frameworks = [ "$SDKROOT/System/Library/Frameworks/Foundation.framework", diff --git a/submodules/PeersNearbyUI/PeersNearbyUI.xcodeproj/project.pbxproj b/submodules/PeersNearbyUI/PeersNearbyUI.xcodeproj/project.pbxproj index 7c93e8edb1..a1c4fa5ad1 100644 --- a/submodules/PeersNearbyUI/PeersNearbyUI.xcodeproj/project.pbxproj +++ b/submodules/PeersNearbyUI/PeersNearbyUI.xcodeproj/project.pbxproj @@ -635,17 +635,6 @@ explicitFileType text.script.python - 1DD70E291289FAA500000000 - - isa - PBXFileReference - name - FrameworkBundle.swift - path - Sources/FrameworkBundle.swift - sourceTree - SOURCE_ROOT - 1DD70E299F0A867100000000 isa @@ -678,7 +667,6 @@ ]]> children - 1DD70E291289FAA500000000 1DD70E299F0A867100000000 1DD70E29B2209B1500000000 @@ -739,13 +727,6 @@ B401C979C806358400000000 - E7A30F041289FAA500000000 - - isa - PBXBuildFile - fileRef - 1DD70E291289FAA500000000 - E7A30F049F0A867100000000 isa @@ -766,7 +747,6 @@ PBXSourcesBuildPhase files - E7A30F041289FAA500000000 E7A30F049F0A867100000000 E7A30F04B2209B1500000000 diff --git a/submodules/PeersNearbyUI/PeersNearbyUI_Xcode.xcodeproj/project.pbxproj b/submodules/PeersNearbyUI/PeersNearbyUI_Xcode.xcodeproj/project.pbxproj index d885b8832e..3e1b88675b 100644 --- a/submodules/PeersNearbyUI/PeersNearbyUI_Xcode.xcodeproj/project.pbxproj +++ b/submodules/PeersNearbyUI/PeersNearbyUI_Xcode.xcodeproj/project.pbxproj @@ -28,8 +28,8 @@ D03E402F2304CD100049C28B /* TelegramPermissionsUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E402E2304CD100049C28B /* TelegramPermissionsUI.framework */; }; D03E40312304CD170049C28B /* ItemListPeerActionItem.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E40302304CD170049C28B /* ItemListPeerActionItem.framework */; }; D03E40332304CD220049C28B /* PeersNearbyIconNode.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E40322304CD220049C28B /* PeersNearbyIconNode.framework */; }; - D03E40372304CD6C0049C28B /* FrameworkBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E40362304CD6C0049C28B /* FrameworkBundle.swift */; }; D03E405B2304CE8B0049C28B /* Geocoding.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E405A2304CE8B0049C28B /* Geocoding.framework */; }; + D0EFF26E231982AF00CF5164 /* AppBundle.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0EFF26D231982AF00CF5164 /* AppBundle.framework */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -56,8 +56,8 @@ D03E402E2304CD100049C28B /* TelegramPermissionsUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramPermissionsUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D03E40302304CD170049C28B /* ItemListPeerActionItem.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ItemListPeerActionItem.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D03E40322304CD220049C28B /* PeersNearbyIconNode.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = PeersNearbyIconNode.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - D03E40362304CD6C0049C28B /* FrameworkBundle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FrameworkBundle.swift; sourceTree = ""; }; D03E405A2304CE8B0049C28B /* Geocoding.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Geocoding.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D0EFF26D231982AF00CF5164 /* AppBundle.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AppBundle.framework; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -65,6 +65,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + D0EFF26E231982AF00CF5164 /* AppBundle.framework in Frameworks */, D03E405B2304CE8B0049C28B /* Geocoding.framework in Frameworks */, D03E40332304CD220049C28B /* PeersNearbyIconNode.framework in Frameworks */, D03E40312304CD170049C28B /* ItemListPeerActionItem.framework in Frameworks */, @@ -113,7 +114,6 @@ children = ( D03E400B2304CCBD0049C28B /* PeersNearbyController.swift */, D03E400C2304CCBD0049C28B /* PeersNearbyHeaderItem.swift */, - D03E40362304CD6C0049C28B /* FrameworkBundle.swift */, D03E3FFF2304CC5C0049C28B /* PeersNearbyUI.h */, ); path = Sources; @@ -122,6 +122,7 @@ D03E400F2304CCCD0049C28B /* Frameworks */ = { isa = PBXGroup; children = ( + D0EFF26D231982AF00CF5164 /* AppBundle.framework */, D03E405A2304CE8B0049C28B /* Geocoding.framework */, D03E40322304CD220049C28B /* PeersNearbyIconNode.framework */, D03E40302304CD170049C28B /* ItemListPeerActionItem.framework */, @@ -227,7 +228,6 @@ files = ( D03E400E2304CCBD0049C28B /* PeersNearbyHeaderItem.swift in Sources */, D03E400D2304CCBD0049C28B /* PeersNearbyController.swift in Sources */, - D03E40372304CD6C0049C28B /* FrameworkBundle.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/submodules/PeersNearbyUI/Sources/FrameworkBundle.swift b/submodules/PeersNearbyUI/Sources/FrameworkBundle.swift deleted file mode 100644 index 8ca13d7d92..0000000000 --- a/submodules/PeersNearbyUI/Sources/FrameworkBundle.swift +++ /dev/null @@ -1,13 +0,0 @@ -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) - } -} diff --git a/submodules/PeersNearbyUI/Sources/PeersNearbyController.swift b/submodules/PeersNearbyUI/Sources/PeersNearbyController.swift index d2b0248f05..cd5c41fe47 100644 --- a/submodules/PeersNearbyUI/Sources/PeersNearbyController.swift +++ b/submodules/PeersNearbyUI/Sources/PeersNearbyController.swift @@ -16,6 +16,7 @@ import ItemListPeerItem import TelegramPermissionsUI import ItemListPeerActionItem import Geocoding +import AppBundle private struct PeerNearbyEntry { let peer: (Peer, CachedPeerData?) diff --git a/submodules/PhotoResources/BUCK b/submodules/PhotoResources/BUCK index 20e31302f8..6629d4dcae 100644 --- a/submodules/PhotoResources/BUCK +++ b/submodules/PhotoResources/BUCK @@ -18,6 +18,7 @@ static_library( "//submodules/MediaResources:MediaResources", "//submodules/TelegramUIPreferences:TelegramUIPreferences", "//submodules/WebP:WebPImage", + "//submodules/AppBundle:AppBundle", ], frameworks = [ "$SDKROOT/System/Library/Frameworks/Foundation.framework", diff --git a/submodules/PhotoResources/PhotoResources.xcodeproj/project.pbxproj b/submodules/PhotoResources/PhotoResources.xcodeproj/project.pbxproj index 0a74e40a11..f7ad8d7d31 100644 --- a/submodules/PhotoResources/PhotoResources.xcodeproj/project.pbxproj +++ b/submodules/PhotoResources/PhotoResources.xcodeproj/project.pbxproj @@ -383,17 +383,6 @@ explicitFileType text.script.python - 1DD70E291289FAA500000000 - - isa - PBXFileReference - name - FrameworkBundle.swift - path - Sources/FrameworkBundle.swift - sourceTree - SOURCE_ROOT - 1DD70E2925EE3C9800000000 isa @@ -415,7 +404,6 @@ ]]> children - 1DD70E291289FAA500000000 1DD70E2925EE3C9800000000 @@ -475,13 +463,6 @@ B401C979C806358400000000 - E7A30F041289FAA500000000 - - isa - PBXBuildFile - fileRef - 1DD70E291289FAA500000000 - E7A30F0425EE3C9800000000 isa @@ -495,7 +476,6 @@ PBXSourcesBuildPhase files - E7A30F041289FAA500000000 E7A30F0425EE3C9800000000 diff --git a/submodules/PhotoResources/PhotoResources_Xcode.xcodeproj/project.pbxproj b/submodules/PhotoResources/PhotoResources_Xcode.xcodeproj/project.pbxproj index 4714e52419..32accaaa4b 100644 --- a/submodules/PhotoResources/PhotoResources_Xcode.xcodeproj/project.pbxproj +++ b/submodules/PhotoResources/PhotoResources_Xcode.xcodeproj/project.pbxproj @@ -24,8 +24,8 @@ D0C9C0CB22FE3E1200FAB518 /* Tuples.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C0CA22FE3E1200FAB518 /* Tuples.framework */; }; D0C9C0CD22FE3E1700FAB518 /* ImageBlur.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C0CC22FE3E1700FAB518 /* ImageBlur.framework */; }; D0C9C0F522FE3F8400FAB518 /* TinyThumbnail.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C0F422FE3F8400FAB518 /* TinyThumbnail.framework */; }; - D0C9C0F922FE3FA500FAB518 /* FrameworkBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C0F822FE3FA500FAB518 /* FrameworkBundle.swift */; }; D0C9C11F22FE40B500FAB518 /* ImageTransparency.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C11E22FE40B500FAB518 /* ImageTransparency.framework */; }; + D0EFF24A231980A700CF5164 /* AppBundle.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0EFF249231980A700CF5164 /* AppBundle.framework */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -48,8 +48,8 @@ D0C9C0CA22FE3E1200FAB518 /* Tuples.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Tuples.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D0C9C0CC22FE3E1700FAB518 /* ImageBlur.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ImageBlur.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D0C9C0F422FE3F8400FAB518 /* TinyThumbnail.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TinyThumbnail.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - D0C9C0F822FE3FA500FAB518 /* FrameworkBundle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FrameworkBundle.swift; sourceTree = ""; }; D0C9C11E22FE40B500FAB518 /* ImageTransparency.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ImageTransparency.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D0EFF249231980A700CF5164 /* AppBundle.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AppBundle.framework; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -57,6 +57,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + D0EFF24A231980A700CF5164 /* AppBundle.framework in Frameworks */, D0C9C11F22FE40B500FAB518 /* ImageTransparency.framework in Frameworks */, D0C9C0F522FE3F8400FAB518 /* TinyThumbnail.framework in Frameworks */, D0C9C0CD22FE3E1700FAB518 /* ImageBlur.framework in Frameworks */, @@ -101,7 +102,6 @@ isa = PBXGroup; children = ( D0C9C0AF22FE3DB800FAB518 /* PhotoResources.swift */, - D0C9C0F822FE3FA500FAB518 /* FrameworkBundle.swift */, D0C9C0A322FE3D6200FAB518 /* PhotoResources.h */, ); path = Sources; @@ -110,6 +110,7 @@ D0C9C0B122FE3DD000FAB518 /* Frameworks */ = { isa = PBXGroup; children = ( + D0EFF249231980A700CF5164 /* AppBundle.framework */, D0C9C11E22FE40B500FAB518 /* ImageTransparency.framework */, D0C9C0F422FE3F8400FAB518 /* TinyThumbnail.framework */, D0C9C0CC22FE3E1700FAB518 /* ImageBlur.framework */, @@ -210,7 +211,6 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - D0C9C0F922FE3FA500FAB518 /* FrameworkBundle.swift in Sources */, D0C9C0B022FE3DB800FAB518 /* PhotoResources.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; diff --git a/submodules/PhotoResources/Sources/FrameworkBundle.swift b/submodules/PhotoResources/Sources/FrameworkBundle.swift deleted file mode 100644 index 8ca13d7d92..0000000000 --- a/submodules/PhotoResources/Sources/FrameworkBundle.swift +++ /dev/null @@ -1,13 +0,0 @@ -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) - } -} diff --git a/submodules/PhotoResources/Sources/PhotoResources.swift b/submodules/PhotoResources/Sources/PhotoResources.swift index d98806e57b..e4723c30a8 100644 --- a/submodules/PhotoResources/Sources/PhotoResources.swift +++ b/submodules/PhotoResources/Sources/PhotoResources.swift @@ -18,6 +18,7 @@ import Tuples import ImageBlur import TinyThumbnail import ImageTransparency +import AppBundle private enum ResourceFileData { case data(Data) diff --git a/submodules/RLottie/BUCK b/submodules/RLottie/BUCK index b01fcc8165..a200dc3256 100644 --- a/submodules/RLottie/BUCK +++ b/submodules/RLottie/BUCK @@ -4,7 +4,7 @@ static_library( name = "RLottie", srcs = glob([ "Sources/rlottie/src/**/*.cpp", - ]) + [ + ], exclude = ["Sources/rlottie/src/vector/vdrawhelper_neon.cpp"]) + [ "Sources/LottieInstance.mm" ], headers = glob([ diff --git a/submodules/RLottie/RLottie.xcodeproj/project.pbxproj b/submodules/RLottie/RLottie.xcodeproj/project.pbxproj index 1312fed162..8d581eb436 100644 --- a/submodules/RLottie/RLottie.xcodeproj/project.pbxproj +++ b/submodules/RLottie/RLottie.xcodeproj/project.pbxproj @@ -1378,19 +1378,6 @@ lastKnownFileType sourcecode.c.h - 1DD70E297B64F10200000000 - - isa - PBXFileReference - name - vdrawhelper_neon.cpp - path - Sources/rlottie/src/vector/vdrawhelper_neon.cpp - sourceTree - SOURCE_ROOT - lastKnownFileType - sourcecode.cpp.cpp - 1DD70E295304167900000000 isa @@ -1761,7 +1748,6 @@ 1DD70E29B3093C0E00000000 1DD70E296402559D00000000 1DD70E298C398AE200000000 - 1DD70E297B64F10200000000 1DD70E295304167900000000 1DD70E29A69935F400000000 1DD70E29B6EA94F900000000 @@ -2040,13 +2026,6 @@ fileRef 1DD70E296402559D00000000 - E7A30F047B64F10200000000 - - isa - PBXBuildFile - fileRef - 1DD70E297B64F10200000000 - E7A30F045304167900000000 isa @@ -2158,7 +2137,6 @@ E7A30F048DF7C3D200000000 E7A30F0415AA6BC900000000 E7A30F046402559D00000000 - E7A30F047B64F10200000000 E7A30F045304167900000000 E7A30F04A69935F400000000 E7A30F0447A291AD00000000 diff --git a/submodules/ReactionSelectionNode/ReactionSelectionNode.xcodeproj/project.pbxproj b/submodules/ReactionSelectionNode/ReactionSelectionNode.xcodeproj/project.pbxproj index c95a40b9dd..b61bbac9d2 100644 --- a/submodules/ReactionSelectionNode/ReactionSelectionNode.xcodeproj/project.pbxproj +++ b/submodules/ReactionSelectionNode/ReactionSelectionNode.xcodeproj/project.pbxproj @@ -182,6 +182,19 @@ explicitFileType compiled.mach-o.dylib + 1DD70E2984A59C1D00000000 + + isa + PBXFileReference + name + libTelegramPresentationData.a + path + libTelegramPresentationData.a + sourceTree + BUILT_PRODUCTS_DIR + explicitFileType + archive.ar + 1DD70E292395015100000000 isa @@ -226,6 +239,7 @@ 1DD70E293594DCC000000000 1DD70E29D65BA68200000000 1DD70E29119CDA0700000000 + 1DD70E2984A59C1D00000000 1DD70E292395015100000000 1DD70E29CD296A8300000000 @@ -269,6 +283,17 @@ explicitFileType text.script.python + 1DD70E29CCCE0EED00000000 + + isa + PBXFileReference + name + ReactionContextNode.swift + path + Sources/ReactionContextNode.swift + sourceTree + SOURCE_ROOT + 1DD70E2930A5FA5800000000 isa @@ -323,6 +348,7 @@ ]]> children + 1DD70E29CCCE0EED00000000 1DD70E2930A5FA5800000000 1DD70E29691388CA00000000 1DD70E29962E1AD400000000 @@ -359,6 +385,13 @@ B401C979E09F1DE500000000 + E7A30F04CCCE0EED00000000 + + isa + PBXBuildFile + fileRef + 1DD70E29CCCE0EED00000000 + E7A30F0430A5FA5800000000 isa @@ -393,6 +426,7 @@ PBXSourcesBuildPhase files + E7A30F04CCCE0EED00000000 E7A30F0430A5FA5800000000 E7A30F04691388CA00000000 E7A30F04962E1AD400000000 @@ -469,6 +503,13 @@ fileRef 1DD70E292420028600000000 + E7A30F0484A59C1D00000000 + + isa + PBXBuildFile + fileRef + 1DD70E2984A59C1D00000000 + FAF5FAC90000000000000000 isa @@ -485,6 +526,7 @@ E7A30F04CD296A8300000000 E7A30F043594DCC000000000 E7A30F042420028600000000 + E7A30F0484A59C1D00000000 name Fake Swift Dependencies (Copy Files Phase) diff --git a/submodules/ReactionSelectionNode/Sources/ReactionSelectionNode.swift b/submodules/ReactionSelectionNode/Sources/ReactionSelectionNode.swift index 77c5fa1c2c..8ebb44a1f8 100644 --- a/submodules/ReactionSelectionNode/Sources/ReactionSelectionNode.swift +++ b/submodules/ReactionSelectionNode/Sources/ReactionSelectionNode.swift @@ -5,6 +5,7 @@ import Display import Postbox import TelegramCore import TelegramPresentationData +import AppBundle private func generateBubbleImage(foreground: UIColor, diameter: CGFloat, shadowBlur: CGFloat) -> UIImage? { return generateImage(CGSize(width: diameter + shadowBlur * 2.0, height: diameter + shadowBlur * 2.0), rotatedContext: { size, context in @@ -137,7 +138,7 @@ final class ReactionNode: ASDisplayNode { self.animationNode.setup(account: account, resource: .localFile(path), width: Int(renderSize.width), height: Int(renderSize.height), mode: .direct) case .reply: self.intrinsicOffset = CGPoint(x: 0.0, y: 0.0) - self.imageNode.image = UIImage(named: "Chat/Context Menu/ReactionReply", in: Bundle(for: ReactionNode.self), compatibleWith: nil) + self.imageNode.image = UIImage(named: "Chat/Context Menu/ReactionReply", in: getAppBundle(), compatibleWith: nil) } self.intrinsicSize = intrinsicSize diff --git a/submodules/SearchBarNode/BUCK b/submodules/SearchBarNode/BUCK index 6ef61f903d..b84e9214e4 100644 --- a/submodules/SearchBarNode/BUCK +++ b/submodules/SearchBarNode/BUCK @@ -11,6 +11,7 @@ static_library( "//submodules/Display:Display#shared", "//submodules/TelegramPresentationData:TelegramPresentationData", "//submodules/ActivityIndicator:ActivityIndicator", + "//submodules/AppBundle:AppBundle", ], frameworks = [ "$SDKROOT/System/Library/Frameworks/Foundation.framework", diff --git a/submodules/SearchBarNode/SearchBarNode.xcodeproj/project.pbxproj b/submodules/SearchBarNode/SearchBarNode.xcodeproj/project.pbxproj index 98b54c6dc7..68305271fa 100644 --- a/submodules/SearchBarNode/SearchBarNode.xcodeproj/project.pbxproj +++ b/submodules/SearchBarNode/SearchBarNode.xcodeproj/project.pbxproj @@ -241,17 +241,6 @@ explicitFileType text.script.python - 1DD70E291289FAA500000000 - - isa - PBXFileReference - name - FrameworkBundle.swift - path - Sources/FrameworkBundle.swift - sourceTree - SOURCE_ROOT - 1DD70E29F6E36EB200000000 isa @@ -284,7 +273,6 @@ ]]> children - 1DD70E291289FAA500000000 1DD70E29F6E36EB200000000 1DD70E29033E088F00000000 @@ -319,13 +307,6 @@ B401C9796A2B91CD00000000 - E7A30F041289FAA500000000 - - isa - PBXBuildFile - fileRef - 1DD70E291289FAA500000000 - E7A30F04F6E36EB200000000 isa @@ -346,7 +327,6 @@ PBXSourcesBuildPhase files - E7A30F041289FAA500000000 E7A30F04F6E36EB200000000 E7A30F04033E088F00000000 diff --git a/submodules/SearchBarNode/SearchBarNode_Xcode.xcodeproj/project.pbxproj b/submodules/SearchBarNode/SearchBarNode_Xcode.xcodeproj/project.pbxproj index 7738fbad24..cac7f8d5a1 100644 --- a/submodules/SearchBarNode/SearchBarNode_Xcode.xcodeproj/project.pbxproj +++ b/submodules/SearchBarNode/SearchBarNode_Xcode.xcodeproj/project.pbxproj @@ -17,7 +17,7 @@ D0C9C2DD2300A3A000FAB518 /* Display.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C2DC2300A3A000FAB518 /* Display.framework */; }; D0C9C2DF2300A3A400FAB518 /* TelegramPresentationData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C2DE2300A3A400FAB518 /* TelegramPresentationData.framework */; }; D0C9C2E12300A3A800FAB518 /* ActivityIndicator.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C2E02300A3A800FAB518 /* ActivityIndicator.framework */; }; - D0C9C2E52300A44E00FAB518 /* FrameworkBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C2E42300A44E00FAB518 /* FrameworkBundle.swift */; }; + D0EFF250231980DD00CF5164 /* AppBundle.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0EFF24F231980DD00CF5164 /* AppBundle.framework */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -33,7 +33,7 @@ D0C9C2DC2300A3A000FAB518 /* Display.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Display.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D0C9C2DE2300A3A400FAB518 /* TelegramPresentationData.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramPresentationData.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D0C9C2E02300A3A800FAB518 /* ActivityIndicator.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ActivityIndicator.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - D0C9C2E42300A44E00FAB518 /* FrameworkBundle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FrameworkBundle.swift; sourceTree = ""; }; + D0EFF24F231980DD00CF5164 /* AppBundle.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AppBundle.framework; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -41,6 +41,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + D0EFF250231980DD00CF5164 /* AppBundle.framework in Frameworks */, D0C9C2E12300A3A800FAB518 /* ActivityIndicator.framework in Frameworks */, D0C9C2DF2300A3A400FAB518 /* TelegramPresentationData.framework in Frameworks */, D0C9C2DD2300A3A000FAB518 /* Display.framework in Frameworks */, @@ -77,7 +78,6 @@ children = ( D0C9C2CB2300A2C900FAB518 /* SearchBarNode.swift */, D0C9C2CC2300A2C900FAB518 /* SearchBarPlaceholderNode.swift */, - D0C9C2E42300A44E00FAB518 /* FrameworkBundle.swift */, D0C9C2C32300A21900FAB518 /* SearchBarNode.h */, ); path = Sources; @@ -86,6 +86,7 @@ D0C9C2D32300A38F00FAB518 /* Frameworks */ = { isa = PBXGroup; children = ( + D0EFF24F231980DD00CF5164 /* AppBundle.framework */, D0C9C2E02300A3A800FAB518 /* ActivityIndicator.framework */, D0C9C2DE2300A3A400FAB518 /* TelegramPresentationData.framework */, D0C9C2DC2300A3A000FAB518 /* Display.framework */, @@ -179,7 +180,6 @@ files = ( D0C9C2CD2300A2C900FAB518 /* SearchBarNode.swift in Sources */, D0C9C2CE2300A2C900FAB518 /* SearchBarPlaceholderNode.swift in Sources */, - D0C9C2E52300A44E00FAB518 /* FrameworkBundle.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/submodules/SearchBarNode/Sources/FrameworkBundle.swift b/submodules/SearchBarNode/Sources/FrameworkBundle.swift deleted file mode 100644 index 8ca13d7d92..0000000000 --- a/submodules/SearchBarNode/Sources/FrameworkBundle.swift +++ /dev/null @@ -1,13 +0,0 @@ -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) - } -} diff --git a/submodules/SearchBarNode/Sources/SearchBarNode.swift b/submodules/SearchBarNode/Sources/SearchBarNode.swift index de5796027a..0ce38d027b 100644 --- a/submodules/SearchBarNode/Sources/SearchBarNode.swift +++ b/submodules/SearchBarNode/Sources/SearchBarNode.swift @@ -5,6 +5,7 @@ import AsyncDisplayKit import Display import TelegramPresentationData import ActivityIndicator +import AppBundle private func generateLoupeIcon(color: UIColor) -> UIImage? { return generateTintedImage(image: UIImage(bundleImageName: "Components/Search Bar/Loupe"), color: color) diff --git a/submodules/SearchBarNode/Sources/SearchBarPlaceholderNode.swift b/submodules/SearchBarNode/Sources/SearchBarPlaceholderNode.swift index d893379964..6a6a57036c 100644 --- a/submodules/SearchBarNode/Sources/SearchBarPlaceholderNode.swift +++ b/submodules/SearchBarNode/Sources/SearchBarPlaceholderNode.swift @@ -3,6 +3,7 @@ import UIKit import SwiftSignalKit import AsyncDisplayKit import Display +import AppBundle private let templateLoupeIcon = UIImage(bundleImageName: "Components/Search Bar/Loupe") diff --git a/submodules/SettingsUI/BUCK b/submodules/SettingsUI/BUCK index 920db9d758..793d024e10 100644 --- a/submodules/SettingsUI/BUCK +++ b/submodules/SettingsUI/BUCK @@ -74,6 +74,7 @@ static_library( "//submodules/CounterContollerTitleView:CounterContollerTitleView", "//submodules/GridMessageSelectionNode:GridMessageSelectionNode", "//submodules/InstantPageCache:InstantPageCache", + "//submodules/AppBundle:AppBundle", ], frameworks = [ "$SDKROOT/System/Library/Frameworks/Foundation.framework", diff --git a/submodules/SettingsUI/SettingsUI.xcodeproj/project.pbxproj b/submodules/SettingsUI/SettingsUI.xcodeproj/project.pbxproj index f71a632c67..559b07fe45 100644 --- a/submodules/SettingsUI/SettingsUI.xcodeproj/project.pbxproj +++ b/submodules/SettingsUI/SettingsUI.xcodeproj/project.pbxproj @@ -1869,32 +1869,6 @@ 1DD70E29B9DFD9CF00000000 - 1DD70E2903669CFD00000000 - - isa - PBXFileReference - name - LanguageSuggestionController.swift - path - Sources/Language Suggestion/LanguageSuggestionController.swift - sourceTree - SOURCE_ROOT - - B401C979F5742BCC00000000 - - isa - PBXGroup - name - Language Suggestion - path - Sources/Language Suggestion - sourceTree - SOURCE_ROOT - children - - 1DD70E2903669CFD00000000 - - 1DD70E296091158700000000 isa @@ -2402,6 +2376,17 @@ sourceTree SOURCE_ROOT + 1DD70E29F15EBD2000000000 + + isa + PBXFileReference + name + EditThemeController.swift + path + Sources/Themes/EditThemeController.swift + sourceTree + SOURCE_ROOT + 1DD70E2942938DA300000000 isa @@ -2413,17 +2398,6 @@ sourceTree SOURCE_ROOT - 1DD70E29B9A2B33E00000000 - - isa - PBXFileReference - name - ThemeAccentColorActionSheet.swift - path - Sources/Themes/ThemeAccentColorActionSheet.swift - sourceTree - SOURCE_ROOT - 1DD70E29EF5534B100000000 isa @@ -2789,8 +2763,8 @@ children 1DD70E29CA466CC400000000 + 1DD70E29F15EBD2000000000 1DD70E2942938DA300000000 - 1DD70E29B9A2B33E00000000 1DD70E29EF5534B100000000 1DD70E2972C0CF5300000000 1DD70E29A72D9BA400000000 @@ -2961,17 +2935,6 @@ sourceTree SOURCE_ROOT - 1DD70E291289FAA500000000 - - isa - PBXFileReference - name - FrameworkBundle.swift - path - Sources/FrameworkBundle.swift - sourceTree - SOURCE_ROOT - 1DD70E2913DCCEF500000000 isa @@ -3050,7 +3013,6 @@ B401C979E13BD9BC00000000 B401C9790AB0B6C400000000 - B401C979F5742BCC00000000 B401C9797B75C4C800000000 B401C979A728414100000000 B401C979935F51C800000000 @@ -3068,7 +3030,6 @@ 1DD70E294031FE9A00000000 1DD70E29593C8D9400000000 1DD70E29E31D6BCE00000000 - 1DD70E291289FAA500000000 1DD70E2913DCCEF500000000 1DD70E29A27BE59200000000 1DD70E29EF15E7A400000000 @@ -3240,13 +3201,6 @@ fileRef 1DD70E29B9DFD9CF00000000 - E7A30F0403669CFD00000000 - - isa - PBXBuildFile - fileRef - 1DD70E2903669CFD00000000 - E7A30F046091158700000000 isa @@ -3485,6 +3439,13 @@ fileRef 1DD70E29CA466CC400000000 + E7A30F04F15EBD2000000000 + + isa + PBXBuildFile + fileRef + 1DD70E29F15EBD2000000000 + E7A30F0442938DA300000000 isa @@ -3492,13 +3453,6 @@ fileRef 1DD70E2942938DA300000000 - E7A30F04B9A2B33E00000000 - - isa - PBXBuildFile - fileRef - 1DD70E29B9A2B33E00000000 - E7A30F04EF5534B100000000 isa @@ -3800,13 +3754,6 @@ fileRef 1DD70E29E31D6BCE00000000 - E7A30F041289FAA500000000 - - isa - PBXBuildFile - fileRef - 1DD70E291289FAA500000000 - E7A30F0413DCCEF500000000 isa @@ -3874,7 +3821,6 @@ E7A30F0469501A5800000000 E7A30F0403F2897A00000000 E7A30F04B9DFD9CF00000000 - E7A30F0403669CFD00000000 E7A30F046091158700000000 E7A30F04B4ED2B2800000000 E7A30F0489377CD400000000 @@ -3909,8 +3855,8 @@ E7A30F047D502A9800000000 E7A30F04FCF079BA00000000 E7A30F04CA466CC400000000 + E7A30F04F15EBD2000000000 E7A30F0442938DA300000000 - E7A30F04B9A2B33E00000000 E7A30F04EF5534B100000000 E7A30F0472C0CF5300000000 E7A30F04A72D9BA400000000 @@ -3954,7 +3900,6 @@ E7A30F044031FE9A00000000 E7A30F04593C8D9400000000 E7A30F04E31D6BCE00000000 - E7A30F041289FAA500000000 E7A30F0413DCCEF500000000 E7A30F04A27BE59200000000 E7A30F04EF15E7A400000000 diff --git a/submodules/SettingsUI/SettingsUI_Xcode.xcodeproj/project.pbxproj b/submodules/SettingsUI/SettingsUI_Xcode.xcodeproj/project.pbxproj index ee56911597..a8f9c95e95 100644 --- a/submodules/SettingsUI/SettingsUI_Xcode.xcodeproj/project.pbxproj +++ b/submodules/SettingsUI/SettingsUI_Xcode.xcodeproj/project.pbxproj @@ -173,7 +173,6 @@ D03E47B0230763510049C28B /* UniversalMediaPlayer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E47AF230763510049C28B /* UniversalMediaPlayer.framework */; }; D03E47B2230763570049C28B /* UrlEscaping.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E47B1230763570049C28B /* UrlEscaping.framework */; }; D03E47B42307635C0049C28B /* WebSearchUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E47B32307635C0049C28B /* WebSearchUI.framework */; }; - D03E47B8230766870049C28B /* FrameworkBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E47B7230766870049C28B /* FrameworkBundle.swift */; }; D03E47D5230767F40049C28B /* UrlHandling.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E47D4230767F40049C28B /* UrlHandling.framework */; }; D03E480C230769A30049C28B /* HexColor.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E480B230769A30049C28B /* HexColor.framework */; }; D03E483623076AE90049C28B /* QrCode.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E483523076AE90049C28B /* QrCode.framework */; }; @@ -188,6 +187,7 @@ D03E48E22308649C0049C28B /* CounterContollerTitleView.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E48E12308649C0049C28B /* CounterContollerTitleView.framework */; }; D03E490E2308661A0049C28B /* GridMessageSelectionNode.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E490D2308661A0049C28B /* GridMessageSelectionNode.framework */; }; D03E493A2308678D0049C28B /* InstantPageCache.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E49392308678D0049C28B /* InstantPageCache.framework */; }; + D0EFF26A2319825B00CF5164 /* AppBundle.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0EFF2692319825B00CF5164 /* AppBundle.framework */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -359,7 +359,6 @@ D03E47AF230763510049C28B /* UniversalMediaPlayer.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = UniversalMediaPlayer.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D03E47B1230763570049C28B /* UrlEscaping.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = UrlEscaping.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D03E47B32307635C0049C28B /* WebSearchUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = WebSearchUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - D03E47B7230766870049C28B /* FrameworkBundle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FrameworkBundle.swift; sourceTree = ""; }; D03E47D4230767F40049C28B /* UrlHandling.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = UrlHandling.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D03E480B230769A30049C28B /* HexColor.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = HexColor.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D03E483523076AE90049C28B /* QrCode.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = QrCode.framework; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -374,6 +373,7 @@ D03E48E12308649C0049C28B /* CounterContollerTitleView.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = CounterContollerTitleView.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D03E490D2308661A0049C28B /* GridMessageSelectionNode.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = GridMessageSelectionNode.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D03E49392308678D0049C28B /* InstantPageCache.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = InstantPageCache.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D0EFF2692319825B00CF5164 /* AppBundle.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AppBundle.framework; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -381,6 +381,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + D0EFF26A2319825B00CF5164 /* AppBundle.framework in Frameworks */, D03E493A2308678D0049C28B /* InstantPageCache.framework in Frameworks */, D03E490E2308661A0049C28B /* GridMessageSelectionNode.framework in Frameworks */, D03E48E22308649C0049C28B /* CounterContollerTitleView.framework in Frameworks */, @@ -508,7 +509,6 @@ D03E48AD230775800049C28B /* OpenSettings.swift */, D03E48AF230775EF0049C28B /* AccountUtils.swift */, D03E48B12307767A0049C28B /* CachedFaqInstantPage.swift */, - D03E47B7230766870049C28B /* FrameworkBundle.swift */, D03E465023075D930049C28B /* SettingsUI.h */, ); path = Sources; @@ -684,6 +684,7 @@ D03E4732230761E10049C28B /* Frameworks */ = { isa = PBXGroup; children = ( + D0EFF2692319825B00CF5164 /* AppBundle.framework */, D03E49392308678D0049C28B /* InstantPageCache.framework */, D03E490D2308661A0049C28B /* GridMessageSelectionNode.framework */, D03E48E12308649C0049C28B /* CounterContollerTitleView.framework */, @@ -864,7 +865,6 @@ D03E466E23075E660049C28B /* TabBarAccountSwitchController.swift in Sources */, D03E46D223075F810049C28B /* ShareProxyServerActionSheetController.swift in Sources */, D03E468A23075F010049C28B /* SettingsSearchRecentQueries.swift in Sources */, - D03E47B8230766870049C28B /* FrameworkBundle.swift in Sources */, D03E472023075FE40049C28B /* WallpaperGalleryItem.swift in Sources */, D03E471723075FE40049C28B /* WallpaperGalleryDecorationNode.swift in Sources */, D03E46B123075F4E0049C28B /* ItemListWebsiteItem.swift in Sources */, diff --git a/submodules/SettingsUI/Sources/ChangePhoneNumberIntroController.swift b/submodules/SettingsUI/Sources/ChangePhoneNumberIntroController.swift index b375516a91..dac4925bf2 100644 --- a/submodules/SettingsUI/Sources/ChangePhoneNumberIntroController.swift +++ b/submodules/SettingsUI/Sources/ChangePhoneNumberIntroController.swift @@ -7,6 +7,7 @@ import TelegramPresentationData import TextFormat import AccountContext import AlertUI +import AppBundle private final class ChangePhoneNumberIntroControllerNode: ASDisplayNode { var presentationData: PresentationData diff --git a/submodules/SettingsUI/Sources/FrameworkBundle.swift b/submodules/SettingsUI/Sources/FrameworkBundle.swift deleted file mode 100644 index 8ca13d7d92..0000000000 --- a/submodules/SettingsUI/Sources/FrameworkBundle.swift +++ /dev/null @@ -1,13 +0,0 @@ -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) - } -} diff --git a/submodules/SettingsUI/Sources/Privacy and Security/PrivacyAndSecurityController.swift b/submodules/SettingsUI/Sources/Privacy and Security/PrivacyAndSecurityController.swift index de63a01d1c..7d5d0daa79 100644 --- a/submodules/SettingsUI/Sources/Privacy and Security/PrivacyAndSecurityController.swift +++ b/submodules/SettingsUI/Sources/Privacy and Security/PrivacyAndSecurityController.swift @@ -11,6 +11,7 @@ import ItemListUI import AccountContext import TelegramNotices import LocalAuth +import AppBundle private final class PrivacyAndSecurityControllerArguments { let account: Account diff --git a/submodules/SettingsUI/Sources/Privacy and Security/PrivacyIntroController.swift b/submodules/SettingsUI/Sources/Privacy and Security/PrivacyIntroController.swift index 375825a803..32f06761eb 100644 --- a/submodules/SettingsUI/Sources/Privacy and Security/PrivacyIntroController.swift +++ b/submodules/SettingsUI/Sources/Privacy and Security/PrivacyIntroController.swift @@ -7,6 +7,7 @@ import SwiftSignalKit import TelegramCore import TelegramPresentationData import AccountContext +import AppBundle enum PrivacyIntroControllerMode { case passcode diff --git a/submodules/SettingsUI/Sources/Privacy and Security/Recent Sessions/RecentSessionsEmptyStateItem.swift b/submodules/SettingsUI/Sources/Privacy and Security/Recent Sessions/RecentSessionsEmptyStateItem.swift index 6498ea6b3a..914cabaa17 100644 --- a/submodules/SettingsUI/Sources/Privacy and Security/Recent Sessions/RecentSessionsEmptyStateItem.swift +++ b/submodules/SettingsUI/Sources/Privacy and Security/Recent Sessions/RecentSessionsEmptyStateItem.swift @@ -4,6 +4,7 @@ import AsyncDisplayKit import Display import TelegramPresentationData import ItemListUI +import AppBundle final class RecentSessionsEmptyStateItem: ItemListControllerEmptyStateItem { let theme: PresentationTheme diff --git a/submodules/SettingsUI/Sources/SettingsController.swift b/submodules/SettingsUI/Sources/SettingsController.swift index 0117d3c335..b310caa342 100644 --- a/submodules/SettingsUI/Sources/SettingsController.swift +++ b/submodules/SettingsUI/Sources/SettingsController.swift @@ -32,6 +32,7 @@ import ItemListPeerActionItem import WebSearchUI import PeerAvatarGalleryUI import MapResourceToAvatarSizes +import AppBundle private let maximumNumberOfAccounts = 3 diff --git a/submodules/SettingsUI/Sources/Themes/ThemeGridSelectionPanelNode.swift b/submodules/SettingsUI/Sources/Themes/ThemeGridSelectionPanelNode.swift index 84fec14728..b0a69c51b3 100644 --- a/submodules/SettingsUI/Sources/Themes/ThemeGridSelectionPanelNode.swift +++ b/submodules/SettingsUI/Sources/Themes/ThemeGridSelectionPanelNode.swift @@ -6,6 +6,7 @@ import Postbox import TelegramCore import SwiftSignalKit import TelegramPresentationData +import AppBundle final class ThemeGridSelectionPanelNode: ASDisplayNode { private let deleteButton: UIButton diff --git a/submodules/SettingsUI/Sources/Themes/ThemePreviewController.swift b/submodules/SettingsUI/Sources/Themes/ThemePreviewController.swift index ac0fe94c6d..ca21e976c0 100644 --- a/submodules/SettingsUI/Sources/Themes/ThemePreviewController.swift +++ b/submodules/SettingsUI/Sources/Themes/ThemePreviewController.swift @@ -12,6 +12,7 @@ import ShareController import CounterContollerTitleView import WallpaperResources import OverlayStatusController +import AppBundle public enum ThemePreviewSource { case theme(TelegramTheme) diff --git a/submodules/SettingsUI/Sources/Themes/ThemeSettingsBrightnessItem.swift b/submodules/SettingsUI/Sources/Themes/ThemeSettingsBrightnessItem.swift index 185e9551e8..eca45addbf 100644 --- a/submodules/SettingsUI/Sources/Themes/ThemeSettingsBrightnessItem.swift +++ b/submodules/SettingsUI/Sources/Themes/ThemeSettingsBrightnessItem.swift @@ -7,6 +7,7 @@ import TelegramCore import TelegramPresentationData import LegacyComponents import ItemListUI +import AppBundle class ThemeSettingsBrightnessItem: ListViewItem, ItemListItem { let theme: PresentationTheme diff --git a/submodules/SettingsUI/Sources/Themes/ThemeSettingsFontSizeItem.swift b/submodules/SettingsUI/Sources/Themes/ThemeSettingsFontSizeItem.swift index ae4ed1c593..4114eedb9d 100644 --- a/submodules/SettingsUI/Sources/Themes/ThemeSettingsFontSizeItem.swift +++ b/submodules/SettingsUI/Sources/Themes/ThemeSettingsFontSizeItem.swift @@ -8,6 +8,7 @@ import TelegramPresentationData import TelegramUIPreferences import LegacyComponents import ItemListUI +import AppBundle class ThemeSettingsFontSizeItem: ListViewItem, ItemListItem { let theme: PresentationTheme diff --git a/submodules/SettingsUI/Sources/Themes/ThemeSettingsThemeItem.swift b/submodules/SettingsUI/Sources/Themes/ThemeSettingsThemeItem.swift index 650577c8c4..d89d6a492a 100644 --- a/submodules/SettingsUI/Sources/Themes/ThemeSettingsThemeItem.swift +++ b/submodules/SettingsUI/Sources/Themes/ThemeSettingsThemeItem.swift @@ -10,6 +10,7 @@ import TelegramUIPreferences import ItemListUI import WallpaperResources import AccountContext +import AppBundle private var borderImages: [String: UIImage] = [:] diff --git a/submodules/SettingsUI/Sources/Themes/WallpaperGalleryItem.swift b/submodules/SettingsUI/Sources/Themes/WallpaperGalleryItem.swift index ff9ce3907d..f59516abd3 100644 --- a/submodules/SettingsUI/Sources/Themes/WallpaperGalleryItem.swift +++ b/submodules/SettingsUI/Sources/Themes/WallpaperGalleryItem.swift @@ -16,6 +16,7 @@ import PhotoResources import GalleryUI import LocalMediaResources import WallpaperResources +import AppBundle struct WallpaperGalleryItemArguments { let colorPreview: Bool diff --git a/submodules/ShareController/BUCK b/submodules/ShareController/BUCK index 2773dfd0e9..b1d58a8684 100644 --- a/submodules/ShareController/BUCK +++ b/submodules/ShareController/BUCK @@ -20,6 +20,7 @@ static_library( "//submodules/SelectablePeerNode:SelectablePeerNode", "//submodules/RadialStatusNode:RadialStatusNode", "//submodules/ActivityIndicator:ActivityIndicator", + "//submodules/AppBundle:AppBundle", ], frameworks = [ "$SDKROOT/System/Library/Frameworks/Foundation.framework", diff --git a/submodules/ShareController/ShareController.xcodeproj/project.pbxproj b/submodules/ShareController/ShareController.xcodeproj/project.pbxproj index ab7d3440bd..c0609aeeef 100644 --- a/submodules/ShareController/ShareController.xcodeproj/project.pbxproj +++ b/submodules/ShareController/ShareController.xcodeproj/project.pbxproj @@ -605,17 +605,6 @@ explicitFileType text.script.python - 1DD70E291289FAA500000000 - - isa - PBXFileReference - name - FrameworkBundle.swift - path - Sources/FrameworkBundle.swift - sourceTree - SOURCE_ROOT - 1DD70E299AA2B4EE00000000 isa @@ -747,7 +736,6 @@ ]]> children - 1DD70E291289FAA500000000 1DD70E299AA2B4EE00000000 1DD70E29A5E42C6E00000000 1DD70E291064AF2000000000 @@ -791,13 +779,6 @@ B401C9790C093CBB00000000 - E7A30F041289FAA500000000 - - isa - PBXBuildFile - fileRef - 1DD70E291289FAA500000000 - E7A30F049AA2B4EE00000000 isa @@ -881,7 +862,6 @@ PBXSourcesBuildPhase files - E7A30F041289FAA500000000 E7A30F049AA2B4EE00000000 E7A30F04A5E42C6E00000000 E7A30F041064AF2000000000 diff --git a/submodules/ShareController/ShareController_Xcode.xcodeproj/project.pbxproj b/submodules/ShareController/ShareController_Xcode.xcodeproj/project.pbxproj index 5b756903dd..427812cd56 100644 --- a/submodules/ShareController/ShareController_Xcode.xcodeproj/project.pbxproj +++ b/submodules/ShareController/ShareController_Xcode.xcodeproj/project.pbxproj @@ -27,7 +27,6 @@ D0879BC522F857E600C4D6B3 /* ShareSearchContainerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0879BC022F857E600C4D6B3 /* ShareSearchContainerNode.swift */; }; D0879BC622F857E600C4D6B3 /* ShareSearchBarNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0879BC122F857E600C4D6B3 /* ShareSearchBarNode.swift */; }; D0879BEC22F85F8500C4D6B3 /* RadialStatusNode.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879BEB22F85F8500C4D6B3 /* RadialStatusNode.framework */; }; - D0879C0722F8636500C4D6B3 /* FrameworkBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0879C0622F8636500C4D6B3 /* FrameworkBundle.swift */; }; D0879C3722F8733500C4D6B3 /* SelectablePeerNode.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879C3622F8733500C4D6B3 /* SelectablePeerNode.framework */; }; D0879C9422F875B900C4D6B3 /* PeerPresenceStatusManager.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879C9322F875B900C4D6B3 /* PeerPresenceStatusManager.framework */; }; D0879CCA22F876D700C4D6B3 /* ChatListSearchRecentPeersNode.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879CC922F876D700C4D6B3 /* ChatListSearchRecentPeersNode.framework */; }; @@ -35,6 +34,7 @@ D0879D9D22F87E7F00C4D6B3 /* LocalizedPeerData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879D9C22F87E7F00C4D6B3 /* LocalizedPeerData.framework */; }; D0879DBB22F87F2700C4D6B3 /* UrlEscaping.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879DBA22F87F2700C4D6B3 /* UrlEscaping.framework */; }; D0879DE822F8819E00C4D6B3 /* StickerResources.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0879DE722F8819E00C4D6B3 /* StickerResources.framework */; }; + D0EFF252231980F100CF5164 /* AppBundle.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0EFF251231980F100CF5164 /* AppBundle.framework */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -61,7 +61,6 @@ D0879BC022F857E600C4D6B3 /* ShareSearchContainerNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ShareSearchContainerNode.swift; sourceTree = ""; }; D0879BC122F857E600C4D6B3 /* ShareSearchBarNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ShareSearchBarNode.swift; sourceTree = ""; }; D0879BEB22F85F8500C4D6B3 /* RadialStatusNode.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = RadialStatusNode.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - D0879C0622F8636500C4D6B3 /* FrameworkBundle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FrameworkBundle.swift; sourceTree = ""; }; D0879C3622F8733500C4D6B3 /* SelectablePeerNode.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = SelectablePeerNode.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D0879C9322F875B900C4D6B3 /* PeerPresenceStatusManager.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = PeerPresenceStatusManager.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D0879CC922F876D700C4D6B3 /* ChatListSearchRecentPeersNode.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ChatListSearchRecentPeersNode.framework; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -69,6 +68,7 @@ D0879D9C22F87E7F00C4D6B3 /* LocalizedPeerData.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = LocalizedPeerData.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D0879DBA22F87F2700C4D6B3 /* UrlEscaping.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = UrlEscaping.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D0879DE722F8819E00C4D6B3 /* StickerResources.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = StickerResources.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D0EFF251231980F100CF5164 /* AppBundle.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AppBundle.framework; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -76,6 +76,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + D0EFF252231980F100CF5164 /* AppBundle.framework in Frameworks */, D038AC4F22F8883700320981 /* SaveToCameraRoll.framework in Frameworks */, D0879DE822F8819E00C4D6B3 /* StickerResources.framework in Frameworks */, D0879DBB22F87F2700C4D6B3 /* UrlEscaping.framework in Frameworks */, @@ -129,7 +130,6 @@ D0879BA222F854C600C4D6B3 /* ShareControllerNode.swift */, D0879BA722F854C700C4D6B3 /* ShareControllerPeerGridItem.swift */, D0879BA622F854C700C4D6B3 /* ShareControllerRecentPeersGridItem.swift */, - D0879C0622F8636500C4D6B3 /* FrameworkBundle.swift */, D0879B9622F8537800C4D6B3 /* ShareController.h */, ); path = Sources; @@ -138,6 +138,7 @@ D0879BAE22F854D200C4D6B3 /* Frameworks */ = { isa = PBXGroup; children = ( + D0EFF251231980F100CF5164 /* AppBundle.framework */, D038AC5022F889E600320981 /* libc++.tbd */, D038AC4E22F8883700320981 /* SaveToCameraRoll.framework */, D0879DE722F8819E00C4D6B3 /* StickerResources.framework */, @@ -246,7 +247,6 @@ D0879BC522F857E600C4D6B3 /* ShareSearchContainerNode.swift in Sources */, D0879BC622F857E600C4D6B3 /* ShareSearchBarNode.swift in Sources */, D0879BC322F857E600C4D6B3 /* ShareLoadingContainerNode.swift in Sources */, - D0879C0722F8636500C4D6B3 /* FrameworkBundle.swift in Sources */, D0879BA922F854C700C4D6B3 /* ShareController.swift in Sources */, D0879BAD22F854C700C4D6B3 /* ShareControllerPeerGridItem.swift in Sources */, D0879BAA22F854C700C4D6B3 /* ShareContentContainerNode.swift in Sources */, diff --git a/submodules/ShareController/Sources/FrameworkBundle.swift b/submodules/ShareController/Sources/FrameworkBundle.swift deleted file mode 100644 index 8ca13d7d92..0000000000 --- a/submodules/ShareController/Sources/FrameworkBundle.swift +++ /dev/null @@ -1,13 +0,0 @@ -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) - } -} diff --git a/submodules/ShareController/Sources/ShareInputFieldNode.swift b/submodules/ShareController/Sources/ShareInputFieldNode.swift index a365ae28cf..5a89d225c8 100644 --- a/submodules/ShareController/Sources/ShareInputFieldNode.swift +++ b/submodules/ShareController/Sources/ShareInputFieldNode.swift @@ -3,6 +3,7 @@ import UIKit import AsyncDisplayKit import Display import TelegramPresentationData +import AppBundle private func generateClearIcon(color: UIColor) -> UIImage? { return generateTintedImage(image: UIImage(bundleImageName: "Components/Search Bar/Clear"), color: color) diff --git a/submodules/ShareController/Sources/SharePeersContainerNode.swift b/submodules/ShareController/Sources/SharePeersContainerNode.swift index 5b933e3116..217b8469a7 100644 --- a/submodules/ShareController/Sources/SharePeersContainerNode.swift +++ b/submodules/ShareController/Sources/SharePeersContainerNode.swift @@ -10,6 +10,7 @@ import MergeLists import AvatarNode import AccountContext import PeerPresenceStatusManager +import AppBundle private let subtitleFont = Font.regular(12.0) diff --git a/submodules/ShareController/Sources/ShareSearchBarNode.swift b/submodules/ShareController/Sources/ShareSearchBarNode.swift index e623431ffc..af15892746 100644 --- a/submodules/ShareController/Sources/ShareSearchBarNode.swift +++ b/submodules/ShareController/Sources/ShareSearchBarNode.swift @@ -3,6 +3,7 @@ import UIKit import AsyncDisplayKit import Display import TelegramPresentationData +import AppBundle private func generateClearIcon(color: UIColor) -> UIImage? { return generateTintedImage(image: UIImage(bundleImageName: "Components/Search Bar/Clear"), color: color) diff --git a/submodules/TelegramCallsUI/BUCK b/submodules/TelegramCallsUI/BUCK index fa4f7a6a92..1d86a6b8f8 100644 --- a/submodules/TelegramCallsUI/BUCK +++ b/submodules/TelegramCallsUI/BUCK @@ -25,6 +25,7 @@ static_library( "//submodules/TelegramVoip:TelegramVoip", "//submodules/ItemListUI:ItemListUI", "//submodules/OverlayStatusController:OverlayStatusController", + "//submodules/AppBundle:AppBundle", ], frameworks = [ "$SDKROOT/System/Library/Frameworks/Foundation.framework", diff --git a/submodules/TelegramCallsUI/Sources/CallController.swift b/submodules/TelegramCallsUI/Sources/CallController.swift index 1d1bcf0cee..4962c6db50 100644 --- a/submodules/TelegramCallsUI/Sources/CallController.swift +++ b/submodules/TelegramCallsUI/Sources/CallController.swift @@ -11,6 +11,7 @@ import TelegramVoip import TelegramAudio import AccountContext import TelegramNotices +import AppBundle public final class CallController: ViewController { private var controllerNode: CallControllerNode { diff --git a/submodules/TelegramCallsUI/Sources/CallControllerButton.swift b/submodules/TelegramCallsUI/Sources/CallControllerButton.swift index 016e6db3e1..47aa462209 100644 --- a/submodules/TelegramCallsUI/Sources/CallControllerButton.swift +++ b/submodules/TelegramCallsUI/Sources/CallControllerButton.swift @@ -3,6 +3,7 @@ import UIKit import Display import AsyncDisplayKit import SwiftSignalKit +import AppBundle enum CallControllerButtonType { case mute diff --git a/submodules/TelegramCallsUI/Sources/CallKitIntegration.swift b/submodules/TelegramCallsUI/Sources/CallKitIntegration.swift index c44866c743..9b700b800d 100644 --- a/submodules/TelegramCallsUI/Sources/CallKitIntegration.swift +++ b/submodules/TelegramCallsUI/Sources/CallKitIntegration.swift @@ -6,6 +6,7 @@ import AVFoundation import Postbox import TelegramCore import SwiftSignalKit +import AppBundle private var sharedProviderDelegate: AnyObject? @@ -134,7 +135,7 @@ class CallKitProviderDelegate: NSObject, CXProviderDelegate { providerConfiguration.maximumCallsPerCallGroup = 1 providerConfiguration.maximumCallGroups = 1 providerConfiguration.supportedHandleTypes = [.phoneNumber, .generic] - if let image = UIImage(named: "Call/CallKitLogo", in: Bundle(for: CallKitIntegration.self), compatibleWith: nil) { + if let image = UIImage(named: "Call/CallKitLogo", in: getAppBundle(), compatibleWith: nil) { providerConfiguration.iconTemplateImageData = image.pngData() } diff --git a/submodules/TelegramCallsUI/Sources/CallRatingController.swift b/submodules/TelegramCallsUI/Sources/CallRatingController.swift index d099fc36d2..10da6c947f 100644 --- a/submodules/TelegramCallsUI/Sources/CallRatingController.swift +++ b/submodules/TelegramCallsUI/Sources/CallRatingController.swift @@ -8,6 +8,7 @@ import TelegramCore import TelegramPresentationData import TelegramVoip import AccountContext +import AppBundle private final class CallRatingAlertContentNode: AlertContentNode { private let strings: PresentationStrings diff --git a/submodules/TelegramCallsUI/Sources/CallSuggestTabController.swift b/submodules/TelegramCallsUI/Sources/CallSuggestTabController.swift index fbfcf10b01..46af7bb168 100644 --- a/submodules/TelegramCallsUI/Sources/CallSuggestTabController.swift +++ b/submodules/TelegramCallsUI/Sources/CallSuggestTabController.swift @@ -8,6 +8,7 @@ import TelegramCore import TelegramPresentationData import TelegramUIPreferences import AccountContext +import AppBundle private func generateIconImage(theme: AlertControllerTheme) -> UIImage? { return UIImage(bundleImageName: "Call List/AlertIcon") diff --git a/submodules/TelegramCallsUI/Sources/FrameworkBundle.swift b/submodules/TelegramCallsUI/Sources/FrameworkBundle.swift deleted file mode 100644 index 8ca13d7d92..0000000000 --- a/submodules/TelegramCallsUI/Sources/FrameworkBundle.swift +++ /dev/null @@ -1,13 +0,0 @@ -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) - } -} diff --git a/submodules/TelegramCallsUI/TelegramCallsUI.xcodeproj/project.pbxproj b/submodules/TelegramCallsUI/TelegramCallsUI.xcodeproj/project.pbxproj index b47144ff48..ef51fdf73c 100644 --- a/submodules/TelegramCallsUI/TelegramCallsUI.xcodeproj/project.pbxproj +++ b/submodules/TelegramCallsUI/TelegramCallsUI.xcodeproj/project.pbxproj @@ -763,17 +763,6 @@ lastKnownFileType sourcecode.c.objc - 1DD70E291289FAA500000000 - - isa - PBXFileReference - name - FrameworkBundle.swift - path - Sources/FrameworkBundle.swift - sourceTree - SOURCE_ROOT - 1DD70E29F7ECD55D00000000 isa @@ -831,7 +820,6 @@ 1DD70E29FD7E6DF000000000 1DD70E29B683DD4B00000000 1DD70E29B683DD5000000000 - 1DD70E291289FAA500000000 1DD70E29F7ECD55D00000000 1DD70E2978658ABA00000000 1DD70E294CAD10B900000000 @@ -958,13 +946,6 @@ fileRef 1DD70E29B683DD5000000000 - E7A30F041289FAA500000000 - - isa - PBXBuildFile - fileRef - 1DD70E291289FAA500000000 - E7A30F04F7ECD55D00000000 isa @@ -1005,7 +986,6 @@ E7A30F040CA6BF7600000000 E7A30F04FD7E6DF000000000 E7A30F04B683DD5000000000 - E7A30F041289FAA500000000 E7A30F04F7ECD55D00000000 E7A30F0478658ABA00000000 E7A30F044CAD10B900000000 diff --git a/submodules/TelegramCallsUI/TelegramCallsUI_Xcode.xcodeproj/project.pbxproj b/submodules/TelegramCallsUI/TelegramCallsUI_Xcode.xcodeproj/project.pbxproj index bdd2583767..3e3f55daeb 100644 --- a/submodules/TelegramCallsUI/TelegramCallsUI_Xcode.xcodeproj/project.pbxproj +++ b/submodules/TelegramCallsUI/TelegramCallsUI_Xcode.xcodeproj/project.pbxproj @@ -29,12 +29,12 @@ D0C9C09122FE3CF300FAB518 /* CallRatingController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C08722FE3CF300FAB518 /* CallRatingController.swift */; }; D0C9C09222FE3CF300FAB518 /* CallRouteActionSheetItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C08822FE3CF300FAB518 /* CallRouteActionSheetItem.swift */; }; D0C9C09322FE3CF300FAB518 /* CallControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C08922FE3CF300FAB518 /* CallControllerNode.swift */; }; - D0C9C09522FE3D1700FAB518 /* FrameworkBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C09422FE3D1700FAB518 /* FrameworkBundle.swift */; }; D0C9C0CF22FE3E2400FAB518 /* PhotoResources.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C0CE22FE3E2400FAB518 /* PhotoResources.framework */; }; D0C9C12522FE41C600FAB518 /* CallsEmoji.m in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C12422FE41C600FAB518 /* CallsEmoji.m */; }; D0C9C12722FE41DB00FAB518 /* CallsEmoji.h in Headers */ = {isa = PBXBuildFile; fileRef = D0C9C12622FE41D200FAB518 /* CallsEmoji.h */; settings = {ATTRIBUTES = (Public, ); }; }; D0C9C14B22FE439300FAB518 /* TelegramNotices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C14A22FE439300FAB518 /* TelegramNotices.framework */; }; D0C9C17B22FEF26C00FAB518 /* CallSuggestTabController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C17A22FEF26C00FAB518 /* CallSuggestTabController.swift */; }; + D0EFF25C2319816200CF5164 /* AppBundle.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0EFF25B2319816200CF5164 /* AppBundle.framework */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -62,12 +62,12 @@ D0C9C08722FE3CF300FAB518 /* CallRatingController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CallRatingController.swift; sourceTree = ""; }; D0C9C08822FE3CF300FAB518 /* CallRouteActionSheetItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CallRouteActionSheetItem.swift; sourceTree = ""; }; D0C9C08922FE3CF300FAB518 /* CallControllerNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CallControllerNode.swift; sourceTree = ""; }; - D0C9C09422FE3D1700FAB518 /* FrameworkBundle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FrameworkBundle.swift; sourceTree = ""; }; D0C9C0CE22FE3E2400FAB518 /* PhotoResources.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = PhotoResources.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D0C9C12422FE41C600FAB518 /* CallsEmoji.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CallsEmoji.m; sourceTree = ""; }; D0C9C12622FE41D200FAB518 /* CallsEmoji.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CallsEmoji.h; sourceTree = ""; }; D0C9C14A22FE439300FAB518 /* TelegramNotices.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramNotices.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D0C9C17A22FEF26C00FAB518 /* CallSuggestTabController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CallSuggestTabController.swift; sourceTree = ""; }; + D0EFF25B2319816200CF5164 /* AppBundle.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AppBundle.framework; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -75,6 +75,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + D0EFF25C2319816200CF5164 /* AppBundle.framework in Frameworks */, D021289F230EF3B2006B8456 /* ItemListUI.framework in Frameworks */, D0C9C14B22FE439300FAB518 /* TelegramNotices.framework in Frameworks */, D0C9C0CF22FE3E2400FAB518 /* PhotoResources.framework in Frameworks */, @@ -125,7 +126,6 @@ D0AE310A22B1DD160058D3BC /* PresentationCall.swift */, D0AE310922B1DD160058D3BC /* PresentationCallManager.swift */, D0AE310B22B1DD160058D3BC /* PresentationCallToneData.swift */, - D0C9C09422FE3D1700FAB518 /* FrameworkBundle.swift */, D0C9C17A22FEF26C00FAB518 /* CallSuggestTabController.swift */, D0C9C12622FE41D200FAB518 /* CallsEmoji.h */, D0C9C12422FE41C600FAB518 /* CallsEmoji.m */, @@ -137,6 +137,7 @@ D0AE315522B1DEF10058D3BC /* Frameworks */ = { isa = PBXGroup; children = ( + D0EFF25B2319816200CF5164 /* AppBundle.framework */, D021289E230EF3B2006B8456 /* ItemListUI.framework */, D0C9C14A22FE439300FAB518 /* TelegramNotices.framework */, D0C9C0CE22FE3E2400FAB518 /* PhotoResources.framework */, @@ -247,7 +248,6 @@ D0C9C08E22FE3CF300FAB518 /* CallControllerButtonsNode.swift in Sources */, D0C9C08C22FE3CF300FAB518 /* CallControllerButton.swift in Sources */, D0C9C08D22FE3CF300FAB518 /* CallController.swift in Sources */, - D0C9C09522FE3D1700FAB518 /* FrameworkBundle.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/submodules/TelegramPermissionsUI/BUCK b/submodules/TelegramPermissionsUI/BUCK index c088ed15cc..b7dc3c5751 100644 --- a/submodules/TelegramPermissionsUI/BUCK +++ b/submodules/TelegramPermissionsUI/BUCK @@ -18,6 +18,7 @@ static_library( "//submodules/DeviceAccess:DeviceAccess", "//submodules/PeersNearbyIconNode:PeersNearbyIconNode", "//submodules/SolidRoundedButtonNode:SolidRoundedButtonNode", + "//submodules/AppBundle:AppBundle", ], frameworks = [ "$SDKROOT/System/Library/Frameworks/Foundation.framework", diff --git a/submodules/TelegramPermissionsUI/Sources/FrameworkBundle.swift b/submodules/TelegramPermissionsUI/Sources/FrameworkBundle.swift deleted file mode 100644 index 8ca13d7d92..0000000000 --- a/submodules/TelegramPermissionsUI/Sources/FrameworkBundle.swift +++ /dev/null @@ -1,13 +0,0 @@ -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) - } -} diff --git a/submodules/TelegramPermissionsUI/Sources/PermissionControllerNode.swift b/submodules/TelegramPermissionsUI/Sources/PermissionControllerNode.swift index 453641556e..313306012c 100644 --- a/submodules/TelegramPermissionsUI/Sources/PermissionControllerNode.swift +++ b/submodules/TelegramPermissionsUI/Sources/PermissionControllerNode.swift @@ -7,6 +7,7 @@ import TelegramCore import TelegramPresentationData import AccountContext import TelegramPermissions +import AppBundle public struct PermissionControllerCustomIcon: Equatable { let light: UIImage? diff --git a/submodules/TelegramPermissionsUI/TelegramPermissionsUI.xcodeproj/project.pbxproj b/submodules/TelegramPermissionsUI/TelegramPermissionsUI.xcodeproj/project.pbxproj index a7ef654f2d..49497ae64d 100644 --- a/submodules/TelegramPermissionsUI/TelegramPermissionsUI.xcodeproj/project.pbxproj +++ b/submodules/TelegramPermissionsUI/TelegramPermissionsUI.xcodeproj/project.pbxproj @@ -409,17 +409,6 @@ explicitFileType text.script.python - 1DD70E291289FAA500000000 - - isa - PBXFileReference - name - FrameworkBundle.swift - path - Sources/FrameworkBundle.swift - sourceTree - SOURCE_ROOT - 1DD70E293756365100000000 isa @@ -474,7 +463,6 @@ ]]> children - 1DD70E291289FAA500000000 1DD70E293756365100000000 1DD70E2944AF915000000000 1DD70E29A44DC47200000000 @@ -511,13 +499,6 @@ B401C979CF9FEE7700000000 - E7A30F041289FAA500000000 - - isa - PBXBuildFile - fileRef - 1DD70E291289FAA500000000 - E7A30F043756365100000000 isa @@ -552,7 +533,6 @@ PBXSourcesBuildPhase files - E7A30F041289FAA500000000 E7A30F043756365100000000 E7A30F0444AF915000000000 E7A30F04A44DC47200000000 diff --git a/submodules/TelegramPermissionsUI/TelegramPermissionsUI_Xcode.xcodeproj/project.pbxproj b/submodules/TelegramPermissionsUI/TelegramPermissionsUI_Xcode.xcodeproj/project.pbxproj index 4daab3fd10..f47b344ba7 100644 --- a/submodules/TelegramPermissionsUI/TelegramPermissionsUI_Xcode.xcodeproj/project.pbxproj +++ b/submodules/TelegramPermissionsUI/TelegramPermissionsUI_Xcode.xcodeproj/project.pbxproj @@ -24,9 +24,9 @@ D0C9C9872302151500FAB518 /* DeviceAccess.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C9862302151500FAB518 /* DeviceAccess.framework */; }; D0C9C9892302151900FAB518 /* AccountContext.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C9882302151900FAB518 /* AccountContext.framework */; }; D0C9C98B2302152800FAB518 /* Postbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C98A2302152800FAB518 /* Postbox.framework */; }; - D0C9C9912302157F00FAB518 /* FrameworkBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C9902302157F00FAB518 /* FrameworkBundle.swift */; }; D0C9C9BD2302168C00FAB518 /* PeersNearbyIconNode.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C9BC2302168C00FAB518 /* PeersNearbyIconNode.framework */; }; D0C9C9DC2302266A00FAB518 /* SolidRoundedButtonNode.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C9DB2302266A00FAB518 /* SolidRoundedButtonNode.framework */; }; + D0EFF276231982EE00CF5164 /* AppBundle.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0EFF275231982EE00CF5164 /* AppBundle.framework */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -49,9 +49,9 @@ D0C9C9862302151500FAB518 /* DeviceAccess.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = DeviceAccess.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D0C9C9882302151900FAB518 /* AccountContext.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AccountContext.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D0C9C98A2302152800FAB518 /* Postbox.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Postbox.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - D0C9C9902302157F00FAB518 /* FrameworkBundle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FrameworkBundle.swift; sourceTree = ""; }; D0C9C9BC2302168C00FAB518 /* PeersNearbyIconNode.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = PeersNearbyIconNode.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D0C9C9DB2302266A00FAB518 /* SolidRoundedButtonNode.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = SolidRoundedButtonNode.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D0EFF275231982EE00CF5164 /* AppBundle.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AppBundle.framework; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -59,6 +59,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + D0EFF276231982EE00CF5164 /* AppBundle.framework in Frameworks */, D0C9C9DC2302266A00FAB518 /* SolidRoundedButtonNode.framework in Frameworks */, D0C9C9BD2302168C00FAB518 /* PeersNearbyIconNode.framework in Frameworks */, D0C9C98B2302152800FAB518 /* Postbox.framework in Frameworks */, @@ -104,7 +105,6 @@ D0C9C96B230214D300FAB518 /* PermissionController.swift */, D0C9C96A230214D300FAB518 /* PermissionControllerNode.swift */, D0C9C96C230214D300FAB518 /* PermissionSplitTest.swift */, - D0C9C9902302157F00FAB518 /* FrameworkBundle.swift */, D0C9C95D2302147100FAB518 /* TelegramPermissionsUI.h */, ); path = Sources; @@ -113,6 +113,7 @@ D0C9C973230214E500FAB518 /* Frameworks */ = { isa = PBXGroup; children = ( + D0EFF275231982EE00CF5164 /* AppBundle.framework */, D0C9C9DB2302266A00FAB518 /* SolidRoundedButtonNode.framework */, D0C9C9BC2302168C00FAB518 /* PeersNearbyIconNode.framework */, D0C9C98A2302152800FAB518 /* Postbox.framework */, @@ -213,7 +214,6 @@ files = ( D0C9C96F230214D300FAB518 /* PermissionControllerNode.swift in Sources */, D0C9C971230214D300FAB518 /* PermissionSplitTest.swift in Sources */, - D0C9C9912302157F00FAB518 /* FrameworkBundle.swift in Sources */, D0C9C96E230214D300FAB518 /* PermissionContentNode.swift in Sources */, D0C9C970230214D300FAB518 /* PermissionController.swift in Sources */, ); diff --git a/submodules/TelegramPresentationData/BUCK b/submodules/TelegramPresentationData/BUCK index 41143dfe19..898ef3644e 100644 --- a/submodules/TelegramPresentationData/BUCK +++ b/submodules/TelegramPresentationData/BUCK @@ -19,6 +19,7 @@ static_library( "//submodules/SSignalKit/SwiftSignalKit:SwiftSignalKit#shared", "//submodules/TelegramUIPreferences:TelegramUIPreferences", "//submodules/MediaResources:MediaResources", + "//submodules/AppBundle:AppBundle", ], frameworks = [ "$SDKROOT/System/Library/Frameworks/Foundation.framework", diff --git a/submodules/TelegramPresentationData/Sources/ChatControllerBackgroundNode.swift b/submodules/TelegramPresentationData/Sources/ChatControllerBackgroundNode.swift index eedc9b666a..914406bd5a 100644 --- a/submodules/TelegramPresentationData/Sources/ChatControllerBackgroundNode.swift +++ b/submodules/TelegramPresentationData/Sources/ChatControllerBackgroundNode.swift @@ -6,6 +6,7 @@ import Display import SwiftSignalKit import Postbox import MediaResources +import AppBundle private var backgroundImageForWallpaper: (TelegramWallpaper, Bool, UIImage)? @@ -31,7 +32,7 @@ public func chatControllerBackgroundImage(theme: PresentationTheme, wallpaper in } else { switch wallpaper { case .builtin: - if let filePath = frameworkBundle.path(forResource: "ChatWallpaperBuiltin0", ofType: "jpg") { + if let filePath = getAppBundle().path(forResource: "ChatWallpaperBuiltin0", ofType: "jpg") { backgroundImage = UIImage(contentsOfFile: filePath)?.precomposed() } case let .color(color): diff --git a/submodules/TelegramPresentationData/Sources/FrameworkSpecific.swift b/submodules/TelegramPresentationData/Sources/FrameworkSpecific.swift deleted file mode 100644 index 8ca13d7d92..0000000000 --- a/submodules/TelegramPresentationData/Sources/FrameworkSpecific.swift +++ /dev/null @@ -1,13 +0,0 @@ -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) - } -} diff --git a/submodules/TelegramPresentationData/Sources/PresentationData.swift b/submodules/TelegramPresentationData/Sources/PresentationData.swift index dd3cc87ac1..b4cffa1d1b 100644 --- a/submodules/TelegramPresentationData/Sources/PresentationData.swift +++ b/submodules/TelegramPresentationData/Sources/PresentationData.swift @@ -7,6 +7,7 @@ import Contacts import AddressBook import Display import TelegramUIPreferences +import AppBundle public struct PresentationDateTimeFormat: Equatable { public let timeFormat: PresentationTimeFormat @@ -121,7 +122,7 @@ public func dictFromLocalization(_ value: Localization) -> [String: String] { } private func volumeControlStatusBarIcons() -> PresentationVolumeControlStatusBarIcons { - let bundle = Bundle(for: PresentationTheme.self) + let bundle = getAppBundle() return PresentationVolumeControlStatusBarIcons(offIcon: UIImage(named: "Components/Volume/VolumeOff", in: bundle, compatibleWith: nil)!, halfIcon: UIImage(named: "Components/Volume/VolumeHalf", in: bundle, compatibleWith: nil)!, fullIcon: UIImage(named: "Components/Volume/VolumeFull", in: bundle, compatibleWith: nil)!) } diff --git a/submodules/TelegramPresentationData/Sources/PresentationStrings.swift b/submodules/TelegramPresentationData/Sources/PresentationStrings.swift index fdbff0ceec..978e9d2308 100644 --- a/submodules/TelegramPresentationData/Sources/PresentationStrings.swift +++ b/submodules/TelegramPresentationData/Sources/PresentationStrings.swift @@ -1,4 +1,5 @@ import Foundation +import AppBundle private let fallbackDict: [String: String] = { guard let mainPath = Bundle.main.path(forResource: "en", ofType: "lproj"), let bundle = Bundle(path: mainPath) else { @@ -139,7 +140,7 @@ private final class DataReader { } private func loadMapping() -> ([Int], [String], [Int], [Int], [String]) { - guard let filePath = Bundle(for: PresentationStrings.self).path(forResource: "PresentationStrings", ofType: "mapping") else { + guard let filePath = getAppBundle().path(forResource: "PresentationStrings", ofType: "mapping") else { fatalError() } guard let data = try? Data(contentsOf: URL(fileURLWithPath: filePath)) else { diff --git a/submodules/TelegramPresentationData/Sources/PresentationThemeEssentialGraphics.swift b/submodules/TelegramPresentationData/Sources/PresentationThemeEssentialGraphics.swift index 93153d7aea..c825b31b52 100644 --- a/submodules/TelegramPresentationData/Sources/PresentationThemeEssentialGraphics.swift +++ b/submodules/TelegramPresentationData/Sources/PresentationThemeEssentialGraphics.swift @@ -4,6 +4,7 @@ import Display import Postbox import TelegramCore import TelegramUIPreferences +import AppBundle private func generateCheckImage(partial: Bool, color: UIColor) -> UIImage? { return generateImage(CGSize(width: 11.0, height: 9.0), rotatedContext: { size, context in diff --git a/submodules/TelegramPresentationData/Sources/Resources/PresentationResourcesCallList.swift b/submodules/TelegramPresentationData/Sources/Resources/PresentationResourcesCallList.swift index 89f5a4e0d7..519697a987 100644 --- a/submodules/TelegramPresentationData/Sources/Resources/PresentationResourcesCallList.swift +++ b/submodules/TelegramPresentationData/Sources/Resources/PresentationResourcesCallList.swift @@ -1,6 +1,7 @@ import Foundation import UIKit import Display +import AppBundle public struct PresentationResourcesCallList { public static func outgoingIcon(_ theme: PresentationTheme) -> UIImage? { diff --git a/submodules/TelegramPresentationData/Sources/Resources/PresentationResourcesChat.swift b/submodules/TelegramPresentationData/Sources/Resources/PresentationResourcesChat.swift index 4c27cc528b..903f3c4419 100644 --- a/submodules/TelegramPresentationData/Sources/Resources/PresentationResourcesChat.swift +++ b/submodules/TelegramPresentationData/Sources/Resources/PresentationResourcesChat.swift @@ -3,6 +3,7 @@ import UIKit import Display import Postbox import TelegramCore +import AppBundle private func generateLineImage(color: UIColor) -> UIImage? { return generateImage(CGSize(width: 2.0, height: 3.0), contextGenerator: { size, context in diff --git a/submodules/TelegramPresentationData/Sources/Resources/PresentationResourcesChatList.swift b/submodules/TelegramPresentationData/Sources/Resources/PresentationResourcesChatList.swift index acd39be630..78058fb27d 100644 --- a/submodules/TelegramPresentationData/Sources/Resources/PresentationResourcesChatList.swift +++ b/submodules/TelegramPresentationData/Sources/Resources/PresentationResourcesChatList.swift @@ -1,6 +1,7 @@ import Foundation import UIKit import Display +import AppBundle private func generateStatusCheckImage(theme: PresentationTheme, single: Bool) -> UIImage? { return generateImage(CGSize(width: single ? 13.0 : 18.0, height: 13.0), rotatedContext: { size, context in diff --git a/submodules/TelegramPresentationData/Sources/Resources/PresentationResourcesItemList.swift b/submodules/TelegramPresentationData/Sources/Resources/PresentationResourcesItemList.swift index 84a91cad0f..54e893f7c4 100644 --- a/submodules/TelegramPresentationData/Sources/Resources/PresentationResourcesItemList.swift +++ b/submodules/TelegramPresentationData/Sources/Resources/PresentationResourcesItemList.swift @@ -1,6 +1,7 @@ import Foundation import UIKit import Display +import AppBundle public func generateItemListCheckIcon(color: UIColor) -> UIImage? { return generateImage(CGSize(width: 12.0, height: 10.0), rotatedContext: { size, context in diff --git a/submodules/TelegramPresentationData/Sources/Resources/PresentationResourcesRootController.swift b/submodules/TelegramPresentationData/Sources/Resources/PresentationResourcesRootController.swift index ba4958757d..0e31cd52d3 100644 --- a/submodules/TelegramPresentationData/Sources/Resources/PresentationResourcesRootController.swift +++ b/submodules/TelegramPresentationData/Sources/Resources/PresentationResourcesRootController.swift @@ -1,6 +1,7 @@ import Foundation import UIKit import Display +import AppBundle private func generateShareButtonImage(theme: PresentationTheme) -> UIImage? { return generateTintedImage(image: UIImage(bundleImageName: "Chat List/NavigationShare"), color: theme.rootController.navigationBar.accentTextColor) diff --git a/submodules/TelegramPresentationData/Sources/Resources/PresentationResourcesSettings.swift b/submodules/TelegramPresentationData/Sources/Resources/PresentationResourcesSettings.swift index fd7466ff77..627ec72c56 100644 --- a/submodules/TelegramPresentationData/Sources/Resources/PresentationResourcesSettings.swift +++ b/submodules/TelegramPresentationData/Sources/Resources/PresentationResourcesSettings.swift @@ -1,6 +1,7 @@ import Foundation import UIKit import Display +import AppBundle public struct PresentationResourcesSettings { public static let editProfile = UIImage(bundleImageName: "Settings/MenuIcons/EditProfile")?.precomposed() diff --git a/submodules/TelegramPresentationData/TelegramPresentationData.xcodeproj/project.pbxproj b/submodules/TelegramPresentationData/TelegramPresentationData.xcodeproj/project.pbxproj index 29031196c3..fd4e4ce018 100644 --- a/submodules/TelegramPresentationData/TelegramPresentationData.xcodeproj/project.pbxproj +++ b/submodules/TelegramPresentationData/TelegramPresentationData.xcodeproj/project.pbxproj @@ -414,17 +414,6 @@ lastKnownFileType sourcecode.c.objc - 1DD70E29F2EA27D500000000 - - isa - PBXFileReference - name - FrameworkSpecific.swift - path - Sources/FrameworkSpecific.swift - sourceTree - SOURCE_ROOT - 1DD70E2975F0684600000000 isa @@ -517,25 +506,14 @@ sourceTree SOURCE_ROOT - 1DD70E2970CC317A00000000 + 1DD70E29070398DB00000000 isa PBXFileReference name - PresentationThemeDecoder.swift + PresentationThemeCoder.swift path - Sources/PresentationThemeDecoder.swift - sourceTree - SOURCE_ROOT - - 1DD70E29A48E085200000000 - - isa - PBXFileReference - name - PresentationThemeEncoder.swift - path - Sources/PresentationThemeEncoder.swift + Sources/PresentationThemeCoder.swift sourceTree SOURCE_ROOT @@ -603,7 +581,6 @@ 1DD70E29D460D78C00000000 1DD70E29D49E2A0600000000 1DD70E29D49E2A0B00000000 - 1DD70E29F2EA27D500000000 1DD70E2975F0684600000000 1DD70E292EF9141500000000 1DD70E292EF9141A00000000 @@ -612,8 +589,7 @@ 1DD70E296771CE8D00000000 1DD70E29D868521400000000 1DD70E2907087D8800000000 - 1DD70E2970CC317A00000000 - 1DD70E29A48E085200000000 + 1DD70E29070398DB00000000 1DD70E2913777C2F00000000 1DD70E295646A68000000000 1DD70E293D3BD71400000000 @@ -755,13 +731,6 @@ fileRef 1DD70E29D49E2A0B00000000 - E7A30F04F2EA27D500000000 - - isa - PBXBuildFile - fileRef - 1DD70E29F2EA27D500000000 - E7A30F0475F0684600000000 isa @@ -811,19 +780,12 @@ fileRef 1DD70E2907087D8800000000 - E7A30F0470CC317A00000000 + E7A30F04070398DB00000000 isa PBXBuildFile fileRef - 1DD70E2970CC317A00000000 - - E7A30F04A48E085200000000 - - isa - PBXBuildFile - fileRef - 1DD70E29A48E085200000000 + 1DD70E29070398DB00000000 E7A30F0413777C2F00000000 @@ -874,7 +836,6 @@ E7A30F04BA1E31F900000000 E7A30F04D460D78C00000000 E7A30F04D49E2A0B00000000 - E7A30F04F2EA27D500000000 E7A30F0475F0684600000000 E7A30F042EF9141A00000000 E7A30F04F91318E900000000 @@ -882,8 +843,7 @@ E7A30F046771CE8D00000000 E7A30F04D868521400000000 E7A30F0407087D8800000000 - E7A30F0470CC317A00000000 - E7A30F04A48E085200000000 + E7A30F04070398DB00000000 E7A30F0413777C2F00000000 E7A30F045646A68000000000 E7A30F043D3BD71400000000 diff --git a/submodules/TelegramPresentationData/TelegramPresentationData_Xcode.xcodeproj/project.pbxproj b/submodules/TelegramPresentationData/TelegramPresentationData_Xcode.xcodeproj/project.pbxproj index bda6b87d51..fd7acefd40 100644 --- a/submodules/TelegramPresentationData/TelegramPresentationData_Xcode.xcodeproj/project.pbxproj +++ b/submodules/TelegramPresentationData/TelegramPresentationData_Xcode.xcodeproj/project.pbxproj @@ -17,7 +17,6 @@ D06017EF22F3578200796784 /* PresentationResourceKey.swift in Sources */ = {isa = PBXBuildFile; fileRef = D06017E822F3578200796784 /* PresentationResourceKey.swift */; }; D06017F022F3578200796784 /* PresentationResourcesChatList.swift in Sources */ = {isa = PBXBuildFile; fileRef = D06017E922F3578200796784 /* PresentationResourcesChatList.swift */; }; D06017F122F3578200796784 /* PresentationResourcesItemList.swift in Sources */ = {isa = PBXBuildFile; fileRef = D06017EA22F3578200796784 /* PresentationResourcesItemList.swift */; }; - D06017F322F3583200796784 /* FrameworkSpecific.swift in Sources */ = {isa = PBXBuildFile; fileRef = D06017F222F3583200796784 /* FrameworkSpecific.swift */; }; D06017F522F35A4000796784 /* PresentationThemeEssentialGraphics.swift in Sources */ = {isa = PBXBuildFile; fileRef = D06017F422F35A4000796784 /* PresentationThemeEssentialGraphics.swift */; }; D06017F722F35A9200796784 /* ChatMessageBubbleImages.swift in Sources */ = {isa = PBXBuildFile; fileRef = D06017F622F35A9200796784 /* ChatMessageBubbleImages.swift */; }; D06017F922F35ACF00796784 /* WallpaperUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = D06017F822F35ACF00796784 /* WallpaperUtils.swift */; }; @@ -44,6 +43,7 @@ D0AE31D822B27AAF0058D3BC /* EDSunriseSet.h in Headers */ = {isa = PBXBuildFile; fileRef = D0AE31D622B27AAE0058D3BC /* EDSunriseSet.h */; settings = {ATTRIBUTES = (Public, ); }; }; D0AE31D922B27AAF0058D3BC /* EDSunriseSet.m in Sources */ = {isa = PBXBuildFile; fileRef = D0AE31D722B27AAE0058D3BC /* EDSunriseSet.m */; }; D0AE321422B2826A0058D3BC /* ComponentsThemes.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AE321322B282690058D3BC /* ComponentsThemes.swift */; }; + D0EFF2422319800700CF5164 /* AppBundle.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0EFF2412319800700CF5164 /* AppBundle.framework */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -57,7 +57,6 @@ D06017E822F3578200796784 /* PresentationResourceKey.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PresentationResourceKey.swift; sourceTree = ""; }; D06017E922F3578200796784 /* PresentationResourcesChatList.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PresentationResourcesChatList.swift; sourceTree = ""; }; D06017EA22F3578200796784 /* PresentationResourcesItemList.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PresentationResourcesItemList.swift; sourceTree = ""; }; - D06017F222F3583200796784 /* FrameworkSpecific.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FrameworkSpecific.swift; sourceTree = ""; }; D06017F422F35A4000796784 /* PresentationThemeEssentialGraphics.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PresentationThemeEssentialGraphics.swift; sourceTree = ""; }; D06017F622F35A9200796784 /* ChatMessageBubbleImages.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMessageBubbleImages.swift; sourceTree = ""; }; D06017F822F35ACF00796784 /* WallpaperUtils.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WallpaperUtils.swift; sourceTree = ""; }; @@ -87,6 +86,7 @@ D0AE31D622B27AAE0058D3BC /* EDSunriseSet.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EDSunriseSet.h; sourceTree = ""; }; D0AE31D722B27AAE0058D3BC /* EDSunriseSet.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = EDSunriseSet.m; sourceTree = ""; }; D0AE321322B282690058D3BC /* ComponentsThemes.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ComponentsThemes.swift; sourceTree = ""; }; + D0EFF2412319800700CF5164 /* AppBundle.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AppBundle.framework; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -94,6 +94,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + D0EFF2422319800700CF5164 /* AppBundle.framework in Frameworks */, D068EE9022F4A9B60064E921 /* MediaResources.framework in Frameworks */, D0AE31C322B274E90058D3BC /* TelegramUIPreferences.framework in Frameworks */, D0AE31BF22B274950058D3BC /* Display.framework in Frameworks */, @@ -164,7 +165,6 @@ D06017F622F35A9200796784 /* ChatMessageBubbleImages.swift */, D06017F822F35ACF00796784 /* WallpaperUtils.swift */, D084F9EF22F3AEFD004874CE /* ChatControllerBackgroundNode.swift */, - D06017F222F3583200796784 /* FrameworkSpecific.swift */, D0AE31A922B273F20058D3BC /* TelegramPresentationData.h */, ); path = Sources; @@ -173,6 +173,7 @@ D0AE31B722B2747A0058D3BC /* Frameworks */ = { isa = PBXGroup; children = ( + D0EFF2412319800700CF5164 /* AppBundle.framework */, D068EE8F22F4A9B60064E921 /* MediaResources.framework */, D084F9F122F3AFEA004874CE /* AccountContext.framework */, D0AE31C222B274E90058D3BC /* TelegramUIPreferences.framework */, @@ -269,7 +270,6 @@ D06017F122F3578200796784 /* PresentationResourcesItemList.swift in Sources */, D06017EC22F3578200796784 /* PresentationResourcesChat.swift in Sources */, D0AE31D522B27A780058D3BC /* DefaultDayPresentationTheme.swift in Sources */, - D06017F322F3583200796784 /* FrameworkSpecific.swift in Sources */, D06017F022F3578200796784 /* PresentationResourcesChatList.swift in Sources */, D0AE31D422B27A780058D3BC /* DefaultPresentationStrings.swift in Sources */, 097A581B22D528680078B73C /* PresentationThemeCodable.swift in Sources */, diff --git a/submodules/TelegramStringFormatting/BUCK b/submodules/TelegramStringFormatting/BUCK index c66bbb9674..432cd2f422 100644 --- a/submodules/TelegramStringFormatting/BUCK +++ b/submodules/TelegramStringFormatting/BUCK @@ -14,6 +14,7 @@ static_library( "//submodules/TextFormat:TextFormat", "//submodules/TelegramUIPreferences:TelegramUIPreferences", "//submodules/TelegramPresentationData:TelegramPresentationData", + "//submodules/AppBundle:AppBundle", ], frameworks = [ "$SDKROOT/System/Library/Frameworks/Foundation.framework", diff --git a/submodules/TelegramStringFormatting/Sources/CurrencyFormat.swift b/submodules/TelegramStringFormatting/Sources/CurrencyFormat.swift index b233f1bf4b..c673cecd03 100644 --- a/submodules/TelegramStringFormatting/Sources/CurrencyFormat.swift +++ b/submodules/TelegramStringFormatting/Sources/CurrencyFormat.swift @@ -1,4 +1,5 @@ import Foundation +import AppBundle private final class CurrencyFormatterEntry { let symbol: String @@ -19,7 +20,7 @@ private final class CurrencyFormatterEntry { } private func loadCurrencyFormatterEntries() -> [String: CurrencyFormatterEntry] { - guard let filePath = frameworkBundle.path(forResource: "currencies", ofType: "json") else { + guard let filePath = getAppBundle().path(forResource: "currencies", ofType: "json") else { return [:] } guard let data = try? Data(contentsOf: URL(fileURLWithPath: filePath)) else { diff --git a/submodules/TelegramStringFormatting/Sources/FrameworkBundle.swift b/submodules/TelegramStringFormatting/Sources/FrameworkBundle.swift deleted file mode 100644 index 2d6a4df5c4..0000000000 --- a/submodules/TelegramStringFormatting/Sources/FrameworkBundle.swift +++ /dev/null @@ -1,6 +0,0 @@ -import Foundation - -private class FrameworkBundleClass: NSObject { -} - -let frameworkBundle: Bundle = Bundle(for: FrameworkBundleClass.self) diff --git a/submodules/TelegramStringFormatting/TelegramStringFormatting.xcodeproj/project.pbxproj b/submodules/TelegramStringFormatting/TelegramStringFormatting.xcodeproj/project.pbxproj index ec53bf597b..e3e6d6daa2 100644 --- a/submodules/TelegramStringFormatting/TelegramStringFormatting.xcodeproj/project.pbxproj +++ b/submodules/TelegramStringFormatting/TelegramStringFormatting.xcodeproj/project.pbxproj @@ -302,17 +302,6 @@ sourceTree SOURCE_ROOT - 1DD70E291289FAA500000000 - - isa - PBXFileReference - name - FrameworkBundle.swift - path - Sources/FrameworkBundle.swift - sourceTree - SOURCE_ROOT - 1DD70E29851AE19F00000000 isa @@ -403,7 +392,6 @@ 1DD70E29961DBD7900000000 1DD70E29FFA0F42D00000000 1DD70E29A657804A00000000 - 1DD70E291289FAA500000000 1DD70E29851AE19F00000000 1DD70E29FCB4876B00000000 1DD70E29C34D536500000000 @@ -464,13 +452,6 @@ fileRef 1DD70E29A657804A00000000 - E7A30F041289FAA500000000 - - isa - PBXBuildFile - fileRef - 1DD70E291289FAA500000000 - E7A30F04851AE19F00000000 isa @@ -529,7 +510,6 @@ E7A30F04961DBD7900000000 E7A30F04FFA0F42D00000000 E7A30F04A657804A00000000 - E7A30F041289FAA500000000 E7A30F04851AE19F00000000 E7A30F04FCB4876B00000000 E7A30F04C34D536500000000 diff --git a/submodules/TelegramStringFormatting/TelegramStringFormatting_Xcode.xcodeproj/project.pbxproj b/submodules/TelegramStringFormatting/TelegramStringFormatting_Xcode.xcodeproj/project.pbxproj index 5d6b2727fc..999904c6fc 100644 --- a/submodules/TelegramStringFormatting/TelegramStringFormatting_Xcode.xcodeproj/project.pbxproj +++ b/submodules/TelegramStringFormatting/TelegramStringFormatting_Xcode.xcodeproj/project.pbxproj @@ -28,8 +28,8 @@ D0C9C35C2300AEBA00FAB518 /* LocalizedPeerData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C35B2300AEBA00FAB518 /* LocalizedPeerData.framework */; }; D0C9C35E2300AEF100FAB518 /* Display.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C35D2300AEF100FAB518 /* Display.framework */; }; D0C9C3622300AFCC00FAB518 /* CurrencyFormat.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C3612300AFCB00FAB518 /* CurrencyFormat.swift */; }; - D0C9C3642300AFE800FAB518 /* FrameworkBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C3632300AFE800FAB518 /* FrameworkBundle.swift */; }; D0C9CA3823022A8300FAB518 /* NumberFormat.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9CA3723022A8300FAB518 /* NumberFormat.swift */; }; + D0EFF23C23197F7700CF5164 /* AppBundle.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0EFF23B23197F7700CF5164 /* AppBundle.framework */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -56,8 +56,8 @@ D0C9C35B2300AEBA00FAB518 /* LocalizedPeerData.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = LocalizedPeerData.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D0C9C35D2300AEF100FAB518 /* Display.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Display.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D0C9C3612300AFCB00FAB518 /* CurrencyFormat.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CurrencyFormat.swift; sourceTree = ""; }; - D0C9C3632300AFE800FAB518 /* FrameworkBundle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FrameworkBundle.swift; sourceTree = ""; }; D0C9CA3723022A8300FAB518 /* NumberFormat.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NumberFormat.swift; sourceTree = ""; }; + D0EFF23B23197F7700CF5164 /* AppBundle.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AppBundle.framework; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -65,6 +65,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + D0EFF23C23197F7700CF5164 /* AppBundle.framework in Frameworks */, D03E41722304D6B80049C28B /* Contacts.framework in Frameworks */, D03E41702304D6970049C28B /* AddressBook.framework in Frameworks */, D03E3D4F23045E510049C28B /* PlatformRestrictionMatching.framework in Frameworks */, @@ -114,7 +115,6 @@ D0879AC922F7063300C4D6B3 /* DateFormat.swift */, D0879ABC22F705AE00C4D6B3 /* PresenceStrings.swift */, D0879AB022F7021000C4D6B3 /* TelegramStringFormatting.h */, - D0C9C3632300AFE800FAB518 /* FrameworkBundle.swift */, ); path = Sources; sourceTree = ""; @@ -122,6 +122,7 @@ D0879ABE22F705B700C4D6B3 /* Frameworks */ = { isa = PBXGroup; children = ( + D0EFF23B23197F7700CF5164 /* AppBundle.framework */, D03E41712304D6B80049C28B /* Contacts.framework */, D03E416F2304D6970049C28B /* AddressBook.framework */, D03E3D4E23045E510049C28B /* PlatformRestrictionMatching.framework */, @@ -217,7 +218,6 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - D0C9C3642300AFE800FAB518 /* FrameworkBundle.swift in Sources */, D0C9C3622300AFCC00FAB518 /* CurrencyFormat.swift in Sources */, D03E41982304D7D60049C28B /* PeerNotificationSoundStrings.swift in Sources */, D0C9C3562300AD9900FAB518 /* MessageContentKind.swift in Sources */, diff --git a/submodules/TelegramUI/BUCK b/submodules/TelegramUI/BUCK index 1a6fa8d750..4d19ba329e 100644 --- a/submodules/TelegramUI/BUCK +++ b/submodules/TelegramUI/BUCK @@ -1,5 +1,22 @@ load("//Config:buck_rule_macros.bzl", "framework") +apple_asset_catalog( + name = 'TelegramUIAssets', + dirs = [ + "Images.xcassets", + ], + visibility = ["PUBLIC"], +) + +apple_resource( + name = "TelegramUIResources", + files = glob([ + "TelegramUI/Sounds/**/*", + "TelegramUI/Resources/**/*", + ], exclude = ["TelegramUI/**/.*"]), + visibility = ["PUBLIC"], +) + framework( name = "TelegramUI", srcs = glob([ @@ -162,6 +179,8 @@ framework( "//submodules/GridMessageSelectionNode:GridMessageSelectionNode", "//submodules/InstantPageCache:InstantPageCache", "//submodules/PersistentStringHash:PersistentStringHash", + "//submodules/MessageReactionListUI:MessageReactionListUI", + "//submodules/AppBundle:AppBundle", ], frameworks = [ "$SDKROOT/System/Library/Frameworks/Foundation.framework", diff --git a/submodules/TelegramUI/TelegramUI/ChatContextResultPeekContentNode.swift b/submodules/TelegramUI/TelegramUI/ChatContextResultPeekContentNode.swift index 75da7abeaa..22afefe400 100644 --- a/submodules/TelegramUI/TelegramUI/ChatContextResultPeekContentNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatContextResultPeekContentNode.swift @@ -7,6 +7,7 @@ import TelegramCore import SwiftSignalKit import AVFoundation import PhotoResources +import AppBundle final class ChatContextResultPeekContent: PeekControllerContent { let account: Account diff --git a/submodules/TelegramUI/TelegramUI/ChatController.swift b/submodules/TelegramUI/TelegramUI/ChatController.swift index 86d9954aef..7dcb9549a8 100644 --- a/submodules/TelegramUI/TelegramUI/ChatController.swift +++ b/submodules/TelegramUI/TelegramUI/ChatController.swift @@ -45,6 +45,7 @@ import RaiseToListen import UrlHandling import ReactionSelectionNode import MessageReactionListUI +import AppBundle public enum ChatControllerPeekActions { case standard @@ -555,7 +556,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G var reactionItems: [ReactionContextItem] = [] /*for (value, text, name) in reactions { - if let path = frameworkBundle.path(forResource: name, ofType: "tgs", inDirectory: "BuiltinReactions") { + if let path = getAppBundle().path(forResource: name, ofType: "tgs", inDirectory: "BuiltinReactions") { reactionItems.append(ReactionContextItem(value: value, text: text, path: path)) } }*/ diff --git a/submodules/TelegramUI/TelegramUI/ChatEmptyNode.swift b/submodules/TelegramUI/TelegramUI/ChatEmptyNode.swift index 3cfdd04a63..8758a09b3e 100644 --- a/submodules/TelegramUI/TelegramUI/ChatEmptyNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatEmptyNode.swift @@ -5,6 +5,7 @@ import Display import Postbox import TelegramCore import TelegramPresentationData +import AppBundle private protocol ChatEmptyNodeContent { func updateLayout(interfaceState: ChatPresentationInterfaceState, size: CGSize, transition: ContainedViewLayoutTransition) -> CGSize diff --git a/submodules/TelegramUI/TelegramUI/ChatInterfaceStateContextMenus.swift b/submodules/TelegramUI/TelegramUI/ChatInterfaceStateContextMenus.swift index 4a65f4bee8..21b2c81893 100644 --- a/submodules/TelegramUI/TelegramUI/ChatInterfaceStateContextMenus.swift +++ b/submodules/TelegramUI/TelegramUI/ChatInterfaceStateContextMenus.swift @@ -11,6 +11,7 @@ import OverlayStatusController import AccountContext import ContextUI import LegacyUI +import AppBundle private struct MessageContextMenuData { let starStatus: Bool? diff --git a/submodules/TelegramUI/TelegramUI/ChatMessageBubbleItemNode.swift b/submodules/TelegramUI/TelegramUI/ChatMessageBubbleItemNode.swift index ce6017c57e..ff139a7c03 100644 --- a/submodules/TelegramUI/TelegramUI/ChatMessageBubbleItemNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatMessageBubbleItemNode.swift @@ -19,6 +19,7 @@ import Emoji import ReactionSelectionNode import PersistentStringHash import GridMessageSelectionNode +import AppBundle private func contentNodeMessagesAndClassesForItem(_ item: ChatMessageItem) -> [(Message, AnyClass)] { var result: [(Message, AnyClass)] = [] @@ -436,7 +437,7 @@ class ChatMessageBubbleItemNode: ChatMessageItemView, ChatMessagePrevewItemNode var reactionItems: [ReactionGestureItem] = [] for (value, text, name) in reactions { - if let path = frameworkBundle.path(forResource: name, ofType: "tgs", inDirectory: "BuiltinReactions") { + if let path = getAppBundle().path(forResource: name, ofType: "tgs", inDirectory: "BuiltinReactions") { reactionItems.append(.reaction(value: value, text: text, path: path)) } } diff --git a/submodules/TelegramUI/TelegramUI/ChatMessageCallBubbleContentNode.swift b/submodules/TelegramUI/TelegramUI/ChatMessageCallBubbleContentNode.swift index 387be91901..f7d145cb86 100644 --- a/submodules/TelegramUI/TelegramUI/ChatMessageCallBubbleContentNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatMessageCallBubbleContentNode.swift @@ -5,6 +5,7 @@ import Display import TelegramCore import Postbox import TelegramPresentationData +import AppBundle private let titleFont: UIFont = Font.medium(16.0) private let labelFont: UIFont = Font.regular(13.0) diff --git a/submodules/TelegramUI/TelegramUI/ChatMessageInteractiveMediaBadge.swift b/submodules/TelegramUI/TelegramUI/ChatMessageInteractiveMediaBadge.swift index 70f5a39887..d71b6f4a6f 100644 --- a/submodules/TelegramUI/TelegramUI/ChatMessageInteractiveMediaBadge.swift +++ b/submodules/TelegramUI/TelegramUI/ChatMessageInteractiveMediaBadge.swift @@ -5,6 +5,7 @@ import AsyncDisplayKit import TelegramPresentationData import TextFormat import RadialStatusNode +import AppBundle enum ChatMessageInteractiveMediaDownloadState: Equatable { case remote diff --git a/submodules/TelegramUI/TelegramUI/ChatMessageSelectionInputPanelNode.swift b/submodules/TelegramUI/TelegramUI/ChatMessageSelectionInputPanelNode.swift index 4661cd3b29..7266c79424 100644 --- a/submodules/TelegramUI/TelegramUI/ChatMessageSelectionInputPanelNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatMessageSelectionInputPanelNode.swift @@ -7,6 +7,7 @@ import TelegramCore import SwiftSignalKit import TelegramPresentationData import AccountContext +import AppBundle final class ChatMessageSelectionInputPanelNode: ChatInputPanelNode { private let deleteButton: HighlightableButtonNode diff --git a/submodules/TelegramUI/TelegramUI/ChatMessageSwipeToReplyNode.swift b/submodules/TelegramUI/TelegramUI/ChatMessageSwipeToReplyNode.swift index c6bf45f11a..e1fec4bd6a 100644 --- a/submodules/TelegramUI/TelegramUI/ChatMessageSwipeToReplyNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatMessageSwipeToReplyNode.swift @@ -2,6 +2,7 @@ import Foundation import UIKit import Display import AsyncDisplayKit +import AppBundle final class ChatMessageSwipeToReplyNode: ASDisplayNode { private let backgroundNode: ASImageNode diff --git a/submodules/TelegramUI/TelegramUI/ChatRecordingPreviewInputPanelNode.swift b/submodules/TelegramUI/TelegramUI/ChatRecordingPreviewInputPanelNode.swift index 8d3e9efee5..737ee1cdba 100644 --- a/submodules/TelegramUI/TelegramUI/ChatRecordingPreviewInputPanelNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatRecordingPreviewInputPanelNode.swift @@ -7,6 +7,7 @@ import Postbox import SwiftSignalKit import TelegramPresentationData import UniversalMediaPlayer +import AppBundle private func generatePauseIcon(_ theme: PresentationTheme) -> UIImage? { return generateTintedImage(image: UIImage(bundleImageName: "GlobalMusicPlayer/MinimizedPause"), color: theme.chat.inputPanel.actionControlForegroundColor) diff --git a/submodules/TelegramUI/TelegramUI/ChatSendMessageActionSheetControllerNode.swift b/submodules/TelegramUI/TelegramUI/ChatSendMessageActionSheetControllerNode.swift index f92433fc40..8c8c7e8bb1 100644 --- a/submodules/TelegramUI/TelegramUI/ChatSendMessageActionSheetControllerNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatSendMessageActionSheetControllerNode.swift @@ -7,6 +7,7 @@ import Postbox import TelegramCore import TelegramPresentationData import AccountContext +import AppBundle private let leftInset: CGFloat = 16.0 private let rightInset: CGFloat = 16.0 diff --git a/submodules/TelegramUI/TelegramUI/ChatTextInputAudioRecordingOverlayButton.swift b/submodules/TelegramUI/TelegramUI/ChatTextInputAudioRecordingOverlayButton.swift index 6b56c873e0..ab14602ab7 100644 --- a/submodules/TelegramUI/TelegramUI/ChatTextInputAudioRecordingOverlayButton.swift +++ b/submodules/TelegramUI/TelegramUI/ChatTextInputAudioRecordingOverlayButton.swift @@ -2,6 +2,7 @@ import Foundation import UIKit import Display import AsyncDisplayKit +import AppBundle private let innerCircleDiameter: CGFloat = 110.0 private let outerCircleDiameter = innerCircleDiameter + 50.0 diff --git a/submodules/TelegramUI/TelegramUI/ChatTextInputSlowmodePlaceholderNode.swift b/submodules/TelegramUI/TelegramUI/ChatTextInputSlowmodePlaceholderNode.swift index 4dbdd5f730..8249baab92 100644 --- a/submodules/TelegramUI/TelegramUI/ChatTextInputSlowmodePlaceholderNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatTextInputSlowmodePlaceholderNode.swift @@ -3,6 +3,7 @@ import Display import SwiftSignalKit import TelegramPresentationData import TelegramStringFormatting +import AppBundle final class ChatTextInputSlowmodePlaceholderNode: ASDisplayNode { private var theme: PresentationTheme diff --git a/submodules/TelegramUI/TelegramUI/ComposeController.swift b/submodules/TelegramUI/TelegramUI/ComposeController.swift index 080321eaca..5d23d76649 100644 --- a/submodules/TelegramUI/TelegramUI/ComposeController.swift +++ b/submodules/TelegramUI/TelegramUI/ComposeController.swift @@ -10,6 +10,7 @@ import AccountContext import AlertUI import SearchUI import TelegramPermissionsUI +import AppBundle public class ComposeController: ViewController { private let context: AccountContext diff --git a/submodules/TelegramUI/TelegramUI/ComposeControllerNode.swift b/submodules/TelegramUI/TelegramUI/ComposeControllerNode.swift index 2f2a6aea57..e60225b3dd 100644 --- a/submodules/TelegramUI/TelegramUI/ComposeControllerNode.swift +++ b/submodules/TelegramUI/TelegramUI/ComposeControllerNode.swift @@ -9,6 +9,7 @@ import AccountContext import SearchBarNode import SearchUI import ContactListUI +import AppBundle final class ComposeControllerNode: ASDisplayNode { let contactListNode: ContactListNode diff --git a/submodules/TelegramUI/TelegramUI/Config/TelegramUI.xcconfig b/submodules/TelegramUI/TelegramUI/Config/TelegramUI.xcconfig deleted file mode 100644 index f54392eba9..0000000000 --- a/submodules/TelegramUI/TelegramUI/Config/TelegramUI.xcconfig +++ /dev/null @@ -1,2 +0,0 @@ -SWIFT_INCLUDE_PATHS = $(SRCROOT)/TelegramUI -MODULEMAP_PRIVATE_FILE = $(SRCROOT)/TelegramUI/module.private.modulemap diff --git a/submodules/TelegramUI/TelegramUI/EmojiResources.swift b/submodules/TelegramUI/TelegramUI/EmojiResources.swift index 045c0e8a71..73d81059d0 100644 --- a/submodules/TelegramUI/TelegramUI/EmojiResources.swift +++ b/submodules/TelegramUI/TelegramUI/EmojiResources.swift @@ -11,6 +11,7 @@ import WebP #endif import MediaResources import Emoji +import AppBundle public struct EmojiThumbnailResourceId: MediaResourceId { public let emoji: String @@ -114,7 +115,7 @@ public class EmojiSpriteResource: TelegramMediaResource { } private var emojiMapping: [String: (UInt8, UInt8, UInt8)] = { - let path = frameworkBundle.path(forResource: "Emoji", ofType: "mapping")! + let path = getAppBundle().path(forResource: "Emoji", ofType: "mapping")! var mapping: [String: (UInt8, UInt8, UInt8)] = [:] if let data = try? Data(contentsOf: URL(fileURLWithPath: path)) { diff --git a/submodules/TelegramUI/TelegramUI/FrameworkBundle.swift b/submodules/TelegramUI/TelegramUI/FrameworkBundle.swift deleted file mode 100644 index 3f7a202833..0000000000 --- a/submodules/TelegramUI/TelegramUI/FrameworkBundle.swift +++ /dev/null @@ -1,14 +0,0 @@ -import Foundation -import UIKit - -private class FrameworkBundleClass: NSObject { -} - -let frameworkBundle: Bundle = Bundle(for: FrameworkBundleClass.self) -private let screenScaleFactor = Int(UIScreen.main.scale) - -extension UIImage { - convenience init?(bundleImageName: String) { - self.init(named: bundleImageName, in: frameworkBundle, compatibleWith: nil) - } -} diff --git a/submodules/TelegramUI/TelegramUI/GifPaneSearchContentNode.swift b/submodules/TelegramUI/TelegramUI/GifPaneSearchContentNode.swift index 7938ea2828..99b34cd924 100644 --- a/submodules/TelegramUI/TelegramUI/GifPaneSearchContentNode.swift +++ b/submodules/TelegramUI/TelegramUI/GifPaneSearchContentNode.swift @@ -8,6 +8,7 @@ import TelegramCore import TelegramPresentationData import AccountContext import WebSearchUI +import AppBundle func paneGifSearchForQuery(account: Account, query: String, updateActivity: ((Bool) -> Void)?) -> Signal<[FileMediaReference]?, NoError> { let delayRequest = true diff --git a/submodules/TelegramUI/TelegramUI/LegacyInstantVideoController.swift b/submodules/TelegramUI/TelegramUI/LegacyInstantVideoController.swift index 4e19401c7f..c274d8502b 100644 --- a/submodules/TelegramUI/TelegramUI/LegacyInstantVideoController.swift +++ b/submodules/TelegramUI/TelegramUI/LegacyInstantVideoController.swift @@ -11,6 +11,7 @@ import AccountContext import LegacyUI import ImageCompression import LocalMediaResources +import AppBundle final class InstantVideoControllerRecordingStatus { let micLevel: Signal diff --git a/submodules/TelegramUI/TelegramUI/OverlayInstantVideoDecoration.swift b/submodules/TelegramUI/TelegramUI/OverlayInstantVideoDecoration.swift index 2b9f365df3..8ac041dde8 100644 --- a/submodules/TelegramUI/TelegramUI/OverlayInstantVideoDecoration.swift +++ b/submodules/TelegramUI/TelegramUI/OverlayInstantVideoDecoration.swift @@ -5,6 +5,7 @@ import Display import SwiftSignalKit import UniversalMediaPlayer import AccountContext +import AppBundle private let backgroundImage = UIImage(bundleImageName: "Chat/Message/OverlayInstantVideoShadow")?.precomposed() diff --git a/submodules/TelegramUI/TelegramUI/OverlayPlayerControlsNode.swift b/submodules/TelegramUI/TelegramUI/OverlayPlayerControlsNode.swift index 7a2160a066..57cd6daef7 100644 --- a/submodules/TelegramUI/TelegramUI/OverlayPlayerControlsNode.swift +++ b/submodules/TelegramUI/TelegramUI/OverlayPlayerControlsNode.swift @@ -10,6 +10,7 @@ import UniversalMediaPlayer import TelegramUIPreferences import AccountContext import PhotoResources +import AppBundle private func generateBackground(theme: PresentationTheme) -> UIImage? { return generateImage(CGSize(width: 20.0, height: 10.0 + 8.0), rotatedContext: { size, context in diff --git a/submodules/TelegramUI/TelegramUI/PaneSearchBarNode.swift b/submodules/TelegramUI/TelegramUI/PaneSearchBarNode.swift index b4890cd0ff..c7837b742d 100644 --- a/submodules/TelegramUI/TelegramUI/PaneSearchBarNode.swift +++ b/submodules/TelegramUI/TelegramUI/PaneSearchBarNode.swift @@ -5,6 +5,7 @@ import AsyncDisplayKit import Display import TelegramPresentationData import ActivityIndicator +import AppBundle private func generateLoupeIcon(color: UIColor) -> UIImage? { return generateTintedImage(image: UIImage(bundleImageName: "Components/Search Bar/Loupe"), color: color) diff --git a/submodules/TelegramUI/TelegramUI/PaneSearchBarPlaceholderItem.swift b/submodules/TelegramUI/TelegramUI/PaneSearchBarPlaceholderItem.swift index 84c0ff76f7..2f175126c7 100644 --- a/submodules/TelegramUI/TelegramUI/PaneSearchBarPlaceholderItem.swift +++ b/submodules/TelegramUI/TelegramUI/PaneSearchBarPlaceholderItem.swift @@ -3,6 +3,7 @@ import UIKit import AsyncDisplayKit import Display import TelegramPresentationData +import AppBundle private let templateLoupeIcon = UIImage(bundleImageName: "Components/Search Bar/Loupe") diff --git a/submodules/TelegramUI/TelegramUI/PeerMediaCollectionEmptyNode.swift b/submodules/TelegramUI/TelegramUI/PeerMediaCollectionEmptyNode.swift index 66ee3035b4..c9eb63bf1a 100644 --- a/submodules/TelegramUI/TelegramUI/PeerMediaCollectionEmptyNode.swift +++ b/submodules/TelegramUI/TelegramUI/PeerMediaCollectionEmptyNode.swift @@ -4,6 +4,7 @@ import AsyncDisplayKit import Display import TelegramPresentationData import ActivityIndicator +import AppBundle final class PeerMediaCollectionEmptyNode: ASDisplayNode { private let mode: PeerMediaCollectionMode diff --git a/submodules/TelegramUI/TelegramUI/ServiceSoundManager.swift b/submodules/TelegramUI/TelegramUI/ServiceSoundManager.swift index c4ba6b38f7..6a856ca430 100644 --- a/submodules/TelegramUI/TelegramUI/ServiceSoundManager.swift +++ b/submodules/TelegramUI/TelegramUI/ServiceSoundManager.swift @@ -1,9 +1,10 @@ import Foundation import SwiftSignalKit import AudioToolbox +import AppBundle private func loadSystemSoundFromBundle(name: String) -> SystemSoundID? { - let path = "\(frameworkBundle.resourcePath!)/\(name)" + let path = "\(getAppBundle().resourcePath!)/\(name)" let url = URL(fileURLWithPath: path) var sound: SystemSoundID = 0 if AudioServicesCreateSystemSoundID(url as CFURL, &sound) == noErr { diff --git a/submodules/TelegramUI/TelegramUI/StickerPaneSearchContentNode.swift b/submodules/TelegramUI/TelegramUI/StickerPaneSearchContentNode.swift index 9913c3bb61..2cf75faa78 100644 --- a/submodules/TelegramUI/TelegramUI/StickerPaneSearchContentNode.swift +++ b/submodules/TelegramUI/TelegramUI/StickerPaneSearchContentNode.swift @@ -11,6 +11,7 @@ import MergeLists import AccountContext import StickerPackPreviewUI import Emoji +import AppBundle final class StickerPaneSearchInteraction { let open: (StickerPackCollectionInfo) -> Void diff --git a/submodules/TelegramUI/TelegramUI/TelegramRootController.swift b/submodules/TelegramUI/TelegramUI/TelegramRootController.swift index 2c5e678bdb..54bcfd3050 100644 --- a/submodules/TelegramUI/TelegramUI/TelegramRootController.swift +++ b/submodules/TelegramUI/TelegramUI/TelegramRootController.swift @@ -10,6 +10,7 @@ import ContactListUI import CallListUI import ChatListUI import SettingsUI +import AppBundle public final class TelegramRootController: NavigationController { private let context: AccountContext diff --git a/submodules/TelegramUI/TelegramUI_Xcode.xcodeproj/project.pbxproj b/submodules/TelegramUI/TelegramUI_Xcode.xcodeproj/project.pbxproj index 909c30af3e..4e5d56956a 100644 --- a/submodules/TelegramUI/TelegramUI_Xcode.xcodeproj/project.pbxproj +++ b/submodules/TelegramUI/TelegramUI_Xcode.xcodeproj/project.pbxproj @@ -9,40 +9,16 @@ /* Begin PBXBuildFile section */ 090B48C82200BCA8005083FA /* WallpaperUploadManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 090B48C72200BCA8005083FA /* WallpaperUploadManager.swift */; }; 090E63EE2196FE3A00E3C035 /* OpenAddContact.swift in Sources */ = {isa = PBXBuildFile; fileRef = 090E63ED2196FE3A00E3C035 /* OpenAddContact.swift */; }; - 090E778C22AA842300CD99F5 /* anim_success.json in Resources */ = {isa = PBXBuildFile; fileRef = 090E778B22AA842200CD99F5 /* anim_success.json */; }; 0910B0ED21FA178C00F8F87D /* WallpaperPreviewMedia.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0910B0EC21FA178C00F8F87D /* WallpaperPreviewMedia.swift */; }; 091BEAB3214552D9003AEA30 /* Vision.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D02DADBE2138D76F00116225 /* Vision.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; 0921F60E228EE000001A13D7 /* ChatMessageActionUrlAuthController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0921F60D228EE000001A13D7 /* ChatMessageActionUrlAuthController.swift */; }; - 092F368D2154AAEA001A9F49 /* SFCompactRounded-Semibold.otf in Resources */ = {isa = PBXBuildFile; fileRef = 092F368C2154AAE9001A9F49 /* SFCompactRounded-Semibold.otf */; }; - 09310D32213ED5FC0020033A /* anim_ungroup.json in Resources */ = {isa = PBXBuildFile; fileRef = 09310D1A213BC5DE0020033A /* anim_ungroup.json */; }; - 09310D33213ED5FC0020033A /* anim_group.json in Resources */ = {isa = PBXBuildFile; fileRef = 09310D1B213BC5DE0020033A /* anim_group.json */; }; 0940932422E73DFB003846A3 /* ChatSendMessageActionSheetController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0940932322E73DFB003846A3 /* ChatSendMessageActionSheetController.swift */; }; 0940932622E73E12003846A3 /* ChatSendMessageActionSheetControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0940932522E73E12003846A3 /* ChatSendMessageActionSheetControllerNode.swift */; }; - 0947350E2275D72100EA2312 /* anim_hide.json in Resources */ = {isa = PBXBuildFile; fileRef = 094735042275D71F00EA2312 /* anim_hide.json */; }; - 0947350F2275D72100EA2312 /* anim_unread.json in Resources */ = {isa = PBXBuildFile; fileRef = 094735052275D72000EA2312 /* anim_unread.json */; }; - 094735102275D72100EA2312 /* anim_read.json in Resources */ = {isa = PBXBuildFile; fileRef = 094735062275D72000EA2312 /* anim_read.json */; }; - 094735112275D72100EA2312 /* anim_archive.json in Resources */ = {isa = PBXBuildFile; fileRef = 094735072275D72000EA2312 /* anim_archive.json */; }; - 094735122275D72100EA2312 /* anim_mute.json in Resources */ = {isa = PBXBuildFile; fileRef = 094735082275D72000EA2312 /* anim_mute.json */; }; - 094735132275D72100EA2312 /* anim_delete.json in Resources */ = {isa = PBXBuildFile; fileRef = 094735092275D72000EA2312 /* anim_delete.json */; }; - 094735142275D72100EA2312 /* anim_unarchive.json in Resources */ = {isa = PBXBuildFile; fileRef = 0947350A2275D72000EA2312 /* anim_unarchive.json */; }; - 094735152275D72100EA2312 /* anim_unpin.json in Resources */ = {isa = PBXBuildFile; fileRef = 0947350B2275D72000EA2312 /* anim_unpin.json */; }; - 094735162275D72100EA2312 /* anim_unmute.json in Resources */ = {isa = PBXBuildFile; fileRef = 0947350C2275D72100EA2312 /* anim_unmute.json */; }; - 094735172275D72100EA2312 /* anim_pin.json in Resources */ = {isa = PBXBuildFile; fileRef = 0947350D2275D72100EA2312 /* anim_pin.json */; }; - 094735192277483C00EA2312 /* anim_infotip.json in Resources */ = {isa = PBXBuildFile; fileRef = 094735182277483B00EA2312 /* anim_infotip.json */; }; 09510B1322F96E5B0078CAB7 /* ChatScheduleTimeController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09510B1222F96E5B0078CAB7 /* ChatScheduleTimeController.swift */; }; 09510B1522F96E6C0078CAB7 /* ChatScheduleTimeControllerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09510B1422F96E6C0078CAB7 /* ChatScheduleTimeControllerNode.swift */; }; 095214EF2318D4D3008CDD87 /* ThemeUpdateManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 095214EE2318D4D3008CDD87 /* ThemeUpdateManager.swift */; }; 0962E67921B67A9800245FD9 /* ChatMessageAnimatedStickerItemNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0962E67821B67A9800245FD9 /* ChatMessageAnimatedStickerItemNode.swift */; }; 09749BC521F0E024008FDDE9 /* StickersChatInputContextPanelItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09749BC421F0E024008FDDE9 /* StickersChatInputContextPanelItem.swift */; }; - 09874E4F21078FA100E190B8 /* Generic.html in Resources */ = {isa = PBXBuildFile; fileRef = 0979788321065F8C0077D77F /* Generic.html */; }; - 09874E5021078FA100E190B8 /* GenericUserScript.js in Resources */ = {isa = PBXBuildFile; fileRef = 0979788821065F8C0077D77F /* GenericUserScript.js */; }; - 09874E5121078FA100E190B8 /* Instagram.html in Resources */ = {isa = PBXBuildFile; fileRef = 0979788421065F8C0077D77F /* Instagram.html */; }; - 09874E5221078FA100E190B8 /* Twitch.html in Resources */ = {isa = PBXBuildFile; fileRef = 0979788521065F8C0077D77F /* Twitch.html */; }; - 09874E5321078FA100E190B8 /* TwitchUserScript.js in Resources */ = {isa = PBXBuildFile; fileRef = 0979788621065F8C0077D77F /* TwitchUserScript.js */; }; - 09874E5421078FA100E190B8 /* Vimeo.html in Resources */ = {isa = PBXBuildFile; fileRef = 0979788221065F8C0077D77F /* Vimeo.html */; }; - 09874E5521078FA100E190B8 /* VimeoUserScript.js in Resources */ = {isa = PBXBuildFile; fileRef = 0979788021065F8B0077D77F /* VimeoUserScript.js */; }; - 09874E5621078FA100E190B8 /* Youtube.html in Resources */ = {isa = PBXBuildFile; fileRef = 0979788721065F8C0077D77F /* Youtube.html */; }; - 09874E5721078FA100E190B8 /* YoutubeUserScript.js in Resources */ = {isa = PBXBuildFile; fileRef = 0979788121065F8B0077D77F /* YoutubeUserScript.js */; }; 099529B021D2123E00805E13 /* ChatMessageUnsupportedBubbleContentNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 099529AF21D2123E00805E13 /* ChatMessageUnsupportedBubbleContentNode.swift */; }; 099529B421D3E5D800805E13 /* CheckDiskSpace.swift in Sources */ = {isa = PBXBuildFile; fileRef = 099529B321D3E5D800805E13 /* CheckDiskSpace.swift */; }; 09A218D9229EE1B600DE6898 /* HorizontalStickerGridItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09A218D7229EE1B500DE6898 /* HorizontalStickerGridItem.swift */; }; @@ -53,13 +29,10 @@ 09D304152173C0E900C00567 /* WatchManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09D304142173C0E900C00567 /* WatchManager.swift */; }; 09D96899221DE92600B1458A /* ID3ArtworkReader.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09D96898221DE92600B1458A /* ID3ArtworkReader.swift */; }; 09DD5D5021ECC3C400D7007A /* SuppressContactsWarning.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09DD5D4F21ECC3C400D7007A /* SuppressContactsWarning.swift */; }; - 09E2D9EF226F1AFA00EA0AA4 /* Emoji.mapping in Resources */ = {isa = PBXBuildFile; fileRef = 09E2D9ED226F1AF300EA0AA4 /* Emoji.mapping */; }; 09E2D9F1226F214000EA0AA4 /* EmojiResources.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09E2D9F0226F214000EA0AA4 /* EmojiResources.swift */; }; - 09E2DA132273367900EA0AA4 /* anim_archiveAvatar.json in Resources */ = {isa = PBXBuildFile; fileRef = 09E2DA122273367900EA0AA4 /* anim_archiveAvatar.json */; }; 09EC0DED22CB583C00E7185B /* TextLinkHandling.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09EC0DEC22CB583C00E7185B /* TextLinkHandling.swift */; }; 09EDAD2A220DA6A40012A50B /* VolumeButtons.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09EDAD29220DA6A40012A50B /* VolumeButtons.swift */; }; 09F2158D225CF5BC00AEDF6D /* Pasteboard.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09F2158C225CF5BC00AEDF6D /* Pasteboard.swift */; }; - 09FFBCD1227B7F9900C33B4B /* anim_archiveswipe.json in Resources */ = {isa = PBXBuildFile; fileRef = 09FFBCCF227B7F9000C33B4B /* anim_archiveswipe.json */; }; 09FFBCD72281BB2D00C33B4B /* ChatTextLinkEditController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09FFBCD62281BB2D00C33B4B /* ChatTextLinkEditController.swift */; }; D000CABC21F158AD0011B15D /* PrepareSecretThumbnailData.swift in Sources */ = {isa = PBXBuildFile; fileRef = D000CABB21F158AD0011B15D /* PrepareSecretThumbnailData.swift */; }; D0068FA821760FA300D1B315 /* StoreDownloadedMedia.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0068FA721760FA300D1B315 /* StoreDownloadedMedia.swift */; }; @@ -155,7 +128,6 @@ D04281FC200E61BC009DDE36 /* ChatRecentActionsInteraction.swift in Sources */ = {isa = PBXBuildFile; fileRef = D04281FB200E61BC009DDE36 /* ChatRecentActionsInteraction.swift */; }; D04281FE200E639A009DDE36 /* ChatRecentActionsTitleView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D04281FD200E639A009DDE36 /* ChatRecentActionsTitleView.swift */; }; D0428200200E6A00009DDE36 /* ChatRecentActionsHistoryTransition.swift in Sources */ = {isa = PBXBuildFile; fileRef = D04281FF200E6A00009DDE36 /* ChatRecentActionsHistoryTransition.swift */; }; - D0471B541EFD8ECA0074D609 /* currencies.json in Resources */ = {isa = PBXBuildFile; fileRef = D0471B531EFD8ECA0074D609 /* currencies.json */; }; D048B339203C532800038D05 /* ChatMediaInputPane.swift in Sources */ = {isa = PBXBuildFile; fileRef = D048B338203C532800038D05 /* ChatMediaInputPane.swift */; }; D04B4D131EEA0A6500711AF6 /* ChatMessageMapBubbleContentNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D04B4D121EEA0A6500711AF6 /* ChatMessageMapBubbleContentNode.swift */; }; D04ECD721FFBF22B00DE9029 /* OpenUrl.swift in Sources */ = {isa = PBXBuildFile; fileRef = D04ECD711FFBF22B00DE9029 /* OpenUrl.swift */; }; @@ -211,8 +183,6 @@ D0943B001FDAE852001522CC /* ChatFeedNavigationInputPanelNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0943AFF1FDAE852001522CC /* ChatFeedNavigationInputPanelNode.swift */; }; D0943B051FDDFDA0001522CC /* OverlayInstantVideoNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0943B041FDDFDA0001522CC /* OverlayInstantVideoNode.swift */; }; D0943B071FDEC529001522CC /* InstantVideoRadialStatusNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0943B061FDEC528001522CC /* InstantVideoRadialStatusNode.swift */; }; - D0955FB521912B6000F89427 /* PresentationStrings.mapping in Resources */ = {isa = PBXBuildFile; fileRef = D0955FB32191278C00F89427 /* PresentationStrings.mapping */; }; - D095EF51230C7D2C00CB6167 /* BuiltinReactions in Resources */ = {isa = PBXBuildFile; fileRef = D095EF4F230C767D00CB6167 /* BuiltinReactions */; }; D099E220229405BB00561B75 /* Weak.swift in Sources */ = {isa = PBXBuildFile; fileRef = D099E21F229405BB00561B75 /* Weak.swift */; }; D09E637C1F0E7C28003444CD /* SharedMediaPlayer.swift in Sources */ = {isa = PBXBuildFile; fileRef = D09E637B1F0E7C28003444CD /* SharedMediaPlayer.swift */; }; D09E637F1F0E8C9F003444CD /* PeerMessagesMediaPlaylist.swift in Sources */ = {isa = PBXBuildFile; fileRef = D09E637E1F0E8C9F003444CD /* PeerMessagesMediaPlaylist.swift */; }; @@ -250,7 +220,6 @@ D0AEAE292080FD660013176E /* StickerPaneSearchGlobaltem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AEAE282080FD660013176E /* StickerPaneSearchGlobaltem.swift */; }; D0AF323A1FB1D8D60097362B /* ChatOverlayNavigationBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AF32391FB1D8D60097362B /* ChatOverlayNavigationBar.swift */; }; D0B21B1F22156D92003F741D /* LegacyCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B21B1E22156D92003F741D /* LegacyCache.swift */; }; - D0B4AF861EC111FA00D51FF6 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = D0AB0BBA1D6719B5002C78E7 /* Images.xcassets */; }; D0B4AF881EC112EE00D51FF6 /* CallKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0B4AF871EC112ED00D51FF6 /* CallKit.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; D0B69C3920EBB397003632C7 /* ChatMessageInteractiveInstantVideoNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B69C3820EBB397003632C7 /* ChatMessageInteractiveInstantVideoNode.swift */; }; D0B85C1C1FF6F76000E795B4 /* AuthorizationSequencePasswordRecoveryController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B85C1B1FF6F76000E795B4 /* AuthorizationSequencePasswordRecoveryController.swift */; }; @@ -265,7 +234,6 @@ D0C0B59B1EE019E5000F4D2C /* ChatSearchNavigationContentNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C0B59A1EE019E5000F4D2C /* ChatSearchNavigationContentNode.swift */; }; D0C0B59F1EE082F5000F4D2C /* ChatSearchInputPanelNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C0B59E1EE082F5000F4D2C /* ChatSearchInputPanelNode.swift */; }; D0C0B5B11EE1C421000F4D2C /* ChatDateSelectionSheet.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C0B5B01EE1C421000F4D2C /* ChatDateSelectionSheet.swift */; }; - D0C12A1D1F33A85600B3F66D /* ChatWallpaperBuiltin0.jpg in Resources */ = {isa = PBXBuildFile; fileRef = D0C12A1B1F33964900B3F66D /* ChatWallpaperBuiltin0.jpg */; }; 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 */; }; @@ -336,48 +304,6 @@ D0E8175720122DAD00B82BBB /* ChatRecentActionsSearchNavigationContentNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E8175620122DAD00B82BBB /* ChatRecentActionsSearchNavigationContentNode.swift */; }; D0E8175920122FE100B82BBB /* ChatRecentActionsFilterController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E8175820122FE100B82BBB /* ChatRecentActionsFilterController.swift */; }; D0E8175B201254FA00B82BBB /* ChatRecentActionsEmptyNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0E8175A201254FA00B82BBB /* ChatRecentActionsEmptyNode.swift */; }; - D0E9B9EA1F00853C00F079A4 /* PhoneCountries.txt in Resources */ = {isa = PBXBuildFile; fileRef = D0E9B9E91F00853C00F079A4 /* PhoneCountries.txt */; }; - D0E9BA911F056F4C00F079A4 /* stp_card_amex@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0E9BA691F056F4C00F079A4 /* stp_card_amex@2x.png */; }; - D0E9BA921F056F4C00F079A4 /* stp_card_amex@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0E9BA6A1F056F4C00F079A4 /* stp_card_amex@3x.png */; }; - D0E9BA931F056F4C00F079A4 /* stp_card_amex_template@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0E9BA6B1F056F4C00F079A4 /* stp_card_amex_template@2x.png */; }; - D0E9BA941F056F4C00F079A4 /* stp_card_amex_template@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0E9BA6C1F056F4C00F079A4 /* stp_card_amex_template@3x.png */; }; - D0E9BA951F056F4C00F079A4 /* stp_card_applepay@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0E9BA6D1F056F4C00F079A4 /* stp_card_applepay@2x.png */; }; - D0E9BA961F056F4C00F079A4 /* stp_card_applepay@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0E9BA6E1F056F4C00F079A4 /* stp_card_applepay@3x.png */; }; - D0E9BA971F056F4C00F079A4 /* stp_card_applepay_template@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0E9BA6F1F056F4C00F079A4 /* stp_card_applepay_template@2x.png */; }; - D0E9BA981F056F4C00F079A4 /* stp_card_applepay_template@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0E9BA701F056F4C00F079A4 /* stp_card_applepay_template@3x.png */; }; - D0E9BA991F056F4C00F079A4 /* stp_card_cvc@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0E9BA711F056F4C00F079A4 /* stp_card_cvc@2x.png */; }; - D0E9BA9A1F056F4C00F079A4 /* stp_card_cvc@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0E9BA721F056F4C00F079A4 /* stp_card_cvc@3x.png */; }; - D0E9BA9B1F056F4C00F079A4 /* stp_card_cvc_amex@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0E9BA731F056F4C00F079A4 /* stp_card_cvc_amex@2x.png */; }; - D0E9BA9C1F056F4C00F079A4 /* stp_card_cvc_amex@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0E9BA741F056F4C00F079A4 /* stp_card_cvc_amex@3x.png */; }; - D0E9BA9D1F056F4C00F079A4 /* stp_card_diners@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0E9BA751F056F4C00F079A4 /* stp_card_diners@2x.png */; }; - D0E9BA9E1F056F4C00F079A4 /* stp_card_diners@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0E9BA761F056F4C00F079A4 /* stp_card_diners@3x.png */; }; - D0E9BA9F1F056F4C00F079A4 /* stp_card_diners_template@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0E9BA771F056F4C00F079A4 /* stp_card_diners_template@2x.png */; }; - D0E9BAA01F056F4C00F079A4 /* stp_card_diners_template@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0E9BA781F056F4C00F079A4 /* stp_card_diners_template@3x.png */; }; - D0E9BAA11F056F4C00F079A4 /* stp_card_discover@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0E9BA791F056F4C00F079A4 /* stp_card_discover@2x.png */; }; - D0E9BAA21F056F4C00F079A4 /* stp_card_discover@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0E9BA7A1F056F4C00F079A4 /* stp_card_discover@3x.png */; }; - D0E9BAA31F056F4C00F079A4 /* stp_card_discover_template@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0E9BA7B1F056F4C00F079A4 /* stp_card_discover_template@2x.png */; }; - D0E9BAA41F056F4C00F079A4 /* stp_card_discover_template@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0E9BA7C1F056F4C00F079A4 /* stp_card_discover_template@3x.png */; }; - D0E9BAA51F056F4C00F079A4 /* stp_card_form_applepay@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0E9BA7D1F056F4C00F079A4 /* stp_card_form_applepay@2x.png */; }; - D0E9BAA61F056F4C00F079A4 /* stp_card_form_applepay@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0E9BA7E1F056F4C00F079A4 /* stp_card_form_applepay@3x.png */; }; - D0E9BAA71F056F4C00F079A4 /* stp_card_form_back@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0E9BA7F1F056F4C00F079A4 /* stp_card_form_back@2x.png */; }; - D0E9BAA81F056F4C00F079A4 /* stp_card_form_back@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0E9BA801F056F4C00F079A4 /* stp_card_form_back@3x.png */; }; - D0E9BAA91F056F4C00F079A4 /* stp_card_form_front@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0E9BA811F056F4C00F079A4 /* stp_card_form_front@2x.png */; }; - D0E9BAAA1F056F4C00F079A4 /* stp_card_form_front@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0E9BA821F056F4C00F079A4 /* stp_card_form_front@3x.png */; }; - D0E9BAAB1F056F4C00F079A4 /* stp_card_jcb@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0E9BA831F056F4C00F079A4 /* stp_card_jcb@2x.png */; }; - D0E9BAAC1F056F4C00F079A4 /* stp_card_jcb@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0E9BA841F056F4C00F079A4 /* stp_card_jcb@3x.png */; }; - D0E9BAAD1F056F4C00F079A4 /* stp_card_jcb_template@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0E9BA851F056F4C00F079A4 /* stp_card_jcb_template@2x.png */; }; - D0E9BAAE1F056F4C00F079A4 /* stp_card_jcb_template@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0E9BA861F056F4C00F079A4 /* stp_card_jcb_template@3x.png */; }; - D0E9BAAF1F056F4C00F079A4 /* stp_card_mastercard@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0E9BA871F056F4C00F079A4 /* stp_card_mastercard@2x.png */; }; - D0E9BAB01F056F4C00F079A4 /* stp_card_mastercard@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0E9BA881F056F4C00F079A4 /* stp_card_mastercard@3x.png */; }; - D0E9BAB11F056F4C00F079A4 /* stp_card_mastercard_template@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0E9BA891F056F4C00F079A4 /* stp_card_mastercard_template@2x.png */; }; - D0E9BAB21F056F4C00F079A4 /* stp_card_mastercard_template@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0E9BA8A1F056F4C00F079A4 /* stp_card_mastercard_template@3x.png */; }; - D0E9BAB31F056F4C00F079A4 /* stp_card_placeholder_template@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0E9BA8B1F056F4C00F079A4 /* stp_card_placeholder_template@2x.png */; }; - D0E9BAB41F056F4C00F079A4 /* stp_card_placeholder_template@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0E9BA8C1F056F4C00F079A4 /* stp_card_placeholder_template@3x.png */; }; - D0E9BAB51F056F4C00F079A4 /* stp_card_visa@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0E9BA8D1F056F4C00F079A4 /* stp_card_visa@2x.png */; }; - D0E9BAB61F056F4C00F079A4 /* stp_card_visa@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0E9BA8E1F056F4C00F079A4 /* stp_card_visa@3x.png */; }; - D0E9BAB71F056F4C00F079A4 /* stp_card_visa_template@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0E9BA8F1F056F4C00F079A4 /* stp_card_visa_template@2x.png */; }; - D0E9BAB81F056F4C00F079A4 /* stp_card_visa_template@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D0E9BA901F056F4C00F079A4 /* stp_card_visa_template@3x.png */; }; - D0EB42051F3143AB00838FE6 /* LegacyComponentsResources.bundle in Resources */ = {isa = PBXBuildFile; fileRef = D0EB42041F3143AB00838FE6 /* LegacyComponentsResources.bundle */; }; D0EB5ADF1F798033004E89B6 /* PeerMediaCollectionEmptyNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0EB5ADE1F798033004E89B6 /* PeerMediaCollectionEmptyNode.swift */; }; D0EC55A3210231D600D1992C /* SearchPeerMembers.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0EC55A2210231D600D1992C /* SearchPeerMembers.swift */; }; D0EC6CC11EB9F58800EBF1C3 /* LegacyCamera.swift in Sources */ = {isa = PBXBuildFile; fileRef = D00E15251DDBD4E700ACF65C /* LegacyCamera.swift */; }; @@ -549,7 +475,6 @@ D0EC6E831EB9F58900EBF1C3 /* NotificationItemContainerNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C50E3D1E93D09200F62E39 /* NotificationItemContainerNode.swift */; }; D0EC6E841EB9F58900EBF1C3 /* NotificationItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C50E3B1E93CC2600F62E39 /* NotificationItem.swift */; }; D0EC6E851EB9F58900EBF1C3 /* ChatMessageNotificationItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C50E3F1E93D3B000F62E39 /* ChatMessageNotificationItem.swift */; }; - D0EC6E891EB9F58900EBF1C3 /* FrameworkBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F69E831D6B8C850046BCD6 /* FrameworkBundle.swift */; }; D0EC6E8F1EB9F5B200EBF1C3 /* AsyncDisplayKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D08D45291D5E340300A7428A /* AsyncDisplayKit.framework */; }; D0EC6E901EB9F5B200EBF1C3 /* Display.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D08D452A1D5E340300A7428A /* Display.framework */; }; D0EC6E911EB9F5B200EBF1C3 /* Postbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D08D452B1D5E340300A7428A /* Postbox.framework */; }; @@ -562,9 +487,8 @@ D0EC6EA61EB9FC2400EBF1C3 /* libc++.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = D07551901DDA4FC70073E051 /* libc++.tbd */; }; D0EC6EBD1EBA100F00EBF1C3 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0EC6EBC1EBA100F00EBF1C3 /* CoreAudio.framework */; }; D0EEE9A12165585F001292A6 /* DocumentPreviewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0EEE9A02165585F001292A6 /* DocumentPreviewController.swift */; }; + D0EFF2482319806700CF5164 /* AppBundle.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0EFF2472319806700CF5164 /* AppBundle.framework */; }; D0F19F6420E5A15B00EEC860 /* ChatMediaInputPeerSpecificItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0F19F6320E5A15B00EEC860 /* ChatMediaInputPeerSpecificItem.swift */; }; - D0F9720F1FFE4BD5002595C8 /* notification.caf in Resources */ = {isa = PBXBuildFile; fileRef = D0C50E431E93FCD200F62E39 /* notification.caf */; }; - D0F972101FFE4BD5002595C8 /* MessageSent.caf in Resources */ = {isa = PBXBuildFile; fileRef = D073CE621DCBBE5D007511FD /* MessageSent.caf */; }; 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 */; }; @@ -576,39 +500,15 @@ /* Begin PBXFileReference section */ 090B48C72200BCA8005083FA /* WallpaperUploadManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WallpaperUploadManager.swift; sourceTree = ""; }; 090E63ED2196FE3A00E3C035 /* OpenAddContact.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OpenAddContact.swift; sourceTree = ""; }; - 090E778B22AA842200CD99F5 /* anim_success.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = anim_success.json; sourceTree = ""; }; 0910B0EC21FA178C00F8F87D /* WallpaperPreviewMedia.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WallpaperPreviewMedia.swift; sourceTree = ""; }; 0921F60D228EE000001A13D7 /* ChatMessageActionUrlAuthController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatMessageActionUrlAuthController.swift; sourceTree = ""; }; - 092F368C2154AAE9001A9F49 /* SFCompactRounded-Semibold.otf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "SFCompactRounded-Semibold.otf"; sourceTree = ""; }; - 09310D1A213BC5DE0020033A /* anim_ungroup.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = anim_ungroup.json; sourceTree = ""; }; - 09310D1B213BC5DE0020033A /* anim_group.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = anim_group.json; sourceTree = ""; }; 0940932322E73DFB003846A3 /* ChatSendMessageActionSheetController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatSendMessageActionSheetController.swift; sourceTree = ""; }; 0940932522E73E12003846A3 /* ChatSendMessageActionSheetControllerNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatSendMessageActionSheetControllerNode.swift; sourceTree = ""; }; - 094735042275D71F00EA2312 /* anim_hide.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = anim_hide.json; sourceTree = ""; }; - 094735052275D72000EA2312 /* anim_unread.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = anim_unread.json; sourceTree = ""; }; - 094735062275D72000EA2312 /* anim_read.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = anim_read.json; sourceTree = ""; }; - 094735072275D72000EA2312 /* anim_archive.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = anim_archive.json; sourceTree = ""; }; - 094735082275D72000EA2312 /* anim_mute.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = anim_mute.json; sourceTree = ""; }; - 094735092275D72000EA2312 /* anim_delete.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = anim_delete.json; sourceTree = ""; }; - 0947350A2275D72000EA2312 /* anim_unarchive.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = anim_unarchive.json; sourceTree = ""; }; - 0947350B2275D72000EA2312 /* anim_unpin.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = anim_unpin.json; sourceTree = ""; }; - 0947350C2275D72100EA2312 /* anim_unmute.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = anim_unmute.json; sourceTree = ""; }; - 0947350D2275D72100EA2312 /* anim_pin.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = anim_pin.json; sourceTree = ""; }; - 094735182277483B00EA2312 /* anim_infotip.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = anim_infotip.json; sourceTree = ""; }; 09510B1222F96E5B0078CAB7 /* ChatScheduleTimeController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatScheduleTimeController.swift; sourceTree = ""; }; 09510B1422F96E6C0078CAB7 /* ChatScheduleTimeControllerNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatScheduleTimeControllerNode.swift; sourceTree = ""; }; 095214EE2318D4D3008CDD87 /* ThemeUpdateManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemeUpdateManager.swift; sourceTree = ""; }; 0962E67821B67A9800245FD9 /* ChatMessageAnimatedStickerItemNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatMessageAnimatedStickerItemNode.swift; sourceTree = ""; }; 09749BC421F0E024008FDDE9 /* StickersChatInputContextPanelItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StickersChatInputContextPanelItem.swift; sourceTree = ""; }; - 0979788021065F8B0077D77F /* VimeoUserScript.js */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.javascript; path = VimeoUserScript.js; sourceTree = ""; }; - 0979788121065F8B0077D77F /* YoutubeUserScript.js */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.javascript; path = YoutubeUserScript.js; sourceTree = ""; }; - 0979788221065F8C0077D77F /* Vimeo.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = Vimeo.html; sourceTree = ""; }; - 0979788321065F8C0077D77F /* Generic.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = Generic.html; sourceTree = ""; }; - 0979788421065F8C0077D77F /* Instagram.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = Instagram.html; sourceTree = ""; }; - 0979788521065F8C0077D77F /* Twitch.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = Twitch.html; sourceTree = ""; }; - 0979788621065F8C0077D77F /* TwitchUserScript.js */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.javascript; path = TwitchUserScript.js; sourceTree = ""; }; - 0979788721065F8C0077D77F /* Youtube.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = Youtube.html; sourceTree = ""; }; - 0979788821065F8C0077D77F /* GenericUserScript.js */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.javascript; path = GenericUserScript.js; sourceTree = ""; }; 099529AF21D2123E00805E13 /* ChatMessageUnsupportedBubbleContentNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatMessageUnsupportedBubbleContentNode.swift; sourceTree = ""; }; 099529B321D3E5D800805E13 /* CheckDiskSpace.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CheckDiskSpace.swift; sourceTree = ""; }; 09A218D7229EE1B500DE6898 /* HorizontalStickerGridItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HorizontalStickerGridItem.swift; sourceTree = ""; }; @@ -619,13 +519,10 @@ 09D304142173C0E900C00567 /* WatchManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WatchManager.swift; sourceTree = ""; }; 09D96898221DE92600B1458A /* ID3ArtworkReader.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ID3ArtworkReader.swift; sourceTree = ""; }; 09DD5D4F21ECC3C400D7007A /* SuppressContactsWarning.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SuppressContactsWarning.swift; sourceTree = ""; }; - 09E2D9ED226F1AF300EA0AA4 /* Emoji.mapping */ = {isa = PBXFileReference; lastKnownFileType = file; name = Emoji.mapping; path = TelegramUI/Resources/Emoji.mapping; sourceTree = ""; }; 09E2D9F0226F214000EA0AA4 /* EmojiResources.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmojiResources.swift; sourceTree = ""; }; - 09E2DA122273367900EA0AA4 /* anim_archiveAvatar.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = anim_archiveAvatar.json; sourceTree = ""; }; 09EC0DEC22CB583C00E7185B /* TextLinkHandling.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextLinkHandling.swift; sourceTree = ""; }; 09EDAD29220DA6A40012A50B /* VolumeButtons.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VolumeButtons.swift; sourceTree = ""; }; 09F2158C225CF5BC00AEDF6D /* Pasteboard.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Pasteboard.swift; sourceTree = ""; }; - 09FFBCCF227B7F9000C33B4B /* anim_archiveswipe.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = anim_archiveswipe.json; sourceTree = ""; }; 09FFBCD62281BB2D00C33B4B /* ChatTextLinkEditController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatTextLinkEditController.swift; sourceTree = ""; }; D000CABB21F158AD0011B15D /* PrepareSecretThumbnailData.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PrepareSecretThumbnailData.swift; sourceTree = ""; }; D002A0D21E9BBE6700A81812 /* MultiplexedSoftwareVideoSourceManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MultiplexedSoftwareVideoSourceManager.swift; sourceTree = ""; }; @@ -767,7 +664,6 @@ D04281FF200E6A00009DDE36 /* ChatRecentActionsHistoryTransition.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatRecentActionsHistoryTransition.swift; sourceTree = ""; }; D045549921B2F173007A6DD9 /* libturbojpeg.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libturbojpeg.a; path = "third-party/libjpeg-turbo/libturbojpeg.a"; sourceTree = ""; }; D04662801E68BA64006FAFC4 /* TransformOutgoingMessageMedia.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TransformOutgoingMessageMedia.swift; sourceTree = ""; }; - D0471B531EFD8ECA0074D609 /* currencies.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; name = currencies.json; path = TelegramUI/Resources/currencies.json; sourceTree = ""; }; D048B338203C532800038D05 /* ChatMediaInputPane.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatMediaInputPane.swift; sourceTree = ""; }; D049EAE11E447AD500A2CD3A /* StickersChatInputContextPanelNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StickersChatInputContextPanelNode.swift; sourceTree = ""; }; D049EAE51E44AD5600A2CD3A /* ChatMediaInputMetaSectionItemNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMediaInputMetaSectionItemNode.swift; sourceTree = ""; }; @@ -812,7 +708,6 @@ D06E0F8D1F79ABFB003CF3DD /* ChatLoadingNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatLoadingNode.swift; sourceTree = ""; }; D06F1EA31F6C0A5D00FE8B74 /* ChatHistorySearchContainerNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatHistorySearchContainerNode.swift; sourceTree = ""; }; D072F38323155EAF0009E66F /* MessageReactionListUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = MessageReactionListUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - D073CE621DCBBE5D007511FD /* MessageSent.caf */ = {isa = PBXFileReference; lastKnownFileType = file; name = MessageSent.caf; path = TelegramUI/Sounds/MessageSent.caf; sourceTree = ""; }; D073CE641DCBC26B007511FD /* ServiceSoundManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ServiceSoundManager.swift; sourceTree = ""; }; D073CE701DCBF23F007511FD /* DeclareEncodables.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DeclareEncodables.swift; sourceTree = ""; }; D0750C7722B2A13300BE5F6E /* UniversalMediaPlayer.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = UniversalMediaPlayer.framework; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -868,8 +763,6 @@ D0943AFF1FDAE852001522CC /* ChatFeedNavigationInputPanelNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatFeedNavigationInputPanelNode.swift; sourceTree = ""; }; D0943B041FDDFDA0001522CC /* OverlayInstantVideoNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OverlayInstantVideoNode.swift; sourceTree = ""; }; D0943B061FDEC528001522CC /* InstantVideoRadialStatusNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InstantVideoRadialStatusNode.swift; sourceTree = ""; }; - D0955FB32191278C00F89427 /* PresentationStrings.mapping */ = {isa = PBXFileReference; lastKnownFileType = file; name = PresentationStrings.mapping; path = TelegramUI/Resources/PresentationStrings.mapping; sourceTree = ""; }; - D095EF4F230C767D00CB6167 /* BuiltinReactions */ = {isa = PBXFileReference; lastKnownFileType = folder; name = BuiltinReactions; path = TelegramUI/Resources/BuiltinReactions; sourceTree = ""; }; D099E21F229405BB00561B75 /* Weak.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Weak.swift; sourceTree = ""; }; D099EA1E1DE7450B001AF5A8 /* HorizontalListContextResultsChatInputContextPanelNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HorizontalListContextResultsChatInputContextPanelNode.swift; sourceTree = ""; }; D099EA201DE7451D001AF5A8 /* HorizontalListContextResultsChatInputPanelItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HorizontalListContextResultsChatInputPanelItem.swift; sourceTree = ""; }; @@ -901,7 +794,6 @@ D0AB0BB41D6718F1002C78E7 /* CoreMedia.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMedia.framework; path = System/Library/Frameworks/CoreMedia.framework; sourceTree = SDKROOT; }; D0AB0BB61D67191C002C78E7 /* MtProtoKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MtProtoKit.framework; path = "../../../../Library/Developer/Xcode/DerivedData/Telegram-iOS-diblohvjozhgaifjcniwdlixlilx/Build/Products/Debug-iphoneos/MtProtoKit.framework"; sourceTree = ""; }; D0AB0BB71D67191C002C78E7 /* SSignalKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SSignalKit.framework; path = "../../../../Library/Developer/Xcode/DerivedData/Telegram-iOS-diblohvjozhgaifjcniwdlixlilx/Build/Products/Debug-iphoneos/SSignalKit.framework"; sourceTree = ""; }; - D0AB0BBA1D6719B5002C78E7 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = ""; }; D0AB262821C307D7008F6685 /* ChatMessagePollBubbleContentNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatMessagePollBubbleContentNode.swift; sourceTree = ""; }; D0ACCB1B1EC5FF4B0079D8BF /* ChatMessageCallBubbleContentNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMessageCallBubbleContentNode.swift; sourceTree = ""; }; D0AD02E91FFFEBEF00C1DCFF /* ChatMessageLiveLocationTextNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatMessageLiveLocationTextNode.swift; sourceTree = ""; }; @@ -939,7 +831,6 @@ D0C0B59A1EE019E5000F4D2C /* ChatSearchNavigationContentNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatSearchNavigationContentNode.swift; sourceTree = ""; }; D0C0B59E1EE082F5000F4D2C /* ChatSearchInputPanelNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatSearchInputPanelNode.swift; sourceTree = ""; }; D0C0B5B01EE1C421000F4D2C /* ChatDateSelectionSheet.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatDateSelectionSheet.swift; sourceTree = ""; }; - D0C12A1B1F33964900B3F66D /* ChatWallpaperBuiltin0.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; name = ChatWallpaperBuiltin0.jpg; path = TelegramUI/Resources/ChatWallpaperBuiltin0.jpg; sourceTree = ""; }; D0C12EAF1F9A8D1300600BB2 /* ListMessageDateHeader.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ListMessageDateHeader.swift; sourceTree = ""; }; D0C26D561FDF2388004ABF18 /* OpenChatMessage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OpenChatMessage.swift; sourceTree = ""; }; D0C45E9E213FFAFD00988156 /* Lottie.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Lottie.framework; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -950,7 +841,6 @@ D0C50E3B1E93CC2600F62E39 /* NotificationItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NotificationItem.swift; sourceTree = ""; }; D0C50E3D1E93D09200F62E39 /* NotificationItemContainerNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NotificationItemContainerNode.swift; sourceTree = ""; }; D0C50E3F1E93D3B000F62E39 /* ChatMessageNotificationItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMessageNotificationItem.swift; sourceTree = ""; }; - D0C50E431E93FCD200F62E39 /* notification.caf */ = {isa = PBXFileReference; lastKnownFileType = file; name = notification.caf; path = TelegramUI/Sounds/notification.caf; sourceTree = ""; }; D0C932351E0988C60074F044 /* ChatButtonKeyboardInputNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatButtonKeyboardInputNode.swift; sourceTree = ""; }; D0C932371E09E0EA0074F044 /* ChatBotInfoItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatBotInfoItem.swift; sourceTree = ""; }; D0C9BFAC22FE316E00FAB518 /* ComposePollUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = ComposePollUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -1053,48 +943,6 @@ D0E8175620122DAD00B82BBB /* ChatRecentActionsSearchNavigationContentNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatRecentActionsSearchNavigationContentNode.swift; sourceTree = ""; }; D0E8175820122FE100B82BBB /* ChatRecentActionsFilterController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatRecentActionsFilterController.swift; sourceTree = ""; }; D0E8175A201254FA00B82BBB /* ChatRecentActionsEmptyNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatRecentActionsEmptyNode.swift; sourceTree = ""; }; - D0E9B9E91F00853C00F079A4 /* PhoneCountries.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = PhoneCountries.txt; path = TelegramUI/Resources/PhoneCountries.txt; sourceTree = ""; }; - D0E9BA691F056F4C00F079A4 /* stp_card_amex@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_amex@2x.png"; sourceTree = ""; }; - D0E9BA6A1F056F4C00F079A4 /* stp_card_amex@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_amex@3x.png"; sourceTree = ""; }; - D0E9BA6B1F056F4C00F079A4 /* stp_card_amex_template@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_amex_template@2x.png"; sourceTree = ""; }; - D0E9BA6C1F056F4C00F079A4 /* stp_card_amex_template@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_amex_template@3x.png"; sourceTree = ""; }; - D0E9BA6D1F056F4C00F079A4 /* stp_card_applepay@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_applepay@2x.png"; sourceTree = ""; }; - D0E9BA6E1F056F4C00F079A4 /* stp_card_applepay@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_applepay@3x.png"; sourceTree = ""; }; - D0E9BA6F1F056F4C00F079A4 /* stp_card_applepay_template@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_applepay_template@2x.png"; sourceTree = ""; }; - D0E9BA701F056F4C00F079A4 /* stp_card_applepay_template@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_applepay_template@3x.png"; sourceTree = ""; }; - D0E9BA711F056F4C00F079A4 /* stp_card_cvc@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_cvc@2x.png"; sourceTree = ""; }; - D0E9BA721F056F4C00F079A4 /* stp_card_cvc@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_cvc@3x.png"; sourceTree = ""; }; - D0E9BA731F056F4C00F079A4 /* stp_card_cvc_amex@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_cvc_amex@2x.png"; sourceTree = ""; }; - D0E9BA741F056F4C00F079A4 /* stp_card_cvc_amex@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_cvc_amex@3x.png"; sourceTree = ""; }; - D0E9BA751F056F4C00F079A4 /* stp_card_diners@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_diners@2x.png"; sourceTree = ""; }; - D0E9BA761F056F4C00F079A4 /* stp_card_diners@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_diners@3x.png"; sourceTree = ""; }; - D0E9BA771F056F4C00F079A4 /* stp_card_diners_template@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_diners_template@2x.png"; sourceTree = ""; }; - D0E9BA781F056F4C00F079A4 /* stp_card_diners_template@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_diners_template@3x.png"; sourceTree = ""; }; - D0E9BA791F056F4C00F079A4 /* stp_card_discover@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_discover@2x.png"; sourceTree = ""; }; - D0E9BA7A1F056F4C00F079A4 /* stp_card_discover@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_discover@3x.png"; sourceTree = ""; }; - D0E9BA7B1F056F4C00F079A4 /* stp_card_discover_template@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_discover_template@2x.png"; sourceTree = ""; }; - D0E9BA7C1F056F4C00F079A4 /* stp_card_discover_template@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_discover_template@3x.png"; sourceTree = ""; }; - D0E9BA7D1F056F4C00F079A4 /* stp_card_form_applepay@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_form_applepay@2x.png"; sourceTree = ""; }; - D0E9BA7E1F056F4C00F079A4 /* stp_card_form_applepay@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_form_applepay@3x.png"; sourceTree = ""; }; - D0E9BA7F1F056F4C00F079A4 /* stp_card_form_back@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_form_back@2x.png"; sourceTree = ""; }; - D0E9BA801F056F4C00F079A4 /* stp_card_form_back@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_form_back@3x.png"; sourceTree = ""; }; - D0E9BA811F056F4C00F079A4 /* stp_card_form_front@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_form_front@2x.png"; sourceTree = ""; }; - D0E9BA821F056F4C00F079A4 /* stp_card_form_front@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_form_front@3x.png"; sourceTree = ""; }; - D0E9BA831F056F4C00F079A4 /* stp_card_jcb@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_jcb@2x.png"; sourceTree = ""; }; - D0E9BA841F056F4C00F079A4 /* stp_card_jcb@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_jcb@3x.png"; sourceTree = ""; }; - D0E9BA851F056F4C00F079A4 /* stp_card_jcb_template@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_jcb_template@2x.png"; sourceTree = ""; }; - D0E9BA861F056F4C00F079A4 /* stp_card_jcb_template@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_jcb_template@3x.png"; sourceTree = ""; }; - D0E9BA871F056F4C00F079A4 /* stp_card_mastercard@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_mastercard@2x.png"; sourceTree = ""; }; - D0E9BA881F056F4C00F079A4 /* stp_card_mastercard@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_mastercard@3x.png"; sourceTree = ""; }; - D0E9BA891F056F4C00F079A4 /* stp_card_mastercard_template@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_mastercard_template@2x.png"; sourceTree = ""; }; - D0E9BA8A1F056F4C00F079A4 /* stp_card_mastercard_template@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_mastercard_template@3x.png"; sourceTree = ""; }; - D0E9BA8B1F056F4C00F079A4 /* stp_card_placeholder_template@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_placeholder_template@2x.png"; sourceTree = ""; }; - D0E9BA8C1F056F4C00F079A4 /* stp_card_placeholder_template@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_placeholder_template@3x.png"; sourceTree = ""; }; - D0E9BA8D1F056F4C00F079A4 /* stp_card_visa@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_visa@2x.png"; sourceTree = ""; }; - D0E9BA8E1F056F4C00F079A4 /* stp_card_visa@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_visa@3x.png"; sourceTree = ""; }; - D0E9BA8F1F056F4C00F079A4 /* stp_card_visa_template@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_visa_template@2x.png"; sourceTree = ""; }; - D0E9BA901F056F4C00F079A4 /* stp_card_visa_template@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "stp_card_visa_template@3x.png"; sourceTree = ""; }; - D0EB42041F3143AB00838FE6 /* LegacyComponentsResources.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; name = LegacyComponentsResources.bundle; path = ../LegacyComponents/LegacyComponents/Resources/LegacyComponentsResources.bundle; sourceTree = ""; }; D0EB5ADE1F798033004E89B6 /* PeerMediaCollectionEmptyNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PeerMediaCollectionEmptyNode.swift; sourceTree = ""; }; D0EC55A2210231D600D1992C /* SearchPeerMembers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchPeerMembers.swift; sourceTree = ""; }; D0EC6B401EB8F7D700EBF1C3 /* VoipDynamic.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = VoipDynamic.framework; path = "../../../../Library/Developer/Xcode/DerivedData/Telegram-iOS-diblohvjozhgaifjcniwdlixlilx/Build/Products/Debug-iphonesimulator/VoipDynamic.framework"; sourceTree = ""; }; @@ -1107,6 +955,7 @@ D0EE97191D88BCA0006C18E1 /* ChatInfo.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatInfo.swift; sourceTree = ""; }; D0EEE9A02165585F001292A6 /* DocumentPreviewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DocumentPreviewController.swift; sourceTree = ""; }; D0EF40DE1E73100D000DFCD4 /* ChatHistoryNavigationStack.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatHistoryNavigationStack.swift; sourceTree = ""; }; + D0EFF2472319806700CF5164 /* AppBundle.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AppBundle.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D0F02CCB1E96EF350065DEE2 /* ChatMediaInputStickerPane.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMediaInputStickerPane.swift; sourceTree = ""; }; D0F02CCD1E96FACE0065DEE2 /* ChatMediaInputGifPane.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatMediaInputGifPane.swift; sourceTree = ""; }; D0F19F6320E5A15B00EEC860 /* ChatMediaInputPeerSpecificItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatMediaInputPeerSpecificItem.swift; sourceTree = ""; }; @@ -1116,7 +965,6 @@ D0F53BF61E79593500117362 /* AuthorizationSequenceSignUpController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthorizationSequenceSignUpController.swift; sourceTree = ""; }; D0F53BF81E79593F00117362 /* AuthorizationSequenceSignUpControllerNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthorizationSequenceSignUpControllerNode.swift; sourceTree = ""; }; D0F69CD61D6B87D30046BCD6 /* MediaManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MediaManager.swift; sourceTree = ""; }; - D0F69DB91D6B88190046BCD6 /* TelegramUI.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = TelegramUI.xcconfig; path = TelegramUI/Config/TelegramUI.xcconfig; sourceTree = ""; }; D0F69DC41D6B89E10046BCD6 /* RadialProgressNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RadialProgressNode.swift; sourceTree = ""; }; D0F69E0E1D6B8ACF0046BCD6 /* ChatController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatController.swift; sourceTree = ""; }; D0F69E0F1D6B8ACF0046BCD6 /* ChatControllerInteraction.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatControllerInteraction.swift; sourceTree = ""; }; @@ -1144,7 +992,6 @@ D0F69E2C1D6B8B030046BCD6 /* ChatUnreadItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatUnreadItem.swift; sourceTree = ""; }; D0F69E401D6B8B7E0046BCD6 /* ChatTextInputPanelNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatTextInputPanelNode.swift; sourceTree = ""; }; D0F69E451D6B8B950046BCD6 /* ChatHistoryNavigationButtonNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatHistoryNavigationButtonNode.swift; sourceTree = ""; }; - D0F69E831D6B8C850046BCD6 /* FrameworkBundle.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FrameworkBundle.swift; sourceTree = ""; }; D0F69E941D6B8C9B0046BCD6 /* ConvertToWebP.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ConvertToWebP.swift; sourceTree = ""; }; D0F69EA61D6B9BBC0046BCD6 /* libwebp.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libwebp.a; path = "third-party/libwebp/lib/libwebp.a"; sourceTree = ""; }; D0F69EA81D6B9BCB0046BCD6 /* libavcodec.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libavcodec.a; path = "third-party/FFmpeg-iOS/lib/libavcodec.a"; sourceTree = ""; }; @@ -1169,6 +1016,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + D0EFF2482319806700CF5164 /* AppBundle.framework in Frameworks */, 09B4A9BA231519CD005C2E08 /* VideoToolbox.framework in Frameworks */, D072F38423155EAF0009E66F /* MessageReactionListUI.framework in Frameworks */, D03E495D230868DF0049C28B /* PersistentStringHash.framework in Frameworks */, @@ -1350,56 +1198,6 @@ /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 092F368B2154AAD6001A9F49 /* Fonts */ = { - isa = PBXGroup; - children = ( - 092F368C2154AAE9001A9F49 /* SFCompactRounded-Semibold.otf */, - ); - name = Fonts; - path = TelegramUI/Resources/Fonts; - sourceTree = ""; - }; - 09310D13213BC5DE0020033A /* Animations */ = { - isa = PBXGroup; - children = ( - 090E778B22AA842200CD99F5 /* anim_success.json */, - 09FFBCCF227B7F9000C33B4B /* anim_archiveswipe.json */, - 094735182277483B00EA2312 /* anim_infotip.json */, - 094735072275D72000EA2312 /* anim_archive.json */, - 094735092275D72000EA2312 /* anim_delete.json */, - 094735042275D71F00EA2312 /* anim_hide.json */, - 094735082275D72000EA2312 /* anim_mute.json */, - 0947350D2275D72100EA2312 /* anim_pin.json */, - 094735062275D72000EA2312 /* anim_read.json */, - 0947350A2275D72000EA2312 /* anim_unarchive.json */, - 0947350C2275D72100EA2312 /* anim_unmute.json */, - 0947350B2275D72000EA2312 /* anim_unpin.json */, - 094735052275D72000EA2312 /* anim_unread.json */, - 09E2DA122273367900EA0AA4 /* anim_archiveAvatar.json */, - 09310D1A213BC5DE0020033A /* anim_ungroup.json */, - 09310D1B213BC5DE0020033A /* anim_group.json */, - ); - name = Animations; - path = TelegramUI/Resources/Animations; - sourceTree = ""; - }; - 0979787F21065EAA0077D77F /* Web Embed */ = { - isa = PBXGroup; - children = ( - 0979788321065F8C0077D77F /* Generic.html */, - 0979788821065F8C0077D77F /* GenericUserScript.js */, - 0979788421065F8C0077D77F /* Instagram.html */, - 0979788521065F8C0077D77F /* Twitch.html */, - 0979788621065F8C0077D77F /* TwitchUserScript.js */, - 0979788221065F8C0077D77F /* Vimeo.html */, - 0979788021065F8B0077D77F /* VimeoUserScript.js */, - 0979788721065F8C0077D77F /* Youtube.html */, - 0979788121065F8B0077D77F /* YoutubeUserScript.js */, - ); - name = "Web Embed"; - path = TelegramUI/Resources/WebEmbed; - sourceTree = ""; - }; 09D9689B221F74AA00B1458A /* Title Activity Indicator */ = { isa = PBXGroup; children = ( @@ -1644,23 +1442,6 @@ name = "Chat Recent Actions"; sourceTree = ""; }; - D0471B521EFD8EBC0074D609 /* Resources */ = { - isa = PBXGroup; - children = ( - D095EF4F230C767D00CB6167 /* BuiltinReactions */, - 09E2D9ED226F1AF300EA0AA4 /* Emoji.mapping */, - D0955FB32191278C00F89427 /* PresentationStrings.mapping */, - 09310D13213BC5DE0020033A /* Animations */, - 092F368B2154AAD6001A9F49 /* Fonts */, - D0C12A1B1F33964900B3F66D /* ChatWallpaperBuiltin0.jpg */, - D0E9BA681F056F4C00F079A4 /* Stripe */, - D0E9B9E91F00853C00F079A4 /* PhoneCountries.txt */, - D0471B531EFD8ECA0074D609 /* currencies.json */, - 0979787F21065EAA0077D77F /* Web Embed */, - ); - name = Resources; - sourceTree = ""; - }; D0477D191F617E4B00412B44 /* Video */ = { isa = PBXGroup; children = ( @@ -1726,15 +1507,6 @@ name = Root; sourceTree = ""; }; - D073CE611DCBBE09007511FD /* Sounds */ = { - isa = PBXGroup; - children = ( - D0C50E431E93FCD200F62E39 /* notification.caf */, - D073CE621DCBBE5D007511FD /* MessageSent.caf */, - ); - name = Sounds; - sourceTree = ""; - }; D07551891DDA4C7C0073E051 /* Legacy Components */ = { isa = PBXGroup; children = ( @@ -1774,6 +1546,7 @@ D08D45281D5E340200A7428A /* Frameworks */ = { isa = PBXGroup; children = ( + D0EFF2472319806700CF5164 /* AppBundle.framework */, 09B4A9B9231519CD005C2E08 /* VideoToolbox.framework */, D072F38323155EAF0009E66F /* MessageReactionListUI.framework */, D03E495C230868DF0049C28B /* PersistentStringHash.framework */, @@ -2225,54 +1998,6 @@ name = "Chat History Node"; sourceTree = ""; }; - D0E9BA681F056F4C00F079A4 /* Stripe */ = { - isa = PBXGroup; - children = ( - D0E9BA691F056F4C00F079A4 /* stp_card_amex@2x.png */, - D0E9BA6A1F056F4C00F079A4 /* stp_card_amex@3x.png */, - D0E9BA6B1F056F4C00F079A4 /* stp_card_amex_template@2x.png */, - D0E9BA6C1F056F4C00F079A4 /* stp_card_amex_template@3x.png */, - D0E9BA6D1F056F4C00F079A4 /* stp_card_applepay@2x.png */, - D0E9BA6E1F056F4C00F079A4 /* stp_card_applepay@3x.png */, - D0E9BA6F1F056F4C00F079A4 /* stp_card_applepay_template@2x.png */, - D0E9BA701F056F4C00F079A4 /* stp_card_applepay_template@3x.png */, - D0E9BA711F056F4C00F079A4 /* stp_card_cvc@2x.png */, - D0E9BA721F056F4C00F079A4 /* stp_card_cvc@3x.png */, - D0E9BA731F056F4C00F079A4 /* stp_card_cvc_amex@2x.png */, - D0E9BA741F056F4C00F079A4 /* stp_card_cvc_amex@3x.png */, - D0E9BA751F056F4C00F079A4 /* stp_card_diners@2x.png */, - D0E9BA761F056F4C00F079A4 /* stp_card_diners@3x.png */, - D0E9BA771F056F4C00F079A4 /* stp_card_diners_template@2x.png */, - D0E9BA781F056F4C00F079A4 /* stp_card_diners_template@3x.png */, - D0E9BA791F056F4C00F079A4 /* stp_card_discover@2x.png */, - D0E9BA7A1F056F4C00F079A4 /* stp_card_discover@3x.png */, - D0E9BA7B1F056F4C00F079A4 /* stp_card_discover_template@2x.png */, - D0E9BA7C1F056F4C00F079A4 /* stp_card_discover_template@3x.png */, - D0E9BA7D1F056F4C00F079A4 /* stp_card_form_applepay@2x.png */, - D0E9BA7E1F056F4C00F079A4 /* stp_card_form_applepay@3x.png */, - D0E9BA7F1F056F4C00F079A4 /* stp_card_form_back@2x.png */, - D0E9BA801F056F4C00F079A4 /* stp_card_form_back@3x.png */, - D0E9BA811F056F4C00F079A4 /* stp_card_form_front@2x.png */, - D0E9BA821F056F4C00F079A4 /* stp_card_form_front@3x.png */, - D0E9BA831F056F4C00F079A4 /* stp_card_jcb@2x.png */, - D0E9BA841F056F4C00F079A4 /* stp_card_jcb@3x.png */, - D0E9BA851F056F4C00F079A4 /* stp_card_jcb_template@2x.png */, - D0E9BA861F056F4C00F079A4 /* stp_card_jcb_template@3x.png */, - D0E9BA871F056F4C00F079A4 /* stp_card_mastercard@2x.png */, - D0E9BA881F056F4C00F079A4 /* stp_card_mastercard@3x.png */, - D0E9BA891F056F4C00F079A4 /* stp_card_mastercard_template@2x.png */, - D0E9BA8A1F056F4C00F079A4 /* stp_card_mastercard_template@3x.png */, - D0E9BA8B1F056F4C00F079A4 /* stp_card_placeholder_template@2x.png */, - D0E9BA8C1F056F4C00F079A4 /* stp_card_placeholder_template@3x.png */, - D0E9BA8D1F056F4C00F079A4 /* stp_card_visa@2x.png */, - D0E9BA8E1F056F4C00F079A4 /* stp_card_visa@3x.png */, - D0E9BA8F1F056F4C00F079A4 /* stp_card_visa_template@2x.png */, - D0E9BA901F056F4C00F079A4 /* stp_card_visa_template@3x.png */, - ); - name = Stripe; - path = TelegramUI/Resources/Stripe; - sourceTree = ""; - }; D0EEE99F2165583B001292A6 /* Document */ = { isa = PBXGroup; children = ( @@ -2521,7 +2246,6 @@ D0F69E7E1D6B8C500046BCD6 /* Supporting Files */ = { isa = PBXGroup; children = ( - D0F69E831D6B8C850046BCD6 /* FrameworkBundle.swift */, ); name = "Supporting Files"; sourceTree = ""; @@ -2566,11 +2290,6 @@ D0FC40751D5B8E7400261D9D = { isa = PBXGroup; children = ( - D0EB42041F3143AB00838FE6 /* LegacyComponentsResources.bundle */, - D0F69DB91D6B88190046BCD6 /* TelegramUI.xcconfig */, - D0AB0BBA1D6719B5002C78E7 /* Images.xcassets */, - D0471B521EFD8EBC0074D609 /* Resources */, - D073CE611DCBBE09007511FD /* Sounds */, D0FC40811D5B8E7400261D9D /* TelegramUI */, D0FC408C1D5B8E7500261D9D /* TelegramUITests */, D0FC40801D5B8E7400261D9D /* Products */, @@ -2709,81 +2428,6 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 09874E4F21078FA100E190B8 /* Generic.html in Resources */, - 09874E5021078FA100E190B8 /* GenericUserScript.js in Resources */, - 09874E5121078FA100E190B8 /* Instagram.html in Resources */, - 09874E5221078FA100E190B8 /* Twitch.html in Resources */, - 09874E5321078FA100E190B8 /* TwitchUserScript.js in Resources */, - 094735122275D72100EA2312 /* anim_mute.json in Resources */, - 09874E5421078FA100E190B8 /* Vimeo.html in Resources */, - 09874E5521078FA100E190B8 /* VimeoUserScript.js in Resources */, - 09874E5621078FA100E190B8 /* Youtube.html in Resources */, - 09874E5721078FA100E190B8 /* YoutubeUserScript.js in Resources */, - 094735172275D72100EA2312 /* anim_pin.json in Resources */, - 094735112275D72100EA2312 /* anim_archive.json in Resources */, - 090E778C22AA842300CD99F5 /* anim_success.json in Resources */, - D0EB42051F3143AB00838FE6 /* LegacyComponentsResources.bundle in Resources */, - D0E9BAA21F056F4C00F079A4 /* stp_card_discover@3x.png in Resources */, - D0E9BAB01F056F4C00F079A4 /* stp_card_mastercard@3x.png in Resources */, - 09310D32213ED5FC0020033A /* anim_ungroup.json in Resources */, - 09E2D9EF226F1AFA00EA0AA4 /* Emoji.mapping in Resources */, - D0955FB521912B6000F89427 /* PresentationStrings.mapping in Resources */, - 0947350F2275D72100EA2312 /* anim_unread.json in Resources */, - D0E9BAA31F056F4C00F079A4 /* stp_card_discover_template@2x.png in Resources */, - D0E9BAB51F056F4C00F079A4 /* stp_card_visa@2x.png in Resources */, - D0E9BA941F056F4C00F079A4 /* stp_card_amex_template@3x.png in Resources */, - D0E9BA961F056F4C00F079A4 /* stp_card_applepay@3x.png in Resources */, - D0F9720F1FFE4BD5002595C8 /* notification.caf in Resources */, - 09310D33213ED5FC0020033A /* anim_group.json in Resources */, - 09FFBCD1227B7F9900C33B4B /* anim_archiveswipe.json in Resources */, - 094735162275D72100EA2312 /* anim_unmute.json in Resources */, - 094735102275D72100EA2312 /* anim_read.json in Resources */, - D0E9BA9A1F056F4C00F079A4 /* stp_card_cvc@3x.png in Resources */, - D0E9BA921F056F4C00F079A4 /* stp_card_amex@3x.png in Resources */, - D0E9BA9F1F056F4C00F079A4 /* stp_card_diners_template@2x.png in Resources */, - D0E9BA9E1F056F4C00F079A4 /* stp_card_diners@3x.png in Resources */, - D0B4AF861EC111FA00D51FF6 /* Images.xcassets in Resources */, - D0E9BAAD1F056F4C00F079A4 /* stp_card_jcb_template@2x.png in Resources */, - D0F972101FFE4BD5002595C8 /* MessageSent.caf in Resources */, - D0E9BAB71F056F4C00F079A4 /* stp_card_visa_template@2x.png in Resources */, - D0E9BA951F056F4C00F079A4 /* stp_card_applepay@2x.png in Resources */, - D0E9BAA01F056F4C00F079A4 /* stp_card_diners_template@3x.png in Resources */, - 094735132275D72100EA2312 /* anim_delete.json in Resources */, - 094735192277483C00EA2312 /* anim_infotip.json in Resources */, - 094735142275D72100EA2312 /* anim_unarchive.json in Resources */, - D0E9BAAA1F056F4C00F079A4 /* stp_card_form_front@3x.png in Resources */, - D0E9BA971F056F4C00F079A4 /* stp_card_applepay_template@2x.png in Resources */, - D0E9BAB41F056F4C00F079A4 /* stp_card_placeholder_template@3x.png in Resources */, - D0E9BAA71F056F4C00F079A4 /* stp_card_form_back@2x.png in Resources */, - D0E9BAB11F056F4C00F079A4 /* stp_card_mastercard_template@2x.png in Resources */, - D0E9BA9D1F056F4C00F079A4 /* stp_card_diners@2x.png in Resources */, - D0E9BAAF1F056F4C00F079A4 /* stp_card_mastercard@2x.png in Resources */, - D0C12A1D1F33A85600B3F66D /* ChatWallpaperBuiltin0.jpg in Resources */, - D0E9BAAC1F056F4C00F079A4 /* stp_card_jcb@3x.png in Resources */, - D0E9BA911F056F4C00F079A4 /* stp_card_amex@2x.png in Resources */, - D095EF51230C7D2C00CB6167 /* BuiltinReactions in Resources */, - D0E9BA931F056F4C00F079A4 /* stp_card_amex_template@2x.png in Resources */, - D0E9BAA91F056F4C00F079A4 /* stp_card_form_front@2x.png in Resources */, - D0E9BAA41F056F4C00F079A4 /* stp_card_discover_template@3x.png in Resources */, - D0E9BAA81F056F4C00F079A4 /* stp_card_form_back@3x.png in Resources */, - D0E9BAA11F056F4C00F079A4 /* stp_card_discover@2x.png in Resources */, - D0E9B9EA1F00853C00F079A4 /* PhoneCountries.txt in Resources */, - 094735152275D72100EA2312 /* anim_unpin.json in Resources */, - D0E9BAB31F056F4C00F079A4 /* stp_card_placeholder_template@2x.png in Resources */, - D0E9BAAE1F056F4C00F079A4 /* stp_card_jcb_template@3x.png in Resources */, - D0E9BAAB1F056F4C00F079A4 /* stp_card_jcb@2x.png in Resources */, - 09E2DA132273367900EA0AA4 /* anim_archiveAvatar.json in Resources */, - D0E9BA9C1F056F4C00F079A4 /* stp_card_cvc_amex@3x.png in Resources */, - D0E9BA991F056F4C00F079A4 /* stp_card_cvc@2x.png in Resources */, - D0471B541EFD8ECA0074D609 /* currencies.json in Resources */, - 0947350E2275D72100EA2312 /* anim_hide.json in Resources */, - D0E9BAB21F056F4C00F079A4 /* stp_card_mastercard_template@3x.png in Resources */, - D0E9BA981F056F4C00F079A4 /* stp_card_applepay_template@3x.png in Resources */, - D0E9BAA51F056F4C00F079A4 /* stp_card_form_applepay@2x.png in Resources */, - D0E9BAB81F056F4C00F079A4 /* stp_card_visa_template@3x.png in Resources */, - D0E9BA9B1F056F4C00F079A4 /* stp_card_cvc_amex@2x.png in Resources */, - D0E9BAB61F056F4C00F079A4 /* stp_card_visa@3x.png in Resources */, - D0E9BAA61F056F4C00F079A4 /* stp_card_form_applepay@3x.png in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -2791,7 +2435,6 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 092F368D2154AAEA001A9F49 /* SFCompactRounded-Semibold.otf in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -3117,7 +2760,6 @@ D0EC6E851EB9F58900EBF1C3 /* ChatMessageNotificationItem.swift in Sources */, D04281FE200E639A009DDE36 /* ChatRecentActionsTitleView.swift in Sources */, D0ACCB1C1EC5FF4B0079D8BF /* ChatMessageCallBubbleContentNode.swift in Sources */, - D0EC6E891EB9F58900EBF1C3 /* FrameworkBundle.swift in Sources */, D0FA08C8204982DC00DD23FC /* ChatTextInputActionButtonsNode.swift in Sources */, D0BCC3D420404CC7008126C2 /* ChatMessageActionSheetController.swift in Sources */, ); @@ -3136,7 +2778,6 @@ /* Begin XCBuildConfiguration section */ D021D510219CB2240064BEBA /* DebugFork */ = { isa = XCBuildConfiguration; - baseConfigurationReference = D0F69DB91D6B88190046BCD6 /* TelegramUI.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; @@ -3183,7 +2824,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 10.0; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; OTHER_SWIFT_FLAGS = ""; @@ -3199,7 +2840,6 @@ }; D021D511219CB2240064BEBA /* DebugFork */ = { isa = XCBuildConfiguration; - baseConfigurationReference = D0F69DB91D6B88190046BCD6 /* TelegramUI.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; DEVELOPMENT_TEAM = X834Q8SBVP; @@ -3263,7 +2903,6 @@ }; D0400EDB1D5B900A007931CE /* ReleaseAppStore */ = { isa = XCBuildConfiguration; - baseConfigurationReference = D0F69DB91D6B88190046BCD6 /* TelegramUI.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; @@ -3304,7 +2943,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 10.0; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; MTL_ENABLE_DEBUG_INFO = NO; OTHER_SWIFT_FLAGS = ""; SDKROOT = iphoneos; @@ -3319,7 +2958,6 @@ }; D0400EDD1D5B900A007931CE /* ReleaseAppStore */ = { isa = XCBuildConfiguration; - baseConfigurationReference = D0F69DB91D6B88190046BCD6 /* TelegramUI.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; COPY_PHASE_STRIP = YES; @@ -3336,7 +2974,6 @@ }; D079FD261F06BEF70038FADE /* DebugAppStore */ = { isa = XCBuildConfiguration; - baseConfigurationReference = D0F69DB91D6B88190046BCD6 /* TelegramUI.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; @@ -3383,7 +3020,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 10.0; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; OTHER_SWIFT_FLAGS = ""; @@ -3399,7 +3036,6 @@ }; D079FD271F06BEF70038FADE /* DebugAppStore */ = { isa = XCBuildConfiguration; - baseConfigurationReference = D0F69DB91D6B88190046BCD6 /* TelegramUI.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; DEVELOPMENT_TEAM = X834Q8SBVP; @@ -3463,7 +3099,6 @@ }; D0924FEE1FE52C29003F693F /* ReleaseHockeyappInternal */ = { isa = XCBuildConfiguration; - baseConfigurationReference = D0F69DB91D6B88190046BCD6 /* TelegramUI.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; @@ -3504,7 +3139,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 10.0; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; MTL_ENABLE_DEBUG_INFO = NO; OTHER_SWIFT_FLAGS = ""; SDKROOT = iphoneos; @@ -3519,7 +3154,6 @@ }; D0924FEF1FE52C29003F693F /* ReleaseHockeyappInternal */ = { isa = XCBuildConfiguration; - baseConfigurationReference = D0F69DB91D6B88190046BCD6 /* TelegramUI.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; COPY_PHASE_STRIP = YES; @@ -3583,7 +3217,6 @@ }; D0ADF948212B3B0000310BBC /* DebugAppStoreLLC */ = { isa = XCBuildConfiguration; - baseConfigurationReference = D0F69DB91D6B88190046BCD6 /* TelegramUI.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; @@ -3630,7 +3263,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 10.0; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; OTHER_SWIFT_FLAGS = ""; @@ -3646,7 +3279,6 @@ }; D0ADF949212B3B0000310BBC /* DebugAppStoreLLC */ = { isa = XCBuildConfiguration; - baseConfigurationReference = D0F69DB91D6B88190046BCD6 /* TelegramUI.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; DEVELOPMENT_TEAM = X834Q8SBVP; @@ -3710,7 +3342,6 @@ }; D0CE6F02213DC32300BCD44B /* ReleaseAppStoreLLC */ = { isa = XCBuildConfiguration; - baseConfigurationReference = D0F69DB91D6B88190046BCD6 /* TelegramUI.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; @@ -3751,7 +3382,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 10.0; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; MTL_ENABLE_DEBUG_INFO = NO; OTHER_SWIFT_FLAGS = ""; SDKROOT = iphoneos; @@ -3766,7 +3397,6 @@ }; D0CE6F03213DC32300BCD44B /* ReleaseAppStoreLLC */ = { isa = XCBuildConfiguration; - baseConfigurationReference = D0F69DB91D6B88190046BCD6 /* TelegramUI.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; COPY_PHASE_STRIP = YES; @@ -3971,7 +3601,6 @@ }; D0FC40911D5B8E7500261D9D /* DebugHockeyapp */ = { isa = XCBuildConfiguration; - baseConfigurationReference = D0F69DB91D6B88190046BCD6 /* TelegramUI.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; @@ -4018,7 +3647,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 10.0; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; OTHER_SWIFT_FLAGS = ""; @@ -4034,7 +3663,6 @@ }; D0FC40921D5B8E7500261D9D /* ReleaseHockeyapp */ = { isa = XCBuildConfiguration; - baseConfigurationReference = D0F69DB91D6B88190046BCD6 /* TelegramUI.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; @@ -4075,7 +3703,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 10.0; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; MTL_ENABLE_DEBUG_INFO = NO; OTHER_SWIFT_FLAGS = ""; SDKROOT = iphoneos; @@ -4090,7 +3718,6 @@ }; D0FC40971D5B8E7500261D9D /* DebugHockeyapp */ = { isa = XCBuildConfiguration; - baseConfigurationReference = D0F69DB91D6B88190046BCD6 /* TelegramUI.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; DEVELOPMENT_TEAM = X834Q8SBVP; @@ -4106,7 +3733,6 @@ }; D0FC40981D5B8E7500261D9D /* ReleaseHockeyapp */ = { isa = XCBuildConfiguration; - baseConfigurationReference = D0F69DB91D6B88190046BCD6 /* TelegramUI.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; COPY_PHASE_STRIP = YES; diff --git a/submodules/TelegramUniversalVideoContent/BUCK b/submodules/TelegramUniversalVideoContent/BUCK index 1af4dece2a..6269fbe9c4 100644 --- a/submodules/TelegramUniversalVideoContent/BUCK +++ b/submodules/TelegramUniversalVideoContent/BUCK @@ -17,6 +17,7 @@ static_library( "//submodules/PhotoResources:PhotoResources", "//submodules/LegacyComponents:LegacyComponents", "//submodules/RadialStatusNode:RadialStatusNode", + "//submodules/AppBundle:AppBundle", ], frameworks = [ "$SDKROOT/System/Library/Frameworks/Foundation.framework", diff --git a/submodules/TelegramUniversalVideoContent/Sources/FrameworkBundle.swift b/submodules/TelegramUniversalVideoContent/Sources/FrameworkBundle.swift deleted file mode 100644 index 8ca13d7d92..0000000000 --- a/submodules/TelegramUniversalVideoContent/Sources/FrameworkBundle.swift +++ /dev/null @@ -1,13 +0,0 @@ -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) - } -} diff --git a/submodules/TelegramUniversalVideoContent/Sources/GenericEmbedImplementation.swift b/submodules/TelegramUniversalVideoContent/Sources/GenericEmbedImplementation.swift index e214d9b366..fa1ed35d83 100644 --- a/submodules/TelegramUniversalVideoContent/Sources/GenericEmbedImplementation.swift +++ b/submodules/TelegramUniversalVideoContent/Sources/GenericEmbedImplementation.swift @@ -2,6 +2,7 @@ import Foundation import WebKit import SwiftSignalKit import UniversalMediaPlayer +import AppBundle final class GenericEmbedImplementation: WebEmbedImplementation { private var evalImpl: ((String) -> Void)? @@ -17,7 +18,7 @@ final class GenericEmbedImplementation: WebEmbedImplementation { } func setup(_ webView: WKWebView, userContentController: WKUserContentController, evaluateJavaScript: @escaping (String) -> Void, updateStatus: @escaping (MediaPlayerStatus) -> Void, onPlaybackStarted: @escaping () -> Void) { - let bundle = Bundle(for: type(of: self)) + let bundle = getAppBundle() guard let userScriptPath = bundle.path(forResource: "GenericUserScript", ofType: "js") else { return } diff --git a/submodules/TelegramUniversalVideoContent/Sources/OverlayVideoDecoration.swift b/submodules/TelegramUniversalVideoContent/Sources/OverlayVideoDecoration.swift index d262909b31..4ec927ab21 100644 --- a/submodules/TelegramUniversalVideoContent/Sources/OverlayVideoDecoration.swift +++ b/submodules/TelegramUniversalVideoContent/Sources/OverlayVideoDecoration.swift @@ -7,6 +7,7 @@ import UniversalMediaPlayer import LegacyComponents import AccountContext import RadialStatusNode +import AppBundle private func setupArrowFrame(size: CGSize, edge: OverlayMediaItemMinimizationEdge, view: TGEmbedPIPPullArrowView) { let arrowX: CGFloat diff --git a/submodules/TelegramUniversalVideoContent/Sources/PictureInPictureVideoControlsNode.swift b/submodules/TelegramUniversalVideoContent/Sources/PictureInPictureVideoControlsNode.swift index 219afbb90b..96677f2472 100644 --- a/submodules/TelegramUniversalVideoContent/Sources/PictureInPictureVideoControlsNode.swift +++ b/submodules/TelegramUniversalVideoContent/Sources/PictureInPictureVideoControlsNode.swift @@ -5,6 +5,7 @@ import AsyncDisplayKit import SwiftSignalKit import UniversalMediaPlayer import LegacyComponents +import AppBundle private let leaveImage = UIImage(bundleImageName: "Media Gallery/PictureInPictureLeave")?.precomposed() private let pauseImage = UIImage(bundleImageName: "Media Gallery/PictureInPicturePause")?.precomposed() diff --git a/submodules/TelegramUniversalVideoContent/Sources/VimeoEmbedImplementation.swift b/submodules/TelegramUniversalVideoContent/Sources/VimeoEmbedImplementation.swift index 5b6a588b01..7b9621ddb0 100644 --- a/submodules/TelegramUniversalVideoContent/Sources/VimeoEmbedImplementation.swift +++ b/submodules/TelegramUniversalVideoContent/Sources/VimeoEmbedImplementation.swift @@ -2,6 +2,7 @@ import Foundation import WebKit import SwiftSignalKit import UniversalMediaPlayer +import AppBundle func extractVimeoVideoIdAndTimestamp(url: String) -> (String, Int)? { guard let url = URL(string: url), let host = url.host?.lowercased() else { @@ -100,7 +101,7 @@ final class VimeoEmbedImplementation: WebEmbedImplementation { } func setup(_ webView: WKWebView, userContentController: WKUserContentController, evaluateJavaScript: @escaping (String) -> Void, updateStatus: @escaping (MediaPlayerStatus) -> Void, onPlaybackStarted: @escaping () -> Void) { - let bundle = Bundle(for: type(of: self)) + let bundle = getAppBundle() guard let userScriptPath = bundle.path(forResource: "VimeoUserScript", ofType: "js") else { return } diff --git a/submodules/TelegramUniversalVideoContent/Sources/YoutubeEmbedImplementation.swift b/submodules/TelegramUniversalVideoContent/Sources/YoutubeEmbedImplementation.swift index 169bda0775..421bac9852 100644 --- a/submodules/TelegramUniversalVideoContent/Sources/YoutubeEmbedImplementation.swift +++ b/submodules/TelegramUniversalVideoContent/Sources/YoutubeEmbedImplementation.swift @@ -2,6 +2,7 @@ import Foundation import WebKit import SwiftSignalKit import UniversalMediaPlayer +import AppBundle func extractYoutubeVideoIdAndTimestamp(url: String) -> (String, Int)? { guard let url = URL(string: url), let host = url.host?.lowercased() else { @@ -116,7 +117,7 @@ final class YoutubeEmbedImplementation: WebEmbedImplementation { } func setup(_ webView: WKWebView, userContentController: WKUserContentController, evaluateJavaScript: @escaping (String) -> Void, updateStatus: @escaping (MediaPlayerStatus) -> Void, onPlaybackStarted: @escaping () -> Void) { - let bundle = Bundle(for: type(of: self)) + let bundle = getAppBundle() guard let userScriptPath = bundle.path(forResource: "YoutubeUserScript", ofType: "js") else { return } diff --git a/submodules/TelegramUniversalVideoContent/TelegramUniversalVideoContent.xcodeproj/project.pbxproj b/submodules/TelegramUniversalVideoContent/TelegramUniversalVideoContent.xcodeproj/project.pbxproj index e1ea8e76ff..f1a5fa68f7 100644 --- a/submodules/TelegramUniversalVideoContent/TelegramUniversalVideoContent.xcodeproj/project.pbxproj +++ b/submodules/TelegramUniversalVideoContent/TelegramUniversalVideoContent.xcodeproj/project.pbxproj @@ -459,17 +459,6 @@ sourceTree SOURCE_ROOT - 1DD70E291289FAA500000000 - - isa - PBXFileReference - name - FrameworkBundle.swift - path - Sources/FrameworkBundle.swift - sourceTree - SOURCE_ROOT - 1DD70E29688CAF5900000000 isa @@ -614,7 +603,6 @@ 1DD70E29234A56D300000000 1DD70E294730C22C00000000 - 1DD70E291289FAA500000000 1DD70E29688CAF5900000000 1DD70E2968CBD43A00000000 1DD70E2949BD0C8700000000 @@ -673,13 +661,6 @@ fileRef 1DD70E294730C22C00000000 - E7A30F041289FAA500000000 - - isa - PBXBuildFile - fileRef - 1DD70E291289FAA500000000 - E7A30F04688CAF5900000000 isa @@ -772,7 +753,6 @@ E7A30F04234A56D300000000 E7A30F044730C22C00000000 - E7A30F041289FAA500000000 E7A30F04688CAF5900000000 E7A30F0468CBD43A00000000 E7A30F0449BD0C8700000000 diff --git a/submodules/TelegramUniversalVideoContent/TelegramUniversalVideoContent_Xcode.xcodeproj/project.pbxproj b/submodules/TelegramUniversalVideoContent/TelegramUniversalVideoContent_Xcode.xcodeproj/project.pbxproj index 4c64113495..7b106f6ecf 100644 --- a/submodules/TelegramUniversalVideoContent/TelegramUniversalVideoContent_Xcode.xcodeproj/project.pbxproj +++ b/submodules/TelegramUniversalVideoContent/TelegramUniversalVideoContent_Xcode.xcodeproj/project.pbxproj @@ -32,10 +32,10 @@ D0C9C3CF2300BA4400FAB518 /* TelegramAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C3CE2300BA4400FAB518 /* TelegramAudio.framework */; }; D0C9C3D12300BA4F00FAB518 /* RadialStatusNode.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C3D02300BA4F00FAB518 /* RadialStatusNode.framework */; }; D0C9C3D32300BA7000FAB518 /* PictureInPictureVideoControlsNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C3D22300BA6F00FAB518 /* PictureInPictureVideoControlsNode.swift */; }; - D0C9C3D52300BA8B00FAB518 /* FrameworkBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C3D42300BA8B00FAB518 /* FrameworkBundle.swift */; }; D0C9C4442300DC2000FAB518 /* ChatBubbleVideoDecoration.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C4422300DC2000FAB518 /* ChatBubbleVideoDecoration.swift */; }; D0C9C4452300DC2000FAB518 /* ChatBubbleInstantVideoDecoration.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C4432300DC2000FAB518 /* ChatBubbleInstantVideoDecoration.swift */; }; D0C9C5362301CCC600FAB518 /* PhotoResources.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C5352301CCC600FAB518 /* PhotoResources.framework */; }; + D0EFF24C231980C300CF5164 /* AppBundle.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0EFF24B231980C300CF5164 /* AppBundle.framework */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -67,10 +67,10 @@ D0C9C3CE2300BA4400FAB518 /* TelegramAudio.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TelegramAudio.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D0C9C3D02300BA4F00FAB518 /* RadialStatusNode.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = RadialStatusNode.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D0C9C3D22300BA6F00FAB518 /* PictureInPictureVideoControlsNode.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PictureInPictureVideoControlsNode.swift; sourceTree = ""; }; - D0C9C3D42300BA8B00FAB518 /* FrameworkBundle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FrameworkBundle.swift; sourceTree = ""; }; D0C9C4422300DC2000FAB518 /* ChatBubbleVideoDecoration.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatBubbleVideoDecoration.swift; sourceTree = ""; }; D0C9C4432300DC2000FAB518 /* ChatBubbleInstantVideoDecoration.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatBubbleInstantVideoDecoration.swift; sourceTree = ""; }; D0C9C5352301CCC600FAB518 /* PhotoResources.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = PhotoResources.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D0EFF24B231980C300CF5164 /* AppBundle.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AppBundle.framework; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -78,6 +78,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + D0EFF24C231980C300CF5164 /* AppBundle.framework in Frameworks */, D0C9C5362301CCC600FAB518 /* PhotoResources.framework in Frameworks */, D0C9C3D12300BA4F00FAB518 /* RadialStatusNode.framework in Frameworks */, D0C9C3CF2300BA4400FAB518 /* TelegramAudio.framework in Frameworks */, @@ -132,7 +133,6 @@ D0C9C3802300B40E00FAB518 /* SystemVideoContent.swift */, D0C9C37F2300B40E00FAB518 /* UniversalVideoContentManager.swift */, D0C9C3822300B40E00FAB518 /* WebEmbedVideoContent.swift */, - D0C9C3D42300BA8B00FAB518 /* FrameworkBundle.swift */, D0C9C3722300B0CF00FAB518 /* TelegramUniversalVideoContent.h */, ); path = Sources; @@ -141,6 +141,7 @@ D0C9C3882300B41900FAB518 /* Frameworks */ = { isa = PBXGroup; children = ( + D0EFF24B231980C300CF5164 /* AppBundle.framework */, D0C9C5352301CCC600FAB518 /* PhotoResources.framework */, D0C9C3D02300BA4F00FAB518 /* RadialStatusNode.framework */, D0C9C3CE2300BA4400FAB518 /* TelegramAudio.framework */, @@ -248,7 +249,6 @@ D0C9C3A62300B4E300FAB518 /* VimeoEmbedImplementation.swift in Sources */, D0C9C3C92300B9EB00FAB518 /* OverlayVideoDecoration.swift in Sources */, D0C9C3D32300BA7000FAB518 /* PictureInPictureVideoControlsNode.swift in Sources */, - D0C9C3D52300BA8B00FAB518 /* FrameworkBundle.swift in Sources */, D0C9C3A42300B4E300FAB518 /* YoutubeEmbedImplementation.swift in Sources */, D0C9C3852300B40E00FAB518 /* SystemVideoContent.swift in Sources */, D0C9C3A52300B4E300FAB518 /* GenericEmbedImplementation.swift in Sources */, diff --git a/submodules/TextSelectionNode/TextSelectionNode.xcodeproj/project.pbxproj b/submodules/TextSelectionNode/TextSelectionNode.xcodeproj/project.pbxproj index 0bea68cd4e..62942bcd1b 100644 --- a/submodules/TextSelectionNode/TextSelectionNode.xcodeproj/project.pbxproj +++ b/submodules/TextSelectionNode/TextSelectionNode.xcodeproj/project.pbxproj @@ -91,6 +91,84 @@ explicitFileType compiled.mach-o.dylib + 1DD70E2936DE2CF900000000 + + isa + PBXFileReference + name + libMediaResources.a + path + libMediaResources.a + sourceTree + BUILT_PRODUCTS_DIR + explicitFileType + archive.ar + + 1DD70E29DB6520C800000000 + + isa + PBXFileReference + name + libPostbox.dylib + path + libPostbox.dylib + sourceTree + BUILT_PRODUCTS_DIR + explicitFileType + compiled.mach-o.dylib + + 1DD70E29D65BA68200000000 + + isa + PBXFileReference + name + libSwiftSignalKit.dylib + path + libSwiftSignalKit.dylib + sourceTree + BUILT_PRODUCTS_DIR + explicitFileType + compiled.mach-o.dylib + + 1DD70E29119CDA0700000000 + + isa + PBXFileReference + name + libTelegramCore.dylib + path + libTelegramCore.dylib + sourceTree + BUILT_PRODUCTS_DIR + explicitFileType + compiled.mach-o.dylib + + 1DD70E2984A59C1D00000000 + + isa + PBXFileReference + name + libTelegramPresentationData.a + path + libTelegramPresentationData.a + sourceTree + BUILT_PRODUCTS_DIR + explicitFileType + archive.ar + + 1DD70E292395015100000000 + + isa + PBXFileReference + name + libTelegramUIPreferences.a + path + libTelegramUIPreferences.a + sourceTree + BUILT_PRODUCTS_DIR + explicitFileType + archive.ar + B401C97968022A5500000000 isa @@ -102,6 +180,12 @@ children 1DD70E29FF334B1F00000000 + 1DD70E2936DE2CF900000000 + 1DD70E29DB6520C800000000 + 1DD70E29D65BA68200000000 + 1DD70E29119CDA0700000000 + 1DD70E2984A59C1D00000000 + 1DD70E292395015100000000 1DD70E29F40A586F00000000 @@ -220,6 +304,48 @@ fileRef 1DD70E29FF334B1F00000000 + E7A30F04DB6520C800000000 + + isa + PBXBuildFile + fileRef + 1DD70E29DB6520C800000000 + + E7A30F04D65BA68200000000 + + isa + PBXBuildFile + fileRef + 1DD70E29D65BA68200000000 + + E7A30F04119CDA0700000000 + + isa + PBXBuildFile + fileRef + 1DD70E29119CDA0700000000 + + E7A30F0436DE2CF900000000 + + isa + PBXBuildFile + fileRef + 1DD70E2936DE2CF900000000 + + E7A30F042395015100000000 + + isa + PBXBuildFile + fileRef + 1DD70E292395015100000000 + + E7A30F0484A59C1D00000000 + + isa + PBXBuildFile + fileRef + 1DD70E2984A59C1D00000000 + FAF5FAC90000000000000000 isa @@ -227,6 +353,12 @@ files E7A30F04FF334B1F00000000 + E7A30F04DB6520C800000000 + E7A30F04D65BA68200000000 + E7A30F04119CDA0700000000 + E7A30F0436DE2CF900000000 + E7A30F042395015100000000 + E7A30F0484A59C1D00000000 name Fake Swift Dependencies (Copy Files Phase) diff --git a/submodules/UndoUI/BUCK b/submodules/UndoUI/BUCK index c5b55d448b..788183a009 100644 --- a/submodules/UndoUI/BUCK +++ b/submodules/UndoUI/BUCK @@ -16,6 +16,7 @@ static_library( "//submodules/AccountContext:AccountContext", "//submodules/RadialStatusNode:RadialStatusNode", "//submodules/AnimationUI:AnimationUI", + "//submodules/AppBundle:AppBundle", ], frameworks = [ "$SDKROOT/System/Library/Frameworks/Foundation.framework", diff --git a/submodules/UndoUI/Sources/FrameworkBundle.swift b/submodules/UndoUI/Sources/FrameworkBundle.swift deleted file mode 100644 index 8ca13d7d92..0000000000 --- a/submodules/UndoUI/Sources/FrameworkBundle.swift +++ /dev/null @@ -1,13 +0,0 @@ -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) - } -} diff --git a/submodules/UndoUI/Sources/UndoOverlayControllerNode.swift b/submodules/UndoUI/Sources/UndoOverlayControllerNode.swift index 392331bb42..748baee52e 100644 --- a/submodules/UndoUI/Sources/UndoOverlayControllerNode.swift +++ b/submodules/UndoUI/Sources/UndoOverlayControllerNode.swift @@ -7,6 +7,7 @@ import TelegramPresentationData import AnimationUI import TextFormat import RadialStatusNode +import AppBundle final class UndoOverlayControllerNode: ViewControllerTracingNode { private let elevatedLayout: Bool diff --git a/submodules/UndoUI/UndoUI.xcodeproj/project.pbxproj b/submodules/UndoUI/UndoUI.xcodeproj/project.pbxproj index 1f71d151df..5ac12603b5 100644 --- a/submodules/UndoUI/UndoUI.xcodeproj/project.pbxproj +++ b/submodules/UndoUI/UndoUI.xcodeproj/project.pbxproj @@ -423,17 +423,6 @@ explicitFileType text.script.python - 1DD70E291289FAA500000000 - - isa - PBXFileReference - name - FrameworkBundle.swift - path - Sources/FrameworkBundle.swift - sourceTree - SOURCE_ROOT - 1DD70E29B729780D00000000 isa @@ -466,7 +455,6 @@ ]]> children - 1DD70E291289FAA500000000 1DD70E29B729780D00000000 1DD70E29E5CC04AF00000000 @@ -501,13 +489,6 @@ B401C9799749269800000000 - E7A30F041289FAA500000000 - - isa - PBXBuildFile - fileRef - 1DD70E291289FAA500000000 - E7A30F04B729780D00000000 isa @@ -528,7 +509,6 @@ PBXSourcesBuildPhase files - E7A30F041289FAA500000000 E7A30F04B729780D00000000 E7A30F04E5CC04AF00000000 diff --git a/submodules/UndoUI/UndoUI_Xcode.xcodeproj/project.pbxproj b/submodules/UndoUI/UndoUI_Xcode.xcodeproj/project.pbxproj index 00ed22fbec..ceddbc9e6a 100644 --- a/submodules/UndoUI/UndoUI_Xcode.xcodeproj/project.pbxproj +++ b/submodules/UndoUI/UndoUI_Xcode.xcodeproj/project.pbxproj @@ -21,7 +21,7 @@ D0C9C07722FE3B5300FAB518 /* TextFormat.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C07622FE3B5300FAB518 /* TextFormat.framework */; }; D0C9C07922FE3B5700FAB518 /* RadialStatusNode.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C07822FE3B5700FAB518 /* RadialStatusNode.framework */; }; D0C9C07B22FE3B5D00FAB518 /* AsyncDisplayKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0C9C07A22FE3B5D00FAB518 /* AsyncDisplayKit.framework */; }; - D0C9C07F22FE3BA400FAB518 /* FrameworkBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0C9C07E22FE3BA400FAB518 /* FrameworkBundle.swift */; }; + D0EFF25E2319817900CF5164 /* AppBundle.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0EFF25D2319817900CF5164 /* AppBundle.framework */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -41,7 +41,7 @@ D0C9C07622FE3B5300FAB518 /* TextFormat.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TextFormat.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D0C9C07822FE3B5700FAB518 /* RadialStatusNode.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = RadialStatusNode.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D0C9C07A22FE3B5D00FAB518 /* AsyncDisplayKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AsyncDisplayKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - D0C9C07E22FE3BA400FAB518 /* FrameworkBundle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FrameworkBundle.swift; sourceTree = ""; }; + D0EFF25D2319817900CF5164 /* AppBundle.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AppBundle.framework; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -49,6 +49,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + D0EFF25E2319817900CF5164 /* AppBundle.framework in Frameworks */, D0C9C07B22FE3B5D00FAB518 /* AsyncDisplayKit.framework in Frameworks */, D0C9C07922FE3B5700FAB518 /* RadialStatusNode.framework in Frameworks */, D0C9C07722FE3B5300FAB518 /* TextFormat.framework in Frameworks */, @@ -89,7 +90,6 @@ children = ( D0C9C06222FE3B0500FAB518 /* UndoOverlayController.swift */, D0C9C06122FE3B0500FAB518 /* UndoOverlayControllerNode.swift */, - D0C9C07E22FE3BA400FAB518 /* FrameworkBundle.swift */, D0C9C05522FE3AAA00FAB518 /* UndoUI.h */, ); path = Sources; @@ -98,6 +98,7 @@ D0C9C06522FE3B2700FAB518 /* Frameworks */ = { isa = PBXGroup; children = ( + D0EFF25D2319817900CF5164 /* AppBundle.framework */, D0C9C07A22FE3B5D00FAB518 /* AsyncDisplayKit.framework */, D0C9C07822FE3B5700FAB518 /* RadialStatusNode.framework */, D0C9C07622FE3B5300FAB518 /* TextFormat.framework */, @@ -195,7 +196,6 @@ files = ( D0C9C06422FE3B0500FAB518 /* UndoOverlayController.swift in Sources */, D0C9C06322FE3B0500FAB518 /* UndoOverlayControllerNode.swift in Sources */, - D0C9C07F22FE3BA400FAB518 /* FrameworkBundle.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/submodules/WallpaperResources/BUCK b/submodules/WallpaperResources/BUCK index 853d7eb8d0..6d1177da31 100644 --- a/submodules/WallpaperResources/BUCK +++ b/submodules/WallpaperResources/BUCK @@ -16,6 +16,7 @@ static_library( "//submodules/MediaResources:MediaResources", "//submodules/PhotoResources:PhotoResources", "//submodules/PersistentStringHash:PersistentStringHash", + "//submodules/AppBundle:AppBundle", ], frameworks = [ "$SDKROOT/System/Library/Frameworks/Foundation.framework", diff --git a/submodules/WallpaperResources/Sources/FrameworkBundle.swift b/submodules/WallpaperResources/Sources/FrameworkBundle.swift deleted file mode 100644 index 8ca13d7d92..0000000000 --- a/submodules/WallpaperResources/Sources/FrameworkBundle.swift +++ /dev/null @@ -1,13 +0,0 @@ -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) - } -} diff --git a/submodules/WallpaperResources/Sources/WallpaperResources.swift b/submodules/WallpaperResources/Sources/WallpaperResources.swift index 02bcd1d806..b6bae94774 100644 --- a/submodules/WallpaperResources/Sources/WallpaperResources.swift +++ b/submodules/WallpaperResources/Sources/WallpaperResources.swift @@ -11,6 +11,7 @@ import PhotoResources import LocalMediaResources import TelegramPresentationData import TelegramUIPreferences +import AppBundle public func wallpaperDatas(account: Account, accountManager: AccountManager, fileReference: FileMediaReference? = nil, representations: [ImageRepresentationWithReference], alwaysShowThumbnailFirst: Bool = false, thumbnail: Bool = false, onlyFullSize: Bool = false, autoFetchFullSize: Bool = false, synchronousLoad: Bool = false) -> Signal<(Data?, Data?, Bool), NoError> { if let smallestRepresentation = smallestImageRepresentation(representations.map({ $0.representation })), let largestRepresentation = largestImageRepresentation(representations.map({ $0.representation })), let smallestIndex = representations.firstIndex(where: { $0.representation == smallestRepresentation }), let largestIndex = representations.firstIndex(where: { $0.representation == largestRepresentation }) { @@ -487,7 +488,7 @@ public func solidColor(_ color: UIColor) -> Signal<(TransformImageArguments) -> private func builtinWallpaperData() -> Signal { return Signal { subscriber in - if let filePath = frameworkBundle.path(forResource: "ChatWallpaperBuiltin0", ofType: "jpg"), let image = UIImage(contentsOfFile: filePath) { + if let filePath = getAppBundle().path(forResource: "ChatWallpaperBuiltin0", ofType: "jpg"), let image = UIImage(contentsOfFile: filePath) { subscriber.putNext(image) } subscriber.putCompletion() @@ -647,7 +648,7 @@ public func drawThemeImage(context c: CGContext, theme: PresentationTheme, wallp switch theme.chat.defaultWallpaper { case .builtin: - if let filePath = frameworkBundle.path(forResource: "ChatWallpaperBuiltin0", ofType: "jpg"), let image = UIImage(contentsOfFile: filePath), let cgImage = image.cgImage { + if let filePath = getAppBundle().path(forResource: "ChatWallpaperBuiltin0", ofType: "jpg"), let image = UIImage(contentsOfFile: filePath), let cgImage = image.cgImage { let size = image.size.aspectFilled(drawingRect.size) c.draw(cgImage, in: CGRect(origin: CGPoint(x: (drawingRect.size.width - size.width) / 2.0, y: (drawingRect.size.height - size.height) / 2.0), size: size)) } diff --git a/submodules/WallpaperResources/WallpaperResources.xcodeproj/project.pbxproj b/submodules/WallpaperResources/WallpaperResources.xcodeproj/project.pbxproj index 0e99adcde6..bb31ae4ad0 100644 --- a/submodules/WallpaperResources/WallpaperResources.xcodeproj/project.pbxproj +++ b/submodules/WallpaperResources/WallpaperResources.xcodeproj/project.pbxproj @@ -195,6 +195,19 @@ explicitFileType archive.ar + 1DD70E29B5051C0E00000000 + + isa + PBXFileReference + name + libPersistentStringHash.a + path + libPersistentStringHash.a + sourceTree + BUILT_PRODUCTS_DIR + explicitFileType + archive.ar + 1DD70E29490601EB00000000 isa @@ -396,6 +409,7 @@ 1DD70E2968BAC05A00000000 1DD70E29CE34063500000000 1DD70E2936DE2CF900000000 + 1DD70E29B5051C0E00000000 1DD70E29490601EB00000000 1DD70E290F1A3C6400000000 1DD70E29DB6520C800000000 @@ -451,14 +465,14 @@ explicitFileType text.script.python - 1DD70E291289FAA500000000 + 1DD70E29F40E096500000000 isa PBXFileReference name - FrameworkBundle.swift + WallpaperCache.swift path - Sources/FrameworkBundle.swift + Sources/WallpaperCache.swift sourceTree SOURCE_ROOT @@ -483,7 +497,7 @@ ]]> children - 1DD70E291289FAA500000000 + 1DD70E29F40E096500000000 1DD70E29FC18C2C800000000 @@ -517,12 +531,12 @@ B401C979869F2E6300000000 - E7A30F041289FAA500000000 + E7A30F04F40E096500000000 isa PBXBuildFile fileRef - 1DD70E291289FAA500000000 + 1DD70E29F40E096500000000 E7A30F04FC18C2C800000000 @@ -537,7 +551,7 @@ PBXSourcesBuildPhase files - E7A30F041289FAA500000000 + E7A30F04F40E096500000000 E7A30F04FC18C2C800000000 @@ -597,6 +611,13 @@ fileRef 1DD70E2936DE2CF900000000 + E7A30F04B5051C0E00000000 + + isa + PBXBuildFile + fileRef + 1DD70E29B5051C0E00000000 + E7A30F045915423000000000 isa @@ -716,6 +737,7 @@ E7A30F04119CDA0700000000 E7A30F0468BAC05A00000000 E7A30F0436DE2CF900000000 + E7A30F04B5051C0E00000000 E7A30F045915423000000000 E7A30F04F33FDAC300000000 E7A30F0451398CF200000000 diff --git a/submodules/WallpaperResources/WallpaperResources_Xcode.xcodeproj/project.pbxproj b/submodules/WallpaperResources/WallpaperResources_Xcode.xcodeproj/project.pbxproj index b9bf77669f..cb7f5cddba 100644 --- a/submodules/WallpaperResources/WallpaperResources_Xcode.xcodeproj/project.pbxproj +++ b/submodules/WallpaperResources/WallpaperResources_Xcode.xcodeproj/project.pbxproj @@ -21,7 +21,7 @@ D03E486823076BF60049C28B /* TinyThumbnail.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E486723076BF60049C28B /* TinyThumbnail.framework */; }; D03E486A23076BFC0049C28B /* PhotoResources.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E486923076BFC0049C28B /* PhotoResources.framework */; }; D03E486C23076C020049C28B /* LocalMediaResources.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E486B23076C020049C28B /* LocalMediaResources.framework */; }; - D03E487223076CF10049C28B /* FrameworkBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E487123076CF10049C28B /* FrameworkBundle.swift */; }; + D0EFF23E23197F9F00CF5164 /* AppBundle.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0EFF23D23197F9F00CF5164 /* AppBundle.framework */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -41,7 +41,7 @@ D03E486723076BF60049C28B /* TinyThumbnail.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = TinyThumbnail.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D03E486923076BFC0049C28B /* PhotoResources.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = PhotoResources.framework; sourceTree = BUILT_PRODUCTS_DIR; }; D03E486B23076C020049C28B /* LocalMediaResources.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = LocalMediaResources.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - D03E487123076CF10049C28B /* FrameworkBundle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FrameworkBundle.swift; sourceTree = ""; }; + D0EFF23D23197F9F00CF5164 /* AppBundle.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AppBundle.framework; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -49,6 +49,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + D0EFF23E23197F9F00CF5164 /* AppBundle.framework in Frameworks */, D03E486C23076C020049C28B /* LocalMediaResources.framework in Frameworks */, D03E486A23076BFC0049C28B /* PhotoResources.framework in Frameworks */, D03E486823076BF60049C28B /* TinyThumbnail.framework in Frameworks */, @@ -88,7 +89,6 @@ isa = PBXGroup; children = ( D03E485423076BB70049C28B /* WallpaperResources.swift */, - D03E487123076CF10049C28B /* FrameworkBundle.swift */, D03E484823076B4A0049C28B /* WallpaperResources.h */, 095214EC2317EF76008CDD87 /* WallpaperCache.swift */, ); @@ -98,6 +98,7 @@ D03E485623076BC80049C28B /* Frameworks */ = { isa = PBXGroup; children = ( + D0EFF23D23197F9F00CF5164 /* AppBundle.framework */, D03E486B23076C020049C28B /* LocalMediaResources.framework */, D03E486923076BFC0049C28B /* PhotoResources.framework */, D03E486723076BF60049C28B /* TinyThumbnail.framework */, @@ -193,7 +194,6 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - D03E487223076CF10049C28B /* FrameworkBundle.swift in Sources */, 095214ED2317EF76008CDD87 /* WallpaperCache.swift in Sources */, D03E485523076BB70049C28B /* WallpaperResources.swift in Sources */, ); diff --git a/submodules/WebSearchUI/BUCK b/submodules/WebSearchUI/BUCK index 7a0a4582ad..b53c2f6d56 100644 --- a/submodules/WebSearchUI/BUCK +++ b/submodules/WebSearchUI/BUCK @@ -24,6 +24,7 @@ static_library( "//submodules/SearchBarNode:SearchBarNode", "//submodules/ItemListUI:ItemListUI", "//submodules/LegacyMediaPickerUI:LegacyMediaPickerUI", + "//submodules/AppBundle:AppBundle", ], frameworks = [ "$SDKROOT/System/Library/Frameworks/Foundation.framework", diff --git a/submodules/WebSearchUI/Sources/FrameworkBundle.swift b/submodules/WebSearchUI/Sources/FrameworkBundle.swift deleted file mode 100644 index 8ca13d7d92..0000000000 --- a/submodules/WebSearchUI/Sources/FrameworkBundle.swift +++ /dev/null @@ -1,13 +0,0 @@ -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) - } -} diff --git a/submodules/WebSearchUI/Sources/WebSearchControllerNode.swift b/submodules/WebSearchUI/Sources/WebSearchControllerNode.swift index c10344cfd0..a47c63ea0a 100644 --- a/submodules/WebSearchUI/Sources/WebSearchControllerNode.swift +++ b/submodules/WebSearchUI/Sources/WebSearchControllerNode.swift @@ -12,6 +12,7 @@ import MergeLists import AccountContext import GalleryUI import ChatListSearchItemHeader +import AppBundle private struct WebSearchContextResultStableId: Hashable { let result: ChatContextResult diff --git a/submodules/WebSearchUI/WebSearchUI.xcodeproj/project.pbxproj b/submodules/WebSearchUI/WebSearchUI.xcodeproj/project.pbxproj index 7359d13faf..dc58d668cb 100644 --- a/submodules/WebSearchUI/WebSearchUI.xcodeproj/project.pbxproj +++ b/submodules/WebSearchUI/WebSearchUI.xcodeproj/project.pbxproj @@ -885,17 +885,6 @@ explicitFileType text.script.python - 1DD70E291289FAA500000000 - - isa - PBXFileReference - name - FrameworkBundle.swift - path - Sources/FrameworkBundle.swift - sourceTree - SOURCE_ROOT - 1DD70E29EB1ECA2500000000 isa @@ -1049,7 +1038,6 @@ ]]> children - 1DD70E291289FAA500000000 1DD70E29EB1ECA2500000000 1DD70E2999E4D30400000000 1DD70E296E94698E00000000 @@ -1095,13 +1083,6 @@ B401C979F5B6E99000000000 - E7A30F041289FAA500000000 - - isa - PBXBuildFile - fileRef - 1DD70E291289FAA500000000 - E7A30F04EB1ECA2500000000 isa @@ -1199,7 +1180,6 @@ PBXSourcesBuildPhase files - E7A30F041289FAA500000000 E7A30F04EB1ECA2500000000 E7A30F0499E4D30400000000 E7A30F046E94698E00000000 diff --git a/submodules/WebSearchUI/WebSearchUI_Xcode.xcodeproj/project.pbxproj b/submodules/WebSearchUI/WebSearchUI_Xcode.xcodeproj/project.pbxproj index 8deb66fd50..c739eba93d 100644 --- a/submodules/WebSearchUI/WebSearchUI_Xcode.xcodeproj/project.pbxproj +++ b/submodules/WebSearchUI/WebSearchUI_Xcode.xcodeproj/project.pbxproj @@ -42,7 +42,7 @@ D03E3F5D2304C3E20049C28B /* LegacyWebSearchEditor.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E3F5A2304C3E20049C28B /* LegacyWebSearchEditor.swift */; }; D03E3F5E2304C3E20049C28B /* LegacyWebSearchGallery.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E3F5B2304C3E20049C28B /* LegacyWebSearchGallery.swift */; }; D03E3FA22304C5AA0049C28B /* LegacyMediaPickerUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D03E3FA12304C5AA0049C28B /* LegacyMediaPickerUI.framework */; }; - D03E3FA42304C5D00049C28B /* FrameworkBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = D03E3FA32304C5D00049C28B /* FrameworkBundle.swift */; }; + D0EFF270231982BB00CF5164 /* AppBundle.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0EFF26F231982BB00CF5164 /* AppBundle.framework */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -83,7 +83,7 @@ D03E3F5A2304C3E20049C28B /* LegacyWebSearchEditor.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LegacyWebSearchEditor.swift; sourceTree = ""; }; D03E3F5B2304C3E20049C28B /* LegacyWebSearchGallery.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LegacyWebSearchGallery.swift; sourceTree = ""; }; D03E3FA12304C5AA0049C28B /* LegacyMediaPickerUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = LegacyMediaPickerUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - D03E3FA32304C5D00049C28B /* FrameworkBundle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FrameworkBundle.swift; sourceTree = ""; }; + D0EFF26F231982BB00CF5164 /* AppBundle.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = AppBundle.framework; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -91,6 +91,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + D0EFF270231982BB00CF5164 /* AppBundle.framework in Frameworks */, D03E3FA22304C5AA0049C28B /* LegacyMediaPickerUI.framework in Frameworks */, D03E3F562304C37F0049C28B /* ItemListUI.framework in Frameworks */, D03E3F542304C3730049C28B /* SearchBarNode.framework in Frameworks */, @@ -152,7 +153,6 @@ D03E3F1B2304C2DF0049C28B /* WebSearchNavigationContentNode.swift */, D03E3F1F2304C2DF0049C28B /* WebSearchRecentQueries.swift */, D03E3F1C2304C2DF0049C28B /* WebSearchRecentQueryItem.swift */, - D03E3FA32304C5D00049C28B /* FrameworkBundle.swift */, D03E3F0E2304C2530049C28B /* WebSearchUI.h */, ); path = Sources; @@ -161,6 +161,7 @@ D03E3F2E2304C2ED0049C28B /* Frameworks */ = { isa = PBXGroup; children = ( + D0EFF26F231982BB00CF5164 /* AppBundle.framework */, D03E3FA12304C5AA0049C28B /* LegacyMediaPickerUI.framework */, D03E3F552304C37F0049C28B /* ItemListUI.framework */, D03E3F532304C3730049C28B /* SearchBarNode.framework */, @@ -278,7 +279,6 @@ D03E3F272304C2E00049C28B /* WebSearchGalleryFooterContentNode.swift in Sources */, D03E3F2B2304C2E00049C28B /* WebSearchControllerNode.swift in Sources */, D03E3F5D2304C3E20049C28B /* LegacyWebSearchEditor.swift in Sources */, - D03E3FA42304C5D00049C28B /* FrameworkBundle.swift in Sources */, D03E3F262304C2E00049C28B /* WebSearchRecentQueryItem.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; diff --git a/submodules/libtgvoip/BUCK b/submodules/libtgvoip/BUCK index e9accaf3fc..6435a94a45 100644 --- a/submodules/libtgvoip/BUCK +++ b/submodules/libtgvoip/BUCK @@ -32,16 +32,25 @@ static_library( ]), exported_headers = glob([ "OngoingCallThreadLocalContext.h" - ]), - - compiler_flags = [ - "-DTGVOIP_USE_CUSTOM_CRYPTO", - "-DWEBRTC_APM_DEBUG_DUMP=0", - "-DWEBRTC_POSIX", - "-DTGVOIP_HAVE_TGLOG", - "-DWEBRTC_NS_FLOAT", - "-DWEBRTC_IOS", - "-DWEBRTC_HAS_NEON", + ], exclude = ["libtgvoip.h"]), + platform_compiler_flags = [ + ('arm.*', [ + '-DTGVOIP_USE_CUSTOM_CRYPTO', + '-DWEBRTC_APM_DEBUG_DUMP=0', + '-DWEBRTC_POSIX', + '-DTGVOIP_HAVE_TGLOG', + '-DWEBRTC_NS_FLOAT', + '-DWEBRTC_IOS', + '-DWEBRTC_HAS_NEON', + ]), + ('.*', [ + '-DTGVOIP_USE_CUSTOM_CRYPTO', + '-DWEBRTC_APM_DEBUG_DUMP=0', + '-DWEBRTC_POSIX', + '-DTGVOIP_HAVE_TGLOG', + '-DWEBRTC_NS_FLOAT', + '-DWEBRTC_IOS', + ]), ], deps = [ "//submodules/MtProtoKit:MtProtoKit#shared", diff --git a/submodules/libtgvoip/libtgvoip.h b/submodules/libtgvoip/libtgvoip.h new file mode 100644 index 0000000000..b5feb06ea7 --- /dev/null +++ b/submodules/libtgvoip/libtgvoip.h @@ -0,0 +1,6 @@ +#ifndef libtgvoip_h +#define libtgvoip_h + +#import + +#endif /* libtgvoip_h */ diff --git a/submodules/libtgvoip/libtgvoip_Xcode.xcodeproj/project.pbxproj b/submodules/libtgvoip/libtgvoip_Xcode.xcodeproj/project.pbxproj index 7ca561abc8..82eb8a44bc 100644 --- a/submodules/libtgvoip/libtgvoip_Xcode.xcodeproj/project.pbxproj +++ b/submodules/libtgvoip/libtgvoip_Xcode.xcodeproj/project.pbxproj @@ -327,6 +327,7 @@ 69F791582222AC2800FE53C4 /* SampleBufferDisplayLayerRenderer.mm in Sources */ = {isa = PBXBuildFile; fileRef = 69F791562222AC2800FE53C4 /* SampleBufferDisplayLayerRenderer.mm */; }; 69F791592222AC2800FE53C4 /* SampleBufferDisplayLayerRenderer.h in Headers */ = {isa = PBXBuildFile; fileRef = 69F791572222AC2800FE53C4 /* SampleBufferDisplayLayerRenderer.h */; }; 69FB0B2D20F6860E00827817 /* MessageThread.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 69FB0B2420F6860D00827817 /* MessageThread.cpp */; }; + D01748C9231978B700AF3D3A /* libtgvoip.h in Headers */ = {isa = PBXBuildFile; fileRef = D01748C8231978B700AF3D3A /* libtgvoip.h */; settings = {ATTRIBUTES = (Public, ); }; }; D03292E22314249D00338D35 /* OngoingCallThreadLocalContext.h in Headers */ = {isa = PBXBuildFile; fileRef = D03292E02314249C00338D35 /* OngoingCallThreadLocalContext.h */; settings = {ATTRIBUTES = (Public, ); }; }; D03292E32314249D00338D35 /* OngoingCallThreadLocalContext.mm in Sources */ = {isa = PBXBuildFile; fileRef = D03292E12314249D00338D35 /* OngoingCallThreadLocalContext.mm */; }; /* End PBXBuildFile section */ @@ -1054,6 +1055,7 @@ 69FB0B2420F6860D00827817 /* MessageThread.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MessageThread.cpp; sourceTree = ""; }; 69FB0B2C20F6860D00827817 /* MessageThread.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MessageThread.h; sourceTree = ""; }; D00ACA4D20222F5D0045D427 /* SetupLogging.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SetupLogging.h; sourceTree = ""; }; + D01748C8231978B700AF3D3A /* libtgvoip.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = libtgvoip.h; sourceTree = ""; }; D03292E02314249C00338D35 /* OngoingCallThreadLocalContext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OngoingCallThreadLocalContext.h; sourceTree = ""; }; D03292E12314249D00338D35 /* OngoingCallThreadLocalContext.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = OngoingCallThreadLocalContext.mm; sourceTree = ""; }; /* End PBXFileReference section */ @@ -1124,6 +1126,7 @@ 692AB8CA1E6759DD00706ACC /* VoIPServerConfig.h */, 69DD8CFC218CD400001E8140 /* video */, 69A6DCFE1E95EC7700000E69 /* webrtc_dsp */, + D01748C8231978B700AF3D3A /* libtgvoip.h */, ); name = libtgvoip; sourceTree = ""; @@ -2376,6 +2379,7 @@ 69F791552221F16C00FE53C4 /* VideoToolboxEncoderSource.h in Headers */, 69F7914C2220A41000FE53C4 /* TGVVideoSource.h in Headers */, 692AB9051E6759DD00706ACC /* VoIPServerConfig.h in Headers */, + D01748C9231978B700AF3D3A /* libtgvoip.h in Headers */, 692AB9031E6759DD00706ACC /* VoIPController.h in Headers */, 69F791592222AC2800FE53C4 /* SampleBufferDisplayLayerRenderer.h in Headers */, 69F791502220A76500FE53C4 /* TGVVideoRenderer.h in Headers */,