| 152 | } |
| 153 | |
| 154 | bool SendProgressManager::skipRequest(const Key &key) const { |
| 155 | const auto user = key.history->peer->asUser(); |
| 156 | if (!user) { |
| 157 | return false; |
| 158 | } else if (user->isSelf()) { |
| 159 | return true; |
| 160 | } else if (user->isBot() && !user->isSupport()) { |
| 161 | return true; |
| 162 | } |
| 163 | const auto recently = base::unixtime::now() - kSendTypingsToOfflineFor; |
| 164 | const auto lastseen = user->lastseen(); |
| 165 | if (lastseen.isRecently()) { |
| 166 | return false; |
| 167 | } else if (const auto value = lastseen.onlineTill()) { |
| 168 | return (value < recently); |
| 169 | } |
| 170 | return true; |
| 171 | } |
| 172 | |
| 173 | void SendProgressManager::done(mtpRequestId requestId) { |
| 174 | for (auto i = _requests.begin(), e = _requests.end(); i != e; ++i) { |
nothing calls this directly
no test coverage detected