mirror of
https://github.com/TelegramMessenger/Telegram-iOS.git
synced 2026-07-06 03:33:41 +02:00
Modernized save to gallery
This commit is contained in:
parent
9fe022a499
commit
41060f0da0
53 changed files with 1301 additions and 326 deletions
|
|
@ -40,7 +40,7 @@ private final class FetchManagerLocationEntry {
|
|||
let statsCategory: MediaResourceStatsCategory
|
||||
|
||||
var userInitiated: Bool = false
|
||||
var storeToDownloadsPeerType: MediaAutoDownloadPeerType?
|
||||
var storeToDownloadsPeerId: EnginePeer.Id?
|
||||
let references = Bag<FetchManagerPriority>()
|
||||
let ranges = Bag<RangeSet<Int64>>()
|
||||
var elevatedPriorityReferenceCount: Int32 = 0
|
||||
|
|
@ -264,8 +264,8 @@ private final class FetchManagerCategoryContext {
|
|||
let _ = addRecentDownloadItem(postbox: postbox, item: RecentDownloadItem(messageId: messageId, resourceId: entry.resourceReference.resource.id.stringRepresentation, timestamp: Int32(Date().timeIntervalSince1970), isSeen: false)).start()
|
||||
}
|
||||
|
||||
if let storeManager = storeManager, let mediaReference = entry.mediaReference, case .remote = type, let peerType = entry.storeToDownloadsPeerType {
|
||||
return storeDownloadedMedia(storeManager: storeManager, media: mediaReference, peerType: peerType)
|
||||
if let storeManager = storeManager, let mediaReference = entry.mediaReference, case .remote = type, let peerId = entry.storeToDownloadsPeerId {
|
||||
return storeDownloadedMedia(storeManager: storeManager, media: mediaReference, peerId: peerId)
|
||||
|> castError(FetchResourceError.self)
|
||||
|> mapToSignal { _ -> Signal<FetchResourceSourceType, FetchResourceError> in
|
||||
}
|
||||
|
|
@ -429,8 +429,8 @@ private final class FetchManagerCategoryContext {
|
|||
let _ = addRecentDownloadItem(postbox: postbox, item: RecentDownloadItem(messageId: messageId, resourceId: entry.resourceReference.resource.id.stringRepresentation, timestamp: Int32(Date().timeIntervalSince1970), isSeen: false)).start()
|
||||
}
|
||||
|
||||
if let storeManager = storeManager, let mediaReference = entry.mediaReference, case .remote = type, let peerType = entry.storeToDownloadsPeerType {
|
||||
return storeDownloadedMedia(storeManager: storeManager, media: mediaReference, peerType: peerType)
|
||||
if let storeManager = storeManager, let mediaReference = entry.mediaReference, case .remote = type, let peerId = entry.storeToDownloadsPeerId {
|
||||
return storeDownloadedMedia(storeManager: storeManager, media: mediaReference, peerId: peerId)
|
||||
|> castError(FetchResourceError.self)
|
||||
|> mapToSignal { _ -> Signal<FetchResourceSourceType, FetchResourceError> in
|
||||
}
|
||||
|
|
@ -770,7 +770,7 @@ public final class FetchManagerImpl: FetchManager {
|
|||
}
|
||||
}
|
||||
|
||||
public func interactivelyFetched(category: FetchManagerCategory, location: FetchManagerLocation, locationKey: FetchManagerLocationKey, mediaReference: AnyMediaReference?, resourceReference: MediaResourceReference, ranges: RangeSet<Int64>, statsCategory: MediaResourceStatsCategory, elevatedPriority: Bool, userInitiated: Bool, priority: FetchManagerPriority = .userInitiated, storeToDownloadsPeerType: MediaAutoDownloadPeerType?) -> Signal<Void, NoError> {
|
||||
public func interactivelyFetched(category: FetchManagerCategory, location: FetchManagerLocation, locationKey: FetchManagerLocationKey, mediaReference: AnyMediaReference?, resourceReference: MediaResourceReference, ranges: RangeSet<Int64>, statsCategory: MediaResourceStatsCategory, elevatedPriority: Bool, userInitiated: Bool, priority: FetchManagerPriority = .userInitiated, storeToDownloadsPeerId: EnginePeer.Id?) -> Signal<Void, NoError> {
|
||||
let queue = self.queue
|
||||
return Signal { [weak self] subscriber in
|
||||
if let strongSelf = self {
|
||||
|
|
@ -789,8 +789,8 @@ public final class FetchManagerImpl: FetchManager {
|
|||
}
|
||||
let wasPaused = entry.isPaused
|
||||
entry.isPaused = false
|
||||
if let peerType = storeToDownloadsPeerType {
|
||||
entry.storeToDownloadsPeerType = peerType
|
||||
if let peerId = storeToDownloadsPeerId {
|
||||
entry.storeToDownloadsPeerId = peerId
|
||||
}
|
||||
assignedReferenceIndex = entry.references.add(priority)
|
||||
if elevatedPriority {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue