briar issueshttps://code.briarproject.org/briar/briar/-/issues2018-03-29T12:29:31Zhttps://code.briarproject.org/briar/briar/-/issues/545Find out why DB lookups are so slow2018-03-29T12:29:31ZakwizgranFind out why DB lookups are so slowAsynchronously looking up small amounts of data from the database takes longer than it should, even when the same data has been looked up recently. Work out which part of the process is the bottleneck, and how much performance would be i...Asynchronously looking up small amounts of data from the database takes longer than it should, even when the same data has been looked up recently. Work out which part of the process is the bottleneck, and how much performance would be improved if we spent some time improving that part of the process.Android 1.0akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/1159Overhaul notifications for Android 82018-03-28T11:39:16ZakwizgranOverhaul notifications for Android 8On Android 8, notification settings for each notification channel are managed through the system settings app. Changes made through Briar's settings screen are ineffective.
* Check that the default behaviour of our notifications (sound,...On Android 8, notification settings for each notification channel are managed through the system settings app. Changes made through Briar's settings screen are ineffective.
* Check that the default behaviour of our notifications (sound, vibration, etc) is consistent across versions
* Don't show Briar's notification settings on Android 8 (maybe link to the system settings instead, if possible?)Android 1.0Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/509Tapping QR code viewfinder should initiate auto focus2018-03-08T15:59:02ZakwizgranTapping QR code viewfinder should initiate auto focusFeedback from user testing:
> Almost anybody tried to tab the camera view finder to change the focus mode when it didn't scan immediately. People seem to be used to doing that with their regular camera. Maybe we could implement someth...Feedback from user testing:
> Almost anybody tried to tab the camera view finder to change the focus mode when it didn't scan immediately. People seem to be used to doing that with their regular camera. Maybe we could implement something similar to assist the scanning.Android 1.0akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/1068CameraException: No back-facing camera2018-03-08T11:33:15ZakwizgranCameraException: No back-facing camera```
08-15 21:50:11.634 I/CameraView( 2090): Opening camera
08-15 21:50:11.644 W/ShowQrCodeFragment( 2090): org.briarproject.briar.android.keyagreement.CameraException: No back-facing camera
08-15 21:50:11.644 W/ShowQrCodeFragment( 2090):...```
08-15 21:50:11.634 I/CameraView( 2090): Opening camera
08-15 21:50:11.644 W/ShowQrCodeFragment( 2090): org.briarproject.briar.android.keyagreement.CameraException: No back-facing camera
08-15 21:50:11.644 W/ShowQrCodeFragment( 2090): org.briarproject.briar.android.keyagreement.CameraException: No back-facing camera
08-15 21:50:11.644 W/ShowQrCodeFragment( 2090): at org.briarproject.briar.android.keyagreement.CameraView.start(CameraView.java:94)
08-15 21:50:11.644 W/ShowQrCodeFragment( 2090): at org.briarproject.briar.android.keyagreement.ShowQrCodeFragment.onStart(ShowQrCodeFragment.java:148)
08-15 21:50:11.644 W/ShowQrCodeFragment( 2090): at android.support.v4.app.Fragment.performStart(Fragment.java:2000)
08-15 21:50:11.644 W/ShowQrCodeFragment( 2090): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1102)
08-15 21:50:11.644 W/ShowQrCodeFragment( 2090): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1252)
08-15 21:50:11.644 W/ShowQrCodeFragment( 2090): at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:738)
08-15 21:50:11.644 W/ShowQrCodeFragment( 2090): at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1617)
08-15 21:50:11.644 W/ShowQrCodeFragment( 2090): at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:517)
08-15 21:50:11.644 W/ShowQrCodeFragment( 2090): at android.os.Handler.handleCallback(Handler.java:739)
08-15 21:50:11.644 W/ShowQrCodeFragment( 2090): at android.os.Handler.dispatchMessage(Handler.java:95)
08-15 21:50:11.644 W/ShowQrCodeFragment( 2090): at android.os.Looper.loop(Looper.java:135)
08-15 21:50:11.644 W/ShowQrCodeFragment( 2090): at android.app.ActivityThread.main(ActivityThread.java:5258)
08-15 21:50:11.644 W/ShowQrCodeFragment( 2090): at java.lang.reflect.Method.invoke(Native Method)
08-15 21:50:11.644 W/ShowQrCodeFragment( 2090): at java.lang.reflect.Method.invoke(Method.java:372)
08-15 21:50:11.644 W/ShowQrCodeFragment( 2090): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:963)
08-15 21:50:11.644 W/ShowQrCodeFragment( 2090): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:758)
```
* Android version: 5.1.1
* Phone model: PO9659TAQ-10182 (rk312x)
* Briar version: 0.16.9 (0785348)
* User comment: "Can't add a contact, when I click on the "+" I get a message "camera error"."Android 1.0akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/1136Improve UX for startup failures2018-02-28T15:56:53ZakwizgranImprove UX for startup failuresImprove the startup failure messages, so it says "this account was created with an older/newer version of briar" if the schema version is wrong, rather than saying the DB is corrupt.Improve the startup failure messages, so it says "this account was created with an older/newer version of briar" if the schema version is wrong, rather than saying the DB is corrupt.Android 1.0Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/1092Investigate performance of metadata queries2018-02-22T17:16:00ZakwizgranInvestigate performance of metadata queriesInvestigate the performance of the following DB calls to see which indexes are being used, and whether adding new indexes would improve performance:
* Database#getGroupMetadata(T, GroupId)
* Database#getMessageMetadata(T, GroupId)
* Dat...Investigate the performance of the following DB calls to see which indexes are being used, and whether adding new indexes would improve performance:
* Database#getGroupMetadata(T, GroupId)
* Database#getMessageMetadata(T, GroupId)
* Database#getMessageMetadata(T, GroupId, Metadata)
* Database#getMessageMetadata(T, MessageId)
* Database#getMessageMetadataForValidator(T, MessageId)
http://www.h2database.com/html/performance.html#explain_planAndroid 1.0akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/1134Improve error message when scanning unsupported QR code2018-02-22T17:15:50ZTorsten GroteImprove error message when scanning unsupported QR codeWhen scanning a QR code from an unsupported protocol version, the error message just says: `The Qr code is invalid`
It probably should say something like:
`The other person is using an outdated version of Briar. They need to upgrade fi...When scanning a QR code from an unsupported protocol version, the error message just says: `The Qr code is invalid`
It probably should say something like:
`The other person is using an outdated version of Briar. They need to upgrade first, before you can add them.`
Subtask of #617Android 1.0Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/1164Bluetooth address and UUID aren't stored until contact connections are enabled2018-02-22T17:11:39ZakwizgranBluetooth address and UUID aren't stored until contact connections are enabledThe fix for #1001 caused a regression: the Bluetooth address and UUID aren't stored in the local transport properties until contact connections are enabled. This causes the following issue:
* Turn off wifi
* Start Briar with a fresh acc...The fix for #1001 caused a regression: the Bluetooth address and UUID aren't stored in the local transport properties until contact connections are enabled. This causes the following issue:
* Turn off wifi
* Start Briar with a fresh account, add a contact via Bluetooth
* Messages can be exchanged with the contact
* Sign out and back in
* Enable Bluetooth contact connections in Briar settings
* Bluetooth plugin can't connect to contact because it doesn't have contact's address or UUID
On the beta branch, which doesn't have the fix for #1001, the Bluetooth plugin connects in the last step.Android 1.0akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/1173Use first byte of QR code payload to indicate format version2018-02-22T17:11:38ZakwizgranUse first byte of QR code payload to indicate format versionThe QR code payload currently includes the format version as part of a BDF list, which is base64 encoded on the beta branch but not on the master branch. This makes it awkward to detect incompatible versions.
Move the format version to ...The QR code payload currently includes the format version as part of a BDF list, which is base64 encoded on the beta branch but not on the master branch. This makes it awkward to detect incompatible versions.
Move the format version to the first byte of the payload and reserve the byte that's at the start of base64-encoded BDF lists so it's never used as a format version. This will allow us to detect incompatible versions by checking the first byte without having to try different encodings.Android 1.0akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/236Migrate to Curve25519 and Ed255192018-02-16T18:19:21Zstr4dMigrate to Curve25519 and Ed25519See comments in #117.See comments in #117.Android 1.0https://code.briarproject.org/briar/briar/-/issues/594Implement Database Schema Update Mechanism2018-02-05T11:32:07ZTorsten GroteImplement Database Schema Update MechanismWhen the database schema changes in new versions, these changes should be applied to old versions of the schema.When the database schema changes in new versions, these changes should be applied to old versions of the schema.Android 1.0akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/1135Author versioning2018-01-23T12:10:51ZakwizgranAuthor versioningVarious protocols serialise authors as a nickname (string) and a public key (raw). In future we may want to support other author formats (for example, we may add support for another signature algorithm). Serialised authors should start w...Various protocols serialise authors as a nickname (string) and a public key (raw). In future we may want to support other author formats (for example, we may add support for another signature algorithm). Serialised authors should start with a number that indicates the format version.
Subtask of #617.Android 1.0akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/831Refactor BluetoothPlugin and DroidtoothPlugin to share common code2018-01-19T12:29:40ZakwizgranRefactor BluetoothPlugin and DroidtoothPlugin to share common codeMost of the logic in BluetoothPlugin and DroidtoothPlugin is identical. Refactor the common code into a shared superclass.Most of the logic in BluetoothPlugin and DroidtoothPlugin is identical. Refactor the common code into a shared superclass.Android 1.0akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/1099Benchmarks for slow DB queries2017-12-18T18:21:55ZakwizgranBenchmarks for slow DB queriesWrite micro-benchmarks for DB queries that are taking longer than expected, find out how the size of the various tables and columns affects performance.
Subtask of #545.Write micro-benchmarks for DB queries that are taking longer than expected, find out how the size of the various tables and columns affects performance.
Subtask of #545.Android 1.0akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/482Store transport properties in metadata2017-12-15T15:04:27ZakwizgranStore transport properties in metadataStore the latest local and remote transport properties in metadata rather than iterating over all update messages whenever we need the latest properties.
Remote update messages can be deleted as soon as the properties have been extrac...Store the latest local and remote transport properties in metadata rather than iterating over all update messages whenever we need the latest properties.
Remote update messages can be deleted as soon as the properties have been extracted. When message receipt hooks have been implemented (#481), local update messages can be deleted as soon as the contact has received them.Android 1.0akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/1110Signatures use wrong labels2017-11-30T19:47:55ZakwizgranSignatures use wrong labelsThe blog, forum, private group and introduction clients are using the wrong labels for their signatures. The signatures use a label of the form `CLIENT_ID + "/FOO"`, which results in the string `org.briarproject.bramble.sync.ClientId@abc...The blog, forum, private group and introduction clients are using the wrong labels for their signatures. The signatures use a label of the form `CLIENT_ID + "/FOO"`, which results in the string `org.briarproject.bramble.sync.ClientId@abcd1234/FOO`, where `abcd1234` is the hash code of the ClientId object, because ClientId inherits its `toString()` implementation from Object.
The ClientId object has the same hash code as the string it wraps, which is the same across devices, so the signatures will verify as long as the verifier has the same bug.
Fortunately we're about to break compatibility with the beta series, so we can fix this cleanly.Android 1.0akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/1091Reduce number of DB queries used when polling for connections2017-10-11T14:40:36ZakwizgranReduce number of DB queries used when polling for connectionsRelated to #545.Related to #545.Android 1.0akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/703Create fake test data while using the app2017-10-10T09:16:00ZakwizgranCreate fake test data while using the appWhen testing the app it would be useful to be able to generate fake contacts, groups and messages quickly.
* Add a contact (saving the identity private key somewhere so we can create signed messages later)
* Add 100 private messages to/...When testing the app it would be useful to be able to generate fake contacts, groups and messages quickly.
* Add a contact (saving the identity private key somewhere so we can create signed messages later)
* Add 100 private messages to/from a fake contact
* Add 100 posts to a forum (nested replies from a mixture of throwaway fake identities, fake contacts and the user's own identity)
* Add 100 posts to a blog (comment chains from a mixture of throwaway fake identities, fake contacts and the user's own identity - these could be posted to the blogs of fake contacts or the user's own blog)
Alternatively, instead of creating the messages in batches, we could start a background service that generates them at random intervals until shutdown. That would also allow us to test notifications, UI updates, etc.Android 1.0Torsten GroteTorsten Grote