Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
import Foundation
public struct BackupSettings: Equatable, Codable {
public var wifiOnlyBackup: Bool
public var automaticBackups: Bool
public var enabledService: CloudService?
public var connectedServices: Set<CloudService>
public var backups: [CloudService: Backup]
public init(
wifiOnlyBackup: Bool = false,
automaticBackups: Bool = false,
enabledService: CloudService? = nil,
connectedServices: Set<CloudService> = [],
backups: [CloudService: Backup] = [:]
) {
self.wifiOnlyBackup = wifiOnlyBackup
self.automaticBackups = automaticBackups
self.enabledService = enabledService
self.connectedServices = connectedServices
self.backups = backups
}
public func toData() -> Data {
(try? PropertyListEncoder().encode(self)) ?? Data()
}
public init(fromData data: Data) {
let settings = try? PropertyListDecoder().decode(BackupSettings.self, from: data)
self.init(
wifiOnlyBackup: settings?.wifiOnlyBackup ?? false,
automaticBackups: settings?.automaticBackups ?? false,
enabledService: settings?.enabledService,
connectedServices: settings?.connectedServices ?? [],
backups: settings?.backups ?? [:]
)
}
}
public struct RestoreSettings {
public var backup: Backup?
public var cloudService: CloudService
public init(
backup: Backup? = nil,
cloudService: CloudService
) {
self.backup = backup
self.cloudService = cloudService
}
}