briar issueshttps://code.briarproject.org/briar/briar/-/issues2021-03-24T16:26:51Zhttps://code.briarproject.org/briar/briar/-/issues/1523RuntimeException: Camera is being used after Camera.release() was called2021-03-24T16:26:51ZakwizgranRuntimeException: Camera is being used after Camera.release() was called* Android version: 6.0.1
* Briar version: 1.1.5 (8f4c3c4)
* Phone models: Samsung GT-I9100 and GT-I9300 (m0xx)
* User feedback: "I could not scan other device. They could scan me. I have Replicant 6.003."
Stacktrace:
```
java.lang.Runti...* Android version: 6.0.1
* Briar version: 1.1.5 (8f4c3c4)
* Phone models: Samsung GT-I9100 and GT-I9300 (m0xx)
* User feedback: "I could not scan other device. They could scan me. I have Replicant 6.003."
Stacktrace:
```
java.lang.RuntimeException: Camera is being used after Camera.release() was called
at android.hardware.Camera.native_getParameters(Native Method)
at android.hardware.Camera.getParameters(Camera.java:1999)
at android.hardware.Camera$EventHandler.handleMessage(Camera.java:1152)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5461)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
```
We have four reports of this crash, one on the GT-I9100 (running Replicant) and three on the GT-I9300 (probably also running Replicant, as it's the same Android version as the GT-I9100, and the version's too high to be a factory ROM).
This looks like a Replicant bug: camera calls are being made asynchronously. I'll report it upstream. I'm not adding it to the current milestone as there doesn't seem to be anything we can do.https://code.briarproject.org/briar/briar/-/issues/998Crash when getting camera parameters2021-03-24T16:26:49ZakwizgranCrash when getting camera parameters```
java.lang.RuntimeException: getParameters failed (empty parameters)
at android.hardware.Camera.native_getParameters(Native Method)
at android.hardware.Camera.getParameters(Camera.java:1952)
at org.briarproject...```
java.lang.RuntimeException: getParameters failed (empty parameters)
at android.hardware.Camera.native_getParameters(Native Method)
at android.hardware.Camera.getParameters(Camera.java:1952)
at org.briarproject.briar.android.keyagreement.QrCodeDecoder.onPreviewFrame(QrCodeDecoder.java:63)
at android.hardware.Camera$EventHandler.handleMessage(Camera.java:1133)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6692)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1468)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1358)
```
* Phone model: SM-G930F (heroltexx)
* Android version: 7.0
* Briar version: 0.16.2 (63befcc)
* User feedback: "Pushed the feedback button in the menu and i got a crash message."
The user's feedback suggests this happened while the camera view wasn't visible.Android Beta 2Torsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/1901TimeoutException: android.view.ThreadedRenderer.finalize() timed out after 10...2021-03-24T16:19:49ZakwizgranTimeoutException: android.view.ThreadedRenderer.finalize() timed out after 10 seconds* Android version: 6.0.1
* Phone model: ZTE Z837VL
* Briar version: 1.2.7 (eb562f8)
Stacktrace:
```
java.util.concurrent.TimeoutException: android.view.ThreadedRenderer.finalize() timed out after 10 seconds
at android.view.Threa...* Android version: 6.0.1
* Phone model: ZTE Z837VL
* Briar version: 1.2.7 (eb562f8)
Stacktrace:
```
java.util.concurrent.TimeoutException: android.view.ThreadedRenderer.finalize() timed out after 10 seconds
at android.view.ThreadedRenderer.nDeleteProxy(Native Method)
at android.view.ThreadedRenderer.finalize(ThreadedRenderer.java:413)
at java.lang.Daemons$FinalizerDaemon.doFinalize(Daemons.java:202)
at java.lang.Daemons$FinalizerDaemon.run(Daemons.java:185)
at java.lang.Thread.run(Thread.java:818)
```
Edited log:
```
06-08 00:15:24.325 I/IdentityManagerImpl: Identity loaded
06-08 00:15:24.447 I/LifecycleManagerImpl: Starting services
06-08 00:15:24.467 I/AndroidNetworkManager: Received broadcast android.net.conn.CONNECTIVITY_CHANGE
06-08 00:15:24.656 I/PluginManagerImpl: Starting simplex plugins
06-08 00:15:24.656 I/PluginManagerImpl: Starting duplex plugins
06-08 00:15:24.974 I/BriarActivity: Recreating NavDrawerActivity after signing in
06-08 00:15:25.007 I/BaseActivity: Starting NavDrawerActivity
06-08 00:15:25.843 I/BaseActivity: Stopping NavDrawerActivity
06-08 00:15:26.023 I/BaseActivity: Starting NavDrawerActivity
06-08 00:15:26.702 I/BaseActivity: Stopping StartupActivity
06-08 00:15:36.099 I/BaseActivity: Starting SettingsActivity
06-08 00:15:37.574 I/BaseActivity: Stopping SettingsActivity
06-08 00:15:43.860 I/BaseActivity: Starting SettingsActivity
06-08 00:15:44.606 I/BaseActivity: Stopping NavDrawerActivity
06-08 00:15:51.527 I/DevReporterImpl: Sending reports to developers
06-08 00:15:51.531 I/FeedManagerImpl: Tor started, scheduling RSS feed fetcher
06-08 00:15:52.572 I/BaseActivity: Starting NavDrawerActivity
06-08 00:15:53.068 I/BaseActivity: Stopping SettingsActivity
06-08 00:15:56.591 I/BaseActivity: Starting ConversationActivity
06-08 00:15:56.836 I/ConversationActivity: Eagerly loading text for latest message
06-08 00:15:57.155 I/BaseActivity: Stopping NavDrawerActivity
06-08 00:16:01.661 I/DevReporterImpl: Reports sent
06-08 00:16:51.538 I/FeedManagerImpl: Updating RSS feeds...
06-08 00:16:51.587 I/FeedManagerImpl: Done updating RSS feeds
06-08 00:17:32.023 I/ConnectionRegistryImpl: Incoming connection registered: org.briarproject.bramble.tor
06-08 00:17:32.023 I/ConnectionRegistryImpl: Contact connected
```
Looks like this may be a platform bug; recording it just in case.https://code.briarproject.org/briar/briar/-/issues/1976TimeoutException: android.os.BinderProxy.finalize() timed out after 10 seconds2021-03-24T16:19:38ZakwizgranTimeoutException: android.os.BinderProxy.finalize() timed out after 10 seconds* Android version: 7.1.2
* Phone model: Samsung SM-N7505 (hlltexx)
* Briar version: 1.2.16 (8a534b4)
Stacktrace:
```
android.os.BinderProxy.finalize() timed out after 10 seconds
java.util.concurrent.TimeoutException: android.os.BinderPr...* Android version: 7.1.2
* Phone model: Samsung SM-N7505 (hlltexx)
* Briar version: 1.2.16 (8a534b4)
Stacktrace:
```
android.os.BinderProxy.finalize() timed out after 10 seconds
java.util.concurrent.TimeoutException: android.os.BinderProxy.finalize() timed out after 10 seconds
at android.os.BinderProxy.destroy(Native Method)
at android.os.BinderProxy.finalize(Binder.java:677)
at java.lang.Daemons$FinalizerDaemon.doFinalize(Daemons.java:222)
at java.lang.Daemons$FinalizerDaemon.run(Daemons.java:209)
at java.lang.Thread.run(Thread.java:761)
```
Possibly related to #1901?https://code.briarproject.org/briar/briar/-/issues/1917Crash reporter captures log from crash reporter process, not main process2021-03-24T16:05:15ZakwizgranCrash reporter captures log from crash reporter process, not main processThe new crash reporter captures the log output from the crash reporter process, not the main Briar process. This log output doesn't give any information about the cause of the crash - it just shows the crash reporter process being create...The new crash reporter captures the log output from the crash reporter process, not the main Briar process. This log output doesn't give any information about the cause of the crash - it just shows the crash reporter process being created, injecting its components and launching CrashReportActivity.Android 1.2IvanaIvanahttps://code.briarproject.org/briar/briar/-/issues/1974briar-headless: multiple SLF4J bindings on tests2021-03-23T06:57:05ZSebastianbriar-headless: multiple SLF4J bindings on testsWhen running the tests on the `briar-headless` module, multiple bindings for SLF4J are found on the classpath, resulting in this warning:
```
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/home/z/...When running the tests on the `briar-headless` module, multiple bindings for SLF4J are found on the classpath, resulting in this warning:
```
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/home/z/gitlab/briar/briar-swing/briar-headless/build/libs/briar-headless.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/home/z/.gradle/caches/modules-2/files-2.1/org.slf4j/slf4j-simple/1.7.26/dfb0de47f433c2a37dd44449c88d84b698cd5cf7/slf4j-simple-1.7.26.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.SimpleLoggerFactory]
```
It's not too bad as it's actually the same binding that's being found twice. However I was wondering, why this is the case and if there's something misconfigured. I took a look and my analysis is: briar-headless builds a fat jar with all the dependencies included (including slf4j) and for the tests both the fat jar as well as all the dependencies are put on the classpath. That means, we have everything twice on the classpath, not just the slf4j bindings.
I think it would be good to solve this somehow and the solution would probably be to fix the classpath of the tests. Either
* (A) let the tests run with the non-fat (regular) headless jar plus dependencies, or
* (B) run it with the fat jar but exclude the dependencies from the testing classpathhttps://code.briarproject.org/briar/briar/-/issues/1578Improve structure of Briar Headless API documentation2021-03-22T10:52:52ZNicoImprove structure of Briar Headless API documentationCurrently, the documentation for the API is directly written into [its readme file](https://code.briarproject.org/briar/briar/blob/release-1.1.7/briar-headless/README.md). That's fine for the beginning, [I was even able to build a first ...Currently, the documentation for the API is directly written into [its readme file](https://code.briarproject.org/briar/briar/blob/release-1.1.7/briar-headless/README.md). That's fine for the beginning, [I was even able to build a first prototype with it](https://nico.dorfbrunnen.eu/posts/2019/briar-first-demo/).
However, I suggest to improve the structure of the documentation by moving it into a separate repository. My suggestion was to create a Hugo page with a docs theme (or some other static site generator) at docs.briarproject.org.
@grote's response to this was (loosely translated by me): "Best to make the documentation directly into the code with swagger"
My response to this now: OK, we can do this, but I don't know how much sense it makes to put a lot of basic explanations into code. E.g. all the valuable information collected in https://code.briarproject.org/briar/briar/issues/1577.
**Update:** I agree with Torsten that it's best to generate the documentation from code. That's what I do with [`briar_wrapper`](https://code.briarproject.org/briar/python-briar-wrapper), too, at https://wrapper.docs.briarproject.org/ and the API's docs can be hosted at https://api.docs.briarproject.org/, imho.CleopatraCleopatrahttps://code.briarproject.org/briar/briar/-/issues/1951Exclude files from D2D backups2021-03-15T13:29:35ZTorsten GroteExclude files from D2D backupsWhen targeting API 30: When using device-to-device backup our `allowBackup=false` will be ignored and our app data will get backed up, if we don't explicitly exclude files from backup.
Subtask of #1827When targeting API 30: When using device-to-device backup our `allowBackup=false` will be ignored and our app data will get backed up, if we don't explicitly exclude files from backup.
Subtask of #1827Adapt to changes in the Android platformTorsten GroteTorsten Grote2021-04-30https://code.briarproject.org/briar/briar/-/issues/1966Coming another post2021-03-11T19:01:22ZWuukoComing another postI'm writing a piece, first the old one comes out, then the new one.I'm writing a piece, first the old one comes out, then the new one.https://code.briarproject.org/briar/briar/-/issues/1899NPE in BluetoothSocket#connect()2021-03-11T18:11:31ZakwizgranNPE in BluetoothSocket#connect()* Android version: 9
* Phone model: Huawei ANE-LX1
* Briar version: 1.2.9 (9d96ce6)
* User feedback: "Unlocked the phone and Briar showed me this."
Stacktrace:
```
java.lang.NullPointerException: Attempt to read from field 'java.lang.St...* Android version: 9
* Phone model: Huawei ANE-LX1
* Briar version: 1.2.9 (9d96ce6)
* User feedback: "Unlocked the phone and Briar showed me this."
Stacktrace:
```
java.lang.NullPointerException: Attempt to read from field 'java.lang.String com.android.bluetooth.btservice.AdapterService$ConnectRecord.packageName' on a null object reference
at android.os.Parcel.createException(Parcel.java:1959)
at android.os.Parcel.readException(Parcel.java:1921)
at android.os.Parcel.readException(Parcel.java:1871)
at android.bluetooth.IBluetooth$Stub$Proxy.shouldRefuseConn(IBluetooth.java:2108)
at android.bluetooth.BluetoothSocket.connect(BluetoothSocket.java:400)
at org.briarproject.bramble.plugin.bluetooth.AndroidBluetoothPlugin.connectTo(AndroidBluetoothPlugin.java:206)
at org.briarproject.bramble.plugin.bluetooth.BluetoothPlugin.connect(BluetoothPlugin.java:318)
at org.briarproject.bramble.plugin.bluetooth.BluetoothPlugin.createConnection(BluetoothPlugin.java:337)
at org.briarproject.bramble.plugin.bluetooth.BluetoothPlugin.lambda$connect$1$BluetoothPlugin(BluetoothPlugin.java:290)
at org.briarproject.bramble.plugin.bluetooth.-$$Lambda$BluetoothPlugin$ll6XYbG2pnImYnbEJhWCfN150gw.run(Unknown Source:6)
at java.util.concurrent.ThreadPoolExecutor.processTask(ThreadPoolExecutor.java:1187)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:784)
```
Last lines of log:
```
08-17 23:11:37.677 I/PollerImpl: Polling plugin org.briarproject.bramble.bluetooth
08-17 23:11:37.694 I/ConnectionRegistryImpl: 2 contacts connected or better: org.briarproject.bramble.blue
tooth
08-17 23:11:37.699 I/BluetoothConnectionLimiterImpl: Can open contact connection
08-17 23:11:37.700 I/BluetoothPlugin: Connecting to A8:[scrubbed]:A9
08-17 23:11:37.702 I/BluetoothConnectionLimiterImpl: Can open contact connection
08-17 23:11:37.702 I/BluetoothPlugin: Connecting to AC:[scrubbed]:EE
08-17 23:11:37.703 I/BluetoothConnectionLimiterImpl: Can open contact connection
08-17 23:11:37.703 I/BluetoothPlugin: Connecting to 10:[scrubbed]:00
```
Looks like a bug in the Bluetooth stack that we could work around by catching the NPE and treating it as a failed connection attempt.Android 1.2https://code.briarproject.org/briar/briar/-/issues/1893Provide explanation when self-destruct timer gets changed2021-03-11T12:26:30ZTorsten GroteProvide explanation when self-destruct timer gets changedWhen self-destruct timer gets changed initially and later, we should provide a way to get more information about this feature for users that don't understand it, yet.
This could be as simple as making the timer changed message bubble ta...When self-destruct timer gets changed initially and later, we should provide a way to get more information about this feature for users that don't understand it, yet.
This could be as simple as making the timer changed message bubble tapable "Tap here to change" and bring the user to the settings screen for self-destructing messages that has further explanation #1837Self-destructing messagesIvanaIvana2021-01-31https://code.briarproject.org/briar/briar/-/issues/1864Show warning dialog when the expected timer differs from the current timer2021-03-11T12:26:19ZTorsten GroteShow warning dialog when the expected timer differs from the current timerWe mirror the timer duration from our contact's messages. It is possible that we are writing a message and short before we hit send, the timer changes or gets turned off. To prevent this scenario, we should show a warning dialog that pop...We mirror the timer duration from our contact's messages. It is possible that we are writing a message and short before we hit send, the timer changes or gets turned off. To prevent this scenario, we should show a warning dialog that pops up if the timer when sending is different from the timer when we started typing the message.
Subtask of #804.Self-destructing messagesIvanaIvana2021-01-31https://code.briarproject.org/briar/briar/-/issues/1836Automatically decline incoming private group invitations when they self-destruct2021-03-11T12:26:10ZakwizgranAutomatically decline incoming private group invitations when they self-destructWhen an incoming private group invitation self-destructs without being answered, automatically decline the request. This may require a protocol update (coordinated with #1831) to flag the decline as an automatic response that shouldn't b...When an incoming private group invitation self-destructs without being answered, automatically decline the request. This may require a protocol update (coordinated with #1831) to flag the decline as an automatic response that shouldn't be shown in the UI.
Subtask of #804Self-destructing messagesIvanaIvana2021-01-31https://code.briarproject.org/briar/briar/-/issues/1833Delete messages when their self-destruct timers expire2021-03-11T12:25:31ZakwizgranDelete messages when their self-destruct timers expireCreate a component that tracks pending self-destruct timers and deletes messages when their self-destruct timers expire.
Conversation clients will register messages for deletion during delivery. The new component will be responsible for...Create a component that tracks pending self-destruct timers and deletes messages when their self-destruct timers expire.
Conversation clients will register messages for deletion during delivery. The new component will be responsible for calling back into the client when a message is due to be deleted. This will allow the client to take any necessary steps before deletion, such as declining an open introduction.
Subtask of #804Self-destructing messagesIvanaIvana2021-01-31https://code.briarproject.org/briar/briar/-/issues/1612Latest version in F-Droid main repo is 1.2.102021-03-11T12:22:30ZakwizgranLatest version in F-Droid main repo is 1.2.10~~The F-Droid main repo hasn't picked up any of our releases since 1.1.6 in March.~~
~~The F-Droid build server couldn't reproduce the 1.2.9 release.~~
~~F-Droid couldn't parse the version numbers in the 1.2.11 - 1.2.13 releases.~~
F-...~~The F-Droid main repo hasn't picked up any of our releases since 1.1.6 in March.~~
~~The F-Droid build server couldn't reproduce the 1.2.9 release.~~
~~F-Droid couldn't parse the version numbers in the 1.2.11 - 1.2.13 releases.~~
F-Droid failed to reproduce the 1.2.16 build due to differences in the Tor and obfs4proxy binaries.Android 1.2akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/1965Enable taking pictures directly from the message menu and store pictures take...2021-03-10T12:36:13ZSilent ResearchEnable taking pictures directly from the message menu and store pictures taken in the briar db only.For security reasons it would be very helpful if we could take pictures directly from the briar chat window and store pictures taken in the encrypted briar db only. At the moment I need to take a picture with the phones camera app and st...For security reasons it would be very helpful if we could take pictures directly from the briar chat window and store pictures taken in the encrypted briar db only. At the moment I need to take a picture with the phones camera app and store it in the standard photos folder of my device.https://code.briarproject.org/briar/briar/-/issues/1955Don't advertise support for self-destructing messages unless feature flag is ...2021-03-08T17:58:12ZakwizgranDon't advertise support for self-destructing messages unless feature flag is enabledTo avoid receiving self-destructing messages when the UI for the feature is disabled by a feature flag, we shouldn't tell our contacts we support the new version of the messaging client unless the feature flag is enabled.To avoid receiving self-destructing messages when the UI for the feature is disabled by a feature flag, we shouldn't tell our contacts we support the new version of the messaging client unless the feature flag is enabled.Self-destructing messagesTorsten GroteTorsten Grote2021-01-31https://code.briarproject.org/briar/briar/-/issues/1958Bomb icon disappears from the text input field in landscape orientation when ...2021-03-08T12:29:21ZIvanaBomb icon disappears from the text input field in landscape orientation when the keyboard comes upSteps to reproduce the issue:
Go to menu in the upper right corner and change Disappearing messages setting to ON
Start typing a message to a contact, and verify that there is a little bomb icon in the text input field as you are typing...Steps to reproduce the issue:
Go to menu in the upper right corner and change Disappearing messages setting to ON
Start typing a message to a contact, and verify that there is a little bomb icon in the text input field as you are typing... then change the orientation of device. Continue typing.
Expected result:
The bomb icon shows in the text input field the same way as it does in the portrait orientation
Actual results:
The bomb icon does not show int he text input field when the keyboard is up.
Turning the device back into portrait orientation - bomb icon in the text input field is visible again.![device-2021-03-03-123142](/uploads/211a76c6a292e5e923b93787a5fb9ad3/device-2021-03-03-123142.mp4)Self-destructing messages2021-01-31https://code.briarproject.org/briar/briar/-/issues/1953Dialog about "Disappearing messages changed" for image only messages2021-03-08T12:27:51ZSebastianDialog about "Disappearing messages changed" for image only messages![issue](/uploads/8e8d903d76bddc993f68dfc1af183ae6/issue.png)
The "Disappearing messages changed" appears although it shouldn't.
Steps to reproduce:
1. open a fresh, empty conversation
2. enable disappearing messages
3. (optional: send...![issue](/uploads/8e8d903d76bddc993f68dfc1af183ae6/issue.png)
The "Disappearing messages changed" appears although it shouldn't.
Steps to reproduce:
1. open a fresh, empty conversation
2. enable disappearing messages
3. (optional: send a text message and notice that the dialog does not appear)
4. send an image message (without text) and see the dialog appear
It doesn't work just once, it works repeatedly and also after sending more text-only or image-with-text messagesSelf-destructing messagesTorsten GroteTorsten Grote2021-01-31https://code.briarproject.org/briar/briar/-/issues/1913Bomb icon on images not white on API 162021-03-08T12:27:36ZSebastianBomb icon on images not white on API 16The bomb icon is grey on grey background which makes it difficult to see.
Its possible that !1346 will help find a simple solution for this.
![Screen01](/uploads/2739eda519037ebf5d109d087fc44746/Screen01.png)The bomb icon is grey on grey background which makes it difficult to see.
Its possible that !1346 will help find a simple solution for this.
![Screen01](/uploads/2739eda519037ebf5d109d087fc44746/Screen01.png)Self-destructing messagesSebastianSebastian2021-01-31