aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/de/pixart/messenger/xmpp/XmppConnection.java (unfollow)
Commit message (Collapse)AuthorFilesLines
2020-01-24support registration via pars tokensChristian Schneppe1-1/+25
2020-01-02reset XmppConnection to parentChristian Schneppe1-1/+1
2019-12-13rework adhocinviteChristian Schneppe1-1/+3
2019-10-26bookmarks2. introduce #compat namespaceChristian Schneppe1-1/+1
2019-10-26support for purge and deleteChristian Schneppe1-1/+1
2019-10-26support for delete bookmarks2Christian Schneppe1-1/+6
2019-09-20migrate to AndroidXChristian Schneppe1-1/+1
2019-09-12show language in message bubble if multiple language variants were receivedChristian Schneppe1-1/+2
XML and by inheritence XMPP has the feature of transmitting multiple language variants for the same content. This can be really useful if, for example, you are talking to an automated system. A chat bot could greet you in your own language. On the wire this will usually look like this: ```xml <message to="you"> <body>Good morning</body> <body xml:lang="de">Guten Morgen</body> </message> ``` However receiving such a message in a group chat can be very confusing and potentially dangerous if the sender puts conflicting information in there and different people get shown different strings. Disabling support for localization entirely isn’t an ideal solution as on principle it is still a good feature; and other clients might still show a localization even if Conversations would always show the default language. So instead we now show the displayed language in a corner of the message bubble if more than one translation has been received. If multiple languages are received we will attempt to find one in the language the operating system is set to. If no such translation can be found it will attempt to display the English string. If English can not be found either (for example a message that only has ru and fr on a phone that is set to de) it will display what ever language came first. Furthermore we will discard (not show at all) messages with with multiple bodies of the same language. (This is considered an invalid message) The language tag will not be shown if we receive a single body in a language not understood by the user. (For example operating system set to 'de' and message received with one body in 'ru' will just display that body as usual.) As a guide line to the user: If you are reading a message where it is important that this message is not interpreted differently by different people (like a vote (+1 / -1) in a chat room) make sure it has *no* language tag.
2019-09-06make Tor connections work with direct TLSChristian Schneppe1-60/+48
2019-09-06deleted wrong to jidChristian Schneppe1-1/+0
fixes #374
2019-09-03fix some crashesChristian Schneppe1-5/+18
2019-08-31fixed unlikely race between enabling carbons and discovering last MAM idChristian Schneppe1-3/+3
2019-08-31increased reconnection interval after policy violationChristian Schneppe1-1/+3
2019-08-31create empty disco result on error to fire advance stream features eventChristian Schneppe1-1/+14
2019-07-17use helper method to close socketChristian Schneppe1-10/+3
2019-07-01code cleanup & small fixesChristian Schneppe1-2/+2
2019-06-25Revert "Networkstack - let OS decide IPv4 or IPv6 (#267)"Christian Schneppe1-5/+26
This reverts commit e6a15597904019f68c02e6fd8f61fb6de0b13324. If there is IPv6 available but the server doesn't listen to it, the connection will not be established
2019-06-25implement client support for muc pushChristian Schneppe1-2/+2
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 optimizations will also suppress pings when a ping is already in flight to further save traffic.
2019-06-22performance improvement of message expiryChristian Schneppe1-2/+2
2019-06-18self ping (xep-0410) after receiving invite to mucChristian Schneppe1-1/+1
2019-06-08Networkstack - let OS decide IPv4 or IPv6 (#267)genofire1-26/+5
* Networkstack - let OS decide IPv4 or IPv6 * Drop own implementation of DNS-Server selection * remove dns resolver cache
2019-05-04Make use of Namespace.REGISTER constantChristian Schneppe1-4/+4
2019-04-01remove logging from delete from serverChristian Schneppe1-1/+0
2019-03-31add ability to delete account also from serverChristian Schneppe1-0/+16
fixes #315
2019-02-21Deduplicate presencesChristian Schneppe1-1/+2
possibly fixes #303
2019-02-09print available stream features / mechanisms on incompat serverChristian Schneppe1-0/+4
2019-02-08reset inviteuri after successful generationChristian Schneppe1-3/+2
2019-02-08implement adhoc invite links if server supports thisChristian Schneppe1-0/+73
2019-01-27do not require starttls when connecting over to .onion domainChristian Schneppe1-2/+2
2019-01-25properly jump out of connection loop on state changing errorsChristian Schneppe1-8/+7
2019-01-25resend presence to muc avatar updateChristian Schneppe1-0/+4
2018-12-27log number of unhandled iq callbacks after resumeChristian Schneppe1-3/+4
2018-12-27log policy violation stream error message to logcatChristian Schneppe1-0/+4
2018-12-14check mam preference for mam:2 namespace and purge offline only if setChristian Schneppe1-0/+17
2018-11-08show max file size for httpupload in profile --> server infoChristian Schneppe1-1/+1
2018-10-24reformat XmppConnection.javaChristian Schneppe1-37/+30
2018-10-20only store non hardcoded resolver result in dbChristian Schneppe1-1/+1
2018-10-04use short read timeout when waiting for first stream open. disable read ↵Christian Schneppe1-1/+2
timeout aftwards
2018-10-02clean up connection code. unify domain = ip and extended connection settings ↵Christian Schneppe1-59/+21
into fake resolver
2018-10-02use sni and alpn for start tls as well. apperently google requires itChristian Schneppe1-0/+2
2018-10-01introduced error code for server not opening stream after auth or starttlsChristian Schneppe1-2/+5
2018-10-01code cleanupChristian Schneppe1-5/+5
2018-10-01fixed regression that didn’t enable SNIChristian Schneppe1-2/+2
2018-10-01use conscrypt as security provider to provide tls 1.3 and modern cyphers on ↵Christian Schneppe1-0/+4
old androids
2018-09-13speed up DNSChristian Schneppe1-2/+0
run queries in parallel decrease timeout do not fall back to google
2018-09-11removed synchronized in favor of another interrupted check in startXmpp()Christian Schneppe1-1/+4
2018-08-30use volatile for thread object in XmppConnectionChristian Schneppe1-5/+4
2018-08-26store bookmarks in pep if conversion xep is runningChristian Schneppe1-0/+4
2018-07-29do not call listeners while being synchronized on stanza queueChristian Schneppe1-5/+19
2018-07-15fix bug in XmppConnectionChristian Schneppe1-3/+3