mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-06-16 05:55:20 +00:00
Fix mediabox fetch
This commit is contained in:
parent
7a73e1c8d6
commit
1fa66aad9f
@ -57,7 +57,7 @@ public func messageMediaImageInteractiveFetched(fetchManager: FetchManager, mess
|
|||||||
if let range = range {
|
if let range = range {
|
||||||
ranges = RangeSet(range.lowerBound ..< range.upperBound)
|
ranges = RangeSet(range.lowerBound ..< range.upperBound)
|
||||||
} else {
|
} else {
|
||||||
ranges = RangeSet(0 ..< Int64.max)
|
ranges = RangeSet(0 ..< Int64(Int32.max))
|
||||||
}
|
}
|
||||||
return fetchManager.interactivelyFetched(category: .image, location: .chat(messageId.peerId), locationKey: .messageId(messageId), mediaReference: mediaReference, resourceReference: mediaReference.resourceReference(resource), ranges: ranges, statsCategory: .image, elevatedPriority: false, userInitiated: userInitiated, priority: priority, storeToDownloadsPeerType: storeToDownloadsPeerType)
|
return fetchManager.interactivelyFetched(category: .image, location: .chat(messageId.peerId), locationKey: .messageId(messageId), mediaReference: mediaReference, resourceReference: mediaReference.resourceReference(resource), ranges: ranges, statsCategory: .image, elevatedPriority: false, userInitiated: userInitiated, priority: priority, storeToDownloadsPeerType: storeToDownloadsPeerType)
|
||||||
}
|
}
|
||||||
|
@ -226,7 +226,7 @@ private final class FetchManagerCategoryContext {
|
|||||||
let storeManager = self.storeManager
|
let storeManager = self.storeManager
|
||||||
let parsedRanges: [(Range<Int64>, MediaBoxFetchPriority)]?
|
let parsedRanges: [(Range<Int64>, MediaBoxFetchPriority)]?
|
||||||
|
|
||||||
if ranges == RangeSet<Int64>(0 ..< Int64.max) {
|
if ranges == RangeSet<Int64>(0 ..< Int64.max), !"".isEmpty {
|
||||||
parsedRanges = nil
|
parsedRanges = nil
|
||||||
} else {
|
} else {
|
||||||
var resultRanges: [(Range<Int64>, MediaBoxFetchPriority)] = []
|
var resultRanges: [(Range<Int64>, MediaBoxFetchPriority)] = []
|
||||||
@ -325,7 +325,7 @@ private final class FetchManagerCategoryContext {
|
|||||||
isVideoPreload = true
|
isVideoPreload = true
|
||||||
}
|
}
|
||||||
|
|
||||||
if count == 1 && isCompleteRange {
|
if count == 1 && isCompleteRange && !"".isEmpty {
|
||||||
parsedRanges = nil
|
parsedRanges = nil
|
||||||
} else {
|
} else {
|
||||||
var resultRanges: [(Range<Int64>, MediaBoxFetchPriority)] = []
|
var resultRanges: [(Range<Int64>, MediaBoxFetchPriority)] = []
|
||||||
|
@ -574,6 +574,12 @@ public final class MediaBox {
|
|||||||
let disposable = MetaDisposable()
|
let disposable = MetaDisposable()
|
||||||
|
|
||||||
self.dataQueue.async {
|
self.dataQueue.async {
|
||||||
|
let paths = self.storePathsForId(resource.id)
|
||||||
|
if let _ = fileSize(paths.complete) {
|
||||||
|
subscriber.putCompletion()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
guard let (fileContext, releaseContext) = self.fileContext(for: resource.id) else {
|
guard let (fileContext, releaseContext) = self.fileContext(for: resource.id) else {
|
||||||
subscriber.putCompletion()
|
subscriber.putCompletion()
|
||||||
return
|
return
|
||||||
|
@ -1253,6 +1253,7 @@ final class MediaBoxFileContext {
|
|||||||
func fetched(range: Range<Int64>, priority: MediaBoxFetchPriority, fetch: @escaping (Signal<[(Range<Int64>, MediaBoxFetchPriority)], NoError>) -> Signal<MediaResourceDataFetchResult, MediaResourceDataFetchError>, error: @escaping (MediaResourceDataFetchError) -> Void, completed: @escaping () -> Void) -> Disposable {
|
func fetched(range: Range<Int64>, priority: MediaBoxFetchPriority, fetch: @escaping (Signal<[(Range<Int64>, MediaBoxFetchPriority)], NoError>) -> Signal<MediaResourceDataFetchResult, MediaResourceDataFetchError>, error: @escaping (MediaResourceDataFetchError) -> Void, completed: @escaping () -> Void) -> Disposable {
|
||||||
switch self.content {
|
switch self.content {
|
||||||
case .complete:
|
case .complete:
|
||||||
|
completed()
|
||||||
return EmptyDisposable
|
return EmptyDisposable
|
||||||
case let .partial(file):
|
case let .partial(file):
|
||||||
return file.fetched(range: range, priority: priority, fetch: fetch, error: error, completed: completed)
|
return file.fetched(range: range, priority: priority, fetch: fetch, error: error, completed: completed)
|
||||||
|
@ -715,6 +715,7 @@ private final class MultipartFetchManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
let part = self.source.request(offset: downloadRange.lowerBound, limit: downloadRange.upperBound - downloadRange.lowerBound, tag: self.parameters?.tag, resource: self.resource, resourceReference: self.resourceReference, fileReference: self.fileReference, continueInBackground: self.continueInBackground)
|
let part = self.source.request(offset: downloadRange.lowerBound, limit: downloadRange.upperBound - downloadRange.lowerBound, tag: self.parameters?.tag, resource: self.resource, resourceReference: self.resourceReference, fileReference: self.fileReference, continueInBackground: self.continueInBackground)
|
||||||
|
//|> delay(5.0, queue: self.queue)
|
||||||
|> deliverOn(self.queue)
|
|> deliverOn(self.queue)
|
||||||
let partDisposable = MetaDisposable()
|
let partDisposable = MetaDisposable()
|
||||||
self.fetchingParts[downloadRange.lowerBound] = (Int64(downloadRange.count), partDisposable)
|
self.fetchingParts[downloadRange.lowerBound] = (Int64(downloadRange.count), partDisposable)
|
||||||
|
@ -104,6 +104,11 @@ private final class PrefetchManagerInnerImpl {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private func updateOrderedPreloadMedia(_ items: [PrefetchMediaItem], automaticDownloadSettings: MediaAutoDownloadSettings, networkType: MediaAutoDownloadNetworkType) {
|
private func updateOrderedPreloadMedia(_ items: [PrefetchMediaItem], automaticDownloadSettings: MediaAutoDownloadSettings, networkType: MediaAutoDownloadNetworkType) {
|
||||||
|
#if DEBUG
|
||||||
|
if "".isEmpty {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
#endif
|
||||||
var validIds = Set<MediaId>()
|
var validIds = Set<MediaId>()
|
||||||
var order: Int32 = 0
|
var order: Int32 = 0
|
||||||
for mediaItem in items {
|
for mediaItem in items {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user