/* 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 #include "mtproto/sender.h" class ApiWrap; namespace Main { class Session; } // namespace Main namespace Api { class GlobalPrivacy final { public: explicit GlobalPrivacy(not_null api); void reload(Fn callback = nullptr); void update(bool archiveAndMute); [[nodiscard]] bool archiveAndMuteCurrent() const; [[nodiscard]] rpl::producer archiveAndMute() const; [[nodiscard]] rpl::producer showArchiveAndMute() const; [[nodiscard]] rpl::producer<> suggestArchiveAndMute() const; void dismissArchiveAndMuteSuggestion(); private: void apply(const MTPGlobalPrivacySettings &data); const not_null _session; MTP::Sender _api; mtpRequestId _requestId = 0; rpl::variable _archiveAndMute = false; rpl::variable _showArchiveAndMute = false; std::vector> _callbacks; }; } // namespace Api