mirror of
https://github.com/SideStore/SideStore.git
synced 2026-02-09 06:43:25 +01:00
Limits relative date strings to “Yesterday” and “Today”
Any relative date older than “Yesterday” will be displayed as absolute date instead.
This commit is contained in:
@@ -31,13 +31,6 @@ final class AppContentViewController: UITableViewController
|
|||||||
|
|
||||||
private lazy var screenshotsDataSource = self.makeScreenshotsDataSource()
|
private lazy var screenshotsDataSource = self.makeScreenshotsDataSource()
|
||||||
|
|
||||||
private lazy var dateFormatter: DateFormatter = {
|
|
||||||
let dateFormatter = DateFormatter()
|
|
||||||
dateFormatter.dateStyle = .medium
|
|
||||||
dateFormatter.timeStyle = .none
|
|
||||||
return dateFormatter
|
|
||||||
}()
|
|
||||||
|
|
||||||
private lazy var byteCountFormatter: ByteCountFormatter = {
|
private lazy var byteCountFormatter: ByteCountFormatter = {
|
||||||
let formatter = ByteCountFormatter()
|
let formatter = ByteCountFormatter()
|
||||||
return formatter
|
return formatter
|
||||||
@@ -84,7 +77,7 @@ final class AppContentViewController: UITableViewController
|
|||||||
{
|
{
|
||||||
self.versionDescriptionTextView.text = version.localizedDescription
|
self.versionDescriptionTextView.text = version.localizedDescription
|
||||||
self.versionLabel.text = String(format: NSLocalizedString("Version %@", comment: ""), version.localizedVersion)
|
self.versionLabel.text = String(format: NSLocalizedString("Version %@", comment: ""), version.localizedVersion)
|
||||||
self.versionDateLabel.text = Date().relativeDateString(since: version.date, dateFormatter: self.dateFormatter)
|
self.versionDateLabel.text = Date().relativeDateString(since: version.date)
|
||||||
self.sizeLabel.text = self.byteCountFormatter.string(fromByteCount: version.size)
|
self.sizeLabel.text = self.byteCountFormatter.string(fromByteCount: version.size)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -63,13 +63,6 @@ class MyAppsViewController: UICollectionViewController, PeekPopPreviewing
|
|||||||
// Cache
|
// Cache
|
||||||
private var cachedUpdateSizes = [String: CGSize]()
|
private var cachedUpdateSizes = [String: CGSize]()
|
||||||
|
|
||||||
private lazy var dateFormatter: DateFormatter = {
|
|
||||||
let dateFormatter = DateFormatter()
|
|
||||||
dateFormatter.dateStyle = .medium
|
|
||||||
dateFormatter.timeStyle = .none
|
|
||||||
return dateFormatter
|
|
||||||
}()
|
|
||||||
|
|
||||||
required init?(coder aDecoder: NSCoder)
|
required init?(coder aDecoder: NSCoder)
|
||||||
{
|
{
|
||||||
super.init(coder: aDecoder)
|
super.init(coder: aDecoder)
|
||||||
@@ -244,7 +237,7 @@ private extension MyAppsViewController
|
|||||||
|
|
||||||
cell.bannerView.configure(for: app)
|
cell.bannerView.configure(for: app)
|
||||||
|
|
||||||
let versionDate = Date().relativeDateString(since: latestSupportedVersion.date, dateFormatter: self.dateFormatter)
|
let versionDate = Date().relativeDateString(since: latestSupportedVersion.date)
|
||||||
cell.bannerView.subtitleLabel.text = versionDate
|
cell.bannerView.subtitleLabel.text = versionDate
|
||||||
|
|
||||||
let appName: String
|
let appName: String
|
||||||
|
|||||||
@@ -10,6 +10,13 @@ import Foundation
|
|||||||
|
|
||||||
public extension Date
|
public extension Date
|
||||||
{
|
{
|
||||||
|
private static let mediumDateFormatter: DateFormatter = {
|
||||||
|
let dateFormatter = DateFormatter()
|
||||||
|
dateFormatter.dateStyle = .medium
|
||||||
|
dateFormatter.timeStyle = .none
|
||||||
|
return dateFormatter
|
||||||
|
}()
|
||||||
|
|
||||||
func numberOfCalendarDays(since date: Date) -> Int
|
func numberOfCalendarDays(since date: Date) -> Int
|
||||||
{
|
{
|
||||||
let today = Calendar.current.startOfDay(for: self)
|
let today = Calendar.current.startOfDay(for: self)
|
||||||
@@ -19,15 +26,15 @@ public extension Date
|
|||||||
return components.day!
|
return components.day!
|
||||||
}
|
}
|
||||||
|
|
||||||
func relativeDateString(since date: Date, dateFormatter: DateFormatter) -> String
|
func relativeDateString(since date: Date, dateFormatter: DateFormatter? = nil) -> String
|
||||||
{
|
{
|
||||||
|
let dateFormatter = dateFormatter ?? Date.mediumDateFormatter
|
||||||
let numberOfDays = self.numberOfCalendarDays(since: date)
|
let numberOfDays = self.numberOfCalendarDays(since: date)
|
||||||
|
|
||||||
switch numberOfDays
|
switch numberOfDays
|
||||||
{
|
{
|
||||||
case 0: return NSLocalizedString("Today", comment: "")
|
case 0: return NSLocalizedString("Today", comment: "")
|
||||||
case 1: return NSLocalizedString("Yesterday", comment: "")
|
case 1: return NSLocalizedString("Yesterday", comment: "")
|
||||||
case 2...7: return String(format: NSLocalizedString("%@ days ago", comment: ""), NSNumber(value: numberOfDays))
|
|
||||||
default: return dateFormatter.string(from: date)
|
default: return dateFormatter.string(from: date)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user