diff --git a/submodules/MtProtoKit/Sources/MTApiEnvironment.m b/submodules/MtProtoKit/Sources/MTApiEnvironment.m index 935a2b99ce..d14eb86297 100644 --- a/submodules/MtProtoKit/Sources/MTApiEnvironment.m +++ b/submodules/MtProtoKit/Sources/MTApiEnvironment.m @@ -463,12 +463,12 @@ NSString *suffix = @""; #if TARGET_OS_OSX NSString *value = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"SOURCE"]; if (value != nil) { - suffix = [NSString stringWithFormat:@"%@ ", value]; + suffix = [NSString stringWithFormat:@"%@", value]; } #endif //SOURCE - NSString *versionString = [[NSString alloc] initWithFormat:@"%@ (%@)%@", [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"], [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"], suffix]; + NSString *versionString = [[NSString alloc] initWithFormat:@"%@ (%@) %@", [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"], [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"], suffix]; _appVersion = versionString; _systemLangCode = [[NSLocale preferredLanguages] objectAtIndex:0]; diff --git a/submodules/TelegramCore/Sources/State/ManagedPremiumPromoConfigurationUpdates.swift b/submodules/TelegramCore/Sources/State/ManagedPremiumPromoConfigurationUpdates.swift index dea49afd7d..e36c11ff62 100644 --- a/submodules/TelegramCore/Sources/State/ManagedPremiumPromoConfigurationUpdates.swift +++ b/submodules/TelegramCore/Sources/State/ManagedPremiumPromoConfigurationUpdates.swift @@ -54,10 +54,11 @@ private func updatePremiumPromoConfiguration(transaction: Transaction, _ f: (Pre private extension PremiumPromoConfiguration { init(apiPremiumPromo: Api.help.PremiumPromo) { switch apiPremiumPromo { - case let .premiumPromo(statusText, statusEntities, videoSections, videoFiles, _, _): + case let .premiumPromo(statusText, statusEntities, videoSections, videoFiles, currency, monthlyAmount): self.status = statusText self.statusEntities = messageTextEntitiesFromApiEntities(statusEntities) - + self.currency = currency + self.monthlyAmount = monthlyAmount var videos: [String: TelegramMediaFile] = [:] for (key, document) in zip(videoSections, videoFiles) { if let file = telegramMediaFileFromApiDocument(document) { diff --git a/submodules/TelegramCore/Sources/SyncCore/SyncCore_Namespaces.swift b/submodules/TelegramCore/Sources/SyncCore/SyncCore_Namespaces.swift index bf3ea7c899..a1ebf48113 100644 --- a/submodules/TelegramCore/Sources/SyncCore/SyncCore_Namespaces.swift +++ b/submodules/TelegramCore/Sources/SyncCore/SyncCore_Namespaces.swift @@ -232,7 +232,7 @@ private enum PreferencesKeyValues: Int32 { case chatListFiltersFeaturedState = 22 case secretChatSettings = 23 case reactionSettings = 24 - case premiumPromo = 25 + case premiumPromo = 26 } public func applicationSpecificPreferencesKey(_ value: Int32) -> ValueBoxKey { diff --git a/submodules/TelegramCore/Sources/SyncCore/SyncCore_PremiumPromoConfiguration.swift b/submodules/TelegramCore/Sources/SyncCore/SyncCore_PremiumPromoConfiguration.swift index 35bcf7a304..97f796b54f 100644 --- a/submodules/TelegramCore/Sources/SyncCore/SyncCore_PremiumPromoConfiguration.swift +++ b/submodules/TelegramCore/Sources/SyncCore/SyncCore_PremiumPromoConfiguration.swift @@ -4,6 +4,8 @@ import Postbox public struct PremiumPromoConfiguration: Codable, Equatable { enum CodingKeys: String, CodingKey { case status + case currency + case monthlyAmount case statusEntities case videos } @@ -36,12 +38,17 @@ public struct PremiumPromoConfiguration: Codable, Equatable { public var statusEntities: [MessageTextEntity] public var videos: [String: TelegramMediaFile] + public var currency: String + public var monthlyAmount: Int64 + public static var defaultValue: PremiumPromoConfiguration { - return PremiumPromoConfiguration(status: "", statusEntities: [], videos: [:]) + return PremiumPromoConfiguration(status: "", statusEntities: [], videos: [:], currency: "", monthlyAmount: 0) } - init(status: String, statusEntities: [MessageTextEntity], videos: [String: TelegramMediaFile]) { + init(status: String, statusEntities: [MessageTextEntity], videos: [String: TelegramMediaFile], currency: String, monthlyAmount: Int64) { self.status = status + self.currency = currency + self.monthlyAmount = monthlyAmount self.statusEntities = statusEntities self.videos = videos } @@ -58,6 +65,10 @@ public struct PremiumPromoConfiguration: Codable, Equatable { videos[pair.key] = pair.value } self.videos = videos + + self.currency = try container.decode(String.self, forKey: .currency) + self.monthlyAmount = try container.decode(Int64.self, forKey: .monthlyAmount) + } public func encode(to encoder: Encoder) throws { @@ -65,6 +76,8 @@ public struct PremiumPromoConfiguration: Codable, Equatable { try container.encode(self.status, forKey: .status) try container.encode(self.statusEntities, forKey: .statusEntities) + try container.encode(self.currency, forKey: .currency) + try container.encode(self.monthlyAmount, forKey: .monthlyAmount) var pairs: [DictionaryPair] = [] for (key, file) in self.videos { diff --git a/submodules/TelegramCore/Sources/SyncCore/SyncCore_TelegramMediaFile.swift b/submodules/TelegramCore/Sources/SyncCore/SyncCore_TelegramMediaFile.swift index f0eff5069c..c01106354f 100644 --- a/submodules/TelegramCore/Sources/SyncCore/SyncCore_TelegramMediaFile.swift +++ b/submodules/TelegramCore/Sources/SyncCore/SyncCore_TelegramMediaFile.swift @@ -499,6 +499,15 @@ public final class TelegramMediaFile: Media, Equatable, Codable { return false } + public var noPremium: Bool { + for attribute in self.attributes { + if case .NoPremium = attribute { + return true + } + } + return false + } + public var premiumEffect: TelegramMediaFile.VideoThumbnail? { if let effect = self.videoThumbnails.first(where: { thumbnail in if let resource = thumbnail.resource as? CloudDocumentSizeMediaResource, resource.sizeSpec == "f" {