mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-06-16 05:55:20 +00:00
macos fxies
This commit is contained in:
parent
73d4647439
commit
37fc5397dc
@ -54,10 +54,11 @@ private func updatePremiumPromoConfiguration(transaction: Transaction, _ f: (Pre
|
|||||||
private extension PremiumPromoConfiguration {
|
private extension PremiumPromoConfiguration {
|
||||||
init(apiPremiumPromo: Api.help.PremiumPromo) {
|
init(apiPremiumPromo: Api.help.PremiumPromo) {
|
||||||
switch apiPremiumPromo {
|
switch apiPremiumPromo {
|
||||||
case let .premiumPromo(statusText, statusEntities, videoSections, videoFiles, _, _):
|
case let .premiumPromo(statusText, statusEntities, videoSections, videoFiles, currency, monthlyAmount):
|
||||||
self.status = statusText
|
self.status = statusText
|
||||||
self.statusEntities = messageTextEntitiesFromApiEntities(statusEntities)
|
self.statusEntities = messageTextEntitiesFromApiEntities(statusEntities)
|
||||||
|
self.currency = currency
|
||||||
|
self.monthlyAmount = monthlyAmount
|
||||||
var videos: [String: TelegramMediaFile] = [:]
|
var videos: [String: TelegramMediaFile] = [:]
|
||||||
for (key, document) in zip(videoSections, videoFiles) {
|
for (key, document) in zip(videoSections, videoFiles) {
|
||||||
if let file = telegramMediaFileFromApiDocument(document) {
|
if let file = telegramMediaFileFromApiDocument(document) {
|
||||||
|
@ -232,7 +232,7 @@ private enum PreferencesKeyValues: Int32 {
|
|||||||
case chatListFiltersFeaturedState = 22
|
case chatListFiltersFeaturedState = 22
|
||||||
case secretChatSettings = 23
|
case secretChatSettings = 23
|
||||||
case reactionSettings = 24
|
case reactionSettings = 24
|
||||||
case premiumPromo = 25
|
case premiumPromo = 26
|
||||||
}
|
}
|
||||||
|
|
||||||
public func applicationSpecificPreferencesKey(_ value: Int32) -> ValueBoxKey {
|
public func applicationSpecificPreferencesKey(_ value: Int32) -> ValueBoxKey {
|
||||||
|
@ -4,6 +4,8 @@ import Postbox
|
|||||||
public struct PremiumPromoConfiguration: Codable, Equatable {
|
public struct PremiumPromoConfiguration: Codable, Equatable {
|
||||||
enum CodingKeys: String, CodingKey {
|
enum CodingKeys: String, CodingKey {
|
||||||
case status
|
case status
|
||||||
|
case currency
|
||||||
|
case monthlyAmount
|
||||||
case statusEntities
|
case statusEntities
|
||||||
case videos
|
case videos
|
||||||
}
|
}
|
||||||
@ -36,12 +38,17 @@ public struct PremiumPromoConfiguration: Codable, Equatable {
|
|||||||
public var statusEntities: [MessageTextEntity]
|
public var statusEntities: [MessageTextEntity]
|
||||||
public var videos: [String: TelegramMediaFile]
|
public var videos: [String: TelegramMediaFile]
|
||||||
|
|
||||||
|
public var currency: String
|
||||||
|
public var monthlyAmount: Int64
|
||||||
|
|
||||||
public static var defaultValue: PremiumPromoConfiguration {
|
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.status = status
|
||||||
|
self.currency = currency
|
||||||
|
self.monthlyAmount = monthlyAmount
|
||||||
self.statusEntities = statusEntities
|
self.statusEntities = statusEntities
|
||||||
self.videos = videos
|
self.videos = videos
|
||||||
}
|
}
|
||||||
@ -58,6 +65,10 @@ public struct PremiumPromoConfiguration: Codable, Equatable {
|
|||||||
videos[pair.key] = pair.value
|
videos[pair.key] = pair.value
|
||||||
}
|
}
|
||||||
self.videos = videos
|
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 {
|
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.status, forKey: .status)
|
||||||
try container.encode(self.statusEntities, forKey: .statusEntities)
|
try container.encode(self.statusEntities, forKey: .statusEntities)
|
||||||
|
try container.encode(self.currency, forKey: .currency)
|
||||||
|
try container.encode(self.monthlyAmount, forKey: .monthlyAmount)
|
||||||
|
|
||||||
var pairs: [DictionaryPair] = []
|
var pairs: [DictionaryPair] = []
|
||||||
for (key, file) in self.videos {
|
for (key, file) in self.videos {
|
||||||
|
@ -499,6 +499,15 @@ public final class TelegramMediaFile: Media, Equatable, Codable {
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public var noPremium: Bool {
|
||||||
|
for attribute in self.attributes {
|
||||||
|
if case .NoPremium = attribute {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
public var premiumEffect: TelegramMediaFile.VideoThumbnail? {
|
public var premiumEffect: TelegramMediaFile.VideoThumbnail? {
|
||||||
if let effect = self.videoThumbnails.first(where: { thumbnail in
|
if let effect = self.videoThumbnails.first(where: { thumbnail in
|
||||||
if let resource = thumbnail.resource as? CloudDocumentSizeMediaResource, resource.sizeSpec == "f" {
|
if let resource = thumbnail.resource as? CloudDocumentSizeMediaResource, resource.sizeSpec == "f" {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user