From a23deded2204fca51f1b9565d3e1a8cff5527f4d Mon Sep 17 00:00:00 2001 From: Isaac <> Date: Sat, 28 Jun 2025 19:48:34 +0200 Subject: [PATCH] Cleanup --- Telegram/BUILD | 1 + build-system/generate_spm.py | 245 +++++++++++++++--- .../Sources/AnimatedStickerNode.swift | 1 + .../Sources/AnimationRenderer.swift | 1 + .../Sources/VideoStickerFrameSource.swift | 1 + .../Sources/LockedWindowCoveringView.swift | 1 + submodules/AuthorizationUI/BUILD | 1 + .../AuthorizationSequenceController.swift | 1 + ...uthorizationSequenceSplashController.swift | 1 + .../Sources/ChatListSearchListPaneNode.swift | 2 + .../Sources/ChatListSearchMediaNode.swift | 2 + .../Sources/LottieAnimationComponent.swift | 1 + .../ContextUI/Sources/ContextActionNode.swift | 1 + .../Sources/ContextActionsContainerNode.swift | 1 + .../Sources/ContextSourceContainer.swift | 1 + .../Source/ContextContentContainerNode.swift | 1 + .../Source/ContextContentSourceNode.swift | 1 + .../Source/ContextControllerSourceNode.swift | 1 + submodules/Display/Source/Keyboard.swift | 1 + .../Navigation/MinimizedContainer.swift | 1 + submodules/GZip/BUILD | 3 + .../Sources/GlassButtonNode.swift | 1 + .../LegacyComponents/TGGifConverter.h | 4 + .../TGMediaSelectionContext.h | 1 + submodules/LegacyMediaPickerUI/BUILD | 1 + .../Sources/LegacyAttachmentMenu.swift | 1 + .../Sources/LegacyMediaPickers.swift | 1 + .../Sources/LegacyPaintStickersContext.swift | 17 +- .../Sources/LegacyWallpaperPicker.swift | 2 + submodules/LegacyUI/BUILD | 1 + .../LegacyUI/Sources/LegacyController.swift | 1 + .../TelegramInitializeLegacyComponents.swift | 1 + submodules/LottieCpp/BUILD | 1 + ...hunkMediaPlayerDirectFetchSourceImpl.swift | 1 + .../Sources/MediaPlayerScrubbingNode.swift | 1 + .../Sources/MediaPlayerTimeTextNode.swift | 1 + .../UniversalSoftwareVideoSource.swift | 1 + .../OpenSSLEncryptionProvider.h | 1 + submodules/OverlayStatusController/Impl/BUILD | 3 + .../ProgressWindow.m | 2 +- .../OverlayStatusControllerImpl/ProxyWindow.m | 2 - submodules/PassportUI/BUILD | 1 + .../LegacySecureIdAttachmentMenu.swift | 1 + .../Sources/PremiumStarsNode.swift | 1 + .../ReactionContextBackgroundNode.swift | 1 + .../Sources/ReactionContextNode.swift | 1 + .../Sources/ReactionSelectionNode.swift | 1 + .../SSignalKit/Source/SSignalKit/SSignal.h | 1 + .../Source/SSignalKit/SSubscriber.h | 1 + submodules/ShareItems/BUILD | 1 + .../ShareItems/Sources/ShareItems.swift | 9 + .../Sources/StickerShimmerEffectNode.swift | 1 + .../Sources/SlotMachineAnimationNode.swift | 1 + .../StatisticsUI/Sources/StoryIconNode.swift | 1 + submodules/Stripe/BUILD | 1 + .../PublicHeaders/Stripe/STPAPIClient.h | 4 - submodules/Stripe/Sources/STPAPIClient.m | 11 +- submodules/Stripe/Sources/STPImageLibrary.h | 1 - .../Stripe/Sources/STPPaymentConfiguration.m | 3 +- submodules/Stripe/Sources/STPToken.m | 7 + submodules/TelegramCallsUI/BUILD | 1 + .../Sources/CallControllerNodeV2.swift | 1 + .../Sources/VideoChatScreenMoreMenu.swift | 1 + ...ideoChatScreenParticipantContextMenu.swift | 2 + .../Sources/ManagedDiceAnimationNode.swift | 1 + .../TelegramUI/Components/LegacyCamera/BUILD | 1 + .../LegacyCamera/Sources/LegacyCamera.swift | 1 + .../Sources/PeerInfoChatListPaneNode.swift | 2 + .../Sources/PeerInfoChatPaneNode.swift | 1 + .../Sources/PeerInfoCoverComponent.swift | 1 + .../Sources/PeerInfoGiftsCoverComponent.swift | 1 + .../Sources/PeerInfoPaneNode.swift | 1 + .../Components/PeerInfo/PeerInfoScreen/BUILD | 1 + .../ListItems/PeerInfoScreenActionItem.swift | 2 + .../ListItems/PeerInfoScreenCommentItem.swift | 2 + ...nfoScreenDisclosureEncryptionKeyItem.swift | 2 + .../PeerInfoScreenDisclosureItem.swift | 2 + .../ListItems/PeerInfoScreenHeaderItem.swift | 2 + ...erInfoScreenSelectableBackgroundNode.swift | 2 + .../ListItems/PeerInfoScreenSwitchItem.swift | 2 + .../Sources/Panes/PeerInfoGifPaneNode.swift | 1 + .../PeerInfoGroupsInCommonPaneNode.swift | 2 + .../Sources/Panes/PeerInfoListPaneNode.swift | 1 + .../Sources/Panes/PeerInfoMembersPane.swift | 2 + .../Panes/PeerInfoRecommendedPeersPane.swift | 2 + .../Sources/PeerInfoScreenAvatarSetup.swift | 1 + .../PeerInfoScreenMultilineInputtem.swift | 2 + .../Sources/PeerInfoStoryGridScreen.swift | 1 + .../Sources/StorySearchGridScreen.swift | 1 + .../Sources/PeerInfoGiftsPaneNode.swift | 1 + .../Sources/PeerInfoStoryPaneNode.swift | 1 + .../Sources/PeerInfoVisualMediaPaneNode.swift | 1 + .../Sources/OldChannelsSearch.swift | 6 +- .../Resources/FetchVideoMediaResource/BUILD | 1 + .../Sources/FetchVideoMediaResource.swift | 3 +- .../Sources/SavedMessagesScreen.swift | 1 + .../Sources/ThemeGridController.swift | 1 + .../TelegramAccountAuxiliaryMethods.swift | 1 + .../Sources/HLSVideoJSNativeContentNode.swift | 1 + .../Sources/SystemVideoContent.swift | 2 + submodules/UIKitRuntimeUtils/BUILD | 2 +- submodules/Utils/ShelfPack/BUILD | 1 + .../WebUI/Sources/WebAppController.swift | 1 + submodules/libphonenumber/BUILD | 3 + .../libphonenumber/Sources/NBPhoneNumber.m | 2 +- .../Sources/NBPhoneNumberUtil.m | 4 +- third-party/boost_regex/BUILD | 3 +- third-party/webrtc/BUILD | 4 +- third-party/webrtc/libsrtp/BUILD | 2 +- 109 files changed, 376 insertions(+), 68 deletions(-) diff --git a/Telegram/BUILD b/Telegram/BUILD index 7101c93bcb..07c995ec37 100644 --- a/Telegram/BUILD +++ b/Telegram/BUILD @@ -1790,6 +1790,7 @@ ios_application( #"//third-party/boringssl:ssl", #"//third-party/boringssl:crypto", #"//submodules/TelegramVoip", + #"//third-party/libprisma", "//submodules/TelegramUI", ], ) diff --git a/build-system/generate_spm.py b/build-system/generate_spm.py index 7f66d4a78a..97d02b2233 100644 --- a/build-system/generate_spm.py +++ b/build-system/generate_spm.py @@ -45,6 +45,29 @@ def escape_swift_string_literal_component(text: str) -> str: # For non-define flags or defines without shell quoting, just escape for Swift string literal return text.replace('\\', '\\\\').replace('"', '\\"') +# Parses -D flag into a tuple of (define_flag, define_value) +# Example: flag="ABC" -> (ABC, None) +# Example: flag="ABC=123" -> (ABC, 123) +# Example: flag="ABC=\"str\"" -> (ABC, "str") +def parse_define_flag(flag: str) -> tuple[str, str | None]: + if flag.startswith("-D"): + define_part = flag[2:] + else: + define_part = flag + + # Check if there's an assignment + if "=" in define_part: + key, value = define_part.split("=", 1) # Split on first = only + + # Handle quoted values - remove surrounding quotes if present + if (value.startswith('"') and value.endswith('"')) or (value.startswith("'") and value.endswith("'")): + value = value[1:-1] # Remove quotes + + return (key, value) + else: + # No assignment, just a flag name + return (define_part, None) + parsed_modules = {} for name, module in sorted(modules.items()): is_empty = False @@ -60,6 +83,8 @@ for name, module in sorted(modules.items()): "is_empty": is_empty, } +spm_products = [] +spm_targets = [] module_to_source_files = dict() modulemaps = dict() @@ -69,41 +94,136 @@ combined_lines.append("// The swift-tools-version declares the minimum version o combined_lines.append("") combined_lines.append("import PackageDescription") combined_lines.append("import Foundation") +combined_lines.append(""" +func parseProduct(product: [String: Any]) -> Product { + let name = product[\"name\"] as! String + let targets = product[\"targets\"] as! [String] + return .library(name: name, targets: targets) +}""") +combined_lines.append(""" +func parseTarget(target: [String: Any]) -> Target { + let name = target["name"] as! String + let dependencies = target["dependencies"] as! [String] + + var swiftSettings: [SwiftSetting]? + if let swiftSettingList = target["swiftSettings"] as? [[String: Any]] { + var swiftSettingsValue: [SwiftSetting] = [] + swiftSettingsValue.append(.swiftLanguageMode(.v5)) + for swiftSetting in swiftSettingList { + if swiftSetting["type"] as! String == "define" { + swiftSettingsValue.append(.define(swiftSetting["name"] as! String)) + } else if swiftSetting["type"] as! String == "unsafeFlags" { + swiftSettingsValue.append(.unsafeFlags(swiftSetting["flags"] as! [String])) + } else { + print("Unknown swift setting type: \\(swiftSetting["type"] as! String)") + preconditionFailure("Unknown swift setting type: \\(swiftSetting["type"] as! String)") + } + } + + swiftSettings = swiftSettingsValue + } + + var cSettings: [CSetting]? + if let cSettingList = target["cSettings"] as? [[String: Any]] { + var cSettingsValue: [CSetting] = [] + for cSetting in cSettingList { + if cSetting["type"] as! String == "define" { + cSettingsValue.append(.define(cSetting["name"] as! String)) + } else if cSetting["type"] as! String == "unsafeFlags" { + cSettingsValue.append(.unsafeFlags(cSetting["flags"] as! [String])) + } else { + print("Unknown c setting type: \\(cSetting["type"] as! String)") + preconditionFailure("Unknown c setting type: \\(cSetting["type"] as! String)") + } + } + cSettings = cSettingsValue + } + + var cxxSettings: [CXXSetting]? + if let cxxSettingList = target["cxxSettings"] as? [[String: Any]] { + var cxxSettingsValue: [CXXSetting] = [] + for cxxSetting in cxxSettingList { + if cxxSetting["type"] as! String == "define" { + cxxSettingsValue.append(.define(cxxSetting["name"] as! String)) + } else if cxxSetting["type"] as! String == "unsafeFlags" { + cxxSettingsValue.append(.unsafeFlags(cxxSetting["flags"] as! [String])) + } else { + print("Unknown cxx setting type: \\(cxxSetting["type"] as! String)") + preconditionFailure("Unknown cxx setting type: \\(cxxSetting["type"] as! String)") + } + } + cxxSettings = cxxSettingsValue + } + + var linkerSettings: [LinkerSetting]? + if let linkerSettingList = target["linkerSettings"] as? [[String: Any]] { + var linkerSettingsValue: [LinkerSetting] = [] + for linkerSetting in linkerSettingList { + if linkerSetting["type"] as! String == "framework" { + linkerSettingsValue.append(.linkedFramework(linkerSetting["name"] as! String)) + } else if linkerSetting["type"] as! String == "library" { + linkerSettingsValue.append(.linkedLibrary(linkerSetting["name"] as! String)) + } else { + print("Unknown linker setting type: \\(linkerSetting["type"] as! String)") + preconditionFailure("Unknown linker setting type: \\(linkerSetting["type"] as! String)") + } + } + linkerSettings = linkerSettingsValue + } + + return .target( + name: name, + dependencies: dependencies.map({ .target(name: $0) }), + path: (target["path"] as? String)!, + exclude: [], + sources: sourceFileMap[name]!, + resources: nil, + publicHeadersPath: target["publicHeadersPath"] as? String, + packageAccess: true, + cSettings: cSettings, + cxxSettings: cxxSettings, + swiftSettings: swiftSettings, + linkerSettings: linkerSettings, + plugins: nil + ) +} +""") combined_lines.append("") -combined_lines.append("let sourceFileMap: [String: [String]] = try! JSONSerialization.jsonObject(with: Data(contentsOf: URL(fileURLWithPath: \"SourceFileMap.json\")), options: []) as! [String: [String]]") +combined_lines.append("let packageData: [String: Any] = try! JSONSerialization.jsonObject(with: Data(contentsOf: URL(fileURLWithPath: \"PackageData.json\")), options: []) as! [String: Any]") +combined_lines.append("let sourceFileMap: [String: [String]] = packageData[\"sourceFileMap\"] as! [String: [String]]") +combined_lines.append("let products: [Product] = (packageData[\"products\"] as! [[String: Any]]).map(parseProduct)") +combined_lines.append("let targets: [Target] = (packageData[\"targets\"] as! [[String: Any]]).map(parseTarget)") combined_lines.append("") combined_lines.append("let package = Package(") combined_lines.append(" name: \"Telegram\",") combined_lines.append(" platforms: [") combined_lines.append(" .iOS(.v13)") combined_lines.append(" ],") -combined_lines.append(" products: [") +combined_lines.append(" products: products,") for name, module in sorted(modules.items()): if parsed_modules[name]["is_empty"]: continue if module["type"] == "objc_library" or module["type"] == "swift_library" or module["type"] == "cc_library": - combined_lines.append(" .library(name: \"%s\", targets: [\"%s\"])," % (module["name"], module["name"])) + spm_products.append({ + "name": module["name"], + "targets": [module["name"]], + }) -combined_lines.append(" ],") combined_lines.append(" targets: [") -class ModulemapStore: - def __init__(self) -> None: - pass - - def add(self, module_path, header_path): - pass - for name, module in sorted(modules.items()): if parsed_modules[name]["is_empty"]: continue module_type = module["type"] if module_type == "objc_library" or module_type == "cc_library" or module_type == "swift_library": + spm_target = dict() + combined_lines.append(" .target(") combined_lines.append(" name: \"%s\"," % name) + spm_target["name"] = name relative_module_path = module["path"] module_directory = spm_files_dir + "/" + relative_module_path @@ -122,13 +242,16 @@ for name, module in sorted(modules.items()): break combined_lines.append(" dependencies: [") + spm_target["dependencies"] = [] for dep in module["deps"]: if not parsed_modules[dep]["is_empty"]: combined_lines.append(" .target(name: \"%s\")," % dep) + spm_target["dependencies"].append(dep) combined_lines.append(" ],") # All modules now use the symlinked directory path combined_lines.append(" path: \"%s\"," % relative_module_path) + spm_target["path"] = relative_module_path include_source_files = [] exclude_source_files = [] @@ -188,6 +311,7 @@ for name, module in sorted(modules.items()): exclude_path = other_module["path"][len(module["path"]) + 1:] ignore_sub_folders.append(exclude_path) if len(ignore_sub_folders) != 0: + spm_target["exclude"] = ignore_sub_folders combined_lines.append(" exclude: [") for sub_folder in ignore_sub_folders: combined_lines.append(f" \"{sub_folder}\",") @@ -206,8 +330,10 @@ for name, module in sorted(modules.items()): if module_type == "objc_library" or module_type == "cc_library": if module_public_headers_prefix is not None and len(module_public_headers_prefix) != 0: combined_lines.append(f" publicHeadersPath: \"{module_public_headers_prefix}\",") + spm_target["publicHeadersPath"] = module_public_headers_prefix else: combined_lines.append(" publicHeadersPath: \"\",") + spm_target["publicHeadersPath"] = "" if len(module["includes"]) > 1: print("{}: Multiple includes are not yet supported: {}".format(name, module["includes"])) @@ -217,7 +343,9 @@ for name, module in sorted(modules.items()): cxxopts = module.get("cxxopts", []) if defines or copts or (module_public_headers_prefix is not None): + spm_target["cSettings"] = [] combined_lines.append(" cSettings: [") + if defines: for define in defines: if "=" in define: @@ -225,30 +353,43 @@ for name, module in sorted(modules.items()): sys.exit(1) else: combined_lines.append(f' .define("{define}"),') + spm_target["cSettings"].append({ + "type": "define", + "name": define + }) + define_flags = [] if copts: combined_lines.append(" .unsafeFlags([") + unsafe_flags = [] for flag in copts: - escaped_flag = escape_swift_string_literal_component(flag) - if escaped_flag.startswith("-I") and False: - include_path = escaped_flag[2:] - #print("{}: Include path: {}".format(name, include_path)) - found_reference = False - for another_module_name, another_module in sorted(modules.items()): - another_module_path = another_module["path"] - if include_path.startswith(another_module_path): - combined_lines.append(f' "-I{include_path}",') - found_reference = True - if not found_reference: - print(f"{name}: Unresolved include path: {include_path}") - sys.exit(1) + if flag.startswith("-D"): + define_flag, define_value = parse_define_flag(flag) + define_flags.append((define_flag, define_value)) + spm_target["cSettings"].append({ + "type": "define", + "name": define_flag, + "value": define_value + }) else: + escaped_flag = escape_swift_string_literal_component(flag) combined_lines.append(f' "{escaped_flag}",') + unsafe_flags.append(escaped_flag) combined_lines.append(" ]),") - #if module_public_headers_prefix is not None: - # combined_lines.append(f" .headerSearchPath(\"{module_public_headers_prefix}\"),") + spm_target["cSettings"].append({ + "type": "unsafeFlags", + "flags": unsafe_flags + }) + if len(define_flags) != 0: + for (define_flag, define_value) in define_flags: + if define_value is None: + combined_lines.append(f' .define("{define_flag}"),') + else: + combined_lines.append(f' .define("{define_flag}", to: "{define_value}"),') + combined_lines.append(" ],") if defines or cxxopts: # Check for defines OR cxxopts + spm_target["cxxSettings"] = [] combined_lines.append(" cxxSettings: [") if defines: # Add defines again if present, for C++ context for define in defines: @@ -257,8 +398,13 @@ for name, module in sorted(modules.items()): sys.exit(1) else: combined_lines.append(f' .define("{define}"),') + spm_target["cxxSettings"].append({ + "type": "define", + "name": define + }) if cxxopts: combined_lines.append(" .unsafeFlags([") + unsafe_flags = [] for flag in cxxopts: if flag.startswith("-std=") and True: if flag != "-std=c++17": @@ -268,17 +414,35 @@ for name, module in sorted(modules.items()): continue escaped_flag = escape_swift_string_literal_component(flag) combined_lines.append(f' "{escaped_flag}",') + unsafe_flags.append(escaped_flag) combined_lines.append(" ])") + spm_target["cxxSettings"].append({ + "type": "unsafeFlags", + "flags": unsafe_flags + }) combined_lines.append(" ],") + spm_target["linkerSettings"] = [] combined_lines.append(" linkerSettings: [") if module_type == "objc_library": for framework in module["sdk_frameworks"]: combined_lines.append(" .linkedFramework(\"%s\")," % framework) + spm_target["linkerSettings"].append({ + "type": "framework", + "name": framework + }) for dylib in module["sdk_dylibs"]: combined_lines.append(" .linkedLibrary(\"%s\")," % dylib) + spm_target["linkerSettings"].append({ + "type": "library", + "name": dylib + }) + spm_target["linkerSettings"].append({ + "type": "library", + "name": dylib + }) combined_lines.append(" ]") - + elif module_type == "swift_library": defines = module.get("defines", []) swift_copts = module.get("copts", []) # These are actual swiftc flags @@ -286,10 +450,16 @@ for name, module in sorted(modules.items()): # Handle cSettings for defines if they exist if defines: combined_lines.append(" cSettings: [") + spm_target["cSettings"] = [] for define in defines: combined_lines.append(f' .define("{define}"),') + spm_target["cSettings"].append({ + "type": "define", + "name": define + }) combined_lines.append(" ],") + spm_target["swiftSettings"] = [] # Handle swiftSettings combined_lines.append(" swiftSettings: [") combined_lines.append(" .swiftLanguageMode(.v5),") @@ -299,16 +469,28 @@ for name, module in sorted(modules.items()): # For Swift settings, the define is passed as a single string, e.g., "KEY=VALUE" or "FLAG" escaped_define = escape_swift_string_literal_component(define) # Escape the whole define string combined_lines.append(f' .define("{escaped_define}"),') + spm_target["swiftSettings"].append({ + "type": "define", + "name": define + }) # Add copts (swiftc flags) to unsafeFlags in swiftSettings if swift_copts: combined_lines.append(" .unsafeFlags([") + unsafe_flags = [] for flag in swift_copts: escaped_flag = escape_swift_string_literal_component(flag) combined_lines.append(f' "{escaped_flag}",') + unsafe_flags.append(escaped_flag) combined_lines.append(" ])") + spm_target["swiftSettings"].append({ + "type": "unsafeFlags", + "flags": unsafe_flags + }) combined_lines.append(" ]") combined_lines.append(" ),") + + spm_targets.append(spm_target) elif module["type"] == "root": pass else: @@ -323,8 +505,13 @@ combined_lines.append("") with open("spm-files/Package.swift", "w") as f: f.write("\n".join(combined_lines)) -with open("spm-files/SourceFileMap.json", "w") as f: - json.dump(module_to_source_files, f, indent=4) +with open("spm-files/PackageData.json", "w") as f: + package_data = { + "sourceFileMap": module_to_source_files, + "products": spm_products, + "targets": spm_targets + } + json.dump(package_data, f, indent=4) for modulemap_path, modulemap in modulemaps.items(): module_map_contents = "" diff --git a/submodules/AnimatedStickerNode/Sources/AnimatedStickerNode.swift b/submodules/AnimatedStickerNode/Sources/AnimatedStickerNode.swift index f9ee14ae3b..b9fc4d403d 100644 --- a/submodules/AnimatedStickerNode/Sources/AnimatedStickerNode.swift +++ b/submodules/AnimatedStickerNode/Sources/AnimatedStickerNode.swift @@ -6,6 +6,7 @@ import AsyncDisplayKit import YuvConversion import MediaResources import AnimationCompression +import UIKit private let sharedQueue = Queue() diff --git a/submodules/AnimatedStickerNode/Sources/AnimationRenderer.swift b/submodules/AnimatedStickerNode/Sources/AnimationRenderer.swift index 953ede5bb0..2a26f89a60 100644 --- a/submodules/AnimatedStickerNode/Sources/AnimationRenderer.swift +++ b/submodules/AnimatedStickerNode/Sources/AnimationRenderer.swift @@ -1,5 +1,6 @@ import Foundation import SwiftSignalKit +import UIKit import AsyncDisplayKit public enum AnimationRendererFrameType { diff --git a/submodules/AnimatedStickerNode/Sources/VideoStickerFrameSource.swift b/submodules/AnimatedStickerNode/Sources/VideoStickerFrameSource.swift index 120ad0e2e9..529baed0f1 100644 --- a/submodules/AnimatedStickerNode/Sources/VideoStickerFrameSource.swift +++ b/submodules/AnimatedStickerNode/Sources/VideoStickerFrameSource.swift @@ -8,6 +8,7 @@ import ManagedFile import Accelerate import TelegramCore import WebPBinding +import UIKit private let sharedStoreQueue = Queue.concurrentDefaultQueue() diff --git a/submodules/AppLock/Sources/LockedWindowCoveringView.swift b/submodules/AppLock/Sources/LockedWindowCoveringView.swift index 6da82ea64e..3e28d52649 100644 --- a/submodules/AppLock/Sources/LockedWindowCoveringView.swift +++ b/submodules/AppLock/Sources/LockedWindowCoveringView.swift @@ -1,4 +1,5 @@ import Foundation +import UIKit import Display import TelegramPresentationData import AsyncDisplayKit diff --git a/submodules/AuthorizationUI/BUILD b/submodules/AuthorizationUI/BUILD index a0657ad3e9..ee1b9354de 100644 --- a/submodules/AuthorizationUI/BUILD +++ b/submodules/AuthorizationUI/BUILD @@ -14,6 +14,7 @@ swift_library( "//submodules/TelegramCore:TelegramCore", "//submodules/Postbox:Postbox", "//submodules/Display:Display", + "//submodules/SSignalKit/SSignalKit", "//submodules/SSignalKit/SwiftSignalKit:SwiftSignalKit", "//submodules/TextFormat:TextFormat", "//submodules/Markdown:Markdown", diff --git a/submodules/AuthorizationUI/Sources/AuthorizationSequenceController.swift b/submodules/AuthorizationUI/Sources/AuthorizationSequenceController.swift index c5df3c7ae8..d0d6924d2c 100644 --- a/submodules/AuthorizationUI/Sources/AuthorizationSequenceController.swift +++ b/submodules/AuthorizationUI/Sources/AuthorizationSequenceController.swift @@ -22,6 +22,7 @@ import Markdown import AlertUI import InAppPurchaseManager import ObjectiveC +import AVFoundation private var ObjCKey_Delegate: Int? diff --git a/submodules/AuthorizationUI/Sources/AuthorizationSequenceSplashController.swift b/submodules/AuthorizationUI/Sources/AuthorizationSequenceSplashController.swift index 90eaee692c..3863cae372 100644 --- a/submodules/AuthorizationUI/Sources/AuthorizationSequenceSplashController.swift +++ b/submodules/AuthorizationUI/Sources/AuthorizationSequenceSplashController.swift @@ -4,6 +4,7 @@ import Display import AsyncDisplayKit import Postbox import TelegramCore +import SSignalKit import SwiftSignalKit import TelegramPresentationData import LegacyComponents diff --git a/submodules/ChatListUI/Sources/ChatListSearchListPaneNode.swift b/submodules/ChatListUI/Sources/ChatListSearchListPaneNode.swift index 1cb5bf4f48..6e4a1e43e0 100644 --- a/submodules/ChatListUI/Sources/ChatListSearchListPaneNode.swift +++ b/submodules/ChatListUI/Sources/ChatListSearchListPaneNode.swift @@ -1,3 +1,5 @@ +import Foundation +import UIKit import AsyncDisplayKit import Display import TelegramCore diff --git a/submodules/ChatListUI/Sources/ChatListSearchMediaNode.swift b/submodules/ChatListUI/Sources/ChatListSearchMediaNode.swift index 6df813a8bc..6f0f69a246 100644 --- a/submodules/ChatListUI/Sources/ChatListSearchMediaNode.swift +++ b/submodules/ChatListUI/Sources/ChatListSearchMediaNode.swift @@ -1,4 +1,6 @@ +import Foundation import AsyncDisplayKit +import UIKit import Display import TelegramCore import SwiftSignalKit diff --git a/submodules/Components/LottieAnimationComponent/Sources/LottieAnimationComponent.swift b/submodules/Components/LottieAnimationComponent/Sources/LottieAnimationComponent.swift index 67b747f790..c6e22a0682 100644 --- a/submodules/Components/LottieAnimationComponent/Sources/LottieAnimationComponent.swift +++ b/submodules/Components/LottieAnimationComponent/Sources/LottieAnimationComponent.swift @@ -3,6 +3,7 @@ import ComponentFlow import Lottie import AppBundle import HierarchyTrackingLayer +import UIKit import Display import GZip diff --git a/submodules/ContextUI/Sources/ContextActionNode.swift b/submodules/ContextUI/Sources/ContextActionNode.swift index e0ab204190..7fc66b761d 100644 --- a/submodules/ContextUI/Sources/ContextActionNode.swift +++ b/submodules/ContextUI/Sources/ContextActionNode.swift @@ -1,4 +1,5 @@ import Foundation +import UIKit import AsyncDisplayKit import Display import TelegramPresentationData diff --git a/submodules/ContextUI/Sources/ContextActionsContainerNode.swift b/submodules/ContextUI/Sources/ContextActionsContainerNode.swift index d7e417101e..2618766169 100644 --- a/submodules/ContextUI/Sources/ContextActionsContainerNode.swift +++ b/submodules/ContextUI/Sources/ContextActionsContainerNode.swift @@ -1,4 +1,5 @@ import Foundation +import UIKit import AsyncDisplayKit import Display import TelegramCore diff --git a/submodules/ContextUI/Sources/ContextSourceContainer.swift b/submodules/ContextUI/Sources/ContextSourceContainer.swift index bef915f5ef..2cf1f54ba0 100644 --- a/submodules/ContextUI/Sources/ContextSourceContainer.swift +++ b/submodules/ContextUI/Sources/ContextSourceContainer.swift @@ -1,4 +1,5 @@ import Foundation +import UIKit import AsyncDisplayKit import Display import TelegramPresentationData diff --git a/submodules/Display/Source/ContextContentContainerNode.swift b/submodules/Display/Source/ContextContentContainerNode.swift index d2e1081db6..67083e3d87 100644 --- a/submodules/Display/Source/ContextContentContainerNode.swift +++ b/submodules/Display/Source/ContextContentContainerNode.swift @@ -1,4 +1,5 @@ import Foundation +import UIKit import AsyncDisplayKit public final class ContextContentContainerNode: ASDisplayNode { diff --git a/submodules/Display/Source/ContextContentSourceNode.swift b/submodules/Display/Source/ContextContentSourceNode.swift index b4ed6a4cbd..66af7cb2b2 100644 --- a/submodules/Display/Source/ContextContentSourceNode.swift +++ b/submodules/Display/Source/ContextContentSourceNode.swift @@ -1,4 +1,5 @@ import Foundation +import UIKit import AsyncDisplayKit open class ContextReferenceContentNode: ASDisplayNode { diff --git a/submodules/Display/Source/ContextControllerSourceNode.swift b/submodules/Display/Source/ContextControllerSourceNode.swift index 2de0835f38..893becfcb1 100644 --- a/submodules/Display/Source/ContextControllerSourceNode.swift +++ b/submodules/Display/Source/ContextControllerSourceNode.swift @@ -1,4 +1,5 @@ import Foundation +import UIKit import AsyncDisplayKit open class ContextControllerSourceNode: ContextReferenceContentNode { diff --git a/submodules/Display/Source/Keyboard.swift b/submodules/Display/Source/Keyboard.swift index d2699a42e6..86b8a886cf 100644 --- a/submodules/Display/Source/Keyboard.swift +++ b/submodules/Display/Source/Keyboard.swift @@ -1,4 +1,5 @@ import Foundation +import UIKit import UIKitRuntimeUtils public enum Keyboard { diff --git a/submodules/Display/Source/Navigation/MinimizedContainer.swift b/submodules/Display/Source/Navigation/MinimizedContainer.swift index d6ea34f500..f5df17730f 100644 --- a/submodules/Display/Source/Navigation/MinimizedContainer.swift +++ b/submodules/Display/Source/Navigation/MinimizedContainer.swift @@ -1,4 +1,5 @@ import Foundation +import UIKit import AsyncDisplayKit public protocol MinimizedContainer: ASDisplayNode { diff --git a/submodules/GZip/BUILD b/submodules/GZip/BUILD index b94e8bfd2d..070db3c3f3 100644 --- a/submodules/GZip/BUILD +++ b/submodules/GZip/BUILD @@ -9,6 +9,9 @@ objc_library( hdrs = glob([ "Sources/**/*.h", ]), + includes = [ + "Sources", + ], sdk_dylibs = [ "libz", ], diff --git a/submodules/GlassButtonNode/Sources/GlassButtonNode.swift b/submodules/GlassButtonNode/Sources/GlassButtonNode.swift index 285964e124..d1f39743df 100644 --- a/submodules/GlassButtonNode/Sources/GlassButtonNode.swift +++ b/submodules/GlassButtonNode/Sources/GlassButtonNode.swift @@ -1,5 +1,6 @@ import Foundation import Display +import UIKit import AsyncDisplayKit import SwiftSignalKit diff --git a/submodules/LegacyComponents/PublicHeaders/LegacyComponents/TGGifConverter.h b/submodules/LegacyComponents/PublicHeaders/LegacyComponents/TGGifConverter.h index 84dd709654..49ff669007 100644 --- a/submodules/LegacyComponents/PublicHeaders/LegacyComponents/TGGifConverter.h +++ b/submodules/LegacyComponents/PublicHeaders/LegacyComponents/TGGifConverter.h @@ -1,8 +1,12 @@ #import #import +NS_ASSUME_NONNULL_BEGIN + @interface TGGifConverter : NSObject + (SSignal *)convertGifToMp4:(NSData *)data; @end + +NS_ASSUME_NONNULL_END diff --git a/submodules/LegacyComponents/PublicHeaders/LegacyComponents/TGMediaSelectionContext.h b/submodules/LegacyComponents/PublicHeaders/LegacyComponents/TGMediaSelectionContext.h index 68bda51e98..c54d12798d 100644 --- a/submodules/LegacyComponents/PublicHeaders/LegacyComponents/TGMediaSelectionContext.h +++ b/submodules/LegacyComponents/PublicHeaders/LegacyComponents/TGMediaSelectionContext.h @@ -1,3 +1,4 @@ +#import #import @protocol TGMediaSelectableItem diff --git a/submodules/LegacyMediaPickerUI/BUILD b/submodules/LegacyMediaPickerUI/BUILD index cfae8f3fe5..7cdc998863 100644 --- a/submodules/LegacyMediaPickerUI/BUILD +++ b/submodules/LegacyMediaPickerUI/BUILD @@ -10,6 +10,7 @@ swift_library( "-warnings-as-errors", ], deps = [ + "//submodules/SSignalKit/SSignalKit", "//submodules/SSignalKit/SwiftSignalKit:SwiftSignalKit", "//submodules/AsyncDisplayKit:AsyncDisplayKit", "//submodules/Display:Display", diff --git a/submodules/LegacyMediaPickerUI/Sources/LegacyAttachmentMenu.swift b/submodules/LegacyMediaPickerUI/Sources/LegacyAttachmentMenu.swift index 2e2d07625f..e78bc008b0 100644 --- a/submodules/LegacyMediaPickerUI/Sources/LegacyAttachmentMenu.swift +++ b/submodules/LegacyMediaPickerUI/Sources/LegacyAttachmentMenu.swift @@ -10,6 +10,7 @@ import DeviceAccess import AccountContext import LegacyUI import SaveToCameraRoll +import Photos public func defaultVideoPresetForContext(_ context: AccountContext) -> TGMediaVideoConversionPreset { var networkType: NetworkType = .wifi diff --git a/submodules/LegacyMediaPickerUI/Sources/LegacyMediaPickers.swift b/submodules/LegacyMediaPickerUI/Sources/LegacyMediaPickers.swift index 0acb01ba7c..65dcb75c78 100644 --- a/submodules/LegacyMediaPickerUI/Sources/LegacyMediaPickers.swift +++ b/submodules/LegacyMediaPickerUI/Sources/LegacyMediaPickers.swift @@ -14,6 +14,7 @@ import MimeTypes import LocalMediaResources import LegacyUI import TextFormat +import Photos public func guessMimeTypeByFileExtension(_ ext: String) -> String { return TGMimeTypeMap.mimeType(forExtension: ext) ?? "application/binary" diff --git a/submodules/LegacyMediaPickerUI/Sources/LegacyPaintStickersContext.swift b/submodules/LegacyMediaPickerUI/Sources/LegacyPaintStickersContext.swift index af525ff44f..3bad8cf5df 100644 --- a/submodules/LegacyMediaPickerUI/Sources/LegacyPaintStickersContext.swift +++ b/submodules/LegacyMediaPickerUI/Sources/LegacyPaintStickersContext.swift @@ -1,4 +1,5 @@ import LegacyComponents +import UIKit import Display import Postbox import SwiftSignalKit @@ -13,6 +14,7 @@ import MediaEditor import DrawingUI import TelegramPresentationData import AnimatedCountLabelNode +import CoreMedia protocol LegacyPaintEntity { var position: CGPoint { get } @@ -723,17 +725,16 @@ private class SendStarsButtonView: HighlightTrackingButton, TGPhotoSendStarsButt } } -//Xcode 16 -#if canImport(ContactProvider) -extension SolidRoundedButtonView: @retroactive TGPhotoSolidRoundedButtonView { - public func updateWidth(_ width: CGFloat) { - let _ = self.updateLayout(width: width, transition: .immediate) - } -} -#else +#if SWIFT_PACKAGE extension SolidRoundedButtonView: TGPhotoSolidRoundedButtonView { public func updateWidth(_ width: CGFloat) { let _ = self.updateLayout(width: width, transition: .immediate) } } +#else +extension SolidRoundedButtonView: @retroactive TGPhotoSolidRoundedButtonView { + public func updateWidth(_ width: CGFloat) { + let _ = self.updateLayout(width: width, transition: .immediate) + } +} #endif diff --git a/submodules/LegacyMediaPickerUI/Sources/LegacyWallpaperPicker.swift b/submodules/LegacyMediaPickerUI/Sources/LegacyWallpaperPicker.swift index 38ab335d8c..e6633b5f84 100644 --- a/submodules/LegacyMediaPickerUI/Sources/LegacyWallpaperPicker.swift +++ b/submodules/LegacyMediaPickerUI/Sources/LegacyWallpaperPicker.swift @@ -1,6 +1,7 @@ import Foundation import UIKit import Display +import SSignalKit import SwiftSignalKit import TelegramCore import LegacyComponents @@ -8,6 +9,7 @@ import TelegramPresentationData import DeviceAccess import AccountContext import LocalMediaResources +import Photos public func legacyWallpaperPicker(context: AccountContext, presentationData: PresentationData, subject: DeviceAccessMediaLibrarySubject = .wallpaper) -> Signal<(LegacyComponentsContext) -> TGMediaAssetsController, Void> { return Signal { subscriber in diff --git a/submodules/LegacyUI/BUILD b/submodules/LegacyUI/BUILD index 598c588775..57bdeb0623 100644 --- a/submodules/LegacyUI/BUILD +++ b/submodules/LegacyUI/BUILD @@ -10,6 +10,7 @@ swift_library( "-warnings-as-errors", ], deps = [ + "//submodules/SSignalKit/SSignalKit", "//submodules/SSignalKit/SwiftSignalKit:SwiftSignalKit", "//submodules/Postbox:Postbox", "//submodules/TelegramCore:TelegramCore", diff --git a/submodules/LegacyUI/Sources/LegacyController.swift b/submodules/LegacyUI/Sources/LegacyController.swift index bc23833014..0259dd86b6 100644 --- a/submodules/LegacyUI/Sources/LegacyController.swift +++ b/submodules/LegacyUI/Sources/LegacyController.swift @@ -1,6 +1,7 @@ import Foundation import UIKit import Display +import SSignalKit import SwiftSignalKit import LegacyComponents import TelegramPresentationData diff --git a/submodules/LegacyUI/Sources/TelegramInitializeLegacyComponents.swift b/submodules/LegacyUI/Sources/TelegramInitializeLegacyComponents.swift index 2df91a8f2b..f619f9dbe7 100644 --- a/submodules/LegacyUI/Sources/TelegramInitializeLegacyComponents.swift +++ b/submodules/LegacyUI/Sources/TelegramInitializeLegacyComponents.swift @@ -1,6 +1,7 @@ import Foundation import UIKit import TelegramCore +import SSignalKit import SwiftSignalKit import MtProtoKit import Display diff --git a/submodules/LottieCpp/BUILD b/submodules/LottieCpp/BUILD index 8c4fd461d4..b8571c0c94 100644 --- a/submodules/LottieCpp/BUILD +++ b/submodules/LottieCpp/BUILD @@ -27,6 +27,7 @@ objc_library( ], hdrs = glob([ "lottiecpp/PublicHeaders/**/*.h", + "lottiecpp/PublicHeaders/**/*.hpp", ]), includes = [ "lottiecpp/PublicHeaders", diff --git a/submodules/MediaPlayer/Sources/ChunkMediaPlayerDirectFetchSourceImpl.swift b/submodules/MediaPlayer/Sources/ChunkMediaPlayerDirectFetchSourceImpl.swift index 15ed80f1e6..74fce2874b 100644 --- a/submodules/MediaPlayer/Sources/ChunkMediaPlayerDirectFetchSourceImpl.swift +++ b/submodules/MediaPlayer/Sources/ChunkMediaPlayerDirectFetchSourceImpl.swift @@ -5,6 +5,7 @@ import Postbox import TelegramCore import FFMpegBinding import RangeSet +import CoreMedia private func FFMpegLookaheadReader_readPacketCallback(userData: UnsafeMutableRawPointer?, buffer: UnsafeMutablePointer?, bufferSize: Int32) -> Int32 { let context = Unmanaged.fromOpaque(userData!).takeUnretainedValue() diff --git a/submodules/MediaPlayer/Sources/MediaPlayerScrubbingNode.swift b/submodules/MediaPlayer/Sources/MediaPlayerScrubbingNode.swift index fc71c6c80f..b964bd591f 100644 --- a/submodules/MediaPlayer/Sources/MediaPlayerScrubbingNode.swift +++ b/submodules/MediaPlayer/Sources/MediaPlayerScrubbingNode.swift @@ -4,6 +4,7 @@ import Display import SwiftSignalKit import RangeSet import TextFormat +import UIKit public enum MediaPlayerScrubbingNodeCap { case square diff --git a/submodules/MediaPlayer/Sources/MediaPlayerTimeTextNode.swift b/submodules/MediaPlayer/Sources/MediaPlayerTimeTextNode.swift index c82180a741..1e379d80e4 100644 --- a/submodules/MediaPlayer/Sources/MediaPlayerTimeTextNode.swift +++ b/submodules/MediaPlayer/Sources/MediaPlayerTimeTextNode.swift @@ -1,6 +1,7 @@ import Foundation import AsyncDisplayKit import SwiftSignalKit +import UIKit import Display public enum MediaPlayerTimeTextNodeMode { diff --git a/submodules/MediaPlayer/Sources/UniversalSoftwareVideoSource.swift b/submodules/MediaPlayer/Sources/UniversalSoftwareVideoSource.swift index 41dfca3845..1ccda9119e 100644 --- a/submodules/MediaPlayer/Sources/UniversalSoftwareVideoSource.swift +++ b/submodules/MediaPlayer/Sources/UniversalSoftwareVideoSource.swift @@ -9,6 +9,7 @@ import SwiftSignalKit import Postbox import TelegramCore import FFMpegBinding +import CoreMedia private func readPacketCallback(userData: UnsafeMutableRawPointer?, buffer: UnsafeMutablePointer?, bufferSize: Int32) -> Int32 { let context = Unmanaged.fromOpaque(userData!).takeUnretainedValue() diff --git a/submodules/OpenSSLEncryptionProvider/PublicHeaders/OpenSSLEncryptionProvider/OpenSSLEncryptionProvider.h b/submodules/OpenSSLEncryptionProvider/PublicHeaders/OpenSSLEncryptionProvider/OpenSSLEncryptionProvider.h index 3dc1f9d144..c3b6700f23 100644 --- a/submodules/OpenSSLEncryptionProvider/PublicHeaders/OpenSSLEncryptionProvider/OpenSSLEncryptionProvider.h +++ b/submodules/OpenSSLEncryptionProvider/PublicHeaders/OpenSSLEncryptionProvider/OpenSSLEncryptionProvider.h @@ -1,3 +1,4 @@ +#import #import NS_ASSUME_NONNULL_BEGIN diff --git a/submodules/OverlayStatusController/Impl/BUILD b/submodules/OverlayStatusController/Impl/BUILD index 7598e00f8a..7f782462d8 100644 --- a/submodules/OverlayStatusController/Impl/BUILD +++ b/submodules/OverlayStatusController/Impl/BUILD @@ -11,6 +11,9 @@ objc_library( includes = [ "Sources", ], + copts = [ + "-Werror", + ], visibility = [ "//visibility:public", ], diff --git a/submodules/OverlayStatusController/Impl/Sources/OverlayStatusControllerImpl/ProgressWindow.m b/submodules/OverlayStatusController/Impl/Sources/OverlayStatusControllerImpl/ProgressWindow.m index 7dda6129be..ef729d5a56 100644 --- a/submodules/OverlayStatusController/Impl/Sources/OverlayStatusControllerImpl/ProgressWindow.m +++ b/submodules/OverlayStatusController/Impl/Sources/OverlayStatusControllerImpl/ProgressWindow.m @@ -127,7 +127,7 @@ static bool ProgressWindowIsLight = true; [self dismiss:animated completion:nil]; } -- (void)dismiss:(bool)animated completion:(void (^)())completion +- (void)dismiss:(bool)animated completion:(void (^)(void))completion { if (animated) { diff --git a/submodules/OverlayStatusController/Impl/Sources/OverlayStatusControllerImpl/ProxyWindow.m b/submodules/OverlayStatusController/Impl/Sources/OverlayStatusControllerImpl/ProxyWindow.m index c881313f0d..d4dcd5e792 100644 --- a/submodules/OverlayStatusController/Impl/Sources/OverlayStatusControllerImpl/ProxyWindow.m +++ b/submodules/OverlayStatusController/Impl/Sources/OverlayStatusControllerImpl/ProxyWindow.m @@ -117,8 +117,6 @@ static void drawSvgPath(CGContextRef context, NSString *path) { } } -static bool ProxyWindowIsLight = true; - @interface ProxySpinnerView : UIView @property (nonatomic, copy) void (^onSuccess)(void); diff --git a/submodules/PassportUI/BUILD b/submodules/PassportUI/BUILD index 76aba34269..ab6d2f27cd 100644 --- a/submodules/PassportUI/BUILD +++ b/submodules/PassportUI/BUILD @@ -10,6 +10,7 @@ swift_library( "-warnings-as-errors", ], deps = [ + "//submodules/SSignalKit/SSignalKit", "//submodules/SSignalKit/SwiftSignalKit:SwiftSignalKit", "//submodules/AsyncDisplayKit:AsyncDisplayKit", "//submodules/Display:Display", diff --git a/submodules/PassportUI/Sources/LegacySecureIdAttachmentMenu.swift b/submodules/PassportUI/Sources/LegacySecureIdAttachmentMenu.swift index a6ec3524db..a3ef9dc4fc 100644 --- a/submodules/PassportUI/Sources/LegacySecureIdAttachmentMenu.swift +++ b/submodules/PassportUI/Sources/LegacySecureIdAttachmentMenu.swift @@ -2,6 +2,7 @@ import Foundation import UIKit import LegacyComponents import Display +import SSignalKit import SwiftSignalKit import Postbox import TelegramCore diff --git a/submodules/ReactionSelectionNode/Sources/PremiumStarsNode.swift b/submodules/ReactionSelectionNode/Sources/PremiumStarsNode.swift index d368fcad17..089f2c7c1d 100644 --- a/submodules/ReactionSelectionNode/Sources/PremiumStarsNode.swift +++ b/submodules/ReactionSelectionNode/Sources/PremiumStarsNode.swift @@ -1,4 +1,5 @@ import Foundation +import UIKit import AsyncDisplayKit import Display import SwiftSignalKit diff --git a/submodules/ReactionSelectionNode/Sources/ReactionContextBackgroundNode.swift b/submodules/ReactionSelectionNode/Sources/ReactionContextBackgroundNode.swift index 4ea83d836d..cdeec808b3 100644 --- a/submodules/ReactionSelectionNode/Sources/ReactionContextBackgroundNode.swift +++ b/submodules/ReactionSelectionNode/Sources/ReactionContextBackgroundNode.swift @@ -1,4 +1,5 @@ import Foundation +import UIKit import AsyncDisplayKit import Display import TelegramPresentationData diff --git a/submodules/ReactionSelectionNode/Sources/ReactionContextNode.swift b/submodules/ReactionSelectionNode/Sources/ReactionContextNode.swift index e27322d968..daa91065a2 100644 --- a/submodules/ReactionSelectionNode/Sources/ReactionContextNode.swift +++ b/submodules/ReactionSelectionNode/Sources/ReactionContextNode.swift @@ -1,4 +1,5 @@ import Foundation +import UIKit import AsyncDisplayKit import Display import AnimatedStickerNode diff --git a/submodules/ReactionSelectionNode/Sources/ReactionSelectionNode.swift b/submodules/ReactionSelectionNode/Sources/ReactionSelectionNode.swift index bc4ae9b5e8..5d4ea274ba 100644 --- a/submodules/ReactionSelectionNode/Sources/ReactionSelectionNode.swift +++ b/submodules/ReactionSelectionNode/Sources/ReactionSelectionNode.swift @@ -1,4 +1,5 @@ import Foundation +import UIKit import AsyncDisplayKit import Display import Postbox diff --git a/submodules/SSignalKit/SSignalKit/Source/SSignalKit/SSignal.h b/submodules/SSignalKit/SSignalKit/Source/SSignalKit/SSignal.h index ef3cf28a3c..aa5eddfc4d 100644 --- a/submodules/SSignalKit/SSignalKit/Source/SSignalKit/SSignal.h +++ b/submodules/SSignalKit/SSignalKit/Source/SSignalKit/SSignal.h @@ -1,3 +1,4 @@ +#import #import @interface SSignal : NSObject diff --git a/submodules/SSignalKit/SSignalKit/Source/SSignalKit/SSubscriber.h b/submodules/SSignalKit/SSignalKit/Source/SSignalKit/SSubscriber.h index fdf0460993..6f0bda89e0 100644 --- a/submodules/SSignalKit/SSignalKit/Source/SSignalKit/SSubscriber.h +++ b/submodules/SSignalKit/SSignalKit/Source/SSignalKit/SSubscriber.h @@ -1,3 +1,4 @@ +#import #import @interface SSubscriber : NSObject diff --git a/submodules/ShareItems/BUILD b/submodules/ShareItems/BUILD index 313b5ce3cc..a463845e29 100644 --- a/submodules/ShareItems/BUILD +++ b/submodules/ShareItems/BUILD @@ -10,6 +10,7 @@ swift_library( "-warnings-as-errors", ], deps = [ + "//submodules/SSignalKit/SSignalKit", "//submodules/SSignalKit/SwiftSignalKit:SwiftSignalKit", "//submodules/Postbox:Postbox", "//submodules/TelegramCore:TelegramCore", diff --git a/submodules/ShareItems/Sources/ShareItems.swift b/submodules/ShareItems/Sources/ShareItems.swift index 178aba7e49..9f1b75228f 100644 --- a/submodules/ShareItems/Sources/ShareItems.swift +++ b/submodules/ShareItems/Sources/ShareItems.swift @@ -10,6 +10,8 @@ import LocalMediaResources import AVFoundation import LegacyComponents import ShareItemsImpl +import UIKit +import SSignalKit public enum UnpreparedShareItemContent { case contact(DeviceContactExtendedData) @@ -206,6 +208,13 @@ private func preparedShareItem(postbox: Postbox, network: Network, to peerId: Pe } } if isGif { + #if DEBUG + let signal = SSignal(generator: { _ in + return SBlockDisposable(block: {}) + }) + let _ = signal.start(next: nil, error: nil, completed: nil) + #endif + let convertedData = Signal<(Data, CGSize, Double, Bool), NoError> { subscriber in let disposable = MetaDisposable() let signalDisposable = TGGifConverter.convertGif(toMp4: data).start(next: { next in diff --git a/submodules/ShimmerEffect/Sources/StickerShimmerEffectNode.swift b/submodules/ShimmerEffect/Sources/StickerShimmerEffectNode.swift index 0fd541b28d..aa768f8f92 100644 --- a/submodules/ShimmerEffect/Sources/StickerShimmerEffectNode.swift +++ b/submodules/ShimmerEffect/Sources/StickerShimmerEffectNode.swift @@ -1,5 +1,6 @@ import Foundation import AsyncDisplayKit +import UIKit import Display import GenerateStickerPlaceholderImage diff --git a/submodules/SlotMachineAnimationNode/Sources/SlotMachineAnimationNode.swift b/submodules/SlotMachineAnimationNode/Sources/SlotMachineAnimationNode.swift index def630fba6..4b96e9d2a6 100644 --- a/submodules/SlotMachineAnimationNode/Sources/SlotMachineAnimationNode.swift +++ b/submodules/SlotMachineAnimationNode/Sources/SlotMachineAnimationNode.swift @@ -1,4 +1,5 @@ import Foundation +import UIKit import Display import AsyncDisplayKit import TelegramCore diff --git a/submodules/StatisticsUI/Sources/StoryIconNode.swift b/submodules/StatisticsUI/Sources/StoryIconNode.swift index de2f823d41..bcde70961d 100644 --- a/submodules/StatisticsUI/Sources/StoryIconNode.swift +++ b/submodules/StatisticsUI/Sources/StoryIconNode.swift @@ -1,4 +1,5 @@ import Foundation +import UIKit import Display import AsyncDisplayKit import ComponentFlow diff --git a/submodules/Stripe/BUILD b/submodules/Stripe/BUILD index e4177bfd58..f064ddd543 100644 --- a/submodules/Stripe/BUILD +++ b/submodules/Stripe/BUILD @@ -15,6 +15,7 @@ objc_library( ], copts = [ "-I{}/PublicHeaders/Stripe".format(package_name()), + "-Werror", ], sdk_frameworks = [ "Foundation", diff --git a/submodules/Stripe/PublicHeaders/Stripe/STPAPIClient.h b/submodules/Stripe/PublicHeaders/Stripe/STPAPIClient.h index f0c803097a..06962a3cc5 100755 --- a/submodules/Stripe/PublicHeaders/Stripe/STPAPIClient.h +++ b/submodules/Stripe/PublicHeaders/Stripe/STPAPIClient.h @@ -123,8 +123,6 @@ static NSString *const STPSDKVersion = @"9.1.0"; */ + (BOOL)canSubmitPaymentRequest:(PKPaymentRequest *)paymentRequest NS_AVAILABLE_IOS(8_0); -+ (BOOL)deviceSupportsApplePay; - /** * A convenience method to return a `PKPaymentRequest` with sane default values. You will still need to configure the `paymentSummaryItems` property to indicate *what the user is purchasing, as well as the optional `requiredShippingAddressFields`, `requiredBillingAddressFields`, and `shippingMethods` properties to indicate @@ -201,8 +199,6 @@ typedef void (^STPCompletionBlock)(STPToken * __nullable token, NSError * __null publishableKey:(NSString *)publishableKey completion:(nullable STPCompletionBlock)handler __attribute__((deprecated)); -+ (BOOL)deviceSupportsApplePay; - @end NS_ASSUME_NONNULL_END diff --git a/submodules/Stripe/Sources/STPAPIClient.m b/submodules/Stripe/Sources/STPAPIClient.m index bfe2ef58c9..3f5dbaca6b 100755 --- a/submodules/Stripe/Sources/STPAPIClient.m +++ b/submodules/Stripe/Sources/STPAPIClient.m @@ -242,9 +242,6 @@ static NSString *const stripeAPIVersion = @"2015-10-12"; @implementation Stripe (ApplePay) + (BOOL)canSubmitPaymentRequest:(PKPaymentRequest *)paymentRequest { - if (![self deviceSupportsApplePay]) { - return NO; - } if (paymentRequest == nil) { return NO; } @@ -256,16 +253,10 @@ static NSString *const stripeAPIVersion = @"2015-10-12"; + (NSArray *)supportedPKPaymentNetworks { NSArray *supportedNetworks = @[PKPaymentNetworkAmex, PKPaymentNetworkMasterCard, PKPaymentNetworkVisa]; - if ((&PKPaymentNetworkDiscover) != NULL) { - supportedNetworks = [supportedNetworks arrayByAddingObject:PKPaymentNetworkDiscover]; - } + supportedNetworks = [supportedNetworks arrayByAddingObject:PKPaymentNetworkDiscover]; return supportedNetworks; } -+ (BOOL)deviceSupportsApplePay { - return [PKPaymentAuthorizationViewController class] && [PKPaymentAuthorizationViewController canMakePaymentsUsingNetworks:[self supportedPKPaymentNetworks]]; -} - + (PKPaymentRequest *)paymentRequestWithMerchantIdentifier:(NSString *)merchantIdentifier { if (![PKPaymentRequest class]) { return nil; diff --git a/submodules/Stripe/Sources/STPImageLibrary.h b/submodules/Stripe/Sources/STPImageLibrary.h index af973cf9ed..a15a044a84 100755 --- a/submodules/Stripe/Sources/STPImageLibrary.h +++ b/submodules/Stripe/Sources/STPImageLibrary.h @@ -51,7 +51,6 @@ NS_ASSUME_NONNULL_BEGIN * An icon representing Visa. */ + (UIImage *)visaCardImage; -+ (UIImage *)otherCardImage; /** * An icon to use when the type of the card is unknown. diff --git a/submodules/Stripe/Sources/STPPaymentConfiguration.m b/submodules/Stripe/Sources/STPPaymentConfiguration.m index 794b9beaed..715e62b495 100755 --- a/submodules/Stripe/Sources/STPPaymentConfiguration.m +++ b/submodules/Stripe/Sources/STPPaymentConfiguration.m @@ -50,8 +50,7 @@ - (BOOL)applePayEnabled { return self.appleMerchantIdentifier && - (self.additionalPaymentMethods & STPPaymentMethodTypeApplePay) && - [Stripe deviceSupportsApplePay]; + (self.additionalPaymentMethods & STPPaymentMethodTypeApplePay); } @end diff --git a/submodules/Stripe/Sources/STPToken.m b/submodules/Stripe/Sources/STPToken.m index 1dcd8933b6..8a6928cff4 100755 --- a/submodules/Stripe/Sources/STPToken.m +++ b/submodules/Stripe/Sources/STPToken.m @@ -22,6 +22,13 @@ @implementation STPToken +- (instancetype)init { + self = [super init]; + if (self) { + } + return self; +} + - (NSString *)description { return self.tokenId ?: @"Unknown token"; } diff --git a/submodules/TelegramCallsUI/BUILD b/submodules/TelegramCallsUI/BUILD index 072d8dc935..a6ec198e91 100644 --- a/submodules/TelegramCallsUI/BUILD +++ b/submodules/TelegramCallsUI/BUILD @@ -53,6 +53,7 @@ swift_library( ":TelegramCallsUIBundle", ], deps = [ + "//submodules/SSignalKit/SSignalKit", "//submodules/SSignalKit/SwiftSignalKit:SwiftSignalKit", "//submodules/Display:Display", "//submodules/TelegramPresentationData:TelegramPresentationData", diff --git a/submodules/TelegramCallsUI/Sources/CallControllerNodeV2.swift b/submodules/TelegramCallsUI/Sources/CallControllerNodeV2.swift index e2bbc23abb..f0ea64fe0d 100644 --- a/submodules/TelegramCallsUI/Sources/CallControllerNodeV2.swift +++ b/submodules/TelegramCallsUI/Sources/CallControllerNodeV2.swift @@ -1,4 +1,5 @@ import Foundation +import UIKit import AsyncDisplayKit import Display import TelegramCore diff --git a/submodules/TelegramCallsUI/Sources/VideoChatScreenMoreMenu.swift b/submodules/TelegramCallsUI/Sources/VideoChatScreenMoreMenu.swift index 2bcbbbdcc7..92ff915aab 100644 --- a/submodules/TelegramCallsUI/Sources/VideoChatScreenMoreMenu.swift +++ b/submodules/TelegramCallsUI/Sources/VideoChatScreenMoreMenu.swift @@ -19,6 +19,7 @@ import AlertComponent import TelegramPresentationData import ComponentFlow import MultilineTextComponent +import AVFoundation private func resolvedEmojiKey(data: Data) -> [String] { let resolvedKey = stringForEmojiHashOfData(data, 4) ?? [] diff --git a/submodules/TelegramCallsUI/Sources/VideoChatScreenParticipantContextMenu.swift b/submodules/TelegramCallsUI/Sources/VideoChatScreenParticipantContextMenu.swift index 4ebe1863ad..4531a143a7 100644 --- a/submodules/TelegramCallsUI/Sources/VideoChatScreenParticipantContextMenu.swift +++ b/submodules/TelegramCallsUI/Sources/VideoChatScreenParticipantContextMenu.swift @@ -1,6 +1,7 @@ import Foundation import UIKit import Display +import SSignalKit import SwiftSignalKit import AccountContext import TelegramCore @@ -12,6 +13,7 @@ import WebSearchUI import MapResourceToAvatarSizes import LegacyUI import LegacyMediaPickerUI +import AVFoundation extension VideoChatScreenComponent.View { func openParticipantContextMenu(id: EnginePeer.Id, sourceView: ContextExtractedContentContainingView, gesture: ContextGesture?) { diff --git a/submodules/TelegramUI/Components/Chat/ManagedDiceAnimationNode/Sources/ManagedDiceAnimationNode.swift b/submodules/TelegramUI/Components/Chat/ManagedDiceAnimationNode/Sources/ManagedDiceAnimationNode.swift index 284ef98d39..7f38fa1efb 100644 --- a/submodules/TelegramUI/Components/Chat/ManagedDiceAnimationNode/Sources/ManagedDiceAnimationNode.swift +++ b/submodules/TelegramUI/Components/Chat/ManagedDiceAnimationNode/Sources/ManagedDiceAnimationNode.swift @@ -1,4 +1,5 @@ import Foundation +import UIKit import Display import AsyncDisplayKit import Postbox diff --git a/submodules/TelegramUI/Components/LegacyCamera/BUILD b/submodules/TelegramUI/Components/LegacyCamera/BUILD index b9cc01c728..7ba810fb22 100644 --- a/submodules/TelegramUI/Components/LegacyCamera/BUILD +++ b/submodules/TelegramUI/Components/LegacyCamera/BUILD @@ -10,6 +10,7 @@ swift_library( "-warnings-as-errors", ], deps = [ + "//submodules/SSignalKit/SSignalKit", "//submodules/SSignalKit/SwiftSignalKit:SwiftSignalKit", "//submodules/AsyncDisplayKit:AsyncDisplayKit", "//submodules/LegacyComponents", diff --git a/submodules/TelegramUI/Components/LegacyCamera/Sources/LegacyCamera.swift b/submodules/TelegramUI/Components/LegacyCamera/Sources/LegacyCamera.swift index eb76dd20d1..930f3250e0 100644 --- a/submodules/TelegramUI/Components/LegacyCamera/Sources/LegacyCamera.swift +++ b/submodules/TelegramUI/Components/LegacyCamera/Sources/LegacyCamera.swift @@ -4,6 +4,7 @@ import LegacyComponents import Display import TelegramCore import Postbox +import SSignalKit import SwiftSignalKit import AccountContext import ShareController diff --git a/submodules/TelegramUI/Components/PeerInfo/PeerInfoChatListPaneNode/Sources/PeerInfoChatListPaneNode.swift b/submodules/TelegramUI/Components/PeerInfo/PeerInfoChatListPaneNode/Sources/PeerInfoChatListPaneNode.swift index a36d320ea3..32e8056694 100644 --- a/submodules/TelegramUI/Components/PeerInfo/PeerInfoChatListPaneNode/Sources/PeerInfoChatListPaneNode.swift +++ b/submodules/TelegramUI/Components/PeerInfo/PeerInfoChatListPaneNode/Sources/PeerInfoChatListPaneNode.swift @@ -1,3 +1,5 @@ +import Foundation +import UIKit import AsyncDisplayKit import Display import TelegramCore diff --git a/submodules/TelegramUI/Components/PeerInfo/PeerInfoChatPaneNode/Sources/PeerInfoChatPaneNode.swift b/submodules/TelegramUI/Components/PeerInfo/PeerInfoChatPaneNode/Sources/PeerInfoChatPaneNode.swift index b00988f609..c3845d1ca8 100644 --- a/submodules/TelegramUI/Components/PeerInfo/PeerInfoChatPaneNode/Sources/PeerInfoChatPaneNode.swift +++ b/submodules/TelegramUI/Components/PeerInfo/PeerInfoChatPaneNode/Sources/PeerInfoChatPaneNode.swift @@ -1,3 +1,4 @@ +import UIKit import AsyncDisplayKit import Display import TelegramCore diff --git a/submodules/TelegramUI/Components/PeerInfo/PeerInfoCoverComponent/Sources/PeerInfoCoverComponent.swift b/submodules/TelegramUI/Components/PeerInfo/PeerInfoCoverComponent/Sources/PeerInfoCoverComponent.swift index 09faa26854..24b3b1e1ac 100644 --- a/submodules/TelegramUI/Components/PeerInfo/PeerInfoCoverComponent/Sources/PeerInfoCoverComponent.swift +++ b/submodules/TelegramUI/Components/PeerInfo/PeerInfoCoverComponent/Sources/PeerInfoCoverComponent.swift @@ -1,4 +1,5 @@ import Foundation +import UIKit import AsyncDisplayKit import Display import ComponentFlow diff --git a/submodules/TelegramUI/Components/PeerInfo/PeerInfoCoverComponent/Sources/PeerInfoGiftsCoverComponent.swift b/submodules/TelegramUI/Components/PeerInfo/PeerInfoCoverComponent/Sources/PeerInfoGiftsCoverComponent.swift index 4f32eca5a3..73bfa1e729 100644 --- a/submodules/TelegramUI/Components/PeerInfo/PeerInfoCoverComponent/Sources/PeerInfoGiftsCoverComponent.swift +++ b/submodules/TelegramUI/Components/PeerInfo/PeerInfoCoverComponent/Sources/PeerInfoGiftsCoverComponent.swift @@ -1,4 +1,5 @@ import Foundation +import UIKit import AsyncDisplayKit import Display import ComponentFlow diff --git a/submodules/TelegramUI/Components/PeerInfo/PeerInfoPaneNode/Sources/PeerInfoPaneNode.swift b/submodules/TelegramUI/Components/PeerInfo/PeerInfoPaneNode/Sources/PeerInfoPaneNode.swift index d07d0edd5d..5d1481f5c1 100644 --- a/submodules/TelegramUI/Components/PeerInfo/PeerInfoPaneNode/Sources/PeerInfoPaneNode.swift +++ b/submodules/TelegramUI/Components/PeerInfo/PeerInfoPaneNode/Sources/PeerInfoPaneNode.swift @@ -2,6 +2,7 @@ import SwiftSignalKit import Postbox import TelegramCore import AsyncDisplayKit +import UIKit import Display import TelegramPresentationData diff --git a/submodules/TelegramUI/Components/PeerInfo/PeerInfoScreen/BUILD b/submodules/TelegramUI/Components/PeerInfo/PeerInfoScreen/BUILD index a86f77797d..12e58078eb 100644 --- a/submodules/TelegramUI/Components/PeerInfo/PeerInfoScreen/BUILD +++ b/submodules/TelegramUI/Components/PeerInfo/PeerInfoScreen/BUILD @@ -103,6 +103,7 @@ swift_library( "//submodules/StickerResources", "//submodules/TelegramUI/Components/StorageUsageScreen", "//submodules/TelegramUI/Components/Stories/StoryContainerScreen", + "//submodules/SSignalKit/SSignalKit", "//submodules/SSignalKit/SwiftSignalKit", "//submodules/TelegramBaseController", "//submodules/TelegramCallsUI", diff --git a/submodules/TelegramUI/Components/PeerInfo/PeerInfoScreen/Sources/ListItems/PeerInfoScreenActionItem.swift b/submodules/TelegramUI/Components/PeerInfo/PeerInfoScreen/Sources/ListItems/PeerInfoScreenActionItem.swift index 4114c252b0..c971e48523 100644 --- a/submodules/TelegramUI/Components/PeerInfo/PeerInfoScreen/Sources/ListItems/PeerInfoScreenActionItem.swift +++ b/submodules/TelegramUI/Components/PeerInfo/PeerInfoScreen/Sources/ListItems/PeerInfoScreenActionItem.swift @@ -1,3 +1,5 @@ +import Foundation +import UIKit import AsyncDisplayKit import Display import SwiftSignalKit diff --git a/submodules/TelegramUI/Components/PeerInfo/PeerInfoScreen/Sources/ListItems/PeerInfoScreenCommentItem.swift b/submodules/TelegramUI/Components/PeerInfo/PeerInfoScreen/Sources/ListItems/PeerInfoScreenCommentItem.swift index f6a26f160a..0daf6094b4 100644 --- a/submodules/TelegramUI/Components/PeerInfo/PeerInfoScreen/Sources/ListItems/PeerInfoScreenCommentItem.swift +++ b/submodules/TelegramUI/Components/PeerInfo/PeerInfoScreen/Sources/ListItems/PeerInfoScreenCommentItem.swift @@ -1,3 +1,5 @@ +import Foundation +import UIKit import AsyncDisplayKit import Display import TelegramPresentationData diff --git a/submodules/TelegramUI/Components/PeerInfo/PeerInfoScreen/Sources/ListItems/PeerInfoScreenDisclosureEncryptionKeyItem.swift b/submodules/TelegramUI/Components/PeerInfo/PeerInfoScreen/Sources/ListItems/PeerInfoScreenDisclosureEncryptionKeyItem.swift index 87436a17f4..ed92e4af43 100644 --- a/submodules/TelegramUI/Components/PeerInfo/PeerInfoScreen/Sources/ListItems/PeerInfoScreenDisclosureEncryptionKeyItem.swift +++ b/submodules/TelegramUI/Components/PeerInfo/PeerInfoScreen/Sources/ListItems/PeerInfoScreenDisclosureEncryptionKeyItem.swift @@ -1,3 +1,5 @@ +import Foundation +import UIKit import AsyncDisplayKit import Display import TelegramPresentationData diff --git a/submodules/TelegramUI/Components/PeerInfo/PeerInfoScreen/Sources/ListItems/PeerInfoScreenDisclosureItem.swift b/submodules/TelegramUI/Components/PeerInfo/PeerInfoScreen/Sources/ListItems/PeerInfoScreenDisclosureItem.swift index b755bfe8d5..977ecb3c81 100644 --- a/submodules/TelegramUI/Components/PeerInfo/PeerInfoScreen/Sources/ListItems/PeerInfoScreenDisclosureItem.swift +++ b/submodules/TelegramUI/Components/PeerInfo/PeerInfoScreen/Sources/ListItems/PeerInfoScreenDisclosureItem.swift @@ -1,3 +1,5 @@ +import Foundation +import UIKit import AsyncDisplayKit import Display import SwiftSignalKit diff --git a/submodules/TelegramUI/Components/PeerInfo/PeerInfoScreen/Sources/ListItems/PeerInfoScreenHeaderItem.swift b/submodules/TelegramUI/Components/PeerInfo/PeerInfoScreen/Sources/ListItems/PeerInfoScreenHeaderItem.swift index eb69f67ad2..81f782df40 100644 --- a/submodules/TelegramUI/Components/PeerInfo/PeerInfoScreen/Sources/ListItems/PeerInfoScreenHeaderItem.swift +++ b/submodules/TelegramUI/Components/PeerInfo/PeerInfoScreen/Sources/ListItems/PeerInfoScreenHeaderItem.swift @@ -1,3 +1,5 @@ +import Foundation +import UIKit import AsyncDisplayKit import Display import TelegramPresentationData diff --git a/submodules/TelegramUI/Components/PeerInfo/PeerInfoScreen/Sources/ListItems/PeerInfoScreenSelectableBackgroundNode.swift b/submodules/TelegramUI/Components/PeerInfo/PeerInfoScreen/Sources/ListItems/PeerInfoScreenSelectableBackgroundNode.swift index a0864a4e26..29f41dc38a 100644 --- a/submodules/TelegramUI/Components/PeerInfo/PeerInfoScreen/Sources/ListItems/PeerInfoScreenSelectableBackgroundNode.swift +++ b/submodules/TelegramUI/Components/PeerInfo/PeerInfoScreen/Sources/ListItems/PeerInfoScreenSelectableBackgroundNode.swift @@ -1,3 +1,5 @@ +import Foundation +import UIKit import AsyncDisplayKit import Display import TelegramPresentationData diff --git a/submodules/TelegramUI/Components/PeerInfo/PeerInfoScreen/Sources/ListItems/PeerInfoScreenSwitchItem.swift b/submodules/TelegramUI/Components/PeerInfo/PeerInfoScreen/Sources/ListItems/PeerInfoScreenSwitchItem.swift index cc01acfe54..c8338793f0 100644 --- a/submodules/TelegramUI/Components/PeerInfo/PeerInfoScreen/Sources/ListItems/PeerInfoScreenSwitchItem.swift +++ b/submodules/TelegramUI/Components/PeerInfo/PeerInfoScreen/Sources/ListItems/PeerInfoScreenSwitchItem.swift @@ -1,3 +1,5 @@ +import Foundation +import UIKit import AsyncDisplayKit import Display import TelegramPresentationData diff --git a/submodules/TelegramUI/Components/PeerInfo/PeerInfoScreen/Sources/Panes/PeerInfoGifPaneNode.swift b/submodules/TelegramUI/Components/PeerInfo/PeerInfoScreen/Sources/Panes/PeerInfoGifPaneNode.swift index 3fb21fe5ed..e5f376cf46 100644 --- a/submodules/TelegramUI/Components/PeerInfo/PeerInfoScreen/Sources/Panes/PeerInfoGifPaneNode.swift +++ b/submodules/TelegramUI/Components/PeerInfo/PeerInfoScreen/Sources/Panes/PeerInfoGifPaneNode.swift @@ -1,4 +1,5 @@ import AsyncDisplayKit +import UIKit import Display import TelegramCore import SwiftSignalKit diff --git a/submodules/TelegramUI/Components/PeerInfo/PeerInfoScreen/Sources/Panes/PeerInfoGroupsInCommonPaneNode.swift b/submodules/TelegramUI/Components/PeerInfo/PeerInfoScreen/Sources/Panes/PeerInfoGroupsInCommonPaneNode.swift index c09a19046e..bc83ff6839 100644 --- a/submodules/TelegramUI/Components/PeerInfo/PeerInfoScreen/Sources/Panes/PeerInfoGroupsInCommonPaneNode.swift +++ b/submodules/TelegramUI/Components/PeerInfo/PeerInfoScreen/Sources/Panes/PeerInfoGroupsInCommonPaneNode.swift @@ -1,3 +1,5 @@ +import Foundation +import UIKit import AsyncDisplayKit import Display import TelegramCore diff --git a/submodules/TelegramUI/Components/PeerInfo/PeerInfoScreen/Sources/Panes/PeerInfoListPaneNode.swift b/submodules/TelegramUI/Components/PeerInfo/PeerInfoScreen/Sources/Panes/PeerInfoListPaneNode.swift index f8a979a589..41133017a6 100644 --- a/submodules/TelegramUI/Components/PeerInfo/PeerInfoScreen/Sources/Panes/PeerInfoListPaneNode.swift +++ b/submodules/TelegramUI/Components/PeerInfo/PeerInfoScreen/Sources/Panes/PeerInfoListPaneNode.swift @@ -1,3 +1,4 @@ +import UIKit import AsyncDisplayKit import Display import TelegramCore diff --git a/submodules/TelegramUI/Components/PeerInfo/PeerInfoScreen/Sources/Panes/PeerInfoMembersPane.swift b/submodules/TelegramUI/Components/PeerInfo/PeerInfoScreen/Sources/Panes/PeerInfoMembersPane.swift index 0d013cd5c5..ba9e3802b9 100644 --- a/submodules/TelegramUI/Components/PeerInfo/PeerInfoScreen/Sources/Panes/PeerInfoMembersPane.swift +++ b/submodules/TelegramUI/Components/PeerInfo/PeerInfoScreen/Sources/Panes/PeerInfoMembersPane.swift @@ -1,3 +1,5 @@ +import Foundation +import UIKit import AsyncDisplayKit import Display import TelegramCore diff --git a/submodules/TelegramUI/Components/PeerInfo/PeerInfoScreen/Sources/Panes/PeerInfoRecommendedPeersPane.swift b/submodules/TelegramUI/Components/PeerInfo/PeerInfoScreen/Sources/Panes/PeerInfoRecommendedPeersPane.swift index 7db1a84a53..4db8557ff1 100644 --- a/submodules/TelegramUI/Components/PeerInfo/PeerInfoScreen/Sources/Panes/PeerInfoRecommendedPeersPane.swift +++ b/submodules/TelegramUI/Components/PeerInfo/PeerInfoScreen/Sources/Panes/PeerInfoRecommendedPeersPane.swift @@ -1,3 +1,5 @@ +import Foundation +import UIKit import AsyncDisplayKit import Display import ComponentFlow diff --git a/submodules/TelegramUI/Components/PeerInfo/PeerInfoScreen/Sources/PeerInfoScreenAvatarSetup.swift b/submodules/TelegramUI/Components/PeerInfo/PeerInfoScreen/Sources/PeerInfoScreenAvatarSetup.swift index 57ff0e48e5..88d95df359 100644 --- a/submodules/TelegramUI/Components/PeerInfo/PeerInfoScreen/Sources/PeerInfoScreenAvatarSetup.swift +++ b/submodules/TelegramUI/Components/PeerInfo/PeerInfoScreen/Sources/PeerInfoScreenAvatarSetup.swift @@ -1,6 +1,7 @@ import Foundation import UIKit import Display +import SSignalKit import SwiftSignalKit import TelegramCore import AccountContext diff --git a/submodules/TelegramUI/Components/PeerInfo/PeerInfoScreen/Sources/PeerInfoScreenMultilineInputtem.swift b/submodules/TelegramUI/Components/PeerInfo/PeerInfoScreen/Sources/PeerInfoScreenMultilineInputtem.swift index 9a639d6e13..1bf2675c0d 100644 --- a/submodules/TelegramUI/Components/PeerInfo/PeerInfoScreen/Sources/PeerInfoScreenMultilineInputtem.swift +++ b/submodules/TelegramUI/Components/PeerInfo/PeerInfoScreen/Sources/PeerInfoScreenMultilineInputtem.swift @@ -1,3 +1,5 @@ +import Foundation +import UIKit import AsyncDisplayKit import Display import TelegramPresentationData diff --git a/submodules/TelegramUI/Components/PeerInfo/PeerInfoStoryGridScreen/Sources/PeerInfoStoryGridScreen.swift b/submodules/TelegramUI/Components/PeerInfo/PeerInfoStoryGridScreen/Sources/PeerInfoStoryGridScreen.swift index dbbf2ff7e3..64d4b4c7ce 100644 --- a/submodules/TelegramUI/Components/PeerInfo/PeerInfoStoryGridScreen/Sources/PeerInfoStoryGridScreen.swift +++ b/submodules/TelegramUI/Components/PeerInfo/PeerInfoStoryGridScreen/Sources/PeerInfoStoryGridScreen.swift @@ -1,4 +1,5 @@ import Foundation +import UIKit import AsyncDisplayKit import Display import SwiftSignalKit diff --git a/submodules/TelegramUI/Components/PeerInfo/PeerInfoStoryGridScreen/Sources/StorySearchGridScreen.swift b/submodules/TelegramUI/Components/PeerInfo/PeerInfoStoryGridScreen/Sources/StorySearchGridScreen.swift index 1cdc3d2a22..b6d163bd78 100644 --- a/submodules/TelegramUI/Components/PeerInfo/PeerInfoStoryGridScreen/Sources/StorySearchGridScreen.swift +++ b/submodules/TelegramUI/Components/PeerInfo/PeerInfoStoryGridScreen/Sources/StorySearchGridScreen.swift @@ -1,4 +1,5 @@ import Foundation +import UIKit import AsyncDisplayKit import Display import SwiftSignalKit diff --git a/submodules/TelegramUI/Components/PeerInfo/PeerInfoVisualMediaPaneNode/Sources/PeerInfoGiftsPaneNode.swift b/submodules/TelegramUI/Components/PeerInfo/PeerInfoVisualMediaPaneNode/Sources/PeerInfoGiftsPaneNode.swift index 8fe02c1c2b..7588e832cc 100644 --- a/submodules/TelegramUI/Components/PeerInfo/PeerInfoVisualMediaPaneNode/Sources/PeerInfoGiftsPaneNode.swift +++ b/submodules/TelegramUI/Components/PeerInfo/PeerInfoVisualMediaPaneNode/Sources/PeerInfoGiftsPaneNode.swift @@ -1,4 +1,5 @@ import AsyncDisplayKit +import UIKit import Display import ComponentFlow import TelegramCore diff --git a/submodules/TelegramUI/Components/PeerInfo/PeerInfoVisualMediaPaneNode/Sources/PeerInfoStoryPaneNode.swift b/submodules/TelegramUI/Components/PeerInfo/PeerInfoVisualMediaPaneNode/Sources/PeerInfoStoryPaneNode.swift index d7c31a35d2..e27a8c2ab5 100644 --- a/submodules/TelegramUI/Components/PeerInfo/PeerInfoVisualMediaPaneNode/Sources/PeerInfoStoryPaneNode.swift +++ b/submodules/TelegramUI/Components/PeerInfo/PeerInfoVisualMediaPaneNode/Sources/PeerInfoStoryPaneNode.swift @@ -1,5 +1,6 @@ import AsyncDisplayKit import AVFoundation +import UIKit import Display import TelegramCore import SwiftSignalKit diff --git a/submodules/TelegramUI/Components/PeerInfo/PeerInfoVisualMediaPaneNode/Sources/PeerInfoVisualMediaPaneNode.swift b/submodules/TelegramUI/Components/PeerInfo/PeerInfoVisualMediaPaneNode/Sources/PeerInfoVisualMediaPaneNode.swift index 9602dd427f..5a9cd48273 100644 --- a/submodules/TelegramUI/Components/PeerInfo/PeerInfoVisualMediaPaneNode/Sources/PeerInfoVisualMediaPaneNode.swift +++ b/submodules/TelegramUI/Components/PeerInfo/PeerInfoVisualMediaPaneNode/Sources/PeerInfoVisualMediaPaneNode.swift @@ -1,5 +1,6 @@ import AsyncDisplayKit import AVFoundation +import UIKit import Display import TelegramCore import SwiftSignalKit diff --git a/submodules/TelegramUI/Components/PeerManagement/OldChannelsController/Sources/OldChannelsSearch.swift b/submodules/TelegramUI/Components/PeerManagement/OldChannelsController/Sources/OldChannelsSearch.swift index bfb63c09c7..c26dd80237 100644 --- a/submodules/TelegramUI/Components/PeerManagement/OldChannelsController/Sources/OldChannelsSearch.swift +++ b/submodules/TelegramUI/Components/PeerManagement/OldChannelsController/Sources/OldChannelsSearch.swift @@ -15,8 +15,8 @@ import ChatListSearchItemHeader import ContactsPeerItem //Xcode 16 -#if canImport(ContactProvider) -extension NavigationBarSearchContentNode: @retroactive ItemListControllerSearchNavigationContentNode { +#if SWIFT_PACKAGE +extension NavigationBarSearchContentNode: ItemListControllerSearchNavigationContentNode { public func activate() { } @@ -27,7 +27,7 @@ extension NavigationBarSearchContentNode: @retroactive ItemListControllerSearchN } } #else -extension NavigationBarSearchContentNode: ItemListControllerSearchNavigationContentNode { +extension NavigationBarSearchContentNode: @retroactive ItemListControllerSearchNavigationContentNode { public func activate() { } diff --git a/submodules/TelegramUI/Components/Resources/FetchVideoMediaResource/BUILD b/submodules/TelegramUI/Components/Resources/FetchVideoMediaResource/BUILD index 1fc9bca113..e389a0aec3 100644 --- a/submodules/TelegramUI/Components/Resources/FetchVideoMediaResource/BUILD +++ b/submodules/TelegramUI/Components/Resources/FetchVideoMediaResource/BUILD @@ -11,6 +11,7 @@ swift_library( ], deps = [ "//submodules/Postbox", + "//submodules/SSignalKit/SSignalKit", "//submodules/SSignalKit/SwiftSignalKit", "//submodules/TelegramCore", "//submodules/LegacyComponents", diff --git a/submodules/TelegramUI/Components/Resources/FetchVideoMediaResource/Sources/FetchVideoMediaResource.swift b/submodules/TelegramUI/Components/Resources/FetchVideoMediaResource/Sources/FetchVideoMediaResource.swift index e02e775051..6b0355b5bd 100644 --- a/submodules/TelegramUI/Components/Resources/FetchVideoMediaResource/Sources/FetchVideoMediaResource.swift +++ b/submodules/TelegramUI/Components/Resources/FetchVideoMediaResource/Sources/FetchVideoMediaResource.swift @@ -1,6 +1,7 @@ import Foundation import UIKit import Postbox +import SSignalKit import SwiftSignalKit import TelegramCore import LegacyComponents @@ -785,7 +786,7 @@ public func fetchLocalFileGifMediaResource(resource: LocalFileGifMediaResource) let disposable = MetaDisposable() if let data = try? Data(contentsOf: URL(fileURLWithPath: resource.path), options: Data.ReadingOptions.mappedIfSafe) { - let signal = TGGifConverter.convertGif(toMp4: data)! + let signal = TGGifConverter.convertGif(toMp4: data) let signalDisposable = signal.start(next: { next in if let result = next as? NSDictionary, let path = result["path"] as? String { var value = stat() diff --git a/submodules/TelegramUI/Components/SavedMessages/SavedMessagesScreen/Sources/SavedMessagesScreen.swift b/submodules/TelegramUI/Components/SavedMessages/SavedMessagesScreen/Sources/SavedMessagesScreen.swift index 45de9284bf..33399c77a3 100644 --- a/submodules/TelegramUI/Components/SavedMessages/SavedMessagesScreen/Sources/SavedMessagesScreen.swift +++ b/submodules/TelegramUI/Components/SavedMessages/SavedMessagesScreen/Sources/SavedMessagesScreen.swift @@ -1,4 +1,5 @@ import Foundation +import UIKit import AsyncDisplayKit import Display import ComponentFlow diff --git a/submodules/TelegramUI/Components/Settings/WallpaperGridScreen/Sources/ThemeGridController.swift b/submodules/TelegramUI/Components/Settings/WallpaperGridScreen/Sources/ThemeGridController.swift index 942def632c..bd601204c0 100644 --- a/submodules/TelegramUI/Components/Settings/WallpaperGridScreen/Sources/ThemeGridController.swift +++ b/submodules/TelegramUI/Components/Settings/WallpaperGridScreen/Sources/ThemeGridController.swift @@ -16,6 +16,7 @@ import HexColor import PresentationDataUtils import MediaPickerUI import WallpaperGalleryScreen +import Photos public enum WallpaperSelectionResult { case remove diff --git a/submodules/TelegramUI/Components/TelegramAccountAuxiliaryMethods/Sources/TelegramAccountAuxiliaryMethods.swift b/submodules/TelegramUI/Components/TelegramAccountAuxiliaryMethods/Sources/TelegramAccountAuxiliaryMethods.swift index b7f6cfdd89..3f6203887f 100644 --- a/submodules/TelegramUI/Components/TelegramAccountAuxiliaryMethods/Sources/TelegramAccountAuxiliaryMethods.swift +++ b/submodules/TelegramUI/Components/TelegramAccountAuxiliaryMethods/Sources/TelegramAccountAuxiliaryMethods.swift @@ -15,6 +15,7 @@ import ICloudResources import FetchVideoMediaResource import FetchAudioMediaResource import Display +import UIKit public func makeTelegramAccountAuxiliaryMethods(uploadInBackground: ((Postbox, MediaResource) -> Signal)?) -> AccountAuxiliaryMethods { return AccountAuxiliaryMethods(fetchResource: { postbox, resource, ranges, _ in diff --git a/submodules/TelegramUniversalVideoContent/Sources/HLSVideoJSNativeContentNode.swift b/submodules/TelegramUniversalVideoContent/Sources/HLSVideoJSNativeContentNode.swift index 2115c94488..98e6a63631 100644 --- a/submodules/TelegramUniversalVideoContent/Sources/HLSVideoJSNativeContentNode.swift +++ b/submodules/TelegramUniversalVideoContent/Sources/HLSVideoJSNativeContentNode.swift @@ -4,6 +4,7 @@ import SwiftSignalKit import UniversalMediaPlayer import Postbox import TelegramCore +import UIKit import AsyncDisplayKit import AccountContext import TelegramAudio diff --git a/submodules/TelegramUniversalVideoContent/Sources/SystemVideoContent.swift b/submodules/TelegramUniversalVideoContent/Sources/SystemVideoContent.swift index 32ee7caeda..cc63966a90 100644 --- a/submodules/TelegramUniversalVideoContent/Sources/SystemVideoContent.swift +++ b/submodules/TelegramUniversalVideoContent/Sources/SystemVideoContent.swift @@ -11,6 +11,8 @@ import UniversalMediaPlayer import AccountContext import PhotoResources import RangeSet +import CoreMedia +import AVFoundation public final class SystemVideoContent: UniversalVideoContent { public let id: AnyHashable diff --git a/submodules/UIKitRuntimeUtils/BUILD b/submodules/UIKitRuntimeUtils/BUILD index d189926c6c..50ef9fac7d 100644 --- a/submodules/UIKitRuntimeUtils/BUILD +++ b/submodules/UIKitRuntimeUtils/BUILD @@ -13,7 +13,7 @@ objc_library( "Source/UIKitRuntimeUtils/*.h", ]), includes = [ - #"Source", + "Source", ], deps = [ "//submodules/AsyncDisplayKit:AsyncDisplayKit", diff --git a/submodules/Utils/ShelfPack/BUILD b/submodules/Utils/ShelfPack/BUILD index 92d0acbafe..6b266da715 100644 --- a/submodules/Utils/ShelfPack/BUILD +++ b/submodules/Utils/ShelfPack/BUILD @@ -7,6 +7,7 @@ objc_library( "Sources/**/*.m", "Sources/**/*.mm", "Sources/**/*.h", + "Sources/**/*.hpp", "Sources/**/*.cpp", ], allow_empty=True), hdrs = glob([ diff --git a/submodules/WebUI/Sources/WebAppController.swift b/submodules/WebUI/Sources/WebAppController.swift index 74924c57d8..3445a10613 100644 --- a/submodules/WebUI/Sources/WebAppController.swift +++ b/submodules/WebUI/Sources/WebAppController.swift @@ -38,6 +38,7 @@ import DeviceLocationManager import LegacyMediaPickerUI import GenerateStickerPlaceholderImage import PassKit +import Photos private let durgerKingBotIds: [Int64] = [5104055776, 2200339955] diff --git a/submodules/libphonenumber/BUILD b/submodules/libphonenumber/BUILD index 261764c043..65a98a6b27 100644 --- a/submodules/libphonenumber/BUILD +++ b/submodules/libphonenumber/BUILD @@ -16,6 +16,9 @@ objc_library( sdk_frameworks = [ "Foundation", ], + copts = [ + "-Werror", + ], visibility = [ "//visibility:public", ], diff --git a/submodules/libphonenumber/Sources/NBPhoneNumber.m b/submodules/libphonenumber/Sources/NBPhoneNumber.m index d70c71def8..c87df685c8 100755 --- a/submodules/libphonenumber/Sources/NBPhoneNumber.m +++ b/submodules/libphonenumber/Sources/NBPhoneNumber.m @@ -49,7 +49,7 @@ - (NSUInteger)hash { - NSData *selfObject = [NSKeyedArchiver archivedDataWithRootObject:self]; + NSData *selfObject = [NSKeyedArchiver archivedDataWithRootObject:self requiringSecureCoding:false error:nil]; return [selfObject hash]; } diff --git a/submodules/libphonenumber/Sources/NBPhoneNumberUtil.m b/submodules/libphonenumber/Sources/NBPhoneNumberUtil.m index 474fd77e0f..ff4f77db6b 100755 --- a/submodules/libphonenumber/Sources/NBPhoneNumberUtil.m +++ b/submodules/libphonenumber/Sources/NBPhoneNumberUtil.m @@ -3344,8 +3344,10 @@ static CTTelephonyNetworkInfo* _telephonyNetworkInfo; - (NSString *)countryCodeByCarrier { - +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" NSString *isoCode = [[self.telephonyNetworkInfo subscriberCellularProvider] isoCountryCode]; +#pragma clang diagnostic pop // The 2nd part of the if is working around an iOS 7 bug // If the SIM card is missing, iOS 7 returns an empty string instead of nil diff --git a/third-party/boost_regex/BUILD b/third-party/boost_regex/BUILD index 93b10a0232..f25b0d8f78 100644 --- a/third-party/boost_regex/BUILD +++ b/third-party/boost_regex/BUILD @@ -10,7 +10,8 @@ objc_library( "Sources/**/*.hpp", ], allow_empty=True), hdrs = glob([ - "include/boost_regex/*.h", + "include/**/*.h", + "include/**/*.hpp", ], allow_empty=True), includes = [ "include", diff --git a/third-party/webrtc/BUILD b/third-party/webrtc/BUILD index 2534145fbd..16f615376c 100644 --- a/third-party/webrtc/BUILD +++ b/third-party/webrtc/BUILD @@ -3077,7 +3077,7 @@ objc_library( "-DSCTP_PROCESS_LEVEL_LOCKS", "-D__Userspace__", "-D__Userspace_os_Darwin", - "-DPACKAGE_VERSION='\"\"'", + "-DPACKAGE_VERSION=\\\"\\\"", "-DHAVE_SCTP", "-DWEBRTC_HAVE_DCSCTP", "-DWEBRTC_HAVE_SCTP", @@ -3141,7 +3141,7 @@ objc_library( "-DSCTP_PROCESS_LEVEL_LOCKS", "-D__Userspace__", "-D__Userspace_os_Darwin", - "-DPACKAGE_VERSION='\"\"'", + "-DPACKAGE_VERSION=\\\"\\\"", "-DHAVE_SCTP", "-DWEBRTC_HAVE_DCSCTP", "-DWEBRTC_HAVE_SCTP", diff --git a/third-party/webrtc/libsrtp/BUILD b/third-party/webrtc/libsrtp/BUILD index 9ff70f5929..bc29d57cdb 100644 --- a/third-party/webrtc/libsrtp/BUILD +++ b/third-party/webrtc/libsrtp/BUILD @@ -113,7 +113,7 @@ cc_library( "-DHAVE_NETINET_IN_H", "-DHAVE_SYS_TYPES_H", "-DHAVE_UNISTD_H", - "-DPACKAGE_STRING='\"\"'", + "-DPACKAGE_STRING=\\\"\\\"", "-DHAVE_SCTP", "-DWEBRTC_HAVE_DCSCTP", "-DWEBRTC_HAVE_SCTP",