mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-06-16 05:55:20 +00:00
52 lines
2.4 KiB
Swift
52 lines
2.4 KiB
Swift
import Foundation
|
|
import Postbox
|
|
import TelegramApi
|
|
|
|
import SyncCore
|
|
|
|
func telegramStickerPachThumbnailRepresentationFromApiSize(datacenterId: Int32, size: Api.PhotoSize) -> TelegramMediaImageRepresentation? {
|
|
switch size {
|
|
case let .photoCachedSize(_, location, w, h, _):
|
|
switch location {
|
|
case let .fileLocationToBeDeprecated(volumeId, localId):
|
|
let resource = CloudStickerPackThumbnailMediaResource(datacenterId: datacenterId, volumeId: volumeId, localId: localId)
|
|
return TelegramMediaImageRepresentation(dimensions: PixelDimensions(width: w, height: h), resource: resource)
|
|
}
|
|
case let .photoSize(_, location, w, h, _):
|
|
switch location {
|
|
case let .fileLocationToBeDeprecated(volumeId, localId):
|
|
let resource = CloudStickerPackThumbnailMediaResource(datacenterId: datacenterId, volumeId: volumeId, localId: localId)
|
|
return TelegramMediaImageRepresentation(dimensions: PixelDimensions(width: w, height: h), resource: resource)
|
|
}
|
|
case .photoStrippedSize:
|
|
return nil
|
|
case .photoSizeEmpty:
|
|
return nil
|
|
}
|
|
}
|
|
|
|
extension StickerPackCollectionInfo {
|
|
convenience init(apiSet: Api.StickerSet, namespace: ItemCollectionId.Namespace) {
|
|
switch apiSet {
|
|
case let .stickerSet(flags, _, id, accessHash, title, shortName, thumb, thumbDcId, count, nHash):
|
|
var setFlags: StickerPackCollectionInfoFlags = StickerPackCollectionInfoFlags()
|
|
if (flags & (1 << 2)) != 0 {
|
|
setFlags.insert(.isOfficial)
|
|
}
|
|
if (flags & (1 << 3)) != 0 {
|
|
setFlags.insert(.isMasks)
|
|
}
|
|
if (flags & (1 << 5)) != 0 {
|
|
setFlags.insert(.isAnimated)
|
|
}
|
|
|
|
var thumbnailRepresentation: TelegramMediaImageRepresentation?
|
|
if let thumb = thumb, let thumbDcId = thumbDcId {
|
|
thumbnailRepresentation = telegramStickerPachThumbnailRepresentationFromApiSize(datacenterId: thumbDcId, size: thumb)
|
|
}
|
|
|
|
self.init(id: ItemCollectionId(namespace: namespace, id: id), flags: setFlags, accessHash: accessHash, title: title, shortName: shortName, thumbnail: thumbnailRepresentation, hash: nHash, count: count)
|
|
}
|
|
}
|
|
}
|