| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- /*
- This file is part of Telegram Desktop,
- the official desktop application for the Telegram messaging service.
- For license and copyright information please follow this link:
- https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
- */
- #pragma once
- class ApiWrap;
- class PeerData;
- class ChannelData;
- namespace Data {
- class Thread;
- } // namespace Data
- namespace Api {
- class UnreadThings final {
- public:
- explicit UnreadThings(not_null<ApiWrap*> api);
- [[nodiscard]] bool trackMentions(Data::Thread *thread) const;
- [[nodiscard]] bool trackReactions(Data::Thread *thread) const;
- void preloadEnough(Data::Thread *thread);
- void mediaAndMentionsRead(
- const base::flat_set<MsgId> &readIds,
- ChannelData *channel = nullptr);
- void cancelRequests(not_null<Data::Thread*> thread);
- private:
- void preloadEnoughMentions(not_null<Data::Thread*> thread);
- void preloadEnoughReactions(not_null<Data::Thread*> thread);
- void requestMentions(not_null<Data::Thread*> thread, int loaded);
- void requestReactions(not_null<Data::Thread*> thread, int loaded);
- const not_null<ApiWrap*> _api;
- base::flat_map<not_null<Data::Thread*>, mtpRequestId> _mentionsRequests;
- base::flat_map<not_null<Data::Thread*>, mtpRequestId> _reactionsRequests;
- };
- } // namespace Api
|