Commit graph

169 commits

Author SHA1 Message Date
saqura 05d0c9f4fe Properly check for MUC MAM support
Only use MAM (XEP-0313) in MUCs if it is supported.

This should fix #1264
2015-10-06 16:23:18 +02:00
Daniel Gultsch 2b9b700c96 don't put conference joins into pending on initial bind 2015-10-01 16:01:19 +02:00
Daniel Gultsch 6a0b9971aa reset muc options immediately befor join 2015-10-01 13:03:15 +02:00
Daniel Gultsch 648e29db2c only invoke MTM in interactive mode after direct user input
fixes #1027
fixes #792
fixes #1439
2015-09-29 19:24:52 +02:00
Daniel Gultsch b9002d7fd5 added missing type='submit' to mam queries
fixed some nasty inheritance problems along the way
fixes #1411
2015-09-15 22:52:39 +02:00
Andreas Straub a95c451f1e Only show that have sessions in fingerprint list
Doesn't access database directly anymore but goes through AxolotlService
now to obtain list of fingerprints associated with an Account/Contact.
This should prevent orphaned keys littering the UI which previously
couldn't be removed through the Clear Devices function.

Together with 1c79982da84964c1d81179a0927d9cd1eadf53de this fixes #1393
2015-09-06 15:15:57 +02:00
Daniel Gultsch fc594e249a added special error state for dns timeout 2015-09-01 22:37:52 +02:00
Daniel Gultsch b0c19d6bac fixed bug that prevented newly opened conversations to load the entire history via mam. fixes #1328 2015-08-30 11:24:37 +02:00
Andreas Straub c4a548ada0 Only announce device after publishing bundle 2015-08-26 15:45:21 +02:00
Daniel Gultsch ea2ce78d6e be more restrictive about marking messages as sent_received in muc parser 2015-08-26 12:11:12 +02:00
Michael ae9de26f59 remove unused imports. 2015-08-25 12:40:22 +02:00
Daniel Gultsch 7bd0f31244 Merge branch 'master' into development 2015-08-23 17:57:53 +02:00
Daniel Gultsch 0dfb9bd1a0 introduce special iq type for internal timeouts. always use != result to check for error in callbacks 2015-08-23 17:53:23 +02:00
Daniel Gultsch b0710cdf04 Merge branch 'master' into development 2015-08-23 13:57:14 +02:00
Daniel Gultsch 1688b65965 don't make subsequent iq request when original stanza returned an error 2015-08-23 08:27:05 +02:00
Daniel Gultsch 9e26375d2f simulate old behaviour with messages being set to waiting while offline 2015-08-19 13:00:52 +02:00
Daniel Gultsch c9b2638778 Merge branch 'master' into development 2015-08-19 12:49:24 +02:00
Daniel Gultsch 52f0622dd3 fixed nasty 'stuck at sending' bug that got introduced in 32826ec29d 2015-08-19 12:47:50 +02:00
Daniel Gultsch 83e1e6468e fully depend on sm 2015-08-15 16:57:07 +02:00
Daniel Gultsch 32826ec29d provide extra interface to close sockets. fixes #1330 2015-08-15 14:14:33 +02:00
Daniel Gultsch dad90762b4 do not touch pictures that are already in the right format
fixed #522
2015-08-11 16:50:00 +02:00
Daniel Gultsch 60cd307f73 enable axolotl encryption for jingle supported file transfers 2015-08-01 01:19:16 +02:00
Andreas Straub 909f761ca1 Refactor axolotl message processing workflow
XmppAxolotlMessage is now entirely responsible for handling encryption
and decryption of messages, only leveraging XmppAxolotlSession as a
packing/unpacking primitive for payload keys.

Removed pseudo-dead session generation code step from prepareMessage
function, as sessions have been created by invoking the
TrustKeysActivity for a while now.

Added prepareKeyTransportMessage function, which creates a message with
no payload. The key that is packed into the header keyElements can then
be used for other purposes (e.g. encrypted file transfer).
2015-07-31 21:31:45 +02:00
Daniel Gultsch 658919f239 improved 'next encryption' selection 2015-07-31 00:52:46 +02:00
Daniel Gultsch ff0c114cd6 set time on resend to current time
fixes #1298
fixes #919
2015-07-28 12:54:54 +02:00
Andreas Straub 92b5081b5e Add INACTIVE state for removed keys
We introduce a new trust state: INACTIVE. This state is intended for
old keys that have been removed.

