You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
58 lines
1.2 KiB
58 lines
1.2 KiB
//
|
|
// Countdown+Extension.swift
|
|
// LeCountdown
|
|
//
|
|
// Created by Laurent Morvillier on 25/01/2023.
|
|
//
|
|
|
|
import Foundation
|
|
import SwiftUI
|
|
import CoreData
|
|
|
|
extension Countdown {
|
|
|
|
var name: String? {
|
|
return self.activity?.name
|
|
}
|
|
|
|
var url: URL {
|
|
if let url = URL(string: self.stringId) {
|
|
return url
|
|
} else {
|
|
return URL(fileURLWithPath: self.stringId) // stupid fallthrough
|
|
}
|
|
}
|
|
|
|
static func fake(context: NSManagedObjectContext) -> Countdown {
|
|
let cd = Countdown(context: context)
|
|
cd.duration = 4 * 60.0
|
|
let activity = Activity(context: context)
|
|
activity.name = "Tea"
|
|
cd.activity = activity
|
|
return cd
|
|
}
|
|
|
|
}
|
|
|
|
extension Record {
|
|
|
|
var details: String {
|
|
if let start, let end {
|
|
return "\(start) - \(end)"
|
|
} else {
|
|
return "no details"
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
extension Activity {
|
|
|
|
fileprivate static var formatter: NumberFormatter = NumberFormatter()
|
|
|
|
var recordCount: String {
|
|
let count: Int = self.records?.count ?? 0
|
|
return Activity.formatter.string(from: NSNumber(value: count)) ?? "--"
|
|
}
|
|
|
|
}
|
|
|