Various improvements

This commit is contained in:
Isaac
2024-03-27 19:00:12 +04:00
parent 120d23292d
commit 9cfdc27443
30 changed files with 1089 additions and 237 deletions

View File

@@ -209,15 +209,15 @@ public func stringForUserPresence(strings: PresentationStrings, day: RelativeTim
private func humanReadableStringForTimestamp(strings: PresentationStrings, day: RelativeTimestampFormatDay, dateTimeFormat: PresentationDateTimeFormat, hours: Int32, minutes: Int32, format: HumanReadableStringFormat? = nil) -> PresentationStrings.FormattedString {
let result: PresentationStrings.FormattedString
switch day {
case .today:
let string = stringForShortTimestamp(hours: hours, minutes: minutes, dateTimeFormat: dateTimeFormat)
result = format?.todayFormatString(string) ?? strings.Time_TodayAt(string)
case .yesterday:
let string = stringForShortTimestamp(hours: hours, minutes: minutes, dateTimeFormat: dateTimeFormat)
result = format?.yesterdayFormatString(string) ?? strings.Time_YesterdayAt(string)
case .tomorrow:
let string = stringForShortTimestamp(hours: hours, minutes: minutes, dateTimeFormat: dateTimeFormat)
result = format?.tomorrowFormatString(string) ?? strings.Time_TomorrowAt(string)
case .today:
let string = stringForShortTimestamp(hours: hours, minutes: minutes, dateTimeFormat: dateTimeFormat)
result = format?.todayFormatString(string) ?? strings.Time_TodayAt(string)
case .yesterday:
let string = stringForShortTimestamp(hours: hours, minutes: minutes, dateTimeFormat: dateTimeFormat)
result = format?.yesterdayFormatString(string) ?? strings.Time_YesterdayAt(string)
case .tomorrow:
let string = stringForShortTimestamp(hours: hours, minutes: minutes, dateTimeFormat: dateTimeFormat)
result = format?.tomorrowFormatString(string) ?? strings.Time_TomorrowAt(string)
}
return result
@@ -228,17 +228,20 @@ public struct HumanReadableStringFormat {
let tomorrowFormatString: (String) -> PresentationStrings.FormattedString
let todayFormatString: (String) -> PresentationStrings.FormattedString
let yesterdayFormatString: (String) -> PresentationStrings.FormattedString
let daysFormatString: ((Int) -> PresentationStrings.FormattedString)?
public init(
dateFormatString: @escaping (String) -> PresentationStrings.FormattedString,
tomorrowFormatString: @escaping (String) -> PresentationStrings.FormattedString,
todayFormatString: @escaping (String) -> PresentationStrings.FormattedString,
yesterdayFormatString: @escaping (String) -> PresentationStrings.FormattedString = { PresentationStrings.FormattedString(string: $0, ranges: []) }
yesterdayFormatString: @escaping (String) -> PresentationStrings.FormattedString = { PresentationStrings.FormattedString(string: $0, ranges: []) },
daysFormatString: ((Int) -> PresentationStrings.FormattedString)? = nil
) {
self.dateFormatString = dateFormatString
self.tomorrowFormatString = tomorrowFormatString
self.todayFormatString = todayFormatString
self.yesterdayFormatString = yesterdayFormatString
self.daysFormatString = daysFormatString
}
}
@@ -273,6 +276,8 @@ public func humanReadableStringForTimestamp(strings: PresentationStrings, dateTi
day = .tomorrow
}
return humanReadableStringForTimestamp(strings: strings, day: day, dateTimeFormat: dateTimeFormat, hours: timeinfo.tm_hour, minutes: timeinfo.tm_min, format: format)
} else if dayDifference < 7, let daysFormatString = format?.daysFormatString {
return daysFormatString(Int(dayDifference))
} else {
let string: String
if alwaysShowTime {