briar issueshttps://code.briarproject.org/briar/briar/-/issues2020-11-15T17:12:51Zhttps://code.briarproject.org/briar/briar/-/issues/1689More security for Briar - A public key for each contact2020-11-15T17:12:51ZjomocuMore security for Briar - A public key for each contactThis would greatly increase the security of the application, it is a suggestion ...
If each contact has a public key, in case of being hacked, you would only understand the information of a user, you would not understand the information...This would greatly increase the security of the application, it is a suggestion ...
If each contact has a public key, in case of being hacked, you would only understand the information of a user, you would not understand the information of all your users.https://code.briarproject.org/briar/briar/-/issues/1660Collapse the feedback categories and remember choices2020-12-10T16:59:05ZGhost UserCollapse the feedback categories and remember choicesYou can sent the feedbacks in the app. The problem you can disable the sending of data for some categories. But I always have to scroll down for each category. Please make it better e.g. add an arrow button if users want to see what deta...You can sent the feedbacks in the app. The problem you can disable the sending of data for some categories. But I always have to scroll down for each category. Please make it better e.g. add an arrow button if users want to see what details are being sent. Then click on the arrow button.
I think it would be very good if the last setting remembers itself and is not hidden by default. I know some users who find it so much more intimate.
Tested with Briar 1.2.4 versionhttps://code.briarproject.org/briar/briar/-/issues/1659Prevent accidental sign out2020-11-15T17:20:25ZGhost UserPrevent accidental sign outhappened to me so often that I accidentally clicked on the "log out" button in the side bar. Can't you bring this button under the settings or add an option if you click on it, a pop up window appears.
Tested with Briar 1.2.4 versionhappened to me so often that I accidentally clicked on the "log out" button in the side bar. Can't you bring this button under the settings or add an option if you click on it, a pop up window appears.
Tested with Briar 1.2.4 versionhttps://code.briarproject.org/briar/briar/-/issues/1649Messages at bottom of group scroll offscreen after being marked as read2020-11-15T17:24:43ZakwizgranMessages at bottom of group scroll offscreen after being marked as readUser feedback: "At the instant when new messages at the bottom of the group chat finish fading from black to blue (I'm using the dark theme) to indicate they've been read, the window jumps back up so that the new messages are now just of...User feedback: "At the instant when new messages at the bottom of the group chat finish fading from black to blue (I'm using the dark theme) to indicate they've been read, the window jumps back up so that the new messages are now just off the bottom of the screen."https://code.briarproject.org/briar/briar/-/issues/1641Random name (ID) and random password2020-11-15T17:34:35ZjomocuRandom name (ID) and random passwordIt would be nice to change the way this works:
- On the "Registration" screen, Do not request a username, enter a random user ID instead.
(Subsequently, in the user's profile, being able to change the user's name, the user's id would no...It would be nice to change the way this works:
- On the "Registration" screen, Do not request a username, enter a random user ID instead.
(Subsequently, in the user's profile, being able to change the user's name, the user's id would not change, just change their name)
- This way the name could be edited in the user's profile and the new name would be shown to all contacts.
- Eliminate the option to rename contacts, instead, you can assign an alias to your contacts, without losing the real name (Show the real name in the contact profile).
On the other hand, in the "Registration" screen.
- Keep the option to enter a password.
- Add a button to generate a random password (and show the generated password).https://code.briarproject.org/briar/briar/-/issues/1637Wrong orientation of (exotic) rotated images2022-04-26T10:45:03ZTorsten GroteWrong orientation of (exotic) rotated imagesWhen sending a photo with an EXIF orientation of 90, it is shown rotated 90 degrees to the left in the preview of the sender, the conversation and image view of the receiver. However, it is shown correctly in Android's Gallery app.When sending a photo with an EXIF orientation of 90, it is shown rotated 90 degrees to the left in the preview of the sender, the conversation and image view of the receiver. However, it is shown correctly in Android's Gallery app.Android 1.4https://code.briarproject.org/briar/briar/-/issues/1635Try to send message before its attachments2022-04-19T11:30:43ZTorsten GroteTry to send message before its attachmentsOne way to do this would be to set the timestamp of the attachments `1` greater than the timestamp of the message itself, so in the common case the message would be sent first. There's no guarantees because of retransmission etc, but usu...One way to do this would be to set the timestamp of the attachments `1` greater than the timestamp of the message itself, so in the common case the message would be sent first. There's no guarantees because of retransmission etc, but usually that would give the result we want.https://code.briarproject.org/briar/briar/-/issues/1631Offline import RSS2021-02-05T10:25:41ZVladislavOffline import RSSAllow to add RSS-feed when connection can't be established.
Sometimes, internet connection is slow, and connection with TOR can't be established. That cause impossibility to add RSS-feedAllow to add RSS-feed when connection can't be established.
Sometimes, internet connection is slow, and connection with TOR can't be established. That cause impossibility to add RSS-feedhttps://code.briarproject.org/briar/briar/-/issues/1622Import Twitter feeds as RSS via Nitter2020-11-15T18:01:12ZakwizgranImport Twitter feeds as RSS via NitterNitter is a privacy-oriented Twitter frontend that proxies client requests to twitter.com. It allows Twitter feeds to be accessed via RSS. We could use this to import Twitter feeds (read-only) as Briar blogs.Nitter is a privacy-oriented Twitter frontend that proxies client requests to twitter.com. It allows Twitter feeds to be accessed via RSS. We could use this to import Twitter feeds (read-only) as Briar blogs.https://code.briarproject.org/briar/briar/-/issues/1620SuperNotCalledException when sharing link2020-11-15T18:04:01ZakwizgranSuperNotCalledException when sharing link* Android version: 4.0.4
* Briar version 1.1.9 (b1dfd86)
* Phone model: x86 emulator
Steps to reproduce:
* Open remote contact screen
* Tap share button
* Close the app chooser by tapping outside of the chooser or pressing back
Stackt...* Android version: 4.0.4
* Briar version 1.1.9 (b1dfd86)
* Phone model: x86 emulator
Steps to reproduce:
* Open remote contact screen
* Tap share button
* Close the app chooser by tapping outside of the chooser or pressing back
Stacktrace:
```
android.app.SuperNotCalledException: Activity {android/com.android.internal.app.ChooserActivity} did not call through to super.onStop()
at android.app.Activity.performStop(Activity.java:4606)
at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:3071)
at android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:3130)
at android.app.ActivityThread.access$1200(ActivityThread.java:123)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1180)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4424)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
at dalvik.system.NativeStart.main(Native Method)
```
This looks like a bug in the platform's ChooserActivity so I'm not adding it to the milestone.https://code.briarproject.org/briar/briar/-/issues/1619New chat category: Emergency forum.2020-11-15T18:05:14ZVladislavNew chat category: Emergency forum.What for?
In emergency situation, to be able to write message in emergency forum, that can be seen by anybody in this group, even if not in your contact list. With possibility to block user (if spammer).
Works only in WiFi-Direct, Bluet...What for?
In emergency situation, to be able to write message in emergency forum, that can be seen by anybody in this group, even if not in your contact list. With possibility to block user (if spammer).
Works only in WiFi-Direct, Bluetooth.https://code.briarproject.org/briar/briar/-/issues/1615Upgrade process like apt and use torrents2020-11-15T18:06:51ZPratiwirUpgrade process like apt and use torrentsI would like to suggest doing a more modular upgrade process the same way that is used in termux where apt is used to fetch code. Thus Briar could be upgraded piecewise using a cut down version of apt.
I also propose using torrents soft...I would like to suggest doing a more modular upgrade process the same way that is used in termux where apt is used to fetch code. Thus Briar could be upgraded piecewise using a cut down version of apt.
I also propose using torrents software within Briar, as an additional way to fetch and verify any upgrade files, so that play store could become superfluous once the initial install is made. The torrents component could be activated as needed and used to voluntarily help distribute system files to other users.
I am suggesting this because other apps have this problem of constantly having to uograde. To do this anonymously needs f-droid or yalp store over tor, but the downloads are slow and have a high failure rate, needing to keep restart the download when secure communications apps are being fetched.
It is imho key to have anonymous downloads and easy software distribution not subject to packet injection and blocking.https://code.briarproject.org/briar/briar/-/issues/1613Briar dependency error (Android studio)2020-11-15T18:07:51ZjomocuBriar dependency error (Android studio)Hi, I'm trying to edit and compile briar.
I have imported the project, but it shows the following error.
**ERROR: No dependency for integrity assertion 'cglib:cglib:3.2.0:cglib-3.2.0.jar:adb13bab79712ad6bdf1bd59f2a3918018a8016e722e8a357...Hi, I'm trying to edit and compile briar.
I have imported the project, but it shows the following error.
**ERROR: No dependency for integrity assertion 'cglib:cglib:3.2.0:cglib-3.2.0.jar:adb13bab79712ad6bdf1bd59f2a3918018a8016e722e8a357065afb9e6690861'**
What am I doing wrong?
Thanks greetingshttps://code.briarproject.org/briar/briar/-/issues/1608Can't scan QR code in low light2020-11-15T18:09:33ZakwizgranCan't scan QR code in low lightSome phones can't scan QR codes from screens in low light because the camera automatically adjusts the exposure, making the other phone's screen a white blur. I've seen this before on older phones but assumed it was a dying problem. But ...Some phones can't scan QR codes from screens in low light because the camera automatically adjusts the exposure, making the other phone's screen a white blur. I've seen this before on older phones but assumed it was a dying problem. But the problem also exists on the Honor 8A (Android 9), making it impossible to add contacts between the Honor 8A and the Ascend Y330 in low light. (The Y330's low res screen contributes to the problem; the Honor 8A can scan the Nexus 5's screen in the same lighting conditions, for example.)
We should see whether auto exposure can be disabled, and whether this helps.https://code.briarproject.org/briar/briar/-/issues/1600AttachmentRetrieverIntegrationTest fails on emulator2020-11-15T18:13:33ZakwizgranAttachmentRetrieverIntegrationTest fails on emulatorSeveral tests in AttachmentRetrieverIntegrationTest fail on the API 21 emulator. It looks like some of them failed in the original commit of the test (it was called AttachmentControllerTest at the time) and others have been broken by sub...Several tests in AttachmentRetrieverIntegrationTest fail on the API 21 emulator. It looks like some of them failed in the original commit of the test (it was called AttachmentControllerTest at the time) and others have been broken by subsequent changes.
The failures from the original commit all seem to involve the same issue: the file extension being `jpeg` rather than `jpg`. I guess the platform's behaviour probably changed some time between API 21 and now, and it doesn't seem likely to cause problems beyond the test failure.
```
org.junit.ComparisonFailure: expected:<jp[]g> but was:<jp[e]g>
at org.briarproject.briar.android.conversation.AttachmentControllerTest.testSmallJpegImageHealsWrongMimeType(AttachmentControllerTest.java:125)
...
org.junit.ComparisonFailure: expected:<jp[]g> but was:<jp[e]g>
at org.briarproject.briar.android.conversation.AttachmentControllerTest.testHighError(AttachmentControllerTest.java:317)
...
org.junit.ComparisonFailure: expected:<jp[]g> but was:<jp[e]g>
at org.briarproject.briar.android.conversation.AttachmentControllerTest.testWideError(AttachmentControllerTest.java:332)
...
org.junit.ComparisonFailure: expected:<jp[]g> but was:<jp[e]g>
at org.briarproject.briar.android.conversation.AttachmentControllerTest.testNoSizeJpeg(AttachmentControllerTest.java:71)
...
org.junit.ComparisonFailure: expected:<jp[]g> but was:<jp[e]g>
at org.briarproject.briar.android.conversation.AttachmentControllerTest.testSmallJpegImage(AttachmentControllerTest.java:109)
...
org.junit.ComparisonFailure: expected:<jp[]g> but was:<jp[e]g>
at org.briarproject.briar.android.conversation.AttachmentControllerTest.testBigJpegImage(AttachmentControllerTest.java:141)
...
org.junit.ComparisonFailure: expected:<jp[]g> but was:<jp[e]g>
at org.briarproject.briar.android.conversation.AttachmentControllerTest.testLottaPixels(AttachmentControllerTest.java:203)
```
The failures on current master involve content types as well as file extensions.
```
org.junit.ComparisonFailure: expected:<image/[gif]> but was:<image/[jpeg]>
at org.briarproject.briar.android.attachment.AttachmentRetrieverIntegrationTest.testGimpCrash(AttachmentRetrieverIntegrationTest.java:156)
...
org.junit.ComparisonFailure: expected:<image/[gif]> but was:<image/[jpeg]>
at org.briarproject.briar.android.attachment.AttachmentRetrieverIntegrationTest.testUberGif(AttachmentRetrieverIntegrationTest.java:111)
...
org.junit.ComparisonFailure: expected:<image/[pn]g> but was:<image/[jpe]g>
at org.briarproject.briar.android.attachment.AttachmentRetrieverIntegrationTest.testImageIoCrash(AttachmentRetrieverIntegrationTest.java:141)
...
org.junit.ComparisonFailure: expected:<image/[gif]> but was:<image/[jpeg]>
at org.briarproject.briar.android.attachment.AttachmentRetrieverIntegrationTest.testOptiPngAfl(AttachmentRetrieverIntegrationTest.java:171)
...
org.junit.ComparisonFailure: expected:<jp[]g> but was:<jp[e]g>
at org.briarproject.briar.android.attachment.AttachmentRetrieverIntegrationTest.testHighError(AttachmentRetrieverIntegrationTest.java:241)
...
org.junit.ComparisonFailure: expected:<jp[]g> but was:<jp[e]g>
at org.briarproject.briar.android.attachment.AttachmentRetrieverIntegrationTest.testWideError(AttachmentRetrieverIntegrationTest.java:256)
...
org.junit.ComparisonFailure: expected:<jp[]g> but was:<jp[e]g>
at org.briarproject.briar.android.attachment.AttachmentRetrieverIntegrationTest.testSmallJpegImage(AttachmentRetrieverIntegrationTest.java:65)
...
org.junit.ComparisonFailure: expected:<jp[]g> but was:<jp[e]g>
at org.briarproject.briar.android.attachment.AttachmentRetrieverIntegrationTest.testBigJpegImage(AttachmentRetrieverIntegrationTest.java:81)
...
org.junit.ComparisonFailure: expected:<jp[]g> but was:<jp[e]g>
at org.briarproject.briar.android.attachment.AttachmentRetrieverIntegrationTest.testLottaPixels(AttachmentRetrieverIntegrationTest.java:127)
```https://code.briarproject.org/briar/briar/-/issues/1596Make migrations idempotent where possible2020-11-15T18:14:12ZakwizgranMake migrations idempotent where possibleThe database migrations use data definition commands (`ALTER TABLE`, etc) that H2 commits automatically as soon as they're executed, even though we execute the commands within a transaction. If a crash happens during a migration, the DB ...The database migrations use data definition commands (`ALTER TABLE`, etc) that H2 commits automatically as soon as they're executed, even though we execute the commands within a transaction. If a crash happens during a migration, the DB may be left in a state where the migration has been partially applied. If the data definition commands aren't idempotent then subsequent attempts to apply the migration will fail, making it impossible to complete the migration and open the DB.
Where possible we should use data definition commands that are idempotent. For example, `DELETE COLUMN` should be `DELETE COLUMN IF EXISTS`, `CREATE COLUMN` should be `CREATE COLUMN IF NOT EXISTS`, etc.https://code.briarproject.org/briar/briar/-/issues/1589Use consistent scroll behaviour across the app2021-12-21T23:12:35ZakwizgranUse consistent scroll behaviour across the appFollowing the discussion on #713 and other tickets listed below, let's use consistent scroll behaviour across the app.
Related to #713, #872, #1073, #1192, #1200, #1361, #1337, #1467, #1493.Following the discussion on #713 and other tickets listed below, let's use consistent scroll behaviour across the app.
Related to #713, #872, #1073, #1192, #1200, #1361, #1337, #1467, #1493.https://code.briarproject.org/briar/briar/-/issues/1581Add pending contact via ENTER or IME action2020-11-15T18:20:32ZTorsten GroteAdd pending contact via ENTER or IME actionWhen entering the nickname for a pending contact pressing enter or the Go IME action in the soft keyboard should be equivalent to pressing the button.When entering the nickname for a pending contact pressing enter or the Go IME action in the soft keyboard should be equivalent to pressing the button.https://code.briarproject.org/briar/briar/-/issues/1574Consider separating the package structures for bramble-java and bramble-core2020-11-15T18:21:38ZiwakehConsider separating the package structures for bramble-java and bramble-coreConsider using a separate package for ```bramble-java``` (e.g. ```org.briarproject.bramble.java.*```)
Currently, ```bramble-java``` provides the same packages as ```bramble-core```.
Some ```bramble-java``` classes extend package-private...Consider using a separate package for ```bramble-java``` (e.g. ```org.briarproject.bramble.java.*```)
Currently, ```bramble-java``` provides the same packages as ```bramble-core```.
Some ```bramble-java``` classes extend package-private classes from ```bramble-core``` (mostly in bluetooth). Hmm ....
When briar is going to use java >= 9 and provides modules this needs to be addressed anyway.
(I believe briar should be around for many, many new java versions to come ;-)https://code.briarproject.org/briar/briar/-/issues/1569Connection manager could fail to close connection2020-11-15T18:24:37ZakwizgranConnection manager could fail to close connectionWhen the connection manager disposes of the incoming side of a duplex connection, it interrupts the outgoing sync session (if any) so the outgoing session can finish cleanly. If this happens before the outgoing session is created, it won...When the connection manager disposes of the incoming side of a duplex connection, it interrupts the outgoing sync session (if any) so the outgoing session can finish cleanly. If this happens before the outgoing session is created, it won't be interrupted.
If the incoming side of the connection is being disposed of because of an exception then the transport connection will be closed, so the outgoing session should eventually catch an exception when it tries to write to the connection. But if the incoming side of the connection is being disposed of because the end of the stream was reached then the transport connection will be left half-open, so the outgoing session could keep running indefinitely. This might also happen in the case of an exception if there's nothing to send and the transport doesn't require keepalives, which is the case for Bluetooth.
This could result in a dangling connection that's only usable in one direction. As far as I can tell it won't prevent a new connection from being made, or cause issues like !921, because the registration and unregistration of duplex connections is based on the lifetime of the incoming session, not the outgoing session.
The opposite can also happen: if the connection manager disposes of the outgoing side of the connection before the incoming session is created, the incoming session won't be interrupted. This can only happen if an exception has been thrown (in which case the transport connection will be closed, which *should* cause the incoming session to catch an exception eventually), or if the outgoing session has finished cleanly, which only happens if it's interrupted due to the incoming side of the connection being disposed of. So the only possible cause of a bug like !921 in this case would be if closing the connection didn't cause the incoming session to catch an exception (flaky Bluetooth stacks, I'm looking at you).
Labelling this as a bug because it's unintended behaviour, although it's not clear if we need to fix it.