2
0
mirror of https://github.com/telegramdesktop/tdesktop synced 2025-09-05 00:46:08 +00:00

Show send action animations in Replies thread.

This commit is contained in:
John Preston
2020-09-29 11:36:30 +03:00
parent 433c147dd0
commit e8df47c926
20 changed files with 597 additions and 332 deletions

View File

@@ -31,6 +31,7 @@ namespace HistoryView {
struct Group;
class Element;
class ElementDelegate;
class SendActionPainter;
} // namespace HistoryView
namespace Main {
@@ -170,6 +171,7 @@ public:
void registerSendAction(
not_null<History*> history,
MsgId rootId,
not_null<UserData*> user,
const MTPSendMessageAction &action,
TimeId when);
@@ -377,6 +379,17 @@ public:
-> rpl::producer<SendActionAnimationUpdate>;
void updateSendActionAnimation(SendActionAnimationUpdate &&update);
using SendActionPainter = HistoryView::SendActionPainter;
[[nodiscard]] std::shared_ptr<SendActionPainter> repliesSendActionPainter(
not_null<History*> history,
MsgId rootId);
void repliesSendActionPainterRemoved(
not_null<History*> history,
MsgId rootId);
void repliesSendActionPaintersClear(
not_null<History*> history,
not_null<UserData*> user);
[[nodiscard]] int unreadBadge() const;
[[nodiscard]] bool unreadBadgeMuted() const;
[[nodiscard]] int unreadBadgeIgnoreOne(const Dialogs::Key &key) const;
@@ -759,6 +772,9 @@ private:
TimeId date);
bool sendActionsAnimationCallback(crl::time now);
[[nodiscard]] SendActionPainter *lookupSendActionPainter(
not_null<History*> history,
MsgId rootId);
void setWallpapers(const QVector<MTPWallPaper> &data, int32 hash);
@@ -819,7 +835,9 @@ private:
std::vector<FullMsgId> _selfDestructItems;
// When typing in this history started.
base::flat_map<not_null<History*>, crl::time> _sendActions;
base::flat_map<
std::pair<not_null<History*>, MsgId>,
crl::time> _sendActions;
Ui::Animations::Basic _sendActionsAnimation;
std::unordered_map<
@@ -920,6 +938,11 @@ private:
std::unique_ptr<Streaming> _streaming;
std::unique_ptr<MediaRotation> _mediaRotation;
std::unique_ptr<Histories> _histories;
base::flat_map<
not_null<History*>,
base::flat_map<
MsgId,
std::weak_ptr<SendActionPainter>>> _sendActionPainters;
std::unique_ptr<Stickers> _stickers;
MsgId _nonHistoryEntryId = ServerMaxMsgId;