diff --git a/kDriveCore/Data/Cache/DriveFileManager.swift b/kDriveCore/Data/Cache/DriveFileManager.swift index f2d1460ae..f8873fd96 100644 --- a/kDriveCore/Data/Cache/DriveFileManager.swift +++ b/kDriveCore/Data/Cache/DriveFileManager.swift @@ -250,7 +250,7 @@ public final class DriveFileManager { } return freeze ? root.freeze() : root } else { - return File(id: DriveFileManager.constants.rootID, name: drive.name) + return File(id: DriveFileManager.constants.rootID, name: drive.name, driveId: drive.id) } } @@ -1565,6 +1565,10 @@ public final class DriveFileManager { if let cachedFile = getCachedFile(id: file.id, freeze: false, using: realm) { return cachedFile } else { + if file.isRoot { + file.driveId = drive.id + file.uid = File.uid(driveId: file.driveId, fileId: file.id) + } keepCacheAttributesForFile(newFile: file, keepProperties: [.all], using: realm) try? realm.write { realm.add(file, update: .all) diff --git a/kDriveCore/Data/Models/File.swift b/kDriveCore/Data/Models/File.swift index 609047109..617c82377 100644 --- a/kDriveCore/Data/Models/File.swift +++ b/kDriveCore/Data/Models/File.swift @@ -794,10 +794,14 @@ public final class File: Object, Codable { // primary key is set as default value } - convenience init(id: Int, name: String) { + convenience init(id: Int, name: String, driveId: Int? = nil) { self.init() self.id = id self.name = name + if let driveId { + self.driveId = driveId + uid = File.uid(driveId: driveId, fileId: id) + } rawType = "dir" children = MutableSet() }