macos fxies

This commit is contained in:
Mike Renoir 2022-06-07 19:15:01 +04:00
parent 73d4647439
commit 37fc5397dc
5 changed files with 30 additions and 7 deletions

View File

@ -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];

View File

@ -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) {

View File

@ -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 {

View File

@ -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 {

View File

@ -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" {