Fix send when online tooltip display condition

This commit is contained in:
Ilya Laktyushin
2023-03-15 00:51:25 +04:00
parent ce4c6fecc9
commit 1b0cecd76d
2 changed files with 10 additions and 1 deletions

View File

@@ -42,6 +42,14 @@ public func stringForMessageTimestamp(timestamp: Int32, dateTimeFormat: Presenta
return stringForShortTimestamp(hours: timeinfo.tm_hour, minutes: timeinfo.tm_min, dateTimeFormat: dateTimeFormat) return stringForShortTimestamp(hours: timeinfo.tm_hour, minutes: timeinfo.tm_min, dateTimeFormat: dateTimeFormat)
} }
public func getDateTimeComponents(timestamp: Int32) -> (day: Int32, month: Int32, year: Int32, hour: Int32, minutes: Int32) {
var t: time_t = Int(timestamp)
var timeinfo = tm()
localtime_r(&t, &timeinfo);
return (timeinfo.tm_mday, timeinfo.tm_mon + 1, timeinfo.tm_year, timeinfo.tm_hour, timeinfo.tm_min)
}
public func stringForMediumDate(timestamp: Int32, strings: PresentationStrings, dateTimeFormat: PresentationDateTimeFormat) -> String { public func stringForMediumDate(timestamp: Int32, strings: PresentationStrings, dateTimeFormat: PresentationDateTimeFormat) -> String {
var t: time_t = Int(timestamp) var t: time_t = Int(timestamp)
var timeinfo = tm() var timeinfo = tm()

View File

@@ -17539,7 +17539,8 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G
var sendWhenOnlineAvailable = false var sendWhenOnlineAvailable = false
if let presence = peerView.peerPresences[peer.id] as? TelegramUserPresence, case let .present(until) = presence.status { if let presence = peerView.peerPresences[peer.id] as? TelegramUserPresence, case let .present(until) = presence.status {
let currentTime = Int32(CFAbsoluteTimeGetCurrent() + kCFAbsoluteTimeIntervalSince1970) let currentTime = Int32(CFAbsoluteTimeGetCurrent() + kCFAbsoluteTimeIntervalSince1970)
if currentTime > until { let (_, _, _, hours, _) = getDateTimeComponents(timestamp: currentTime)
if currentTime > until + 60 * 30 && hours >= 0 && hours < 8 {
sendWhenOnlineAvailable = true sendWhenOnlineAvailable = true
} }
} }