When a TRUSTED device is removed from the PEP devicelist, it's status
will be set to INACTIVE. INACTIVE keys are shown in the UI as greyed
out, non-interactible key rows. Messages are not encrypted for INACTIVE
devices.

When an INACTIVE device reappears in PEP, or a message is received from
an INACTIVE device, it is set back to trusted.
2015-07-21 14:24:59 +02:00
Andreas Straub d2845e9ac1 Refactor axolotl send processing/caching flow 2015-07-20 23:13:28 +02:00
Daniel Gultsch e79f82ca72 attempt to fix the delay problem 2015-07-20 18:11:33 +02:00
Andreas Straub 012f036840 Optimize imports 2015-07-20 14:26:29 +02:00
Andreas Straub e9d7d7e12a Fix set/remove OnUpdateBlocklistListener 2015-07-20 14:12:24 +02:00
Andreas Straub 14010bf5a6 Ask for key trust when sending messages
If the contact (or the own account) has keys that have UNDECIDED trust,
we now drop the user into the new TrustKeysActivity, where they have to
decide for each new key whether it should be TRUSTED or UNTRUSTED.
2015-07-19 22:27:26 +02:00
Andreas Straub 2045a71262 Handle file transmission properly in axolotl 2015-07-19 22:23:28 +02:00
Andreas Straub 43703870e8 Remove unneccessary code 2015-07-19 22:23:28 +02:00
Andreas Straub 4038af2f47 Fix trust status for outgoing messages
Tag sent messages with own fingerprint, set own fingerprint as always
trusted, include own fingerprint in database trust search, explicitly
reset trust colorfilter
2015-07-19 22:23:28 +02:00
Andreas Straub 7f918542c8 Postpone initAccountService until roster loaded
The AxolotlService depends on the roster being loaded when it is
initialized so that it can fill its in-memory SessionMap.
2015-07-19 22:17:57 +02:00
Andreas Straub 69600502d2 Fix asynchronous axolotl message sending
XmppConnectionService.sendMessage() now dispatches messages to the
AxolotlService, where they only are prepared for sending and cached.
AxolotlService now triggers a XmppConnectionService.resendMessage(),
which then handles sending the cached message packet.

This transparently fixes, e.g., handling of messages sent while we are
offline.
2015-07-19 21:32:27 +02:00
Andreas Straub 3815d4efa3 Fetch bundles on-demand, encrypt in background
Bundles are now fetched on demand when a session needs to be
established. This should lessen the chance of changes to the bundles
occuring before they're used, as well as lessen the load of fetching
bundles.

Also, the message encryption is now done in a background thread, as this
can be somewhat costly if many sessions are present. This is probably
not going to be an issue in real use, but it's good practice anyway.
2015-07-19 21:32:26 +02:00
Andreas Straub c1d23b2395 Migrate to new PEP layout
Merge prekeys into bundle node
2015-07-19 21:32:26 +02:00
Andreas Straub 299bbdf27f Reformat code to use tabs
This really sucks to do it like this. Sorry. :(
2015-07-19 21:32:26 +02:00
Andreas Straub 065519d3f3 Added axolotl activation code to UI 2015-07-19 21:32:26 +02:00
Andreas Straub f73aa1a200 Reworked axolotl protocol layer
Numerous fixes
2015-07-19 21:32:25 +02:00
Daniel Gultsch 5c017e5186 bugfix: use sendIqPacket method in service instead of invoking XmppConnection directly 2015-07-19 14:25:30 +02:00
Daniel Gultsch 58bc4cba06 only try to change affilations for known jids 2015-07-11 21:24:51 +02:00
Daniel Gultsch ce79f4bbe3 renamed downloadable to transferable 2015-07-10 15:11:03 +02:00
Daniel Gultsch 0f5c87ca1f display toast in ui on failed http download
fixes #954
2015-07-10 13:28:50 +02:00
Daniel Gultsch bef731a3c8 refactored sendMessage and merged with resendMessage 2015-07-05 11:59:38 +02:00
Daniel Gultsch 2fbeb0bbb2 make sure unread count is initialized as 0. fixes #1270 2015-07-03 22:08:23 +02:00
Daniel Gultsch c745fbb562 fixed share with activity to account for http file upload 2015-07-02 23:51:59 +02:00
Daniel Gultsch 7e11570f2c show attach button in conferences when http upload is available 2015-06-29 15:21:41 +02:00
Daniel Gultsch 9eb9a52205 initial http upload support
be careful: little error handling and no encryption
2015-06-29 15:21:41 +02:00