From 16d4d0128e0e17b8c0d615026c950826c32ea0ac Mon Sep 17 00:00:00 2001 From: ryanzhao Date: Wed, 5 Apr 2023 14:57:25 +0800 Subject: [PATCH] add a new format for video duration --- .../MediaInfoVC+MediaInfoView.swift | 2 +- SessionUtilitiesKit/General/String+Utilities.swift | 9 +++++++++ SessionUtilitiesKit/General/TimeInterval+Utilities.swift | 1 + 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/Session/Media Viewing & Editing/MediaInfoVC+MediaInfoView.swift b/Session/Media Viewing & Editing/MediaInfoVC+MediaInfoView.swift index f79809e48..25c0f5774 100644 --- a/Session/Media Viewing & Editing/MediaInfoVC+MediaInfoView.swift +++ b/Session/Media Viewing & Editing/MediaInfoVC+MediaInfoView.swift @@ -184,7 +184,7 @@ extension MediaInfoVC { }() durationLabel.text = { guard let duration = attachment.duration else { return "N/A" } - return floor(duration).formatted(format: .hoursMinutesSeconds) + return floor(duration).formatted(format: .videoDuration) }() } } diff --git a/SessionUtilitiesKit/General/String+Utilities.swift b/SessionUtilitiesKit/General/String+Utilities.swift index 39bbbb913..44074f0da 100644 --- a/SessionUtilitiesKit/General/String+Utilities.swift +++ b/SessionUtilitiesKit/General/String+Utilities.swift @@ -84,6 +84,15 @@ public extension String { let secondsPerWeek: TimeInterval = (secondsPerDay * 7) switch format { + case .videoDuration: + let seconds: Int = Int(duration.truncatingRemainder(dividingBy: 60)) + let minutes: Int = Int((duration / 60).truncatingRemainder(dividingBy: 60)) + let hours: Int = Int(duration / 3600) + + guard hours > 0 else { return String(format: "%02ld:%02ld", minutes, seconds) } + + return String(format: "%ld:%02ld:%02ld", hours, minutes, seconds) + case .hoursMinutesSeconds: let seconds: Int = Int(duration.truncatingRemainder(dividingBy: 60)) let minutes: Int = Int((duration / 60).truncatingRemainder(dividingBy: 60)) diff --git a/SessionUtilitiesKit/General/TimeInterval+Utilities.swift b/SessionUtilitiesKit/General/TimeInterval+Utilities.swift index 89b3cc596..c0c668374 100644 --- a/SessionUtilitiesKit/General/TimeInterval+Utilities.swift +++ b/SessionUtilitiesKit/General/TimeInterval+Utilities.swift @@ -7,6 +7,7 @@ public extension TimeInterval { case short case long case hoursMinutesSeconds + case videoDuration } func formatted(format: DurationFormat) -> String {