Composing animation does not go away when receiving a message with a <delay> tag
TL;DR: it seems the presence of a <delay>
tag prevents gajim from parsing the <active>
chat state.
Versions
- OS: debian bullseye
- Gajim version: 1.7.1 (flatpak)
Steps to reproduce the problem
- Receive a "composing" chat state
- Receive a message with a
<delay>
and the<active>
chat state
Expected behavior
"XXX is composing" should go away
Actual behavior
It stays
Investigation
I did not manage to track this fully yet, but I think what happens is that a message containing a <delay>
does not trigger the chatstate handler, resulting in actually never parsing the <active>
chat state.
Example sequence:
<!-- Incoming mar. 28 févr. 2023 20:33:01 (test@localhost) -->
<message xmlns="jabber:client" from="some-id@signal.localhost/slidge" type="chat" to="test@localhost" id="5e01cef997e149d686fba7d141c66df6" xml:lang="en">
<composing xmlns="http://jabber.org/protocol/chatstates" />
<no-store xmlns="urn:xmpp:hints" />
</message>
28/02/2023 20:33:01 (I) gajim.c.m.chatstate (localhost) Recv: Chatstate.COMPOSING - some-id@signal.localhost/slidge
<!-- Incoming mar. 28 févr. 2023 20:33:03 (test@localhost) -->
<message xmlns="jabber:client" from="some-id@signal.localhost/slidge" type="chat" to="test@localhost" id="1677612783295" xml:lang="en">
<body>SOMEMESSAGE</body>
<active xmlns="http://jabber.org/protocol/chatstates" />
<markable xmlns="urn:xmpp:chat-markers:0" />
<store xmlns="urn:xmpp:hints" />
<delay from="signal.localhost" stamp="2023-02-28T19:33:03.295000Z" xmlns="urn:xmpp:delay" />
<stanza-id id="gU3foXyBFbY-Ary3caUIxbg9" by="test@localhost" xmlns="urn:xmpp:sid:0" />
</message>
Nothing, and 30 seconds later...
28/02/2023 20:33:32 (I) gajim.c.m.chatstate (localhost) Automatically switching the chat state of some-id@@signal.localhost/slidge (localhost) to ACTIVE
It seems to be caused by the presence of the <delay>
tag, because it seems to work just fine if I remove it.