Commit Graph

347 Commits

Author SHA1 Message Date
str4d
5ff7adcebf Test BQP implementation 2016-03-26 15:53:02 +13:00
akwizgran
f20a1e8dfe Fix merge problems in TransportPropertyValidatorTest. 2016-03-16 15:37:54 +00:00
akwizgran
89ca0e5a26 Merge branch 'property-validator-test' into 'master'
TransportPropertyValidatorTest

Tests for the TransportPropertyValidator ValidateMessage call.

See merge request !110
2016-03-16 14:53:00 +00:00
Ernir Erlingsson
11bfa212cc minor tweaks 2016-03-14 21:02:51 +01:00
Ernir Erlingsson
10764d727b rebased with master 2016-03-14 21:02:51 +01:00
Ernir Erlingsson
1be400eb84 Switched Roboguice/Guice out for Dagger 2 2016-03-14 21:01:21 +01:00
Torsten Grote
e8ad11210c Merge branch '266-message-queues' into 'master'
Message queues. #266

A message queue is a group shared by two devices that delivers messages from each device to the other in order. The first 64 bits of the message body contain a sequence number that's incremented for each message sent in a given direction. The incoming and outgoing sequence numbers and information about any messages received out of order and waiting to be delivered are stored in the group metadata.

See merge request !121
2016-03-14 14:56:43 +00:00
Santiago Torres
24f733ed05 WIP: Adds Transport properly validator test 2016-03-13 20:42:09 -04:00
akwizgran
02eca8ec38 Unit tests for MessageQueueManagerImpl. 2016-03-11 17:18:10 +00:00
akwizgran
9e40d0be16 Added placeholder for MessageQueueManagerImpl tests. 2016-03-08 16:28:31 +00:00
akwizgran
efa06527c9 Moved validation interfaces into respective managers. 2016-03-08 16:22:09 +00:00
akwizgran
c9276de399 Renamed validation hooks to incoming message hooks. 2016-03-07 18:36:30 +00:00
akwizgran
0ac67239e3 Fixed race condition when closing redundant sockets.
When more than one invitation socket is opened, Alice should pick which one to use and Bob should use whichever one Alice picks. This fixes a race condition where each party picked a different socket and closed the other.
2016-03-07 11:50:47 +00:00
akwizgran
db188657ca Reuse BdfReader/Writer for MetadataParser/Encoder. 2016-03-04 21:00:30 +00:00
akwizgran
154e95a989 Merge branch 'client-helper' into 'master'
Helper class to reduce client boilerplate

* Renamed BdfReader methods for consistency with BdfList/BdfDictionary
* Added readList() and readDictionary() methods to BdfReader
* Added ClientHelper to reduce boilerplate when converting messages and metadata to and from BDF
* Moved PrivateGroupFactory to the same package as ClientHelper


See merge request !114
2016-02-29 14:37:45 +00:00
akwizgran
75d53598b0 Merge branch 'validation-manager-tests' into 'master'
Unit tests for ValidationManagerImpl

Unit test for the validation manager. I also changed the way the validation manager loads unvalidated messages - instead of using a single DB task to load all unvalidated messages, it loads a list of message IDs and then loads each message in a separate task. This prevents the DatabaseExecutor from being blocked by a long-running task if there are lots of messages to validate.

See merge request !113
2016-02-29 14:35:30 +00:00
akwizgran
640f5484e0 Moved PrivateGroupFactory to clients package. 2016-02-29 14:25:29 +00:00
akwizgran
2e7df53dba Added helper class so clients can use less boilerplate. 2016-02-29 14:23:50 +00:00
akwizgran
9e0add7d4c Renamed BdfWriter methods, added support for NULL_VALUE. 2016-02-29 14:23:49 +00:00
akwizgran
3ce62818aa Renamed BdfReader methods, added convenience methods. 2016-02-29 14:23:49 +00:00
Torsten Grote
9dec498e7e Merge branch 'add-contact-transaction' into 'master'
Add contact and transport keys in the same transaction

This avoids a potential problem where the app crashes after adding the contact but before adding the transport keys, leaving the contact unusable.

