Modernized save to gallery

This commit is contained in:
Ali
2023-01-13 21:14:45 +04:00
parent 9fe022a499
commit 41060f0da0
53 changed files with 1301 additions and 326 deletions

View File

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