briar issueshttps://code.briarproject.org/briar/briar/-/issues2018-06-12T11:32:30Zhttps://code.briarproject.org/briar/briar/-/issues/316Tor mobile data setting is broken2018-06-12T11:32:30ZakwizgranTor mobile data setting is brokenSomebody renamed it in the UI but not in the backend.Somebody renamed it in the UI but not in the backend.Milestone Cakwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/314TorPlugin socket timeout2018-04-30T15:55:34ZErnir ErlingssonTorPlugin socket timeoutThere is a socket timeout in the Tor plugin, after 30 seconds of inactivity, that prevents user from communicating more than once over the mobile network. Connection between the devices is not re-established.
Reproduce:
1. Two devi...There is a socket timeout in the Tor plugin, after 30 seconds of inactivity, that prevents user from communicating more than once over the mobile network. Connection between the devices is not re-established.
Reproduce:
1. Two devices with connected contacts, A and B
2. Using only the mobile network, A chats with B and vice versa.
3. Close Briar and "lock" both devices by pressing the power button (don't turn off).
4. Unlock both devices after ~60 seconds (I think the timeout is set at 30 seconds) and try to chat with both A and B. Notice that no messages will be received by the other user and the "clock" symbol remains indefinitely in place.
You can re-establish connection by turning on WiFi on both devices or bluetooth and notice that then the messages are sent instantly.
Following is the error message that I got:
`
java.net.SocketTimeoutException
at java.net.PlainSocketImpl.read(PlainSocketImpl.java:488)
at java.net.PlainSocketImpl.access$000(PlainSocketImpl.java:37)
at java.net.PlainSocketImpl$PlainSocketInputStream.read(PlainSocketImpl.java:237)
at org.briarproject.crypto.StreamDecrypterImpl.readFrame(StreamDecrypterImpl.java:57)
at org.briarproject.transport.StreamReaderImpl.readFrame(StreamReaderImpl.java:61)
at org.briarproject.transport.StreamReaderImpl.read(StreamReaderImpl.java:49)
at org.briarproject.sync.PacketReaderImpl.readPacket(PacketReaderImpl.java:54)
at org.briarproject.sync.PacketReaderImpl.eof(PacketReaderImpl.java:78)
at org.briarproject.sync.IncomingSession.run(IncomingSession.java:56)
at org.briarproject.plugins.ConnectionManagerImpl$ManageIncomingDuplexConnection.run(ConnectionManagerImpl.java:267)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:818)
`Milestone Cakwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/313Move create forum post and share forum buttons in action bar2018-06-12T11:32:30ZTorsten GroteMove create forum post and share forum buttons in action barThis is a subtask of #121.
According to the designs in #305, the 'create forum post' and 'share forum' buttons will go into the in action bar.
In the spirit of keeping MRs small and to avoid conflicts with #306, this could be done ...This is a subtask of #121.
According to the designs in #305, the 'create forum post' and 'share forum' buttons will go into the in action bar.
In the spirit of keeping MRs small and to avoid conflicts with #306, this could be done first and independently of future work.Milestone CTorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/312Audit logging for sensitive or identifying information2018-06-12T11:32:30ZakwizgranAudit logging for sensitive or identifying informationCreate scrubbers for data such as IP addresses, MAC addresses and Tor hidden service addresses. These fields should not be logged verbatim, but may need to be logged in part, or hashed with salt, so that we can understand the logs.Create scrubbers for data such as IP addresses, MAC addresses and Tor hidden service addresses. These fields should not be logged verbatim, but may need to be logged in part, or hashed with salt, so that we can understand the logs.https://code.briarproject.org/briar/briar/-/issues/311Audit crash report and feedback fields for sensitive or identifying information2018-06-12T11:32:30ZakwizgranAudit crash report and feedback fields for sensitive or identifying informationSubtask of #123.Subtask of #123.Milestone CTorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/310Client layer events for forums2018-06-12T11:32:30ZakwizgranClient layer events for forumsThe forum UI currently depends on sync layer events such as MessageStateChangedEvent. The forum and forum sharing clients should broadcast their own high-level events with the information the UI needs.
Related to #122, #289.The forum UI currently depends on sync layer events such as MessageStateChangedEvent. The forum and forum sharing clients should broadcast their own high-level events with the information the UI needs.
Related to #122, #289.Milestone DTorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/309Client layer events for messaging2018-06-12T11:32:30ZakwizgranClient layer events for messagingThe messaging UI currently depends on sync-layer events such as MessageStateChangedEvent. The messaging client should broadcast its own high-level events with the information the UI needs.
Related to #289.The messaging UI currently depends on sync-layer events such as MessageStateChangedEvent. The messaging client should broadcast its own high-level events with the information the UI needs.
Related to #289.Milestone ETorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/308Messages in MessageQueue are picked up by Clients2018-04-28T00:16:54ZTorsten GroteMessages in MessageQueue are picked up by ClientsA message that arrived out of order and is pending in the message queue could be picked up by `getIntroductionMessages()`.A message that arrived out of order and is pending in the message queue could be picked up by `getIntroductionMessages()`.Android 1.0Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/307Background color2018-06-12T11:32:30ZMegaloxBackground colorWe have to decide onthe background color of the appWe have to decide onthe background color of the appMilestone Chttps://code.briarproject.org/briar/briar/-/issues/306Final mockups for threaded forum discussions2018-06-12T11:32:30ZakwizgranFinal mockups for threaded forum discussionsSubtask of #122.Subtask of #122.Milestone Chttps://code.briarproject.org/briar/briar/-/issues/305Final mockups for sharing forums2018-06-12T11:32:30ZakwizgranFinal mockups for sharing forumsSubtask of #121.Subtask of #121.Milestone Chttps://code.briarproject.org/briar/briar/-/issues/302Improve privacy of LAN plugin2018-01-28T11:30:28ZakwizgranImprove privacy of LAN pluginThe LAN plugin updates its transport properties with the latest IP address whenever a connectivity change is detected. This may allow the user's contacts to tell when she's at a frequently visited location, either by recognising an addre...The LAN plugin updates its transport properties with the latest IP address whenever a connectivity change is detected. This may allow the user's contacts to tell when she's at a frequently visited location, either by recognising an address she used when they were nearby, or by inferring a pattern (e.g. the IP address she usually advertises at night probably represents her home network).
Instead of advertising a single current address, we could advertise a list of recent addresses. This would make polling more expensive - addresses that aren't valid for the current network aren't polled, but we can expect a lot of networks to use the 192.168.0.0/16 range, resulting in multiple polling attempts per contact.
Related to #28, #44, #62.Milestone Chttps://code.briarproject.org/briar/briar/-/issues/300Ensure that gradle-witness can verify all dependencies2019-05-15T10:37:23ZakwizgranEnsure that gradle-witness can verify all dependenciesSome of our compile-time dependencies use `classpath`, `apt` or `provided` rather than `compile`. Ensure that gradle-witness can verify them.Some of our compile-time dependencies use `classpath`, `apt` or `provided` rather than `compile`. Ensure that gradle-witness can verify them.akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/298QR code decoder throws ArrayIndexOutOfBoundsException2018-06-12T11:32:30ZakwizgranQR code decoder throws ArrayIndexOutOfBoundsExceptionI got this crash on the Galaxy Ace 2 while testing the 278-bqp-ui branch, but it doesn't look like it's specific to that branch:
```
04-15 16:35:16.004 6537-8301/org.briarproject W/CrashHandler: Uncaught exception
java.lang.RuntimeE...I got this crash on the Galaxy Ace 2 while testing the 278-bqp-ui branch, but it doesn't look like it's specific to that branch:
```
04-15 16:35:16.004 6537-8301/org.briarproject W/CrashHandler: Uncaught exception
java.lang.RuntimeException: An error occured while executing doInBackground()
at android.os.AsyncTask$3.done(AsyncTask.java:299)
at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
at java.util.concurrent.FutureTask.run(FutureTask.java:137)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
at java.lang.Thread.run(Thread.java:856)
Caused by: java.lang.ArrayIndexOutOfBoundsException: length=460800; index=460800
at com.google.zxing.common.HybridBinarizer.calculateBlackPoints(HybridBinarizer.java:184)
at com.google.zxing.common.HybridBinarizer.getBlackMatrix(HybridBinarizer.java:79)
at com.google.zxing.BinaryBitmap.getBlackMatrix(BinaryBitmap.java:85)
at com.google.zxing.qrcode.QRCodeReader.decode(QRCodeReader.java:77)
at org.briarproject.android.util.QrCodeDecoder$DecoderTask.doInBackground(QrCodeDecoder.java:87)
at org.briarproject.android.util.QrCodeDecoder$DecoderTask.doInBackground(QrCodeDecoder.java:63)
at android.os.AsyncTask$2.call(AsyncTask.java:287)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
at java.util.concurrent.FutureTask.run(FutureTask.java:137)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
at java.lang.Thread.run(Thread.java:856)
```
Milestone Cakwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/297Contact list flickers when resuming2018-06-12T11:32:31ZakwizgranContact list flickers when resumingOn slower devices it's noticeable that the contact list redraws itself twice when returning from ConversationActivity.
This doesn't appear to be related to batched updates - it happens with a single contact, even if the call to `Sorte...On slower devices it's noticeable that the contact list redraws itself twice when returning from ConversationActivity.
This doesn't appear to be related to batched updates - it happens with a single contact, even if the call to `SortedList#clear()` is moved into the same batched update as the call to `SortedList#addAll()`.Milestone Cakwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/296Use consistent styling for dialogs2018-06-12T11:32:31ZakwizgranUse consistent styling for dialogsSome of the dialogs in the app use Material Design styling on all devices, others use MD styling on newer devices and older styling on older devices. Pick one approach and apply it consistently.Some of the dialogs in the app use Material Design styling on all devices, others use MD styling on newer devices and older styling on older devices. Pick one approach and apply it consistently.Milestone Cakwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/295Handle Declined Introductions2018-06-12T11:32:31ZTorsten GroteHandle Declined IntroductionsAt the moment, introducees are not informed about the other's response. When both accept, they get a notification about that.
However, when Alice declines first, Bob's backend gets the response, so it knows that the protocol has compl...At the moment, introducees are not informed about the other's response. When both accept, they get a notification about that.
However, when Alice declines first, Bob's backend gets the response, so it knows that the protocol has completed. In this case, Bob's response will not be forwarded to Alice whether positive or negative.
This violates our principle that information available in the backend should also be shown to the user so that the user understands what information she's potentially exposing to other users, who may be using different frontends.
So I essentially see two options to solve this:
1. Show **all** responses to the user
2. Do not forward negative responses to the introducees
The first option poses some UX challenge as it is not clear how the response of a contact we do not yet have should be shown. It is also an open question whether responses should always be forwarded. This would require introducing additional protocol states.
The second option would be less work to implement. The only problem is that the session of the introducee who was declined would forever stay "open" (if she accepts herself) and wait for a response that never comes. Since we are not deleting sessions anyway, that would be fine.Milestone BTorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/294Reject introduction requests that introduce an identity to itself2018-06-12T11:32:31ZakwizgranReject introduction requests that introduce an identity to itselfMilestone BTorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/293Remove avatar code and layout from ConversationActivity and ConversationAdapter2018-06-12T11:32:31ZakwizgranRemove avatar code and layout from ConversationActivity and ConversationAdapterThis code is currently unused, remove it if we're definitely not going to use it.This code is currently unused, remove it if we're definitely not going to use it.Milestone CTorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/292Reuse contact selector for introductions and sharing2018-06-12T11:32:31ZakwizgranReuse contact selector for introductions and sharingSeparate the contact chooser from the contact list and make it reusable for introductions and the various sharing features.Separate the contact chooser from the contact list and make it reusable for introductions and the various sharing features.Milestone CTorsten GroteTorsten Grote