[F] Make oneTime a computed property

This commit is contained in:
Hykilpikonna
2021-01-24 12:33:03 -05:00
parent 4256eb45e8
commit f8f01c0bcb
3 changed files with 6 additions and 8 deletions
@@ -62,7 +62,6 @@ class AddAlarmViewController: UIViewController
(0...6).forEach { alarm.repeats[$0] = false }
if repeatWeekdaysSwitch.isOn { (1...5).forEach { alarm.repeats[$0] = true } }
if repeatWeekendsSwitch.isOn { [0, 6].forEach { alarm.repeats[$0] = true } }
if (alarm.repeats.allSatisfy { !$0 }) { alarm.oneTime = true }
// Add the alarm to the list and save the list
Alarms.fromLocal().apply { $0.list.append(alarm) }.localSave();
+5 -6
View File
@@ -9,7 +9,7 @@ import Foundation
struct User: Codable
{
var id: Int
var id: String
var name: String
var email: String
var pass: String
@@ -48,9 +48,6 @@ class Alarm: Codable
/// What days does it repeat (Sun, Mon, Tue, Wed, Thu, Fri, Sat)
var repeats: [Bool]
/// Does it automatically disable after activating once
var oneTime: Bool
/// When is the last time that the alarm went off
var lastActivate: Date
@@ -58,7 +55,7 @@ class Alarm: Codable
init(enabled: Bool = true,
hour: Int, minute: Int, text: String, wakeMethod: WVM,
repeats: [Bool] = [false, true, true, true, true, true, false],
oneTime: Bool = false, lastActivate: Date = Date()
lastActivate: Date = Date()
)
{
self.enabled = enabled
@@ -67,10 +64,12 @@ class Alarm: Codable
self.text = text
self.wakeMethod = wakeMethod
self.repeats = repeats
self.oneTime = oneTime
self.lastActivate = lastActivate
}
/// Does it automatically disable after activating once
var oneTime: Bool { repeats.allSatisfy { !$0 } }
/// When should the alarm activate next since lastActivate?
var nextActivate: Date?
{
+1 -1
View File
@@ -58,7 +58,7 @@ class TestingViewController: UIViewController
@IBAction func addAlarm(_ sender: Any)
{
let (h, m, _) = Date().getHMS()
Alarms.fromLocal().apply { $0.list.append(Alarm(hour: h, minute: m, text: "Test alarm - \(h * m)", wakeMethod: wvms[1], repeats: [true, true, true, true, true, true, true], oneTime: true, lastActivate: Date().added(.minute, -1))) }.localSave()
Alarms.fromLocal().apply { $0.list.append(Alarm(hour: h, minute: m, text: "Test alarm - \(h * m)", wakeMethod: wvms[1], repeats: [true, true, true, true, true, true, true], lastActivate: Date().added(.minute, -1))) }.localSave()
}
@IBAction func deleteAlarm(_ sender: Any)