briar issueshttps://code.briarproject.org/groups/briar/-/issues2022-05-16T13:59:16Zhttps://code.briarproject.org/briar/briar/-/issues/2277ActivityNotFoundException for GET_CONTENT intent2022-05-16T13:59:16ZakwizgranActivityNotFoundException for GET_CONTENT intentLooks similar to #2214 and #2097.
* Android version: 11
* Phone model: Samsung SM-A125F (a12nnxx)
* Briar version: 1.4.1 (6517f3f)
Stacktrace:
```
android.content.ActivityNotFoundException: No Activity found to handle Intent { act=andr...Looks similar to #2214 and #2097.
* Android version: 11
* Phone model: Samsung SM-A125F (a12nnxx)
* Briar version: 1.4.1 (6517f3f)
Stacktrace:
```
android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.GET_CONTENT cat=[android.intent.category.OPENABLE] typ=image/* (has extras) }
at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:2080)
at android.app.Instrumentation.execStartActivity(Instrumentation.java:1727)
at android.app.Activity.startActivityForResult(Activity.java:5377)
at androidx.activity.ComponentActivity.startActivityForResult(ComponentActivity.java:574)
at androidx.core.app.ActivityCompat.startActivityForResult(ActivityCompat.java:234)
at androidx.activity.ComponentActivity$2.onLaunch(ComponentActivity.java:208)
at androidx.activity.result.ActivityResultRegistry$2.launch(ActivityResultRegistry.java:166)
at androidx.fragment.app.Fragment$9.launch(Fragment.java:3510)
at androidx.activity.result.ActivityResultLauncher.launch(ActivityResultLauncher.java:47)
at org.briarproject.briar.android.settings.SettingsFragment.lambda$onCreatePreferences$0(SettingsFragment.java:66)
at org.briarproject.briar.android.settings.SettingsFragment.lambda$onCreatePreferences$0$SettingsFragment(Unknown Source:0)
at org.briarproject.briar.android.settings.-$$Lambda$SettingsFragment$aLVt4dIN9PUOagzsIXcpqTymkBo.onPreferenceClick(Unknown Source:2)
at androidx.preference.Preference.performClick(Preference.java:1184)
at androidx.preference.Preference.performClick(Preference.java:1166)
at androidx.preference.Preference$1.onClick(Preference.java:181)
at android.view.View.performClick(View.java:8160)
at android.view.View.performClickInternal(View.java:8137)
at android.view.View.access$3700(View.java:888)
at android.view.View$PerformClick.run(View.java:30236)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:246)
at android.app.ActivityThread.main(ActivityThread.java:8528)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:602)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1130)
```Android 1.4akwizgranakwizgranhttps://code.briarproject.org/briar/briar-desktop/-/issues/336UI thread is blocked when display goes into power saving mode2022-05-16T06:36:11ZakwizgranUI thread is blocked when display goes into power saving modeThis sounds insane, so bear with me.
When sending a message from Briar Android to Briar Desktop, Android shows the message as sent and acked immediately, as expected. But when the desktop's screen is locked it takes several minutes for ...This sounds insane, so bear with me.
When sending a message from Briar Android to Briar Desktop, Android shows the message as sent and acked immediately, as expected. But when the desktop's screen is locked it takes several minutes for Android to show the message as sent, and several more minutes to show it as acked.
To check that my laptop wasn't suspending when the screen was locked, I added some debugging code to log a message once per second. The messages were logged regularly, confirming that the laptop wasn't suspending.
Then I modified the debugging code to also post a task to the EventExecutor once per second to log a message on the UI thread. When the screen was locked, the messages from the background thread continued to be logged, but the messages from the UI thread didn't. The tasks posted to the UI thread didn't run until the screen was unlocked, at which point all the tasks ran in quick succession. It seems that the UI thread is blocked while the screeen is locked.
Why does this cause problems for message sync? Because events are delivered on the UI thread. When the UI thread is blocked, no events are delivered, so the sync session doesn't properly react to records received from the Android peer.
The Android peer offers the message and the desktop peer receives the offer, but due to events not being delivered it doesn't send a request. Eventually, by chance, the Android peer briefly loses connectivity, the connection is lost and a new connection is made. The desktop peer's UI thread is still blocked, but the new sync session finds the offered message ID in the DB and sends a request without needing to use any events. The Android peer responds by sending the message. The desktop peer stores the message and marks it as needing an ack, but due to events not being delivered, it doesn't immediately send an ack. Eventually the Android peer loses connectivity again, another new connection is made, the desktop peer's new sync session finds that the message still needs an ack, and it sends one.
I'm using XFCE and XOrg on Debian Buster, with xflock4 for screen locking. I'd be interested to know whether it's possible to reproduce the bug on other setups.https://code.briarproject.org/briar/briar/-/issues/1192Chat resets to top not bottom.2022-05-14T16:34:26ZPratiwirChat resets to top not bottom.In a briar beta chat if I send an emoticon smiley then hit the keyboard symbol to use characters the chat resets to the top and I have to scroll all the way down to the end. It should be positioned at the end after using the keyboard sym...In a briar beta chat if I send an emoticon smiley then hit the keyboard symbol to use characters the chat resets to the top and I have to scroll all the way down to the end. It should be positioned at the end after using the keyboard symbol.https://code.briarproject.org/briar/briar-desktop/-/issues/347Update Briar core to latest release2022-05-12T19:51:22ZMikolai GütschowUpdate Briar core to latest releaseWe are currently based on a commit somewhere between 1.4.4 and 1.4.5. Current version is 1.4.6, 1.4.7 is already in beta.We are currently based on a commit somewhere between 1.4.4 and 1.4.5. Current version is 1.4.6, 1.4.7 is already in beta.Desktop 0.3.0https://code.briarproject.org/briar/website/-/issues/38Show current version on Briar Desktop download page2022-05-11T15:02:06ZMikolai GütschowShow current version on Briar Desktop download pageProbably similar to how it is shown on the main page for Briar Android:
> Latest Release: Briar 1.4.4 (9 February 2022)Probably similar to how it is shown on the main page for Briar Android:
> Latest Release: Briar 1.4.4 (9 February 2022)Desktop 0.2.1Mikolai GütschowMikolai Gütschowhttps://code.briarproject.org/briar/briar-desktop/-/issues/357Error displayed on console after exiting application2022-05-11T14:59:47ZSebastianError displayed on console after exiting applicationWhen I launch the app as installed via the `*.deb` file, after exiting the application I see this output:
```
pure virtual method called
terminate called without an active exception
Aborted (core dumped)
```
Even when no AWT window is ...When I launch the app as installed via the `*.deb` file, after exiting the application I see this output:
```
pure virtual method called
terminate called without an active exception
Aborted (core dumped)
```
Even when no AWT window is being displayed, i.e. also for `briar-desktop --help`.
It doesn't happen when I run the app using the jar with OpenJDK 17 and `java -jar briar-desktop.jar`.
So it might have to do with the native executable and the JRE shipped withe the debian package built by jpackage.https://code.briarproject.org/briar/briar/-/issues/2312Briar fails to start if clock was unreasonably wrong on first run2022-05-11T14:23:37ZakwizgranBriar fails to start if clock was unreasonably wrong on first runSteps to reproduce:
* If a Briar account exists, delete it
* Set the system clock to a date before 1 Jan 2021
* Launch Briar and create an account
* Briar will show the startup failure screen due to the clock being wrong
* Set the system...Steps to reproduce:
* If a Briar account exists, delete it
* Set the system clock to a date before 1 Jan 2021
* Launch Briar and create an account
* Briar will show the startup failure screen due to the clock being wrong
* Set the system clock to the right date
* Launch Briar again
* The password screen will be shown
* Enter the password
* Briar will show the startup failure screen, saying the database is corrupt
Log snippet from the second run (after correcting the clock):
```
2022-04-27 08:54:55.872 22506-22542/org.briarproject.briar.android.debug I/H2Database: Contents of account directory before opening DB:
2022-04-27 08:54:55.872 22506-22542/org.briarproject.briar.android.debug I/H2Database: D /data/data/org.briarproject.briar.android.debug 4096
2022-04-27 08:54:55.872 22506-22542/org.briarproject.briar.android.debug I/H2Database: D /data/data/org.briarproject.briar.android.debug/lib 4096
2022-04-27 08:54:55.882 22506-22542/org.briarproject.briar.android.debug I/H2Database: F /data/data/org.briarproject.briar.android.debug/lib/libobfs4proxy.so 6481961
2022-04-27 08:54:55.882 22506-22542/org.briarproject.briar.android.debug I/H2Database: F /data/data/org.briarproject.briar.android.debug/lib/libtor.so 5957620
2022-04-27 08:54:55.882 22506-22542/org.briarproject.briar.android.debug I/H2Database: D /data/data/org.briarproject.briar.android.debug/cache 4096
2022-04-27 08:54:55.882 22506-22542/org.briarproject.briar.android.debug I/H2Database: D /data/data/org.briarproject.briar.android.debug/cache/com.android.renderscript.cache 4096
2022-04-27 08:54:55.882 22506-22542/org.briarproject.briar.android.debug I/H2Database: D /data/data/org.briarproject.briar.android.debug/shared_prefs 4096
2022-04-27 08:54:55.892 22506-22542/org.briarproject.briar.android.debug I/H2Database: F /data/data/org.briarproject.briar.android.debug/shared_prefs/org.briarproject.briar.android.debug_preferences.xml 115
2022-04-27 08:54:55.892 22506-22542/org.briarproject.briar.android.debug I/H2Database: F /data/data/org.briarproject.briar.android.debug/shared_prefs/_has_set_default_values.xml 126
2022-04-27 08:54:55.892 22506-22542/org.briarproject.briar.android.debug I/H2Database: F /data/data/org.briarproject.briar.android.debug/shared_prefs/db.xml 65
2022-04-27 08:54:55.892 22506-22542/org.briarproject.briar.android.debug I/H2Database: D /data/data/org.briarproject.briar.android.debug/app_key 4096
2022-04-27 08:54:55.892 22506-22542/org.briarproject.briar.android.debug I/H2Database: F /data/data/org.briarproject.briar.android.debug/app_key/db.key.bak 218
2022-04-27 08:54:55.892 22506-22542/org.briarproject.briar.android.debug I/H2Database: F /data/data/org.briarproject.briar.android.debug/app_key/db.key 218
2022-04-27 08:54:55.902 22506-22542/org.briarproject.briar.android.debug I/H2Database: D /data/data/org.briarproject.briar.android.debug/app_db 4096
2022-04-27 08:54:55.902 22506-22542/org.briarproject.briar.android.debug I/H2Database: D /data/data/org.briarproject.briar.android.debug/app_tor 4096
2022-04-27 08:54:55.902 22506-22542/org.briarproject.briar.android.debug I/H2Database: Reopening DB: false
```
Stacktrace:
```
2022-04-27 08:55:00.046 22506-22542/org.briarproject.briar.android.debug W/LifecycleManagerImpl: org.briarproject.bramble.api.db.DbException
org.briarproject.bramble.api.db.DbException
at org.briarproject.bramble.identity.IdentityManagerImpl.loadIdentityWithKeyPair(IdentityManagerImpl.java:159)
at org.briarproject.bramble.identity.IdentityManagerImpl.getCachedIdentity(IdentityManagerImpl.java:147)
at org.briarproject.bramble.identity.IdentityManagerImpl.onDatabaseOpened(IdentityManagerImpl.java:95)
at org.briarproject.bramble.lifecycle.LifecycleManagerImpl.lambda$startServices$0(LifecycleManagerImpl.java:129)
at org.briarproject.bramble.lifecycle.LifecycleManagerImpl.$r8$lambda$R30tTgoiROvN8ROsUbPogFK9rjY(LifecycleManagerImpl.java)
at org.briarproject.bramble.lifecycle.LifecycleManagerImpl$$ExternalSyntheticLambda0.run(Unknown Source)
at org.briarproject.bramble.db.DatabaseComponentImpl.transaction(DatabaseComponentImpl.java:200)
at org.briarproject.bramble.lifecycle.LifecycleManagerImpl.startServices(LifecycleManagerImpl.java:123)
at org.briarproject.briar.android.BriarService.lambda$onCreate$0(BriarService.java:141)
at org.briarproject.briar.android.BriarService.$r8$lambda$HDU85pNkqbcIvjlH9WM8JDDv2bo(BriarService.java)
at org.briarproject.briar.android.BriarService$$ExternalSyntheticLambda5.run(Unknown Source)
at org.briarproject.bramble.system.AndroidWakeLockManagerImpl.lambda$executeWakefully$1(AndroidWakeLockManagerImpl.java:95)
at org.briarproject.bramble.system.AndroidWakeLockManagerImpl.$r8$lambda$HU3N-m0ADiLNH1gKAKkCiyTw2fM(AndroidWakeLockManagerImpl.java)
at org.briarproject.bramble.system.AndroidWakeLockManagerImpl$$ExternalSyntheticLambda0.run(Unknown Source)
at java.lang.Thread.run(Thread.java:856)
```
It looks like the DB key was saved on the first run but the DB wasn't created. On the second run we assumed an identity had already been created so we didn't store one, and then we got an exception when trying to load an identity from the newly created DB.Android 1.4https://code.briarproject.org/briar/briar-desktop/-/issues/356Briar Core version for BuildData is not recognized correctly2022-05-11T12:21:39ZMikolai GütschowBriar Core version for BuildData is not recognized correctlyRight now we just take the last available release tag, instead of the last release tag that is a predecessor of the current commit.Right now we just take the last available release tag, instead of the last release tag that is a predecessor of the current commit.Desktop 0.3.0https://code.briarproject.org/briar/briar-desktop/-/issues/345Expiration Banner hide animation shows white background even on black theme2022-05-11T08:01:13ZMikolai GütschowExpiration Banner hide animation shows white background even on black themeWe probably have to check that we set the background color at the highest possible node in the UI tree.
![vlcsnap-2022-05-03-18h30m53s761](/uploads/7b053925d4dbdd5ad94a698f35236746/vlcsnap-2022-05-03-18h30m53s761.png)We probably have to check that we set the background color at the highest possible node in the UI tree.
![vlcsnap-2022-05-03-18h30m53s761](/uploads/7b053925d4dbdd5ad94a698f35236746/vlcsnap-2022-05-03-18h30m53s761.png)Desktop 0.2.1Mikolai GütschowMikolai Gütschowhttps://code.briarproject.org/briar/briar-desktop/-/issues/348AddContactDialog: display error on link input if link not in correct format2022-05-11T06:57:46ZSebastianAddContactDialog: display error on link input if link not in correct formatWhile testing !202 I noticed we don't set the `isError` property of the input field for the contact's link. I think that would be useful to make the user aware of invalid format before confirming the dialog.While testing !202 I noticed we don't set the `isError` property of the input field for the contact's link. I think that would be useful to make the user aware of invalid format before confirming the dialog.https://code.briarproject.org/briar/briar-desktop/-/issues/148Raise translation limit for inclusion in release2022-05-10T20:35:30ZMikolai GütschowRaise translation limit for inclusion in releaseFollow-up of !59
> We shouldn't include every single translation language, since some of them have only a few percent of our strings translated.
>
> I chose 50% as a limit for now, which I also used for GTK iirc. Later on we should prob...Follow-up of !59
> We shouldn't include every single translation language, since some of them have only a few percent of our strings translated.
>
> I chose 50% as a limit for now, which I also used for GTK iirc. Later on we should probably increase this. The Localization Lab people recommend 100% and reviewed, but I find this too harsh, given that it's all run by volunteers. Briar Android is using 80%, iirc, which sounds like a good choice for a first stable release.Desktop 0.4.0https://code.briarproject.org/briar/briar-desktop/-/issues/313Release 0.2.0-beta2022-05-10T20:06:21ZNicoRelease 0.2.0-beta* [x] Change version in build config (!187)
* [x] Update translations
* [x] Tag in Git
* [x] Update changelog
* [x] Build release files with GitLab CI (https://code.briarproject.org/briar/briar-desktop/-/pipelines/10047)
* [x] Copy relea...* [x] Change version in build config (!187)
* [x] Update translations
* [x] Tag in Git
* [x] Update changelog
* [x] Build release files with GitLab CI (https://code.briarproject.org/briar/briar-desktop/-/pipelines/10047)
* [x] Copy release files to desktop.briarproject.org
* [x] Check that permalink points to correct version
* [x] Inform 3rd party maintainers about release
* [x] Update hashsums on website (https://code.briarproject.org/briar/website/-/merge_requests/84)
* [x] Post on social media ([Mastodon](https://fosstodon.org/@briar/107846586715214487), [Twitter](https://twitter.com/BriarApp/status/1496415321615486982))Desktop 0.2.0NicoNicohttps://code.briarproject.org/briar/dont-kill-me-lib/-/issues/2Research whether interpolating app names into library strings would cause loc...2022-05-05T16:03:09ZakwizgranResearch whether interpolating app names into library strings would cause localisation issueshttps://code.briarproject.org/briar/briar/-/merge_requests/1636#note_65779https://code.briarproject.org/briar/briar/-/merge_requests/1636#note_65779https://code.briarproject.org/briar/briar/-/issues/2317Restarting app quickly after startup failure sometimes does not work2022-05-04T10:43:53ZSebastianRestarting app quickly after startup failure sometimes does not workhttps://code.briarproject.org/briar/briar-desktop/-/issues/213Use system's default theme color by default2022-05-03T16:44:51ZNicoUse system's default theme color by defaultIn !49 we allowed people to switch themes (or rather implemented a more beautiful UI for it), but in #212 we realized that this setting doesn't stick. This made me think that by default we should be using our desktop environment's defaul...In !49 we allowed people to switch themes (or rather implemented a more beautiful UI for it), but in #212 we realized that this setting doesn't stick. This made me think that by default we should be using our desktop environment's default color theme, which is at least possible on GTK with dark/light.https://code.briarproject.org/briar/briar-desktop/-/issues/344Hidden expiration banner is displayed again when changing language/theme2022-05-03T15:48:13ZMikolai GütschowHidden expiration banner is displayed again when changing language/themeSince we are invalidating the whole screen, the hidden banner state is lost.Since we are invalidating the whole screen, the hidden banner state is lost.https://code.briarproject.org/briar/briar-desktop/-/issues/342Briar Desktop Usability Audit2022-05-03T14:59:57ZElio Qoshielio@ura.designBriar Desktop Usability AuditWe worked with Kay from Blickwinkel Digital, an external UX expert group who tested Briar Desktop as part of their Usability Audit according to ISO 9241-110.They have been immensely helpful in identifying common usability issues on the B...We worked with Kay from Blickwinkel Digital, an external UX expert group who tested Briar Desktop as part of their Usability Audit according to ISO 9241-110.They have been immensely helpful in identifying common usability issues on the Briar Desktop app. As someone without prior experiences with Briar, their insights were refreshing and much needed after we ourselves have worked with Briar over 4 years. As part of this collaboration we produced a PDF presentation including over 17 UX issues identified by Blickwinkel (including commentary from our side for further context) as well additional 8 issues identified by our Lead UX Researcher, Renata according to the UX Heuristics framework by Nielsen Norman Group.
![image](/uploads/4e87ec2fe74911cb7fd63a8ae77d58fb/image.png)
In a similar manner to the accessibility audit, the usability audit includes an issue description, an annotated screenshot, a recommendation, the severity as well as the criteria/heuristics being violated in this case.
Majority of the review has been conducted on a Mac M1 (with apparently an older version of Briar Desktop), though most things apply on both versions.
Presentation:
https://docs.google.com/presentation/d/1tDmSPzW26luF3ySaGUwbNelhvkRwXAFJ/edit?usp=sharing&ouid=100104676494073512080&rtpof=true&sd=true
[Briar_Desktop_Usability_Audit.pdf](/uploads/78097e2dcba23fe82e2fd0384041ad14/Briar_Desktop_Usability_Audit.pdf)Desktop 1.0.0SebastianSebastianhttps://code.briarproject.org/briar/briar-desktop/-/issues/318Add option to hide expiry warning banner2022-05-03T14:50:39ZSebastianAdd option to hide expiry warning bannerWe want to keep the expiry banner #183 for now, but some users have given the feedback that it's annoying. I think we already discussed some time ago that it might be a good middle ground to offer an option to hide it and that it would r...We want to keep the expiry banner #183 for now, but some users have given the feedback that it's annoying. I think we already discussed some time ago that it might be a good middle ground to offer an option to hide it and that it would reappear after a certain time, for example 24 hours.Desktop 0.2.1Altynbek NurtazaAltynbek Nurtazahttps://code.briarproject.org/briar/briar-desktop/-/issues/334Consider builds for Debian oldstable (10 / Buster)2022-05-03T02:08:46ZSebastianConsider builds for Debian oldstable (10 / Buster)There might still be a number of distros with their latest version based on that version of Debian.
A known example is Deepin 20.5, release 1st of April 2022.
Maybe we should get an overview over significant distros still based on olds...There might still be a number of distros with their latest version based on that version of Debian.
A known example is Deepin 20.5, release 1st of April 2022.
Maybe we should get an overview over significant distros still based on oldstable.https://code.briarproject.org/briar/briar/-/issues/2173Implement UI for unpairing the mailbox2022-05-02T16:06:37ZakwizgranImplement UI for unpairing the mailboxDepends on briar-mailbox#3, briar-mailbox#62, #2164.Depends on briar-mailbox#3, briar-mailbox#62, #2164.Mailbox: UnpairingTorsten GroteTorsten Grote