diff --git a/submodules/TelegramCore/Sources/TelegramEngine/Resources/CollectCacheUsageStats.swift b/submodules/TelegramCore/Sources/TelegramEngine/Resources/CollectCacheUsageStats.swift index 2531804cf5..67a3b370a5 100644 --- a/submodules/TelegramCore/Sources/TelegramEngine/Resources/CollectCacheUsageStats.swift +++ b/submodules/TelegramCore/Sources/TelegramEngine/Resources/CollectCacheUsageStats.swift @@ -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 { +func _internal_clearStorage(account: Account, peerId: EnginePeer.Id?, categories: [StorageUsageStats.CategoryKey], includeMessages: [Message], excludeMessages: [Message]) -> Signal { let mediaBox = account.postbox.mediaBox return Signal { subscriber in var includeResourceIds = Set() @@ -435,7 +435,9 @@ func _internal_clearStorage(account: Account, peerId: EnginePeer.Id?, categories 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) { let additionalPaths: [String] = [ "cache", @@ -469,7 +471,7 @@ func _internal_clearStorage(account: Account, peerId: EnginePeer.Id?, categories } } -func _internal_clearStorage(account: Account, peerIds: Set, includeMessages: [Message], excludeMessages: [Message]) -> Signal { +func _internal_clearStorage(account: Account, peerIds: Set, includeMessages: [Message], excludeMessages: [Message]) -> Signal { let mediaBox = account.postbox.mediaBox return Signal { subscriber in var includeResourceIds = Set() @@ -496,12 +498,15 @@ func _internal_clearStorage(account: Account, peerIds: Set, inclu mediaBox.storageBox.remove(peerIds: peerIds, includeIds: includeIds, excludeIds: excludeIds, completion: { ids in var resourceIds: [MediaResourceId] = [] + for id in ids { if let value = String(data: id, encoding: .utf8) { resourceIds.append(MediaResourceId(value)) } } - let _ = mediaBox.removeCachedResources(resourceIds).start(completed: { + let _ = mediaBox.removeCachedResources(resourceIds).start(next: { progress in + subscriber.putNext(progress) + }, completed: { subscriber.putCompletion() }) }) diff --git a/submodules/TelegramCore/Sources/TelegramEngine/Resources/TelegramEngineResources.swift b/submodules/TelegramCore/Sources/TelegramEngine/Resources/TelegramEngineResources.swift index 7f5d0bde23..e71bff8e58 100644 --- a/submodules/TelegramCore/Sources/TelegramEngine/Resources/TelegramEngineResources.swift +++ b/submodules/TelegramCore/Sources/TelegramEngine/Resources/TelegramEngineResources.swift @@ -233,11 +233,11 @@ public extension TelegramEngine { 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 { + public func clearStorage(peerId: EnginePeer.Id?, categories: [StorageUsageStats.CategoryKey], includeMessages: [Message], excludeMessages: [Message]) -> Signal { return _internal_clearStorage(account: self.account, peerId: peerId, categories: categories, includeMessages: includeMessages, excludeMessages: excludeMessages) } - public func clearStorage(peerIds: Set, includeMessages: [Message], excludeMessages: [Message]) -> Signal { + public func clearStorage(peerIds: Set, includeMessages: [Message], excludeMessages: [Message]) -> Signal { _internal_clearStorage(account: self.account, peerIds: peerIds, includeMessages: includeMessages, excludeMessages: excludeMessages) }