Daniel Gultsch
9f08a32ffb
include remote server errors in errors that should trigger a self ping
2019-06-30 20:08:28 +02:00
Daniel Gultsch
e467fe341e
implement client support for muc push
...
Staying connected to a MUC room hosted on a remote server can be challenging.
If a server reboots it will usually send a shut down notification to all
participants. However even if a client knows that a server was shut down it
doesn’t know when it comes up again. In some corner cases that shut down
notification might not even be delivered successfully leaving the client in a
state where it thinks it is connected but it really isn’t.
The possible work around implemented in this commit is to register the clients
full JID (user@domain.tld/Conversations.r4nd) as an App Server according to
XEP-0357 with the room. (Conversations checks for the push:0 namespace on the
room.)
After cycling through a reboot the first message send to a room will trigger
pubsub notifications to each registered full JID. This event will be used to
trigger a XEP-0410 ping and if necessary a subsequent rejoin of the MUC.
If the resource has become unavailable during down time of the MUC server the
user’s server will respond with an IQ error which in turn leads to the MUC
server disabling that push target.
Leaving a MUC will send a `disable` command. If sending that disable command
failed for some reason (network outage) and the client receives a pubsub
notification for a room it is no longer joined in it will respond with an
item-not-found IQ error which also disables subsequent pushes from the server.
Note: We 0410-ping before a join to avoid unnecessary full joins which can be
quite costly. Further client side optimazations will also surpress pings when
a ping is already in flight to further save traffic.
2019-06-24 18:16:06 +02:00
Daniel Gultsch
b6d059ed89
ping muc after receiving not-acceptable error
2019-06-18 18:40:16 +02:00
Daniel Gultsch
6862b60c3f
self ping (xep-0410) after receiving invite to muc
2019-06-18 13:20:24 +02:00
Daniel Gultsch
b2ea91909b
introduced type private_file_message to handle attachments in PMs. fixes #3372
2019-04-27 11:46:43 +02:00
Daniel Gultsch
74301831d2
do sent/received correct based on true counterpart introduces in f406631512
only for type=groupchat
2019-03-15 12:46:27 +01:00
Daniel Gultsch
f406631512
double check that muc message is ours if true jid is known
2019-03-02 08:36:36 +01:00
Daniel Gultsch
d95b904b5b
show file too large instead of generic delivery failed
2019-02-20 21:44:06 +01:00
Daniel Gultsch
32ef3755e2
show different room settings for channels and groups
2019-02-06 18:29:07 +01:00
Daniel Gultsch
2b913f367d
provide the same fab submenu for both tabs. rename tab to bookmark
2019-02-06 14:45:51 +01:00
Daniel Gultsch
a53774bc6d
resend presence to muc avatar update. fixes #3175
2019-01-17 17:55:47 +01:00
Daniel Gultsch
9efb3c6dc6
synchronize around notification update from corrected messages
2019-01-12 08:55:46 +01:00
Daniel Gultsch
76b78be2f2
synchronize join/leaves with bookmarks
2018-12-15 17:44:23 +01:00
Daniel Gultsch
5b681553df
do not process PEP bookmarks if conversion feature n/a
...
If conversion feature is not available we will never write to PEP
therefor it is not advisable to process PEP events; otherwise
the changes we do might not land in PEP.
simply ignoring PEP is probably better than dynamically removing +notify
2018-12-08 22:35:44 +01:00
Daniel Gultsch
c02676ea4c
implement self healing omemo
...
after receiving a SignalMessage that can’t be decrypted because of broken sessions
Conversations will attempt to grab a new pre key bundle and send a new PreKeySignalMessage
wrapped in a key transport message.
2018-12-02 14:41:29 +01:00
Daniel Gultsch
f1e1c4a78d
keep track of previously edited ids
2018-12-01 15:52:44 +01:00
Daniel Gultsch
ce5dffdbfb
transmit display name (nick) in subscription requests and display them on Quicksy
2018-11-26 12:56:30 +01:00
Daniel Gultsch
ab43a4bcf9
use display name to generate own avatar
2018-11-11 10:13:45 +01:00
Daniel Gultsch
e335c59600
suggest previously assigned nick in Enter Name Activity
2018-11-09 18:52:42 +01:00
Daniel Gultsch
5012ff3545
added interface to edit nick
2018-11-09 17:47:36 +01:00
Daniel Gultsch
bdb8d98eb1
show snackbar for remote server timeout in mucs
2018-10-08 10:31:11 +02:00
Daniel Gultsch
7fa8811f64
refresh ui after device list update only if list has changed
2018-10-03 11:53:02 +02:00
Daniel Gultsch
1985f6bdec
store avatars received over muc presence in contact
2018-09-21 12:27:58 +02:00
Daniel Gultsch
2d5bd539db
sync roster after setting pgp id. fixes #2991
2018-09-08 12:46:15 +02:00
Daniel Gultsch
511335179f
do not parse caps and pgp keys from muc presences
2018-09-08 12:45:05 +02:00
Daniel Gultsch
cbea85c4dd
special treatment for presence errors known to be mucs
2018-08-28 15:04:55 +02:00
Daniel Gultsch
dc5e7e5d95
store bookmarks in pep if conversion xep is running
2018-08-18 16:27:50 +02:00
Daniel Gultsch
4871263d9c
display propper toast after room has been destroyed
2018-07-11 21:33:27 +02:00
Daniel Gultsch
7b64a031cd
store own affiliation and role to disk
2018-07-08 20:52:55 +02:00
Daniel Gultsch
48e366e410
support mam:1
2018-07-07 11:20:39 +02:00
Daniel Gultsch
0fa97bdc11
show snackbar for resource constraint in mucs
2018-07-07 10:28:31 +02:00
Daniel Gultsch
dfb95f0a84
persist muc avatar and show in bookmarks
2018-06-30 13:35:17 +02:00
Daniel Gultsch
4c9e331e01
save name instead of subject in bookmark
2018-06-24 16:17:20 +02:00
Daniel Gultsch
b9bdb3df55
use Tor on http upload is account uses onion domain. fixes #3075
2018-06-16 18:31:55 +02:00
ChaosKid42
bc50239c2a
improve active_since implementation (XEP-0319: Last User Interaction in Presence) ( #3045 )
...
* set contact to inactive if it becomes offline
* send idle also in case app started in background
2018-05-26 15:57:33 +02:00
Daniel Gultsch
4626bdf8d8
show p1s3 attchments with download button
2018-05-25 13:18:25 +02:00
Daniel Gultsch
543d1f689b
do not use end in catchup mam queries
2018-05-11 11:16:29 +02:00
Daniel Gultsch
5b41906328
do not include body in simple status updates to not trigger fts update
2018-05-10 10:47:28 +02:00
Daniel Gultsch
d0c88e6293
check if jid was valid before parsing muc status or event msgs
2018-04-29 09:33:20 +02:00
Daniel Gultsch
04f34fb968
Merge branch '2.1.x'
2018-04-28 16:58:27 +02:00
Daniel Gultsch
9963616270
do not crash when inner message contains invalid jid
2018-04-28 16:56:32 +02:00
Daniel Gultsch
6dbaece149
Merge tag '2.1.3'
2018-04-28 16:33:32 +02:00
Daniel Gultsch
322463bab7
return InvalidJid object instead of null if Jid can not be parsed
2018-04-28 16:26:40 +02:00
Daniel Gultsch
fc62cbbc52
fixed updating of server message id after dedup
2018-04-21 19:35:25 +02:00
Daniel Gultsch
32a105fa1c
fixed condition to accept lmc if user reference exists
2018-04-14 14:55:51 +02:00
Daniel Gultsch
c61be89262
keep track of user object in messages
2018-04-12 09:50:33 +02:00
Daniel Gultsch
bda95bc571
make error message for 'not encrypted for this device'
2018-04-04 18:21:22 +02:00
Daniel Gultsch
f0cfbb4681
fixed muc detection for rare cases where muc is hosted on primary domain
2018-03-31 22:01:17 +02:00
Daniel Gultsch
a32d0c5d20
process receipts only on mam catchup
2018-03-26 05:43:01 +02:00
Daniel Gultsch
ecedda8613
reformat
2018-03-25 18:49:49 +02:00
Daniel Gultsch
fe8f0bd7f0
make receipt handling work with out of order receipts
2018-03-25 17:22:39 +02:00
Daniel Gultsch
dccd3f1c8e
figure out fallbacks with omemo source id
2018-03-22 13:26:35 +01:00
Daniel Gultsch
bd3799fe02
messages coming from known muc server are treated as muc when creating conversation
2018-03-22 12:43:08 +01:00
Daniel Gultsch
9908af6286
sync roster to disk after roster push
2018-03-18 12:24:28 +01:00
Daniel Gultsch
1accf9d961
migrate to xmpp-addr
2018-03-07 22:30:36 +01:00
Daniel Gultsch
3bff110587
use translated version of subject if available
2018-03-07 22:30:36 +01:00
Daniel Gultsch
bf6b54a7aa
get rid of OTR
2018-03-07 22:30:34 +01:00
Daniel Gultsch
90ace36b18
only explicitly request device list for users not in roster fixups
2018-02-24 10:03:22 +01:00
Daniel Gultsch
7725cb8311
MAM: look at total count for completness. parse fin correctly
2018-02-23 23:11:54 +01:00
Daniel Gultsch
742727504f
fixed handling of self address messages w/o remoteMsgId
2018-02-19 15:52:33 +01:00
Daniel Gultsch
e2ac1db225
do not cross reference bookmarks and conversations
2018-02-10 19:06:31 +01:00
Daniel Gultsch
2eb2513615
always persist current nick (in bookmark and database)
2018-02-10 16:24:55 +01:00
Daniel Gultsch
be70eb5650
improvements for self messages
...
* fix omemo in group chats w/o participants
* don't create two axolotl messages when messaging self
* fix read marker for self messages
2018-01-27 10:45:05 +01:00
Daniel Gultsch
a5256c3e83
show self messages from other devices as received
2018-01-27 09:15:02 +01:00
Daniel Gultsch
44ce90ccf2
respond to message receipts request when processing carbon copy
2018-01-23 22:00:33 +01:00
Daniel Gultsch
eee5d885ba
make chat markers opportunistic in private mucs
2018-01-22 23:21:24 +01:00
Daniel Gultsch
4600b3982e
treat key transport messages differently to not open empty conversations
2018-01-20 09:36:37 +01:00
Daniel Gultsch
3ff37511d4
sent message receipts after mam catchup
2018-01-20 08:54:44 +01:00
Daniel Gultsch
036dd82698
properly handle key transport messages. use prekeyparsing only when that attribute is set
2018-01-18 20:58:55 +01:00
Daniel Gultsch
5d11fe7dc6
added a few todos to source code
2018-01-15 11:13:35 +01:00
Daniel Gultsch
c5ee541906
clear muc avatar after going online
2017-12-18 13:19:11 +01:00
Daniel Gultsch
1753dcac76
save muc subject to disk and use crypto targets for offline name generation
2017-12-17 16:23:19 +01:00
Daniel Gultsch
38797177c7
ChatMarkers: parse own account from true counterpart
2017-12-14 19:34:35 +01:00
Daniel Gultsch
37bd26c75f
save changed server id in replaced messages
2017-12-11 15:55:55 +01:00
Daniel Gultsch
946d97074f
try to detect invalid nick (w/ emoji) in MUCs
2017-12-11 15:55:10 +01:00
Daniel Gultsch
328c6dea0f
fixed workaround that allowed us to expire devices
2017-12-07 14:47:21 +01:00
Daniel Gultsch
4b5db2fb45
read marker from mam. only trust true counterpart when mam:2 is being used
2017-12-02 22:13:59 +01:00
Daniel Gultsch
ffb3eeb913
MAM: update previously sent messages with server msg id during mam query
2017-12-02 20:52:30 +01:00
Daniel Gultsch
fc8a5641db
MAM: assume true counterpart is safe to extract when using mam:2
2017-12-02 18:11:03 +01:00
Daniel Gultsch
97df4a682b
MessageParser: ignore groupchat messages retrieved from user archive
2017-12-02 17:48:26 +01:00
Daniel Gultsch
86f09dd9b9
PresenceParser: work around for ejabberd not including status code 110 in shut down presence
2017-11-30 13:21:03 +01:00
Daniel Gultsch
4596cad3cb
MessageParser: don't refresh view after parsing chat state when combined with message
2017-11-21 16:17:27 +01:00
Daniel Gultsch
381fe82b01
save full jid when sending in muc. check chat markers against 'sender'
2017-11-21 15:42:46 +01:00
Daniel Gultsch
79ea0713bb
MessageAdapter: code reformat
2017-11-21 13:26:45 +01:00
Daniel Gultsch
702d6cf2a5
MessageParser: dismiss notification when receiving read marker from another client
2017-11-21 13:26:23 +01:00
Daniel Gultsch
28e005f926
send and show read markers in private, non-anonymous groups
2017-11-20 11:26:20 +01:00
Daniel Gultsch
75a485cbc1
catch all sorts of date parsing errors
2017-11-16 12:47:49 +01:00
Daniel Gultsch
e6a67a6c26
made avatar cache cleaning more efficent after name changes
2017-08-23 21:49:25 +02:00
Daniel Gultsch
ad601e47c8
fixed roster items w/o subscription (request) not being shown
2017-07-28 18:34:55 +02:00
Daniel Gultsch
6c95897f09
fetch device ids for muc members w/o known devices
2017-07-18 12:51:15 +02:00
Daniel Gultsch
0a20b87ebe
check length first in timestamp parser
2017-07-16 21:03:59 +02:00
Daniel Gultsch
2b9cdde558
refactored retrieval of default preferences
2017-07-01 13:41:24 +02:00
Daniel Gultsch
311c99bb6d
put settings defaults into resource file
2017-06-30 21:22:35 +02:00
Daniel Gultsch
24768d051d
upgrade to signal-protocol-java. thanks @ysangkok
...
fixes #1384
closes #2509
2017-06-18 16:36:30 +02:00
Daniel Gultsch
612e0afa63
do not parse delay tag for unavailable presences when it comes form own server
2017-06-01 16:45:00 +02:00
Daniel Gultsch
2cf05528b4
add the 4 most frequently contacted contacts as app shortcuts
2017-05-31 16:45:51 +02:00
Daniel Gultsch
6ccdd1227e
parse all delayed tags. use min date
2017-05-30 08:39:04 +02:00
Daniel Gultsch
84baa3ae68
avoid race conditions when downloading files or decrypting pgp messages and waiting for sm catchup
2017-04-30 16:19:39 +02:00
Daniel Gultsch
ae85a9e87b
made nimbuzz work around work with newly created conferences as well
2017-04-20 11:35:38 +02:00
Daniel Gultsch
483304c697
recognize muc self presence on nimbuzz.com
...
Apparently nimbuzz.com doesn't include status code 110 in muc self presence
It does however include the full real jid in the presence’s item.
We can use that as a work around to detect a self presence.
2017-04-15 15:14:12 +02:00