mirror of
https://github.com/TelegramMessenger/Telegram-iOS.git
synced 2026-07-06 03:33:41 +02:00
Temp
This commit is contained in:
parent
d52e4d9b62
commit
e36e44ed72
1 changed files with 33 additions and 0 deletions
|
|
@ -223,6 +223,10 @@ public final class PendingMessageManager {
|
|||
public var pendingMessageCount: Signal<[PeerId: Int], NoError> {
|
||||
return self._pendingMessageCount.get()
|
||||
}
|
||||
private let _pendingMediaUploads = ValuePromise<[MessageId: Float]>([:], ignoreRepeated: true)
|
||||
public var pendingMediaUploads: Signal<[MessageId: Float], NoError> {
|
||||
return self._pendingMediaUploads.get()
|
||||
}
|
||||
|
||||
private var messageContexts: [MessageId: PendingMessageContext] = [:]
|
||||
private var pendingMessageIds = Set<MessageId>()
|
||||
|
|
@ -255,6 +259,28 @@ public final class PendingMessageManager {
|
|||
}
|
||||
}
|
||||
|
||||
private func updatePendingMediaUploads() {
|
||||
assert(self.queue.isCurrent())
|
||||
|
||||
var pendingMediaUploads: [MessageId: Float] = [:]
|
||||
for (id, context) in self.messageContexts {
|
||||
guard case .media? = context.contentType else {
|
||||
continue
|
||||
}
|
||||
|
||||
switch context.state {
|
||||
case .waitingForUploadToStart:
|
||||
pendingMediaUploads[id] = context.status?.progress.progress ?? 0.0
|
||||
case .uploading:
|
||||
pendingMediaUploads[id] = context.status?.progress.progress ?? 0.0
|
||||
default:
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
self._pendingMediaUploads.set(pendingMediaUploads)
|
||||
}
|
||||
|
||||
func updatePendingMessageIds(_ messageIds: Set<MessageId>) {
|
||||
Logger.shared.log("PendingMessageManager", "update on postboxQueue: \(messageIds)")
|
||||
|
||||
|
|
@ -356,6 +382,7 @@ public final class PendingMessageManager {
|
|||
Logger.shared.log("PendingMessageManager", "pending messages: \(self.pendingMessageIds)")
|
||||
|
||||
self._pendingMessageCount.set(pendingMessageCount)
|
||||
self.updatePendingMediaUploads()
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -628,6 +655,7 @@ public final class PendingMessageManager {
|
|||
messageContext.state = .waitingForUploadToStart(groupId: message.groupingKey, upload: contentUploadSignal)
|
||||
}
|
||||
}
|
||||
strongSelf.updatePendingMediaUploads()
|
||||
|
||||
Logger.shared.log("PendingMessageManager", "beginSendingMessages messagesToForward.count: \(messagesToForward.count)")
|
||||
|
||||
|
|
@ -713,6 +741,7 @@ public final class PendingMessageManager {
|
|||
} else {
|
||||
self.commitSendingSingleMessage(messageContext: messageContext, messageId: messageId, content: content)
|
||||
}
|
||||
self.updatePendingMediaUploads()
|
||||
}
|
||||
|
||||
private func beginSendingGroupIfPossible(groupId: Int64) {
|
||||
|
|
@ -849,6 +878,7 @@ public final class PendingMessageManager {
|
|||
activityCategory = .global
|
||||
}
|
||||
self.addContextActivityIfNeeded(messageContext, peerId: PeerActivitySpace(peerId: id.peerId, category: activityCategory))
|
||||
self.updatePendingMediaUploads()
|
||||
|
||||
let queue = self.queue
|
||||
|
||||
|
|
@ -884,6 +914,7 @@ public final class PendingMessageManager {
|
|||
for subscriber in current.statusSubscribers.copyItems() {
|
||||
subscriber(current.status, current.error)
|
||||
}
|
||||
strongSelf.updatePendingMediaUploads()
|
||||
}
|
||||
case let .content(content):
|
||||
if let current = strongSelf.messageContexts[id] {
|
||||
|
|
@ -927,6 +958,7 @@ public final class PendingMessageManager {
|
|||
}
|
||||
|
||||
self.addContextActivityIfNeeded(context, peerId: PeerActivitySpace(peerId: peerId, category: activityCategory))
|
||||
self.updatePendingMediaUploads()
|
||||
context.uploadDisposable.set((uploadSignal
|
||||
|> deliverOn(self.queue)).start(next: { [weak self] next in
|
||||
if let strongSelf = self {
|
||||
|
|
@ -940,6 +972,7 @@ public final class PendingMessageManager {
|
|||
for subscriber in current.statusSubscribers.copyItems() {
|
||||
subscriber(context.status, context.error)
|
||||
}
|
||||
strongSelf.updatePendingMediaUploads()
|
||||
}
|
||||
case let .content(content):
|
||||
if let current = strongSelf.messageContexts[contextId] {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue