| 482 | } |
| 483 | |
| 484 | QString OnlineTextFull(not_null<UserData*> user, TimeId now) { |
| 485 | if (const auto special = OnlineTextSpecial(user)) { |
| 486 | return *special; |
| 487 | } else if (const auto common = OnlineTextCommon(user->lastseen(), now)) { |
| 488 | return *common; |
| 489 | } |
| 490 | const auto till = user->lastseen().onlineTill(); |
| 491 | const auto onlineFull = base::unixtime::parse(till); |
| 492 | const auto nowFull = base::unixtime::parse(now); |
| 493 | const auto locale = QLocale(); |
| 494 | if (onlineFull.date() == nowFull.date()) { |
| 495 | const auto onlineTime = locale.toString(onlineFull.time(), QLocale::ShortFormat); |
| 496 | return tr::lng_status_lastseen_today(tr::now, lt_time, onlineTime); |
| 497 | } else if (onlineFull.date().addDays(1) == nowFull.date()) { |
| 498 | const auto onlineTime = locale.toString(onlineFull.time(), QLocale::ShortFormat); |
| 499 | return tr::lng_status_lastseen_yesterday(tr::now, lt_time, onlineTime); |
| 500 | } |
| 501 | const auto date = locale.toString(onlineFull.date(), QLocale::ShortFormat); |
| 502 | const auto time = locale.toString(onlineFull.time(), QLocale::ShortFormat); |
| 503 | return tr::lng_status_lastseen_date_time(tr::now, lt_date, date, lt_time, time); |
| 504 | } |
| 505 | |
| 506 | bool OnlineTextActive(not_null<UserData*> user, TimeId now) { |
| 507 | return !user->isServiceUser() |
no test coverage detected