briar issueshttps://code.briarproject.org/groups/briar/-/issues2020-12-18T21:21:29Zhttps://code.briarproject.org/briar/briar-gtk/-/issues/21Support private groups2020-12-18T21:21:29ZNicoSupport private groupsMeta issue.
Related issue in wrapper: https://code.briarproject.org/briar/python-briar-wrapper/issues/7Meta issue.
Related issue in wrapper: https://code.briarproject.org/briar/python-briar-wrapper/issues/7https://code.briarproject.org/briar/briar-gtk/-/issues/20Show online status of contact in chat view2020-12-21T11:35:39ZNicoShow online status of contact in chat viewRelated to https://code.briarproject.org/briar/briar-gtk/issues/19.Related to https://code.briarproject.org/briar/briar-gtk/issues/19.https://code.briarproject.org/briar/briar-gtk/-/issues/18Show pending contacts2020-11-15T16:28:47ZNicoShow pending contactsIt's done like this in Fractal:
![pending-contact-1](/uploads/7db7719eb2fe250eadd2426f20ddc6be/pending-contact-1.png)
![pending-contact-2](/uploads/8ab1be6406bcb1e2c04ef3fe33792705/pending-contact-2.png)It's done like this in Fractal:
![pending-contact-1](/uploads/7db7719eb2fe250eadd2426f20ddc6be/pending-contact-1.png)
![pending-contact-2](/uploads/8ab1be6406bcb1e2c04ef3fe33792705/pending-contact-2.png)https://code.briarproject.org/briar/briar-gtk/-/issues/10Delete single message in chat history2020-11-21T10:04:19ZNicoDelete single message in chat historyRelated to https://code.briarproject.org/briar/briar-gtk/issues/11.Related to https://code.briarproject.org/briar/briar-gtk/issues/11.https://code.briarproject.org/briar/briar-gtk/-/issues/9Use relative time instead of absolute one in chat history2021-01-12T14:28:54ZNicoUse relative time instead of absolute one in chat historyE.g. "20 min. ago" instead of "11:14".E.g. "20 min. ago" instead of "11:14".GTK Nextx0lootsx0lootshttps://code.briarproject.org/briar/briar-gtk/-/issues/8Respect order of messages when adding new ones2021-01-23T13:44:01ZNicoRespect order of messages when adding new onesWhen Briar gets new messages from the event stream, it should respect the time stamp of the incoming message and the already displayed messages.When Briar gets new messages from the event stream, it should respect the time stamp of the incoming message and the already displayed messages.https://code.briarproject.org/briar/briar-gtk/-/issues/7Mark unread messages in chat history2021-01-23T13:40:44ZNicoMark unread messages in chat historyIn Fractal, a red line is used to highlight the point where new messages start.In Fractal, a red line is used to highlight the point where new messages start.GTK Nexthttps://code.briarproject.org/briar/python-briar-wrapper/-/issues/5Support lazy loading of messages2020-11-15T16:32:04ZNicoSupport lazy loading of messagesCurrently, clients can only get all messages at once. For improved performance, we should offer an option to only partly load messages.
Related issue in Briar GTK: https://code.briarproject.org/briar/briar-gtk/issues/5Currently, clients can only get all messages at once. For improved performance, we should offer an option to only partly load messages.
Related issue in Briar GTK: https://code.briarproject.org/briar/briar-gtk/issues/5https://code.briarproject.org/briar/briar/-/issues/1710Wrong camera used for adding contacts on Iconia tablet2020-11-15T16:33:49ZakwizgranWrong camera used for adding contacts on Iconia tablet* Android version: 6.0.1
* Phone model: Android-x86 ICONIA W700P (cm_android_x86_64)
* Briar version: 1.1.6 (4d26628)
* User feedback: "Front camera reversed on any app. Please add option to switch camera. I'm unable to add contacts on t...* Android version: 6.0.1
* Phone model: Android-x86 ICONIA W700P (cm_android_x86_64)
* Briar version: 1.1.6 (4d26628)
* User feedback: "Front camera reversed on any app. Please add option to switch camera. I'm unable to add contacts on this device."
Edited log:
```
10-14 21:44:21.325 I/CameraView: Opening camera
10-14 21:44:21.325 I/CameraView: Using back-facing camera
10-14 21:44:21.339 I/CameraView: Screen rotation 0 degrees, camera orientation 0 degrees
10-14 21:44:21.339 I/CameraView: Scene modes: [auto]
10-14 21:44:21.339 I/CameraView: Focus modes: [fixed]
10-14 21:44:21.339 I/CameraView: Video stabilisation enabled: false
10-14 21:44:21.339 I/CameraView: Scene mode: auto
10-14 21:44:21.339 I/CameraView: Focus mode: fixed
10-14 21:44:21.339 I/CameraView: Flash mode: off
10-14 21:44:21.339 I/CameraView: Preview size: 1280x720
...
10-14 21:44:21.379 I/CameraView: Surface created
10-14 21:44:21.379 I/CameraView: Surface changed: 1920x944
10-14 21:44:21.379 I/CameraView: Size 160x120, stretch 1.5254238, zoom 26.041666, score 0.025173334
10-14 21:44:21.379 I/CameraView: Size 176x144, stretch 1.6640986, zoom 19.728535, score 0.030459736
10-14 21:44:21.379 I/CameraView: Size 240x160, stretch 1.3559322, zoom 13.020833, score 0.056640003
10-14 21:44:21.379 I/CameraView: Size 320x200, stretch 1.2711865, zoom 7.8125, score 0.10069333
10-14 21:44:21.379 I/CameraView: Size 320x240, stretch 1.5254238, zoom 6.5104165, score 0.10069334
10-14 21:44:21.379 I/CameraView: Size 352x288, stretch 1.6640986, zoom 4.9321337, score 0.12183894
10-14 21:44:21.379 I/CameraView: Size 432x320, stretch 1.5065913, zoom 3.616898, score 0.18351361
10-14 21:44:21.379 I/CameraView: Size 480x320, stretch 1.3559322, zoom 3.2552083, score 0.22656001
10-14 21:44:21.379 I/CameraView: Size 640x480, stretch 1.5254238, zoom 1.6276041, score 0.40277335
10-14 21:44:21.379 I/CameraView: Size 1280x720, stretch 1.1440678, zoom 1.8432, score 0.47421557
10-14 21:44:21.379 I/CameraView: Best size 1280x720
10-14 21:44:21.380 I/CameraView: Video stabilisation enabled: false
10-14 21:44:21.380 I/CameraView: Scene mode: auto
10-14 21:44:21.380 I/CameraView: Focus mode: fixed
10-14 21:44:21.380 I/CameraView: Flash mode: off
10-14 21:44:21.380 I/CameraView: Preview size: 1280x720
10-14 21:44:21.380 I/CameraView: Starting preview
```https://code.briarproject.org/briar/briar/-/issues/1709CameraException: No camera on LineageOS2020-11-15T16:34:24ZakwizgranCameraException: No camera on LineageOS* Android version: 9
* Phone model: OnePlus 3T (reported by user - ACRA says unknown)
* Briar version: 1.2.4 (75dfa80)
* User feedback: "Camera error when adding nearby contact. Lineage 16, OnePlus 3T, microG."
Log:
```
11-21 18:59:15.3...* Android version: 9
* Phone model: OnePlus 3T (reported by user - ACRA says unknown)
* Briar version: 1.2.4 (75dfa80)
* User feedback: "Camera error when adding nearby contact. Lineage 16, OnePlus 3T, microG."
Log:
```
11-21 18:59:15.386 I/CameraView: Opening camera
11-21 18:59:15.391 W/KeyAgreementFragment: org.briarproject.briar.android.keyagreement.CameraException: No camera
org.briarproject.briar.android.keyagreement.CameraException: No camera
at org.briarproject.briar.android.keyagreement.CameraView.start(CameraView.java:106)
at org.briarproject.briar.android.keyagreement.KeyAgreementFragment.onStart(KeyAgreementFragment.java:149)
at android.support.v4.app.Fragment.performStart(Fragment.java:2477)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1494)
at android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1784)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1852)
at android.support.v4.app.BackStackRecord.executeOps(BackStackRecord.java:802)
at android.support.v4.app.FragmentManagerImpl.executeOps(FragmentManager.java:2625)
at android.support.v4.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2411)
at android.support.v4.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManager.java:2366)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:2273)
at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:733)
at android.os.Handler.handleCallback(Handler.java:873)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6718)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
```
The phone has front- and back-facing cameras.https://code.briarproject.org/briar/briar/-/issues/1708RSS feeds without dates can't be imported2020-11-15T16:35:19ZakwizgranRSS feeds without dates can't be importedThis problem was originally reported as #1003, but some idiot called @akwizgran started cluttering up that ticket with comments about Unicode parsing issues, so I'm moving it to a new ticket.
Example of a feed with no dates: https://blo...This problem was originally reported as #1003, but some idiot called @akwizgran started cluttering up that ticket with comments about Unicode parsing issues, so I'm moving it to a new ticket.
Example of a feed with no dates: https://blog.fefe.de/rss.xmlhttps://code.briarproject.org/briar/briar/-/issues/1703IllegalStateException: Drag shadow dimensions must be positive2020-11-15T16:35:50ZakwizgranIllegalStateException: Drag shadow dimensions must be positive* Android version: 9
* Phone model: OnePlus GM1915 (OnePlus7ProTMO)
* Briar version: 1.2.4 (75dfa80)
Stacktrace:
```
java.lang.IllegalStateException: Drag shadow dimensions must be positive
at android.view.View.startDragAndDrop(...* Android version: 9
* Phone model: OnePlus GM1915 (OnePlus7ProTMO)
* Briar version: 1.2.4 (75dfa80)
Stacktrace:
```
java.lang.IllegalStateException: Drag shadow dimensions must be positive
at android.view.View.startDragAndDrop(View.java:24302)
at android.widget.Editor.startDragAndDrop(Editor.java:1165)
at android.widget.Editor.performLongClick(Editor.java:1191)
at android.widget.TextView.performLongClick(TextView.java:11378)
at android.view.View.performLongClick(View.java:6734)
at android.view.View$CheckForLongPress.run(View.java:26148)
at android.os.Handler.handleCallback(Handler.java:873)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:7009)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:537)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
```
Last log lines:
```
12-29 03:09:42.778 I/BaseActivity: Starting GroupActivity
12-29 03:09:42.809 I/BaseActivity: Stopping GroupActivity
12-29 03:09:43.054 I/BaseActivity: Starting GroupActivity
12-29 03:09:43.682 I/ThreadListControllerImpl: Loaded last top visible message id MessageId(XXX)
12-29 03:09:43.696 I/ThreadListControllerImpl: Loaded last top visible message id MessageId(XXX)
12-29 03:09:43.728 I/ThreadScrollListener: Updating unread count: top=0 bottom=3
12-29 03:09:44.333 I/ThreadScrollListener: Updating unread count: top=0 bottom=2
12-29 03:09:45.502 I/ThreadScrollListener: Updating unread count: top=0 bottom=1
12-29 03:09:45.520 I/ThreadScrollListener: Updating unread count: top=0 bottom=1
12-29 03:09:45.593 I/ThreadScrollListener: Updating unread count: top=0 bottom=0
12-29 03:09:45.598 I/ThreadScrollListener: Updating unread count: top=0 bottom=0
12-29 03:09:53.389 I/BaseActivity: Stopping GroupActivity
12-29 03:10:04.225 I/BaseActivity: Starting GroupActivity
12-29 03:10:04.250 I/ThreadListControllerImpl: Loaded last top visible message id MessageId(XXX)
```
Looks like a platform bug.https://code.briarproject.org/briar/briar/-/issues/1702RuntimeException: InputChannel is not initialized2020-11-15T16:36:31ZakwizgranRuntimeException: InputChannel is not initialized* Android version: 10
* Phone model: Google Pixel 2 (walleye)
* Briar version: 1.2.4 (75dfa80)
Stacktrace:
```
java.lang.RuntimeException: InputChannel is not initialized.
at android.view.InputEventReceiver.nativeInit(Native Met...* Android version: 10
* Phone model: Google Pixel 2 (walleye)
* Briar version: 1.2.4 (75dfa80)
Stacktrace:
```
java.lang.RuntimeException: InputChannel is not initialized.
at android.view.InputEventReceiver.nativeInit(Native Method)
at android.view.InputEventReceiver.<init>(InputEventReceiver.java:71)
at android.view.ViewRootImpl$WindowInputEventReceiver.<init>(ViewRootImpl.java:7775)
at android.view.ViewRootImpl.setView(ViewRootImpl.java:980)
at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:387)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:95)
at android.widget.Toast$TN.handleShow(Toast.java:514)
at android.widget.Toast$TN$1.handleMessage(Toast.java:417)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7356)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)
```
Log:
```
12-15 23:14:17.134 I/BriarApplicationImpl: Created
12-15 23:14:17.145 I/CryptoComponentImpl: Default SecureRandom: AndroidOpenSSL SHA1PRNG
12-15 23:14:17.172 I/CryptoComponentImpl: Installed SecureRandom: UnixPRNG SHA1PRNG
12-15 23:14:17.253 I/LifecycleManagerImpl: Registering executor TimeLoggingExecutor
12-15 23:14:17.253 I/LifecycleManagerImpl: Registering executor ThreadPoolExecutor
12-15 23:14:17.253 I/LifecycleManagerImpl: Registering executor ScheduledThreadPoolExecutor
12-15 23:14:17.253 I/LifecycleManagerImpl: Registering service AndroidNetworkManager
12-15 23:14:17.253 I/LifecycleManagerImpl: Registering service AndroidBatteryManager
12-15 23:14:17.254 I/LifecycleManagerImpl: Registering service KeyManagerImpl
12-15 23:14:17.254 I/LifecycleManagerImpl: Registering open database hook IdentityManagerImpl
12-15 23:14:17.254 I/LifecycleManagerImpl: Registering executor TimeLoggingExecutor
12-15 23:14:17.255 I/LifecycleManagerImpl: Registering service ValidationManagerImpl
12-15 23:14:17.256 I/LifecycleManagerImpl: Registering open database hook ClientVersioningManagerImpl
12-15 23:14:17.256 I/LifecycleManagerImpl: Registering service ClientVersioningManagerImpl
12-15 23:14:17.256 I/LifecycleManagerImpl: Registering open database hook TransportPropertyManagerImpl
12-15 23:14:17.257 I/LifecycleManagerImpl: Registering service PluginManagerImpl
12-15 23:14:17.257 I/LifecycleManagerImpl: Registering service RendezvousPollerImpl
12-15 23:14:17.258 I/LifecycleManagerImpl: Registering open database hook BlogManagerImpl
12-15 23:14:17.259 I/LifecycleManagerImpl: Registering open database hook FeedManagerImpl
12-15 23:14:17.260 I/LifecycleManagerImpl: Registering open database hook GroupInvitationManagerImpl
12-15 23:14:17.261 I/LifecycleManagerImpl: Registering open database hook MessagingManagerImpl
12-15 23:14:17.262 I/LifecycleManagerImpl: Registering open database hook ForumSharingManagerImpl
12-15 23:14:17.262 I/LifecycleManagerImpl: Registering open database hook BlogSharingManagerImpl
12-15 23:14:17.263 I/LifecycleManagerImpl: Registering open database hook IntroductionManagerImpl
12-15 23:14:17.264 I/LifecycleManagerImpl: Registering service AndroidNotificationManagerImpl
12-15 23:14:17.264 I/LifecycleManagerImpl: Registering service ScreenFilterMonitorImpl
12-15 23:14:17.264 I/LifecycleManagerImpl: Registering service NetworkUsageLogger
12-15 23:14:17.265 I/LifecycleManagerImpl: Registering service DozeWatchdogImpl
12-15 23:14:17.266 I/LifecycleManagerImpl: Registering service LockManagerImpl
12-15 23:14:17.266 I/LifecycleManagerImpl: Registering open database hook RecentEmojiImpl
12-15 23:14:17.348 I/BriarService: Created
12-15 23:14:17.348 I/BriarService: No database key
12-15 23:14:17.401 I/BriarService: Destroyed
```
It's hard to understand what's happening here. Judging by the last three log lines, the Briar process may have been created by the OS relaunching BriarService after an earlier shutdown or crash (otherwise the service wouldn't be created until after signing in). I have no idea why that would cause a toast to be shown, which seems to be what triggers the crash.https://code.briarproject.org/briar/briar/-/issues/1701CameraException on Nexus 7 (front-facing camera)2020-11-15T16:37:39ZakwizgranCameraException on Nexus 7 (front-facing camera)* Android version: 7.1.2
* Phone model: Google Nexus 7
* Briar version: 1.1.6 (4d26628)
* User feedback: "Add a contact is impossible due to camera error. Another way to add contacts is essential."
Log snippet:
```
09-22 09:56:22.542 I/...* Android version: 7.1.2
* Phone model: Google Nexus 7
* Briar version: 1.1.6 (4d26628)
* User feedback: "Add a contact is impossible due to camera error. Another way to add contacts is essential."
Log snippet:
```
09-22 09:56:22.542 I/CameraView: Setting preview consumer
09-22 09:56:22.543 I/CameraView: Opening camera
09-22 09:56:22.547 I/CameraView: Using front-facing camera
09-22 09:56:22.684 I/CameraView: Screen rotation 0 degrees, camera orientation 90 degrees
09-22 09:56:22.686 I/CameraView: Focus modes: [fixed]
09-22 09:56:22.693 W/KeyAgreementFragment: org.briarproject.briar.android.keyagreement.CameraException: java.lang.RuntimeException: setParameters failed
org.briarproject.briar.android.keyagreement.CameraException: java.lang.RuntimeException: setParameters failed
at org.briarproject.briar.android.keyagreement.CameraView.setBestParameters(CameraView.java:337)
at org.briarproject.briar.android.keyagreement.CameraView.start(CameraView.java:141)
at org.briarproject.briar.android.keyagreement.KeyAgreementFragment.onStart(KeyAgreementFragment.java:149)
at android.support.v4.app.Fragment.performStart(Fragment.java:2477)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1494)
at android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1784)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1852)
at android.support.v4.app.BackStackRecord.executeOps(BackStackRecord.java:802)
at android.support.v4.app.FragmentManagerImpl.executeOps(FragmentManager.java:2625)
at android.support.v4.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2411)
at android.support.v4.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManager.java:2366)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:2273)
at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:733)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6186)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779)
Caused by: java.lang.RuntimeException: setParameters failed
at android.hardware.Camera.native_setParameters(Native Method)
at android.hardware.Camera.setParameters(Camera.java:2015)
at org.briarproject.briar.android.keyagreement.CameraView.setBestParameters(CameraView.java:334)
at org.briarproject.briar.android.keyagreement.CameraView.start(CameraView.java:141)
at org.briarproject.briar.android.keyagreement.KeyAgreementFragment.onStart(KeyAgreementFragment.java:149)
at android.support.v4.app.Fragment.performStart(Fragment.java:2477)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1494)
at android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1784)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1852)
at android.support.v4.app.BackStackRecord.executeOps(BackStackRecord.java:802)
at android.support.v4.app.FragmentManagerImpl.executeOps(FragmentManager.java:2625)
at android.support.v4.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2411)
at android.support.v4.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManager.java:2366)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:2273)
at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:733)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6186)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779)
```https://code.briarproject.org/briar/briar/-/issues/1698SecurityException when binding Bluetooth socket2022-12-28T13:18:55ZakwizgranSecurityException when binding Bluetooth socket* Android version: 9
* Phone model: Honor COL-L29 (COL-L29RU)
* Briar version: 1.2.4 (75dfa80)
Stacktrace:
```
java.lang.SecurityException: Not allowed for non-active users
at android.os.Parcel.createException(Parcel.java:1953)
...* Android version: 9
* Phone model: Honor COL-L29 (COL-L29RU)
* Briar version: 1.2.4 (75dfa80)
Stacktrace:
```
java.lang.SecurityException: Not allowed for non-active users
at android.os.Parcel.createException(Parcel.java:1953)
at android.os.Parcel.readException(Parcel.java:1921)
at android.os.Parcel.readException(Parcel.java:1871)
at android.bluetooth.IBluetoothSocketManager$Stub$Proxy.createSocketChannel(IBluetoothSocketManager.java:207)
at android.bluetooth.BluetoothSocket.bindListen(BluetoothSocket.java:456)
at android.bluetooth.BluetoothAdapter.createNewRfcommSocketAndRecord(BluetoothAdapter.java:2152)
at android.bluetooth.BluetoothAdapter.listenUsingInsecureRfcommWithServiceRecord(BluetoothAdapter.java:2103)
at org.briarproject.bramble.plugin.bluetooth.AndroidBluetoothPlugin.openServerSocket(AndroidBluetoothPlugin.java:158)
at org.briarproject.bramble.plugin.bluetooth.AndroidBluetoothPlugin.openServerSocket(AndroidBluetoothPlugin.java:57)
at org.briarproject.bramble.plugin.bluetooth.BluetoothPlugin.lambda$bind$0$BluetoothPlugin(BluetoothPlugin.java:179)
at org.briarproject.bramble.plugin.bluetooth.-$$Lambda$BluetoothPlugin$5LFrMRmXQDZNSHk-RYMiHxB1iBE.run(Unknown Source:2)
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)
```
Edited log:
```
12-23 13:01:56.423 I/AndroidNetworkManager: Received broadcast android.intent.action.SCREEN_OFF
...
12-23 13:01:57.318 I/AndroidNetworkManager: Received broadcast android.intent.action.SCREEN_ON
...
12-23 13:02:01.460 I/AndroidBluetoothPlugin: Scan mode: None
12-23 13:02:02.034 I/AndroidBluetoothPlugin: Scan mode: None
12-23 13:02:02.051 I/BluetoothPlugin: java.io.IOException: read failed, socket might closed or timeout, read ret: -1
12-23 13:02:02.069 I/BluetoothPlugin: Bluetooth disabled
12-23 13:02:02.070 I/BluetoothConnectionLimiterImpl: All connections closed
...
12-23 13:02:05.087 I/BluetoothPlugin: Bluetooth enabled
12-23 13:02:05.257 I/BluetoothPlugin: Local address null
```
No activities are shown stopping/starting when the screen turns off/on, which suggests Briar's running in the background. Looks like there might be a restriction on background apps binding Bluetooth sockets.Android 1.4https://code.briarproject.org/briar/briar/-/issues/1696Crash when trying to load key from keystore2022-06-13T15:00:45ZakwizgranCrash when trying to load key from keystoreI got the following crash while signing into an existing account on the API 26 emulator:
```
java.lang.RuntimeException: java.security.UnrecoverableKeyException: Failed to obtain information about key
at org.briarproject.bri...I got the following crash while signing into an existing account on the API 26 emulator:
```
java.lang.RuntimeException: java.security.UnrecoverableKeyException: Failed to obtain information about key
at org.briarproject.briar.android.AndroidKeyStrengthener.isInitialised(AndroidKeyStrengthener.java:83)
at org.briarproject.bramble.crypto.CryptoComponentImpl.decryptWithPassword(CryptoComponentImpl.java:397)
at org.briarproject.bramble.account.AccountManagerImpl.loadAndDecryptDatabaseKey(AccountManagerImpl.java:215)
at org.briarproject.bramble.account.AccountManagerImpl.signIn(AccountManagerImpl.java:198)
at org.briarproject.briar.android.login.StartupViewModel.lambda$validatePassword$0$StartupViewModel(StartupViewModel.java:108)
at org.briarproject.briar.android.login.-$$Lambda$StartupViewModel$g7VDyWGXbuZadVRd8U1dRkICyWk.run(Unknown Source:4)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
at java.lang.Thread.run(Thread.java:764)
Caused by: java.security.UnrecoverableKeyException: Failed to obtain information about key
at android.security.keystore.AndroidKeyStoreProvider.loadAndroidKeyStoreSecretKeyFromKeystore(AndroidKeyStoreProvider.java:282)
at android.security.keystore.AndroidKeyStoreSpi.engineGetKey(AndroidKeyStoreSpi.java:98)
at java.security.KeyStoreSpi.engineGetEntry(KeyStoreSpi.java:474)
at java.security.KeyStore.getEntry(KeyStore.java:1560)
at org.briarproject.briar.android.AndroidKeyStrengthener.isInitialised(AndroidKeyStrengthener.java:75)
at org.briarproject.bramble.crypto.CryptoComponentImpl.decryptWithPassword(CryptoComponentImpl.java:397)
at org.briarproject.bramble.account.AccountManagerImpl.loadAndDecryptDatabaseKey(AccountManagerImpl.java:215)
at org.briarproject.bramble.account.AccountManagerImpl.signIn(AccountManagerImpl.java:198)
at org.briarproject.briar.android.login.StartupViewModel.lambda$validatePassword$0$StartupViewModel(StartupViewModel.java:108)
at org.briarproject.briar.android.login.-$$Lambda$StartupViewModel$g7VDyWGXbuZadVRd8U1dRkICyWk.run(Unknown Source:4)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
at java.lang.Thread.run(Thread.java:764)
Caused by: android.security.KeyStoreException: Invalid key blob
at android.security.KeyStore.getKeyStoreException(KeyStore.java:695)
at android.security.keystore.AndroidKeyStoreProvider.loadAndroidKeyStoreSecretKeyFromKeystore(AndroidKeyStoreProvider.java:283)
at android.security.keystore.AndroidKeyStoreSpi.engineGetKey(AndroidKeyStoreSpi.java:98)
at java.security.KeyStoreSpi.engineGetEntry(KeyStoreSpi.java:474)
at java.security.KeyStore.getEntry(KeyStore.java:1560)
at org.briarproject.briar.android.AndroidKeyStrengthener.isInitialised(AndroidKeyStrengthener.java:75)
at org.briarproject.bramble.crypto.CryptoComponentImpl.decryptWithPassword(CryptoComponentImpl.java:397)
at org.briarproject.bramble.account.AccountManagerImpl.loadAndDecryptDatabaseKey(AccountManagerImpl.java:215)
at org.briarproject.bramble.account.AccountManagerImpl.signIn(AccountManagerImpl.java:198)
at org.briarproject.briar.android.login.StartupViewModel.lambda$validatePassword$0$StartupViewModel(StartupViewModel.java:108)
at org.briarproject.briar.android.login.-$$Lambda$StartupViewModel$g7VDyWGXbuZadVRd8U1dRkICyWk.run(Unknown Source:4)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
at java.lang.Thread.run(Thread.java:764)
```
Looks like we can get a GeneralSecurityException instead of a clean failure when trying to load the key. We should handle this like a clean failure instead of crashing.https://code.briarproject.org/briar/briar/-/issues/1694Make auto-logout configurable2020-11-15T17:09:52Zmartin ➬Make auto-logout configurableI understand that Briar's legacy informs the need to «log out» a user on device restart, and possibly other events. However, this is massive adoption hindrance for some. I've activated a dozen people at a recent conference. Two days late...I understand that Briar's legacy informs the need to «log out» a user on device restart, and possibly other events. However, this is massive adoption hindrance for some. I've activated a dozen people at a recent conference. Two days later, 4 weren't online anymore, and didn't see any messages. Today, even the last person went offline. I am sure they didn't quit, but just couldn't be bothered to log in again after the device restarted.
However, as a result of this security feature, Briar has been unreliable for this group, to the point of being useless now.
In the interest of facilitating adoption, please consider making this configurable, and even defaulting to keeping the user «logged in» across reboots etc.https://code.briarproject.org/briar/briar/-/issues/1690Add private message deletion to user manual2020-11-15T17:10:49ZakwizgranAdd private message deletion to user manualCleopatraCleopatrahttps://code.briarproject.org/briar/briar/-/issues/1689More security for Briar - A public key for each contact2020-11-15T17:12:51ZjomocuMore security for Briar - A public key for each contactThis would greatly increase the security of the application, it is a suggestion ...
If each contact has a public key, in case of being hacked, you would only understand the information of a user, you would not understand the information...This would greatly increase the security of the application, it is a suggestion ...
If each contact has a public key, in case of being hacked, you would only understand the information of a user, you would not understand the information of all your users.https://code.briarproject.org/briar/website/-/issues/15Open external links in a new tab using rel="noopener"2020-11-15T17:13:26ZakwizgranOpen external links in a new tab using rel="noopener"Before the Hugo migration, external links opened in a new tab using `rel="noopener noreferrer"`. We had to remove `noopener` because Hugo didn't support it. But @grote has pointed out that [it's now possible with Hugo](https://code.briar...Before the Hugo migration, external links opened in a new tab using `rel="noopener noreferrer"`. We had to remove `noopener` because Hugo didn't support it. But @grote has pointed out that [it's now possible with Hugo](https://code.briarproject.org/briar/website/merge_requests/24#note_39615):
> Hugo 0.62 now supports [Markdown Render Hooks](https://gohugo.io/getting-started/configuration-markup/#markdown-render-hooks) which can be used for things like adding `rel="noopener"` attributes on all links.