Move data cleanup to background

This commit is contained in:
Ali 2021-06-27 18:07:50 +04:00
parent eaa582c78c
commit e6aad302dc

View File

@ -189,21 +189,23 @@ public func rootPathForBasePath(_ appGroupPath: String) -> String {
} }
public func performAppGroupUpgrades(appGroupPath: String, rootPath: 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) { if let items = FileManager.default.enumerator(at: URL(fileURLWithPath: appGroupPath), includingPropertiesForKeys: [.isDirectoryKey], options: [.skipsHiddenFiles, .skipsSubdirectoryDescendants], errorHandler: nil) {
let allowedDirectories: [String] = [ let allowedDirectories: [String] = [
"telegram-data", "telegram-data",
"Library" "Library"
] ]
for url in items { for url in items {
guard let url = url as? URL else { guard let url = url as? URL else {
continue continue
} }
if let isDirectory = try? url.resourceValues(forKeys: [.isDirectoryKey]).isDirectory, isDirectory { if let isDirectory = try? url.resourceValues(forKeys: [.isDirectoryKey]).isDirectory, isDirectory {
if !allowedDirectories.contains(url.lastPathComponent) { if !allowedDirectories.contains(url.lastPathComponent) {
let _ = try? FileManager.default.removeItem(at: url) let _ = try? FileManager.default.removeItem(at: url)
}
} }
} }
} }