briar issueshttps://code.briarproject.org/briar/briar/-/issues2023-03-27T11:11:22Zhttps://code.briarproject.org/briar/briar/-/issues/2425List of RSS feeds doesn't update when feed is removed2023-03-27T11:11:22ZakwizgranList of RSS feeds doesn't update when feed is removedThe list of RSS feeds doesn't update when the feed is removed by unsubscribing via the feed's overflow menu, rather than using the delete button in the list of RSS feeds.
Steps to reproduce:
* Add an RSS feed
* Tap the entry in the list...The list of RSS feeds doesn't update when the feed is removed by unsubscribing via the feed's overflow menu, rather than using the delete button in the list of RSS feeds.
Steps to reproduce:
* Add an RSS feed
* Tap the entry in the list of RSS feeds to open the feed
* Unsubscribe via the overflow menu ("Remove blog")
* Expected: The list of RSS feeds is shown, it's now empty
* Actual: The list of RSS feeds is show, it still contains the removed feed. Tapping the feed again causes a NoSuchGroupException (error toast, no crash)https://code.briarproject.org/briar/briar/-/issues/2424[Feature] Add the ability to visualise the use of storage2023-03-30T08:54:30Zre tiolus[Feature] Add the ability to visualise the use of storageIt would be interesting, especially on the desktop client, to be able to easily consult the storage that Briar uses, especially when you start adding a lot of contacts and entering many groups/forumsIt would be interesting, especially on the desktop client, to be able to easily consult the storage that Briar uses, especially when you start adding a lot of contacts and entering many groups/forumshttps://code.briarproject.org/briar/briar/-/issues/2423Adding contact at a distance - Tapping the 'Add contact' button before the ni...2023-03-16T16:09:15ZIvanaAdding contact at a distance - Tapping the 'Add contact' button before the nickname is typed in, leaves the screen 'in progress'...**Steps to reproduce:**
- tap the 'add contact at a distance' button
- past the contact's link into the appropriate field and tap Continue
- On the screen that follows, user needs to type in the nickname for their contact.
- Once the k...**Steps to reproduce:**
- tap the 'add contact at a distance' button
- past the contact's link into the appropriate field and tap Continue
- On the screen that follows, user needs to type in the nickname for their contact.
- Once the keyboard opens, the button Add contact and the line where the nickname needs to be typed in are quite close on the screen
![Screenshot_20230316_154402](/uploads/c72e004ce6af6af07b20d356e7f64d1f/Screenshot_20230316_154402.png)
- This means that it could happen that the user accidentally taps on the Add contact button before they type in the nickname
- if that happens, then the user sees this
![Screenshot_20230316_154221](/uploads/3d580b498a2a2a337e8fa89d9c3c818d/Screenshot_20230316_154221.png)
- the user is still able to type the nicknam in, but tapping the enter button on the keyboard doesn't do anything other than closing the keyboard.
- once the keyboard is closed, then the user sees this
![Screenshot_20230316_155028](/uploads/cee861c9ecd822405197fcc626fc769f/Screenshot_20230316_155028.png)
The screen keeps showing the small 'inprogress' circle...
it happens inMaster and in the MR 1770 ( build hash 1627f4f )
Tested onHTC Android 7, Nokia Android 10
Workaround is to navigate one screen back and tap on Continue button again...https://code.briarproject.org/briar/briar/-/issues/2422OutOfMemoryError: Could not allocate JNI Env2024-03-18T18:05:12ZakwizgranOutOfMemoryError: Could not allocate JNI Env* Android version: 7.1.2
* Phone model: UHANS A6
* Briar version: 1.4.22 (f02bbeb)
Stacktrace:
```
java.lang.OutOfMemoryError: Could not allocate JNI Env
at java.lang.Thread.nativeCreate(Native Method)
at java.lang.Threa...* Android version: 7.1.2
* Phone model: UHANS A6
* Briar version: 1.4.22 (f02bbeb)
Stacktrace:
```
java.lang.OutOfMemoryError: Could not allocate JNI Env
at java.lang.Thread.nativeCreate(Native Method)
at java.lang.Thread.start(Thread.java:730)
at java.util.concurrent.ThreadPoolExecutor.addWorker(ThreadPoolExecutor.java:941)
at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1359)
at org.briarproject.bramble.system.AndroidWakeLockManagerImpl.executeWakefully(AndroidWakeLockManagerImpl.java:71)
at org.briarproject.bramble.system.AndroidWakefulIoExecutorModule.lambda$provideWakefulIoExecutor$0(AndroidWakefulIoExecutorModule.java:20)
at org.briarproject.bramble.system.AndroidWakefulIoExecutorModule.$r8$lambda$tnFm9U65p91JUPzzmM4twddDl7M(AndroidWakefulIoExecutorModule.java)
at org.briarproject.bramble.system.AndroidWakefulIoExecutorModule$$ExternalSyntheticLambda0.execute(R8$$SyntheticClass)
at org.briarproject.bramble.plugin.tor.TorPlugin.connect(TorPlugin.java:638)
at org.briarproject.bramble.plugin.tor.TorPlugin.poll(TorPlugin.java:633)
at org.briarproject.bramble.plugin.PollerImpl.poll(PollerImpl.java:231)
at org.briarproject.bramble.plugin.PollerImpl.access$1000(PollerImpl.java:57)
at org.briarproject.bramble.plugin.PollerImpl$PollTask.run(PollerImpl.java:277)
at org.briarproject.bramble.system.AndroidWakeLockManagerImpl.lambda$executeWakefully$0(AndroidWakeLockManagerImpl.java:73)
at org.briarproject.bramble.system.AndroidWakeLockManagerImpl.$r8$lambda$P0v7ccI1GqbvGyqUJX4idUffuJI(AndroidWakeLockManagerImpl.java)
at org.briarproject.bramble.system.AndroidWakeLockManagerImpl$$ExternalSyntheticLambda1.run(R8$$SyntheticClass)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
at java.lang.Thread.run(Thread.java:761)
```
Last lines of log:
```
03-13 04:15:57.257 I/PollerImpl: Polling plugin org.briarproject.bramble.tor
03-13 04:15:57.394 I/ConnectionRegistryImpl: 5 contacts connected or better: org.briarproject.bramble.tor
03-13 04:15:57.395 I/TorPlugin: Connecting to v3 tj2[scrubbed]
03-13 04:15:57.395 I/TorPlugin: Connecting to v3 nix[scrubbed]
03-13 04:15:57.396 I/TorPlugin: Connecting to v3 ela[scrubbed]
03-13 04:15:57.396 I/TorPlugin: Connecting to v3 jvx[scrubbed]
03-13 04:15:57.396 I/TorPlugin: Connecting to v3 72z[scrubbed]
03-13 04:15:57.397 I/TorPlugin: Connecting to v3 msd[scrubbed]
03-13 04:15:57.395 I/TorPlugin: Connecting to v3 37p[scrubbed]
03-13 04:15:57.397 I/TorPlugin: Connecting to v3 lp6[scrubbed]
03-13 04:15:57.400 I/TorPlugin: Connecting to v3 uqp[scrubbed]
03-13 04:15:57.400 I/TorPlugin: Connecting to v3 jqf[scrubbed]
03-13 04:15:57.400 I/TorPlugin: Connecting to v3 ihj[scrubbed]
03-13 04:15:57.401 I/TorPlugin: Connecting to v3 vux[scrubbed]
03-13 04:15:57.401 I/TorPlugin: Connecting to v3 ick[scrubbed]
03-13 04:15:57.402 I/TorPlugin: Connecting to v3 e2v[scrubbed]
03-13 04:15:57.402 I/TorPlugin: Connecting to v3 beq[scrubbed]
03-13 04:15:57.402 I/TorPlugin: Connecting to v3 s74[scrubbed]
03-13 04:15:57.402 I/TorPlugin: Connecting to v3 2qq[scrubbed]
03-13 04:15:57.403 I/TorPlugin: Connecting to v3 fvs[scrubbed]
03-13 04:15:57.403 I/TorPlugin: Connecting to v3 hbd[scrubbed]
03-13 04:15:57.404 I/TorPlugin: Connecting to v3 cvj[scrubbed]
03-13 04:15:57.404 I/TorPlugin: Connecting to v3 btz[scrubbed]
03-13 04:15:57.404 I/TorPlugin: Connecting to v3 e6y[scrubbed]
03-13 04:15:57.404 I/TorPlugin: Connecting to v3 d5z[scrubbed]
03-13 04:15:57.408 I/TorPlugin: Could not connect to v3 fvs[scrubbed]: java.net.ConnectException: Too many open files
03-13 04:15:57.408 I/DuplexOutgoingSession: Sending keepalive
03-13 04:15:57.416 I/TorPlugin: Could not connect to v3 jqf[scrubbed]: java.net.SocketException: Too many open files
03-13 04:15:57.416 I/TorPlugin: Could not connect to v3 ick[scrubbed]: java.net.ConnectException: Too many open files
03-13 04:15:57.418 I/TorPlugin: Connecting to v3 z7i[scrubbed]
03-13 04:15:57.420 I/TorPlugin: Connecting to v3 o2j[scrubbed]
03-13 04:15:57.420 I/TorPlugin: Could not connect to v3 o2j[scrubbed]: java.net.SocketException: Too many open files
```
* NativeHeapAllocated: 16,363,552
* NativeHeapFree: 4,607,968
* NativeHeapTotal: 20,971,520
* SystemMemoryFree: 228,368,384
* SystemMemoryLow: false
* SystemMemoryThreshold: 150,994,944
* SystemMemoryTotal: 994,488,320
* VirtualMachineMemoryFree: 323,760
* VirtualMachineMemoryMaximum: 201,326,592
* VirtualMachineMemoryTotal: 44,992,648https://code.briarproject.org/briar/briar/-/issues/2421Link to original post is lost when RSS post is very long2023-03-06T16:08:14ZakwizgranLink to original post is lost when RSS post is very longWhen an RSS post is long enough that it needs to be truncated to fit into a Briar blog post, the link to the original post is lost.
This can currently be seen with the feed https://dynomight.net/feed.xml, where the post https://dynomigh...When an RSS post is long enough that it needs to be truncated to fit into a Briar blog post, the link to the original post is lost.
This can currently be seen with the feed https://dynomight.net/feed.xml, where the post https://dynomight.net/scaling/ gets truncated.https://code.briarproject.org/briar/briar/-/issues/2420SecurityException when requesting Bluetooth discoverability2024-03-19T11:28:53ZakwizgranSecurityException when requesting Bluetooth discoverability* Android version: 12
* Phone model: Nubia NX679J (NX679J-UN)
* Briar version: 1.4.22 (f02bbeb)
* User feedback: "Attempting to add contact."
Stacktrace:
```
java.lang.SecurityException: Permission Denial: starting Intent { act=android....* Android version: 12
* Phone model: Nubia NX679J (NX679J-UN)
* Briar version: 1.4.22 (f02bbeb)
* User feedback: "Attempting to add contact."
Stacktrace:
```
java.lang.SecurityException: Permission Denial: starting Intent { act=android.bluetooth.adapter.action.REQUEST_DISCOVERABLE cmp=com.android.settings/.bluetooth.RequestPermissionActivity (has extras) } from ProcessRecord{708319 15100:org.b
riarproject.briar.android/u0a226} (pid=15100, uid=10226) requires android.permission.BLUETOOTH
at android.os.Parcel.createExceptionOrNull(Parcel.java:2426)
at android.os.Parcel.createException(Parcel.java:2410)
at android.os.Parcel.readException(Parcel.java:2393)
at android.os.Parcel.readException(Parcel.java:2335)
at android.app.IActivityTaskManager$Stub$Proxy.startActivity(IActivityTaskManager.java:2559)
at android.app.Instrumentation.execStartActivity(Instrumentation.java:2071)
at android.app.Activity.startActivityForResult(Activity.java:5574)
at androidx.activity.ComponentActivity.startActivityForResult(ComponentActivity.java:574)
at androidx.core.app.ActivityCompat.startActivityForResult(ActivityCompat.java:234)
at androidx.activity.ComponentActivity$2.onLaunch(ComponentActivity.java:208)
at androidx.activity.result.ActivityResultRegistry$2.launch(ActivityResultRegistry.java:166)
at androidx.activity.result.ActivityResultLauncher.launch(ActivityResultLauncher.java:47)
at org.briarproject.briar.android.contact.add.nearby.AddNearbyContactActivity.requestBluetoothDiscoverable(AddNearbyContactActivity.java:125)
at org.briarproject.briar.android.contact.add.nearby.AddNearbyContactActivity.lambda$onCreate$0(AddNearbyContactActivity.java:78)
at org.briarproject.briar.android.contact.add.nearby.AddNearbyContactActivity.$r8$lambda$AaDmrglLROf2UvjD046fjtdaWVs(Unknown Source:0)
at org.briarproject.briar.android.contact.add.nearby.AddNearbyContactActivity$$ExternalSyntheticLambda2.onEvent(Unknown Source:4)
at org.briarproject.briar.android.viewmodel.LiveEvent$LiveEventObserver.onChanged(LiveEvent.java:84)
at org.briarproject.briar.android.viewmodel.LiveEvent$LiveEventObserver.onChanged(LiveEvent.java:70)
at androidx.lifecycle.LiveData.considerNotify(LiveData.java:133)
at androidx.lifecycle.LiveData.dispatchingValue(LiveData.java:151)
at androidx.lifecycle.LiveData.setValue(LiveData.java:309)
at org.briarproject.briar.android.viewmodel.MutableLiveEvent.setEvent(MutableLiveEvent.java:29)
at org.briarproject.briar.android.contact.add.nearby.AddNearbyContactViewModel.showQrCodeFragmentIfAllowed(AddNearbyContactViewModel.java:410)
at org.briarproject.briar.android.contact.add.nearby.AddNearbyContactIntroFragment.lambda$new$0(AddNearbyContactIntroFragment.java:38)
at org.briarproject.briar.android.contact.add.nearby.AddNearbyContactIntroFragment.$r8$lambda$O-WIAJRYMQrkvddeOqSFkFHjtQ0(Unknown Source:0)
at org.briarproject.briar.android.contact.add.nearby.AddNearbyContactIntroFragment$$ExternalSyntheticLambda1.onActivityResult(Unknown Source:4)
at androidx.activity.result.ActivityResultRegistry.dispatchResult(ActivityResultRegistry.java:367)
at androidx.activity.ComponentActivity$2$1.run(ComponentActivity.java:159)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:242)
at android.os.Looper.loop(Looper.java:374)
at android.app.ActivityThread.main(ActivityThread.java:9333)
at java.lang.reflect.Method.invoke(Native Method)
```
Last line of log:
```
03-03 00:28:17.358 I/AddNearbyContactActivity: Asking for Bluetooth discoverability
```
Looks like another manufacturer that didn't completely remove the old Bluetooth permission checks when migrating to the new Android 12 permissions.Android 1.4akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/2419Adding Slovak to language menu2023-03-15T12:28:47ZJozef GaalAdding Slovak to language menuI have completed the translation for the Slovak language.
Can you please add Slovak to the language menu for Android app?I have completed the translation for the Slovak language.
Can you please add Slovak to the language menu for Android app?https://code.briarproject.org/briar/briar/-/issues/2418"Signing out" progress screen is no longer shown when relaunching quickly aft...2023-08-08T01:50:09Zakwizgran"Signing out" progress screen is no longer shown when relaunching quickly after signing outWhen the app was relaunched quickly after signing out, we used to show a progress screen with a "signing out" message to make it clear that the user's previous action was still being processed. But now when I relaunch the app after signi...When the app was relaunched quickly after signing out, we used to show a progress screen with a "signing out" message to make it clear that the user's previous action was still being processed. But now when I relaunch the app after signing out, the UI immediately closes again without letting me see the progress screen. This can happen several times before shutdown completes, so it's not just a race between relaunching the app and shutdown completing.
Tested on Android 13 (CalyxOS 4.6.1).https://code.briarproject.org/briar/briar/-/issues/2417Add ability to mark private message / groups / forums as read2023-11-06T19:49:17Zre tiolusAdd ability to mark private message / groups / forums as readEx: When joining a forum with over 1000 posts, it is horrible to have to manually scroll to the last post. It would be necessary to add an option to mark conversations as read.Ex: When joining a forum with over 1000 posts, it is horrible to have to manually scroll to the last post. It would be necessary to add an option to mark conversations as read.https://code.briarproject.org/briar/briar/-/issues/2416F-Droid shows a warning about Briar2023-02-23T14:10:00ZMarek KütheF-Droid shows a warning about BriarHello,
F-Droid tells me that Briar contains a security vulnerability and that I should uninstall Briar. Is this a false positive? If no, is it possible to remove this security hole?
![warn1](/uploads/3d76dde9c8050a84858e3193b4eb42fa/wa...Hello,
F-Droid tells me that Briar contains a security vulnerability and that I should uninstall Briar. Is this a false positive? If no, is it possible to remove this security hole?
![warn1](/uploads/3d76dde9c8050a84858e3193b4eb42fa/warn1.png)
![warn2](/uploads/5bf79a4aaef41049a0cc30e2cd168a67/warn2.png)https://code.briarproject.org/briar/briar/-/issues/2415NPE in TimeoutInputStream2023-02-21T13:44:15ZakwizgranNPE in TimeoutInputStream* Android version: 10
* Briar version: 1.4.20 (6b20b03)
* Phone model: SPRD ums512_1h10_Natv
Stacktrace:
```
java.lang.NullPointerException: Attempt to invoke virtual method 'int java.io.InputStream.read(byte[], int, int)' on a null obj...* Android version: 10
* Briar version: 1.4.20 (6b20b03)
* Phone model: SPRD ums512_1h10_Natv
Stacktrace:
```
java.lang.NullPointerException: Attempt to invoke virtual method 'int java.io.InputStream.read(byte[], int, int)' on a null object reference
at org.briarproject.bramble.io.TimeoutInputStream.read(TimeoutInputStream.java:52)
at org.briarproject.bramble.util.IoUtils.read(IoUtils.java:95)
at org.briarproject.bramble.connection.Connection.readTag(Connection.java:59)
at org.briarproject.bramble.connection.Connection.recogniseTag(Connection.java:49)
at org.briarproject.bramble.connection.IncomingDuplexSyncConnection.run(IncomingDuplexSyncConnection.java:44)
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:919)
```
Edited log:
```
02-16 17:40:19.815 I/BaseActivity: Pausing ConversationActivity
02-16 17:40:19.842 I/BaseActivity: Creating ConnectViaBluetoothActivity
02-16 17:40:19.870 I/BaseActivity: Starting ConnectViaBluetoothActivity
02-16 17:40:19.872 I/BaseActivity: Resuming ConnectViaBluetoothActivity
02-16 17:40:20.349 I/BaseActivity: Stopping ConversationActivity
02-16 17:40:22.536 I/BaseActivity: Pausing ConnectViaBluetoothActivity
02-16 17:40:22.679 I/BaseActivity: Resuming ConnectViaBluetoothActivity
02-16 17:40:22.690 I/BaseActivity: Pausing ConnectViaBluetoothActivity
02-16 17:40:22.781 I/AndroidBluetoothPlugin: Scan mode: Discoverable
02-16 17:40:22.822 I/BluetoothConnectionLimiterImpl: Limiting started
02-16 17:40:22.833 I/BaseActivity: Resuming ConnectViaBluetoothActivity
02-16 17:40:22.873 I/AndroidBluetoothPlugin: Discovery started
02-16 17:40:25.153 I/BaseActivity: Pausing ConnectViaBluetoothActivity
02-16 17:40:25.310 I/BaseActivity: Resuming ConnectViaBluetoothActivity
02-16 17:40:31.235 I/PollerImpl: Polling plugin org.briarproject.bramble.bluetooth
02-16 17:40:31.239 I/ConnectionRegistryImpl: 0 contacts connected or better: org.briarproject.bramble.bluetooth
02-16 17:40:31.239 I/BluetoothConnectionLimiterImpl: Can't open contact connection while limiting
02-16 17:40:32.850 I/AndroidBluetoothPlugin: Cancelling discovery
02-16 17:40:32.853 I/AndroidBluetoothPlugin: Could not connect to any devices
02-16 17:40:37.857 W/ConnectViaBluetoothViewModel: Failed to connect
02-16 17:40:37.858 I/BluetoothConnectionLimiterImpl: Limiting ended
02-16 17:40:37.894 I/BaseActivity: Pausing ConnectViaBluetoothActivity
02-16 17:40:37.935 I/BaseActivity: Starting ConversationActivity
02-16 17:40:37.938 I/BaseActivity: Resuming ConversationActivity
02-16 17:40:38.418 I/BaseActivity: Stopping ConnectViaBluetoothActivity
02-16 17:40:38.422 I/BaseActivity: Destroying ConnectViaBluetoothActivity
02-16 17:40:43.489 I/BaseActivity: Pausing ConversationActivity
02-16 17:40:43.516 I/BaseActivity: Creating ConnectViaBluetoothActivity
02-16 17:40:43.536 I/BaseActivity: Starting ConnectViaBluetoothActivity
02-16 17:40:43.538 I/BaseActivity: Resuming ConnectViaBluetoothActivity
02-16 17:40:44.003 I/BaseActivity: Stopping ConversationActivity
02-16 17:40:44.794 I/BaseActivity: Pausing ConnectViaBluetoothActivity
02-16 17:40:44.824 I/AndroidBluetoothPlugin: Scan mode: Discoverable
02-16 17:40:44.828 I/BluetoothConnectionLimiterImpl: Limiting started
02-16 17:40:44.836 I/BaseActivity: Resuming ConnectViaBluetoothActivity
02-16 17:40:44.879 I/AndroidBluetoothPlugin: Discovery started
02-16 17:40:47.692 I/AndroidBluetoothPlugin: Discovered AC:[scrubbed]:72
02-16 17:40:50.144 I/AndroidBluetoothPlugin: Discovered 30:[scrubbed]:50
02-16 17:40:51.531 I/AndroidBluetoothPlugin: Discovered AC:[scrubbed]:72
02-16 17:40:52.154 I/AndroidBluetoothPlugin: Discovered AC:[scrubbed]:72
02-16 17:40:52.890 I/AndroidBluetoothPlugin: Discovered CC:[scrubbed]:85
02-16 17:40:53.437 I/AndroidBluetoothPlugin: Discovered CC:[scrubbed]:85
02-16 17:40:54.092 I/AndroidBluetoothPlugin: Discovered AC:[scrubbed]:72
02-16 17:40:54.844 I/AndroidBluetoothPlugin: Cancelling discovery
02-16 17:40:54.848 I/AndroidBluetoothPlugin: Connecting to 30:[scrubbed]:50
02-16 17:40:54.850 I/BluetoothConnectionLimiterImpl: Connection opened, 1 open
02-16 17:40:54.850 I/ConnectViaBluetoothViewModel: Could connect, handling connection
02-16 17:40:54.850 I/BluetoothConnectionLimiterImpl: Limiting ended
02-16 17:40:54.867 I/DuplexOutgoingSession: Generated ack: false
02-16 17:40:54.878 I/DuplexOutgoingSession: Generated batch: false
02-16 17:40:54.880 I/DuplexOutgoingSession: Generated offer: false
02-16 17:40:54.881 I/DuplexOutgoingSession: Generated request: false
02-16 17:40:54.882 I/BaseActivity: Pausing ConnectViaBluetoothActivity
02-16 17:40:54.925 I/BaseActivity: Starting ConversationActivity
02-16 17:40:54.929 I/BaseActivity: Resuming ConversationActivity
02-16 17:40:55.410 I/BaseActivity: Stopping ConnectViaBluetoothActivity
02-16 17:40:55.413 I/BaseActivity: Destroying ConnectViaBluetoothActivity
02-16 17:41:01.986 I/AbstractBluetoothPlugin: Connection received
02-16 17:41:01.986 I/BluetoothConnectionLimiterImpl: Connection opened, 2 open
```
As far as I can tell, this device is the head unit in a car.
The log shows an outgoing Bluetooth connection being made, then an incoming connection being received. Perhaps the Bluetooth stack doesn't support multiple connections (or doesn't support incoming and outgoing connections with the same device). In any case, BluetoothSocket#getInputStream() returns null for the second connection. We should check this (and also for the output stream) and throw an IOException rather than crashing.Android 1.4akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/2414Links not clickable in Blogs2023-02-26T08:10:34Zre tiolusLinks not clickable in BlogsIn the latest 1.4.20 version, support for clickable links was implemented (!1757), but that doesn't seem to work on Blogs.In the latest 1.4.20 version, support for clickable links was implemented (!1757), but that doesn't seem to work on Blogs.https://code.briarproject.org/briar/briar/-/issues/2413Show verification status of contacts when inviting them to a forum2023-02-07T10:14:37ZBirgerShow verification status of contacts when inviting them to a forumThe dialog for inviting contacts to a forum currently does not show their verification status (verified/unverified contact). In some cases I might only want to invite verified contacts to a forum. Therefore, the verification status shoul...The dialog for inviting contacts to a forum currently does not show their verification status (verified/unverified contact). In some cases I might only want to invite verified contacts to a forum. Therefore, the verification status should be shown in the contact list when selecting contacts to invite to a forum.https://code.briarproject.org/briar/briar/-/issues/2412Research UWB integration2023-03-15T12:30:45ZVladislavResearch UWB integrationResearch possibility of integration Ultra-Wideband technology.
Find out its strengths and the opportunities it can provide.
Possibilities of combining Bluetooth and UWB.Research possibility of integration Ultra-Wideband technology.
Find out its strengths and the opportunities it can provide.
Possibilities of combining Bluetooth and UWB.https://code.briarproject.org/briar/briar/-/issues/2411Xiaomi device Android 11, API 30 - crash after 'no battery restrictions' sele...2023-01-25T17:23:06ZIvanaXiaomi device Android 11, API 30 - crash after 'no battery restrictions' selectedSteps to reproduce:
- install briar debug (build 0cea137)
- when prompted go to device settings and select 'no battery restirctions'
- Briar crashes(logfile attached)
When restarted after crash, the user is not prompted to go back to ...Steps to reproduce:
- install briar debug (build 0cea137)
- when prompted go to device settings and select 'no battery restirctions'
- Briar crashes(logfile attached)
When restarted after crash, the user is not prompted to go back to battery restriction settings, but the 'Open Security settings', 'Boost speed', then 'Manual'. But when th euser navigates back to the Briar screen (by tapping the back button on the bottom of the screen, Briar crashes (logfile 2)
[Xiaomi_Briar_crash_settings.txt](/uploads/33d9e54f54cb5ccc95d8ad76205b3e91/Xiaomi_Briar_crash_settings.txt)
[Xiaomi_crash_settings_2.txt](/uploads/591436e71141cdfbf35e82c296a11312/Xiaomi_crash_settings_2.txt)https://code.briarproject.org/briar/briar/-/issues/2410Crash when adding a contact at a distance due to missing BLUETOOTH_CONNECT pe...2023-05-29T11:41:22ZKatelyn DickeyCrash when adding a contact at a distance due to missing BLUETOOTH_CONNECT permissionThis error is avoided by having the "Nearby devices" permission.
The "Add contact nearby" flow asks for this permission, but at a distance does not, while apparently still needing the permission.
1. Have the "Nearby devices" permission ...This error is avoided by having the "Nearby devices" permission.
The "Add contact nearby" flow asks for this permission, but at a distance does not, while apparently still needing the permission.
1. Have the "Nearby devices" permission disallowed
2. Add a contact at a distance
3. Exchange keys
4. After contact is added, wait a few seconds and the app will crash
```
Need android.permission.BLUETOOTH_CONNECT permission for android.content.AttributionSource@163e09fc: getAddress
java.lang.SecurityException: Need android.permission.BLUETOOTH_CONNECT permission for android.content.AttributionSource@163e09fc: getAddress
at android.os.Parcel.createExceptionOrNull(Parcel.java:3011)
at android.os.Parcel.createException(Parcel.java:2995)
at android.os.Parcel.readException(Parcel.java:2978)
at android.os.Parcel.readException(Parcel.java:2920)
at android.bluetooth.IBluetoothManager$Stub$Proxy.getAddress(IBluetoothManager.java:534)
at android.bluetooth.BluetoothAdapter.getAddress(BluetoothAdapter.java:1534)
at org.briarproject.bramble.util.AndroidUtils.getBluetoothAddressAndMethod(AndroidUtils.java:70)
at org.briarproject.bramble.util.AndroidUtils.getBluetoothAddress(AndroidUtils.java:63)
at org.briarproject.bramble.plugin.bluetooth.AndroidBluetoothPlugin.getBluetoothAddress(AndroidBluetoothPlugin.java:146)
at org.briarproject.bramble.plugin.bluetooth.AbstractBluetoothPlugin.updateProperties(AbstractBluetoothPlugin.java:239)
at org.briarproject.bramble.plugin.bluetooth.AbstractBluetoothPlugin.$r8$lambda$ZdCFKGKAr5elvl5L48zy5sncMIA(Unknown Source:0)
at org.briarproject.bramble.plugin.bluetooth.AbstractBluetoothPlugin$$ExternalSyntheticLambda2.run(Unknown Source:2)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1137)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:637)
at java.lang.Thread.run(Thread.java:1012)
Caused by: android.os.RemoteException: Remote stack trace:
at com.android.server.bluetooth.BluetoothManagerService.checkPermissionForDataDelivery(BluetoothManagerService.java:3239)
at com.android.server.bluetooth.BluetoothManagerService.checkConnectPermissionForDataDelivery(BluetoothManagerService.java:3257)
at com.android.server.bluetooth.BluetoothManagerService.getAddress(BluetoothManagerService.java:1908)
at android.bluetooth.IBluetoothManager$Stub.onTransact(IBluetoothManager.java:246)
at android.os.Binder.execTransactInternal(Binder.java:1280)
```https://code.briarproject.org/briar/briar/-/issues/2409SecurityException when binding Bluetooth socket2023-05-29T11:38:26ZakwizgranSecurityException when binding Bluetooth socketThis crash looks similar to #1698 but the stacktrace is different. The error message says the app lacks permission android.permission.BLUETOOTH, which was replaced by new permissions in Android 12. Is the error message out of date, or do...This crash looks similar to #1698 but the stacktrace is different. The error message says the app lacks permission android.permission.BLUETOOTH, which was replaced by new permissions in Android 12. Is the error message out of date, or does this device still use the old Bluetooth permissions?
* Android version: 12
* Phone model: Redmi M2101K6R (sweet_global)
* Briar version: 1.4.18 (4797151)
* User feedback: "The app stopped out of nowhere and I need it urgently."
Stacktrace:
```
java.lang.SecurityException: UID 10414 / PID 7993 lacks permission android.permission.BLUETOOTH
at android.os.Parcel.createExceptionOrNull(Parcel.java:2426)
at android.os.Parcel.createException(Parcel.java:2410)
at android.os.Parcel.readException(Parcel.java:2393)
at android.os.Parcel.readException(Parcel.java:2335)
at android.bluetooth.IBluetoothSocketManager$Stub$Proxy.createSocketChannel(IBluetoothSocketManager.java:265)
at android.bluetooth.BluetoothSocket.bindListen(BluetoothSocket.java:453)
at android.bluetooth.BluetoothAdapter.createNewRfcommSocketAndRecord(BluetoothAdapter.java:2883)
at android.bluetooth.BluetoothAdapter.listenUsingInsecureRfcommWithServiceRecord(BluetoothAdapter.java:2830)
at org.briarproject.bramble.plugin.bluetooth.AndroidBluetoothPlugin.openServerSocket(AndroidBluetoothPlugin.java:152)
at org.briarproject.bramble.plugin.bluetooth.AndroidBluetoothPlugin.openServerSocket(AndroidBluetoothPlugin.java:61)
at org.briarproject.bramble.plugin.bluetooth.AbstractBluetoothPlugin.lambda$bind$0(AbstractBluetoothPlugin.java:215)
at org.briarproject.bramble.plugin.bluetooth.AbstractBluetoothPlugin.$r8$lambda$Nv27P8uQlCv6FpD1a0uQUudeR9U(Unknown Source:0)
at org.briarproject.bramble.plugin.bluetooth.AbstractBluetoothPlugin$$ExternalSyntheticLambda0.run(Unknown Source:2)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1137)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:637)
at java.lang.Thread.run(Thread.java:1012)
```
Edited log:
```
12-28 01:54:17.763 I/PluginManagerImpl: Starting simplex plugins
12-28 01:54:17.763 I/PluginManagerImpl: Starting duplex plugins
12-28 01:54:17.779 I/PluginManagerImpl: org.briarproject.bramble.bluetooth changed from state STARTING_STOPPING to INACTIVE
12-28 01:54:17.799 I/AbstractBluetoothPlugin: Local address null
12-28 01:54:17.802 I/PluginViewModel: TransportStateEvent: org.briarproject.bramble.bluetooth is INACTIVE
```
Looks like the plugin was enabled and the crash happened at startup.Android 1.4akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/2408Split big BSP Records2023-01-31T21:44:51ZThomasSplit big BSP RecordsIn #407, the requested feature is to send files with sizes bigger than one BSP Record. The issue is cluttered with user feedback-quotes, therefore I thought I make a new issue to propose an implementation (I don't know if this is the bes...In #407, the requested feature is to send files with sizes bigger than one BSP Record. The issue is cluttered with user feedback-quotes, therefore I thought I make a new issue to propose an implementation (I don't know if this is the best way to handle that ...).
I realized that I basically need the same feature for https://code.briarproject.org/thomas/briar/-/issues/1 (with custom BSP-Record sizes). My thoughts are intended to allow for minimal overhead (saving every byte).
My idea is to introduce message-fragments/slices. I think it is not enough to add a new message-type to BSPv0, I think it will require BSPv1. (the slices will be required also for e.g. the REQUEST-Type)
I imagine to send message fragments like { message-hash, start of slice, slice length, byte-array }.
The message itself is prefixed with its total size (needs only to be transmitted with the first slice; since the message is only composed when all slices are there, it is no problem if the first slice is retransmitted).
The receiver can acknowledge fragments (by hash, start and length). When all fragments are available, the sender internally acknowledges the whole record and the receiver assembles the message. I could also imagine the sender caching which BTP-Frame contains which message-fragments so that the receiver can acknowledge BTP-Frames which might save some space. But it will add additional complexity ...
Having sizes&positions as varints ([an Implementation](https://github.com/bazelbuild/bazel/blob/master/src/main/java/com/google/devtools/build/lib/util/VarInt.java)) would be awesome.
Btw: Sorry for not replying to https://code.briarproject.org/thomas/briar/-/issues/1 yethttps://code.briarproject.org/briar/briar/-/issues/2407Crash when getting Bluetooth address2023-01-06T16:28:57ZakwizgranCrash when getting Bluetooth address* Android version: 12
* Phone model: Redmi M2004J19C (galahad_global)
* Briar version: 1.4.18 (4797151)
Edited log:
```
12-17 21:55:20.433 I/AbstractBluetoothPlugin: Bluetooth enabled
```
Stacktrace:
```
java.lang.SecurityException: Ne...* Android version: 12
* Phone model: Redmi M2004J19C (galahad_global)
* Briar version: 1.4.18 (4797151)
Edited log:
```
12-17 21:55:20.433 I/AbstractBluetoothPlugin: Bluetooth enabled
```
Stacktrace:
```
java.lang.SecurityException: Need android.permission.BLUETOOTH_CONNECT permission for android.content.AttributionSource@458c6c33: getAddress
at android.os.Parcel.createExceptionOrNull(Parcel.java:2426)
at android.os.Parcel.createException(Parcel.java:2410)
at android.os.Parcel.readException(Parcel.java:2393)
at android.os.Parcel.readException(Parcel.java:2335)
at android.bluetooth.IBluetoothManager$Stub$Proxy.getAddress(IBluetoothManager.java:789)
at android.bluetooth.BluetoothAdapter.getAddress(BluetoothAdapter.java:1290)
at org.briarproject.bramble.util.AndroidUtils.getBluetoothAddressAndMethod(AndroidUtils.java:70)
at org.briarproject.bramble.util.AndroidUtils.getBluetoothAddress(AndroidUtils.java:63)
at org.briarproject.bramble.plugin.bluetooth.AndroidBluetoothPlugin.getBluetoothAddress(AndroidBluetoothPlugin.java:146)
at org.briarproject.bramble.plugin.bluetooth.AbstractBluetoothPlugin.updateProperties(AbstractBluetoothPlugin.java:239)
at org.briarproject.bramble.plugin.bluetooth.AbstractBluetoothPlugin.$r8$lambda$ZdCFKGKAr5elvl5L48zy5sncMIA(Unknown Source:0)
at org.briarproject.bramble.plugin.bluetooth.AbstractBluetoothPlugin$$ExternalSyntheticLambda2.run(Unknown Source:2)
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:920)
Caused by: android.os.RemoteException: Remote stack trace:
at com.android.server.BluetoothManagerService.checkPermissionForDataDelivery(BluetoothManagerService.java:3327)
at com.android.server.BluetoothManagerService.checkConnectPermissionForDataDelivery(BluetoothManagerService.java:3345)
at com.android.server.BluetoothManagerService.getAddress(BluetoothManagerService.java:1951)
at android.bluetooth.IBluetoothManager$Stub.onTransact(IBluetoothManager.java:373)
at android.os.Binder.execTransactInternal(Binder.java:1190)
```Android 1.4akwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/2406Error fragment after scanning QR code for adding contacts does not auto-rotat...2022-12-21T12:21:47ZSebastianError fragment after scanning QR code for adding contacts does not auto-rotate to landscape modeAfter trying to add a contact nearby and scanning a random QR code, an error fragment is displayed. Since we're disabling auto-rotation in the scanning fragment and set that on the activity, the following fragment has the same restrictio...After trying to add a contact nearby and scanning a random QR code, an error fragment is displayed. Since we're disabling auto-rotation in the scanning fragment and set that on the activity, the following fragment has the same restriction. We call there:
```
requireActivity().setRequestedOrientation(SCREEN_ORIENTATION_NOSENSOR);
```
and probably could just call this in the error fragment:
```
requireActivity().setRequestedOrientation(SCREEN_ORIENTATION_UNSPECIFIED);
```