Skip to content

Commit ff0bc5e

Browse files
author
Clément Le Provost
committed
[offline] Make last sync date and query modification date optional in mirror settings
It’s cleaner than using the epoch.
1 parent cc1257a commit ff0bc5e

File tree

2 files changed

+20
-8
lines changed

2 files changed

+20
-8
lines changed

Source/Offline/MirrorSettings.swift

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@ import Foundation
1010

1111

1212
class MirrorSettings {
13-
var lastSyncDate: NSDate = NSDate(timeIntervalSince1970: 0)
13+
var lastSyncDate: NSDate?
1414
var queries : [DataSelectionQuery] = []
15-
var queriesModificationDate: NSDate = NSDate(timeIntervalSince1970: 0)
15+
var queriesModificationDate: NSDate?
1616

1717
/// Serialize the settings to a plist and save them to disk.
1818
func save(filePath: String) {
@@ -23,11 +23,11 @@ class MirrorSettings {
2323
"maxObjects": query.maxObjects
2424
])
2525
}
26-
let settings = [
27-
"lastSyncDate": lastSyncDate,
28-
"queries": queriesJson,
29-
"queriesModificationDate": queriesModificationDate
26+
var settings: [String: AnyObject] = [
27+
"queries": queriesJson
3028
]
29+
settings["lastSyncDate"] = lastSyncDate
30+
settings["queriesModificationDate"] = queriesModificationDate
3131
(settings as NSDictionary).writeToFile(filePath, atomically: true)
3232
}
3333

Source/Offline/MirroredIndex.swift

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -240,11 +240,23 @@ import Foundation
240240

241241
private func isSyncDelayExpired() -> Bool {
242242
let currentDate = NSDate()
243-
return currentDate.timeIntervalSinceDate(self.mirrorSettings.lastSyncDate) > self.delayBetweenSyncs
243+
if let lastSyncDate = mirrorSettings.lastSyncDate {
244+
return currentDate.timeIntervalSinceDate(lastSyncDate) > self.delayBetweenSyncs
245+
} else {
246+
return true
247+
}
244248
}
245249

246250
private func isMirrorSettingsDirty() -> Bool {
247-
return self.mirrorSettings.queriesModificationDate.compare(self.mirrorSettings.lastSyncDate) == .OrderedDescending
251+
if let queriesModificationDate = mirrorSettings.queriesModificationDate {
252+
if let lastSyncDate = lastSuccessfulSyncDate {
253+
return queriesModificationDate.compare(lastSyncDate) == .OrderedDescending
254+
} else {
255+
return true
256+
}
257+
} else {
258+
return false
259+
}
248260
}
249261

250262
/// Refresh the local mirror.

0 commit comments

Comments
 (0)