diff --git a/pass/Controllers/PasswordDetailTableViewController.swift b/pass/Controllers/PasswordDetailTableViewController.swift index 6b3e2ca..3012e87 100644 --- a/pass/Controllers/PasswordDetailTableViewController.swift +++ b/pass/Controllers/PasswordDetailTableViewController.swift @@ -253,12 +253,12 @@ class PasswordDetailTableViewController: UITableViewController, UIGestureRecogni override func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? { if section == tableData.count - 1 { let view = UIView() - let footerLabel = UILabel(frame: CGRect(x: 8, y: 15, width: tableView.frame.width, height: 60)) + let footerLabel = UILabel(frame: CGRect(x: 15, y: 15, width: tableView.frame.width, height: 60)) footerLabel.numberOfLines = 0 footerLabel.font = UIFont.preferredFont(forTextStyle: .footnote) footerLabel.textColor = UIColor.lightGray - let dateString = DateFormatter.localizedString(from: passwordEntity?.commitDate as! Date, dateStyle: DateFormatter.Style.long, timeStyle: DateFormatter.Style.long) - footerLabel.text = "Latest commit: \(dateString)" + let dateString = PasswordStore.shared.getLatestCommitDate(filename: (passwordEntity?.rawPath)!) + footerLabel.text = "Latest commit: \(dateString ?? "Unknown")" view.addSubview(footerLabel) return view } diff --git a/pass/Models/PasswordStore.swift b/pass/Models/PasswordStore.swift index 5817791..d6fd064 100644 --- a/pass/Models/PasswordStore.swift +++ b/pass/Models/PasswordStore.swift @@ -243,17 +243,6 @@ class PasswordStore { let endIndex = url.lastPathComponent.index(url.lastPathComponent.endIndex, offsetBy: -4) passwordEntity.name = url.lastPathComponent.substring(to: endIndex) passwordEntity.rawPath = "\(url.path)" - if let blameHunks = try? storeRepository?.blame(withFile: e, options: nil).hunks { - func GetHunkDate(hunk: GTBlameHunk) -> TimeInterval { - guard let date = hunk.finalSignature?.time?.timeIntervalSince1970 else { - print("Time is missing from GTSignature.") - return 0 - } - return date - } - let dates = blameHunks?.map(GetHunkDate).max() - passwordEntity.commitDate = NSDate(timeIntervalSince1970: dates!) - } let items = url.path.characters.split(separator: "/").map(String.init) for i in 0 ..< items.count - 1 { let passwordCategoryEntity = PasswordCategoryEntity(context: context) @@ -344,6 +333,18 @@ class PasswordStore { } } + func getLatestCommitDate(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 + } + let date = Date(timeIntervalSince1970: latestCommitTime) + let dateString = DateFormatter.localizedString(from: date, dateStyle: DateFormatter.Style.medium, timeStyle: DateFormatter.Style.medium) + return dateString + } + func updateRemoteRepo() { } @@ -450,8 +451,7 @@ class PasswordStore { passwordEntity.synced = false try context.save() print(saveURL.path) - let commit = createAddCommitInRepository(message: "Add new password by pass for iOS", fileData: encryptedData, filename: saveURL.lastPathComponent, progressBlock: progressBlock) - passwordEntity.commitDate = commit?.commitDate as NSDate? + let _ = createAddCommitInRepository(message: "Add new password by pass for iOS", fileData: encryptedData, filename: saveURL.lastPathComponent, progressBlock: progressBlock) progressBlock(1.0) } catch { print(error) @@ -464,8 +464,7 @@ class PasswordStore { let saveURL = storeURL.appendingPathComponent(passwordEntity.rawPath!) try encryptedData.write(to: saveURL) progressBlock(0.3) - let commit = createAddCommitInRepository(message: "Update password by pass for iOS", fileData: encryptedData, filename: saveURL.lastPathComponent, progressBlock: progressBlock) - passwordEntity.commitDate = commit?.commitDate as NSDate? + let _ = createAddCommitInRepository(message: "Update password by pass for iOS", fileData: encryptedData, filename: saveURL.lastPathComponent, progressBlock: progressBlock) } catch { print(error) } diff --git a/pass/pass.xcdatamodeld/pass.xcdatamodel/contents b/pass/pass.xcdatamodeld/pass.xcdatamodel/contents index 8d650b8..ede2475 100644 --- a/pass/pass.xcdatamodeld/pass.xcdatamodel/contents +++ b/pass/pass.xcdatamodeld/pass.xcdatamodel/contents @@ -6,7 +6,6 @@ - @@ -16,6 +15,6 @@ - + \ No newline at end of file