Skip to content

Commit

Permalink
Fix FactoryReset to not remove CloudKit related cache (#1136)
Browse files Browse the repository at this point in the history
  • Loading branch information
GhenadieVP committed May 28, 2024
1 parent 0c4364b commit 3d0a211
Show file tree
Hide file tree
Showing 5 changed files with 9 additions and 18 deletions.
6 changes: 5 additions & 1 deletion RadixWallet/Clients/CacheClient/CacheClient+Interface.swift
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,8 @@ extension Address {

extension CacheClient {
public enum Entry: Equatable {
static let root: String = "RadixWallet"

public init(address: some AddressProtocol) {
self = .onLedgerEntity(.init(address: address))
}
Expand Down Expand Up @@ -161,7 +163,7 @@ extension CacheClient {
case dateOfFirstTransaction(_ accountAddress: AccountAddress)

var filesystemFilePath: String {
switch self {
let path = switch self {
case let .onLedgerEntity(entity):
entity.filesystemFilePath
case let .networkName(url):
Expand All @@ -177,6 +179,8 @@ extension CacheClient {
case let .dateOfFirstTransaction(address):
"\(filesystemFolderPath)/account-\(address.address)"
}

return "\(Self.root)/\(path)"
}

var filesystemFolderPath: String {
Expand Down
2 changes: 1 addition & 1 deletion RadixWallet/Clients/CacheClient/CacheClient+Live.swift
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ extension CacheClient: DependencyKey {
@Dependency(\.diskPersistenceClient) var diskPersistenceClient

do {
try diskPersistenceClient.removeAll()
try diskPersistenceClient.remove(Entry.root)
loggerGlobal.debug("💾 Data successfully cleared from disk")
} catch {
loggerGlobal.debug("💾❌ Could not clear cached data from disk: \(error.localizedDescription)")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ public struct CloudBackupClient: DependencyKey, Sendable {
public let lastBackup: LastBackup
public let loadProfile: LoadProfile
public let loadAllProfiles: LoadAllProfiles
public let backupProfile: BackupProfile

public init(
startAutomaticBackups: @escaping StartAutomaticBackups,
Expand All @@ -23,8 +22,7 @@ public struct CloudBackupClient: DependencyKey, Sendable {
checkAccountStatus: @escaping CheckAccountStatus,
lastBackup: @escaping LastBackup,
loadProfile: @escaping LoadProfile,
loadAllProfiles: @escaping LoadAllProfiles,
backupProfile: @escaping BackupProfile
loadAllProfiles: @escaping LoadAllProfiles
) {
self.startAutomaticBackups = startAutomaticBackups
self.loadDeviceID = loadDeviceID
Expand All @@ -34,7 +32,6 @@ public struct CloudBackupClient: DependencyKey, Sendable {
self.lastBackup = lastBackup
self.loadProfile = loadProfile
self.loadAllProfiles = loadAllProfiles
self.backupProfile = backupProfile
}
}

Expand All @@ -47,7 +44,6 @@ extension CloudBackupClient {
public typealias LastBackup = @Sendable (ProfileID) -> AnyAsyncSequence<BackupResult?>
public typealias LoadProfile = @Sendable (ProfileID) async throws -> BackedupProfile?
public typealias LoadAllProfiles = @Sendable () async throws -> [BackedupProfile]
public typealias BackupProfile = @Sendable () async throws -> CKRecord
}

// MARK: CloudBackupClient.BackedupProfile
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -152,8 +152,6 @@ extension CloudBackupClient {
}

let savedRecord = try await uploadProfileSnapshotToICloud(profileSnapshot, id: profile.id, existingRecord: backedUpRecord)
// Migration completed, deleting old copy
try secureStorageClient.deleteProfile(profile.id)

return savedRecord
}
Expand All @@ -173,11 +171,6 @@ extension CloudBackupClient {
},
loadAllProfiles: {
try await fetchAllProfileRecords().map(extractProfile)
},
backupProfile: {
let profile = await profileStore.profile
let existingRecord = try? await fetchProfileRecord(.init(recordName: profile.id.uuidString))
return try await uploadProfileToICloud(profile, existingRecord: existingRecord)
}
)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,7 @@ extension CloudBackupClient: TestDependencyKey {
checkAccountStatus: { throw NoopError() },
lastBackup: { _ in AsyncLazySequence([]).eraseToAnyAsyncSequence() },
loadProfile: { _ in throw NoopError() },
loadAllProfiles: { throw NoopError() },
backupProfile: { throw NoopError() }
loadAllProfiles: { throw NoopError() }
)

public static let testValue = Self(
Expand All @@ -34,7 +33,6 @@ extension CloudBackupClient: TestDependencyKey {
checkAccountStatus: unimplemented("\(Self.self).checkAccountStatus"),
lastBackup: unimplemented("\(Self.self).lastBackup"),
loadProfile: unimplemented("\(Self.self).queryProfile"),
loadAllProfiles: unimplemented("\(Self.self).queryAllProfiles"),
backupProfile: unimplemented("\(Self.self).uploadProfile")
loadAllProfiles: unimplemented("\(Self.self).queryAllProfiles")
)
}

0 comments on commit 3d0a211

Please sign in to comment.