Commit Graph

113 Commits

Author SHA1 Message Date
Daniel Gultsch
2bed0dad12 attempt to fix some rare crashes 2019-10-26 13:23:27 +02:00
Daniel Gultsch
b96ef1e591 update ui after bookmark change 2019-10-07 09:37:12 +02:00
Daniel Gultsch
f11adf4c02 do not put default nick into bookmark if none has been set before 2019-08-19 13:55:52 +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
ad64058d25 hide lock icon in channels; modify muc user context 2019-02-07 13:18:42 +01:00
Daniel Gultsch
32ef3755e2 show different room settings for channels and groups 2019-02-06 18:29:07 +01:00
Daniel Gultsch
b9c4309a28 refactored group chat members into seperate screen 2019-01-25 17:58:23 +01:00
Daniel Gultsch
dcdf340a41 normalize nicks before getting them from bookmarks or pep 2019-01-19 11:42:57 +01:00
Daniel Gultsch
1a1bfb3246 show warning snackbar before joining anon-non-private room. fixes #3306 2018-12-09 18:25:11 +01:00
Daniel Gultsch
846bba96f2 remove role=none participant when first online participant joins
in anticipations for muc services using registered nicks (and putting nicks
into the member list even if that user is offline) we need to remove that 'fake' user
from the online list when the real user comes online.
2018-11-30 16:28:43 +01:00
Daniel Gultsch
09f9baeeef do not add self as crytpo target in MUC 2018-11-12 20:14:06 +01:00
Daniel Gultsch
306e12b24e fixed race condition that prevented bookmark nick to be used 2018-11-10 17:33:24 +01:00
Daniel Gultsch
5012ff3545 added interface to edit nick 2018-11-09 17:47:36 +01:00
Daniel Gultsch
f0d5dc583d use inContactList() instead inRoster() in the proper places 2018-11-03 16:32:08 +01:00
Daniel Gultsch
bdb8d98eb1 show snackbar for remote server timeout in mucs 2018-10-08 10:31:11 +02:00
Daniel Gultsch
1985f6bdec store avatars received over muc presence in contact 2018-09-21 12:27:58 +02:00
Daniel Gultsch
516b6dcc1f code cleanup for group chat user context menu 2018-09-02 20:54:50 +02:00
Christoph Scholz
3ecb7136c1 start new conversations by long press on avatar 2018-09-01 21:05:31 +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
ee3438b03a use + as build metadata delimiter 2018-06-28 08:49:48 +02:00
Daniel Gultsch
db03470eb4 fixed MucOptions.getName() 2018-06-27 17:17:44 +02:00
Daniel Gultsch
e6532e739a do not include white listed domains in room list. fixes #3082 2018-06-22 20:25:50 +02:00
Daniel Gultsch
6c27d07803 fixed some extended muc info handling. match what ejabberd does 2018-06-19 11:05:21 +02:00
Daniel Gultsch
159fedb358 use room name (if available and != localpart) as group name 2018-06-18 22:17:10 +02:00
Daniel Gultsch
d7ebd7d453 WIP: set room avatar and slight redesign of group details 2018-06-18 14:15:19 +02:00
Daniel Gultsch
afb7c0592b display avatar in groups 2018-04-14 17:54:04 +02:00
Daniel Gultsch
d5c4a987a1 persist some muc configurations 2018-03-30 08:47:37 +02:00
Daniel Gultsch
1accf9d961 migrate to xmpp-addr 2018-03-07 22:30:36 +01:00
Daniel Gultsch
e2ac1db225 do not cross reference bookmarks and conversations 2018-02-10 19:06:31 +01:00
Daniel Gultsch
eee5d885ba make chat markers opportunistic in private mucs 2018-01-22 23:21:24 +01:00
Daniel Gultsch
6663eb0a12 show warning toast if PM is disabled in MUC 2018-01-18 17:35:42 +01:00
Daniel Gultsch
7ab8ed625d fix wrong avatar shown when true jid doesn't match in muc 2018-01-09 10:13:34 +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
946d97074f try to detect invalid nick (w/ emoji) in MUCs 2017-12-11 15:55:10 +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
08aad7d0aa black list certain local parts and show domain instead 2017-10-27 15:46:12 +02:00
Daniel Gultsch
94e0c6b38c don’t use xmpp or jabber as default muc nick 2017-08-23 10:06:32 +02:00
Daniel Gultsch
dd5e321247 fixed conference naming for joined people not in your contact list 2017-08-15 12:56:32 +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
2cfa3ce288 limited offline support for pgp group chats
use pgp key from contact if not set in muc
fixes #283
2017-04-25 15:19:54 +02:00
Daniel Gultsch
1fd3bbfe25 display chat states in conferences 2017-03-09 10:58:44 +01:00
Daniel Gultsch
5ea4322d3f send and parse Chat States to and from conferences 2017-03-09 10:58:44 +01:00
Daniel Gultsch
9ba5335ae7 cleaned code of muc name generator 2017-03-06 19:06:16 +01:00
Daniel Gultsch
6088913fb6 fixed multi-session-nick renaming behaviour 2017-03-05 17:42:17 +01:00
Daniel Gultsch
c740386297 rename the Xmlns class to Namespace 2017-03-01 13:01:46 +01:00
licaon-kter
d3dd80eec9 Fix a typo in legacy 2017-02-19 15:47:57 +02:00