briar issueshttps://code.briarproject.org/briar/briar/-/issues2018-10-01T13:41:29Zhttps://code.briarproject.org/briar/briar/-/issues/1377Separate UI tests from screenshot tests2018-10-01T13:41:29ZakwizgranSeparate UI tests from screenshot testsWe can use build flavours to separate the UI tests from the screenshot tests (which are written as Espresso tests, but are used to produce screenshots rather than test behaviour). This will allow us to run the UI and screenshot tests sep...We can use build flavours to separate the UI tests from the screenshot tests (which are written as Espresso tests, but are used to produce screenshots rather than test behaviour). This will allow us to run the UI and screenshot tests separately for #1375 and #1376.Android 1.1Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/1376Set up CI to update screenshots2020-11-19T10:12:57ZakwizgranSet up CI to update screenshotsSet up the CI server to capture screenshots with Espresso on the Android emulator when a new tag is pushed. The screenshots should be saved to an artifact that can be downloaded when building the manual.Set up the CI server to capture screenshots with Espresso on the Android emulator when a new tag is pushed. The screenshots should be saved to an artifact that can be downloaded when building the manual.https://code.briarproject.org/briar/briar/-/issues/1375Set up CI to run Espresso tests2020-11-19T10:12:38ZakwizgranSet up CI to run Espresso testsSet up the CI server to run Espresso tests on the Android emulator. Initially the tests can be run manually. If the run time isn't too long we can set them to run automatically when changes are merged to master.Set up the CI server to run Espresso tests on the Android emulator. Initially the tests can be run manually. If the run time isn't too long we can set them to run automatically when changes are merged to master.https://code.briarproject.org/briar/briar/-/issues/1374Implement StreamWriter/Reader writeTag and readTag methods2020-10-26T11:58:49ZBen WieImplement StreamWriter/Reader writeTag and readTag methodsThe current implementation of the `StreamWriter`/`StreamEncrypter` write a tag, which allows the recipient to identify the connection. This tag is written automatically when the first message is written (or the stream is flushed).
Writi...The current implementation of the `StreamWriter`/`StreamEncrypter` write a tag, which allows the recipient to identify the connection. This tag is written automatically when the first message is written (or the stream is flushed).
Writing this tag explicitly before sending any message simplifies the implementation of mailbox session management. A public `writeTag` method should be added to the 'StreamWriter'/'StreamEncrypter'.
Additionally, the `readTag` method, which is currently part of the `ConnectionManager`, is also required to manage mailbox connections. To avoid redundancy we could add a StreamReader interface and implement a `readTag` function ('StreamReader' currently extends an `InputStream`).
As @akwizgran suggested, a workaround is to simply flush the `StreamWriter`, but this also writes an empty frame.Mailbox Prototypehttps://code.briarproject.org/briar/briar/-/issues/1373Implement issues found in RTL user testing2018-10-24T14:05:20ZTorsten GroteImplement issues found in RTL user testingAddress feedback from #1372
* [x] unread count numbers aren't localized (always Latin script)
* [x] crash screen isn't localized (always English)
* [x] don't mirror checkmarks
* [x] the send icon in the crash reporter isn't mirroredAddress feedback from #1372
* [x] unread count numbers aren't localized (always Latin script)
* [x] crash screen isn't localized (always English)
* [x] don't mirror checkmarks
* [x] the send icon in the crash reporter isn't mirroredSponsor 2.3Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/1372RTL user testing2018-10-22T19:55:49ZTorsten GroteRTL user testingSponsor 2.2Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/1371Recreate code_cache directory after deleting account2020-11-16T10:37:11ZakwizgranRecreate code_cache directory after deleting accountWe already recreate the `cache` directory after deleting the account because some OpenGL drivers expect it to exist. Apparently we should do the same for the `code_cache` directory. This comes from a Sony Xperia Z3 Compact (Android 6.0.1...We already recreate the `cache` directory after deleting the account because some OpenGL drivers expect it to exist. Apparently we should do the same for the `code_cache` directory. This comes from a Sony Xperia Z3 Compact (Android 6.0.1):
```
08-30 00:33:24.161 E/libEGL (14478): error creating cache file /data/user/0/org.briarproject.briar.android.debug/code_cache/com.android.opengl.shaders_cache: No such file or directory (2)
```Android 1.2akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/1370Reblogging a reblogged blog post sometimes triggers a notification2019-03-19T10:36:27ZJulian DehmReblogging a reblogged blog post sometimes triggers a notificationWhen reblogging an already reblogged post the blog post is opened in a dedicated fragment and from there it can be reblogged. Clicking send will take you back to the originally reblogged post and not to the feed itself. Therefore a notif...When reblogging an already reblogged post the blog post is opened in a dedicated fragment and from there it can be reblogged. Clicking send will take you back to the originally reblogged post and not to the feed itself. Therefore a notification is triggered.
Steps to reproduce:
1. Create a blog post
2. Reblog the blog post with a message
3. Reblog the reblogged postAndroid 1.1Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/1369Private group layout is confusing2019-05-16T14:54:46ZakwizgranPrivate group layout is confusing"Group chat is extremely confusing with the names of the users below the messages.""Group chat is extremely confusing with the names of the users below the messages."Android 1.1Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/1368Sign the Fdroid repo with a pgp key2018-08-22T18:28:39ZJoseph BurchettaSign the Fdroid repo with a pgp keyThe purported repo is https://briarproject.org/fdroid/repo?fingerprint=1FB874BEE7276D28ECB2C9B06E8A122EC4BCB4008161436CE474C257CBF49BD6
Please provide a signature if that is correct. It would be useful for people if it were here: https:...The purported repo is https://briarproject.org/fdroid/repo?fingerprint=1FB874BEE7276D28ECB2C9B06E8A122EC4BCB4008161436CE474C257CBF49BD6
Please provide a signature if that is correct. It would be useful for people if it were here: https://briarproject.org/fdroid.html
Or even putting the repo link in the readme and signing the commit.
Thanks!https://code.briarproject.org/briar/briar/-/issues/1367DB Store header is corrupt2020-03-10T15:03:16ZTorsten GroteDB Store header is corruptWhen using Android emulator 27.3.9.0 with an API 28 Google APIs Intel x86 Atom System Image Revision 4 or 5, creating a new account after "forgetting the password" causes a `org.h2.jdbc.JdbcSQLException: Encryption error in file null` ex...When using Android emulator 27.3.9.0 with an API 28 Google APIs Intel x86 Atom System Image Revision 4 or 5, creating a new account after "forgetting the password" causes a `org.h2.jdbc.JdbcSQLException: Encryption error in file null` exception when reinstalling with Android Studio while still signed in.
```
I/AndroidAccountManager: No database key in preferences
I/AccountManagerImpl: Found database key in primary file
I/AndroidAccountManager: No database key in preferences
I/AccountManagerImpl: Found database key in primary file
I/BriarService: Created
I/LifecycleManagerImpl: Starting services
W/LifecycleManagerImpl: org.briarproject.bramble.api.db.DbException: org.h2.jdbc.JdbcSQLException: Encryption error in file null [90049-192]
org.briarproject.bramble.api.db.DbException: org.h2.jdbc.JdbcSQLException: Encryption error in file null [90049-192]
at org.briarproject.bramble.db.JdbcDatabase.startTransaction(JdbcDatabase.java:495)
at org.briarproject.bramble.db.JdbcDatabase.open(JdbcDatabase.java:340)
at org.briarproject.bramble.db.H2Database.open(H2Database.java:54)
at org.briarproject.bramble.db.DatabaseComponentImpl.open(DatabaseComponentImpl.java:109)
at org.briarproject.bramble.lifecycle.LifecycleManagerImpl.startServices(LifecycleManagerImpl.java:108)
at org.briarproject.briar.android.BriarService.lambda$onCreate$0$BriarService(BriarService.java:134)
at org.briarproject.briar.android.BriarService$$Lambda$0.run(Unknown Source:20)
at java.lang.Thread.run(Thread.java:764)
Caused by: org.h2.jdbc.JdbcSQLException: Encryption error in file null [90049-192]
at org.h2.mvstore.db.MVTableEngine$Store.convertIllegalStateException(MVTableEngine.java:182)
at org.h2.mvstore.db.MVTableEngine$Store.open(MVTableEngine.java:167)
at org.h2.mvstore.db.MVTableEngine.init(MVTableEngine.java:99)
at org.h2.engine.Database.getPageStore(Database.java:2463)
at org.h2.engine.Database.open(Database.java:692)
at org.h2.engine.Database.openDatabase(Database.java:270)
at org.h2.engine.Database.<init>(Database.java:264)
at org.h2.engine.Engine.openSession(Engine.java:64)
at org.h2.engine.Engine.openSession(Engine.java:176)
at org.h2.engine.Engine.createSessionAndValidate(Engine.java:154)
at org.h2.engine.Engine.createSession(Engine.java:137)
at org.h2.engine.Engine.createSession(Engine.java:27)
at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:349)
at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:118)
at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:102)
at org.h2.Driver.connect(Driver.java:72)
at java.sql.DriverManager.getConnection(DriverManager.java:569)
at java.sql.DriverManager.getConnection(DriverManager.java:191)
at org.briarproject.bramble.db.H2Database.createConnection(H2Database.java:101)
at org.briarproject.bramble.db.JdbcDatabase.startTransaction(JdbcDatabase.java:484)
at org.briarproject.bramble.db.JdbcDatabase.open(JdbcDatabase.java:340)
at org.briarproject.bramble.db.H2Database.open(H2Database.java:54)
at org.briarproject.bramble.db.DatabaseComponentImpl.open(DatabaseComponentImpl.java:109)
at org.briarproject.bramble.lifecycle.LifecycleManagerImpl.startServices(LifecycleManagerImpl.java:108)
at org.briarproject.briar.android.BriarService.lambda$onCreate$0$BriarService(BriarService.java:134)
at org.briarproject.briar.android.BriarService$$Lambda$0.run(Unknown Source:20)
at java.lang.Thread.run(Thread.java:764)
Caused by: java.lang.IllegalStateException: Store header is corrupt: split:30:/data/data/org.briarproject.briar.android.debug/app_db/db.mv.db [1.4.192/6]
at org.h2.mvstore.DataUtils.newIllegalStateException(DataUtils.java:773)
at org.h2.mvstore.MVStore.readStoreHeader(MVStore.java:605)
at org.h2.mvstore.MVStore.<init>(MVStore.java:355)
at org.h2.mvstore.MVStore$Builder.open(MVStore.java:2893)
at org.h2.mvstore.db.MVTableEngine$Store.open(MVTableEngine.java:154)
at org.h2.mvstore.db.MVTableEngine.init(MVTableEngine.java:99)
at org.h2.engine.Database.getPageStore(Database.java:2463)
at org.h2.engine.Database.open(Database.java:692)
at org.h2.engine.Database.openDatabase(Database.java:270)
at org.h2.engine.Database.<init>(Database.java:264)
at org.h2.engine.Engine.openSession(Engine.java:64)
at org.h2.engine.Engine.openSession(Engine.java:176)
at org.h2.engine.Engine.createSessionAndValidate(Engine.java:154)
at org.h2.engine.Engine.createSession(Engine.java:137)
at org.h2.engine.Engine.createSession(Engine.java:27)
at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:349)
at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:118)
at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:102)
at org.h2.Driver.connect(Driver.java:72)
at java.sql.DriverManager.getConnection(DriverManager.java:569)
at java.sql.DriverManager.getConnection(DriverManager.java:191)
at org.briarproject.bramble.db.H2Database.createConnection(H2Database.java:101)
at org.briarproject.bramble.db.JdbcDatabase.startTransaction(JdbcDatabase.java:484)
at org.briarproject.bramble.db.JdbcDatabase.open(JdbcDatabase.java:340)
at org.briarproject.bramble.db.H2Database.open(H2Database.java:54)
at org.briarproject.bramble.db.DatabaseComponentImpl.open(DatabaseComponentImpl.java:109)
at org.briarproject.bramble.lifecycle.LifecycleManagerImpl.startServices(LifecycleManagerImpl.java:108)
at org.briarproject.briar.android.BriarService.lambda$onCreate$0$BriarService(BriarService.java:134)
at org.briarproject.briar.android.BriarService$$Lambda$0.run(Unknown Source:20)
at java.lang.Thread.run(Thread.java:764)
W/BriarService: Startup failed: DB_ERROR
```Android 1.2akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/1360Resource changes aren't included in builds2018-08-09T08:59:25ZakwizgranResource changes aren't included in buildsSince we added build flavours, changes to resources aren't included in Android Studio builds (I haven't tested command-line builds yet). Cleaning and rebuilding causes the changes to be picked up.Since we added build flavours, changes to resources aren't included in Android Studio builds (I haven't tested command-line builds yet). Cleaning and rebuilding causes the changes to be picked up.Android 1.1Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/1358New Design and UX for Message Bubbles2018-08-20T19:47:36ZElio Qoshielio@ura.designNew Design and UX for Message BubblesWhile working on the Dark Theme with @grote we discovered that the message bubble colors required changes made to PNG drawables, split into 9 pieces (for dark, light, incoming, outgoing and system notices). This makes it quite rough to w...While working on the Dark Theme with @grote we discovered that the message bubble colors required changes made to PNG drawables, split into 9 pieces (for dark, light, incoming, outgoing and system notices). This makes it quite rough to work with and is time consuming when it comes to updating changes. Also, the current design is an old message bubble pattern and one can see from Facebook or Telegram that a more rounded approach might be more suitable:
![image](/uploads/59dd7e30bf3126a0e36e9fdbb6e91c9b/image.png)Android 1.1Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/1357PanicResponder doesn't return when deleting app data2019-03-19T14:16:26ZakwizgranPanicResponder doesn't return when deleting app dataWhen responding to a panic button intent we call PanicResponder.deleteAllAppData() before signing out. It looks like this method may cause the process to exit, as the log message that should be logged immediately after it returns ("Signi...When responding to a panic button intent we call PanicResponder.deleteAllAppData() before signing out. It looks like this method may cause the process to exit, as the log message that should be logged immediately after it returns ("Signing out...") doesn't show up in the log.
When I tried refactoring this call into AccountManager#deleteAccount(), which is called before creating a new account to ensure no remnants of an old account are left behind, it caused the app to exit instead of showing SetupActivity.
We should consider extracting the useful parts of this method into AndroidAccountManager#deleteAccount() instead of calling it.
Test device: Moto G 4G (Android 5.1).Android 1.1Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/1356Error: No dependency for integrity assertion 'org.ow2.asm:asm:5.0.4:asm-5.0.4...2019-08-14T14:23:01ZTeodomiroError: No dependency for integrity assertion 'org.ow2.asm:asm:5.0.4:asm-5.0.4.jar:...Hi guys.
I get this dependency error when I try to build the project...! Any thoughts, please? [PerBri](/uploads/9ee4f4c20810d3128f233a6f1b4b759d/PerBri.png)Hi guys.
I get this dependency error when I try to build the project...! Any thoughts, please? [PerBri](/uploads/9ee4f4c20810d3128f233a6f1b4b759d/PerBri.png)https://code.briarproject.org/briar/briar/-/issues/1355Add a setting to override location-based disabling of Tor2018-08-09T19:48:31ZakwizgranAdd a setting to override location-based disabling of TorUsers in China have reported that Orbot works over Shadowsocks, and I've confirmed that Briar's Tor connectivity works over Shadowsocks using [this app](https://play.google.com/store/apps/details?id=com.github.shadowsocks) in VPN mode, w...Users in China have reported that Orbot works over Shadowsocks, and I've confirmed that Briar's Tor connectivity works over Shadowsocks using [this app](https://play.google.com/store/apps/details?id=com.github.shadowsocks) in VPN mode, with no configuration on the Briar side. The same should work in China, except that we disable Tor based on the user's location. We should add a setting to allow the user to override location-based disabling of Tor.Android 1.1akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/1354Latest Tor binaries don't include HSFORGET command2018-07-31T16:27:33ZakwizgranLatest Tor binaries don't include HSFORGET commandDue to a misunderstanding we compiled the latest Tor binaries without the HSFORGET command. This causes all Tor connections to fail. Since it doesn't look like the command provides much of a performance improvement (see #629), we can jus...Due to a misunderstanding we compiled the latest Tor binaries without the HSFORGET command. This causes all Tor connections to fail. Since it doesn't look like the command provides much of a performance improvement (see #629), we can just remove the corresponding code from TorPlugin.Android 1.1akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/1352Latest version of Ripple from F-Droid doesn't trigger panic actions2018-09-28T09:57:20ZakwizgranLatest version of Ripple from F-Droid doesn't trigger panic actionsThe latest release of Ripple from the main F-Droid repo (version 0.2.2) doesn't trigger Briar's panic actions because the package isn't signed with a key we trust. However, the Ripple UI says that Briar will respond to the panic trigger.The latest release of Ripple from the main F-Droid repo (version 0.2.2) doesn't trigger Briar's panic actions because the package isn't signed with a key we trust. However, the Ripple UI says that Briar will respond to the panic trigger.Android 1.1Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/1351Alternative for password input after already logged in2018-12-19T12:29:54ZSkiAlternative for password input after already logged inFirst of all. I'd like to say I love Briar.
But, after being logged in, the app asks after an x period of time (days) again for the password. I have used a generated password which is not convenient to fill in. This feature unfortunately...First of all. I'd like to say I love Briar.
But, after being logged in, the app asks after an x period of time (days) again for the password. I have used a generated password which is not convenient to fill in. This feature unfortunately holds be back for further usage. I can imagine this is the same for other people.
Can perhaps alternatives for a password be considered?
Such as a pincode or a fingerprint?https://code.briarproject.org/briar/briar/-/issues/1350Nav drawer logo is broken on Android 5.12018-11-15T11:39:23ZakwizgranNav drawer logo is broken on Android 5.1The changes to the nav drawer logo in !861 seem to be triggering some rasterisation bugs on the Moto G 4G (Android 5.1):
![device-2018-07-25-165837](/uploads/3d84edc6f203234b276e1b32c080225b/device-2018-07-25-165837.png) ![device-2018-0...The changes to the nav drawer logo in !861 seem to be triggering some rasterisation bugs on the Moto G 4G (Android 5.1):
![device-2018-07-25-165837](/uploads/3d84edc6f203234b276e1b32c080225b/device-2018-07-25-165837.png) ![device-2018-07-25-165821](/uploads/d16ee97246c508c2260501e359eeb117/device-2018-07-25-165821.png)Android 1.1Torsten GroteTorsten Grote