briar issueshttps://code.briarproject.org/groups/briar/-/issues2023-02-01T14:11:02Zhttps://code.briarproject.org/briar/briar-desktop/-/issues/163Consider offloading avatar loading to the IoExecutor2023-02-01T14:11:02ZSebastianConsider offloading avatar loading to the IoExecutorCurrently we load avatar images on the db thread, maybe that's not optimalCurrently we load avatar images on the db thread, maybe that's not optimalhttps://code.briarproject.org/briar/briar-desktop/-/issues/162See if we can externalize versions from briar's build file and reuse them here2022-11-07T15:58:07ZSebastianSee if we can externalize versions from briar's build file and reuse them hereSebastianSebastianhttps://code.briarproject.org/briar/briar-mailbox/-/issues/80Consider starting mailbox before phone has been unlocked by user2023-08-28T16:00:11ZSebastianConsider starting mailbox before phone has been unlocked by userSee !50 in particular https://code.briarproject.org/briar/briar-mailbox/-/merge_requests/50#note_58609See !50 in particular https://code.briarproject.org/briar/briar-mailbox/-/merge_requests/50#note_58609https://code.briarproject.org/briar/briar/-/issues/2244Reduce bandwidth used by polling2021-12-13T14:23:36ZakwizgranReduce bandwidth used by pollingPolling for connections to contacts via Tor uses a significant amount of bandwidth. We could save bandwidth by polling unreachable contacts less often, or by polling less often (perhaps not at all) if we're confident that contacts can co...Polling for connections to contacts via Tor uses a significant amount of bandwidth. We could save bandwidth by polling unreachable contacts less often, or by polling less often (perhaps not at all) if we're confident that contacts can connect to us when they come online (ie if our hidden service is reachable).
For short-range transports, polling contacts in a batch may use less battery than polling them at contact-specific intervals. It may be possible to meet the needs of Tor and short-range transports by polling in batches, but not including unreachable contacts in every batch.https://code.briarproject.org/briar/briar-desktop/-/issues/153Investigate Compose `State` thread-safety2023-01-31T08:46:31ZMikolai GütschowInvestigate Compose `State` thread-safetyIt doesn't state anything in the [official docs](https://developer.android.com/reference/kotlin/androidx/compose/runtime/MutableState), but according to [this blog post](https://dev.to/zachklipp/a-historical-introduction-to-the-compose-r...It doesn't state anything in the [official docs](https://developer.android.com/reference/kotlin/androidx/compose/runtime/MutableState), but according to [this blog post](https://dev.to/zachklipp/a-historical-introduction-to-the-compose-reactive-state-model-19j8#snapshot-state-thread-safety), accessing states concurrently from different threads should be no problem. If that is true, we can use compose state values directly from within `runOnDbThread` and friends.
Related to https://code.briarproject.org/briar/briar-desktop/-/merge_requests/55#note_57632.https://code.briarproject.org/briar/briar-desktop/-/issues/152Move test data creation to db thread2022-04-03T10:36:39ZSebastianMove test data creation to db threadhttps://code.briarproject.org/briar/briar-desktop/-/issues/151Reduce space requirements for GitLab CI2022-04-03T10:36:40ZNicoReduce space requirements for GitLab CIAnother pipeline failed because the CI runner ran out of space. Quoting @grote:
> yeah the server is out of space again, this was quick
>
> There's a runner caches with 21 GB, 15 GB, 11 GB, etc.
>
> The 21 GB one is for briar-desktop wh...Another pipeline failed because the CI runner ran out of space. Quoting @grote:
> yeah the server is out of space again, this was quick
>
> There's a runner caches with 21 GB, 15 GB, 11 GB, etc.
>
> The 21 GB one is for briar-desktop where each branch takes up more than 642M, the nightly builds 1.3GBhttps://code.briarproject.org/briar/briar/-/issues/2238Upgrade h22023-09-07T14:13:30ZSebastianUpgrade h2While working on https://code.briarproject.org/briar/briar-mailbox/-/merge_requests/46 we discovered some things relevant to upgrading H2 in briarWhile working on https://code.briarproject.org/briar/briar-mailbox/-/merge_requests/46 we discovered some things relevant to upgrading H2 in briarhttps://code.briarproject.org/briar/briar-desktop/-/issues/149Emoji picker2022-04-03T10:36:40ZSebastianEmoji pickerWe probably need an emoji picker otherwise it's going to be difficult to add those with a regular keyboard.We probably need an emoji picker otherwise it's going to be difficult to add those with a regular keyboard.https://code.briarproject.org/briar/briar-desktop/-/issues/143Find way to maybe not have additional main() methods in production code for U...2022-04-03T10:36:41ZSebastianFind way to maybe not have additional main() methods in production code for UI testingRelated to !61Related to !61https://code.briarproject.org/briar/briar/-/issues/2237Pending contact list doesn't show "No internet connection" if list contains f...2021-12-01T10:43:02ZakwizgranPending contact list doesn't show "No internet connection" if list contains failed pending contactsIf the pending contact list contains a mixture of failed and not-failed pending contacts, the "No internet connection" snackbar isn't shown when the device is offline. If the failed pending contacts are removed, leaving only not-failed o...If the pending contact list contains a mixture of failed and not-failed pending contacts, the "No internet connection" snackbar isn't shown when the device is offline. If the failed pending contacts are removed, leaving only not-failed ones, the snackbar appears.https://code.briarproject.org/briar/briar/-/issues/2236Contact list doesn't scroll to top after adding contact2021-11-30T12:19:21ZakwizgranContact list doesn't scroll to top after adding contactA user reported that the contact list doesn't scroll to the top after adding a contact, so the new contact isn't visible. This makes it unclear whether the contact was added or not.
Similarly, the list doesn't scroll to the top after re...A user reported that the contact list doesn't scroll to the top after adding a contact, so the new contact isn't visible. This makes it unclear whether the contact was added or not.
Similarly, the list doesn't scroll to the top after returning from a private conversation. If messages have been sent or received in the conversation, moving it to the top of the list, then it may no longer be visible when returning to the contact list.https://code.briarproject.org/briar/briar/-/issues/2235"Contact deleted" toast is not shown2021-11-30T12:16:54Zakwizgran"Contact deleted" toast is not shownA user reported that the "contact deleted" toast was not shown after deleting a contact. (The pending contacts snackbar was visible, in case that's relevant.)A user reported that the "contact deleted" toast was not shown after deleting a contact. (The pending contacts snackbar was visible, in case that's relevant.)https://code.briarproject.org/briar/briar/-/issues/2227some RSS feeds are not detected2022-02-28T22:03:08ZJeremie Larivieresome RSS feeds are not detectedBriar gives an error when importing Some feeds, specifically several on Substack, e.g. https://edwardsnowden.substack.com/ or https://cryptobeat.substack.com/.
Substack seems to have /feed , /feed.xml , /feed.rss , and none of those wo...Briar gives an error when importing Some feeds, specifically several on Substack, e.g. https://edwardsnowden.substack.com/ or https://cryptobeat.substack.com/.
Substack seems to have /feed , /feed.xml , /feed.rss , and none of those work for me in Briar. Substack's support said I should reach out to Briar since the substack feeds work in other readers they tried.
I haven't had an error on other feeds I've tried, it imports both RSS & Atom from Tails' blog (https://tails.boum.org/news/index.en.rss or https://tails.boum.org/news/index.en.atom)
It also works with Signal & FlowCrypt's blogs (https://signal.org/blog/rss.xml and https://flowcrypt.com/blog/feed.xml).https://code.briarproject.org/briar/briar/-/issues/2224briar doesn't build with JDK 172022-06-20T18:12:14ZSebastianbriar doesn't build with JDK 17Running the tests reveals a few problemsRunning the tests reveals a few problemshttps://code.briarproject.org/briar/tor-reproducer/-/issues/5Properly handle enviroment variables2022-04-03T10:52:06ZNicoProperly handle enviroment variablesThis script is growing bigger and bigger and while working on !17 I noticed that the environment variables from the Linux build are causing the Windows build to fail, because `os.environ.copy()` doesn't seem to do what it pretends to do....This script is growing bigger and bigger and while working on !17 I noticed that the environment variables from the Linux build are causing the Windows build to fail, because `os.environ.copy()` doesn't seem to do what it pretends to do. I.e., we still modify the original environment variables after the copy and thus I now manually pop them after each build (15971b47a2c7b7f01abb422b42dd0cc75f7a8045).
Since this is quite ugly, we should do something better in the future.
There are simple helper functions [like this one](https://gist.github.com/igniteflow/7267431#gistcomment-2551951) which would allow us to really only temporary set environment variables, but since this would require larger architectural changes, I didn't do it yet. Especially given that we might use official Tor binaries soon anyway.https://code.briarproject.org/briar/briar/-/issues/2223Improve cleanup after lifecycle startup errors2021-11-17T15:50:26ZakwizgranImprove cleanup after lifecycle startup errorsLifecycleManager#startServices() can return various error values. Currently the Android app doesn't call stopServices() unless startup succeeded, whereas the headless app calls stopServices() regardless.
If the system clock is unreasona...LifecycleManager#startServices() can return various error values. Currently the Android app doesn't call stopServices() unless startup succeeded, whereas the headless app calls stopServices() regardless.
If the system clock is unreasonable, LifecycleManagerImpl#startServices() doesn't release the startStopSemaphore before returning, so stopServices() will block indefinitely - but the semaphore is released in the case of other errors.
We should tidy all of this up so that either stopServices() doesn't need to be called if startup fails, or so that it can be called safely and without blocking indefinitely, and so that services and the DB have a clear contract for whether they will be started and/or stopped if an error happens.
Related to #2222.https://code.briarproject.org/briar/briar/-/issues/2220GroupCount contains wrong timestamp for test data2021-12-03T12:17:34ZMikolai GütschowGroupCount contains wrong timestamp for test dataRoot cause of https://code.briarproject.org/briar/briar-desktop/-/issues/103
The `conversationManager.getGroupCount()` always returns a group count with the current time as timestamp, even if the newest message is generated as being sen...Root cause of https://code.briarproject.org/briar/briar-desktop/-/issues/103
The `conversationManager.getGroupCount()` always returns a group count with the current time as timestamp, even if the newest message is generated as being sent/received in the past.
This can be reproduced by changing line 344 of `TestDataCreatorImpl.java` as follows:
```diff
- long timestamp = clock.currentTimeMillis() - num * 60 * 1000;
+ long timestamp = clock.currentTimeMillis() - num * 60 * 1000 - 24 * 60 * 60 * 1000;
```
Starting the Android app and creating test data results in the following screens: The contact list shows "now" despite the last message being sent/received exactly one day ago.
![Screenshot_1636666735](/uploads/081efea134b2e86d257d8c9191cd56ef/Screenshot_1636666735.png)
![Screenshot_1636666744](/uploads/66d5406e095842458c2c014e15585ad9/Screenshot_1636666744.png)https://code.briarproject.org/briar/briar/-/issues/2216SecurityException: Permission Denial for MANAGE_DOCUMENTS2021-11-11T16:04:24ZakwizgranSecurityException: Permission Denial for MANAGE_DOCUMENTSThis looks similar to #2143 and may be the same device as https://code.briarproject.org/briar/briar/-/issues/2143#note_56595, but with a different stacktrace.
* Android version: 5.1
* Phone model: Meizu M3s
* Briar version: 1.3.8 (80767...This looks similar to #2143 and may be the same device as https://code.briarproject.org/briar/briar/-/issues/2143#note_56595, but with a different stacktrace.
* Android version: 5.1
* Phone model: Meizu M3s
* Briar version: 1.3.8 (8076775)
* User feedback: "I uploaded a JPG photo, crashed."
Stacktrace:
```
java.lang.SecurityException: Permission Denial: opening provider com.android.providers.media.MediaDocumentsProvider from ProcessRecord{127a6dac 23863:org.briarproject.briar.android/u0a98} (pid=23863, uid=10098) requires android.permission.MANAGE_DOCUMENTS or android.permission.MANAGE_DOCUMENTS
at android.os.Parcel.readException(Parcel.java:1546)
at android.os.Parcel.readException(Parcel.java:1499)
at android.app.ActivityManagerProxy.getContentProvider(ActivityManagerNative.java:3579)
at android.app.ActivityThread.acquireProvider(ActivityThread.java:5203)
at android.app.ContextImpl$ApplicationContentResolver.acquireUnstableProvider(ContextImpl.java:2657)
at android.content.ContentResolver.acquireUnstableProvider(ContentResolver.java:1500)
at android.content.ContentResolver.openTypedAssetFileDescriptor(ContentResolver.java:1106)
at android.content.ContentResolver.openAssetFileDescriptor(ContentResolver.java:946)
at android.content.ContentResolver.openInputStream(ContentResolver.java:671)
at org.briarproject.briar.android.attachment.AttachmentCreationTask.storeAttachment(AttachmentCreationTask.java:103)
at org.briarproject.briar.android.attachment.AttachmentCreationTask.processUri(AttachmentCreationTask.java:79)
at org.briarproject.briar.android.attachment.AttachmentCreationTask.storeAttachments(AttachmentCreationTask.java:68)
at org.briarproject.briar.android.attachment.AttachmentCreatorImpl.lambda$null$0(AttachmentCreatorImpl.java:94)
at org.briarproject.briar.android.attachment.AttachmentCreatorImpl.lambda$null$0$AttachmentCreatorImpl(AttachmentCreatorImpl.java)
at org.briarproject.briar.android.attachment.-$$Lambda$AttachmentCreatorImpl$buxZfdoUf6j50-ilIY-ZnTGRVoE.run(lambda)
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)
```https://code.briarproject.org/briar/briar/-/issues/2213Feature request: Messages export ability supply users with endurance and dura...2022-02-16T13:50:27Zi iFeature request: Messages export ability supply users with endurance and durabilityIs there a way to export messages to csv file? or some way to copy the encrypted db and decrypt on a computer in order to create a csv ?
if for some reason i know my phone is about to be crashed or taken away, I would like a way to pass...Is there a way to export messages to csv file? or some way to copy the encrypted db and decrypt on a computer in order to create a csv ?
if for some reason i know my phone is about to be crashed or taken away, I would like a way to pass all messages to a usb key or something usable with the data from important messages.
is there some way to do such a thing?
nowdays there are many apps that offer security and privacy but not much that offer the possibility of all messages in a csv.
Of the security apps that are of interest to me and many others, that's the staus for the moment:
* Signal - gives an option to backup and decrypt the backup on a pc ,
* Session- doesnt give any option to export messages ,
* Briar - doesnt give any option to export messages,
Other apps - not so secure so its irrelvant
Thanks so much