diff --git a/.gitignore b/.gitignore index c70c75cf64..f003d00dcb 100644 --- a/.gitignore +++ b/.gitignore @@ -61,3 +61,5 @@ bazel-testlogs/* */*.swp build-input/data build-input/data/* +build-input/gen +build-input/gen/* diff --git a/Makefile b/Makefile index ab295d80f4..28e255e3b1 100644 --- a/Makefile +++ b/Makefile @@ -39,6 +39,7 @@ BUCK_OPTIONS=\ --config custom.developmentProvisioningProfileWatchExtension="${DEVELOPMENT_PROVISIONING_PROFILE_WATCH_EXTENSION}" \ --config custom.distributionProvisioningProfileWatchExtension="${DISTRIBUTION_PROVISIONING_PROFILE_WATCH_EXTENSION}" +BAZEL=$(shell which bazel) build_arm64: check_env $(BUCK) build \ @@ -395,3 +396,6 @@ project_buckdebug: check_env kill_xcode temp_project: check_env kill_xcode $(BUCK) project //Temp:workspace --config custom.mode=project ${BUCK_OPTIONS} ${BUCK_DEBUG_OPTIONS} open Temp/Telegram_Buck.xcworkspace + +tulsi_project: + ${HOME}/Applications/Tulsi.app/Contents/MacOS/Tulsi -- --verbose --genconfig Telegram/Telegram.tulsiproj:Default --bazel "${BAZEL}" --build-options ${BAZEL_OPTIONS} --startup-options ${BAZEL_OPTIONS} diff --git a/Telegram/BUILD b/Telegram/BUILD index 20c6375775..a94347b39b 100644 --- a/Telegram/BUILD +++ b/Telegram/BUILD @@ -3,16 +3,28 @@ load("@build_bazel_rules_apple//apple:ios.bzl", "ios_framework", ) +load("@build_bazel_rules_apple//apple:watchos.bzl", + "watchos_application", + "watchos_extension", +) + +load("@build_bazel_rules_apple//apple:versioning.bzl", + "apple_bundle_version", +) + load("@build_bazel_rules_swift//swift:swift.bzl", "swift_library", ) -load("//build-system:defines.bzl", - "file_from_define", +load("//build-system:info_plist_fragment.bzl", + "info_plist_fragment", ) -load(":telegram_info_plist.bzl", - "telegram_info_plist", +load( + "//build-input/data:variables.bzl", + "telegram_build_number", + "telegram_version", + "telegram_bundle_id", ) filegroup( @@ -29,6 +41,13 @@ filegroup( ], exclude = ["Telegram-iOS/*.lproj/**/.*"]), ) +filegroup( + name = "WatchAppStringResources", + srcs = glob([ + "Telegram-iOS/*.lproj/Localizable.strings", + ], exclude = ["Telegram-iOS/*.lproj/**/.*"]), +) + filegroup( name = "AppIntentVocabularyResources", srcs = glob([ @@ -46,15 +65,22 @@ filegroup( filegroup( name = "Icons", srcs = glob([ - "Telegram-iOS/Icons.xcassets", - ]), + "Telegram-iOS/Icons.xcassets/**/*", + ], exclude = ["Telegram-iOS/Icons.xcassets/**/.*"]), ) filegroup( name = "AppIcons", srcs = glob([ - "Telegram-iOS/AppIcons.xcassets", - ]), + "Telegram-iOS/AppIcons.xcassets/**/*", + ], exclude = ["Telegram-iOS/AppIcons.xcassets/**/.*"]), +) + +filegroup( + name = "DefaultAppIcon", + srcs = glob([ + "Telegram-iOS/DefaultAppIcon.xcassets/**/*", + ], exclude = ["Telegram-iOS/DefaultAppIcon.xcassets/**/.*"]), ) filegroup( @@ -84,73 +110,247 @@ swift_library( "Telegram-iOS/Application.swift", ]), data = [ - ":AppStringResources", + ":AppResources", + ":AppIntentVocabularyResources", + ":InfoPlistStringResources", ], deps = [ - "//submodules/GZip:GZip", - "//submodules/AsyncDisplayKit:AsyncDisplayKit", - "//submodules/SSignalKit/SSignalKit:SSignalKit", - "//submodules/SSignalKit/SwiftSignalKit:SwiftSignalKit", - "//submodules/ObjCRuntimeUtils:ObjCRuntimeUtils", - "//submodules/UIKitRuntimeUtils:UIKitRuntimeUtils", - "//submodules/Display:Display", - "//submodules/AlertUI:AlertUI", - "//submodules/ActivityIndicator:ActivityIndicator", - "//submodules/OverlayStatusController:OverlayStatusController", - "//submodules/openssl:openssl", - "//submodules/OpenSSLEncryptionProvider:OpenSSLEncryptionProvider", - "//submodules/WalletCore:WalletCore", - "//submodules/BuildConfig:BuildConfig", - "//submodules/AppBundle:AppBundle", - "//submodules/SolidRoundedButtonNode:SolidRoundedButtonNode", - "//submodules/Camera:Camera", - "//submodules/QrCode:QrCode", - "//submodules/MergeLists:MergeLists", - "//submodules/GlassButtonNode:GlassButtonNode", - "//submodules/UrlEscaping:UrlEscaping", - "//submodules/LocalAuth:LocalAuth", - "//submodules/ScreenCaptureDetection:ScreenCaptureDetection", - "//submodules/WalletUrl:WalletUrl", - "//submodules/ProgressNavigationButtonNode:ProgressNavigationButtonNode", - "//submodules/Markdown:Markdown", - "//submodules/StringPluralization:StringPluralization", - "//submodules/YuvConversion:YuvConversion", - "//submodules/rlottie:RLottieBinding", - "//submodules/AnimatedStickerNode:AnimatedStickerNode", - "//submodules/WalletUI:WalletUI", - "//submodules/WebsiteType:WebsiteType", - "//submodules/MtProtoKit:MtProtoKit", - "//submodules/Postbox:Postbox", - "//submodules/SyncCore:SyncCore", - "//submodules/TelegramCore:TelegramCore", - "//submodules/AccountContext:AccountContext", - "//submodules/lottie-ios:Lottie", - "//submodules/ChatListUI:ChatListUI", + "//submodules/TelegramUI:TelegramUI", ], ) -additional_info_plist = telegram_info_plist( +additional_info_plist = info_plist_fragment( name = "AdditionalInfoPlist", - app_name = "Telegram", - url_scheme = "tg", - bundle_id_define = "telegram_bundle_id", - app_version_define = "telegram_version", - build_number_define = "telegram_build_number", + template = + """ + CFBundleShortVersionString + {telegram_version} + CFBundleVersion + {telegram_build_number} + CFBundleURLTypes + + + CFBundleTypeRole + Viewer + CFBundleURLName + {telegram_bundle_id} + CFBundleURLSchemes + + telegram + + + + CFBundleTypeRole + Viewer + CFBundleURLName + {telegram_bundle_id}.ton + CFBundleURLSchemes + + ton + + + + CFBundleTypeRole + Viewer + CFBundleURLName + {telegram_bundle_id}.compatibility + CFBundleURLSchemes + + tg + + + + """.format( + telegram_version = telegram_version, + telegram_build_number = telegram_build_number, + telegram_bundle_id = telegram_bundle_id, + ) +) + +filegroup( + name = "TelegramWatchExtensionResources", + srcs = glob([ + "Watch/Extension/Resources/**/*", + ], exclude = ["Watch/Extension/Resources/**/.*"]), +) + +filegroup( + name = "TelegramWatchAppResources", + srcs = glob([ + "Watch/Extension/Resources/**/*.png", + ], exclude = ["Watch/Extension/Resources/**/.*"]), +) + +filegroup( + name = "TelegramWatchAppAssets", + srcs = glob([ + "Watch/App/Assets.xcassets/**/*", + ], exclude = ["Watch/App/Assets.xcassets/**/.*"]), +) + +filegroup( + name = "TelegramWatchAppInterface", + srcs = glob([ + "Watch/App/Base.lproj/Interface.storyboard", + ]), +) + +objc_library( + name = "TelegramWatchLib", + srcs = glob([ + "Watch/Extension/**/*.m", + "Watch/SSignalKit/**/*.m", + "Watch/Bridge/**/*.m", + "Watch/WatchCommonWatch/**/*.m", + "Watch/Extension/**/*.h", + "Watch/SSignalKit/**/*.h", + "Watch/Bridge/**/*.h", + "Watch/WatchCommonWatch/**/*.h", + ]), + copts = [ + "-DTARGET_OS_WATCH=1", + "-ITelegram/Watch", + "-ITelegram/Watch/Extension", + "-ITelegram/Watch/Bridge", + ], + sdk_frameworks = [ + "WatchKit", + "WatchConnectivity", + "ClockKit", + "UserNotifications", + "CoreLocation", + "CoreGraphics", + ], +) + +info_plist_fragment( + name = "WatchVersionInfoPlist", + template = + """ + CFBundleShortVersionString + {telegram_version} + CFBundleVersion + {telegram_build_number} + """.format( + telegram_version = telegram_version, + telegram_build_number = telegram_build_number, + ) +) + +info_plist_fragment( + name = "WatchAppNameInfoPlist", + template = + """ + CFBundleDisplayName + Telegram + """ +) + +info_plist_fragment( + name = "WatchExtensionNSExtensionInfoPlist", + template = + """ + NSExtension + + NSExtensionAttributes + + WKAppBundleIdentifier + {telegram_bundle_id}.watchkitapp + + NSExtensionPointIdentifier + com.apple.watchkit + + """.format( + telegram_bundle_id = telegram_bundle_id, + ) +) + +info_plist_fragment( + name = "WatchAppCompanionInfoPlist", + template = + """ + WKCompanionAppBundleIdentifier + {telegram_bundle_id} + """.format( + telegram_bundle_id = telegram_bundle_id, + ) +) + +watchos_extension( + name = "TelegramWatchExtension", + bundle_id = "{telegram_bundle_id}.watchkitapp.watchkitextension".format( + telegram_bundle_id = telegram_bundle_id, + ), + bundle_name = "TelegramWatchExtension", + infoplists = [ + "Watch/Extension/Info.plist", + ":WatchVersionInfoPlist", + ":WatchAppNameInfoPlist", + ":WatchExtensionNSExtensionInfoPlist", + ], + minimum_os_version = "5.0", + provisioning_profile = "//build-input/data/provisioning-profiles:WatchExtension.mobileprovision", + resources = [ + ":TelegramWatchExtensionResources", + ], + strings = [ + ":WatchAppStringResources", + ], + deps = [ + ":TelegramWatchLib", + ], +) + +watchos_application( + name = "TelegramWatchApp", + #app_icons = , + bundle_id = "{telegram_bundle_id}.watchkitapp".format( + telegram_bundle_id = telegram_bundle_id, + ), + bundle_name = "TelegramWatch", + extension = ":TelegramWatchExtension", + infoplists = [ + "Watch/App/Info.plist", + ":WatchVersionInfoPlist", + ":WatchAppNameInfoPlist", + ":WatchAppCompanionInfoPlist", + ], + minimum_os_version = "5.0", + provisioning_profile = "//build-input/data/provisioning-profiles:WatchApp.mobileprovision", + resources = [ + ":TelegramWatchAppResources", + ":TelegramWatchAppAssets", + ], + storyboards = [ + ":TelegramWatchAppInterface", + ], + strings = [ + ], ) ios_application( name = "Telegram", - bundle_id = "{telegram_bundle_id}", + bundle_id = "{telegram_bundle_id}".format( + telegram_bundle_id = telegram_bundle_id, + ), families = ["iphone", "ipad"], minimum_os_version = "9.0", - provisioning_profile = "//build-input/data/provisioning-profiles:App.mobileprovision", + provisioning_profile = "//build-input/data/provisioning-profiles:Telegram.mobileprovision", + entitlements = "Telegram-iOS/Telegram-iOS-Hockeyapp.entitlements", infoplists = [ "Info.plist", ":AdditionalInfoPlist", ], + app_icons = [ + ":DefaultAppIcon", + ], frameworks = [ #":AsyncDisplayKitFramework", ], + strings = [ + ":AppStringResources", + ], + watch_application = ":TelegramWatchApp", deps = [ ":Main", ":Lib", diff --git a/Telegram/Info.plist b/Telegram/Info.plist index 140f3cf30d..d157492d3a 100644 --- a/Telegram/Info.plist +++ b/Telegram/Info.plist @@ -14,172 +14,6 @@ ${PRODUCT_NAME} CFBundleExecutable $(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 diff --git a/Telegram/NotificationService/Attachments.m b/Telegram/NotificationService/Attachments.m index 29d498dc2d..28ae322de9 100644 --- a/Telegram/NotificationService/Attachments.m +++ b/Telegram/NotificationService/Attachments.m @@ -1,10 +1,6 @@ #import "Attachments.h" -#ifdef BUCK #import -#else -#import -#endif #import "Api.h" diff --git a/Telegram/NotificationService/Serialization.h b/Telegram/NotificationService/Serialization.h index d2beb976d6..1089c5a010 100644 --- a/Telegram/NotificationService/Serialization.h +++ b/Telegram/NotificationService/Serialization.h @@ -1,10 +1,6 @@ #import -#ifdef BUCK #import -#else -#import -#endif NS_ASSUME_NONNULL_BEGIN diff --git a/Telegram/NotificationService/StoredAccountInfos.m b/Telegram/NotificationService/StoredAccountInfos.m index 4f60eac49b..424aa3aefc 100644 --- a/Telegram/NotificationService/StoredAccountInfos.m +++ b/Telegram/NotificationService/StoredAccountInfos.m @@ -1,10 +1,6 @@ #import "StoredAccountInfos.h" -#ifdef BUCK #import -#else -#import -#endif #import diff --git a/Telegram/Telegram-iOS/Icons.xcassets/AppIconLLC.appiconset/BlueIcon@2x-1.png b/Telegram/Telegram-iOS/DefaultAppIcon.xcassets/AppIconLLC.appiconset/BlueIcon@2x-1.png similarity index 100% rename from Telegram/Telegram-iOS/Icons.xcassets/AppIconLLC.appiconset/BlueIcon@2x-1.png rename to Telegram/Telegram-iOS/DefaultAppIcon.xcassets/AppIconLLC.appiconset/BlueIcon@2x-1.png diff --git a/Telegram/Telegram-iOS/Icons.xcassets/AppIconLLC.appiconset/BlueIcon@2x.png b/Telegram/Telegram-iOS/DefaultAppIcon.xcassets/AppIconLLC.appiconset/BlueIcon@2x.png similarity index 100% rename from Telegram/Telegram-iOS/Icons.xcassets/AppIconLLC.appiconset/BlueIcon@2x.png rename to Telegram/Telegram-iOS/DefaultAppIcon.xcassets/AppIconLLC.appiconset/BlueIcon@2x.png diff --git a/Telegram/Telegram-iOS/Icons.xcassets/AppIconLLC.appiconset/BlueIcon@3x.png b/Telegram/Telegram-iOS/DefaultAppIcon.xcassets/AppIconLLC.appiconset/BlueIcon@3x.png similarity index 100% rename from Telegram/Telegram-iOS/Icons.xcassets/AppIconLLC.appiconset/BlueIcon@3x.png rename to Telegram/Telegram-iOS/DefaultAppIcon.xcassets/AppIconLLC.appiconset/BlueIcon@3x.png diff --git a/Telegram/Telegram-iOS/Icons.xcassets/AppIconLLC.appiconset/BlueIconIpad.png b/Telegram/Telegram-iOS/DefaultAppIcon.xcassets/AppIconLLC.appiconset/BlueIconIpad.png similarity index 100% rename from Telegram/Telegram-iOS/Icons.xcassets/AppIconLLC.appiconset/BlueIconIpad.png rename to Telegram/Telegram-iOS/DefaultAppIcon.xcassets/AppIconLLC.appiconset/BlueIconIpad.png diff --git a/Telegram/Telegram-iOS/Icons.xcassets/AppIconLLC.appiconset/BlueIconIpad@2x.png b/Telegram/Telegram-iOS/DefaultAppIcon.xcassets/AppIconLLC.appiconset/BlueIconIpad@2x.png similarity index 100% rename from Telegram/Telegram-iOS/Icons.xcassets/AppIconLLC.appiconset/BlueIconIpad@2x.png rename to Telegram/Telegram-iOS/DefaultAppIcon.xcassets/AppIconLLC.appiconset/BlueIconIpad@2x.png diff --git a/Telegram/Telegram-iOS/Icons.xcassets/AppIconLLC.appiconset/BlueIconLargeIpad@2x.png b/Telegram/Telegram-iOS/DefaultAppIcon.xcassets/AppIconLLC.appiconset/BlueIconLargeIpad@2x.png similarity index 100% rename from Telegram/Telegram-iOS/Icons.xcassets/AppIconLLC.appiconset/BlueIconLargeIpad@2x.png rename to Telegram/Telegram-iOS/DefaultAppIcon.xcassets/AppIconLLC.appiconset/BlueIconLargeIpad@2x.png diff --git a/Telegram/Telegram-iOS/Icons.xcassets/AppIconLLC.appiconset/BlueNotificationIcon.png b/Telegram/Telegram-iOS/DefaultAppIcon.xcassets/AppIconLLC.appiconset/BlueNotificationIcon.png similarity index 100% rename from Telegram/Telegram-iOS/Icons.xcassets/AppIconLLC.appiconset/BlueNotificationIcon.png rename to Telegram/Telegram-iOS/DefaultAppIcon.xcassets/AppIconLLC.appiconset/BlueNotificationIcon.png diff --git a/Telegram/Telegram-iOS/Icons.xcassets/AppIconLLC.appiconset/BlueNotificationIcon@2x-1.png b/Telegram/Telegram-iOS/DefaultAppIcon.xcassets/AppIconLLC.appiconset/BlueNotificationIcon@2x-1.png similarity index 100% rename from Telegram/Telegram-iOS/Icons.xcassets/AppIconLLC.appiconset/BlueNotificationIcon@2x-1.png rename to Telegram/Telegram-iOS/DefaultAppIcon.xcassets/AppIconLLC.appiconset/BlueNotificationIcon@2x-1.png diff --git a/Telegram/Telegram-iOS/Icons.xcassets/AppIconLLC.appiconset/BlueNotificationIcon@2x.png b/Telegram/Telegram-iOS/DefaultAppIcon.xcassets/AppIconLLC.appiconset/BlueNotificationIcon@2x.png similarity index 100% rename from Telegram/Telegram-iOS/Icons.xcassets/AppIconLLC.appiconset/BlueNotificationIcon@2x.png rename to Telegram/Telegram-iOS/DefaultAppIcon.xcassets/AppIconLLC.appiconset/BlueNotificationIcon@2x.png diff --git a/Telegram/Telegram-iOS/Icons.xcassets/AppIconLLC.appiconset/BlueNotificationIcon@3x.png b/Telegram/Telegram-iOS/DefaultAppIcon.xcassets/AppIconLLC.appiconset/BlueNotificationIcon@3x.png similarity index 100% rename from Telegram/Telegram-iOS/Icons.xcassets/AppIconLLC.appiconset/BlueNotificationIcon@3x.png rename to Telegram/Telegram-iOS/DefaultAppIcon.xcassets/AppIconLLC.appiconset/BlueNotificationIcon@3x.png diff --git a/Telegram/Telegram-iOS/Icons.xcassets/AppIconLLC.appiconset/Contents.json b/Telegram/Telegram-iOS/DefaultAppIcon.xcassets/AppIconLLC.appiconset/Contents.json similarity index 100% rename from Telegram/Telegram-iOS/Icons.xcassets/AppIconLLC.appiconset/Contents.json rename to Telegram/Telegram-iOS/DefaultAppIcon.xcassets/AppIconLLC.appiconset/Contents.json diff --git a/Telegram/Telegram-iOS/Icons.xcassets/AppIconLLC.appiconset/Simple-iTunesArtwork.png b/Telegram/Telegram-iOS/DefaultAppIcon.xcassets/AppIconLLC.appiconset/Simple-iTunesArtwork.png similarity index 100% rename from Telegram/Telegram-iOS/Icons.xcassets/AppIconLLC.appiconset/Simple-iTunesArtwork.png rename to Telegram/Telegram-iOS/DefaultAppIcon.xcassets/AppIconLLC.appiconset/Simple-iTunesArtwork.png diff --git a/Telegram/Telegram-iOS/Icons.xcassets/AppIconLLC.appiconset/Simple@29x29.png b/Telegram/Telegram-iOS/DefaultAppIcon.xcassets/AppIconLLC.appiconset/Simple@29x29.png similarity index 100% rename from Telegram/Telegram-iOS/Icons.xcassets/AppIconLLC.appiconset/Simple@29x29.png rename to Telegram/Telegram-iOS/DefaultAppIcon.xcassets/AppIconLLC.appiconset/Simple@29x29.png diff --git a/Telegram/Telegram-iOS/Icons.xcassets/AppIconLLC.appiconset/Simple@40x40-1.png b/Telegram/Telegram-iOS/DefaultAppIcon.xcassets/AppIconLLC.appiconset/Simple@40x40-1.png similarity index 100% rename from Telegram/Telegram-iOS/Icons.xcassets/AppIconLLC.appiconset/Simple@40x40-1.png rename to Telegram/Telegram-iOS/DefaultAppIcon.xcassets/AppIconLLC.appiconset/Simple@40x40-1.png diff --git a/Telegram/Telegram-iOS/Icons.xcassets/AppIconLLC.appiconset/Simple@58x58-1.png b/Telegram/Telegram-iOS/DefaultAppIcon.xcassets/AppIconLLC.appiconset/Simple@58x58-1.png similarity index 100% rename from Telegram/Telegram-iOS/Icons.xcassets/AppIconLLC.appiconset/Simple@58x58-1.png rename to Telegram/Telegram-iOS/DefaultAppIcon.xcassets/AppIconLLC.appiconset/Simple@58x58-1.png diff --git a/Telegram/Telegram-iOS/Icons.xcassets/AppIconLLC.appiconset/Simple@58x58.png b/Telegram/Telegram-iOS/DefaultAppIcon.xcassets/AppIconLLC.appiconset/Simple@58x58.png similarity index 100% rename from Telegram/Telegram-iOS/Icons.xcassets/AppIconLLC.appiconset/Simple@58x58.png rename to Telegram/Telegram-iOS/DefaultAppIcon.xcassets/AppIconLLC.appiconset/Simple@58x58.png diff --git a/Telegram/Telegram-iOS/Icons.xcassets/AppIconLLC.appiconset/Simple@80x80-1.png b/Telegram/Telegram-iOS/DefaultAppIcon.xcassets/AppIconLLC.appiconset/Simple@80x80-1.png similarity index 100% rename from Telegram/Telegram-iOS/Icons.xcassets/AppIconLLC.appiconset/Simple@80x80-1.png rename to Telegram/Telegram-iOS/DefaultAppIcon.xcassets/AppIconLLC.appiconset/Simple@80x80-1.png diff --git a/Telegram/Telegram-iOS/Icons.xcassets/AppIconLLC.appiconset/Simple@80x80.png b/Telegram/Telegram-iOS/DefaultAppIcon.xcassets/AppIconLLC.appiconset/Simple@80x80.png similarity index 100% rename from Telegram/Telegram-iOS/Icons.xcassets/AppIconLLC.appiconset/Simple@80x80.png rename to Telegram/Telegram-iOS/DefaultAppIcon.xcassets/AppIconLLC.appiconset/Simple@80x80.png diff --git a/Telegram/Telegram-iOS/Icons.xcassets/AppIconLLC.appiconset/Simple@87x87.png b/Telegram/Telegram-iOS/DefaultAppIcon.xcassets/AppIconLLC.appiconset/Simple@87x87.png similarity index 100% rename from Telegram/Telegram-iOS/Icons.xcassets/AppIconLLC.appiconset/Simple@87x87.png rename to Telegram/Telegram-iOS/DefaultAppIcon.xcassets/AppIconLLC.appiconset/Simple@87x87.png diff --git a/Telegram/Telegram-iOS/DefaultAppIcon.xcassets/Contents.json b/Telegram/Telegram-iOS/DefaultAppIcon.xcassets/Contents.json new file mode 100644 index 0000000000..da4a164c91 --- /dev/null +++ b/Telegram/Telegram-iOS/DefaultAppIcon.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Telegram/Telegram-iOS/Icons.xcassets/AppIcon.appiconset/Contents.json b/Telegram/Telegram-iOS/Icons.xcassets/AppIcon.appiconset/Contents.json deleted file mode 100644 index b1dd0aaddc..0000000000 --- a/Telegram/Telegram-iOS/Icons.xcassets/AppIcon.appiconset/Contents.json +++ /dev/null @@ -1,104 +0,0 @@ -{ - "images" : [ - { - "idiom" : "iphone", - "size" : "20x20", - "scale" : "2x" - }, - { - "idiom" : "iphone", - "size" : "20x20", - "scale" : "3x" - }, - { - "idiom" : "iphone", - "size" : "29x29", - "scale" : "2x" - }, - { - "idiom" : "iphone", - "size" : "29x29", - "scale" : "3x" - }, - { - "idiom" : "iphone", - "size" : "40x40", - "scale" : "2x" - }, - { - "idiom" : "iphone", - "size" : "40x40", - "scale" : "3x" - }, - { - "size" : "60x60", - "idiom" : "iphone", - "filename" : "icon@120px.png", - "scale" : "2x" - }, - { - "size" : "60x60", - "idiom" : "iphone", - "filename" : "icon@180px.png", - "scale" : "3x" - }, - { - "idiom" : "ipad", - "size" : "20x20", - "scale" : "1x" - }, - { - "idiom" : "ipad", - "size" : "20x20", - "scale" : "2x" - }, - { - "idiom" : "ipad", - "size" : "29x29", - "scale" : "1x" - }, - { - "idiom" : "ipad", - "size" : "29x29", - "scale" : "2x" - }, - { - "idiom" : "ipad", - "size" : "40x40", - "scale" : "1x" - }, - { - "idiom" : "ipad", - "size" : "40x40", - "scale" : "2x" - }, - { - "size" : "76x76", - "idiom" : "ipad", - "filename" : "icon@76px.png", - "scale" : "1x" - }, - { - "size" : "76x76", - "idiom" : "ipad", - "filename" : "icon@152px.png", - "scale" : "2x" - }, - { - "size" : "83.5x83.5", - "idiom" : "ipad", - "filename" : "icon@167px.png", - "scale" : "2x" - }, - { - "size" : "1024x1024", - "idiom" : "ios-marketing", - "filename" : "icon@1024px.png", - "scale" : "1x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/Telegram/Telegram-iOS/Icons.xcassets/AppIcon.appiconset/icon@1024px.png b/Telegram/Telegram-iOS/Icons.xcassets/AppIcon.appiconset/icon@1024px.png deleted file mode 100644 index 92875c6983..0000000000 Binary files a/Telegram/Telegram-iOS/Icons.xcassets/AppIcon.appiconset/icon@1024px.png and /dev/null differ diff --git a/Telegram/Telegram-iOS/Icons.xcassets/AppIcon.appiconset/icon@120px.png b/Telegram/Telegram-iOS/Icons.xcassets/AppIcon.appiconset/icon@120px.png deleted file mode 100644 index 5e863192c3..0000000000 Binary files a/Telegram/Telegram-iOS/Icons.xcassets/AppIcon.appiconset/icon@120px.png and /dev/null differ diff --git a/Telegram/Telegram-iOS/Icons.xcassets/AppIcon.appiconset/icon@152px.png b/Telegram/Telegram-iOS/Icons.xcassets/AppIcon.appiconset/icon@152px.png deleted file mode 100644 index 733e14018b..0000000000 Binary files a/Telegram/Telegram-iOS/Icons.xcassets/AppIcon.appiconset/icon@152px.png and /dev/null differ diff --git a/Telegram/Telegram-iOS/Icons.xcassets/AppIcon.appiconset/icon@167px.png b/Telegram/Telegram-iOS/Icons.xcassets/AppIcon.appiconset/icon@167px.png deleted file mode 100644 index 6ae90ed3cd..0000000000 Binary files a/Telegram/Telegram-iOS/Icons.xcassets/AppIcon.appiconset/icon@167px.png and /dev/null differ diff --git a/Telegram/Telegram-iOS/Icons.xcassets/AppIcon.appiconset/icon@180px.png b/Telegram/Telegram-iOS/Icons.xcassets/AppIcon.appiconset/icon@180px.png deleted file mode 100644 index 715eb5d04a..0000000000 Binary files a/Telegram/Telegram-iOS/Icons.xcassets/AppIcon.appiconset/icon@180px.png and /dev/null differ diff --git a/Telegram/Telegram-iOS/Icons.xcassets/AppIcon.appiconset/icon@76px.png b/Telegram/Telegram-iOS/Icons.xcassets/AppIcon.appiconset/icon@76px.png deleted file mode 100644 index 6473725462..0000000000 Binary files a/Telegram/Telegram-iOS/Icons.xcassets/AppIcon.appiconset/icon@76px.png and /dev/null differ diff --git a/Telegram/Telegram-iOS/Info.plist b/Telegram/Telegram-iOS/Info.plist index f66daefe49..e7ca119cd8 100644 --- a/Telegram/Telegram-iOS/Info.plist +++ b/Telegram/Telegram-iOS/Info.plist @@ -14,172 +14,6 @@ ${APP_NAME} CFBundleExecutable $(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 diff --git a/Telegram/Telegram-iOS/Telegram-iOS-Hockeyapp.entitlements b/Telegram/Telegram-iOS/Telegram-iOS-Hockeyapp.entitlements index 97391bb537..f4771f658b 100644 --- a/Telegram/Telegram-iOS/Telegram-iOS-Hockeyapp.entitlements +++ b/Telegram/Telegram-iOS/Telegram-iOS-Hockeyapp.entitlements @@ -34,5 +34,7 @@ com.apple.developer.pushkit.unrestricted-voip + application-identifier + X834Q8SBVP.org.telegram.Telegram-iOS diff --git a/Telegram/Watch/App/Info.plist b/Telegram/Watch/App/Info.plist index 883fc23d8c..d965321748 100644 --- a/Telegram/Watch/App/Info.plist +++ b/Telegram/Watch/App/Info.plist @@ -4,8 +4,6 @@ CFBundleDevelopmentRegion $(DEVELOPMENT_LANGUAGE) - CFBundleDisplayName - $(APP_NAME) CFBundleExecutable $(EXECUTABLE_NAME) CFBundleIdentifier @@ -16,10 +14,6 @@ $(PRODUCT_NAME) CFBundlePackageType APPL - CFBundleShortVersionString - $(PRODUCT_BUNDLE_SHORT_VERSION) - CFBundleVersion - ${BUILD_NUMBER} UIDeviceFamily 4 @@ -29,8 +23,6 @@ UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown - WKCompanionAppBundleIdentifier - $(APP_BUNDLE_ID) WKWatchKitApp diff --git a/Telegram/Watch/Extension/Info.plist b/Telegram/Watch/Extension/Info.plist index 4eb1d3e62e..483b83db68 100644 --- a/Telegram/Watch/Extension/Info.plist +++ b/Telegram/Watch/Extension/Info.plist @@ -4,8 +4,6 @@ CFBundleDevelopmentRegion $(DEVELOPMENT_LANGUAGE) - CFBundleDisplayName - $(APP_NAME) CFBundleExecutable $(EXECUTABLE_NAME) CFBundleIdentifier @@ -16,20 +14,6 @@ $(PRODUCT_NAME) CFBundlePackageType XPC! - CFBundleShortVersionString - $(PRODUCT_BUNDLE_SHORT_VERSION) - CFBundleVersion - ${BUILD_NUMBER} - NSExtension - - NSExtensionAttributes - - WKAppBundleIdentifier - $(APP_BUNDLE_ID).watchkitapp - - NSExtensionPointIdentifier - com.apple.watchkit - WKExtensionDelegateClassName TGExtensionDelegate diff --git a/Wallet/Wallet.tulsiproj/Configs/Default.tulsigen b/Wallet/Wallet.tulsiproj/Configs/Default.tulsigen index 48cf94fa8c..127fcc96b5 100644 --- a/Wallet/Wallet.tulsiproj/Configs/Default.tulsigen +++ b/Wallet/Wallet.tulsiproj/Configs/Default.tulsigen @@ -9,7 +9,7 @@ ], "optionSet" : { "BazelBuildOptionsDebug" : { - "p" : "$(inherited) --features=swift.use_global_module_cache --features=swift.swift.no_generated_header --spawn_strategy=standalone --strategy=SwiftCompile=standalone" + "p" : "$(inherited) --features=swift.use_global_module_cache --features=swift.swift.no_generated_header --spawn_strategy=standalone --strategy=SwiftCompile=standalone --define=wallet_bundle_id=org.ton.TonWallet-iOS" }, "BazelBuildOptionsRelease" : { "p" : "$(inherited)" diff --git a/build-system/bazel-rules/rules_apple b/build-system/bazel-rules/rules_apple index 2e869ab0be..6e1f592277 160000 --- a/build-system/bazel-rules/rules_apple +++ b/build-system/bazel-rules/rules_apple @@ -1 +1 @@ -Subproject commit 2e869ab0be373d4bd25f5da92052e3c51434e20f +Subproject commit 6e1f592277650a2727b6e84705ec1a2dc17764fa diff --git a/build-system/copy-provisioning-profiles.sh b/build-system/copy-provisioning-profiles.sh index 237223e678..cf9a1d651f 100755 --- a/build-system/copy-provisioning-profiles.sh +++ b/build-system/copy-provisioning-profiles.sh @@ -1,12 +1,54 @@ -#!/bin/zsh +#!/bin/sh set -e -if [ "$PROVISIONING_PROFILE_SEARCH_PATH" = "" ]; then - >&2 echo "PROVISIONING_PROFILE_SEARCH_PATH not defined" +if [ "$CODESIGNING_DATA_PATH" = "" ]; then + >&2 echo "CODESIGNING_DATA_PATH not defined" exit 1 fi +EXPECTED_VARIABLES=(\ + DEVELOPMENT_PROVISIONING_PROFILE_APP \ + DEVELOPMENT_PROVISIONING_PROFILE_EXTENSION_SHARE \ + DEVELOPMENT_PROVISIONING_PROFILE_EXTENSION_WIDGET \ + DEVELOPMENT_PROVISIONING_PROFILE_EXTENSION_NOTIFICATIONSERVICE \ + DEVELOPMENT_PROVISIONING_PROFILE_EXTENSION_NOTIFICATIONCONTENT \ + DEVELOPMENT_PROVISIONING_PROFILE_EXTENSION_INTENTS \ + DEVELOPMENT_PROVISIONING_PROFILE_WATCH_APP \ + DEVELOPMENT_PROVISIONING_PROFILE_WATCH_EXTENSION \ +) + +EXPECTED_VARIABLE_NAMES=(\ + Telegram \ + Share \ + Widget \ + NotificationService \ + NotificationContent \ + Intents \ + WatchApp \ + WatchExtension \ +) + +SEARCH_NAMES=() + +MISSING_VARIABLES="0" +for VARIABLE_NAME in ${EXPECTED_VARIABLES[@]}; do + if [ "${!VARIABLE_NAME}" = "" ]; then + echo "$VARIABLE_NAME not defined" + MISSING_VARIABLES="1" + fi +done + +if [ "$MISSING_VARIABLES" == "1" ]; then + exit 1 +fi + +VARIABLE_COUNT=${#EXPECTED_VARIABLES[@]} +for (( i=0; i<$VARIABLE_COUNT; i=i+1 )); do + VARIABLE_NAME="${EXPECTED_VARIABLES[$(($i))]}" + SEARCH_NAMES=("${SEARCH_NAMES[@]}" "${EXPECTED_VARIABLE_NAMES[$i]}" "${!VARIABLE_NAME}") +done + touch "build-input/data/BUILD" OUTPUT_DIRECTORY="build-input/data/provisioning-profiles" @@ -18,7 +60,6 @@ touch "$BUILD_PATH" echo "exports_files([" >> "$BUILD_PATH" -SEARCH_NAMES=($@) ELEMENT_COUNT=${#SEARCH_NAMES[@]} REMAINDER=$(($ELEMENT_COUNT % 2)) @@ -27,18 +68,17 @@ if [ $REMAINDER != 0 ]; then exit 1 fi -declare -A FOUND_PROFILES - -for PROFILE in `find "$PROVISIONING_PROFILE_SEARCH_PATH" -type f -name "*.mobileprovision"`; do +for PROFILE in `find "$CODESIGNING_DATA_PATH" -type f -name "*.mobileprovision"`; do PROFILE_DATA=$(security cms -D -i "$PROFILE") PROFILE_NAME=$(/usr/libexec/PlistBuddy -c "Print :Name" /dev/stdin <<< $(echo $PROFILE_DATA)) - for (( i=1; i<$ELEMENT_COUNT+1; i=i+2 )); do + for (( i=0; i<$ELEMENT_COUNT; i=i+2 )); do ID=${SEARCH_NAMES[$i]} SEARCH_NAME=${SEARCH_NAMES[$(($i + 1))]} if [ "$PROFILE_NAME" = "$SEARCH_NAME" ]; then - if [ "${FOUND_PROFILES[\"$SEARCH_NAME\"]}" = "" ]; then - FOUND_PROFILES["$SEARCH_NAME"]="$PROFILE" - else + VARIABLE_NAME="FOUND_PROFILE_$ID" + if [ "${!VARIABLE_NAME}" = "" ]; then + eval "FOUND_PROFILE_$ID=\"$PROFILE\"" + else >&2 echo "Found multiple profiles with name \"$SEARCH_NAME\"" exit 1 fi @@ -46,10 +86,11 @@ for PROFILE in `find "$PROVISIONING_PROFILE_SEARCH_PATH" -type f -name "*.mobile done done -for (( i=1; i<$ELEMENT_COUNT+1; i=i+2 )); do +for (( i=0; i<$ELEMENT_COUNT; i=i+2 )); do ID=${SEARCH_NAMES[$i]} SEARCH_NAME=${SEARCH_NAMES[$(($i + 1))]} - FOUND_PROFILE="${FOUND_PROFILES[\"$SEARCH_NAME\"]}" + VARIABLE_NAME="FOUND_PROFILE_$ID" + FOUND_PROFILE="${!VARIABLE_NAME}" if [ "$FOUND_PROFILE" = "" ]; then >&2 echo "Profile \"$SEARCH_NAME\" not found" exit 1 diff --git a/build-system/generate-xcode-project.sh b/build-system/generate-xcode-project.sh new file mode 100755 index 0000000000..e32fb118ac --- /dev/null +++ b/build-system/generate-xcode-project.sh @@ -0,0 +1,93 @@ +#!/bin/zsh + +set -e + +BAZEL="$(which bazel)" +if [ "$BAZEL" = "" ]; then + echo "bazel not found in PATH" + exit 1 +fi + +EXPECTED_VARIABLES=(\ + BUILD_NUMBER \ + APP_VERSION \ + BUNDLE_ID \ + API_ID \ + API_HASH \ + APP_CENTER_ID \ + IS_INTERNAL_BUILD \ + IS_APPSTORE_BUILD \ + APPSTORE_ID \ + APP_SPECIFIC_URL_SCHEME \ +) + +MISSING_VARIABLES="0" +for VARIABLE_NAME in ${EXPECTED_VARIABLES[@]}; do + if [ "${!VARIABLE_NAME}" = "" ]; then + echo "$VARIABLE_NAME not defined" + MISSING_VARIABLES="1" + fi +done + +if [ "$MISSING_VARIABLES" == "1" ]; then + exit 1 +fi + +VARIABLES_DIRECTORY="build-input/data" +mkdir -p "$VARIABLES_DIRECTORY" +VARIABLES_PATH="$VARIABLES_DIRECTORY/variables.bzl" +rm -f "$VARIABLES_PATH" + +GEN_DIRECTORY="build-input/gen/project" +rm -rf "$GEN_DIRECTORY" +mkdir -p "$GEN_DIRECTORY" + +echo "telegram_build_number = \"$BUILD_NUMBER\"" >> "$VARIABLES_PATH" +echo "telegram_version = \"$APP_VERSION\"" >> "$VARIABLES_PATH" +echo "telegram_bundle_id = \"$BUNDLE_ID\"" >> "$VARIABLES_PATH" +echo "telegram_api_id = \"$API_ID\"" >> "$VARIABLES_PATH" +echo "telegram_api_hash = \"$API_HASH\"" >> "$VARIABLES_PATH" +echo "telegram_app_center_id = \"$APP_CENTER_ID\"" >> "$VARIABLES_PATH" +echo "telegram_is_internal_build = \"$IS_INTERNAL_BUILD\"" >> "$VARIABLES_PATH" +echo "telegram_is_appstore_build = \"$IS_APPSTORE_BUILD\"" >> "$VARIABLES_PATH" +echo "telegram_appstore_id = \"$APPSTORE_ID\"" >> "$VARIABLES_PATH" +echo "telegram_app_specific_url_scheme = \"$APP_SPECIFIC_URL_SCHEME\"" >> "$VARIABLES_PATH" + +BAZEL_OPTIONS=(\ + --features=swift.use_global_module_cache \ + --spawn_strategy=standalone \ + --strategy=SwiftCompile=standalone \ + --define=telegram_build_number="$BUILD_NUMBER" \ + --define=telegram_version="$APP_VERSION" \ + --define=telegram_bundle_id="$BUNDLE_ID" \ + --define=telegram_api_id="$API_ID" \ + --define=telegram_api_hash="$API_HASH" \ + --define=telegram_app_center_id="$APP_CENTER_ID" \ + --define=telegram_is_internal_build="$IS_INTERNAL_BUILD" \ + --define=telegram_is_appstore_build="$IS_APPSTORE_BUILD" \ + --define=telegram_appstore_id="$APPSTORE_ID" \ + --define=telegram_app_specific_url_scheme="$APP_SPECIFIC_URL_SCHEME" \ +) + +$HOME/Applications/Tulsi.app/Contents/MacOS/Tulsi -- \ + --verbose \ + --create-tulsiproj Telegram \ + --workspaceroot ./ \ + --bazel "$BAZEL" \ + --outputfolder "$GEN_DIRECTORY" \ + --target Telegram:Telegram \ + --target Telegram:Main \ + --target Telegram:Lib \ + +PATCH_OPTIONS="BazelBuildOptionsDebug BazelBuildOptionsRelease" +for NAME in $PATCH_OPTIONS; do + sed -i "" -e '1h;2,$H;$!d;g' -e 's/\("'"$NAME"'" : {\n[ ]*"p" : "$(inherited)\)/\1'" ${BAZEL_OPTIONS[*]}"'/' "$GEN_DIRECTORY/Telegram.tulsiproj/Configs/Telegram.tulsigen" +done + +sed -i "" -e '1h;2,$H;$!d;g' -e 's/\("sourceFilters" : \[\n[ ]*\)"\.\/\.\.\."/\1"Telegram\/...", "submodules\/..."/' "$GEN_DIRECTORY/Telegram.tulsiproj/Configs/Telegram.tulsigen" + +${HOME}/Applications/Tulsi.app/Contents/MacOS/Tulsi -- \ + --verbose \ + --genconfig "$GEN_DIRECTORY/Telegram.tulsiproj:Telegram" \ + --bazel "$BAZEL" \ + --outputfolder "$GEN_DIRECTORY" \ diff --git a/build-system/info_plist_fragment.bzl b/build-system/info_plist_fragment.bzl new file mode 100644 index 0000000000..6c5e2c9029 --- /dev/null +++ b/build-system/info_plist_fragment.bzl @@ -0,0 +1,51 @@ +load("//build-system:defines.bzl", + "string_value", +) + +def _info_plist_fragment(ctx): + output = ctx.outputs.out + + found_keys = list() + template = ctx.attr.template + current_start = 0 + for i in range(len(template)): + start_index = template.find("{", current_start) + if start_index == -1: + break + end_index = template.find("}", start_index + 1) + if end_index == -1: + fail("Could not find the matching '}' for the '{' at {}".format(start_index)) + found_keys.append(template[start_index + 1:end_index]) + current_start = end_index + 1 + + resolved_values = dict() + for key in found_keys: + value = ctx.var.get(key, None) + if value == None: + fail("Expected value for --define={} was not found".format(key)) + resolved_values[key] = value + + plist_string = """ + + + + + """ + template.format(**resolved_values) + """ + + + """ + + ctx.actions.write( + output = output, + content = plist_string, + ) + +info_plist_fragment = rule( + implementation = _info_plist_fragment, + attrs = { + "template": attr.string(mandatory = True), + }, + outputs = { + "out": "%{name}.plist" + }, +) diff --git a/submodules/AppLock/Sources/AppLock.swift b/submodules/AppLock/Sources/AppLock.swift index e339ed19ad..112873aac4 100644 --- a/submodules/AppLock/Sources/AppLock.swift +++ b/submodules/AppLock/Sources/AppLock.swift @@ -9,6 +9,7 @@ import TelegramPresentationData import PasscodeUI import TelegramUIPreferences import ImageBlur +import FastBlur import AppLockState private func isLocked(passcodeSettings: PresentationPasscodeSettings, state: LockState, isApplicationActive: Bool) -> Bool { diff --git a/submodules/BuildConfig/BUILD b/submodules/BuildConfig/BUILD index 8aa50e3447..347afe08eb 100644 --- a/submodules/BuildConfig/BUILD +++ b/submodules/BuildConfig/BUILD @@ -1,12 +1,12 @@ load( - "@bazel_skylib//rules:common_settings.bzl", - "string_flag", -) - -string_flag( - name = "apiId", - build_setting_default = "", - visibility = ["//visibility:public"], + "//build-input/data:variables.bzl", + "telegram_api_id", + "telegram_api_hash", + "telegram_app_center_id", + "telegram_is_internal_build", + "telegram_is_appstore_build", + "telegram_appstore_id", + "telegram_app_specific_url_scheme", ) objc_library( @@ -17,13 +17,13 @@ objc_library( "Sources/*.m", ]), copts = [ - '-DAPP_CONFIG_API_ID=0', - '-DAPP_CONFIG_API_HASH="1"', - '-DAPP_CONFIG_APP_CENTER_ID="1"', - '-DAPP_CONFIG_IS_INTERNAL_BUILD=false', - '-DAPP_CONFIG_IS_APPSTORE_BUILD=true', - '-DAPP_CONFIG_APPSTORE_ID=0', - '-DAPP_SPECIFIC_URL_SCHEME="1"', + "-DAPP_CONFIG_API_ID={}".format(telegram_api_id), + "-DAPP_CONFIG_API_HASH=\\\"{}\\\"".format(telegram_api_hash), + "-DAPP_CONFIG_APP_CENTER_ID=\\\"{}\\\"".format(telegram_app_center_id), + "-DAPP_CONFIG_IS_INTERNAL_BUILD={}".format(telegram_is_internal_build), + "-DAPP_CONFIG_IS_APPSTORE_BUILD={}".format(telegram_is_appstore_build), + "-DAPP_CONFIG_APPSTORE_ID={}".format(telegram_appstore_id), + "-DAPP_SPECIFIC_URL_SCHEME=\\\"{}\\\"".format(telegram_app_specific_url_scheme), ], hdrs = glob([ "Sources/*.h", diff --git a/submodules/BuildConfigExtra/BUILD b/submodules/BuildConfigExtra/BUILD new file mode 100644 index 0000000000..7e3972e6a0 --- /dev/null +++ b/submodules/BuildConfigExtra/BUILD @@ -0,0 +1,25 @@ + +objc_library( + name = "BuildConfigExtra", + enable_modules = True, + module_name = "BuildConfigExtra", + srcs = glob([ + "Sources/**/*.m", + "Sources/**/*.h", + ]), + hdrs = glob([ + "PublicHeaders/**/*.h", + ]), + includes = [ + "PublicHeaders", + ], + deps = [ + "//submodules/PKCS:PKCS", + ], + sdk_frameworks = [ + "Foundation", + ], + visibility = [ + "//visibility:public", + ], +) diff --git a/submodules/BuildConfigExtra/Sources/BuildConfigExtra.h b/submodules/BuildConfigExtra/PublicHeaders/BuildConfigExtra/BuildConfigExtra.h similarity index 100% rename from submodules/BuildConfigExtra/Sources/BuildConfigExtra.h rename to submodules/BuildConfigExtra/PublicHeaders/BuildConfigExtra/BuildConfigExtra.h diff --git a/submodules/BuildConfigExtra/Sources/BuildConfigExtra.m b/submodules/BuildConfigExtra/Sources/BuildConfigExtra.m index ddb6a760ca..fcad93dc2a 100644 --- a/submodules/BuildConfigExtra/Sources/BuildConfigExtra.m +++ b/submodules/BuildConfigExtra/Sources/BuildConfigExtra.m @@ -1,4 +1,4 @@ -#import "BuildConfigExtra.h" +#import #include #include diff --git a/submodules/Crc32/BUILD b/submodules/Crc32/BUILD index 85f82cd801..6a635794e7 100644 --- a/submodules/Crc32/BUILD +++ b/submodules/Crc32/BUILD @@ -4,7 +4,8 @@ objc_library( enable_modules = True, module_name = "Crc32", srcs = glob([ - "Sources/*.m", + "Sources/**/*.m", + "Sources/**/*.h", ]), hdrs = glob([ "PublicHeaders/**/*.h", @@ -13,7 +14,7 @@ objc_library( "PublicHeaders", ], sdk_frameworks = [ - "Foundation", + "Foundation", ], visibility = [ "//visibility:public", diff --git a/submodules/Display/Source/ImmediateTextNode.swift b/submodules/Display/Source/ImmediateTextNode.swift index 1f6c52f350..7c3bba9919 100644 --- a/submodules/Display/Source/ImmediateTextNode.swift +++ b/submodules/Display/Source/ImmediateTextNode.swift @@ -26,6 +26,8 @@ public class ImmediateTextNode: TextNode { return .byTruncatingMiddle case .end: return .byTruncatingTail + @unknown default: + return .byTruncatingTail } } set(value) { switch value { @@ -186,4 +188,4 @@ public class ASTextNode: ImmediateTextNode { override public func calculateSizeThatFits(_ constrainedSize: CGSize) -> CGSize { return self.updateLayout(constrainedSize) } -} \ No newline at end of file +} diff --git a/submodules/Display/Source/TextNode.swift b/submodules/Display/Source/TextNode.swift index 2cbb4708ca..6b68ec1792 100644 --- a/submodules/Display/Source/TextNode.swift +++ b/submodules/Display/Source/TextNode.swift @@ -132,7 +132,8 @@ public final class TextNodeLayout: NSObject { fileprivate let truncationType: CTLineTruncationType fileprivate let backgroundColor: UIColor? fileprivate let constrainedSize: CGSize - fileprivate let alignment: NSTextAlignment + fileprivate let explicitAlignment: NSTextAlignment + fileprivate let resolvedAlignment: NSTextAlignment fileprivate let lineSpacing: CGFloat fileprivate let cutout: TextNodeCutout? fileprivate let insets: UIEdgeInsets @@ -147,12 +148,13 @@ public final class TextNodeLayout: NSObject { fileprivate let textStroke: (UIColor, CGFloat)? public let hasRTL: Bool - fileprivate init(attributedString: NSAttributedString?, maximumNumberOfLines: Int, truncationType: CTLineTruncationType, constrainedSize: CGSize, alignment: NSTextAlignment, lineSpacing: CGFloat, cutout: TextNodeCutout?, insets: UIEdgeInsets, size: CGSize, rawTextSize: CGSize, truncated: Bool, firstLineOffset: CGFloat, lines: [TextNodeLine], blockQuotes: [TextNodeBlockQuote], backgroundColor: UIColor?, lineColor: UIColor?, textShadowColor: UIColor?, textStroke: (UIColor, CGFloat)?) { + fileprivate init(attributedString: NSAttributedString?, maximumNumberOfLines: Int, truncationType: CTLineTruncationType, constrainedSize: CGSize, explicitAlignment: NSTextAlignment, resolvedAlignment: NSTextAlignment, lineSpacing: CGFloat, cutout: TextNodeCutout?, insets: UIEdgeInsets, size: CGSize, rawTextSize: CGSize, truncated: Bool, firstLineOffset: CGFloat, lines: [TextNodeLine], blockQuotes: [TextNodeBlockQuote], backgroundColor: UIColor?, lineColor: UIColor?, textShadowColor: UIColor?, textStroke: (UIColor, CGFloat)?) { self.attributedString = attributedString self.maximumNumberOfLines = maximumNumberOfLines self.truncationType = truncationType self.constrainedSize = constrainedSize - self.alignment = alignment + self.explicitAlignment = explicitAlignment + self.resolvedAlignment = resolvedAlignment self.lineSpacing = lineSpacing self.cutout = cutout self.insets = insets @@ -240,7 +242,7 @@ public final class TextNodeLayout: NSObject { for line in self.lines { lineIndex += 1 var lineFrame = CGRect(origin: CGPoint(x: line.frame.origin.x, y: line.frame.origin.y - line.frame.size.height + self.firstLineOffset), size: line.frame.size) - switch self.alignment { + switch self.resolvedAlignment { case .center: lineFrame.origin.x = floor((self.size.width - lineFrame.size.width) / 2.0) case .natural: @@ -308,7 +310,7 @@ public final class TextNodeLayout: NSObject { for line in self.lines { lineIndex += 1 var lineFrame = CGRect(origin: CGPoint(x: line.frame.origin.x, y: line.frame.origin.y - line.frame.size.height + self.firstLineOffset), size: line.frame.size) - switch self.alignment { + switch self.resolvedAlignment { case .center: lineFrame.origin.x = floor((self.size.width - lineFrame.size.width) / 2.0) case .natural: @@ -383,7 +385,7 @@ public final class TextNodeLayout: NSObject { for line in self.lines { lineIndex += 1 var lineFrame = CGRect(origin: CGPoint(x: line.frame.origin.x, y: line.frame.origin.y - line.frame.size.height + self.firstLineOffset), size: line.frame.size) - switch self.alignment { + switch self.resolvedAlignment { case .center: lineFrame.origin.x = floor((self.size.width - lineFrame.size.width) / 2.0) case .natural: @@ -823,17 +825,26 @@ public class TextNode: ASDisplayNode { private class func calculateLayout(attributedString: NSAttributedString?, minimumNumberOfLines: Int, maximumNumberOfLines: Int, truncationType: CTLineTruncationType, backgroundColor: UIColor?, constrainedSize: CGSize, alignment: NSTextAlignment, lineSpacingFactor: CGFloat, cutout: TextNodeCutout?, insets: UIEdgeInsets, lineColor: UIColor?, textShadowColor: UIColor?, textStroke: (UIColor, CGFloat)?) -> TextNodeLayout { if let attributedString = attributedString { + let stringLength = attributedString.length let font: CTFont + let resolvedAlignment: NSTextAlignment + if stringLength != 0 { if let stringFont = attributedString.attribute(NSAttributedString.Key.font, at: 0, effectiveRange: nil) { font = stringFont as! CTFont } else { font = defaultFont } + if let paragraphStyle = attributedString.attribute(NSAttributedString.Key.paragraphStyle, at: 0, effectiveRange: nil) as? NSParagraphStyle { + resolvedAlignment = paragraphStyle.alignment + } else { + resolvedAlignment = alignment + } } else { font = defaultFont + resolvedAlignment = alignment } let fontAscent = CTFontGetAscent(font) @@ -847,7 +858,7 @@ public class TextNode: ASDisplayNode { var maybeTypesetter: CTTypesetter? maybeTypesetter = CTTypesetterCreateWithAttributedString(attributedString as CFAttributedString) if maybeTypesetter == nil { - return TextNodeLayout(attributedString: attributedString, maximumNumberOfLines: maximumNumberOfLines, truncationType: truncationType, constrainedSize: constrainedSize, alignment: alignment, lineSpacing: lineSpacingFactor, cutout: cutout, insets: insets, size: CGSize(), rawTextSize: CGSize(), truncated: false, firstLineOffset: 0.0, lines: [], blockQuotes: [], backgroundColor: backgroundColor, lineColor: lineColor, textShadowColor: textShadowColor, textStroke: textStroke) + return TextNodeLayout(attributedString: attributedString, maximumNumberOfLines: maximumNumberOfLines, truncationType: truncationType, constrainedSize: constrainedSize, explicitAlignment: alignment, resolvedAlignment: resolvedAlignment, lineSpacing: lineSpacingFactor, cutout: cutout, insets: insets, size: CGSize(), rawTextSize: CGSize(), truncated: false, firstLineOffset: 0.0, lines: [], blockQuotes: [], backgroundColor: backgroundColor, lineColor: lineColor, textShadowColor: textShadowColor, textStroke: textStroke) } let typesetter = maybeTypesetter! @@ -1056,9 +1067,9 @@ public class TextNode: ASDisplayNode { } } - return TextNodeLayout(attributedString: attributedString, maximumNumberOfLines: maximumNumberOfLines, truncationType: truncationType, constrainedSize: constrainedSize, alignment: alignment, lineSpacing: lineSpacingFactor, cutout: cutout, insets: insets, size: CGSize(width: ceil(layoutSize.width) + insets.left + insets.right, height: ceil(layoutSize.height) + insets.top + insets.bottom), rawTextSize: CGSize(width: ceil(rawLayoutSize.width) + insets.left + insets.right, height: ceil(rawLayoutSize.height) + insets.top + insets.bottom), truncated: truncated, firstLineOffset: firstLineOffset, lines: lines, blockQuotes: blockQuotes, backgroundColor: backgroundColor, lineColor: lineColor, textShadowColor: textShadowColor, textStroke: textStroke) + return TextNodeLayout(attributedString: attributedString, maximumNumberOfLines: maximumNumberOfLines, truncationType: truncationType, constrainedSize: constrainedSize, explicitAlignment: alignment, resolvedAlignment: resolvedAlignment, lineSpacing: lineSpacingFactor, cutout: cutout, insets: insets, size: CGSize(width: ceil(layoutSize.width) + insets.left + insets.right, height: ceil(layoutSize.height) + insets.top + insets.bottom), rawTextSize: CGSize(width: ceil(rawLayoutSize.width) + insets.left + insets.right, height: ceil(rawLayoutSize.height) + insets.top + insets.bottom), truncated: truncated, firstLineOffset: firstLineOffset, lines: lines, blockQuotes: blockQuotes, backgroundColor: backgroundColor, lineColor: lineColor, textShadowColor: textShadowColor, textStroke: textStroke) } else { - return TextNodeLayout(attributedString: attributedString, maximumNumberOfLines: maximumNumberOfLines, truncationType: truncationType, constrainedSize: constrainedSize, alignment: alignment, lineSpacing: lineSpacingFactor, cutout: cutout, insets: insets, size: CGSize(), rawTextSize: CGSize(), truncated: false, firstLineOffset: 0.0, lines: [], blockQuotes: [], backgroundColor: backgroundColor, lineColor: lineColor, textShadowColor: textShadowColor, textStroke: textStroke) + return TextNodeLayout(attributedString: attributedString, maximumNumberOfLines: maximumNumberOfLines, truncationType: truncationType, constrainedSize: constrainedSize, explicitAlignment: alignment, resolvedAlignment: alignment, lineSpacing: lineSpacingFactor, cutout: cutout, insets: insets, size: CGSize(), rawTextSize: CGSize(), truncated: false, firstLineOffset: 0.0, lines: [], blockQuotes: [], backgroundColor: backgroundColor, lineColor: lineColor, textShadowColor: textShadowColor, textStroke: textStroke) } } @@ -1110,7 +1121,7 @@ public class TextNode: ASDisplayNode { let textPosition = context.textPosition context.textMatrix = CGAffineTransform(scaleX: 1.0, y: -1.0) - let alignment = layout.alignment + let alignment = layout.resolvedAlignment let offset = CGPoint(x: layout.insets.left, y: layout.insets.top) for i in 0 ..< layout.lines.count { @@ -1187,7 +1198,7 @@ public class TextNode: ASDisplayNode { let layout: TextNodeLayout var updated = false - if let existingLayout = existingLayout, existingLayout.constrainedSize == arguments.constrainedSize && existingLayout.maximumNumberOfLines == arguments.maximumNumberOfLines && existingLayout.truncationType == arguments.truncationType && existingLayout.cutout == arguments.cutout && existingLayout.alignment == arguments.alignment && existingLayout.lineSpacing.isEqual(to: arguments.lineSpacing) { + if let existingLayout = existingLayout, existingLayout.constrainedSize == arguments.constrainedSize && existingLayout.maximumNumberOfLines == arguments.maximumNumberOfLines && existingLayout.truncationType == arguments.truncationType && existingLayout.cutout == arguments.cutout && existingLayout.explicitAlignment == arguments.alignment && existingLayout.lineSpacing.isEqual(to: arguments.lineSpacing) { let stringMatch: Bool var colorMatch: Bool = true diff --git a/submodules/EncryptionKeyVisualization/BUILD b/submodules/EncryptionKeyVisualization/BUILD new file mode 100644 index 0000000000..6717c60e4f --- /dev/null +++ b/submodules/EncryptionKeyVisualization/BUILD @@ -0,0 +1,17 @@ +load("@build_bazel_rules_swift//swift:swift.bzl", "swift_library") + +swift_library( + name = "EncryptionKeyVisualization", + module_name = "EncryptionKeyVisualization", + srcs = glob([ + "Sources/**/*.swift", + ]), + deps = [ + "//submodules/TelegramCore:TelegramCore", + "//submodules/SyncCore:SyncCore", + "//submodules/EncryptionKeyVisualization/Impl:EncryptionKeyVisualizationImpl", + ], + visibility = [ + "//visibility:public", + ], +) diff --git a/submodules/EncryptionKeyVisualization/Impl/BUILD b/submodules/EncryptionKeyVisualization/Impl/BUILD new file mode 100644 index 0000000000..c4c7874874 --- /dev/null +++ b/submodules/EncryptionKeyVisualization/Impl/BUILD @@ -0,0 +1,22 @@ + +objc_library( + name = "EncryptionKeyVisualizationImpl", + enable_modules = True, + module_name = "EncryptionKeyVisualizationImpl", + srcs = glob([ + "Sources/**/*.m", + "Sources/**/*.h", + ]), + hdrs = glob([ + "PublicHeaders/**/*.h", + ]), + includes = [ + "PublicHeaders", + ], + sdk_frameworks = [ + "Foundation", + ], + visibility = [ + "//visibility:public", + ], +) diff --git a/submodules/EncryptionKeyVisualization/Impl/PublicHeaders/EncryptionKeyVisualizationImpl/EncryptionKeyVisualization.h b/submodules/EncryptionKeyVisualization/Impl/PublicHeaders/EncryptionKeyVisualizationImpl/EncryptionKeyVisualization.h new file mode 100644 index 0000000000..12ed60d6cb --- /dev/null +++ b/submodules/EncryptionKeyVisualization/Impl/PublicHeaders/EncryptionKeyVisualizationImpl/EncryptionKeyVisualization.h @@ -0,0 +1,5 @@ +#import + +#import + + diff --git a/submodules/EncryptionKeyVisualization/Sources/SecretChatKeyVisualization.h b/submodules/EncryptionKeyVisualization/Impl/PublicHeaders/EncryptionKeyVisualizationImpl/SecretChatKeyVisualization.h similarity index 100% rename from submodules/EncryptionKeyVisualization/Sources/SecretChatKeyVisualization.h rename to submodules/EncryptionKeyVisualization/Impl/PublicHeaders/EncryptionKeyVisualizationImpl/SecretChatKeyVisualization.h diff --git a/submodules/EncryptionKeyVisualization/Sources/SecretChatKeyVisualization.m b/submodules/EncryptionKeyVisualization/Impl/Sources/SecretChatKeyVisualization.m similarity index 98% rename from submodules/EncryptionKeyVisualization/Sources/SecretChatKeyVisualization.m rename to submodules/EncryptionKeyVisualization/Impl/Sources/SecretChatKeyVisualization.m index 50d100e6f9..466ded7470 100644 --- a/submodules/EncryptionKeyVisualization/Sources/SecretChatKeyVisualization.m +++ b/submodules/EncryptionKeyVisualization/Impl/Sources/SecretChatKeyVisualization.m @@ -1,4 +1,4 @@ -#import "SecretChatKeyVisualization.h" +#import #import diff --git a/submodules/EncryptionKeyVisualization/Sources/EncryptionKeyVisualization.h b/submodules/EncryptionKeyVisualization/Sources/EncryptionKeyVisualization.h deleted file mode 100644 index f4cfd58533..0000000000 --- a/submodules/EncryptionKeyVisualization/Sources/EncryptionKeyVisualization.h +++ /dev/null @@ -1,11 +0,0 @@ -#import - -//! Project version number for EncryptionKeyVisualization. -FOUNDATION_EXPORT double EncryptionKeyVisualizationVersionNumber; - -//! Project version string for EncryptionKeyVisualization. -FOUNDATION_EXPORT const unsigned char EncryptionKeyVisualizationVersionString[]; - -#import - - diff --git a/submodules/EncryptionKeyVisualization/Sources/SecretChatKeyVisualization.swift b/submodules/EncryptionKeyVisualization/Sources/SecretChatKeyVisualization.swift index cf974f1843..90a83ea5a9 100644 --- a/submodules/EncryptionKeyVisualization/Sources/SecretChatKeyVisualization.swift +++ b/submodules/EncryptionKeyVisualization/Sources/SecretChatKeyVisualization.swift @@ -1,6 +1,8 @@ import Foundation +import UIKit import TelegramCore import SyncCore +import EncryptionKeyVisualizationImpl public func secretChatKeyImage(_ fingerprint: SecretChatKeyFingerprint, size: CGSize) -> UIImage? { let keySignatureData = fingerprint.sha1.data() diff --git a/submodules/InstantPageCache/BUILD b/submodules/InstantPageCache/BUILD index 98b4cadd48..3294de3829 100644 --- a/submodules/InstantPageCache/BUILD +++ b/submodules/InstantPageCache/BUILD @@ -7,10 +7,10 @@ swift_library( "Sources/**/*.swift", ]), deps = [ - "//submodules/TelegramCore:TelegramCore#shared", - "//submodules/SyncCore:SyncCore#shared", - "//submodules/Postbox:Postbox#shared", - "//submodules/SSignalKit/SwiftSignalKit:SwiftSignalKit#shared", + "//submodules/TelegramCore:TelegramCore", + "//submodules/SyncCore:SyncCore", + "//submodules/Postbox:Postbox", + "//submodules/SSignalKit/SwiftSignalKit:SwiftSignalKit", "//submodules/TelegramUIPreferences:TelegramUIPreferences", "//submodules/PersistentStringHash:PersistentStringHash", ], diff --git a/submodules/LegacyDataImport/BUILD b/submodules/LegacyDataImport/BUILD new file mode 100644 index 0000000000..199ce4f386 --- /dev/null +++ b/submodules/LegacyDataImport/BUILD @@ -0,0 +1,23 @@ +load("@build_bazel_rules_swift//swift:swift.bzl", "swift_library") + +swift_library( + name = "LegacyDataImport", + module_name = "LegacyDataImport", + srcs = glob([ + "Sources/**/*.swift", + ]), + deps = [ + "//submodules/TelegramCore:TelegramCore", + "//submodules/SyncCore:SyncCore", + "//submodules/Postbox:Postbox", + "//submodules/SSignalKit/SwiftSignalKit:SwiftSignalKit", + "//submodules/TelegramNotices:TelegramNotices", + "//submodules/TelegramUIPreferences:TelegramUIPreferences", + "//submodules/RadialStatusNode:RadialStatusNode", + "//submodules/LegacyComponents:LegacyComponents", + "//submodules/LegacyDataImport/Impl:LegacyDataImportImpl", + ], + visibility = [ + "//visibility:public", + ], +) diff --git a/submodules/LegacyDataImport/Impl/BUILD b/submodules/LegacyDataImport/Impl/BUILD new file mode 100644 index 0000000000..4bab57e0ce --- /dev/null +++ b/submodules/LegacyDataImport/Impl/BUILD @@ -0,0 +1,22 @@ + +objc_library( + name = "LegacyDataImportImpl", + enable_modules = True, + module_name = "LegacyDataImportImpl", + srcs = glob([ + "Sources/**/*.m", + "Sources/**/*.h", + ]), + hdrs = glob([ + "PublicHeaders/**/*.h", + ]), + includes = [ + "PublicHeaders", + ], + sdk_frameworks = [ + "Foundation", + ], + visibility = [ + "//visibility:public", + ], +) diff --git a/submodules/LegacyDataImport/Impl/PublicHeaders/LegacyDataImportImpl/LegacyDataImportImpl.h b/submodules/LegacyDataImport/Impl/PublicHeaders/LegacyDataImportImpl/LegacyDataImportImpl.h new file mode 100644 index 0000000000..7a94876eb4 --- /dev/null +++ b/submodules/LegacyDataImport/Impl/PublicHeaders/LegacyDataImportImpl/LegacyDataImportImpl.h @@ -0,0 +1,7 @@ +#import + +#import +#import +#import + + diff --git a/submodules/LegacyDataImport/Sources/TGAutoDownloadPreferences.h b/submodules/LegacyDataImport/Impl/PublicHeaders/LegacyDataImportImpl/TGAutoDownloadPreferences.h similarity index 100% rename from submodules/LegacyDataImport/Sources/TGAutoDownloadPreferences.h rename to submodules/LegacyDataImport/Impl/PublicHeaders/LegacyDataImportImpl/TGAutoDownloadPreferences.h diff --git a/submodules/LegacyDataImport/Sources/TGAutoDownloadPreferences.m b/submodules/LegacyDataImport/Impl/PublicHeaders/LegacyDataImportImpl/TGAutoDownloadPreferences.m similarity index 99% rename from submodules/LegacyDataImport/Sources/TGAutoDownloadPreferences.m rename to submodules/LegacyDataImport/Impl/PublicHeaders/LegacyDataImportImpl/TGAutoDownloadPreferences.m index e84cc90ab2..64c8cca6c7 100644 --- a/submodules/LegacyDataImport/Sources/TGAutoDownloadPreferences.m +++ b/submodules/LegacyDataImport/Impl/PublicHeaders/LegacyDataImportImpl/TGAutoDownloadPreferences.m @@ -1,4 +1,4 @@ -#import "TGAutoDownloadPreferences.h" +#import @implementation TGAutoDownloadPreferences diff --git a/submodules/LegacyDataImport/Sources/TGPresentationAutoNightPreferences.h b/submodules/LegacyDataImport/Impl/PublicHeaders/LegacyDataImportImpl/TGPresentationAutoNightPreferences.h similarity index 100% rename from submodules/LegacyDataImport/Sources/TGPresentationAutoNightPreferences.h rename to submodules/LegacyDataImport/Impl/PublicHeaders/LegacyDataImportImpl/TGPresentationAutoNightPreferences.h diff --git a/submodules/LegacyDataImport/Sources/TGPresentationAutoNightPreferences.m b/submodules/LegacyDataImport/Impl/PublicHeaders/LegacyDataImportImpl/TGPresentationAutoNightPreferences.m similarity index 91% rename from submodules/LegacyDataImport/Sources/TGPresentationAutoNightPreferences.m rename to submodules/LegacyDataImport/Impl/PublicHeaders/LegacyDataImportImpl/TGPresentationAutoNightPreferences.m index e125ea54f0..b53b768e38 100644 --- a/submodules/LegacyDataImport/Sources/TGPresentationAutoNightPreferences.m +++ b/submodules/LegacyDataImport/Impl/PublicHeaders/LegacyDataImportImpl/TGPresentationAutoNightPreferences.m @@ -1,4 +1,4 @@ -#import "TGPresentationAutoNightPreferences.h" +#import @implementation TGPresentationAutoNightPreferences diff --git a/submodules/LegacyDataImport/Sources/TGProxyItem.h b/submodules/LegacyDataImport/Impl/PublicHeaders/LegacyDataImportImpl/TGProxyItem.h similarity index 100% rename from submodules/LegacyDataImport/Sources/TGProxyItem.h rename to submodules/LegacyDataImport/Impl/PublicHeaders/LegacyDataImportImpl/TGProxyItem.h diff --git a/submodules/LegacyDataImport/Sources/TGProxyItem.m b/submodules/LegacyDataImport/Impl/PublicHeaders/LegacyDataImportImpl/TGProxyItem.m similarity index 97% rename from submodules/LegacyDataImport/Sources/TGProxyItem.m rename to submodules/LegacyDataImport/Impl/PublicHeaders/LegacyDataImportImpl/TGProxyItem.m index edc270d3ae..4dfc1d6c93 100644 --- a/submodules/LegacyDataImport/Sources/TGProxyItem.m +++ b/submodules/LegacyDataImport/Impl/PublicHeaders/LegacyDataImportImpl/TGProxyItem.m @@ -1,4 +1,4 @@ -#import "TGProxyItem.h" +#import static bool TGObjectCompare(id obj1, id obj2) { if (obj1 == nil && obj2 == nil) diff --git a/submodules/LegacyDataImport/Impl/Sources/TGAutoDownloadPreferences.m b/submodules/LegacyDataImport/Impl/Sources/TGAutoDownloadPreferences.m new file mode 100644 index 0000000000..64c8cca6c7 --- /dev/null +++ b/submodules/LegacyDataImport/Impl/Sources/TGAutoDownloadPreferences.m @@ -0,0 +1,250 @@ +#import + +@implementation TGAutoDownloadPreferences + +- (instancetype)initWithCoder:(NSCoder *)aDecoder +{ + self = [super init]; + if (self != nil) + { + _disabled = [aDecoder decodeBoolForKey:@"disabled"]; + _photos = [aDecoder decodeInt32ForKey:@"photos"]; + _videos = [aDecoder decodeInt32ForKey:@"videos"]; + _maximumVideoSize = [aDecoder decodeInt32ForKey:@"maxVideoSize"]; + _documents = [aDecoder decodeInt32ForKey:@"documents"]; + _maximumDocumentSize = [aDecoder decodeInt32ForKey:@"maxDocumentSize"]; + _voiceMessages = [aDecoder decodeInt32ForKey:@"voiceMessages"]; + _videoMessages = [aDecoder decodeInt32ForKey:@"videoMessages"]; + } + return self; +} + +- (void)encodeWithCoder:(NSCoder *)aCoder +{ + [aCoder encodeBool:_disabled forKey:@"disabled"]; + [aCoder encodeInt32:_photos forKey:@"photos"]; + [aCoder encodeInt32:_videos forKey:@"videos"]; + [aCoder encodeInt32:_maximumVideoSize forKey:@"maxVideoSize"]; + [aCoder encodeInt32:_documents forKey:@"documents"]; + [aCoder encodeInt32:_maximumDocumentSize forKey:@"maxDocumentSize"]; + [aCoder encodeInt32:_voiceMessages forKey:@"voiceMessages"]; + [aCoder encodeInt32:_videoMessages forKey:@"videoMessages"]; +} + ++ (instancetype)defaultPreferences +{ + TGAutoDownloadPreferences *preferences = [[TGAutoDownloadPreferences alloc] init]; + preferences->_photos = TGAutoDownloadModeAll; + preferences->_videos = TGAutoDownloadModeNone; + preferences->_maximumVideoSize = 10; + preferences->_documents = TGAutoDownloadModeNone; + preferences->_maximumDocumentSize = 10; + preferences->_voiceMessages = TGAutoDownloadModeAll; + preferences->_videoMessages = TGAutoDownloadModeAll; + return preferences; +} + ++ (instancetype)preferencesWithLegacyDownloadPrivatePhotos:(bool)privatePhotos groupPhotos:(bool)groupPhotos privateVoiceMessages:(bool)privateVoiceMessages groupVoiceMessages:(bool)groupVoiceMessages privateVideoMessages:(bool)privateVideoMessages groupVideoMessages:(bool)groupVideoMessages +{ + TGAutoDownloadPreferences *preferences = [[TGAutoDownloadPreferences alloc] init]; + + if (privatePhotos) + preferences->_photos |= TGAutoDownloadModeAllPrivateChats; + if (groupPhotos) + preferences->_photos |= TGAutoDownloadModeAllGroups; + + if (privateVoiceMessages) + preferences->_voiceMessages |= TGAutoDownloadModeAllPrivateChats; + if (groupVoiceMessages) + preferences->_voiceMessages |= TGAutoDownloadModeAllGroups; + + if (privateVideoMessages) + preferences->_videoMessages |= TGAutoDownloadModeAllPrivateChats; + if (groupVideoMessages) + preferences->_videoMessages |= TGAutoDownloadModeAllGroups; + + preferences->_maximumVideoSize = 10; + preferences->_maximumDocumentSize = 10; + + return preferences; +} + +- (instancetype)updateDisabled:(bool)disabled +{ + TGAutoDownloadPreferences *preferences = [[TGAutoDownloadPreferences alloc] init]; + preferences->_disabled = disabled; + preferences->_photos = _photos; + preferences->_videos = _videos; + preferences->_maximumVideoSize = _maximumVideoSize; + preferences->_documents = _documents; + preferences->_maximumDocumentSize = _maximumDocumentSize; + preferences->_voiceMessages = _voiceMessages; + preferences->_videoMessages = _videoMessages; + return preferences; +} + +- (instancetype)updatePhotosMode:(TGAutoDownloadMode)mode +{ + TGAutoDownloadPreferences *preferences = [[TGAutoDownloadPreferences alloc] init]; + preferences->_photos = mode; + preferences->_videos = _videos; + preferences->_maximumVideoSize = _maximumVideoSize; + preferences->_documents = _documents; + preferences->_maximumDocumentSize = _maximumDocumentSize; + preferences->_voiceMessages = _voiceMessages; + preferences->_videoMessages = _videoMessages; + return preferences; +} + +- (instancetype)updateVideosMode:(TGAutoDownloadMode)mode maximumSize:(int32_t)maximumSize +{ + TGAutoDownloadPreferences *preferences = [[TGAutoDownloadPreferences alloc] init]; + preferences->_photos = _photos; + preferences->_videos = mode; + preferences->_maximumVideoSize = maximumSize; + preferences->_documents = _documents; + preferences->_maximumDocumentSize = _maximumDocumentSize; + preferences->_voiceMessages = _voiceMessages; + preferences->_videoMessages = _videoMessages; + return preferences; +} + +- (instancetype)updateDocumentsMode:(TGAutoDownloadMode)mode maximumSize:(int32_t)maximumSize +{ + TGAutoDownloadPreferences *preferences = [[TGAutoDownloadPreferences alloc] init]; + preferences->_photos = _photos; + preferences->_videos = _videos; + preferences->_maximumVideoSize = _maximumVideoSize; + preferences->_documents = mode; + preferences->_maximumDocumentSize = maximumSize; + preferences->_voiceMessages = _voiceMessages; + preferences->_videoMessages = _videoMessages; + return preferences; +} + +- (instancetype)updateVoiceMessagesMode:(TGAutoDownloadMode)mode +{ + TGAutoDownloadPreferences *preferences = [[TGAutoDownloadPreferences alloc] init]; + preferences->_photos = _photos; + preferences->_videos = _videos; + preferences->_maximumVideoSize = _maximumVideoSize; + preferences->_documents = _documents; + preferences->_maximumDocumentSize = _maximumDocumentSize; + preferences->_voiceMessages = mode; + preferences->_videoMessages = _videoMessages; + return preferences; +} + +- (instancetype)updateVideoMessagesMode:(TGAutoDownloadMode)mode +{ + TGAutoDownloadPreferences *preferences = [[TGAutoDownloadPreferences alloc] init]; + preferences->_photos = _photos; + preferences->_videos = _videos; + preferences->_maximumVideoSize = _maximumVideoSize; + preferences->_documents = _documents; + preferences->_maximumDocumentSize = _maximumDocumentSize; + preferences->_voiceMessages = _voiceMessages; + preferences->_videoMessages = mode; + return preferences; +} + ++ (bool)shouldDownload:(TGAutoDownloadMode)mode inChat:(TGAutoDownloadChat)chat networkType:(TGNetworkType)networkType +{ + bool isWiFi = networkType == TGNetworkTypeWiFi; + bool isCellular = !isWiFi && networkType != TGNetworkTypeNone; + + bool shouldDownload = false; + switch (chat) + { + case TGAutoDownloadChatContact: + if (isCellular) + shouldDownload = (mode & TGAutoDownloadModeCellularContacts) != 0; + else if (isWiFi) + shouldDownload = (mode & TGAutoDownloadModeWifiContacts) != 0; + break; + + case TGAutoDownloadChatOtherPrivateChat: + if (isCellular) + shouldDownload = (mode & TGAutoDownloadModeCellularPrivateChats) != 0; + else if (isWiFi) + shouldDownload = (mode & TGAutoDownloadModeWifiPrivateChats) != 0; + break; + + case TGAutoDownloadChatGroup: + if (isCellular) + shouldDownload = (mode & TGAutoDownloadModeCellularGroups) != 0; + else if (isWiFi) + shouldDownload = (mode & TGAutoDownloadModeWifiGroups) != 0; + break; + + case TGAutoDownloadChatChannel: + if (isCellular) + shouldDownload = (mode & TGAutoDownloadModeCellularChannels) != 0; + else if (isWiFi) + shouldDownload = (mode & TGAutoDownloadModeWifiChannels) != 0; + break; + + default: + break; + } + return shouldDownload; +} + +- (bool)shouldDownloadPhotoInChat:(TGAutoDownloadChat)chat networkType:(TGNetworkType)networkType +{ + if (self.disabled) + return false; + + return [TGAutoDownloadPreferences shouldDownload:_photos inChat:chat networkType:networkType]; +} + +- (bool)shouldDownloadVideoInChat:(TGAutoDownloadChat)chat networkType:(TGNetworkType)networkType +{ + if (self.disabled) + return false; + + return [TGAutoDownloadPreferences shouldDownload:_videos inChat:chat networkType:networkType]; +} + +- (bool)shouldDownloadDocumentInChat:(TGAutoDownloadChat)chat networkType:(TGNetworkType)networkType +{ + if (self.disabled) + return false; + + return [TGAutoDownloadPreferences shouldDownload:_documents inChat:chat networkType:networkType]; +} + +- (bool)shouldDownloadVoiceMessageInChat:(TGAutoDownloadChat)chat networkType:(TGNetworkType)networkType +{ + if (self.disabled) + return false; + + return [TGAutoDownloadPreferences shouldDownload:_voiceMessages inChat:chat networkType:networkType]; +} + +- (bool)shouldDownloadVideoMessageInChat:(TGAutoDownloadChat)chat networkType:(TGNetworkType)networkType +{ + if (self.disabled) + return false; + + return [TGAutoDownloadPreferences shouldDownload:_videoMessages inChat:chat networkType:networkType]; +} + +- (bool)isDefaultPreferences +{ + return [self isEqual:[TGAutoDownloadPreferences defaultPreferences]]; +} + +- (BOOL)isEqual:(id)object +{ + if (object == self) + return YES; + + if (!object || ![object isKindOfClass:[self class]]) + return NO; + + TGAutoDownloadPreferences *preferences = (TGAutoDownloadPreferences *)object; + return preferences.photos == _photos && preferences.videos == _videos && preferences.documents == _documents && preferences.voiceMessages == _voiceMessages && preferences.videoMessages == _videoMessages && preferences.maximumVideoSize == _maximumVideoSize && preferences.maximumDocumentSize == _maximumDocumentSize && preferences.disabled == _disabled; +} + +@end diff --git a/submodules/LegacyDataImport/Impl/Sources/TGPresentationAutoNightPreferences.m b/submodules/LegacyDataImport/Impl/Sources/TGPresentationAutoNightPreferences.m new file mode 100644 index 0000000000..b53b768e38 --- /dev/null +++ b/submodules/LegacyDataImport/Impl/Sources/TGPresentationAutoNightPreferences.m @@ -0,0 +1,23 @@ +#import + +@implementation TGPresentationAutoNightPreferences + +- (instancetype)initWithCoder:(NSCoder *)aDecoder { + self = [super init]; + if (self != nil) { + _mode = [aDecoder decodeInt32ForKey:@"m"]; + _brightnessThreshold = [aDecoder decodeDoubleForKey:@"b"]; + _scheduleStart = [aDecoder decodeInt32ForKey:@"ss"]; + _scheduleEnd = [aDecoder decodeInt32ForKey:@"se"]; + _latitude = [aDecoder decodeDoubleForKey:@"lat"]; + _longitude = [aDecoder decodeDoubleForKey:@"lon"]; + _cachedLocationName = [aDecoder decodeObjectForKey:@"loc"]; + _preferredPalette = [aDecoder decodeInt32ForKey:@"p"]; + } + return self; +} + +- (void)encodeWithCoder:(NSCoder *)aCoder { +} + +@end diff --git a/submodules/LegacyDataImport/Impl/Sources/TGProxyItem.m b/submodules/LegacyDataImport/Impl/Sources/TGProxyItem.m new file mode 100644 index 0000000000..4dfc1d6c93 --- /dev/null +++ b/submodules/LegacyDataImport/Impl/Sources/TGProxyItem.m @@ -0,0 +1,73 @@ +#import + +static bool TGObjectCompare(id obj1, id obj2) { + if (obj1 == nil && obj2 == nil) + return true; + + return [obj1 isEqual:obj2]; +} + +@implementation TGProxyItem + +- (instancetype)initWithServer:(NSString *)server port:(int16_t)port username:(NSString *)username password:(NSString *)password secret:(NSString *)secret +{ + self = [super init]; + if (self != nil) + { + _server = server; + _port = port; + _username = username; + _password = password; + _secret = secret; + } + return self; +} + +- (instancetype)initWithCoder:(NSCoder *)aDecoder +{ + return [self initWithServer:[aDecoder decodeObjectForKey:@"server"] port:(int16_t)[aDecoder decodeInt32ForKey:@"port"] username:[aDecoder decodeObjectForKey:@"user"] password:[aDecoder decodeObjectForKey:@"pass"] secret:[aDecoder decodeObjectForKey:@"secret"]]; +} + +- (void)encodeWithCoder:(NSCoder *)aCoder +{ + [aCoder encodeObject:_server forKey:@"server"]; + [aCoder encodeInt32:_port forKey:@"port"]; + [aCoder encodeObject:_username forKey:@"user"]; + [aCoder encodeObject:_password forKey:@"pass"]; + [aCoder encodeObject:_secret forKey:@"secret"]; +} + +- (bool)isMTProxy +{ + return _secret.length > 0; +} + +- (BOOL)isEqual:(id)object +{ + if (object == self) + return true; + + if (!object || ![object isKindOfClass:[self class]]) + return false; + + TGProxyItem *proxy = (TGProxyItem *)object; + + if (![_server isEqualToString:proxy.server]) + return false; + + if (_port != proxy.port) + return false; + + if (!TGObjectCompare(_username ?: @"", proxy.username ?: @"")) + return false; + + if (!TGObjectCompare(_password ?: @"", proxy.password ?: @"")) + return false; + + if (!TGObjectCompare(_secret ?: @"", proxy.secret ?: @"")) + return false; + + return true; +} + +@end diff --git a/submodules/LegacyDataImport/Info.plist b/submodules/LegacyDataImport/Info.plist deleted file mode 100644 index e1fe4cfb7b..0000000000 --- a/submodules/LegacyDataImport/Info.plist +++ /dev/null @@ -1,22 +0,0 @@ - - - - - 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/LegacyDataImport/Sources/LegacyDataImport.h b/submodules/LegacyDataImport/Sources/LegacyDataImport.h deleted file mode 100644 index aae748427c..0000000000 --- a/submodules/LegacyDataImport/Sources/LegacyDataImport.h +++ /dev/null @@ -1,13 +0,0 @@ -#import - -//! Project version number for LegacyDataImport. -FOUNDATION_EXPORT double LegacyDataImportVersionNumber; - -//! Project version string for LegacyDataImport. -FOUNDATION_EXPORT const unsigned char LegacyDataImportVersionString[]; - -#import -#import -#import - - diff --git a/submodules/LegacyDataImport/Sources/LegacyDataImport.swift b/submodules/LegacyDataImport/Sources/LegacyDataImport.swift index 3dd3d393aa..4676e4b16a 100644 --- a/submodules/LegacyDataImport/Sources/LegacyDataImport.swift +++ b/submodules/LegacyDataImport/Sources/LegacyDataImport.swift @@ -4,11 +4,8 @@ import TelegramCore import SyncCore import SwiftSignalKit import Postbox -#if BUCK import MtProtoKit -#else -import MtProtoKitDynamic -#endif +import LegacyDataImportImpl public enum AccountImportError: Error { case generic diff --git a/submodules/LegacyDataImport/Sources/LegacyPreferencesImport.swift b/submodules/LegacyDataImport/Sources/LegacyPreferencesImport.swift index 485ccc22cc..d403653fb5 100644 --- a/submodules/LegacyDataImport/Sources/LegacyPreferencesImport.swift +++ b/submodules/LegacyDataImport/Sources/LegacyPreferencesImport.swift @@ -4,14 +4,11 @@ import TelegramCore import SyncCore import SwiftSignalKit import Postbox -#if BUCK import MtProtoKit -#else -import MtProtoKitDynamic -#endif import TelegramUIPreferences import LegacyComponents import TelegramNotices +import LegacyDataImportImpl @objc(TGPresentationState) private final class TGPresentationState: NSObject, NSCoding { let pallete: Int32 diff --git a/submodules/LegacyMediaPickerUI/BUILD b/submodules/LegacyMediaPickerUI/BUILD new file mode 100644 index 0000000000..4a258f2a6e --- /dev/null +++ b/submodules/LegacyMediaPickerUI/BUILD @@ -0,0 +1,29 @@ +load("@build_bazel_rules_swift//swift:swift.bzl", "swift_library") + +swift_library( + name = "LegacyMediaPickerUI", + module_name = "LegacyMediaPickerUI", + srcs = glob([ + "Sources/**/*.swift", + ]), + deps = [ + "//submodules/SSignalKit/SwiftSignalKit:SwiftSignalKit", + "//submodules/AsyncDisplayKit:AsyncDisplayKit", + "//submodules/Display:Display", + "//submodules/Postbox:Postbox", + "//submodules/TelegramCore:TelegramCore", + "//submodules/SyncCore:SyncCore", + "//submodules/TelegramPresentationData:TelegramPresentationData", + "//submodules/AccountContext:AccountContext", + "//submodules/LegacyComponents:LegacyComponents", + "//submodules/LegacyUI:LegacyUI", + "//submodules/MimeTypes:MimeTypes", + "//submodules/LocalMediaResources:LocalMediaResources", + "//submodules/SearchPeerMembers:SearchPeerMembers", + "//submodules/SaveToCameraRoll:SaveToCameraRoll", + "//submodules/LegacyMediaPickerUI/LegacyImageProcessors:LegacyImageProcessors", + ], + visibility = [ + "//visibility:public", + ], +) diff --git a/submodules/LegacyMediaPickerUI/Info.plist b/submodules/LegacyMediaPickerUI/Info.plist deleted file mode 100644 index e1fe4cfb7b..0000000000 --- a/submodules/LegacyMediaPickerUI/Info.plist +++ /dev/null @@ -1,22 +0,0 @@ - - - - - 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/LegacyMediaPickerUI/LegacyImageProcessors/BUILD b/submodules/LegacyMediaPickerUI/LegacyImageProcessors/BUILD new file mode 100644 index 0000000000..aa40d0c1a7 --- /dev/null +++ b/submodules/LegacyMediaPickerUI/LegacyImageProcessors/BUILD @@ -0,0 +1,26 @@ + +objc_library( + name = "LegacyImageProcessors", + enable_modules = True, + module_name = "LegacyImageProcessors", + srcs = glob([ + "Sources/**/*.m", + "Sources/**/*.h", + ]), + hdrs = glob([ + "PublicHeaders/**/*.h", + ]), + includes = [ + "PublicHeaders", + ], + deps = [ + "//submodules/LegacyComponents:LegacyComponents", + ], + sdk_frameworks = [ + "Foundation", + "UIKit", + ], + visibility = [ + "//visibility:public", + ], +) diff --git a/submodules/LegacyMediaPickerUI/Sources/LegacyImageProcessors.h b/submodules/LegacyMediaPickerUI/LegacyImageProcessors/PublicHeaders/LegacyImageProcessors/LegacyImageProcessors.h similarity index 100% rename from submodules/LegacyMediaPickerUI/Sources/LegacyImageProcessors.h rename to submodules/LegacyMediaPickerUI/LegacyImageProcessors/PublicHeaders/LegacyImageProcessors/LegacyImageProcessors.h diff --git a/submodules/LegacyMediaPickerUI/Sources/LegacyImageProcessors.m b/submodules/LegacyMediaPickerUI/LegacyImageProcessors/Sources/LegacyImageProcessors.m similarity index 96% rename from submodules/LegacyMediaPickerUI/Sources/LegacyImageProcessors.m rename to submodules/LegacyMediaPickerUI/LegacyImageProcessors/Sources/LegacyImageProcessors.m index dab0029030..0bccc41b64 100644 --- a/submodules/LegacyMediaPickerUI/Sources/LegacyImageProcessors.m +++ b/submodules/LegacyMediaPickerUI/LegacyImageProcessors/Sources/LegacyImageProcessors.m @@ -1,4 +1,4 @@ -#import "LegacyImageProcessors.h" +#import #import diff --git a/submodules/LegacyMediaPickerUI/Sources/LegacyMediaPickerUI.h b/submodules/LegacyMediaPickerUI/Sources/LegacyMediaPickerUI.h deleted file mode 100644 index 24d275b34d..0000000000 --- a/submodules/LegacyMediaPickerUI/Sources/LegacyMediaPickerUI.h +++ /dev/null @@ -1,19 +0,0 @@ -// -// LegacyMediaPickerUI.h -// LegacyMediaPickerUI -// -// Created by Peter on 8/15/19. -// Copyright © 2019 Telegram Messenger LLP. All rights reserved. -// - -#import - -//! Project version number for LegacyMediaPickerUI. -FOUNDATION_EXPORT double LegacyMediaPickerUIVersionNumber; - -//! Project version string for LegacyMediaPickerUI. -FOUNDATION_EXPORT const unsigned char LegacyMediaPickerUIVersionString[]; - -#import - - diff --git a/submodules/LegacyUI/BUILD b/submodules/LegacyUI/BUILD new file mode 100644 index 0000000000..e23975b3a9 --- /dev/null +++ b/submodules/LegacyUI/BUILD @@ -0,0 +1,25 @@ +load("@build_bazel_rules_swift//swift:swift.bzl", "swift_library") + +swift_library( + name = "LegacyUI", + module_name = "LegacyUI", + srcs = glob([ + "Sources/**/*.swift", + ]), + deps = [ + "//submodules/SSignalKit/SwiftSignalKit:SwiftSignalKit", + "//submodules/Postbox:Postbox", + "//submodules/TelegramCore:TelegramCore", + "//submodules/SyncCore:SyncCore", + "//submodules/AsyncDisplayKit:AsyncDisplayKit", + "//submodules/Display:Display", + "//submodules/AccountContext:AccountContext", + "//submodules/TelegramAudio:TelegramAudio", + "//submodules/DeviceAccess:DeviceAccess", + "//submodules/LegacyComponents:LegacyComponents", + "//submodules/StickerResources:StickerResources", + ], + visibility = [ + "//visibility:public", + ], +) diff --git a/submodules/LegacyUI/Info.plist b/submodules/LegacyUI/Info.plist deleted file mode 100644 index e1fe4cfb7b..0000000000 --- a/submodules/LegacyUI/Info.plist +++ /dev/null @@ -1,22 +0,0 @@ - - - - - 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/LegacyUI/Sources/LegacyHTTPOperationImpl.swift b/submodules/LegacyUI/Sources/LegacyHTTPOperationImpl.swift index d157bea528..637d5f6aeb 100644 --- a/submodules/LegacyUI/Sources/LegacyHTTPOperationImpl.swift +++ b/submodules/LegacyUI/Sources/LegacyHTTPOperationImpl.swift @@ -1,9 +1,5 @@ import Foundation -#if BUCK import MtProtoKit -#else -import MtProtoKitDynamic -#endif import LegacyComponents diff --git a/submodules/LegacyUI/Sources/LegacyUI.h b/submodules/LegacyUI/Sources/LegacyUI.h deleted file mode 100644 index f42c305222..0000000000 --- a/submodules/LegacyUI/Sources/LegacyUI.h +++ /dev/null @@ -1,19 +0,0 @@ -// -// LegacyUI.h -// LegacyUI -// -// Created by Peter on 8/12/19. -// Copyright © 2019 Telegram Messenger LLP. All rights reserved. -// - -#import - -//! Project version number for LegacyUI. -FOUNDATION_EXPORT double LegacyUIVersionNumber; - -//! Project version string for LegacyUI. -FOUNDATION_EXPORT const unsigned char LegacyUIVersionString[]; - -// In this header, you should import all the public headers of your framework using statements like #import - - diff --git a/submodules/LegacyUI/Sources/TelegramInitializeLegacyComponents.swift b/submodules/LegacyUI/Sources/TelegramInitializeLegacyComponents.swift index b77631410c..c037184a90 100644 --- a/submodules/LegacyUI/Sources/TelegramInitializeLegacyComponents.swift +++ b/submodules/LegacyUI/Sources/TelegramInitializeLegacyComponents.swift @@ -3,11 +3,7 @@ import UIKit import TelegramCore import SyncCore import SwiftSignalKit -#if BUCK import MtProtoKit -#else -import MtProtoKitDynamic -#endif import Display import TelegramPresentationData import DeviceAccess diff --git a/submodules/MimeTypes/PublicHeaders/MimeTypes.h b/submodules/MimeTypes/PublicHeaders/MimeTypes.h deleted file mode 100644 index 0384694fcb..0000000000 --- a/submodules/MimeTypes/PublicHeaders/MimeTypes.h +++ /dev/null @@ -1,11 +0,0 @@ -#import - -//! Project version number for MimeTypes. -FOUNDATION_EXPORT double MimeTypesVersionNumber; - -//! Project version string for MimeTypes. -FOUNDATION_EXPORT const unsigned char MimeTypesVersionString[]; - -#import - - diff --git a/submodules/MimeTypes/PublicHeaders/MimeTypes/MimeTypes.h b/submodules/MimeTypes/PublicHeaders/MimeTypes/MimeTypes.h new file mode 100644 index 0000000000..458166eee0 --- /dev/null +++ b/submodules/MimeTypes/PublicHeaders/MimeTypes/MimeTypes.h @@ -0,0 +1,5 @@ +#import + +#import + + diff --git a/submodules/MimeTypes/PublicHeaders/TGMimeTypeMap.h b/submodules/MimeTypes/PublicHeaders/MimeTypes/TGMimeTypeMap.h similarity index 100% rename from submodules/MimeTypes/PublicHeaders/TGMimeTypeMap.h rename to submodules/MimeTypes/PublicHeaders/MimeTypes/TGMimeTypeMap.h diff --git a/submodules/MtProtoKit/PublicHeaders/MtProtoKit/MtProtoKit.h b/submodules/MtProtoKit/PublicHeaders/MtProtoKit/MtProtoKit.h new file mode 100644 index 0000000000..4476e380ab --- /dev/null +++ b/submodules/MtProtoKit/PublicHeaders/MtProtoKit/MtProtoKit.h @@ -0,0 +1,60 @@ +#import + +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import \ No newline at end of file diff --git a/submodules/MtProtoKit/Sources/MTAes.m b/submodules/MtProtoKit/Sources/MTAes.m index 9aafdabc84..72ad722d58 100644 --- a/submodules/MtProtoKit/Sources/MTAes.m +++ b/submodules/MtProtoKit/Sources/MTAes.m @@ -162,7 +162,7 @@ void MyAesIgeDecrypt(const void *inBytes, int length, void *outBytes, const void } void MyAesCbcDecrypt(const void *inBytes, int length, void *outBytes, const void *key, int keyLength, void *iv) { - int outLength = 0; + size_t outLength = 0; CCCryptorStatus status = CCCrypt(kCCDecrypt, kCCAlgorithmAES128, 0, key, keyLength, iv, inBytes, length, outBytes, length, &outLength); assert(status == kCCSuccess); assert(outLength == length); diff --git a/submodules/MtProtoKit/Sources/MTEncryption.m b/submodules/MtProtoKit/Sources/MTEncryption.m index 1d13506e55..4df030344c 100644 --- a/submodules/MtProtoKit/Sources/MTEncryption.m +++ b/submodules/MtProtoKit/Sources/MTEncryption.m @@ -769,7 +769,7 @@ static NSData *decrypt_TL_data(id provider, unsigned char bu if ([context modExpInto:y a:x b:rsaKeyE mod:rsaKeyN]) { NSData *yBytes = [context getBin:y]; unsigned l = 256 - (unsigned)yBytes.length; - memset(bytes, 0, l); + assert(l >= 0); [yBytes getBytes:bytes + l length:256 - l]; @@ -781,7 +781,7 @@ static NSData *decrypt_TL_data(id provider, unsigned char bu NSData *keyBytes = [[NSData alloc] initWithBytes:bytes length:32]; NSMutableData *decryptedBytes = [[NSMutableData alloc] initWithLength:encryptedBytes.length]; - MyAesCbcDecrypt(encryptedBytes.bytes, encryptedBytes.length, decryptedBytes.mutableBytes, keyBytes.bytes, keyBytes.length, iv.mutableBytes); + MyAesCbcDecrypt(encryptedBytes.bytes, (int)encryptedBytes.length, decryptedBytes.mutableBytes, keyBytes.bytes, (int)keyBytes.length, iv.mutableBytes); if (decryptedBytes == nil) { return nil; diff --git a/submodules/OpenSSLEncryptionProvider/BUILD b/submodules/OpenSSLEncryptionProvider/BUILD index b6eca063e5..148b55c089 100644 --- a/submodules/OpenSSLEncryptionProvider/BUILD +++ b/submodules/OpenSSLEncryptionProvider/BUILD @@ -1,14 +1,26 @@ + objc_library( name = "OpenSSLEncryptionProvider", + enable_modules = True, + module_name = "OpenSSLEncryptionProvider", srcs = glob([ "Sources/**/*.m", - ]), - hdrs = glob([ "Sources/**/*.h", ]), + hdrs = glob([ + "PublicHeaders/**/*.h", + ]), + includes = [ + "PublicHeaders", + ], deps = [ "//submodules/EncryptionProvider:EncryptionProvider", "//submodules/openssl:openssl", ], - visibility = ["//visibility:public"], + sdk_frameworks = [ + "Foundation", + ], + visibility = [ + "//visibility:public", + ], ) diff --git a/submodules/OpenSSLEncryptionProvider/Sources/OpenSSLEncryptionProvider.h b/submodules/OpenSSLEncryptionProvider/PublicHeaders/OpenSSLEncryptionProvider/OpenSSLEncryptionProvider.h similarity index 100% rename from submodules/OpenSSLEncryptionProvider/Sources/OpenSSLEncryptionProvider.h rename to submodules/OpenSSLEncryptionProvider/PublicHeaders/OpenSSLEncryptionProvider/OpenSSLEncryptionProvider.h diff --git a/submodules/OpenSSLEncryptionProvider/Sources/OpenSSLEncryptionProvider.m b/submodules/OpenSSLEncryptionProvider/Sources/OpenSSLEncryptionProvider.m index 1acb5c69fa..ce2545a570 100644 --- a/submodules/OpenSSLEncryptionProvider/Sources/OpenSSLEncryptionProvider.m +++ b/submodules/OpenSSLEncryptionProvider/Sources/OpenSSLEncryptionProvider.m @@ -1,4 +1,4 @@ -#import "OpenSSLEncryptionProvider.h" +#import #import #import diff --git a/submodules/OpusBinding/BUILD b/submodules/OpusBinding/BUILD new file mode 100644 index 0000000000..05ba0c44cb --- /dev/null +++ b/submodules/OpusBinding/BUILD @@ -0,0 +1,31 @@ + +objc_library( + name = "OpusBinding", + enable_modules = True, + module_name = "OpusBinding", + srcs = glob([ + "Sources/**/*.m", + "Sources/**/*.c", + "Sources/**/*.h", + ]), + hdrs = glob([ + "PublicHeaders/**/*.h", + ]), + includes = [ + "PublicHeaders", + ], + copts = [ + "-Isubmodules/OpusBinding/Sources", + "-Isubmodules/OpusBinding/Sources/opusfile", + "-Isubmodules/OpusBinding/PublicHeaders/OpusBinding", + ], + deps = [ + "//submodules/Opus:opus", + ], + sdk_frameworks = [ + "Foundation", + ], + visibility = [ + "//visibility:public", + ], +) diff --git a/submodules/OpusBinding/Sources/OggOpusReader.h b/submodules/OpusBinding/PublicHeaders/OpusBinding/OggOpusReader.h similarity index 100% rename from submodules/OpusBinding/Sources/OggOpusReader.h rename to submodules/OpusBinding/PublicHeaders/OpusBinding/OggOpusReader.h diff --git a/submodules/OpusBinding/PublicHeaders/OpusBinding/OpusBinding.h b/submodules/OpusBinding/PublicHeaders/OpusBinding/OpusBinding.h new file mode 100644 index 0000000000..30524dbcbd --- /dev/null +++ b/submodules/OpusBinding/PublicHeaders/OpusBinding/OpusBinding.h @@ -0,0 +1,5 @@ +#import + +#import +#import +#import \ No newline at end of file diff --git a/submodules/OpusBinding/Sources/TGDataItem.h b/submodules/OpusBinding/PublicHeaders/OpusBinding/TGDataItem.h similarity index 100% rename from submodules/OpusBinding/Sources/TGDataItem.h rename to submodules/OpusBinding/PublicHeaders/OpusBinding/TGDataItem.h diff --git a/submodules/OpusBinding/Sources/TGOggOpusWriter.h b/submodules/OpusBinding/PublicHeaders/OpusBinding/TGOggOpusWriter.h similarity index 100% rename from submodules/OpusBinding/Sources/TGOggOpusWriter.h rename to submodules/OpusBinding/PublicHeaders/OpusBinding/TGOggOpusWriter.h diff --git a/submodules/OpusBinding/Sources/opusfile/internal.h b/submodules/OpusBinding/Sources/opusfile/internal.h index 2487cf25db..b1109deb90 100644 --- a/submodules/OpusBinding/Sources/opusfile/internal.h +++ b/submodules/OpusBinding/Sources/opusfile/internal.h @@ -29,7 +29,7 @@ # endif # include -# include +# include "opusfile.h" typedef struct OggOpusLink OggOpusLink; diff --git a/submodules/PKCS/BUILD b/submodules/PKCS/BUILD new file mode 100644 index 0000000000..e1f30e1438 --- /dev/null +++ b/submodules/PKCS/BUILD @@ -0,0 +1,25 @@ + +objc_library( + name = "PKCS", + enable_modules = True, + module_name = "PKCS", + srcs = glob([ + "Sources/**/*.m", + "Sources/**/*.h", + ]), + hdrs = glob([ + "PublicHeaders/**/*.h", + ]), + includes = [ + "PublicHeaders", + ], + deps = [ + "//submodules/openssl:openssl", + ], + sdk_frameworks = [ + "Foundation", + ], + visibility = [ + "//visibility:public", + ], +) diff --git a/submodules/PKCS/Sources/MTPKCS.h b/submodules/PKCS/PublicHeaders/PKCS/PKCS.h similarity index 100% rename from submodules/PKCS/Sources/MTPKCS.h rename to submodules/PKCS/PublicHeaders/PKCS/PKCS.h diff --git a/submodules/PKCS/Sources/MTPKCS.m b/submodules/PKCS/Sources/PKCS.m similarity index 99% rename from submodules/PKCS/Sources/MTPKCS.m rename to submodules/PKCS/Sources/PKCS.m index 100010aa04..a6bdd1f9fc 100644 --- a/submodules/PKCS/Sources/MTPKCS.m +++ b/submodules/PKCS/Sources/PKCS.m @@ -1,4 +1,4 @@ -#import "MTPKCS.h" +#import #include #include diff --git a/submodules/PasscodeUI/Sources/PasscodeBackground.swift b/submodules/PasscodeUI/Sources/PasscodeBackground.swift index 4fa29bc85a..41bed65bbe 100644 --- a/submodules/PasscodeUI/Sources/PasscodeBackground.swift +++ b/submodules/PasscodeUI/Sources/PasscodeBackground.swift @@ -2,6 +2,7 @@ import Foundation import UIKit import Display import ImageBlur +import FastBlur protocol PasscodeBackground { var size: CGSize { get } diff --git a/submodules/Pdf/BUILD b/submodules/Pdf/BUILD index e67a3c2c8e..cf05f0ebeb 100644 --- a/submodules/Pdf/BUILD +++ b/submodules/Pdf/BUILD @@ -6,6 +6,9 @@ swift_library( srcs = glob([ "Sources/**/*.swift", ]), + deps = [ + "//submodules/Display:Display", + ], visibility = [ "//visibility:public", ], diff --git a/submodules/Postbox/Sources/SqliteValueBox.swift b/submodules/Postbox/Sources/SqliteValueBox.swift index 70b3e5661d..9370955ce2 100644 --- a/submodules/Postbox/Sources/SqliteValueBox.swift +++ b/submodules/Postbox/Sources/SqliteValueBox.swift @@ -221,6 +221,10 @@ public final class SqliteValueBox: ValueBox { let _ = try? FileManager.default.createDirectory(atPath: basePath, withIntermediateDirectories: true, attributes: nil) let path = basePath + "/db_sqlite" + #if DEBUG + print("Instance \(self) opening sqlite at \(path)") + #endif + #if DEBUG let exists = FileManager.default.fileExists(atPath: path) postboxLog("Opening \(path), exists: \(exists)") diff --git a/submodules/RMIntro/BUILD b/submodules/RMIntro/BUILD new file mode 100644 index 0000000000..79ac8fa087 --- /dev/null +++ b/submodules/RMIntro/BUILD @@ -0,0 +1,37 @@ +load("//build-system:unique_directories.bzl", "unique_directories") + +private_headers = glob([ + "Sources/**/*.h", +]) + +objc_library( + name = "RMIntro", + enable_modules = True, + module_name = "RMIntro", + srcs = glob([ + "Sources/**/*.m", + "Sources/**/*.c", + ]) + private_headers, + hdrs = glob([ + "PublicHeaders/**/*.h", + ]), + includes = [ + "PublicHeaders", + ], + copts = [ + "-Isubmodules/RMIntro/{}".format(directory) for directory in unique_directories(private_headers) + ] + [ + "-Isubmodules/RMIntro/PublicHeaders/RMIntro", + ], + deps = [ + "//submodules/LegacyComponents:LegacyComponents", + ], + sdk_frameworks = [ + "Foundation", + "UIKit", + "GLKit", + ], + visibility = [ + "//visibility:public", + ], +) diff --git a/submodules/RMIntro/PublicHeaders/RMIntro/RMIntro.h b/submodules/RMIntro/PublicHeaders/RMIntro/RMIntro.h new file mode 100644 index 0000000000..dde9a1008c --- /dev/null +++ b/submodules/RMIntro/PublicHeaders/RMIntro/RMIntro.h @@ -0,0 +1,4 @@ +#import + +#import + diff --git a/submodules/RMIntro/Sources/platform/ios/RMIntroViewController.h b/submodules/RMIntro/PublicHeaders/RMIntro/RMIntroViewController.h similarity index 100% rename from submodules/RMIntro/Sources/platform/ios/RMIntroViewController.h rename to submodules/RMIntro/PublicHeaders/RMIntro/RMIntroViewController.h diff --git a/submodules/RMIntro/Sources/RMIntro.h b/submodules/RMIntro/Sources/RMIntro.h deleted file mode 100644 index 80d982ff62..0000000000 --- a/submodules/RMIntro/Sources/RMIntro.h +++ /dev/null @@ -1,10 +0,0 @@ -#import - -//! Project version number for RMIntro. -FOUNDATION_EXPORT double RMIntroVersionNumber; - -//! Project version string for RMIntro. -FOUNDATION_EXPORT const unsigned char RMIntroVersionString[]; - -#import - diff --git a/submodules/RaiseToListen/BUILD b/submodules/RaiseToListen/BUILD new file mode 100644 index 0000000000..5e13c69fdc --- /dev/null +++ b/submodules/RaiseToListen/BUILD @@ -0,0 +1,15 @@ +load("@build_bazel_rules_swift//swift:swift.bzl", "swift_library") + +swift_library( + name = "RaiseToListen", + module_name = "RaiseToListen", + srcs = glob([ + "Sources/**/*.swift", + ]), + deps = [ + "//submodules/RaiseToListen/Impl:RaiseToListenImpl", + ], + visibility = [ + "//visibility:public", + ], +) diff --git a/submodules/RaiseToListen/Impl/BUILD b/submodules/RaiseToListen/Impl/BUILD new file mode 100644 index 0000000000..0ecababba4 --- /dev/null +++ b/submodules/RaiseToListen/Impl/BUILD @@ -0,0 +1,26 @@ + +objc_library( + name = "RaiseToListenImpl", + enable_modules = True, + module_name = "RaiseToListenImpl", + srcs = glob([ + "Sources/**/*.m", + "Sources/**/*.h", + ]), + hdrs = glob([ + "PublicHeaders/**/*.h", + ]), + includes = [ + "PublicHeaders", + ], + deps = [ + "//submodules/DeviceProximity:DeviceProximity", + ], + sdk_frameworks = [ + "Foundation", + "UIKit", + ], + visibility = [ + "//visibility:public", + ], +) diff --git a/submodules/RaiseToListen/Sources/RaiseToListenActivator.h b/submodules/RaiseToListen/Impl/PublicHeaders/RaiseToListenImpl/RaiseToListenActivator.h similarity index 100% rename from submodules/RaiseToListen/Sources/RaiseToListenActivator.h rename to submodules/RaiseToListen/Impl/PublicHeaders/RaiseToListenImpl/RaiseToListenActivator.h diff --git a/submodules/RaiseToListen/Impl/PublicHeaders/RaiseToListenImpl/RaiseToListenImpl.h b/submodules/RaiseToListen/Impl/PublicHeaders/RaiseToListenImpl/RaiseToListenImpl.h new file mode 100644 index 0000000000..804710a7e5 --- /dev/null +++ b/submodules/RaiseToListen/Impl/PublicHeaders/RaiseToListenImpl/RaiseToListenImpl.h @@ -0,0 +1,5 @@ +#import + +#import + + diff --git a/submodules/RaiseToListen/Sources/RaiseToListenActivator.m b/submodules/RaiseToListen/Impl/Sources/RaiseToListenActivator.m similarity index 99% rename from submodules/RaiseToListen/Sources/RaiseToListenActivator.m rename to submodules/RaiseToListen/Impl/Sources/RaiseToListenActivator.m index f26f11fc28..5251e1f80e 100644 --- a/submodules/RaiseToListen/Sources/RaiseToListenActivator.m +++ b/submodules/RaiseToListen/Impl/Sources/RaiseToListenActivator.m @@ -1,4 +1,4 @@ -#import "RaiseToListenActivator.h" +#import #import #import diff --git a/submodules/RaiseToListen/Sources/RaiseToListen.h b/submodules/RaiseToListen/Sources/RaiseToListen.h deleted file mode 100644 index 4bae0bc1e3..0000000000 --- a/submodules/RaiseToListen/Sources/RaiseToListen.h +++ /dev/null @@ -1,11 +0,0 @@ -#import - -//! Project version number for RaiseToListen. -FOUNDATION_EXPORT double RaiseToListenVersionNumber; - -//! Project version string for RaiseToListen. -FOUNDATION_EXPORT const unsigned char RaiseToListenVersionString[]; - -#import - - diff --git a/submodules/RaiseToListen/Sources/RaiseToListen.swift b/submodules/RaiseToListen/Sources/RaiseToListen.swift index d92435cd10..bf70869ac5 100644 --- a/submodules/RaiseToListen/Sources/RaiseToListen.swift +++ b/submodules/RaiseToListen/Sources/RaiseToListen.swift @@ -1,5 +1,7 @@ import Foundation +import RaiseToListenImpl + public final class RaiseToListenManager { private let activator: RaiseToListenActivator diff --git a/submodules/SettingsUI/Sources/Data and Storage/ProxyListSettingsController.swift b/submodules/SettingsUI/Sources/Data and Storage/ProxyListSettingsController.swift index c0424de212..2a16303a93 100644 --- a/submodules/SettingsUI/Sources/Data and Storage/ProxyListSettingsController.swift +++ b/submodules/SettingsUI/Sources/Data and Storage/ProxyListSettingsController.swift @@ -6,11 +6,7 @@ import Postbox import TelegramCore import SyncCore import TelegramPresentationData -#if BUCK import MtProtoKit -#else -import MtProtoKitDynamic -#endif import ItemListUI import PresentationDataUtils import AccountContext diff --git a/submodules/SettingsUI/Sources/Data and Storage/ProxyServerSettingsController.swift b/submodules/SettingsUI/Sources/Data and Storage/ProxyServerSettingsController.swift index 68dcaa32c1..8686fb7d27 100644 --- a/submodules/SettingsUI/Sources/Data and Storage/ProxyServerSettingsController.swift +++ b/submodules/SettingsUI/Sources/Data and Storage/ProxyServerSettingsController.swift @@ -5,11 +5,7 @@ import SwiftSignalKit import Postbox import TelegramCore import SyncCore -#if BUCK import MtProtoKit -#else -import MtProtoKitDynamic -#endif import TelegramPresentationData import ItemListUI import PresentationDataUtils diff --git a/submodules/SettingsUI/Sources/DebugController.swift b/submodules/SettingsUI/Sources/DebugController.swift index e33c1130f8..2266898b90 100644 --- a/submodules/SettingsUI/Sources/DebugController.swift +++ b/submodules/SettingsUI/Sources/DebugController.swift @@ -5,11 +5,7 @@ import SwiftSignalKit import Postbox import TelegramCore import SyncCore -#if BUCK import MtProtoKit -#else -import MtProtoKitDynamic -#endif import MessageUI import TelegramPresentationData import TelegramUIPreferences diff --git a/submodules/SettingsUI/Sources/Themes/ThemeAutoNightSettingsController.swift b/submodules/SettingsUI/Sources/Themes/ThemeAutoNightSettingsController.swift index 13136e0a15..47581bc752 100644 --- a/submodules/SettingsUI/Sources/Themes/ThemeAutoNightSettingsController.swift +++ b/submodules/SettingsUI/Sources/Themes/ThemeAutoNightSettingsController.swift @@ -14,6 +14,7 @@ import AccountContext import DeviceLocationManager import Geocoding import WallpaperResources +import Sunrise private enum TriggerMode { case system diff --git a/submodules/ShareItems/BUILD b/submodules/ShareItems/BUILD new file mode 100644 index 0000000000..55ffcf3d8d --- /dev/null +++ b/submodules/ShareItems/BUILD @@ -0,0 +1,25 @@ +load("@build_bazel_rules_swift//swift:swift.bzl", "swift_library") + +swift_library( + name = "ShareItems", + module_name = "ShareItems", + srcs = glob([ + "Sources/**/*.swift", + ]), + deps = [ + "//submodules/SSignalKit/SwiftSignalKit:SwiftSignalKit", + "//submodules/Postbox:Postbox", + "//submodules/TelegramCore:TelegramCore", + "//submodules/SyncCore:SyncCore", + "//submodules/MtProtoKit:MtProtoKit", + "//submodules/Display:Display", + "//submodules/LegacyComponents:LegacyComponents", + "//submodules/LocalMediaResources:LocalMediaResources", + "//submodules/Pdf:Pdf", + "//submodules/AccountContext:AccountContext", + "//submodules/ShareItems/Impl:ShareItemsImpl", + ], + visibility = [ + "//visibility:public", + ], +) diff --git a/submodules/ShareItems/Impl/BUILD b/submodules/ShareItems/Impl/BUILD new file mode 100644 index 0000000000..7d9d422737 --- /dev/null +++ b/submodules/ShareItems/Impl/BUILD @@ -0,0 +1,32 @@ + +objc_library( + name = "ShareItemsImpl", + enable_modules = True, + module_name = "ShareItemsImpl", + srcs = glob([ + "Sources/**/*.m", + "Sources/**/*.h", + ]), + hdrs = glob([ + "PublicHeaders/**/*.h", + ]), + includes = [ + "PublicHeaders", + ], + deps = [ + "//submodules/MtProtoKit:MtProtoKit", + "//submodules/PhoneNumberFormat:PhoneNumberFormat", + "//submodules/MimeTypes:MimeTypes", + ], + sdk_frameworks = [ + "Foundation", + "UIKit", + "MobileCoreServices", + "AddressBook", + "AVFoundation", + "PassKit", + ], + visibility = [ + "//visibility:public", + ], +) diff --git a/submodules/ShareItems/Impl/PublicHeaders/ShareItemsImpl/ShareItems.h b/submodules/ShareItems/Impl/PublicHeaders/ShareItemsImpl/ShareItems.h new file mode 100644 index 0000000000..42be0efe84 --- /dev/null +++ b/submodules/ShareItems/Impl/PublicHeaders/ShareItemsImpl/ShareItems.h @@ -0,0 +1,6 @@ +#import + +#import +#import + + diff --git a/submodules/ShareItems/Sources/TGItemProviderSignals.h b/submodules/ShareItems/Impl/PublicHeaders/ShareItemsImpl/TGItemProviderSignals.h similarity index 100% rename from submodules/ShareItems/Sources/TGItemProviderSignals.h rename to submodules/ShareItems/Impl/PublicHeaders/ShareItemsImpl/TGItemProviderSignals.h diff --git a/submodules/ShareItems/Sources/TGShareLocationSignals.h b/submodules/ShareItems/Impl/PublicHeaders/ShareItemsImpl/TGShareLocationSignals.h similarity index 100% rename from submodules/ShareItems/Sources/TGShareLocationSignals.h rename to submodules/ShareItems/Impl/PublicHeaders/ShareItemsImpl/TGShareLocationSignals.h diff --git a/submodules/ShareItems/Sources/TGItemProviderSignals.m b/submodules/ShareItems/Impl/Sources/TGItemProviderSignals.m similarity index 99% rename from submodules/ShareItems/Sources/TGItemProviderSignals.m rename to submodules/ShareItems/Impl/Sources/TGItemProviderSignals.m index 6a7ae46a41..bb84fce6aa 100644 --- a/submodules/ShareItems/Sources/TGItemProviderSignals.m +++ b/submodules/ShareItems/Impl/Sources/TGItemProviderSignals.m @@ -1,10 +1,6 @@ -#import "TGItemProviderSignals.h" +#import -#ifdef BUCK #import -#else -#import -#endif #import #import @@ -14,8 +10,6 @@ #import -#import "TGContactModel.h" - @implementation TGItemProviderSignals + (NSArray *)itemSignalsForInputItems:(NSArray *)inputItems diff --git a/submodules/ShareItems/Sources/TGShareLocationSignals.m b/submodules/ShareItems/Impl/Sources/TGShareLocationSignals.m similarity index 99% rename from submodules/ShareItems/Sources/TGShareLocationSignals.m rename to submodules/ShareItems/Impl/Sources/TGShareLocationSignals.m index 84544edba6..7eaf7fe418 100644 --- a/submodules/ShareItems/Sources/TGShareLocationSignals.m +++ b/submodules/ShareItems/Impl/Sources/TGShareLocationSignals.m @@ -1,10 +1,6 @@ -#import "TGShareLocationSignals.h" +#import -#ifdef BUCK #import -#else -#import -#endif NSString *const TGShareAppleMapsHost = @"maps.apple.com"; NSString *const TGShareAppleMapsPath = @"/maps"; diff --git a/submodules/ShareItems/Sources/ShareItems.h b/submodules/ShareItems/Sources/ShareItems.h deleted file mode 100644 index 9dd09adf4d..0000000000 --- a/submodules/ShareItems/Sources/ShareItems.h +++ /dev/null @@ -1,13 +0,0 @@ -#import - -//! Project version number for ShareItems. -FOUNDATION_EXPORT double ShareItemsVersionNumber; - -//! Project version string for ShareItems. -FOUNDATION_EXPORT const unsigned char ShareItemsVersionString[]; - -#import -#import -#import - - diff --git a/submodules/ShareItems/Sources/ShareItems.swift b/submodules/ShareItems/Sources/ShareItems.swift index f87db7d9b3..87f271c800 100644 --- a/submodules/ShareItems/Sources/ShareItems.swift +++ b/submodules/ShareItems/Sources/ShareItems.swift @@ -3,17 +3,14 @@ import SwiftSignalKit import Postbox import TelegramCore import SyncCore -#if BUCK import MtProtoKit -#else -import MtProtoKitDynamic -#endif import Display import AccountContext import Pdf import LocalMediaResources import AVFoundation import LegacyComponents +import ShareItemsImpl public enum UnpreparedShareItemContent { case contact(DeviceContactExtendedData) diff --git a/submodules/ShareItems/Sources/TGContactModel.h b/submodules/ShareItems/Sources/TGContactModel.h deleted file mode 100644 index 5218304bd0..0000000000 --- a/submodules/ShareItems/Sources/TGContactModel.h +++ /dev/null @@ -1,24 +0,0 @@ -#import - -@interface TGPhoneNumberModel : NSObject - -@property (nonatomic, strong, readonly) NSString *phoneNumber; -@property (nonatomic, strong, readonly) NSString *displayPhoneNumber; - -@property (nonatomic, strong, readonly) NSString *label; - -- (instancetype)initWithPhoneNumber:(NSString *)string label:(NSString *)label; - -@end - - -@interface TGContactModel : NSObject - -@property (nonatomic, strong, readonly) NSString *firstName; -@property (nonatomic, strong, readonly) NSString *lastName; - -@property (nonatomic, strong, readonly) NSArray *phoneNumbers; - -- (instancetype)initWithFirstName:(NSString *)firstName lastName:(NSString *)lastName phoneNumbers:(NSArray *)phoneNumbers; - -@end diff --git a/submodules/ShareItems/Sources/TGContactModel.m b/submodules/ShareItems/Sources/TGContactModel.m deleted file mode 100644 index 8a69aad4b1..0000000000 --- a/submodules/ShareItems/Sources/TGContactModel.m +++ /dev/null @@ -1,35 +0,0 @@ -#import "TGContactModel.h" - -#import - -@implementation TGPhoneNumberModel - -- (instancetype)initWithPhoneNumber:(NSString *)phoneNumber label:(NSString *)label -{ - self = [super init]; - if (self != nil) - { - _phoneNumber = [FormatPhoneNumber cleanInternationalPhone:phoneNumber forceInternational:false]; - _displayPhoneNumber = [FormatPhoneNumber formatPhoneNumber:_phoneNumber]; - _label = label; - } - return self; -} - -@end - -@implementation TGContactModel - -- (instancetype)initWithFirstName:(NSString *)firstName lastName:(NSString *)lastName phoneNumbers:(NSArray *)phoneNumbers -{ - self = [super init]; - if (self != nil) - { - _firstName = firstName; - _lastName = lastName; - _phoneNumbers = phoneNumbers; - } - return self; -} - -@end diff --git a/submodules/Stripe/BUILD b/submodules/Stripe/BUILD new file mode 100644 index 0000000000..98a5f786f1 --- /dev/null +++ b/submodules/Stripe/BUILD @@ -0,0 +1,27 @@ + +objc_library( + name = "Stripe", + enable_modules = True, + module_name = "Stripe", + srcs = glob([ + "Sources/**/*.m", + "Sources/**/*.h", + ]), + hdrs = glob([ + "PublicHeaders/**/*.h", + ]), + includes = [ + "PublicHeaders", + ], + copts = [ + "-Isubmodules/Stripe/PublicHeaders/Stripe", + ], + sdk_frameworks = [ + "Foundation", + "UIKit", + "PassKit", + ], + visibility = [ + "//visibility:public", + ], +) diff --git a/submodules/Stripe/Sources/STPAPIClient+ApplePay.h b/submodules/Stripe/PublicHeaders/Stripe/STPAPIClient+ApplePay.h similarity index 100% rename from submodules/Stripe/Sources/STPAPIClient+ApplePay.h rename to submodules/Stripe/PublicHeaders/Stripe/STPAPIClient+ApplePay.h diff --git a/submodules/Stripe/Sources/STPAPIClient.h b/submodules/Stripe/PublicHeaders/Stripe/STPAPIClient.h similarity index 100% rename from submodules/Stripe/Sources/STPAPIClient.h rename to submodules/Stripe/PublicHeaders/Stripe/STPAPIClient.h diff --git a/submodules/Stripe/Sources/STPAPIResponseDecodable.h b/submodules/Stripe/PublicHeaders/Stripe/STPAPIResponseDecodable.h similarity index 100% rename from submodules/Stripe/Sources/STPAPIResponseDecodable.h rename to submodules/Stripe/PublicHeaders/Stripe/STPAPIResponseDecodable.h diff --git a/submodules/Stripe/Sources/STPAddress.h b/submodules/Stripe/PublicHeaders/Stripe/STPAddress.h similarity index 100% rename from submodules/Stripe/Sources/STPAddress.h rename to submodules/Stripe/PublicHeaders/Stripe/STPAddress.h diff --git a/submodules/Stripe/Sources/STPBINRange.h b/submodules/Stripe/PublicHeaders/Stripe/STPBINRange.h similarity index 100% rename from submodules/Stripe/Sources/STPBINRange.h rename to submodules/Stripe/PublicHeaders/Stripe/STPBINRange.h diff --git a/submodules/Stripe/Sources/STPBackendAPIAdapter.h b/submodules/Stripe/PublicHeaders/Stripe/STPBackendAPIAdapter.h similarity index 100% rename from submodules/Stripe/Sources/STPBackendAPIAdapter.h rename to submodules/Stripe/PublicHeaders/Stripe/STPBackendAPIAdapter.h diff --git a/submodules/Stripe/Sources/STPBankAccount.h b/submodules/Stripe/PublicHeaders/Stripe/STPBankAccount.h similarity index 100% rename from submodules/Stripe/Sources/STPBankAccount.h rename to submodules/Stripe/PublicHeaders/Stripe/STPBankAccount.h diff --git a/submodules/Stripe/Sources/STPBankAccountParams.h b/submodules/Stripe/PublicHeaders/Stripe/STPBankAccountParams.h similarity index 100% rename from submodules/Stripe/Sources/STPBankAccountParams.h rename to submodules/Stripe/PublicHeaders/Stripe/STPBankAccountParams.h diff --git a/submodules/Stripe/Sources/STPBlocks.h b/submodules/Stripe/PublicHeaders/Stripe/STPBlocks.h similarity index 100% rename from submodules/Stripe/Sources/STPBlocks.h rename to submodules/Stripe/PublicHeaders/Stripe/STPBlocks.h diff --git a/submodules/Stripe/Sources/STPCard.h b/submodules/Stripe/PublicHeaders/Stripe/STPCard.h similarity index 100% rename from submodules/Stripe/Sources/STPCard.h rename to submodules/Stripe/PublicHeaders/Stripe/STPCard.h diff --git a/submodules/Stripe/Sources/STPCardBrand.h b/submodules/Stripe/PublicHeaders/Stripe/STPCardBrand.h similarity index 100% rename from submodules/Stripe/Sources/STPCardBrand.h rename to submodules/Stripe/PublicHeaders/Stripe/STPCardBrand.h diff --git a/submodules/Stripe/Sources/STPCardParams.h b/submodules/Stripe/PublicHeaders/Stripe/STPCardParams.h similarity index 100% rename from submodules/Stripe/Sources/STPCardParams.h rename to submodules/Stripe/PublicHeaders/Stripe/STPCardParams.h diff --git a/submodules/Stripe/Sources/STPCardValidationState.h b/submodules/Stripe/PublicHeaders/Stripe/STPCardValidationState.h similarity index 100% rename from submodules/Stripe/Sources/STPCardValidationState.h rename to submodules/Stripe/PublicHeaders/Stripe/STPCardValidationState.h diff --git a/submodules/Stripe/Sources/STPCardValidator.h b/submodules/Stripe/PublicHeaders/Stripe/STPCardValidator.h similarity index 100% rename from submodules/Stripe/Sources/STPCardValidator.h rename to submodules/Stripe/PublicHeaders/Stripe/STPCardValidator.h diff --git a/submodules/Stripe/Sources/STPCustomer.h b/submodules/Stripe/PublicHeaders/Stripe/STPCustomer.h similarity index 100% rename from submodules/Stripe/Sources/STPCustomer.h rename to submodules/Stripe/PublicHeaders/Stripe/STPCustomer.h diff --git a/submodules/Stripe/Sources/STPFormEncodable.h b/submodules/Stripe/PublicHeaders/Stripe/STPFormEncodable.h similarity index 100% rename from submodules/Stripe/Sources/STPFormEncodable.h rename to submodules/Stripe/PublicHeaders/Stripe/STPFormEncodable.h diff --git a/submodules/Stripe/Sources/STPPaymentCardTextField.h b/submodules/Stripe/PublicHeaders/Stripe/STPPaymentCardTextField.h similarity index 100% rename from submodules/Stripe/Sources/STPPaymentCardTextField.h rename to submodules/Stripe/PublicHeaders/Stripe/STPPaymentCardTextField.h diff --git a/submodules/Stripe/Sources/STPPaymentConfiguration.h b/submodules/Stripe/PublicHeaders/Stripe/STPPaymentConfiguration.h similarity index 100% rename from submodules/Stripe/Sources/STPPaymentConfiguration.h rename to submodules/Stripe/PublicHeaders/Stripe/STPPaymentConfiguration.h diff --git a/submodules/Stripe/Sources/STPPaymentMethod.h b/submodules/Stripe/PublicHeaders/Stripe/STPPaymentMethod.h similarity index 100% rename from submodules/Stripe/Sources/STPPaymentMethod.h rename to submodules/Stripe/PublicHeaders/Stripe/STPPaymentMethod.h diff --git a/submodules/Stripe/Sources/STPPhoneNumberValidator.h b/submodules/Stripe/PublicHeaders/Stripe/STPPhoneNumberValidator.h similarity index 100% rename from submodules/Stripe/Sources/STPPhoneNumberValidator.h rename to submodules/Stripe/PublicHeaders/Stripe/STPPhoneNumberValidator.h diff --git a/submodules/Stripe/Sources/STPPostalCodeValidator.h b/submodules/Stripe/PublicHeaders/Stripe/STPPostalCodeValidator.h similarity index 100% rename from submodules/Stripe/Sources/STPPostalCodeValidator.h rename to submodules/Stripe/PublicHeaders/Stripe/STPPostalCodeValidator.h diff --git a/submodules/Stripe/Sources/STPSource.h b/submodules/Stripe/PublicHeaders/Stripe/STPSource.h similarity index 100% rename from submodules/Stripe/Sources/STPSource.h rename to submodules/Stripe/PublicHeaders/Stripe/STPSource.h diff --git a/submodules/Stripe/Sources/STPToken.h b/submodules/Stripe/PublicHeaders/Stripe/STPToken.h similarity index 100% rename from submodules/Stripe/Sources/STPToken.h rename to submodules/Stripe/PublicHeaders/Stripe/STPToken.h diff --git a/submodules/Stripe/Sources/Stripe.h b/submodules/Stripe/PublicHeaders/Stripe/Stripe.h similarity index 80% rename from submodules/Stripe/Sources/Stripe.h rename to submodules/Stripe/PublicHeaders/Stripe/Stripe.h index 3cac805037..7b2d10cfb4 100644 --- a/submodules/Stripe/Sources/Stripe.h +++ b/submodules/Stripe/PublicHeaders/Stripe/Stripe.h @@ -1,11 +1,5 @@ #import -//! Project version number for Stripe. -FOUNDATION_EXPORT double StripeVersionNumber; - -//! Project version string for Stripe. -FOUNDATION_EXPORT const unsigned char StripeVersionString[]; - #import #import #import diff --git a/submodules/Stripe/Sources/StripeError.h b/submodules/Stripe/PublicHeaders/Stripe/StripeError.h similarity index 100% rename from submodules/Stripe/Sources/StripeError.h rename to submodules/Stripe/PublicHeaders/Stripe/StripeError.h diff --git a/submodules/Svg/BUILD b/submodules/Svg/BUILD new file mode 100644 index 0000000000..eba76650f4 --- /dev/null +++ b/submodules/Svg/BUILD @@ -0,0 +1,23 @@ + +objc_library( + name = "Svg", + enable_modules = True, + module_name = "Svg", + srcs = glob([ + "Sources/**/*.m", + "Sources/**/*.c", + "Sources/**/*.h", + ]), + hdrs = glob([ + "PublicHeaders/**/*.h", + ]), + includes = [ + "PublicHeaders", + ], + sdk_frameworks = [ + "Foundation", + ], + visibility = [ + "//visibility:public", + ], +) diff --git a/submodules/Svg/Sources/Svg.h b/submodules/Svg/PublicHeaders/Svg/Svg.h similarity index 100% rename from submodules/Svg/Sources/Svg.h rename to submodules/Svg/PublicHeaders/Svg/Svg.h diff --git a/submodules/Svg/Sources/Svg.m b/submodules/Svg/Sources/Svg.m index def1d2b873..099cb481f0 100755 --- a/submodules/Svg/Sources/Svg.m +++ b/submodules/Svg/Sources/Svg.m @@ -1,4 +1,4 @@ -#import "Svg.h" +#import #import "nanosvg.h" diff --git a/submodules/TelegramCallsUI/Sources/CallControllerNode.swift b/submodules/TelegramCallsUI/Sources/CallControllerNode.swift index 597b11e526..f39121ff9e 100644 --- a/submodules/TelegramCallsUI/Sources/CallControllerNode.swift +++ b/submodules/TelegramCallsUI/Sources/CallControllerNode.swift @@ -12,6 +12,7 @@ import TelegramAudio import AccountContext import LocalizedPeerData import PhotoResources +import CallsEmoji final class CallControllerNode: ASDisplayNode { private let sharedContext: SharedAccountContext diff --git a/submodules/TelegramUI/BUILD b/submodules/TelegramUI/BUILD index 53a901fc0c..a7e7824561 100644 --- a/submodules/TelegramUI/BUILD +++ b/submodules/TelegramUI/BUILD @@ -37,8 +37,8 @@ swift_library( "//submodules/LegacyComponents:LegacyComponents", "//submodules/libtgvoip:libtgvoip", "//submodules/lottie-ios:Lottie", - "//submodules/FFMpeg:FFMpeg", - "//submodules/WebP:WebPImage", + "//submodules/FFMpegBinding:FFMpegBinding", + "//submodules/WebPBinding:WebPBinding", "//submodules/RMIntro:RMIntro", "//submodules/GZip:GZip", "//submodules/TelegramCallsUI:TelegramCallsUI", @@ -88,7 +88,6 @@ swift_library( "//submodules/AnimatedStickerNode:AnimatedStickerNode", "//submodules/TelegramAnimatedStickerNode:TelegramAnimatedStickerNode", "//submodules/ActionSheetPeerItem:ActionSheetPeerItem", - "//submodules/AccountContext:AccountContext", "//submodules/ComposePollUI:ComposePollUI", "//submodules/AlertUI:AlertUI", "//submodules/PresentationDataUtils:PresentationDataUtils", @@ -173,6 +172,7 @@ swift_library( "//submodules/WatchBridge:WatchBridge", "//submodules/LegacyDataImport:LegacyDataImport", "//submodules/ShareItems:ShareItems", + "//submodules/ShareItems/Impl:ShareItemsImpl", "//submodules/ReactionSelectionNode:ReactionSelectionNode", "//submodules/SettingsUI:SettingsUI", "//submodules/UrlHandling:UrlHandling", diff --git a/submodules/TelegramUI/Sources/AppDelegate.swift b/submodules/TelegramUI/Sources/AppDelegate.swift index 4ffe9ebd9c..d437702629 100644 --- a/submodules/TelegramUI/Sources/AppDelegate.swift +++ b/submodules/TelegramUI/Sources/AppDelegate.swift @@ -2400,4 +2400,8 @@ private func downloadHTTPData(url: URL) -> Signal { } } } + + func testMethod() { + + } } diff --git a/submodules/TelegramUI/Sources/ApplicationContext.swift b/submodules/TelegramUI/Sources/ApplicationContext.swift index eeaa5b2e6d..377a70629a 100644 --- a/submodules/TelegramUI/Sources/ApplicationContext.swift +++ b/submodules/TelegramUI/Sources/ApplicationContext.swift @@ -19,6 +19,7 @@ import LegacyUI import TelegramPermissionsUI import PasscodeUI import ImageBlur +import FastBlur import WatchBridge import SettingsUI import AppLock diff --git a/submodules/TelegramUI/Sources/AuthorizationSequenceController.swift b/submodules/TelegramUI/Sources/AuthorizationSequenceController.swift index 9ef68b15a7..418241b8e5 100644 --- a/submodules/TelegramUI/Sources/AuthorizationSequenceController.swift +++ b/submodules/TelegramUI/Sources/AuthorizationSequenceController.swift @@ -6,11 +6,7 @@ import Postbox import TelegramCore import SyncCore import SwiftSignalKit -#if BUCK import MtProtoKit -#else -import MtProtoKitDynamic -#endif import MessageUI import CoreTelephony import TelegramPresentationData diff --git a/submodules/TelegramUI/Sources/AuthorizationSequencePhoneEntryControllerNode.swift b/submodules/TelegramUI/Sources/AuthorizationSequencePhoneEntryControllerNode.swift index c887a828af..8444c74660 100644 --- a/submodules/TelegramUI/Sources/AuthorizationSequencePhoneEntryControllerNode.swift +++ b/submodules/TelegramUI/Sources/AuthorizationSequencePhoneEntryControllerNode.swift @@ -271,6 +271,7 @@ final class AuthorizationSequencePhoneEntryControllerNode: ASDisplayNode { self.titleNode.attributedText = NSAttributedString(string: strings.Login_PhoneTitle, font: Font.light(30.0), textColor: theme.list.itemPrimaryTextColor) self.noticeNode = ASTextNode() + self.noticeNode.maximumNumberOfLines = 0 self.noticeNode.isUserInteractionEnabled = true self.noticeNode.displaysAsynchronously = false self.noticeNode.attributedText = NSAttributedString(string: strings.Login_PhoneAndCountryHelp, font: Font.regular(16.0), textColor: theme.list.itemPrimaryTextColor, paragraphAlignment: .center) diff --git a/submodules/TelegramUI/Sources/ChatController.swift b/submodules/TelegramUI/Sources/ChatController.swift index b9cb8fcc48..70cbd9adec 100644 --- a/submodules/TelegramUI/Sources/ChatController.swift +++ b/submodules/TelegramUI/Sources/ChatController.swift @@ -534,6 +534,9 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G strongSelf.controllerInteraction?.addContact(phoneNumber) } }, storeMediaPlaybackState: { [weak self] messageId, timestamp in + guard let strongSelf = self else { + return + } var storedState: MediaPlaybackStoredState? if let timestamp = timestamp { storedState = MediaPlaybackStoredState(timestamp: timestamp, playbackRate: .x1) @@ -1615,7 +1618,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G guard let strongSelf = self, let resultPoll = resultPoll else { return } - guard let message = strongSelf.chatDisplayNode.historyNode.messageInCurrentHistoryView(id) else { + guard let _ = strongSelf.chatDisplayNode.historyNode.messageInCurrentHistoryView(id) else { return } @@ -3387,7 +3390,6 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G } } - let editingMessage = strongSelf.editingMessage let text = trimChatInputText(convertMarkdownToAttributes(editMessage.inputState.inputText)) let entities = generateTextEntities(text.string, enabledTypes: .all, currentEntities: generateChatInputTextEntities(text)) var entitiesAttribute: TextEntitiesMessageAttribute? @@ -3461,7 +3463,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G strongSelf.searchResultsController = nil } }, openSearchResults: { [weak self] in - if let strongSelf = self, let searchData = strongSelf.presentationInterfaceState.search, let results = searchData.resultsState { + if let strongSelf = self, let searchData = strongSelf.presentationInterfaceState.search, let _ = searchData.resultsState { if let controller = strongSelf.searchResultsController { strongSelf.chatDisplayNode.dismissInput() if case let .inline(navigationController) = strongSelf.presentationInterfaceState.mode { @@ -4193,9 +4195,6 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G } disposables.set((signal |> deliverOnMainQueue).start(error: { _ in - guard let _ = self else { - return - } }, completed: { guard let strongSelf = self else { return @@ -4684,13 +4683,6 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G if !self.didSetup3dTouch { self.didSetup3dTouch = true - if #available(iOSApplicationExtension 9.0, iOS 9.0, *) { - //self.registerForPreviewing(with: self, sourceView: self.chatDisplayNode.historyNodeContainer.view, theme: PeekControllerTheme(presentationTheme: self.presentationData.theme), onlyNative: true) - if case .peer = self.chatLocation, let buttonView = (self.chatInfoNavigationButton?.buttonItem.customDisplayNode as? ChatAvatarNavigationNode)?.avatarNode.view { - //self.registerForPreviewing(with: self, sourceView: buttonView, theme: PeekControllerTheme(presentationTheme: self.presentationData.theme), onlyNative: true) - } - } - if #available(iOSApplicationExtension 11.0, iOS 11.0, *) { let dropInteraction = UIDropInteraction(delegate: self) self.chatDisplayNode.view.addInteraction(dropInteraction) @@ -5563,8 +5555,6 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G var signal = clearCachedMediaResources(account: strongSelf.context.account, mediaResourceIds: clearResourceIds) - let resultStats = CacheUsageStats(media: media, mediaResourceIds: stats.mediaResourceIds, peers: stats.peers, otherSize: stats.otherSize, otherPaths: stats.otherPaths, cacheSize: stats.cacheSize, tempPaths: stats.tempPaths, tempSize: stats.tempSize, immutableSize: stats.immutableSize) - var cancelImpl: (() -> Void)? let presentationData = strongSelf.context.sharedContext.currentPresentationData.with { $0 } let progressSignal = Signal { subscriber in @@ -5593,7 +5583,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G } disposable.set((signal |> deliverOnMainQueue).start(completed: { [weak self] in - if let strongSelf = self, let layout = strongSelf.validLayout { + if let strongSelf = self, let _ = strongSelf.validLayout { strongSelf.present(UndoOverlayController(presentationData: presentationData, content: .succeed(text: presentationData.strings.ClearCache_Success("\(dataSizeString(selectedSize, decimalSeparator: presentationData.dateTimeFormat.decimalSeparator))", stringForDeviceType()).0), elevatedLayout: true, action: { _ in return false }), in: .current) } })) @@ -6723,7 +6713,6 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G guard let strongSelf = self else { return } - let complete = results.completed var navigateIndex: MessageIndex? strongSelf.updateChatPresentationInterfaceState(animated: true, interactive: true, { current in if let data = current.search { @@ -6774,7 +6763,6 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G guard let strongSelf = self else { return } - let complete = results.completed strongSelf.updateChatPresentationInterfaceState(animated: true, interactive: true, { current in if let data = current.search, let previousResultsState = data.resultsState { let messageIndices = results.messages.map({ $0.index }).sorted() @@ -7671,7 +7659,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G rawDisplayUrl = String(rawDisplayUrl[.. UIImage? { if #available(iOSApplicationExtension 10.0, iOS 10.0, *) { diff --git a/submodules/TelegramUI/Sources/EmojiResources.swift b/submodules/TelegramUI/Sources/EmojiResources.swift index d93a9da021..730c085b42 100644 --- a/submodules/TelegramUI/Sources/EmojiResources.swift +++ b/submodules/TelegramUI/Sources/EmojiResources.swift @@ -5,11 +5,7 @@ import TelegramCore import SyncCore import SwiftSignalKit import Display -#if BUCK -import WebPImage -#else -import WebP -#endif +import WebPBinding import MediaResources import Emoji import AppBundle diff --git a/submodules/TelegramUI/Sources/FetchCachedRepresentations.swift b/submodules/TelegramUI/Sources/FetchCachedRepresentations.swift index a2448e20a4..45dfa94931 100644 --- a/submodules/TelegramUI/Sources/FetchCachedRepresentations.swift +++ b/submodules/TelegramUI/Sources/FetchCachedRepresentations.swift @@ -8,11 +8,7 @@ import ImageIO import MobileCoreServices import Display import AVFoundation -#if BUCK -import WebPImage -#else -import WebP -#endif +import WebPBinding import Lottie import MediaResources import PhotoResources diff --git a/submodules/TelegramUI/Sources/OpenUrl.swift b/submodules/TelegramUI/Sources/OpenUrl.swift index 36d0b974bc..a15f80c950 100644 --- a/submodules/TelegramUI/Sources/OpenUrl.swift +++ b/submodules/TelegramUI/Sources/OpenUrl.swift @@ -5,11 +5,7 @@ import TelegramCore import SyncCore import Postbox import SwiftSignalKit -#if BUCK import MtProtoKit -#else -import MtProtoKitDynamic -#endif import TelegramPresentationData import TelegramUIPreferences import AccountContext diff --git a/submodules/TelegramUI/Sources/ShareExtensionContext.swift b/submodules/TelegramUI/Sources/ShareExtensionContext.swift index 831d15766c..1f0d7d4f0f 100644 --- a/submodules/TelegramUI/Sources/ShareExtensionContext.swift +++ b/submodules/TelegramUI/Sources/ShareExtensionContext.swift @@ -11,6 +11,7 @@ import ShareController import LegacyUI import PeerInfoUI import ShareItems +import ShareItemsImpl import SettingsUI import OpenSSLEncryptionProvider import AppLock diff --git a/submodules/UrlHandling/Sources/UrlHandling.swift b/submodules/UrlHandling/Sources/UrlHandling.swift index 9c1fac2cfb..d016af8e75 100644 --- a/submodules/UrlHandling/Sources/UrlHandling.swift +++ b/submodules/UrlHandling/Sources/UrlHandling.swift @@ -4,11 +4,7 @@ import SwiftSignalKit import Postbox import TelegramCore import SyncCore -#if BUCK import MtProtoKit -#else -import MtProtoKitDynamic -#endif import TelegramPresentationData import TelegramUIPreferences import AccountContext diff --git a/submodules/WallpaperResources/Sources/WallpaperResources.swift b/submodules/WallpaperResources/Sources/WallpaperResources.swift index 0c39b08129..b8b6d8efcd 100644 --- a/submodules/WallpaperResources/Sources/WallpaperResources.swift +++ b/submodules/WallpaperResources/Sources/WallpaperResources.swift @@ -7,6 +7,7 @@ import TelegramCore import SyncCore import MediaResources import ImageBlur +import FastBlur import TinyThumbnail import PhotoResources import LocalMediaResources diff --git a/submodules/WatchBridge/BUILD b/submodules/WatchBridge/BUILD new file mode 100644 index 0000000000..313426283a --- /dev/null +++ b/submodules/WatchBridge/BUILD @@ -0,0 +1,31 @@ +load("@build_bazel_rules_swift//swift:swift.bzl", "swift_library") + +swift_library( + name = "WatchBridge", + module_name = "WatchBridge", + srcs = glob([ + "Sources/**/*.swift", + ]), + deps = [ + "//submodules/SSignalKit/SwiftSignalKit:SwiftSignalKit", + "//submodules/SSignalKit/SSignalKit:SSignalKit", + "//submodules/Postbox:Postbox", + "//submodules/TelegramCore:TelegramCore", + "//submodules/SyncCore:SyncCore", + "//submodules/WatchCommon/Host:WatchCommon", + "//submodules/WatchBridgeAudio:WatchBridgeAudio", + "//submodules/TelegramPresentationData:TelegramPresentationData", + "//submodules/TelegramUIPreferences:TelegramUIPreferences", + "//submodules/AccountContext:AccountContext", + "//submodules/AvatarNode:AvatarNode", + "//submodules/StickerResources:StickerResources", + "//submodules/PhotoResources:PhotoResources", + "//submodules/LegacyComponents:LegacyComponents", + "//submodules/LegacyUI:LegacyUI", + "//submodules/PhoneNumberFormat:PhoneNumberFormat", + "//submodules/WatchBridge/Impl:WatchBridgeImpl", + ], + visibility = [ + "//visibility:public", + ], +) diff --git a/submodules/WatchBridge/Impl/BUILD b/submodules/WatchBridge/Impl/BUILD new file mode 100644 index 0000000000..8127f989a9 --- /dev/null +++ b/submodules/WatchBridge/Impl/BUILD @@ -0,0 +1,27 @@ + +objc_library( + name = "WatchBridgeImpl", + enable_modules = True, + module_name = "WatchBridgeImpl", + srcs = glob([ + "Sources/**/*.m", + "Sources/**/*.h", + ]), + hdrs = glob([ + "PublicHeaders/**/*.h", + ]), + includes = [ + "PublicHeaders", + ], + deps = [ + "//submodules/LegacyComponents:LegacyComponents", + "//submodules/WatchCommon/Host:WatchCommon", + ], + sdk_frameworks = [ + "Foundation", + "WatchConnectivity", + ], + visibility = [ + "//visibility:public", + ], +) diff --git a/submodules/WatchBridge/Sources/TGBridgeServer.h b/submodules/WatchBridge/Impl/PublicHeaders/WatchBridgeImpl/TGBridgeServer.h similarity index 100% rename from submodules/WatchBridge/Sources/TGBridgeServer.h rename to submodules/WatchBridge/Impl/PublicHeaders/WatchBridgeImpl/TGBridgeServer.h diff --git a/submodules/WatchBridge/Impl/PublicHeaders/WatchBridgeImpl/WatchBridgeImpl.h b/submodules/WatchBridge/Impl/PublicHeaders/WatchBridgeImpl/WatchBridgeImpl.h new file mode 100644 index 0000000000..8ed2f162d1 --- /dev/null +++ b/submodules/WatchBridge/Impl/PublicHeaders/WatchBridgeImpl/WatchBridgeImpl.h @@ -0,0 +1,3 @@ +#import + +#import diff --git a/submodules/WatchBridge/Sources/TGBridgeServer.m b/submodules/WatchBridge/Impl/Sources/TGBridgeServer.m similarity index 99% rename from submodules/WatchBridge/Sources/TGBridgeServer.m rename to submodules/WatchBridge/Impl/Sources/TGBridgeServer.m index 372c92c8a1..6bbf49c4de 100644 --- a/submodules/WatchBridge/Sources/TGBridgeServer.m +++ b/submodules/WatchBridge/Impl/Sources/TGBridgeServer.m @@ -1,4 +1,4 @@ -#import "TGBridgeServer.h" +#import #import #import diff --git a/submodules/WatchBridge/Sources/WatchBridge.h b/submodules/WatchBridge/Sources/WatchBridge.h deleted file mode 100644 index 52f8b28491..0000000000 --- a/submodules/WatchBridge/Sources/WatchBridge.h +++ /dev/null @@ -1,9 +0,0 @@ -#import - -//! Project version number for WatchBridge. -FOUNDATION_EXPORT double WatchBridgeVersionNumber; - -//! Project version string for WatchBridge. -FOUNDATION_EXPORT const unsigned char WatchBridgeVersionString[]; - -#import diff --git a/submodules/WatchBridge/Sources/WatchCommunicationManager.swift b/submodules/WatchBridge/Sources/WatchCommunicationManager.swift index 55ed7a862a..18b3f617ad 100644 --- a/submodules/WatchBridge/Sources/WatchCommunicationManager.swift +++ b/submodules/WatchBridge/Sources/WatchCommunicationManager.swift @@ -7,6 +7,7 @@ import WatchCommon import SSignalKit import TelegramUIPreferences import AccountContext +import WatchBridgeImpl public final class WatchCommunicationManagerContext { public let context: AccountContext diff --git a/submodules/WatchBridgeAudio/BUCK b/submodules/WatchBridgeAudio/BUCK index 8f7915792a..6f2e9a7088 100644 --- a/submodules/WatchBridgeAudio/BUCK +++ b/submodules/WatchBridgeAudio/BUCK @@ -15,8 +15,6 @@ static_library( ], exclude = ["Sources/WatchBridgeAudio.h"]), deps = [ "//submodules/SSignalKit/SwiftSignalKit:SwiftSignalKit#shared", - "//submodules/SSignalKit/SSignalKit:SSignalKit", - "//submodules/OpusBinding:OpusBinding", ], frameworks = [ "$SDKROOT/System/Library/Frameworks/Foundation.framework", diff --git a/submodules/WatchBridgeAudio/BUILD b/submodules/WatchBridgeAudio/BUILD new file mode 100644 index 0000000000..27b6b76576 --- /dev/null +++ b/submodules/WatchBridgeAudio/BUILD @@ -0,0 +1,16 @@ +load("@build_bazel_rules_swift//swift:swift.bzl", "swift_library") + +swift_library( + name = "WatchBridgeAudio", + module_name = "WatchBridgeAudio", + srcs = glob([ + "Sources/**/*.swift", + ]), + deps = [ + "//submodules/SSignalKit/SwiftSignalKit:SwiftSignalKit", + "//submodules/WatchBridgeAudio/Impl:WatchBridgeAudioImpl", + ], + visibility = [ + "//visibility:public", + ], +) diff --git a/submodules/WatchBridgeAudio/Impl/BUILD b/submodules/WatchBridgeAudio/Impl/BUILD new file mode 100644 index 0000000000..8b1b386fb4 --- /dev/null +++ b/submodules/WatchBridgeAudio/Impl/BUILD @@ -0,0 +1,27 @@ + +objc_library( + name = "WatchBridgeAudioImpl", + enable_modules = True, + module_name = "WatchBridgeAudioImpl", + srcs = glob([ + "Sources/**/*.m", + "Sources/**/*.mm", + "Sources/**/*.h", + ]), + hdrs = glob([ + "PublicHeaders/**/*.h", + ]), + includes = [ + "PublicHeaders", + ], + deps = [ + "//submodules/SSignalKit/SSignalKit:SSignalKit", + "//submodules/OpusBinding:OpusBinding", + ], + sdk_frameworks = [ + "Foundation", + ], + visibility = [ + "//visibility:public", + ], +) diff --git a/submodules/WatchBridgeAudio/Sources/TGBridgeAudioDecoder.h b/submodules/WatchBridgeAudio/Impl/PublicHeaders/WatchBridgeAudioImpl/TGBridgeAudioDecoder.h similarity index 100% rename from submodules/WatchBridgeAudio/Sources/TGBridgeAudioDecoder.h rename to submodules/WatchBridgeAudio/Impl/PublicHeaders/WatchBridgeAudioImpl/TGBridgeAudioDecoder.h diff --git a/submodules/WatchBridgeAudio/Sources/TGBridgeAudioEncoder.h b/submodules/WatchBridgeAudio/Impl/PublicHeaders/WatchBridgeAudioImpl/TGBridgeAudioEncoder.h similarity index 100% rename from submodules/WatchBridgeAudio/Sources/TGBridgeAudioEncoder.h rename to submodules/WatchBridgeAudio/Impl/PublicHeaders/WatchBridgeAudioImpl/TGBridgeAudioEncoder.h diff --git a/submodules/WatchBridgeAudio/Impl/PublicHeaders/WatchBridgeAudioImpl/WatchBridgeAudioImpl.h b/submodules/WatchBridgeAudio/Impl/PublicHeaders/WatchBridgeAudioImpl/WatchBridgeAudioImpl.h new file mode 100644 index 0000000000..03950d978a --- /dev/null +++ b/submodules/WatchBridgeAudio/Impl/PublicHeaders/WatchBridgeAudioImpl/WatchBridgeAudioImpl.h @@ -0,0 +1,6 @@ +#import + +#import +#import + + diff --git a/submodules/WatchBridgeAudio/Sources/TGBridgeAudioDecoder.mm b/submodules/WatchBridgeAudio/Impl/Sources/TGBridgeAudioDecoder.mm similarity index 99% rename from submodules/WatchBridgeAudio/Sources/TGBridgeAudioDecoder.mm rename to submodules/WatchBridgeAudio/Impl/Sources/TGBridgeAudioDecoder.mm index eb9da777bc..c1d30b80f1 100644 --- a/submodules/WatchBridgeAudio/Sources/TGBridgeAudioDecoder.mm +++ b/submodules/WatchBridgeAudio/Impl/Sources/TGBridgeAudioDecoder.mm @@ -1,4 +1,4 @@ -#import "TGBridgeAudioDecoder.h" +#import #import #import diff --git a/submodules/WatchBridgeAudio/Sources/TGBridgeAudioEncoder.m b/submodules/WatchBridgeAudio/Impl/Sources/TGBridgeAudioEncoder.m similarity index 99% rename from submodules/WatchBridgeAudio/Sources/TGBridgeAudioEncoder.m rename to submodules/WatchBridgeAudio/Impl/Sources/TGBridgeAudioEncoder.m index 709e42a1e1..2bf80914d3 100644 --- a/submodules/WatchBridgeAudio/Sources/TGBridgeAudioEncoder.m +++ b/submodules/WatchBridgeAudio/Impl/Sources/TGBridgeAudioEncoder.m @@ -1,4 +1,4 @@ -#import "TGBridgeAudioEncoder.h" +#import #import #import diff --git a/submodules/WatchBridgeAudio/Sources/LegacyBridgeAudio.swift b/submodules/WatchBridgeAudio/Sources/LegacyBridgeAudio.swift index eb51caf60c..ab80d4f2a0 100644 --- a/submodules/WatchBridgeAudio/Sources/LegacyBridgeAudio.swift +++ b/submodules/WatchBridgeAudio/Sources/LegacyBridgeAudio.swift @@ -1,5 +1,6 @@ import Foundation import SwiftSignalKit +import WatchBridgeAudioImpl public func legacyDecodeOpusAudio(path: String, outputPath: String) -> Signal { return Signal { subscriber in diff --git a/submodules/WatchBridgeAudio/Sources/WatchBridgeAudio.h b/submodules/WatchBridgeAudio/Sources/WatchBridgeAudio.h deleted file mode 100644 index 15091d1154..0000000000 --- a/submodules/WatchBridgeAudio/Sources/WatchBridgeAudio.h +++ /dev/null @@ -1,12 +0,0 @@ -#import - -//! Project version number for WatchBridgeAudio. -FOUNDATION_EXPORT double WatchBridgeAudioVersionNumber; - -//! Project version string for WatchBridgeAudio. -FOUNDATION_EXPORT const unsigned char WatchBridgeAudioVersionString[]; - -#import -#import - - diff --git a/submodules/WatchCommon/BUILD b/submodules/WatchCommon/BUILD new file mode 100644 index 0000000000..e69de29bb2 diff --git a/submodules/WatchCommon/Host/BUILD b/submodules/WatchCommon/Host/BUILD new file mode 100644 index 0000000000..803e14d039 --- /dev/null +++ b/submodules/WatchCommon/Host/BUILD @@ -0,0 +1,25 @@ + +objc_library( + name = "WatchCommon", + enable_modules = True, + module_name = "WatchCommon", + srcs = glob([ + "Sources/**/*.m", + "Sources/**/*.h", + ]), + hdrs = glob([ + "PublicHeaders/**/*.h", + ]), + copts = [ + "-Isubmodules/WatchCommon/Host/PublicHeaders/WatchCommon", + ], + includes = [ + "PublicHeaders", + ], + sdk_frameworks = [ + "Foundation", + ], + visibility = [ + "//visibility:public", + ], +) diff --git a/submodules/WatchCommon/Host/Sources/TGBridgeActionMediaAttachment.h b/submodules/WatchCommon/Host/PublicHeaders/WatchCommon/TGBridgeActionMediaAttachment.h similarity index 100% rename from submodules/WatchCommon/Host/Sources/TGBridgeActionMediaAttachment.h rename to submodules/WatchCommon/Host/PublicHeaders/WatchCommon/TGBridgeActionMediaAttachment.h diff --git a/submodules/WatchCommon/Host/Sources/TGBridgeAudioMediaAttachment.h b/submodules/WatchCommon/Host/PublicHeaders/WatchCommon/TGBridgeAudioMediaAttachment.h similarity index 100% rename from submodules/WatchCommon/Host/Sources/TGBridgeAudioMediaAttachment.h rename to submodules/WatchCommon/Host/PublicHeaders/WatchCommon/TGBridgeAudioMediaAttachment.h diff --git a/submodules/WatchCommon/Host/Sources/TGBridgeBotCommandInfo.h b/submodules/WatchCommon/Host/PublicHeaders/WatchCommon/TGBridgeBotCommandInfo.h similarity index 100% rename from submodules/WatchCommon/Host/Sources/TGBridgeBotCommandInfo.h rename to submodules/WatchCommon/Host/PublicHeaders/WatchCommon/TGBridgeBotCommandInfo.h diff --git a/submodules/WatchCommon/Host/Sources/TGBridgeBotInfo.h b/submodules/WatchCommon/Host/PublicHeaders/WatchCommon/TGBridgeBotInfo.h similarity index 100% rename from submodules/WatchCommon/Host/Sources/TGBridgeBotInfo.h rename to submodules/WatchCommon/Host/PublicHeaders/WatchCommon/TGBridgeBotInfo.h diff --git a/submodules/WatchCommon/Host/Sources/TGBridgeChat.h b/submodules/WatchCommon/Host/PublicHeaders/WatchCommon/TGBridgeChat.h similarity index 100% rename from submodules/WatchCommon/Host/Sources/TGBridgeChat.h rename to submodules/WatchCommon/Host/PublicHeaders/WatchCommon/TGBridgeChat.h diff --git a/submodules/WatchCommon/Host/Sources/TGBridgeChatMessages.h b/submodules/WatchCommon/Host/PublicHeaders/WatchCommon/TGBridgeChatMessages.h similarity index 100% rename from submodules/WatchCommon/Host/Sources/TGBridgeChatMessages.h rename to submodules/WatchCommon/Host/PublicHeaders/WatchCommon/TGBridgeChatMessages.h diff --git a/submodules/WatchCommon/Host/Sources/TGBridgeCommon.h b/submodules/WatchCommon/Host/PublicHeaders/WatchCommon/TGBridgeCommon.h similarity index 100% rename from submodules/WatchCommon/Host/Sources/TGBridgeCommon.h rename to submodules/WatchCommon/Host/PublicHeaders/WatchCommon/TGBridgeCommon.h diff --git a/submodules/WatchCommon/Host/Sources/TGBridgeContactMediaAttachment.h b/submodules/WatchCommon/Host/PublicHeaders/WatchCommon/TGBridgeContactMediaAttachment.h similarity index 100% rename from submodules/WatchCommon/Host/Sources/TGBridgeContactMediaAttachment.h rename to submodules/WatchCommon/Host/PublicHeaders/WatchCommon/TGBridgeContactMediaAttachment.h diff --git a/submodules/WatchCommon/Host/Sources/TGBridgeContext.h b/submodules/WatchCommon/Host/PublicHeaders/WatchCommon/TGBridgeContext.h similarity index 100% rename from submodules/WatchCommon/Host/Sources/TGBridgeContext.h rename to submodules/WatchCommon/Host/PublicHeaders/WatchCommon/TGBridgeContext.h diff --git a/submodules/WatchCommon/Host/Sources/TGBridgeDocumentMediaAttachment.h b/submodules/WatchCommon/Host/PublicHeaders/WatchCommon/TGBridgeDocumentMediaAttachment.h similarity index 100% rename from submodules/WatchCommon/Host/Sources/TGBridgeDocumentMediaAttachment.h rename to submodules/WatchCommon/Host/PublicHeaders/WatchCommon/TGBridgeDocumentMediaAttachment.h diff --git a/submodules/WatchCommon/Host/Sources/TGBridgeForwardedMessageMediaAttachment.h b/submodules/WatchCommon/Host/PublicHeaders/WatchCommon/TGBridgeForwardedMessageMediaAttachment.h similarity index 100% rename from submodules/WatchCommon/Host/Sources/TGBridgeForwardedMessageMediaAttachment.h rename to submodules/WatchCommon/Host/PublicHeaders/WatchCommon/TGBridgeForwardedMessageMediaAttachment.h diff --git a/submodules/WatchCommon/Host/Sources/TGBridgeImageMediaAttachment.h b/submodules/WatchCommon/Host/PublicHeaders/WatchCommon/TGBridgeImageMediaAttachment.h similarity index 100% rename from submodules/WatchCommon/Host/Sources/TGBridgeImageMediaAttachment.h rename to submodules/WatchCommon/Host/PublicHeaders/WatchCommon/TGBridgeImageMediaAttachment.h diff --git a/submodules/WatchCommon/Host/Sources/TGBridgeLocationMediaAttachment.h b/submodules/WatchCommon/Host/PublicHeaders/WatchCommon/TGBridgeLocationMediaAttachment.h similarity index 100% rename from submodules/WatchCommon/Host/Sources/TGBridgeLocationMediaAttachment.h rename to submodules/WatchCommon/Host/PublicHeaders/WatchCommon/TGBridgeLocationMediaAttachment.h diff --git a/submodules/WatchCommon/Host/Sources/TGBridgeLocationVenue.h b/submodules/WatchCommon/Host/PublicHeaders/WatchCommon/TGBridgeLocationVenue.h similarity index 100% rename from submodules/WatchCommon/Host/Sources/TGBridgeLocationVenue.h rename to submodules/WatchCommon/Host/PublicHeaders/WatchCommon/TGBridgeLocationVenue.h diff --git a/submodules/WatchCommon/Host/Sources/TGBridgeMediaAttachment.h b/submodules/WatchCommon/Host/PublicHeaders/WatchCommon/TGBridgeMediaAttachment.h similarity index 100% rename from submodules/WatchCommon/Host/Sources/TGBridgeMediaAttachment.h rename to submodules/WatchCommon/Host/PublicHeaders/WatchCommon/TGBridgeMediaAttachment.h diff --git a/submodules/WatchCommon/Host/Sources/TGBridgeMessage.h b/submodules/WatchCommon/Host/PublicHeaders/WatchCommon/TGBridgeMessage.h similarity index 100% rename from submodules/WatchCommon/Host/Sources/TGBridgeMessage.h rename to submodules/WatchCommon/Host/PublicHeaders/WatchCommon/TGBridgeMessage.h diff --git a/submodules/WatchCommon/Host/Sources/TGBridgeMessageEntities.h b/submodules/WatchCommon/Host/PublicHeaders/WatchCommon/TGBridgeMessageEntities.h similarity index 100% rename from submodules/WatchCommon/Host/Sources/TGBridgeMessageEntities.h rename to submodules/WatchCommon/Host/PublicHeaders/WatchCommon/TGBridgeMessageEntities.h diff --git a/submodules/WatchCommon/Host/Sources/TGBridgeMessageEntitiesAttachment.h b/submodules/WatchCommon/Host/PublicHeaders/WatchCommon/TGBridgeMessageEntitiesAttachment.h similarity index 100% rename from submodules/WatchCommon/Host/Sources/TGBridgeMessageEntitiesAttachment.h rename to submodules/WatchCommon/Host/PublicHeaders/WatchCommon/TGBridgeMessageEntitiesAttachment.h diff --git a/submodules/WatchCommon/Host/Sources/TGBridgePeerIdAdapter.h b/submodules/WatchCommon/Host/PublicHeaders/WatchCommon/TGBridgePeerIdAdapter.h similarity index 100% rename from submodules/WatchCommon/Host/Sources/TGBridgePeerIdAdapter.h rename to submodules/WatchCommon/Host/PublicHeaders/WatchCommon/TGBridgePeerIdAdapter.h diff --git a/submodules/WatchCommon/Host/Sources/TGBridgePeerNotificationSettings.h b/submodules/WatchCommon/Host/PublicHeaders/WatchCommon/TGBridgePeerNotificationSettings.h similarity index 100% rename from submodules/WatchCommon/Host/Sources/TGBridgePeerNotificationSettings.h rename to submodules/WatchCommon/Host/PublicHeaders/WatchCommon/TGBridgePeerNotificationSettings.h diff --git a/submodules/WatchCommon/Host/Sources/TGBridgeReplyMarkupMediaAttachment.h b/submodules/WatchCommon/Host/PublicHeaders/WatchCommon/TGBridgeReplyMarkupMediaAttachment.h similarity index 100% rename from submodules/WatchCommon/Host/Sources/TGBridgeReplyMarkupMediaAttachment.h rename to submodules/WatchCommon/Host/PublicHeaders/WatchCommon/TGBridgeReplyMarkupMediaAttachment.h diff --git a/submodules/WatchCommon/Host/Sources/TGBridgeReplyMessageMediaAttachment.h b/submodules/WatchCommon/Host/PublicHeaders/WatchCommon/TGBridgeReplyMessageMediaAttachment.h similarity index 100% rename from submodules/WatchCommon/Host/Sources/TGBridgeReplyMessageMediaAttachment.h rename to submodules/WatchCommon/Host/PublicHeaders/WatchCommon/TGBridgeReplyMessageMediaAttachment.h diff --git a/submodules/WatchCommon/Host/Sources/TGBridgeSubscriptions.h b/submodules/WatchCommon/Host/PublicHeaders/WatchCommon/TGBridgeSubscriptions.h similarity index 100% rename from submodules/WatchCommon/Host/Sources/TGBridgeSubscriptions.h rename to submodules/WatchCommon/Host/PublicHeaders/WatchCommon/TGBridgeSubscriptions.h diff --git a/submodules/WatchCommon/Host/Sources/TGBridgeUnsupportedMediaAttachment.h b/submodules/WatchCommon/Host/PublicHeaders/WatchCommon/TGBridgeUnsupportedMediaAttachment.h similarity index 100% rename from submodules/WatchCommon/Host/Sources/TGBridgeUnsupportedMediaAttachment.h rename to submodules/WatchCommon/Host/PublicHeaders/WatchCommon/TGBridgeUnsupportedMediaAttachment.h diff --git a/submodules/WatchCommon/Host/Sources/TGBridgeUser.h b/submodules/WatchCommon/Host/PublicHeaders/WatchCommon/TGBridgeUser.h similarity index 100% rename from submodules/WatchCommon/Host/Sources/TGBridgeUser.h rename to submodules/WatchCommon/Host/PublicHeaders/WatchCommon/TGBridgeUser.h diff --git a/submodules/WatchCommon/Host/Sources/TGBridgeVideoMediaAttachment.h b/submodules/WatchCommon/Host/PublicHeaders/WatchCommon/TGBridgeVideoMediaAttachment.h similarity index 100% rename from submodules/WatchCommon/Host/Sources/TGBridgeVideoMediaAttachment.h rename to submodules/WatchCommon/Host/PublicHeaders/WatchCommon/TGBridgeVideoMediaAttachment.h diff --git a/submodules/WatchCommon/Host/Sources/TGBridgeWebPageMediaAttachment.h b/submodules/WatchCommon/Host/PublicHeaders/WatchCommon/TGBridgeWebPageMediaAttachment.h similarity index 100% rename from submodules/WatchCommon/Host/Sources/TGBridgeWebPageMediaAttachment.h rename to submodules/WatchCommon/Host/PublicHeaders/WatchCommon/TGBridgeWebPageMediaAttachment.h diff --git a/submodules/WatchCommon/Host/Sources/WatchCommon.h b/submodules/WatchCommon/Host/PublicHeaders/WatchCommon/WatchCommon.h similarity index 86% rename from submodules/WatchCommon/Host/Sources/WatchCommon.h rename to submodules/WatchCommon/Host/PublicHeaders/WatchCommon/WatchCommon.h index 740b833b89..27b37d2d7b 100644 --- a/submodules/WatchCommon/Host/Sources/WatchCommon.h +++ b/submodules/WatchCommon/Host/PublicHeaders/WatchCommon/WatchCommon.h @@ -1,11 +1,5 @@ #import -//! Project version number for WatchCommon. -FOUNDATION_EXPORT double WatchCommonVersionNumber; - -//! Project version string for WatchCommon. -FOUNDATION_EXPORT const unsigned char WatchCommonVersionString[]; - #import #import #import diff --git a/submodules/libtgvoip/OngoingCallThreadLocalContext.mm b/submodules/libtgvoip/OngoingCallThreadLocalContext.mm index c98bcf146f..3a49f01995 100644 --- a/submodules/libtgvoip/OngoingCallThreadLocalContext.mm +++ b/submodules/libtgvoip/OngoingCallThreadLocalContext.mm @@ -1,14 +1,10 @@ -#import "OngoingCallThreadLocalContext.h" +#import #import "VoIPController.h" #import "VoIPServerConfig.h" #import "os/darwin/SetupLogging.h" -#ifdef BUCK #import -#else -#import -#endif static void TGCallAesIgeEncrypt(uint8_t *inBytes, uint8_t *outBytes, size_t length, uint8_t *key, uint8_t *iv) { MTAesEncryptRaw(inBytes, outBytes, length, key, iv); diff --git a/submodules/libtgvoip/OngoingCallThreadLocalContext.h b/submodules/libtgvoip/PublicHeaders/libtgvoip/OngoingCallThreadLocalContext.h similarity index 100% rename from submodules/libtgvoip/OngoingCallThreadLocalContext.h rename to submodules/libtgvoip/PublicHeaders/libtgvoip/OngoingCallThreadLocalContext.h diff --git a/submodules/ton/BUILD b/submodules/ton/BUILD index 00d9f1d599..15e274e8b9 100644 --- a/submodules/ton/BUILD +++ b/submodules/ton/BUILD @@ -48,6 +48,16 @@ genrule( """ set -ex + core_count="`sysctl -n hw.logicalcpu`" + BUILD_DIR="$(RULEDIR)/build" + rm -rf "$$BUILD_DIR" + mkdir -p "$$BUILD_DIR" + + CMAKE_DIR="$$(pwd)/$$BUILD_DIR/cmake" + rm -rf "$$CMAKE_DIR" + mkdir -p "$$CMAKE_DIR" + tar -xf "$(location //third-party/cmake:cmake.tar)" -C "$$CMAKE_DIR" + if [ "$(TARGET_CPU)" == "ios_armv7" ]; then BUILD_ARCH="armv7" elif [ "$(TARGET_CPU)" == "ios_arm64" ]; then @@ -58,29 +68,32 @@ genrule( echo "Unsupported architecture $(TARGET_CPU)" fi - cp $(location :build-ton-bazel.sh) "$(RULEDIR)/" - cp $(location :iOS-bazel.cmake) "$(RULEDIR)/" - tar -xzf $(location tonlib-src.tar.gz) -C "$(RULEDIR)/" + cp $(location :build-ton-bazel.sh) "$$BUILD_DIR/" + cp $(location :iOS-bazel.cmake) "$$BUILD_DIR/" + tar -xzf $(location tonlib-src.tar.gz) -C "$$BUILD_DIR/" - mkdir -p "$(RULEDIR)/openssl_headers/include/openssl" - mkdir -p "$(RULEDIR)/openssl_headers/lib" - cp -f "$(location //submodules/openssl:libcrypto.a)" "$(RULEDIR)/openssl_headers/lib/" + mkdir -p "$$BUILD_DIR/openssl_headers/include/openssl" + mkdir -p "$$BUILD_DIR/openssl_headers/lib" + cp -f "$(location //submodules/openssl:libcrypto.a)" "$$BUILD_DIR/openssl_headers/lib/" for f in $(locations //submodules/openssl:openssl_include); do - cp -f "$$f" "$(RULEDIR)/openssl_headers/include/openssl/" + cp -f "$$f" "$$BUILD_DIR/openssl_headers/include/openssl/" done - mkdir -p "$(RULEDIR)/Public/ton" + mkdir -p "$$BUILD_DIR/Public/ton" - sh $(RULEDIR)/build-ton-bazel.sh "$(RULEDIR)" "$(RULEDIR)" "$(RULEDIR)/openssl_headers" $$BUILD_ARCH + PATH="$$PATH:$$CMAKE_DIR/bin" sh $$BUILD_DIR/build-ton-bazel.sh "$$BUILD_DIR" "$$BUILD_DIR" "$$BUILD_DIR/openssl_headers" $$BUILD_ARCH """ + "\n".join([ - "cp -f \"$(RULEDIR)/build/out/include/{}\" \"$(location Public/ton/include/{})\"".format(header, header) for header in ton_headers + "cp -f \"$$BUILD_DIR/build/out/include/{}\" \"$(location Public/ton/include/{})\"".format(header, header) for header in ton_headers ]) + "\n" + "\n".join([ - "cp -f \"$(RULEDIR)/build/out/lib/lib{}.a\" \"$(location Public/ton/lib/lib{}.a)\"".format(lib, lib) for lib in ton_lib_names + "cp -f \"$$BUILD_DIR/build/out/lib/lib{}.a\" \"$(location Public/ton/lib/lib{}.a)\"".format(lib, lib) for lib in ton_lib_names ]), outs = ["Public/ton/include/" + x for x in ton_headers] + ["Public/ton/lib/lib{}.a".format(x) for x in ton_lib_names], + tools = [ + "//third-party/cmake:cmake.tar", + ], visibility = [ "//visibility:public", ] diff --git a/third-party/cmake/BUILD b/third-party/cmake/BUILD index cdcae08135..2bebb90f22 100644 --- a/third-party/cmake/BUILD +++ b/third-party/cmake/BUILD @@ -13,16 +13,18 @@ genrule( pushd "$$BUILD_DIR/cmake-3.16.0" + export PATH=/usr/bin:/bin:/usr/sbin:/sbin + core_count="`sysctl -n hw.logicalcpu`" ./bootstrap --parallel=$$core_count -- -DCMAKE_BUILD_TYPE:STRING=Release make -j $$core_count popd - cp "$$BUILD_DIR/cmake-3.16.0/bin/cmake" "$(location cmake.bin)" + tar -cf "$(location cmake.tar)" -C "$$BUILD_DIR/cmake-3.16.0" . """, outs = [ - "cmake.bin", + "cmake.tar", ], visibility = [ "//visibility:public", diff --git a/third-party/yasm/BUILD b/third-party/yasm/BUILD index 625fede4ed..79abf15e3a 100644 --- a/third-party/yasm/BUILD +++ b/third-party/yasm/BUILD @@ -6,26 +6,29 @@ genrule( ], cmd_bash = """ +set -x core_count="`sysctl -n hw.logicalcpu`" BUILD_DIR="$(RULEDIR)/build" rm -rf "$$BUILD_DIR" mkdir -p "$$BUILD_DIR" - CMAKE_DIR="$$BUILD_DIR/cmake" + + CMAKE_DIR="$$(pwd)/$$BUILD_DIR/cmake" + rm -rf "$$CMAKE_DIR" mkdir -p "$$CMAKE_DIR" - cp "$(location //third-party/cmake:cmake.bin)" "$$CMAKE_DIR/cmake" + tar -xf "$(location //third-party/cmake:cmake.tar)" -C "$$CMAKE_DIR" + tar -xzf "$(location yasm-1.3.0.tar.gz)" --directory "$$BUILD_DIR" pushd "$$BUILD_DIR/yasm-1.3.0" mkdir build cd build - export PATH=\"$$PATH:$$CMAKE_DIR\" - cmake .. -DYASM_BUILD_TESTS=OFF -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF + PATH="$$PATH:$$CMAKE_DIR/bin" cmake .. -DYASM_BUILD_TESTS=OFF -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF make -j $$core_count popd tar -cf "$(location yasm.tar)" -C "$$BUILD_DIR/yasm-1.3.0/build" . """, tools = [ - "//third-party/cmake:cmake.bin", + "//third-party/cmake:cmake.tar", ], outs = [ "yasm.tar",