briar issueshttps://code.briarproject.org/briar/briar/-/issues2021-05-31T13:41:01Zhttps://code.briarproject.org/briar/briar/-/issues/1911Emoji Input does not work on LG-P875H (Android 4.4)2021-05-31T13:41:01ZTorsten GroteEmoji Input does not work on LG-P875H (Android 4.4)Clicking the emoji icon brings up the normal keyboard. The icon stays emoji. When clicking it again, it turns into a keyboard icon, but the keyboard itself is still shown without change.
Running Android 4.1.2Clicking the emoji icon brings up the normal keyboard. The icon stays emoji. When clicking it again, it turns into a keyboard icon, but the keyboard itself is still shown without change.
Running Android 4.1.2https://code.briarproject.org/briar/briar/-/issues/1971Upgrade Tor to 0.3.5.142021-05-31T12:05:53ZakwizgranUpgrade Tor to 0.3.5.14https://gitweb.torproject.org/tor.git/tree/ChangeLog?h=tor-0.3.5.14https://gitweb.torproject.org/tor.git/tree/ChangeLog?h=tor-0.3.5.14Android 1.2akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/2053Briar API. Communicate trough Briar using another Android app.2021-05-26T13:11:35ZVladislavBriar API. Communicate trough Briar using another Android app.Is there a way to communicate trough Briar API (send messages, write blog post), for example using Tasker or Easer.
I for example, would like to send messages with my location to a Private Group, from an app like GPSLogger, which already...Is there a way to communicate trough Briar API (send messages, write blog post), for example using Tasker or Easer.
I for example, would like to send messages with my location to a Private Group, from an app like GPSLogger, which already can post location to email, Dropbox, ftp, openGTS, OSM, ownCloud.
For example we can add list of trusted apps in Briar settings, that can post messages without requiring password.
Or, would be easier/safer to implement Bramble into this kind of app and create new user for it?https://code.briarproject.org/briar/briar/-/issues/2036Detect when someone connects to Wi-Fi hotspot and prompt user to show downloa...2021-05-26T13:01:27ZTorsten GroteDetect when someone connects to Wi-Fi hotspot and prompt user to show download infoWe might be able to continue to requesting the Wi-Fi group info and inspect it for connection information. When the first connection was made, we can stop requesting it and trigger an UI update like a Snackbar to make the hotspot providi...We might be able to continue to requesting the Wi-Fi group info and inspect it for connection information. When the first connection was made, we can stop requesting it and trigger an UI update like a Snackbar to make the hotspot providing user aware that they can now proceed to the next screen.Install via Bluetooth or Wi-FiTorsten GroteTorsten Grote2021-07-31https://code.briarproject.org/briar/briar/-/issues/1994App goes into background spontaneously when memory is low2021-05-20T15:15:34ZakwizgranApp goes into background spontaneously when memory is lowOn the Galaxy Nexus (Android 4.3), Briar sometimes goes into the background spontaneously when memory is low.
This seems to happen because the app's importance is downgraded from IMPORTANCE_FOREGROUND to IMPORTANCE_VISIBLE when the app'...On the Galaxy Nexus (Android 4.3), Briar sometimes goes into the background spontaneously when memory is low.
This seems to happen because the app's importance is downgraded from IMPORTANCE_FOREGROUND to IMPORTANCE_VISIBLE when the app's showing a system dialog (in my case it was the Bluetooth discoverability dialog). BriarApplicationImpl#isRunningInBackground() considers anything other than IMPORTANCE_FOREGROUND to be background, so it allows BriarService to hide the UI to save memory.
Fixing this will require some care. When Briar's actually running in the background on this device it has an importance of IMPORTANCE_PERCEPTIBLE_PRE_26 (perhaps it's treated as perceptible because of the foreground service). But on other devices it might plausibly have IMPORTANCE_FOREGROUND_SERVICE (added in API 23) or IMPORTANCE_PERCEPTIBLE (added in API 26). Presumably new constants may be added in future versions.
The constants seem to be ordered, with lower values being more important:
* IMPORTANCE_FOREGROUND = 100
* IMPORTANCE_FOREGROUND_SERVICE = 125
* IMPORTANCE_PERCEPTIBLE_PRE_26 = 130
* IMPORTANCE_VISIBLE = 200
* IMPORTANCE_PERCEPTIBLE = 230
Unfortunately there's no cutoff we can choose such that the values for "running in the foreground, maybe with a system dialog" are on one side while the values for "running in the background with a foreground service" are on the other side.
I suspect there's an Android bug here: an app that would have IMPORTANCE_PERCEPTIBLE_PRE_26 when running in the background shouldn't be less important when it's running in the foreground but showing a system dialog. If I'm right and we can find out when the bug was fixed, maybe we can use some version-aware logic to work around this.https://code.briarproject.org/briar/briar/-/issues/2046After reblogging, return to the main blog feed page2021-05-18T10:24:19ZIvanaAfter reblogging, return to the main blog feed pageCurrently (githash b0faab9, master 17/05/2021 17:37) this is what happens:
- Open blog details page, and tap on reblog button.
- Type in the reblog comments and tap Reblog when finished.
This action returns the user to the blog detail...Currently (githash b0faab9, master 17/05/2021 17:37) this is what happens:
- Open blog details page, and tap on reblog button.
- Type in the reblog comments and tap Reblog when finished.
This action returns the user to the blog details page - where his new reblog entry is not shown, so the user may be left wondering 'where is the post that I just created'?
If the user then returns to the main blog feed page, their reblgo entry is correctly shown at the top of the page
It may be a neater solution to return to the main blog feed page immediately after the user enters their comments and taps the Reblog button to avoid the step where the user might be wondering what happened to the post they just submitted.
This happens only when reblogging from the blog details screen.
When reblogging from the main blog feed page, the user can see their new reblog post immediately upon return on that page.https://code.briarproject.org/briar/briar/-/issues/2041Use vCard for URL transfer2021-05-17T11:46:06ZJens KorteUse vCard for URL transferI am not sure if it is of use: vCards can contain URLs. Maybe that URLs will be opened in a non-safe-Browser.I am not sure if it is of use: vCards can contain URLs. Maybe that URLs will be opened in a non-safe-Browser.https://code.briarproject.org/briar/briar/-/issues/1895Introduce ViewModel for WriteBlogPostActivity2021-05-11T15:06:42ZTorsten GroteIntroduce ViewModel for WriteBlogPostActivityThe `WriteBlogPostActivity` could either be turned into a fragment and re-use BlogViewModel or have its own ViewModel.
Subtask of #1823
Depends on #1866The `WriteBlogPostActivity` could either be turned into a fragment and re-use BlogViewModel or have its own ViewModel.
Subtask of #1823
Depends on #1866https://code.briarproject.org/briar/briar/-/issues/2035Create AndroidRemovableDrivePlugin2021-05-11T11:23:14ZakwizgranCreate AndroidRemovableDrivePluginCreate an Android subclass of RemovableDrivePlugin that uses URIs and the ContentResolver to obtain input/output streams.
Subtask of #1802Create an Android subclass of RemovableDrivePlugin that uses URIs and the ContentResolver to obtain input/output streams.
Subtask of #1802Transfer content securely via SD cards and USB memory sticksakwizgranakwizgran2021-07-31https://code.briarproject.org/briar/briar/-/issues/2015Create RemovableDrivePlugin2021-05-10T13:07:16ZakwizgranCreate RemovableDrivePluginCreate a RemovableDrivePlugin that extends FilePlugin, along with a suitable PluginFactory. The plugin's writerFinished() method can be a no-op. The readerFinished() method should try to delete the file if the tag was recognised and the ...Create a RemovableDrivePlugin that extends FilePlugin, along with a suitable PluginFactory. The plugin's writerFinished() method can be a no-op. The readerFinished() method should try to delete the file if the tag was recognised and the read completed without an exception, failing gracefully if the file is on a read-only filesystem.
The ~~UI~~ read/write tasks (#2017 and #2018) will interact with the plugin via its createReader() and createWriter() methods, which are already provided by FilePlugin.
Subtask of #1802Transfer content securely via SD cards and USB memory sticksakwizgranakwizgran2021-07-31https://code.briarproject.org/briar/briar/-/issues/2034Produce localized framed screenshots for app stores2021-05-10T12:17:32ZTorsten GroteProduce localized framed screenshots for app stores@c1e0 started work to automatically frame screenshots for Google Play:
https://code.briarproject.org/c1e0/briar/-/tree/fastlane/fastlane-screenshots
These can be localized and produced in a scripted fashion.@c1e0 started work to automatically frame screenshots for Google Play:
https://code.briarproject.org/c1e0/briar/-/tree/fastlane/fastlane-screenshots
These can be localized and produced in a scripted fashion.https://code.briarproject.org/briar/briar/-/issues/2013Add database method for getting amount of data to sync2021-05-10T12:00:48ZakwizgranAdd database method for getting amount of data to syncSubtask of #1802Subtask of #1802Transfer content securely via SD cards and USB memory sticksakwizgranakwizgran2021-07-31https://code.briarproject.org/briar/briar/-/issues/2014Update MessagesSentEvent to include amount of data sent2021-05-10T12:00:41ZakwizgranUpdate MessagesSentEvent to include amount of data sentSubtask of #1802Subtask of #1802Transfer content securely via SD cards and USB memory sticksakwizgranakwizgran2021-07-31https://code.briarproject.org/briar/briar/-/issues/1975Crash: after introductions are declined by both parties (disappearing message...2021-05-05T16:17:23ZIvanaCrash: after introductions are declined by both parties (disappearing messages setting is ON on all devices)Scenario was like this;
Three devices, Samsung Mini API19, Nokia 1.3 API 30 and Pixel 2 API29. Samsung has connections with both, but they are not connected to each other. Disappearing messages are on for both Samsung's contacts, as we...Scenario was like this;
Three devices, Samsung Mini API19, Nokia 1.3 API 30 and Pixel 2 API29. Samsung has connections with both, but they are not connected to each other. Disappearing messages are on for both Samsung's contacts, as well as on Nokia and Pixel for the conversations with Samsung.
Samsung mini selects Pixel and goes to select the Make Introductions. Then it selects the Nokia's contact and sends a message to both of them. They both decline the intro message.
Samsung goes back to Pixel's conversation, and tries to perform the intro again, in the same way.
After selecting Make introductions, the crash happens. No logfile as the phone that crashed was not connected to Android Studio at the time of crash. But here are the screenshots of Stacktrace on the phone itself.
Reproduced - crash happens after both parties decline invitation with Disappearing msgs = ON. One more detail in the scenario is that the sender's atomatically generated messages related to this intro disappear before either of the recipients sees their messages re: intro that sender sent them. After disappearance of the sender's auto-generated msgs, both contacts then look at their messages and decline the intro.
![device-2021-03-23-115918](/uploads/fcf869c8275fe99c4ef3db7e9131a9d7/device-2021-03-23-115918.png)![device-2021-03-23-115939](/uploads/c42a2522c05d09c95a5a20358687a5cc/device-2021-03-23-115939.png)[Logfile_Crash_230321.txt](/uploads/d47015c1f5b198907b63ca667557fa6f/Logfile_Crash_230321.txt)Self-destructing messagesIvanaIvana2021-01-31https://code.briarproject.org/briar/briar/-/issues/1834Automatically decline incoming introduction requests when they self-destruct2021-05-05T16:17:22ZakwizgranAutomatically decline incoming introduction requests when they self-destructWhen an incoming introduction request self-destructs without being answered, automatically decline the request. This may require a protocol update (coordinated with #1829) to flag the decline as an automatic response that shouldn't be sh...When an incoming introduction request self-destructs without being answered, automatically decline the request. This may require a protocol update (coordinated with #1829) to flag the decline as an automatic response that shouldn't be shown in the UI.
Subtask of #804
Test instructions:
* Use three devices, users A, B and C
* Enable self-destructing messages in the conversations A-B and A-C
* Let A introduce contacts B and C
* Expect invitation messages to arrive at B and C about the invitation
* Expect the invitation messages to have a auto-delete timers
* Let those timers expire. Expect that to trigger an automatic decline of the invitation, i.e. on all three devices it is visible that the introduction failed (due to the expired response)
* Expect all messages from that interaction to destroy after each message's timer expires
* Let A introduce B and C again. Expect this *not* to fail due to an introduction that is already going on (because none should be going on any longer)
* Let B and C accept the introduction
* Expect the introduction to work
* Confirm that B and C have each other in the contact list
* Expect all messages involved in the transaction to have auto-delete timers
* Let those timers expire and expect all those messages to disappearSelf-destructing messagesIvanaIvana2021-01-31https://code.briarproject.org/briar/briar/-/issues/1783Switching "language & region" to English does not switch the settings language2021-05-05T16:17:22ZRobert PollakSwitching "language & region" to English does not switch the settings languageI am using version 1.2.7 from F-Droid.
When I try to switch the interface language from my system standard (which is my native language) to "English (United States), and open the settings after restart, the page title has appropriately c...I am using version 1.2.7 from F-Droid.
When I try to switch the interface language from my system standard (which is my native language) to "English (United States), and open the settings after restart, the page title has appropriately changed to the English "settings", but all the entries are still in my native language.Android 1.2SebastianSebastianhttps://code.briarproject.org/briar/briar/-/issues/214User Avatars2021-05-05T16:17:22ZTorsten GroteUser AvatarsFollowing support for Identicons in #120, we want to give users the possibility to use their own avatar to be recognized by their peers.
We should bear in mind the potential for impersonation, especially in forums, where users will see ...Following support for Identicons in #120, we want to give users the possibility to use their own avatar to be recognized by their peers.
We should bear in mind the potential for impersonation, especially in forums, where users will see posts from known and unknown identities mixed together. Anyone can create a throwaway identity with the same nickname (and avatar, if we allow them) as another user, which is different from what people are used to in centralised systems.
One possibility would be to show avatars *only* for known/verified identities and use identicons for unknown identities and those users who did not specify an avatar.
Unverified contacts should be distinguished from verified contacts in some way. They could use different identicons or have a little badge on their image indicating the trust-level similar to the little green briar icons we use at the moment.Profile picturesIvanaIvana2021-01-31https://code.briarproject.org/briar/briar/-/issues/1825Unspecific 500 Server Error when adding already existing pending contact2021-05-05T16:15:44ZNicoUnspecific 500 Server Error when adding already existing pending contact@grote found https://code.briarproject.org/briar/python-briar-wrapper/-/issues/19 where he encountered problems when re-adding an already existing pending contact.
I tried to somehow handle those error in _briar_wrapper_, but the respon...@grote found https://code.briarproject.org/briar/python-briar-wrapper/-/issues/19 where he encountered problems when re-adding an already existing pending contact.
I tried to somehow handle those error in _briar_wrapper_, but the response by Briar Headless is always just `500: Internal server error`. I get this when adding a pending contact after
* it has already been added seconds before and the peer is offline
* it has already been added more than 4 days before (manually changed system time) and the peer was offline all the time
* the pending contact got already added days before and left the pending state
* the link is invalid (I think so, just changed some characters)
* and for sure there are more errors
The problem is that [in this line](https://code.briarproject.org/briar/briar/-/blob/01a146ba71743e3709bd6e56052558da95abfbed/briar-headless/src/main/java/org/briarproject/briar/headless/contact/ContactControllerImpl.kt#L96) `contactManager.addPendingContact` gets called without catching its exceptions. Looking [at its implementation](https://code.briarproject.org/briar/briar/-/blob/01a146ba71743e3709bd6e56052558da95abfbed/bramble-core/src/main/java/org/briarproject/bramble/contact/ContactManagerImpl.java#L136), there are at least `DbException, FormatException, GeneralSecurityException` that get thrown.NicoNicohttps://code.briarproject.org/briar/briar/-/issues/1991Panic button preferences screen doesn't use material design switches on API 192021-05-05T16:14:53ZakwizgranPanic button preferences screen doesn't use material design switches on API 19![device-2021-03-26-154413](/uploads/0dc8a6696c9159263f6e2f24e695dd69/device-2021-03-26-154413.png)![device-2021-03-26-154413](/uploads/0dc8a6696c9159263f6e2f24e695dd69/device-2021-03-26-154413.png)Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/1986Introducing same two contacts not possible after self-destructing non-answere...2021-05-05T16:14:52ZSebastianIntroducing same two contacts not possible after self-destructing non-answered response to one-sided declined introductionUnder certain circumstances, an introduction can fail and leave the introducer in a state where they are not able to retry the introduction.
Situation to reproduce this: A introduces B and C with self-destructing messages enabled among ...Under certain circumstances, an introduction can fail and leave the introducer in a state where they are not able to retry the introduction.
Situation to reproduce this: A introduces B and C with self-destructing messages enabled among A-B and A-C. At the time of the introduction being sent, C is offline to simulate a delay.
* introduction arrives at B
* 30 seconds pass
* C comes online
* introduction arrives at C
* another 30 seconds pass
* B didn't do anything, the introduction self-destructs, and auto-declines it
* A forwards the decline to C
* another 30 seconds pass
* C didn't do anything, the introduction self-destructs, but doesn't auto decline it because B already declined and the
introduction can no longer succeed
* C didn't send a response and hence A cannot try again to introduce B and C, although it should. Also C has no way to respond to the introduction any longer to fix that
Test instructions:
* Variant 1
* Let A introduce B and C, with self-destructing messages enabled among A and C but not necessarily enabled among A and B.
* let B **decline** the introduction
* observe that C receives the response from B
* let the timer of the introduction expire at C
* observe that A received a decline from both B and C
* try to let A introduce B and C again. Make sure it is possible to actually send a new introduction that arrives at B and C
* Variant 2
* Let A introduce B and C, with self-destructing messages enabled among A and C but not necessarily enabled among A and B.
* let B **accept** the introduction
* in this case, C does not receive any response from B
* let the timer of the introduction expire at C
* observe that A received an accept from B and a decline from C
* try to let A introduce B and C again. Make sure it is possible to actually send a new introduction that arrives at B and CSelf-destructing messagesIvanaIvana2021-01-31