Add missing clear storage progress code

This commit is contained in:
Ali
2023-03-07 13:49:47 +04:00
parent c74a2baa7a
commit 69091c606d
2 changed files with 11 additions and 6 deletions

View File

@@ -379,7 +379,7 @@ func _internal_renderStorageUsageStatsMessages(account: Account, stats: StorageU
} }
} }
func _internal_clearStorage(account: Account, peerId: EnginePeer.Id?, categories: [StorageUsageStats.CategoryKey], includeMessages: [Message], excludeMessages: [Message]) -> Signal<Never, NoError> { func _internal_clearStorage(account: Account, peerId: EnginePeer.Id?, categories: [StorageUsageStats.CategoryKey], includeMessages: [Message], excludeMessages: [Message]) -> Signal<Float, NoError> {
let mediaBox = account.postbox.mediaBox let mediaBox = account.postbox.mediaBox
return Signal { subscriber in return Signal { subscriber in
var includeResourceIds = Set<MediaResourceId>() var includeResourceIds = Set<MediaResourceId>()
@@ -435,7 +435,9 @@ func _internal_clearStorage(account: Account, peerId: EnginePeer.Id?, categories
resourceIds.append(MediaResourceId(value)) resourceIds.append(MediaResourceId(value))
} }
} }
let _ = mediaBox.removeCachedResources(resourceIds).start(completed: { let _ = mediaBox.removeCachedResources(resourceIds).start(next: { progress in
subscriber.putNext(progress)
}, completed: {
if peerId == nil && categories.contains(.misc) { if peerId == nil && categories.contains(.misc) {
let additionalPaths: [String] = [ let additionalPaths: [String] = [
"cache", "cache",
@@ -469,7 +471,7 @@ func _internal_clearStorage(account: Account, peerId: EnginePeer.Id?, categories
} }
} }
func _internal_clearStorage(account: Account, peerIds: Set<EnginePeer.Id>, includeMessages: [Message], excludeMessages: [Message]) -> Signal<Never, NoError> { func _internal_clearStorage(account: Account, peerIds: Set<EnginePeer.Id>, includeMessages: [Message], excludeMessages: [Message]) -> Signal<Float, NoError> {
let mediaBox = account.postbox.mediaBox let mediaBox = account.postbox.mediaBox
return Signal { subscriber in return Signal { subscriber in
var includeResourceIds = Set<MediaResourceId>() var includeResourceIds = Set<MediaResourceId>()
@@ -496,12 +498,15 @@ func _internal_clearStorage(account: Account, peerIds: Set<EnginePeer.Id>, inclu
mediaBox.storageBox.remove(peerIds: peerIds, includeIds: includeIds, excludeIds: excludeIds, completion: { ids in mediaBox.storageBox.remove(peerIds: peerIds, includeIds: includeIds, excludeIds: excludeIds, completion: { ids in
var resourceIds: [MediaResourceId] = [] var resourceIds: [MediaResourceId] = []
for id in ids { for id in ids {
if let value = String(data: id, encoding: .utf8) { if let value = String(data: id, encoding: .utf8) {
resourceIds.append(MediaResourceId(value)) resourceIds.append(MediaResourceId(value))
} }
} }
let _ = mediaBox.removeCachedResources(resourceIds).start(completed: { let _ = mediaBox.removeCachedResources(resourceIds).start(next: { progress in
subscriber.putNext(progress)
}, completed: {
subscriber.putCompletion() subscriber.putCompletion()
}) })
}) })

View File

@@ -233,11 +233,11 @@ public extension TelegramEngine {
return _internal_renderStorageUsageStatsMessages(account: self.account, stats: stats, categories: categories, existingMessages: existingMessages) return _internal_renderStorageUsageStatsMessages(account: self.account, stats: stats, categories: categories, existingMessages: existingMessages)
} }
public func clearStorage(peerId: EnginePeer.Id?, categories: [StorageUsageStats.CategoryKey], includeMessages: [Message], excludeMessages: [Message]) -> Signal<Never, NoError> { public func clearStorage(peerId: EnginePeer.Id?, categories: [StorageUsageStats.CategoryKey], includeMessages: [Message], excludeMessages: [Message]) -> Signal<Float, NoError> {
return _internal_clearStorage(account: self.account, peerId: peerId, categories: categories, includeMessages: includeMessages, excludeMessages: excludeMessages) return _internal_clearStorage(account: self.account, peerId: peerId, categories: categories, includeMessages: includeMessages, excludeMessages: excludeMessages)
} }
public func clearStorage(peerIds: Set<EnginePeer.Id>, includeMessages: [Message], excludeMessages: [Message]) -> Signal<Never, NoError> { public func clearStorage(peerIds: Set<EnginePeer.Id>, includeMessages: [Message], excludeMessages: [Message]) -> Signal<Float, NoError> {
_internal_clearStorage(account: self.account, peerIds: peerIds, includeMessages: includeMessages, excludeMessages: excludeMessages) _internal_clearStorage(account: self.account, peerIds: peerIds, includeMessages: includeMessages, excludeMessages: excludeMessages)
} }