mirror of
https://github.com/kotatogram/kotatogram-desktop
synced 2025-08-31 06:35:14 +00:00
Show emoji interaction seen status.
This commit is contained in:
@@ -991,17 +991,11 @@ void Updates::handleSendActionUpdate(
|
||||
if (!from || !from->isUser() || from->isSelf()) {
|
||||
return;
|
||||
} else if (action.type() == mtpc_sendMessageEmojiInteraction) {
|
||||
const auto &data = action.c_sendMessageEmojiInteraction();
|
||||
const auto json = data.vinteraction().match([&](
|
||||
const MTPDdataJSON &data) {
|
||||
return data.vdata().v;
|
||||
});
|
||||
const auto emoticon = qs(data.vemoticon());
|
||||
handleEmojiInteraction(
|
||||
peer,
|
||||
data.vmsg_id().v,
|
||||
qs(data.vemoticon()),
|
||||
ChatHelpers::EmojiInteractions::Parse(json));
|
||||
handleEmojiInteraction(peer, action.c_sendMessageEmojiInteraction());
|
||||
return;
|
||||
} else if (action.type() == mtpc_sendMessageEmojiInteractionSeen) {
|
||||
const auto &data = action.c_sendMessageEmojiInteractionSeen();
|
||||
handleEmojiInteraction(peer, qs(data.vemoticon()));
|
||||
return;
|
||||
}
|
||||
const auto when = requestingDifference()
|
||||
@@ -1015,6 +1009,20 @@ void Updates::handleSendActionUpdate(
|
||||
when);
|
||||
}
|
||||
|
||||
void Updates::handleEmojiInteraction(
|
||||
not_null<PeerData*> peer,
|
||||
const MTPDsendMessageEmojiInteraction &data) {
|
||||
const auto json = data.vinteraction().match([&](
|
||||
const MTPDdataJSON &data) {
|
||||
return data.vdata().v;
|
||||
});
|
||||
handleEmojiInteraction(
|
||||
peer,
|
||||
data.vmsg_id().v,
|
||||
qs(data.vemoticon()),
|
||||
ChatHelpers::EmojiInteractions::Parse(json));
|
||||
}
|
||||
|
||||
void Updates::handleSpeakingInCall(
|
||||
not_null<PeerData*> peer,
|
||||
PeerId participantPeerId,
|
||||
@@ -1061,6 +1069,16 @@ void Updates::handleEmojiInteraction(
|
||||
std::move(bunch));
|
||||
}
|
||||
|
||||
void Updates::handleEmojiInteraction(
|
||||
not_null<PeerData*> peer,
|
||||
const QString &emoticon) {
|
||||
if (session().windows().empty()) {
|
||||
return;
|
||||
}
|
||||
const auto window = session().windows().front();
|
||||
window->emojiInteractions().seenOutgoing(peer, emoticon);
|
||||
}
|
||||
|
||||
void Updates::applyUpdatesNoPtsCheck(const MTPUpdates &updates) {
|
||||
switch (updates.type()) {
|
||||
case mtpc_updateShortMessage: {
|
||||
|
@@ -143,6 +143,9 @@ private:
|
||||
MsgId rootId,
|
||||
PeerId fromId,
|
||||
const MTPSendMessageAction &action);
|
||||
void handleEmojiInteraction(
|
||||
not_null<PeerData*> peer,
|
||||
const MTPDsendMessageEmojiInteraction &data);
|
||||
void handleSpeakingInCall(
|
||||
not_null<PeerData*> peer,
|
||||
PeerId participantPeerId,
|
||||
@@ -152,6 +155,9 @@ private:
|
||||
MsgId messageId,
|
||||
const QString &emoticon,
|
||||
ChatHelpers::EmojiInteractionsBunch bunch);
|
||||
void handleEmojiInteraction(
|
||||
not_null<PeerData*> peer,
|
||||
const QString &emoticon);
|
||||
|
||||
const not_null<Main::Session*> _session;
|
||||
|
||||
|
Reference in New Issue
Block a user