briar issueshttps://code.briarproject.org/groups/briar/-/issues2022-08-17T12:53:42Zhttps://code.briarproject.org/briar/briar/-/issues/2351Add privacy policy to "about" screen2022-08-17T12:53:42ZakwizgranAdd privacy policy to "about" screenGoogle's user data policy requires apps to contain a link to the developer's privacy policy. We should add this link to the about screen, and maybe also to the crash report and feedback screens (since those are the only places where data...Google's user data policy requires apps to contain a link to the developer's privacy policy. We should add this link to the about screen, and maybe also to the crash report and feedback screens (since those are the only places where data is sent to us).Android 1.4https://code.briarproject.org/briar/briar/-/issues/2344Upgrade obfs4proxy to 0.0.142022-09-26T11:50:08ZakwizgranUpgrade obfs4proxy to 0.0.14Android 1.4Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/2340Crash when unlinking briar and mailbox + wifi off2022-07-13T11:06:13ZIvanaCrash when unlinking briar and mailbox + wifi offSteps to reproduce
- in Briar go to settings and open the Mailbox status screen
- If mailbox is running, on this status screen tap on Unlink.
- a Dialogue box will come up asking the user to confirm the unlinking
![device-2022-06-21-1...Steps to reproduce
- in Briar go to settings and open the Mailbox status screen
- If mailbox is running, on this status screen tap on Unlink.
- a Dialogue box will come up asking the user to confirm the unlinking
![device-2022-06-21-124944](/uploads/85ad8fb287e6d27e0214553fec9914cd/device-2022-06-21-124944.png)
- before tapping on Unlink on this dialogue box, go to the device settings and switch the wifi off
- Then return to Briar and tap on the unlink that is still showing in the dialogue box
Expected results
- Briar should handle it gracefully and continue the unlinking process either frm teh dialogue box or from the status screen
Actual results
- Briar crashes when I tap on unlink on the dialogue box
[Briar_crash_unlink_and_wifi_off_2_210622.txt](/uploads/3478fd3a1ab67f25be67f9f23f125e5b/Briar_crash_unlink_and_wifi_off_2_210622.txt)
[Briar_crash_unlink_and_wifi_off_210622.txt](/uploads/dcfd926ad20cc2f7a6ed777c822c9d7f/Briar_crash_unlink_and_wifi_off_210622.txt)
I also sent reports from the device itself. I used Pixel 2 phone.
A bit of a corner case, true, and not very probable in reality... so not the highest priorityMailbox: UnpairingIvanaIvanahttps://code.briarproject.org/briar/briar/-/issues/2338Building headless platform jars should depend on jar task2022-07-13T11:16:37ZSebastianBuilding headless platform jars should depend on jar taskI think the tasks created using `jarFactory` such as `x86LinuxJar` and `windowsJar` should depend on the jar task.
Otherwise, if not building the jars using an additional clean target (e.g. `./gradlew clean windowsJar`), it will use a p...I think the tasks created using `jarFactory` such as `x86LinuxJar` and `windowsJar` should depend on the jar task.
Otherwise, if not building the jars using an additional clean target (e.g. `./gradlew clean windowsJar`), it will use a potentially outdated jar for producing the platform jar.Android 1.4https://code.briarproject.org/briar/briar/-/issues/2330NPE when getting IPv6 address for network interface2023-09-06T15:37:00ZakwizgranNPE when getting IPv6 address for network interface* Android version: 11
* Phone model: OnePlus HD1903 (OnePlus7T)
* Briar version: 1.4.6 (d5e17c8)
Stacktrace:
```
java.lang.NullPointerException: Attempt to read from field 'java.util.List java.net.NetworkInterface.childs' on a null obje...* Android version: 11
* Phone model: OnePlus HD1903 (OnePlus7T)
* Briar version: 1.4.6 (d5e17c8)
Stacktrace:
```
java.lang.NullPointerException: Attempt to read from field 'java.util.List java.net.NetworkInterface.childs' on a null object reference
at java.net.NetworkInterface.getAll(NetworkInterface.java:498)
at java.net.NetworkInterface.getByInetAddress(NetworkInterface.java:365)
at org.briarproject.bramble.plugin.tcp.AndroidLanTcpPlugin.getIpv6AddressForInterface(AndroidLanTcpPlugin.java:199)
at org.briarproject.bramble.plugin.tcp.AndroidLanTcpPlugin.getWifiAddress(AndroidLanTcpPlugin.java:125)
at org.briarproject.bramble.plugin.tcp.AndroidLanTcpPlugin.getUsableLocalInetAddresses(AndroidLanTcpPlugin.java:110)
at org.briarproject.bramble.plugin.tcp.LanTcpPlugin.getLocalSocketAddresses(LanTcpPlugin.java:140)
at org.briarproject.bramble.plugin.tcp.TcpPlugin.bind(TcpPlugin.java:159)
at org.briarproject.bramble.plugin.tcp.TcpPlugin.lambda$bind$0(TcpPlugin.java:152)
at org.briarproject.bramble.plugin.tcp.TcpPlugin.$r8$lambda$IG7OujafuxmUKGD9Z35IgV8DTwo(Unknown Source:0)
at org.briarproject.bramble.plugin.tcp.TcpPlugin$$ExternalSyntheticLambda0.run(Unknown Source:2)
at org.briarproject.bramble.PoliteExecutor.lambda$execute$0(PoliteExecutor.java:57)
at org.briarproject.bramble.PoliteExecutor.$r8$lambda$wSvuPL6t_HUoaaqCVexrhJX_RSg(Unknown Source:0)
at org.briarproject.bramble.PoliteExecutor$$ExternalSyntheticLambda0.run(Unknown Source:6)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:923)
```Android 1.4https://code.briarproject.org/briar/briar-mailbox/-/issues/133Initialise last connection time during pairing2022-08-01T13:45:28ZakwizgranInitialise last connection time during pairingThe last connection time should be initialised during pairing, so that the status screen shows "Last connection: now" rather than "Last connection: never" immediately after pairing.The last connection time should be initialised during pairing, so that the status screen shows "Last connection: now" rather than "Last connection: never" immediately after pairing.Mailbox: Status UI for Mailbox appTorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/2329Translations for TrustIndicatorView trust levels2022-07-14T17:37:37Zjohndoe4221Translations for TrustIndicatorView trust levelsThe `TrustIndicatorView` can display 5 different trust levels:
- ANONYMOUS
- UNVERIFIED
- VERIFIED
- OURSELVES
- default
In order to implement features like #1052 and make the trust levels easier to understand we need descriptive trans...The `TrustIndicatorView` can display 5 different trust levels:
- ANONYMOUS
- UNVERIFIED
- VERIFIED
- OURSELVES
- default
In order to implement features like #1052 and make the trust levels easier to understand we need descriptive translations of trust levels and what they mean for a contact.
I suggest to create the translation keys:
- `contact_trust_level_anonymous`
- `contact_trust_level_unverified`
- `contact_trust_level_verified`
- `contact_trust_level_ourselves`
- `contact_trust_level_default`
The this can be used to show the symbolic trust level and the descriptive text side by side, e.g:
![trust_level_translation](/uploads/f7c70c4002729ffc3fbe5537b654b742/trust_level_translation.png)Android 1.4https://code.briarproject.org/briar/briar/-/issues/2326Briar's mailbox status screen should fetch the mailbox's supported API versions2022-06-14T12:29:48ZakwizgranBriar's mailbox status screen should fetch the mailbox's supported API versionsBriar's mailbox status screen uses the `status` API endpoint for its connectivity check. Let's use the `versions` endpoint instead, so that if we've warned the user that Briar and the Mailbox are using incompatible API versions, and the ...Briar's mailbox status screen uses the `status` API endpoint for its connectivity check. Let's use the `versions` endpoint instead, so that if we've warned the user that Briar and the Mailbox are using incompatible API versions, and the user has upgraded one of the apps to fix the issue, the user can use the "check connection" button in the status screen to check that the issue has been fixed.
(This is specifically needed for the case where the user has upgraded the Mailbox, because in the case where the user has upgraded Briar, Briar should automatically check the mailbox's API versions when it comes back online after upgrading.)Mailbox: Status UI for Briar appTorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar-mailbox/-/issues/126Potentially display special screen on status screen when last connection from...2022-07-13T11:01:42ZSebastianPotentially display special screen on status screen when last connection from owner was long agoMailbox: Status UI for Mailbox apphttps://code.briarproject.org/briar/briar/-/issues/2319Show warning if own mailbox's API version is incompatible2022-11-23T12:10:47ZakwizgranShow warning if own mailbox's API version is incompatibleShow a warning in the mailbox status screen if the API versions supported by our mailbox are incompatible with the versions we support as a client.
The warning could either ask the user to check that Briar and the Mailbox are updated to...Show a warning in the mailbox status screen if the API versions supported by our mailbox are incompatible with the versions we support as a client.
The warning could either ask the user to check that Briar and the Mailbox are updated to the latest version, or if we want to be clever we could work out which one needs to be updated and show an appropriate message.
Depends on #2299Mailbox: Status UI for Briar appTorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar-mailbox/-/issues/122Do not kill me screen shown again (empty) if activity gets killed2023-01-19T13:04:14ZakwizgranDo not kill me screen shown again (empty) if activity gets killedIf no battery settings need to be changed (eg Android < 6, or stock Android >= 6 with battery optimisations already disabled) then we should skip the battery settings screen rather than showing the graphic and the continue button with no...If no battery settings need to be changed (eg Android < 6, or stock Android >= 6 with battery optimisations already disabled) then we should skip the battery settings screen rather than showing the graphic and the continue button with no other content.
![Screenshot_20220512_134501](/uploads/55c24730f28f15e821a879c78f213396/Screenshot_20220512_134501.png)Mailbox: First runhttps://code.briarproject.org/briar/briar-mailbox/-/issues/118Tapping notification creates duplicate instance of status screen2022-07-13T11:39:48ZakwizgranTapping notification creates duplicate instance of status screenSteps to reproduce:
* Start the Mailbox app and pair it with Briar
* While the status screen is in the foreground, pull down the notification drawer and tap the Mailbox app's ongoing notification
* Close the notification drawer
* Tap the...Steps to reproduce:
* Start the Mailbox app and pair it with Briar
* While the status screen is in the foreground, pull down the notification drawer and tap the Mailbox app's ongoing notification
* Close the notification drawer
* Tap the Stop button in the status screen
* Expected: The app closes
* Actual:
* The status screen closes, revealing another status screen underneath
* The stop button in the second status screen does nothingMailbox: Status UI for Mailbox appSebastianSebastianhttps://code.briarproject.org/briar/briar-mailbox/-/issues/117Status screen should warn when device is offline2022-07-13T11:08:17ZakwizgranStatus screen should warn when device is offlineAfter setup is complete, the status screen should monitor connectivity changes and show a warning when the device is offline.
The text used for the warning should be synced with the text in Briar's troubleshooting wizard (briar#2309).After setup is complete, the status screen should monitor connectivity changes and show a warning when the device is offline.
The text used for the warning should be synced with the text in Briar's troubleshooting wizard (briar#2309).Mailbox: Status UI for Mailbox apphttps://code.briarproject.org/briar/briar-mailbox/-/issues/116Usability testing for Mailbox app2022-11-30T11:05:08ZakwizgranUsability testing for Mailbox appAfter setup and pairing (briar#2315), test that users understand the information provided on the Mailbox app's status screen, are aware that the Mailbox device needs to remain connected to power and internet, and can understand and use t...After setup and pairing (briar#2315), test that users understand the information provided on the Mailbox app's status screen, are aware that the Mailbox device needs to remain connected to power and internet, and can understand and use the stop, restart and unlink actions.Mailbox: Usability testingRenata GegajRenata Gegajhttps://code.briarproject.org/briar/briar/-/issues/2316Usability testing for Mailbox app2023-01-19T13:03:49ZakwizgranUsability testing for Mailbox appAfter setup and pairing (#2315), test that users understand the information provided on the Mailbox app's status screen, are aware that the Mailbox device needs to remain connected to power and internet, and can understand and use the st...After setup and pairing (#2315), test that users understand the information provided on the Mailbox app's status screen, are aware that the Mailbox device needs to remain connected to power and internet, and can understand and use the stop, restart and unlink actions.Mailbox: Usability testinghttps://code.briarproject.org/briar/briar/-/issues/2315Usability testing for mailbox setup and pairing2022-11-29T14:07:35ZakwizgranUsability testing for mailbox setup and pairingTest whether users understand that the Mailbox app needs to be installed on a separate device, and whether they're able to set up the Mailbox app and pair it with Briar.Test whether users understand that the Mailbox app needs to be installed on a separate device, and whether they're able to set up the Mailbox app and pair it with Briar.Mailbox: Usability testinghttps://code.briarproject.org/briar/briar/-/issues/2314Usability testing for mailbox connection issues2022-11-29T14:08:07ZakwizgranUsability testing for mailbox connection issuesTest that users understand Briar's mailbox status screen (#2172) and can use it to check whether the mailbox is reachable. Test that users understand the UX that warns about the mailbox being repeatedly unreachable (#2175), and that they...Test that users understand Briar's mailbox status screen (#2172) and can use it to check whether the mailbox is reachable. Test that users understand the UX that warns about the mailbox being repeatedly unreachable (#2175), and that they can use the troubleshooting wizard to resolve issues (#2309).Mailbox: Usability testinghttps://code.briarproject.org/briar/briar-mailbox/-/issues/114Mailbox hangs at "Starting services" when relaunching after remote wipe2022-08-01T13:44:21ZakwizgranMailbox hangs at "Starting services" when relaunching after remote wipeSteps to reproduce:
* Pair mailbox-android with Briar
* Use !1637 or !1639 to wipe the mailbox remotely
* Use the back button to clear the mailbox UI (workaround for #113)
* The log shows that **the process doesn't exit**
* Relaunch the ...Steps to reproduce:
* Pair mailbox-android with Briar
* Use !1637 or !1639 to wipe the mailbox remotely
* Use the back button to clear the mailbox UI (workaround for #113)
* The log shows that **the process doesn't exit**
* Relaunch the mailbox app
* As expected, the onboarding screens are shown again
* After going through onboarding, "Starting services" is shown
* The log shows that the lifecycle hasn't been restarted, so no services are started and the UI remains in the "Starting services" state indefinitelyMailbox: UnpairingSebastianSebastianhttps://code.briarproject.org/briar/briar-mailbox/-/issues/113Clear UI when mailbox is wiped remotely2022-08-01T13:44:01ZakwizgranClear UI when mailbox is wiped remotelyWhen the mailbox is wiped remotely by Briar we should clear the UI (perhaps using something like Briar's HideUiActivity). Currently the UI stays visible. Tapping the home button and then relaunching the app shows the status screen with "...When the mailbox is wiped remotely by Briar we should clear the UI (perhaps using something like Briar's HideUiActivity). Currently the UI stays visible. Tapping the home button and then relaunching the app shows the status screen with "Mailbox is running" (on Android 5 at least - on Android 12 I think the home button would behave differently).Mailbox: UnpairingSebastianSebastianhttps://code.briarproject.org/briar/briar-mailbox/-/issues/107Crash when creating database on Android 42022-07-11T15:08:52ZakwizgranCrash when creating database on Android 4* Android version: 4.2.2
* Phone model: Huawei Ascend Y330
Stacktrace:
```
2022-04-27 12:54:22.506 3426-3618/org.briarproject.mailbox E/AndroidRuntime: FATAL EXCEPTION: Thread-370
org.briarproject.mailbox.core.db.DbException: org.h2...* Android version: 4.2.2
* Phone model: Huawei Ascend Y330
Stacktrace:
```
2022-04-27 12:54:22.506 3426-3618/org.briarproject.mailbox E/AndroidRuntime: FATAL EXCEPTION: Thread-370
org.briarproject.mailbox.core.db.DbException: org.h2.jdbc.JdbcSQLNonTransientException: General error: "java.lang.NoClassDefFoundError: java.nio.charset.StandardCharsets" [50000-200]
at org.briarproject.mailbox.core.db.JdbcDatabase.startTransaction(JdbcDatabase.kt:261)
at org.briarproject.mailbox.core.db.JdbcDatabase.startTransaction(JdbcDatabase.kt:235)
at org.briarproject.mailbox.core.db.JdbcDatabase.transaction(JdbcDatabase.kt:669)
at org.briarproject.mailbox.core.db.JdbcDatabase.read(JdbcDatabase.kt:657)
at org.briarproject.mailbox.core.db.H2Database.databaseHasSettingsTable(H2Database.kt:71)
at org.briarproject.mailbox.core.db.JdbcDatabase.open$mailbox_core(JdbcDatabase.kt:120)
at org.briarproject.mailbox.core.db.H2Database.open(H2Database.kt:64)
at org.briarproject.mailbox.core.lifecycle.LifecycleManagerImpl.startServices(LifecycleManagerImpl.kt:115)
at org.briarproject.mailbox.android.MailboxService$onCreate$1.invoke(MailboxService.kt:103)
at org.briarproject.mailbox.android.MailboxService$onCreate$1.invoke(MailboxService.kt:102)
at kotlin.concurrent.ThreadsKt$thread$thread$1.run(Thread.kt:30)
Caused by: org.h2.jdbc.JdbcSQLNonTransientException: General error: "java.lang.NoClassDefFoundError: java.nio.charset.StandardCharsets" [50000-200]
at org.h2.engine.Database.openDatabase(Database.java:333)
at org.h2.engine.Database.<init>(Database.java:301)
at org.h2.engine.Engine.openSession(Engine.java:74)
at org.h2.engine.Engine.openSession(Engine.java:192)
at org.h2.engine.Engine.createSessionAndValidate(Engine.java:171)
at org.h2.engine.Engine.createSession(Engine.java:166)
at org.h2.engine.Engine.createSession(Engine.java:29)
at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:340)
at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:173)
at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:152)
at org.h2.Driver.connect(Driver.java:69)
at java.sql.DriverManager.getConnection(DriverManager.java:175)
at org.briarproject.mailbox.core.db.H2Database.createConnection(H2Database.kt:115)
at org.briarproject.mailbox.core.db.JdbcDatabase.startTransaction(JdbcDatabase.kt:254)
at org.briarproject.mailbox.core.db.JdbcDatabase.startTransaction(JdbcDatabase.kt:235)
at org.briarproject.mailbox.core.db.JdbcDatabase.transaction(JdbcDatabase.kt:669)
at org.briarproject.mailbox.core.db.JdbcDatabase.read(JdbcDatabase.kt:657)
at org.briarproject.mailbox.core.db.H2Database.databaseHasSettingsTable(H2Database.kt:71)
at org.briarproject.mailbox.core.db.JdbcDatabase.open$mailbox_core(JdbcDatabase.kt:120)
at org.briarproject.mailbox.core.db.H2Database.open(H2Database.kt:64)
at org.briarproject.mailbox.core.lifecycle.LifecycleManagerImpl.startServices(LifecycleManagerImpl.kt:115)
at org.briarproject.mailbox.android.MailboxService$onCreate$1.invoke(MailboxService.kt:103)
at org.briarproject.mailbox.android.MailboxService$onCreate$1.invoke(MailboxService.kt:102)
at kotlin.concurrent.ThreadsKt$thread$thread$1.run(Thread.kt:30)
Caused by: java.lang.NoClassDefFoundError: java.nio.charset.StandardCharsets
at org.h2.mvstore.MVStore.writeStoreHeader(MVStore.java:1096)
at org.h2.mvstore.MVStore.<init>(MVStore.java:390)
at org.h2.mvstore.MVStore$Builder.open(MVStore.java:3579)
at org.h2.mvstore.db.MVTableEngine$Store.open(MVTableEngine.java:170)
at org.h2.mvstore.db.MVTableEngine.init(MVTableEngine.java:103)
at org.h2.engine.Database.getPageStore(Database.java:2659)
at org.h2.engine.Database.open(Database.java:675)
at org.h2.engine.Database.openDatabase(Database.java:307)
at org.h2.engine.Database.<init>(Database.java:301)
at org.h2.engine.Engine.openSession(Engine.java:74)
at org.h2.engine.Engine.openSession(Engine.java:192)
at org.h2.engine.Engine.createSessionAndValidate(Engine.java:171)
at org.h2.engine.Engine.createSession(Engine.java:166)
at org.h2.engine.Engine.createSession(Engine.java:29)
at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:340)
at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:173)
at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:152)
at org.h2.Driver.connect(Driver.java:69)
at java.sql.DriverManager.getConnection(DriverManager.java:175)
at org.briarproject.mailbox.core.db.H2Database.createConnection(H2Database.kt:115)
at org.briarproject.mailbox.core.db.JdbcDatabase.startTransaction(JdbcDatabase.kt:254)
at org.briarproject.mailbox.core.db.JdbcDatabase.startTransaction(JdbcDatabase.kt:235)
at org.briarproject.mailbox.core.db.JdbcDatabase.transaction(JdbcDatabase.kt:669)
at org.briarproject.mailbox.core.db.JdbcDatabase.read(JdbcDatabase.kt:657)
at org.briarproject.mailbox.core.db.H2Database.databaseHasSettingsTable(H2Database.kt:71)
at org.briarproject.mailbox.core.db.JdbcDatabase.open$mailbox_core(JdbcDatabase.kt:120)
at org.briarproject.mailbox.core.db.H2Database.open(H2Database.kt:64)
at org.briarproject.mailbox.core.lifecycle.LifecycleManagerImpl.startServices(LifecycleManagerImpl.kt:115)
at org.briarproject.mailbox.android.MailboxService$onCreate$1.invoke(MailboxService.kt:103)
at org.briarproject.mailbox.android.MailboxService$onCreate$1.invoke(MailboxService.kt:102)
at kotlin.concurrent.ThreadsKt$thread$thread$1.run(Thread.kt:30)
```
Looks like the crash ultimately comes from H2's MVStore#writeStoreHeader():
```
byte[] bytes = buff.toString().getBytes(StandardCharsets.ISO_8859_1);
```
StandardCharsets was added in Java 7, so it won't be available on Android < 7. Looks like we might need to downgrade H2 to the same version we're using for Briar.
Incidentally there's a Soup Nazi reference in the StandardCharsets source. :-)Mailbox: Databaseakwizgranakwizgran