Skip to content
Snippets Groups Projects

Account recovery/backup feature

31 files
+ 1011
210
Compare changes
  • Side-by-side
  • Inline

Files

+ 75
0
import Shared
import Foundation
public struct BackupSettings {
public var providers: [BackupProvider]
public var connections: [BackupConnection]
public init(
providers: [BackupProvider],
connections: [BackupConnection]
) {
self.providers = providers
self.connections = connections
}
}
public struct BackupConnection {
public var isEnabled: Bool
public var lastBackup: Backup?
public var wifiOnlyBackup: Bool
public var automaticBackups: Bool
public var provider: BackupProvider
public init(
isEnabled: Bool,
lastBackup: Backup? = nil,
wifiOnlyBackup: Bool,
automaticBackups: Bool,
provider: BackupProvider
) {
self.isEnabled = isEnabled
self.lastBackup = lastBackup
self.wifiOnlyBackup = wifiOnlyBackup
self.automaticBackups = automaticBackups
self.provider = provider
}
}
public struct Backup {
public var date: Date
public var size: Float
public init(date: Date, size: Float) {
self.date = date
self.size = size
}
}
public enum BackupProvider {
case googleDrive
case iCloud
case dropbox
public var name: String {
switch self {
case .iCloud:
return Localized.Backup.iCloud
case .dropbox:
return Localized.Backup.dropbox
case .googleDrive:
return Localized.Backup.googleDrive
}
}
public var asset: ImageAsset.Image {
switch self {
case .iCloud:
return Asset.icloud.image
case .dropbox:
return Asset.dropbox.image
case .googleDrive:
return Asset.googleDrive.image
}
}
}
Loading