Commit Graph

77 Commits

Author SHA1 Message Date
Andreas Straub
c6e54e7e5a Move migration 19 before 17
Migration 17 depends on Account deserialization, so any migrations that
touch the accounts table need to be applied beforehand.

Re-writing the migration to work directly on the database would lead to
a lot of code duplication, so it's not worth it at this time, but might
become necessary later on to avoid dependency cycles.
2015-11-06 14:50:55 +01:00
Daniel Gultsch
bca29cf7fd explicitly mark verified omemo keys in UI 2015-10-31 10:57:57 +01:00
Daniel Gultsch
c7ff196f58 push CN into nick pep node when uploading certificate. subscribe to nick node 2015-10-29 13:41:08 +01:00
Daniel Gultsch
5f9476448f make unread status and notifications presistent across restarts 2015-10-14 21:18:34 +02:00
Daniel Gultsch
32abc76689 changed store path for files 2015-10-06 16:18:23 +02:00
Daniel Gultsch
4b62bd256d properly recycle bitmaps 2015-10-02 11:39:30 +02:00
Daniel Gultsch
64dbb069ab rotate thumbnails. fixes #1438 2015-09-29 12:25:32 +02:00
fiaxh
024e697cee Iterator to go through all messages of a conversation 2015-09-20 22:17:32 +01:00
Daniel Gultsch
2c4a6b0912 add null pointer check to db migration 2015-09-05 18:47:37 +02:00
Andreas Straub
e2d506c96a Never build a session with oneself
If we detect our own ID is not in our own devicelist on receiving an
update, we reannounce ourselves. This used to have the side effect of
modifying the list of devices we thought were in the update set, causing
us to accidentally build a session with ourselves.

This lead to our own key being set to TRUSTED_INACTIVE, resulting in red
lock icons on messages sent by the own device.

We fix this by having publishOwnDeviceId() operate on a copy of the
original set. This commit also includes a db migration which deletes
sessions with oneself and sets own keys back to TRUSTED.
2015-09-05 17:29:58 +02:00
Daniel Gultsch
aaf3ecaf41 made useImageAsIs determination a bit more foolproof (samsung) 2015-08-31 20:19:26 +02:00
Michael
ae9de26f59 remove unused imports. 2015-08-25 12:40:22 +02:00
Daniel Gultsch
7617a19280 additonal null checks in file backend 2015-08-25 11:11:53 +02:00
Daniel Gultsch
8043833156 bugfix: next encryption is now being properly detected 2015-08-23 19:40:45 +02:00
Daniel Gultsch
6e1870b00a check if inputstream is null before cropping avatar images 2015-08-19 12:25:17 +02:00
Daniel Gultsch
d7b3060fc8 catch broken base64 in avatars 2015-08-16 14:55:24 +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
Andreas Straub
6cd9383e53 Let UNTRUSTED/UNDECIDED keys become INACTIVE 2015-08-01 18:30:11 +02:00
Daniel Gultsch
26ac7c9030 added missing carbon column message table create statement
fixes #1310
2015-07-31 13:08:35 +02:00
Andreas Straub
e6df4d81d2 Tag carbon messages in parser, adapt session logic
Messages sent from another device of the own account are now explicitly
tagged as carboned message. The session detection logic now uses this
tag to find "session borders".
2015-07-29 16:41:58 +02:00
Andreas Straub
efcefc2e63 Refactor out inner classes, cache trust store
Moves SQLiteAxolotlStore and XmppAxolotlSession into proper classes.

IdentityKeys trust statuses are now cached in an LruCache to prevent
hammering the database when rendering the UI.
2015-07-29 02:59:26 +02:00
Daniel Gultsch
456d4c8b23 made image file format configurable by Config.java 2015-07-21 23:49:35 +02:00
Andreas Straub
b7ff2c3461 Use properly fixed numeral values in Trust enum
Why, oh God, why?! #thanksjamesgosling
2015-07-21 01:52:22 +02:00
Andreas Straub
0ee64124fe Fix getNumTrustedKeys 2015-07-20 22:02:54 +02:00
Andreas Straub
19a0ae42d6 Lock TrustKeys if no trusted keys are available 2015-07-20 14:56:41 +02:00
Andreas Straub
012f036840 Optimize imports 2015-07-20 14:26:29 +02:00
Andreas Straub
dd964077b9 Fix axolotl database migration
Can't call getWritableDatabase in recreateAxolotlDb()
2015-07-20 13:15:49 +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
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
31d375c2c3 Fix setIdentityKeyTrust update statement 2015-07-19 22:23:27 +02:00
Andreas Straub
160e4017df Fix IdentityKey storage model
Added proper UNIQUE statement
2015-07-19 22:23:27 +02:00
Andreas Straub
d173913eba Overhauled Message tagging
Messages are now tagged with the IdentityKey fingerprint of the
originating session. IdentityKeys have one of three trust states:
undecided (default), trusted, and untrusted/not yet trusted.
2015-07-19 22:17:58 +02:00
Andreas Straub
03614a0262 Fix getSubDeviceSessions SQL query 2015-07-19 22:17:57 +02:00
Andreas Straub
3458f5bb91 Clean up logging
Add a fixed prefix to axolotl-related log messages, set log levels
sensibly.
2015-07-19 22:17:57 +02:00
Andreas Straub
7049904c32 Add basic PEP managemend UI to EditAccountActivity
EditAccountActivity now show own fingerprint, and gives an option to
regenerate local keying material (and wipe all sessions associated with
the old keys in the process).

It also now displays a list of other own devices, and gives an option to
remove all but the current device.
2015-07-19 22:17:55 +02:00
Andreas Straub
7a962e5180 Refactor axolotl database recreation 2015-07-19 21:32:27 +02:00
Andreas Straub
74026b742b Save IdentityKeys in database 2015-07-19 21:32:26 +02:00
Andreas Straub
9e07fc5651 DatabaseBackend bugfixes
Don't leak cursors, initially create tables
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
f73aa1a200 Reworked axolotl protocol layer
Numerous fixes
2015-07-19 21:32:25 +02:00
Andreas Straub
b8048a5538 CryptoNext persistance layer mockup
Initial sketch of the peripheral storage infrastructure for the new
axolotl-based encryption scheme.
2015-07-19 21:32:21 +02:00
Daniel Gultsch
4274fe90ac try to catch weird npe in android sdk 2015-07-11 21:24:30 +02:00
Daniel Gultsch
ce79f4bbe3 renamed downloadable to transferable 2015-07-10 15:11:03 +02:00
Daniel Gultsch
d30fb6f0a1 avoid very rare npe 2015-07-03 21:32:46 +02:00
Daniel Gultsch
aca9d8036c made httpconnection (download) ready all kind of files 2015-06-30 17:15:02 +02:00
Daniel Gultsch
6af97c724c made storage path decision entirely based upon file extension 2015-06-30 14:04:39 +02:00
Daniel Gultsch
d7de311379 refactored bodyContainsDownloadable to be more flexible 2015-06-30 13:52:53 +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
Andreas Straub
b69ee7125d Force Nameprepping of JID domain parts
The IDN.toAscii()/IDN.toUnicode() family only namepreps the original
domain passed to it if it contained non-ASCII characters. This means
that for all-ASCII domains, no canonicalization is performed, which
leads to issues like case-sensitivity. This workaround explicitly
namepreps domain parts before calling IDN.toAscii() on them, in order to
get a canonicalized representation (most notably, case invariance). A
basic DB migration is also included.
2015-05-14 15:52:55 +02:00