Fix album art loading

This commit is contained in:
Ali 2022-08-03 00:00:38 +04:00
parent 97fefbc7cd
commit 2f5ebbb83a

View File

@ -289,41 +289,48 @@ public extension TelegramEngine {
let resource = AlbumCoverResource(datacenterId: datacenterId, file: file, title: title, performer: performer) let resource = AlbumCoverResource(datacenterId: datacenterId, file: file, title: title, performer: performer)
return bufferedFetch(multipartFetch(postbox: self.account.postbox, network: self.account.network, mediaReferenceRevalidationContext: self.account.mediaReferenceRevalidationContext, resource: resource, datacenterId: datacenterId, size: nil, intervals: .single([(0 ..< Int64.max, .default)]), parameters: MediaResourceFetchParameters( let signal = currentWebDocumentsHostDatacenterId(postbox: self.account.postbox, isTestingEnvironment: self.account.testingEnvironment)
tag: nil, |> castError(EngineMediaResource.Fetch.Error.self)
info: TelegramCloudMediaResourceFetchInfo( |> take(1)
reference: MediaResourceReference.standalone(resource: resource), |> mapToSignal { datacenterId -> Signal<EngineMediaResource.Fetch.Result, EngineMediaResource.Fetch.Error> in
preferBackgroundReferenceRevalidation: false, return multipartFetch(postbox: self.account.postbox, network: self.account.network, mediaReferenceRevalidationContext: self.account.mediaReferenceRevalidationContext, resource: resource, datacenterId: Int(datacenterId), size: nil, intervals: .single([(0 ..< Int64.max, .default)]), parameters: MediaResourceFetchParameters(
continueInBackground: false tag: nil,
), info: TelegramCloudMediaResourceFetchInfo(
isRandomAccessAllowed: true reference: MediaResourceReference.standalone(resource: resource),
)) preferBackgroundReferenceRevalidation: false,
|> map { result -> EngineMediaResource.Fetch.Result in continueInBackground: false
switch result { ),
case let .dataPart(resourceOffset, data, range, complete): isRandomAccessAllowed: true
return .dataPart(resourceOffset: resourceOffset, data: data, range: range, complete: complete) ))
case let .resourceSizeUpdated(size): |> map { result -> EngineMediaResource.Fetch.Result in
return .resourceSizeUpdated(size) switch result {
case let .progressUpdated(value): case let .dataPart(resourceOffset, data, range, complete):
return .progressUpdated(value) return .dataPart(resourceOffset: resourceOffset, data: data, range: range, complete: complete)
case let .replaceHeader(data, range): case let .resourceSizeUpdated(size):
return .replaceHeader(data: data, range: range) return .resourceSizeUpdated(size)
case let .moveLocalFile(path): case let .progressUpdated(value):
return .moveLocalFile(path: path) return .progressUpdated(value)
case let .moveTempFile(file): case let .replaceHeader(data, range):
return .moveTempFile(file: file) return .replaceHeader(data: data, range: range)
case let .copyLocalItem(item): case let .moveLocalFile(path):
return .copyLocalItem(item) return .moveLocalFile(path: path)
case .reset: case let .moveTempFile(file):
return .reset return .moveTempFile(file: file)
case let .copyLocalItem(item):
return .copyLocalItem(item)
case .reset:
return .reset
}
}
|> mapError { error -> EngineMediaResource.Fetch.Error in
switch error {
case .generic:
return .generic
}
} }
} }
|> mapError { error -> EngineMediaResource.Fetch.Error in
switch error { return bufferedFetch(signal)
case .generic:
return .generic
}
})
} }
public func cancelAllFetches(id: String) { public func cancelAllFetches(id: String) {