diff --git a/ProjectClock/AlarmActivator.swift b/ProjectClock/AlarmActivator.swift index 21820e0..8a938ff 100644 --- a/ProjectClock/AlarmActivator.swift +++ b/ProjectClock/AlarmActivator.swift @@ -83,18 +83,30 @@ class AlarmActivator: UITabBarController */ @objc func checkFamily() { + guard localStorage.string(forKey: "family") != nil else { return } + send(APIs.familyAlarmUpdates) { + guard $0 != "" else { return } + + var changed = false let alarms = Alarms.fromLocal() - $0.components(separatedBy: ",").forEach + $0.csv.forEach { guard let alarm = JSON.parse(Alarm.self, $0) else { return } if (!alarms.list.contains { $0.timeText == alarm.timeText }) { alarms.list.append(alarm) + changed = true } } alarms.localSave() + + guard changed else { return } + self.msg("New alarm!", "A family member added an alarm for you!") + { + AlarmViewController.staticTable?.reloadData() + } } } } diff --git a/ProjectClock/Models.swift b/ProjectClock/Models.swift index 92e2d3d..5e36f6b 100644 --- a/ProjectClock/Models.swift +++ b/ProjectClock/Models.swift @@ -15,7 +15,7 @@ struct Family: Codable var members: String // And a hidden field: admin pin - var membersList: [String] { members.components(separatedBy: ",") } + var membersList: [String] { members.csv } /// Save family to local storage func localSave() diff --git a/ProjectClock/Utils.swift b/ProjectClock/Utils.swift index 67232b5..82f2954 100644 --- a/ProjectClock/Utils.swift +++ b/ProjectClock/Utils.swift @@ -253,3 +253,9 @@ extension UserDefaults set { self[key] = newValue?.rawValue } } } + +/// String CSV +extension String +{ + var csv: [String] { components(separatedBy: ";") } +}