Add offline mode

This commit is contained in:
christophhagen
2020-08-09 21:04:30 +02:00
parent 8892d04f62
commit 5441261c6c
4 changed files with 51 additions and 3 deletions

View File

@@ -145,6 +145,16 @@ final class Database {
}
}
var isInOfflineMode: Bool {
set {
UserDefaults.standard.set(newValue, forKey: Upload.offlineKey)
log("Offline mode set to \(newValue)")
}
get {
UserDefaults.standard.bool(forKey: Upload.offlineKey)
}
}
// MARK: Data updates
/**
@@ -168,6 +178,10 @@ final class Database {
log("Cap image not saved")
return false
}
guard !isInOfflineMode else {
log("Offline mode: Not uploading cap")
return true
}
upload.upload(name: name, for: cap.id) { success in
guard success else {
return
@@ -224,6 +238,10 @@ final class Database {
log("Failed to add cap \(cap) version \(version) to upload queue")
return false
}
guard !isInOfflineMode else {
log("Offline mode: Not uploading cap image")
return true
}
upload.uploadImage(for: cap, version: version) { actualVersion in
guard let actualVersion = actualVersion else {
self.log("Failed to upload image \(version) for cap \(cap)")

View File

@@ -12,6 +12,8 @@ import SQLite
struct Upload {
static let offlineKey = "offline"
let serverUrl: URL
let table = Table("uploads")