From e6aad302dce4cb3c14d5a7d198fcab36c20cde9c Mon Sep 17 00:00:00 2001 From: Ali <> Date: Sun, 27 Jun 2021 18:07:50 +0400 Subject: [PATCH] Move data cleanup to background --- .../TelegramCore/Sources/AccountManager.swift | 28 ++++++++++--------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/submodules/TelegramCore/Sources/AccountManager.swift b/submodules/TelegramCore/Sources/AccountManager.swift index e9da18ff19..b1e3d106d0 100644 --- a/submodules/TelegramCore/Sources/AccountManager.swift +++ b/submodules/TelegramCore/Sources/AccountManager.swift @@ -189,21 +189,23 @@ public func rootPathForBasePath(_ appGroupPath: String) -> String { } public func performAppGroupUpgrades(appGroupPath: String, rootPath: String) { - let _ = try? FileManager.default.createDirectory(at: URL(fileURLWithPath: rootPath), withIntermediateDirectories: true, attributes: nil) + DispatchQueue.global(qos: .default).async { + let _ = try? FileManager.default.createDirectory(at: URL(fileURLWithPath: rootPath), withIntermediateDirectories: true, attributes: nil) - if let items = FileManager.default.enumerator(at: URL(fileURLWithPath: appGroupPath), includingPropertiesForKeys: [.isDirectoryKey], options: [.skipsHiddenFiles, .skipsSubdirectoryDescendants], errorHandler: nil) { - let allowedDirectories: [String] = [ - "telegram-data", - "Library" - ] + if let items = FileManager.default.enumerator(at: URL(fileURLWithPath: appGroupPath), includingPropertiesForKeys: [.isDirectoryKey], options: [.skipsHiddenFiles, .skipsSubdirectoryDescendants], errorHandler: nil) { + let allowedDirectories: [String] = [ + "telegram-data", + "Library" + ] - for url in items { - guard let url = url as? URL else { - continue - } - if let isDirectory = try? url.resourceValues(forKeys: [.isDirectoryKey]).isDirectory, isDirectory { - if !allowedDirectories.contains(url.lastPathComponent) { - let _ = try? FileManager.default.removeItem(at: url) + for url in items { + guard let url = url as? URL else { + continue + } + if let isDirectory = try? url.resourceValues(forKeys: [.isDirectoryKey]).isDirectory, isDirectory { + if !allowedDirectories.contains(url.lastPathComponent) { + let _ = try? FileManager.default.removeItem(at: url) + } } } }