Don't query for type on blocked jid
Since the server won't let us talk to them anyway
Persist block even if already closed
Stay pinned if already pinned and would be open
Since we don't sync pinned state yet
Preserve 110 if not present
Some servers (ejabberd) send self-presence updates without 110. So if a
presence was 110 and isn't now, let's assume it still is.
Wait for writes after each page from MAM
Instead of queuing them all up until the end and then after MAM is
"done" on a slow system we may still have thousands of writes left to
wait for.
Do not move to in front of pinned chats
Support for pinning chats
An app may want all sorts of meanings or custom UI around this. But if
they do nothing we at least use it to sort to the top of our internal list.
Poll for media instead of erroring
Makes img tags wait for the media to be available.
Need to await the lastFromSender fetch
Support for blocking/unblocking chats
Block status is persisted on the chat.
It is updated when server pushes, and a full blocklist pull is done on
new session.
Block closes any open chat and prevents any notifications for that chat
so it should not notify or open again even on MAM.
Explicit unblock opens the chat.
Also implemented spam reporting when making the block call if the app
wishes to do so. SPAM reports must contain an example SPAM message.
Include git version in output
AvailableChat displayName is not specific enough
It is a useful display name for the search result, but it often consists
of something generic to a gateway or just the search query as-typed
which may be incomplete. Not a useful thing to store as the display
name of the chat post-add.
Auolink: Remove empty file
Fix several show-stopping MAM sync bugs
More logs and resilience to initial sync failures
Bytes.ofHex can fail
If the input is odd number of elements or not hex alphabet
Try switching to my copy of gitpkg
Don't double up sender name