diff --git a/main/DB/DBExtensions.swift b/main/DB/DBExtensions.swift index 31a9109..ee52ced 100644 --- a/main/DB/DBExtensions.swift +++ b/main/DB/DBExtensions.swift @@ -33,11 +33,13 @@ extension FilterOptions { } extension Recording { + static let minTimeLongTerm: Timestamp = .hours(1) + var fallbackTitle: String { get { isLongTerm ? "Background Recording" : "Unnamed Recording #\(id)" } } var duration: Timestamp { get { (stop ?? .now()) - start } } - var isLongTerm: Bool { duration > Timestamp.hours(1) } + var isLongTerm: Bool { duration > Recording.minTimeLongTerm } var isShared: Bool { uploadkey?.count ?? 0 > 0} } diff --git a/main/Extensions/Time.swift b/main/Extensions/Time.swift index 80ec882..7621840 100644 --- a/main/Extensions/Time.swift +++ b/main/Extensions/Time.swift @@ -87,14 +87,21 @@ struct TimeFormat { /// Duration string with format `mm:ss` or `mm:ss.SSS` static func from(_ duration: TimeInterval, millis: Bool = false, hours: Bool = false) -> String { - let t = Int(duration) - let min = t / 60 - let sec = t % 60 + var t = Int(duration) + var min = t / 60 + var sec = t % 60 if millis { let mil = Int(duration * 1000) % 1000 return String(format: "%02d:%02d.%03d", min, sec, mil) } else if hours { - return String(format: "%02d:%02d:%02d", min / 60, min % 60, sec) + if t < Recording.minTimeLongTerm { + t = Int(Recording.minTimeLongTerm) - t + min = t / 60 + sec = t % 60 + return String(format: "-%02d:%02d:%02d", min / 60, min % 60, sec) + } else { + return String(format: "%02d:%02d:%02d", min / 60, min % 60, sec) + } } return String(format: "%02d:%02d", min, sec) }