See merge request !112
2016-02-29 14:07:33 +00:00
akwizgran
e3374b7584 Rename BDF methods. 2016-02-29 11:57:42 +00:00
akwizgran
5045b58e01 Explicitly check array lengths. 2016-02-29 11:51:16 +00:00
akwizgran
e28dc17881 Helper methods and unit tests for BdfList/Dictionary. 2016-02-26 16:27:24 +00:00
akwizgran
476b1edbad Unit tests for ValidationManagerImpl. 2016-02-26 14:16:25 +00:00
akwizgran
b8cf508b0c Moved ImmediateExecutor out of plugins package. 2016-02-26 14:16:09 +00:00
akwizgran
1d89c6cebc Add contact and transport keys in the same transaction.
This avoids a potential problem where the app crashes after adding the contact but before adding the transport keys, leaving the contact unusable.
2016-02-26 10:57:32 +00:00
akwizgran
fee4beae63 Merge branch '252-lan-polling' into 'master'
New polling logic for LAN. #252

Same approach as !104. Modified the poller to cancel any scheduled poll when pollNow() is called and randomise the next polling interval so plugins that call pollNow() at the same time don't end up polling in sync.

Depends on !104. Fixes #252.

See merge request !105
2016-02-24 20:11:54 +00:00
akwizgran
d829d4711b Merge branch '251-bluetooth-polling' into 'master'
New polling logic for Bluetooth. #251

Increase the polling interval exponentially each time polling is unsuccessful, up to a maximum of 60 minutes. The interval is reset to 2 minutes whenever a connection is made and whenever Bluetooth is re-enabled.

This should reduce battery usage when there are no contacts nearby.

Fixes #251.

See merge request !104
2016-02-24 20:08:05 +00:00
akwizgran
5ce8927477 New polling logic for LAN (and WAN). #252
Same exponential backoff approach as Bluetooth.
2016-02-22 13:25:07 +00:00
akwizgran
c081c08ff5 New polling logic for Bluetooth. #251
The polling interval increases exponentially each time polling is unsuccessful, up to a maximum of 60 minutes. The interval is reset to 2 minutes whenever a connection is made and whenever Bluetooth is re-enabled.
2016-02-22 13:21:05 +00:00
akwizgran
247ee7eba0 Unit tests for TransportKeyManager. 2016-02-19 13:22:04 +00:00
akwizgran
8a20f330be Broadcast status event when active contact is added. 2016-02-19 12:10:44 +00:00
akwizgran
b7dc13ab53 Added unit test for setting contact active. 2016-02-18 10:10:12 +00:00
akwizgran
a6baa5821e Added active flag to contacts. 2016-02-17 18:10:52 +00:00
akwizgran
6b76b75d08 More efficient database joins.
Don't keep message status rows for groups that are invisible to the contact - this avoids the need to join the groupVisibilities table when selecting messages to offer or send. Add or remove status rows when group visibility changes.
2016-02-17 17:24:44 +00:00
akwizgran
e979f17e45 Execute test tasks in a deterministic order. 2016-02-17 17:24:43 +00:00
akwizgran
9f8baab60f Code cleanup. 2016-02-11 16:26:23 +00:00
akwizgran
074892b677 StorageStatus is no longer needed. 2016-02-11 16:26:23 +00:00
akwizgran
146dac056d Broadcast events after committing transactions. 2016-02-11 16:26:22 +00:00
akwizgran
de8cc50fb4 Moved transactions out of database component. 2016-02-11 16:26:19 +00:00
akwizgran
ef2b2b9710 Removed unneeded visibility methods. 2016-02-11 16:21:53 +00:00
akwizgran
3fa1bbe33e Expose transactions through DatabaseComponent interface. 2016-02-11 16:21:53 +00:00
akwizgran
675ce4bfef Removed direct calls to DB's contact/identity methods. 2016-02-11 16:21:52 +00:00
akwizgran
0c392e8b78 Replaced PacketWriter methods with a constant. 2016-02-11 16:21:26 +00:00
akwizgran
a91d500263 Added method for deleting metadata. 2016-02-10 14:01:55 +00:00
akwizgran
00275e260f Allow messages to be deleted. 2016-02-10 14:01:55 +00:00
akwizgran
18db17bf5b Moved subscription updates to the client layer. 2016-02-10 10:47:30 +00:00
akwizgran
fd99dd7573 Updated a unit test for storing settings. 2016-02-10 10:47:29 +00:00
akwizgran
225d0ebeef DB interface cleanup, removed unnecessary exceptions. 2016-02-10 10:47:29 +00:00