briar merge requestshttps://code.briarproject.org/briar/briar/-/merge_requests2017-09-28T10:37:58Zhttps://code.briarproject.org/briar/briar/-/merge_requests/595Add an option to debug builds to create fake test data2017-09-28T10:37:58ZTorsten GroteAdd an option to debug builds to create fake test dataThis does not yet add new test data periodically, just adds a bunch once after triggering.
Closes #703This does not yet add new test data periodically, just adds a bunch once after triggering.
Closes #703Android 1.0https://code.briarproject.org/briar/briar/-/merge_requests/773Add constant-time method for verifying MACs2018-04-25T12:08:50ZakwizgranAdd constant-time method for verifying MACsThis branch adds a constant-time method for verifying MACs, to prevent timing attacks. The existing signature verification method is renamed.This branch adds a constant-time method for verifying MACs, to prevent timing attacks. The existing signature verification method is renamed.Android 1.0https://code.briarproject.org/briar/briar/-/merge_requests/733Add denormalised columns to messageDependencies table2018-03-26T15:58:01ZakwizgranAdd denormalised columns to messageDependencies tableThis branch removes two of the remaining join queries from the DB by keeping a denormalised copy of the message state in the messageDependencies table. This speeds up the `getMessageDependencies()` and `getMessageDependents()` methods, w...This branch removes two of the remaining join queries from the DB by keeping a denormalised copy of the message state in the messageDependencies table. This speeds up the `getMessageDependencies()` and `getMessageDependents()` methods, which are used by the validator.
I also experimented with removing the last remaining join from `getMessagesToShare()` by replacing the `shared` flag with a new `DELIVERED_SHARED` state, but the performance test results were inconclusive, so I haven't included those changes in this branch.
The handling of cross-group dependencies (which are invalid) has been tightened up: they're now treated in the same way as missing dependencies, which should reduce the chances of group subscriptions being revealed through side-channels.
Could be backported.Android 1.0https://code.briarproject.org/briar/briar/-/merge_requests/691Add denormalised columns to statuses table2018-03-08T15:39:16ZakwizgranAdd denormalised columns to statuses tableThis is the second part of the DB denormalisation work. Several columns are added to the statuses table so we can avoid joining tables when looking up which messages can be sent or offered to a contact. This improved query performance in...This is the second part of the DB denormalisation work. Several columns are added to the statuses table so we can avoid joining tables when looking up which messages can be sent or offered to a contact. This improved query performance in performance tests (see the 545-denormalise-all-the-things branch for comparative tests).
Management of status rows is moved inside the Database interface to ensure the denormalised columns stay consistent.
This can be backported but it will require a migration.Android 1.0https://code.briarproject.org/briar/briar/-/merge_requests/654Add denormalised state column to messageMetadata table2018-02-02T16:25:44ZakwizgranAdd denormalised state column to messageMetadata tableThis improves the performance of the following methods:
* getMessageMetadata(T, GroupId)
* getMessageMetadata(T, MessageId)
* getMessageMetadataForValidator(T, MessageId)
Closes #1092This improves the performance of the following methods:
* getMessageMetadata(T, GroupId)
* getMessageMetadata(T, MessageId)
* getMessageMetadataForValidator(T, MessageId)
Closes #1092Android 1.0https://code.briarproject.org/briar/briar/-/merge_requests/766Add download button to ExpiredActivity2018-04-24T16:47:34ZakwizgranAdd download button to ExpiredActivity![device-2018-04-19-173829](/uploads/a84abf4fba4bdf9b3717274c15ef1fbc/device-2018-04-19-173829.png)
Needs backport.![device-2018-04-19-173829](/uploads/a84abf4fba4bdf9b3717274c15ef1fbc/device-2018-04-19-173829.png)
Needs backport.Android 1.0https://code.briarproject.org/briar/briar/-/merge_requests/734Add fullscreen button to QR code view2018-03-29T10:57:59ZakwizgranAdd fullscreen button to QR code view![device-2018-03-20-111135](/uploads/195532b4a4932b77e8f4c5dd342c8e14/device-2018-03-20-111135.png) ![device-2018-03-20-111145](/uploads/a9e4a52649482239012cdd7767e651b0/device-2018-03-20-111145.png)
Could be backported.
Closes #346![device-2018-03-20-111135](/uploads/195532b4a4932b77e8f4c5dd342c8e14/device-2018-03-20-111135.png) ![device-2018-03-20-111145](/uploads/a9e4a52649482239012cdd7767e651b0/device-2018-03-20-111145.png)
Could be backported.
Closes #346Android 1.0https://code.briarproject.org/briar/briar/-/merge_requests/619Add HyperSQL as an alternative DB library for testing2017-12-05T16:05:47ZakwizgranAdd HyperSQL as an alternative DB library for testingThis will help to ensure our DB code stays portable, in case we need to migrate away from H2.
This looks like a big patch, but most of the changes are:
* Refactoring tests so we can run them with H2 and HyperSQL
* Making placeholder...This will help to ensure our DB code stays portable, in case we need to migrate away from H2.
This looks like a big patch, but most of the changes are:
* Refactoring tests so we can run them with H2 and HyperSQL
* Making placeholder type names more obvious in SQL by adding an underscore
* Renaming a couple of columns whose names turned out to be SQL keywords :-/Android 1.0https://code.briarproject.org/briar/briar/-/merge_requests/793Add logging to debug account creation and deletion2018-05-14T13:19:20ZakwizgranAdd logging to debug account creation and deletionThis branch adds logging to help us debug #1219. Logging is disabled in release builds, but hopefully we'll run into the bug on a debug build.This branch adds logging to help us debug #1219. Logging is disabled in release builds, but hopefully we'll run into the bug on a debug build.Android 1.0https://code.briarproject.org/briar/briar/-/merge_requests/664Ask before turning on Bluetooth to add a contact2018-03-07T14:02:06ZakwizgranAsk before turning on Bluetooth to add a contactCloses #790.Closes #790.Android 1.0https://code.briarproject.org/briar/briar/-/merge_requests/681Avoid queueing redundant DB tasks during sync2018-02-20T11:14:08ZakwizgranAvoid queueing redundant DB tasks during syncThis branch modifies DuplexOutgoingSession to avoid having more than one DB task of each type in the database executor's queue at any time. This reduces the load on the DB when syncing a lot of messages.
I considered moving the task-t...This branch modifies DuplexOutgoingSession to avoid having more than one DB task of each type in the database executor's queue at any time. This reduces the load on the DB when syncing a lot of messages.
I considered moving the task-tracking logic into a separate class shared between sessions with the same contact, but that would lead to a situation where the first session to start retrieving a set of new messages (or acks, etc) from the DB would retrieve all of them while the other sessions remained idle.
Needs backport.
Closes #1162Android 1.0https://code.briarproject.org/briar/briar/-/merge_requests/637Change package name, bump expiry date2017-12-01T16:37:00ZakwizgranChange package name, bump expiry dateThe package name org.briarproject.briar is still being squatted on Google Play, although I've contacted the maintainer and complained to Google, so this MR uses the package name org.briarproject.briar.android for the master branch.
The ...The package name org.briarproject.briar is still being squatted on Google Play, although I've contacted the maintainer and complained to Google, so this MR uses the package name org.briarproject.briar.android for the master branch.
The expiry date is bumped by a year and expiry warnings are disabled for release builds. The version number is also bumped.Android 1.0https://code.briarproject.org/briar/briar/-/merge_requests/671ChangePasswordActivity should extend BriarActivity2018-02-01T10:55:57ZakwizgranChangePasswordActivity should extend BriarActivityChangePasswordActivity is the only signed-in activity that doesn't extend BriarActivity, so it doesn't show PasswordActivity if it's recreated and the user's no longer signed in (e.g. resuming Briar from recent apps after restarting the ...ChangePasswordActivity is the only signed-in activity that doesn't extend BriarActivity, so it doesn't show PasswordActivity if it's recreated and the user's no longer signed in (e.g. resuming Briar from recent apps after restarting the phone).Android 1.0https://code.briarproject.org/briar/briar/-/merge_requests/786Clear the UI when memory is critically low2018-05-14T14:53:06ZakwizgranClear the UI when memory is critically lowThe `onLowMemory()` callback we've been using to detect low memory situations was superseded by `onTrimMemory()` in API level 14. The new callback provides more information about the situation.
This branch uses the new callback to cle...The `onLowMemory()` callback we've been using to detect low memory situations was superseded by `onTrimMemory()` in API level 14. The new callback provides more information about the situation.
This branch uses the new callback to clear the UI when system memory is critically low. This releases some memory at the cost of losing the back stack. By the time the system reaches this state, even apps with foreground services are at risk of being killed, so if we don't do something to release memory we may be killed soon.
Partial solution to #1215, but we should keep looking for ways to release memory.Android 1.0https://code.briarproject.org/briar/briar/-/merge_requests/759Client for negotiating supported clients2018-04-29T16:11:06ZakwizgranClient for negotiating supported clientsThis branch adds a client for negotiating which clients can be used with each contact.
Each client has a major version and a minor version. The major version is included in the derivation of group IDs, so changing the major version ca...This branch adds a client for negotiating which clients can be used with each contact.
Each client has a major version and a minor version. The major version is included in the derivation of group IDs, so changing the major version causes the client to generate a new, distinct set of groups. This is meant for backward-incompatible changes in the client protocol. The minor version is meant for changes that are backward-compatible, i.e. the new version of the client can interoperate with the old and new versions.
Clients register with the ClientVersioningManager at injection time, and when services are started the manager compares the list of registered clients to the list from the previous startup. If the list has changed or this is the first startup, the manager sends an update message to each contact containing the current list of clients. The updates sent to each contact are numbered sequentially. Any update that's delivered after a higher-numbered update from the same contact is ignored.
Each update contains a flag for each client, indicating whether the client is active with respect to the contact receiving the update. The flag is initially lowered. It's raised on receipt of an update from the contact listing the same major version of the client. Raising the flag causes a new update to be sent to the contact. This mechanism allows each side to make the client's groups visible without any messages in those groups being sent before the contact is ready to receive them, which would cause the messages to be dropped and retransmitted.
Closes #237Android 1.0https://code.briarproject.org/briar/briar/-/merge_requests/794Commit shared preferences, clear instead of deleting2018-05-14T14:18:50ZakwizgranCommit shared preferences, clear instead of deletingSee #1219See #1219Android 1.0https://code.briarproject.org/briar/briar/-/merge_requests/652Database performance tests2017-12-18T18:15:12ZakwizgranDatabase performance testsThese tests were created for #545.These tests were created for #545.Android 1.0https://code.briarproject.org/briar/briar/-/merge_requests/797Disable expiry for release builds2018-05-15T11:30:52ZakwizgranDisable expiry for release buildsTechnically it's still enabled, but the expiry period has been substantially increased. :-)Technically it's still enabled, but the expiry period has been substantially increased. :-)Android 1.0https://code.briarproject.org/briar/briar/-/merge_requests/782Disable low memory shutdowns2018-04-30T13:44:56ZakwizgranDisable low memory shutdownsDisable shutdowns while we investigate #1215.Disable shutdowns while we investigate #1215.Android 1.0https://code.briarproject.org/briar/briar/-/merge_requests/726Disable settings until they have been loaded2018-03-08T15:40:15ZTorsten GroteDisable settings until they have been loadedIn practise, this is not noticeable in the UI.
Only when the database is congested, it should become visible and
prevent a crash when the sound setting is clicked.
Should get backported.
Closes #1169In practise, this is not noticeable in the UI.
Only when the database is congested, it should become visible and
prevent a crash when the sound setting is clicked.
Should get backported.
Closes #1169Android 1.0