mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-12-23 22:55:00 +00:00
Refactoring [skip ci]
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
import Postbox
|
||||
|
||||
public enum EngineMedia {
|
||||
public enum EngineMedia: Equatable {
|
||||
public typealias Id = MediaId
|
||||
|
||||
case image(TelegramMediaImage)
|
||||
|
||||
@@ -3,6 +3,17 @@ import SwiftSignalKit
|
||||
import Postbox
|
||||
import TelegramApi
|
||||
|
||||
public enum MediaResourceUserContentType: UInt8, Equatable {
|
||||
case other = 0
|
||||
case image = 1
|
||||
case video = 2
|
||||
case audio = 3
|
||||
case file = 4
|
||||
case sticker = 6
|
||||
case avatar = 7
|
||||
case audioVideoMessage = 8
|
||||
}
|
||||
|
||||
public extension MediaResourceUserContentType {
|
||||
init(file: TelegramMediaFile) {
|
||||
if file.isInstantVideo || file.isVoice {
|
||||
@@ -25,6 +36,12 @@ public extension MediaResourceUserContentType {
|
||||
}
|
||||
}
|
||||
|
||||
public extension MediaResourceFetchParameters {
|
||||
init(tag: MediaResourceFetchTag?, info: MediaResourceFetchInfo?, location: MediaResourceStorageLocation?, contentType: MediaResourceUserContentType, isRandomAccessAllowed: Bool) {
|
||||
self.init(tag: tag, info: info, location: location, contentType: contentType.rawValue, isRandomAccessAllowed: isRandomAccessAllowed)
|
||||
}
|
||||
}
|
||||
|
||||
func bufferedFetch(_ signal: Signal<EngineMediaResource.Fetch.Result, EngineMediaResource.Fetch.Error>) -> Signal<EngineMediaResource.Fetch.Result, EngineMediaResource.Fetch.Error> {
|
||||
return Signal { subscriber in
|
||||
final class State {
|
||||
@@ -251,7 +268,7 @@ public extension TelegramEngine {
|
||||
|
||||
return _internal_reindexCacheInBackground(account: self.account, lowImpact: lowImpact)
|
||||
|> then(Signal { subscriber in
|
||||
return mediaBox.updateResourceIndex(lowImpact: lowImpact, completion: {
|
||||
return mediaBox.updateResourceIndex(otherResourceContentType: MediaResourceUserContentType.other.rawValue, lowImpact: lowImpact, completion: {
|
||||
subscriber.putCompletion()
|
||||
})
|
||||
})
|
||||
|
||||
@@ -92,6 +92,28 @@ public struct ImportSticker {
|
||||
}
|
||||
}
|
||||
|
||||
public extension ImportSticker {
|
||||
var stickerPackItem: StickerPackItem? {
|
||||
guard let resource = self.resource as? TelegramMediaResource else {
|
||||
return nil
|
||||
}
|
||||
var fileAttributes: [TelegramMediaFileAttribute] = []
|
||||
if self.mimeType == "video/webm" {
|
||||
fileAttributes.append(.FileName(fileName: "sticker.webm"))
|
||||
fileAttributes.append(.Animated)
|
||||
fileAttributes.append(.Sticker(displayText: "", packReference: nil, maskData: nil))
|
||||
} else if self.mimeType == "application/x-tgsticker" {
|
||||
fileAttributes.append(.FileName(fileName: "sticker.tgs"))
|
||||
fileAttributes.append(.Animated)
|
||||
fileAttributes.append(.Sticker(displayText: "", packReference: nil, maskData: nil))
|
||||
} else {
|
||||
fileAttributes.append(.FileName(fileName: "sticker.webp"))
|
||||
}
|
||||
fileAttributes.append(.ImageSize(size: self.dimensions))
|
||||
return StickerPackItem(index: ItemCollectionItemIndex(index: 0, id: 0), file: TelegramMediaFile(fileId: EngineMedia.Id(namespace: 0, id: 0), partialReference: nil, resource: resource, previewRepresentations: [], videoThumbnails: [], immediateThumbnailData: nil, mimeType: self.mimeType, size: nil, attributes: fileAttributes), indexKeys: [])
|
||||
}
|
||||
}
|
||||
|
||||
public enum CreateStickerSetStatus {
|
||||
case progress(Float, Int32, Int32)
|
||||
case complete(StickerPackCollectionInfo, [StickerPackItem])
|
||||
|
||||
Reference in New Issue
Block a user