diff --git a/pass/Controllers/PasswordDetailTableViewController.swift b/pass/Controllers/PasswordDetailTableViewController.swift index 6f01fa4..d47b43e 100644 --- a/pass/Controllers/PasswordDetailTableViewController.swift +++ b/pass/Controllers/PasswordDetailTableViewController.swift @@ -300,8 +300,8 @@ class PasswordDetailTableViewController: UITableViewController, UIGestureRecogni footerLabel.numberOfLines = 0 footerLabel.font = UIFont.preferredFont(forTextStyle: .footnote) footerLabel.textColor = UIColor.gray - let dateString = PasswordStore.shared.getLatestCommitDate(filename: (passwordEntity?.rawPath)!) - footerLabel.text = "Last Updated: \(dateString ?? "Unknown")" + let dateString = PasswordStore.shared.getLatestUpdateInfo(filename: (passwordEntity?.rawPath)!) + footerLabel.text = "Last Updated: \(dateString)" view.addSubview(footerLabel) return view } diff --git a/pass/Models/PasswordStore.swift b/pass/Models/PasswordStore.swift index 915c11a..541c525 100644 --- a/pass/Models/PasswordStore.swift +++ b/pass/Models/PasswordStore.swift @@ -338,16 +338,27 @@ class PasswordStore { } } - func getLatestCommitDate(filename: String) -> String? { + func getLatestUpdateInfo(filename: String) -> String { guard let blameHunks = try? storeRepository?.blame(withFile: filename, options: nil).hunks, let latestCommitTime = blameHunks?.map({ $0.finalSignature?.time?.timeIntervalSince1970 ?? 0 }).max() else { - return nil + return "unknown" } - let date = Date(timeIntervalSince1970: latestCommitTime) - let dateString = DateFormatter.localizedString(from: date, dateStyle: DateFormatter.Style.medium, timeStyle: DateFormatter.Style.medium) - return dateString + let lastCommitDate = Date(timeIntervalSince1970: latestCommitTime) + let currentDate = Date() + var autoFormattedDifference: String + if currentDate.timeIntervalSince(lastCommitDate) <= 60 { + autoFormattedDifference = "just now" + } else { + let diffDate = Calendar.current.dateComponents([.year, .month, .day, .hour, .minute], from: lastCommitDate, to: currentDate) + let dateComponentsFormatter = DateComponentsFormatter() + dateComponentsFormatter.unitsStyle = .full + dateComponentsFormatter.maximumUnitCount = 2 + dateComponentsFormatter.includesApproximationPhrase = true + autoFormattedDifference = (dateComponentsFormatter.string(from: diffDate)?.appending(" ago"))! + } + return autoFormattedDifference } func updateRemoteRepo() {