Voice Chat Fixes

This commit is contained in:
Ilya Laktyushin
2021-04-09 18:25:38 +03:00
parent 8ec300703d
commit 16b8b71e43
14 changed files with 5245 additions and 5006 deletions

View File

@@ -126,21 +126,38 @@ public func stringForUserPresence(strings: PresentationStrings, day: RelativeTim
return dayString
}
private func humanReadableStringForTimestamp(strings: PresentationStrings, day: RelativeTimestampFormatDay, dateTimeFormat: PresentationDateTimeFormat, hours: Int32, minutes: Int32) -> String {
private func humanReadableStringForTimestamp(strings: PresentationStrings, day: RelativeTimestampFormatDay, dateTimeFormat: PresentationDateTimeFormat, hours: Int32, minutes: Int32, format: HumanReadableStringFormat? = nil) -> String {
let dayString: String
switch day {
case .today:
dayString = strings.Time_TodayAt(stringForShortTimestamp(hours: hours, minutes: minutes, dateTimeFormat: dateTimeFormat)).0
let string = stringForShortTimestamp(hours: hours, minutes: minutes, dateTimeFormat: dateTimeFormat)
dayString = format?.todayFormatString(string) ?? strings.Time_TodayAt(string).0
case .yesterday:
dayString = strings.Time_YesterdayAt(stringForShortTimestamp(hours: hours, minutes: minutes, dateTimeFormat: dateTimeFormat)).0
let string = stringForShortTimestamp(hours: hours, minutes: minutes, dateTimeFormat: dateTimeFormat)
dayString = format?.yesterdayFormatString(string) ?? strings.Time_YesterdayAt(string).0
case .tomorrow:
dayString = strings.Time_TomorrowAt(stringForShortTimestamp(hours: hours, minutes: minutes, dateTimeFormat: dateTimeFormat)).0
let string = stringForShortTimestamp(hours: hours, minutes: minutes, dateTimeFormat: dateTimeFormat)
dayString = format?.tomorrowFormatString(string) ?? strings.Time_TomorrowAt(string).0
}
return dayString
}
public func humanReadableStringForTimestamp(strings: PresentationStrings, dateTimeFormat: PresentationDateTimeFormat, timestamp: Int32) -> String {
public struct HumanReadableStringFormat {
let dateFormatString: (String) -> String
let tomorrowFormatString: (String) -> String
let todayFormatString: (String) -> String
let yesterdayFormatString: (String) -> String
public init(dateFormatString: @escaping (String) -> String, tomorrowFormatString: @escaping (String) -> String, todayFormatString: @escaping (String) -> String, yesterdayFormatString: @escaping (String) -> String) {
self.dateFormatString = dateFormatString
self.tomorrowFormatString = tomorrowFormatString
self.todayFormatString = todayFormatString
self.yesterdayFormatString = yesterdayFormatString
}
}
public func humanReadableStringForTimestamp(strings: PresentationStrings, dateTimeFormat: PresentationDateTimeFormat, timestamp: Int32, format: HumanReadableStringFormat? = nil) -> String {
var t: time_t = time_t(timestamp)
var timeinfo: tm = tm()
localtime_r(&t, &timeinfo)
@@ -151,7 +168,8 @@ public func humanReadableStringForTimestamp(strings: PresentationStrings, dateTi
localtime_r(&now, &timeinfoNow)
if timeinfo.tm_year != timeinfoNow.tm_year {
return "\(stringForTimestamp(day: timeinfo.tm_mday, month: timeinfo.tm_mon + 1, year: timeinfo.tm_year, dateTimeFormat: dateTimeFormat))"
let string = "\(stringForTimestamp(day: timeinfo.tm_mday, month: timeinfo.tm_mon + 1, year: timeinfo.tm_year, dateTimeFormat: dateTimeFormat))"
return format?.dateFormatString(string) ?? string
}
let dayDifference = timeinfo.tm_yday - timeinfoNow.tm_yday
@@ -164,9 +182,10 @@ public func humanReadableStringForTimestamp(strings: PresentationStrings, dateTi
} else {
day = .tomorrow
}
return humanReadableStringForTimestamp(strings: strings, day: day, dateTimeFormat: dateTimeFormat, hours: timeinfo.tm_hour, minutes: timeinfo.tm_min)
return humanReadableStringForTimestamp(strings: strings, day: day, dateTimeFormat: dateTimeFormat, hours: timeinfo.tm_hour, minutes: timeinfo.tm_min, format: format)
} else {
return "\(stringForTimestamp(day: timeinfo.tm_mday, month: timeinfo.tm_mon + 1, year: timeinfo.tm_year, dateTimeFormat: dateTimeFormat))"
let string = "\(stringForTimestamp(day: timeinfo.tm_mday, month: timeinfo.tm_mon + 1, year: timeinfo.tm_year, dateTimeFormat: dateTimeFormat))"
return format?.dateFormatString(string) ?? string
}
}