briar issueshttps://code.briarproject.org/briar/briar/-/issues2021-07-06T09:40:50Zhttps://code.briarproject.org/briar/briar/-/issues/2021Permission requests cleanup in hotspot test app2021-07-06T09:40:50ZTorsten GrotePermission requests cleanup in hotspot test appThe hotspot test app currently asks for permissions once when it starts and then just refuses to work if they were not granted. We should probably introduce some sort of PermissionController that encapsulates all that logic and ensures t...The hotspot test app currently asks for permissions once when it starts and then just refuses to work if they were not granted. We should probably introduce some sort of PermissionController that encapsulates all that logic and ensures that the necessary permissions and enabled system settings (wi-fi, location) are requested properly.
Subtask of #1081Install via Bluetooth or Wi-FiTorsten GroteTorsten Grote2021-07-31https://code.briarproject.org/briar/briar/-/issues/2020Implement UI prototype for app sharing2021-07-06T09:40:41ZSebastianImplement UI prototype for app sharingSubtask of #1081
1 acitivty + 3 fragments + 1 troubleshooting fragmentSubtask of #1081
1 acitivty + 3 fragments + 1 troubleshooting fragmentInstall via Bluetooth or Wi-FiTorsten GroteTorsten Grote2021-07-31https://code.briarproject.org/briar/briar/-/issues/2019ViewModel Cleanup (in hotspot test app)2021-07-06T09:40:45ZSebastianViewModel Cleanup (in hotspot test app)Subtask of #1081Subtask of #1081Install via Bluetooth or Wi-FiSebastianSebastian2021-07-31https://code.briarproject.org/briar/briar/-/issues/2018Create RemovableDriveWriterTask2021-06-17T13:35:02ZakwizgranCreate RemovableDriveWriterTaskCreate an interface in bramble-api, with an impl in bramble-core, for a task that writes data to a file for syncing with a given contact. It should be possible to attach and detach observers for observing the progress of the task (see #2...Create an interface in bramble-api, with an impl in bramble-core, for a task that writes data to a file for syncing with a given contact. It should be possible to attach and detach observers for observing the progress of the task (see #2013 and #2014). The task should unregister itself with the RemovableDriveManager (see #2016) when it finishes running.
Subtask of #1802Transfer content securely via SD cards and USB memory sticksakwizgranakwizgran2021-07-31https://code.briarproject.org/briar/briar/-/issues/2017Create RemovableDriveReaderTask2021-06-17T13:35:19ZakwizgranCreate RemovableDriveReaderTaskCreate an interface in bramble-api, with an impl in bramble-core, for a task that reads data from a file for syncing with a given contact. It should be possible to attach and detach observers for observing the progress of the task (see #...Create an interface in bramble-api, with an impl in bramble-core, for a task that reads data from a file for syncing with a given contact. It should be possible to attach and detach observers for observing the progress of the task (see #2013 and #2014). The task should unregister itself with the RemovableDriveManager (see #2016) when it finishes running.
Subtask of #1802Transfer content securely via SD cards and USB memory sticksakwizgranakwizgran2021-07-31https://code.briarproject.org/briar/briar/-/issues/2016Create RemovableDriveManager2021-06-17T13:35:40ZakwizgranCreate RemovableDriveManagerCreate a manager interface in bramble-api, with an impl in bramble-core, to manage access to the RemovableDrivePlugin (#2015). The manager will provide methods for doing the following:
* Retrieve the current reader/writer task, if any, ...Create a manager interface in bramble-api, with an impl in bramble-core, to manage access to the RemovableDrivePlugin (#2015). The manager will provide methods for doing the following:
* Retrieve the current reader/writer task, if any, for a given contact
* Register and start a reader/writer task for a contact (fails if an equivalent task is already registered)
* Unregister a task (for use by the task itself, when it finishes running)
We may later want to convert this to some kind of abstract TaskManager interface with TaskKeys and so on, and refactor other long-running tasks to use it, but let's not do that yet.
Subtask of #1802Transfer content securely via SD cards and USB memory sticksakwizgranakwizgran2021-07-31https://code.briarproject.org/briar/briar/-/issues/2015Create RemovableDrivePlugin2021-05-10T13:07:16ZakwizgranCreate RemovableDrivePluginCreate a RemovableDrivePlugin that extends FilePlugin, along with a suitable PluginFactory. The plugin's writerFinished() method can be a no-op. The readerFinished() method should try to delete the file if the tag was recognised and the ...Create a RemovableDrivePlugin that extends FilePlugin, along with a suitable PluginFactory. The plugin's writerFinished() method can be a no-op. The readerFinished() method should try to delete the file if the tag was recognised and the read completed without an exception, failing gracefully if the file is on a read-only filesystem.
The ~~UI~~ read/write tasks (#2017 and #2018) will interact with the plugin via its createReader() and createWriter() methods, which are already provided by FilePlugin.
Subtask of #1802Transfer content securely via SD cards and USB memory sticksakwizgranakwizgran2021-07-31https://code.briarproject.org/briar/briar/-/issues/2014Update MessagesSentEvent to include amount of data sent2021-05-10T12:00:41ZakwizgranUpdate MessagesSentEvent to include amount of data sentSubtask of #1802Subtask of #1802Transfer content securely via SD cards and USB memory sticksakwizgranakwizgran2021-07-31https://code.briarproject.org/briar/briar/-/issues/2013Add database method for getting amount of data to sync2021-05-10T12:00:48ZakwizgranAdd database method for getting amount of data to syncSubtask of #1802Subtask of #1802Transfer content securely via SD cards and USB memory sticksakwizgranakwizgran2021-07-31https://code.briarproject.org/briar/briar/-/issues/2012Special bubbles not updating correctly when messages self-destruct2021-07-06T09:56:29ZSebastianSpecial bubbles not updating correctly when messages self-destructSelf-destructing messagesIvanaIvana2021-01-31https://code.briarproject.org/briar/briar/-/issues/2011App offline sharing UX2021-10-29T11:45:23ZElio Qoshielio@ura.designApp offline sharing UX![All_Screens](/uploads/bd9eb2dd5bbb58e2287fd8e9a036f12f/All_Screens.png)
I drafted an initial UX proposal for sharing an app offline.
Figma specs: https://www.figma.com/file/NgBKOW1GcLk1NXzHQBcYdY/Offline-App-Installer-Sharing?node-id=...![All_Screens](/uploads/bd9eb2dd5bbb58e2287fd8e9a036f12f/All_Screens.png)
I drafted an initial UX proposal for sharing an app offline.
Figma specs: https://www.figma.com/file/NgBKOW1GcLk1NXzHQBcYdY/Offline-App-Installer-Sharing?node-id=1%3A5491
Considerations:
- This doesn't take into account that we are automatically detecting if a fellow peer connects to the hotspot. The hosting user needs to manually confirm this.
- There should be plenty of space for instructions and help text, as well as a separate help option via the dropdown menu if needed. The texts are of course only placeholders, though their I included their notion, more or less.
- An illustration should make the process feel more engaging (like the start of onboarding).
- Not sure about the steppers on the bottom. Open to hear what you think.Install via Bluetooth or Wi-FiElio Qoshielio@ura.designElio Qoshielio@ura.design2021-07-31https://code.briarproject.org/briar/briar/-/issues/2010Investigate behaviour of recent apps list for various manufacturers2022-03-21T13:49:28ZakwizgranInvestigate behaviour of recent apps list for various manufacturersMany manufacturers have custom implementations of the recent apps list.
On Tecno phones, clearing the recent apps list [kills the Briar process](https://code.briarproject.org/briar/briar/-/issues/992#note_44605) unless the app is [locke...Many manufacturers have custom implementations of the recent apps list.
On Tecno phones, clearing the recent apps list [kills the Briar process](https://code.briarproject.org/briar/briar/-/issues/992#note_44605) unless the app is [locked to the recent apps list](https://code.briarproject.org/briar/briar/-/issues/1743#note_49393).
On Xiaomi/Redmi phones, [locking an app to the recent apps list](https://code.briarproject.org/briar/briar/-/issues/1743#note_49341) prevents it from being killed by the system's power manager, which would otherwise happen even without clearing the list.
For as many manufacturers as possible, find out:
1. whether clearing the recent apps list kills Briar
2. whether apps can be locked to the recent apps list
3. whether locking prevents Briar from being killed when clearing the list
4. whether locking provides any other protection (e.g. from the system's power manager)https://code.briarproject.org/briar/briar/-/issues/2009Give instructions during setup for protecting app from Xiaomi/Redmi power man...2021-07-06T10:02:52ZakwizgranGive instructions during setup for protecting app from Xiaomi/Redmi power managementWhile working on #1743 I found that the [Snooze app](https://code.briarproject.org/akwizgran/snooze) was killed when running overnight on the Redmi Note 7. [Locking the app to the recent apps list](https://code.briarproject.org/briar/bri...While working on #1743 I found that the [Snooze app](https://code.briarproject.org/akwizgran/snooze) was killed when running overnight on the Redmi Note 7. [Locking the app to the recent apps list](https://code.briarproject.org/briar/briar/-/issues/1743#note_49341) prevented this from happening. We should recommend this during account setup, as we do for Huawei's protected apps and app launch settings.
(The user can also [change the app's background setting to "No restrictions"](https://code.briarproject.org/briar/briar/-/issues/1743#note_49269), which is recommended in various places but didn't help in the case of the Snooze app.)Adapt to changes in the Android platformIvanaIvana2021-04-30https://code.briarproject.org/briar/briar/-/issues/2008Doze broadcasts aren't received on Nokia 3.12021-08-27T11:26:27ZakwizgranDoze broadcasts aren't received on Nokia 3.1A [log](/uploads/201f05a7ef28f09973eb8767649d3687/Nokia3.1-28042021-Snooze.log) from the [Snooze app](https://code.briarproject.org/akwizgran/snooze) running on the Nokia 3.1 doesn't show any broadcasts indicating that the device entered...A [log](/uploads/201f05a7ef28f09973eb8767649d3687/Nokia3.1-28042021-Snooze.log) from the [Snooze app](https://code.briarproject.org/akwizgran/snooze) running on the Nokia 3.1 doesn't show any broadcasts indicating that the device entered or left doze mode (device idle mode), unlike ten other devices that were tested. On all devices, the app was exempt from doze, running a foreground service and holding a wake lock.
If Briar likewise doesn't receive doze broadcasts on this device then it may fail to detect that its doze exemption has been removed. We only check the exemption status if a doze broadcast has been received since the last check.
I've asked @earthlingIB to run another test on this device without the doze exemption, to see whether it's the exemption that prevents the broadcasts from being received. If that's the case then we can close this ticket, as Briar will still be able to detect if its exemption has been removed.https://code.briarproject.org/briar/briar/-/issues/2007Devices lose wifi connectivity despite doze exemption, foreground service and...2021-04-30T13:20:11ZakwizgranDevices lose wifi connectivity despite doze exemption, foreground service and wake lockTwo overnight tests with the [Snooze app](https://code.briarproject.org/akwizgran/snooze) showed that several devices lost wifi connectivity despite the app being exempt from doze, running a foreground service, and holding a wake lock th...Two overnight tests with the [Snooze app](https://code.briarproject.org/akwizgran/snooze) showed that several devices lost wifi connectivity despite the app being exempt from doze, running a foreground service, and holding a wake lock that prevented deep sleep.
The app was also holding a wifi lock with WIFI_MODE_FULL, which Briar doesn't do. But this lock mode doesn't do anything on API >= 29.
In the first test, the following devices remained connected:
* Huawei Y6P (with [app launch workaround](https://code.briarproject.org/briar/briar/-/issues/1743#note_49208)) [y6p.log](/uploads/2dd5cfe4bb10eda009a730ee4de8e101/y6p.log)
* OnePlus 5T [oneplus-5t.log](/uploads/c48918d1e5e0a722036cd5f405daa474/oneplus-5t.log)
* Pixel 2 [pixel-2.log](/uploads/8f0181a6b0f1af87dc6416197b66c011/pixel-2.log)
* Redmi Note 7 (with [app locked to recent apps list](https://code.briarproject.org/briar/briar/-/issues/1743#note_49341)) [redmi-note-7.log](/uploads/9aba6f761c71ab2667cf97867614886e/redmi-note-7.log)
* Samsung Galaxy A10s [a10s.log](/uploads/c94055f3eb545588949c83898d3a4252/a10s.log)
The following devices lost connectivity in the first test:
* Honor 8A (with app launch workaround): lost connectivity after entering doze, didn't regain it [honor-8a.log](/uploads/10f41360b4311d039d164a97dc4dc8b7/honor-8a.log)
* Nokia 1.3: lost connectivity less than 3 minutes after screen was turned off, before entering doze, didn't regain it [nokia-1.3.log](/uploads/389d09c6e9fd3acdd188042e74b516b7/nokia-1.3.log)
In the second test, the following device remained connected:
* OnePlus 5T [oneplus-5t.log](/uploads/858a6778b919f415366abf34a8d2e542/oneplus-5t.log)
* Pixel 2 [pixel-2.log](/uploads/4a28aad88ae067506334758754f9f20d/pixel-2.log)
* Redmi Note 7 (with app locked to recent apps list) [redmi-note-7.log](/uploads/8f0a28d77ed20eb6a730dbf8c865d3f9/redmi-note-7.log)
The following devices lost connectivity in the second test:
* Honor 8A (with app launch workaround): lost connectivity after entering doze, didn't regain it [honor-8a.log](/uploads/1bf7c4e52bdf49f7df59d431539d629a/honor-8a.log)
* Huawei Y6P (with app launch workaround): lost connectivity after entering doze, didn't regain it [y6p.log](/uploads/38aa2dcd249ed79fdffc861f9711c217/y6p.log)
* Nokia 1.3: lost connectiivty less than 3 minutes after the screen was turned off, didn't regain it [nokia-1.3.log](/uploads/753e516264e0db994f53bbff3324811f/nokia-1.3.log)
* Samsung Galaxy A10s: lost connectivity about 7 hours into the test, after entering and leaving doze several times, and didn't regain it [a10s.log](/uploads/51555f8d084cf872f40b369261e4deb8/a10s.log)
These findings were originally reported [here](https://code.briarproject.org/briar/briar/-/issues/1737#note_49355) and [here](https://code.briarproject.org/briar/briar/-/issues/1737#note_49362). I copied them to their own ticket because the problem is different from #1737 and affects more devices.https://code.briarproject.org/briar/briar/-/issues/2006Connectivity broadcasts aren't received on Huawei P8 Lite 20172021-04-29T14:34:34ZakwizgranConnectivity broadcasts aren't received on Huawei P8 Lite 2017The [Snooze app](https://code.briarproject.org/akwizgran/snooze) doesn't receive CONNECTIVITY_ACTION broadcasts when running on the Huawei P8 Lite 2017. The broadcasts are received on all other devices tested (about ten devices).
Briar ...The [Snooze app](https://code.briarproject.org/akwizgran/snooze) doesn't receive CONNECTIVITY_ACTION broadcasts when running on the Huawei P8 Lite 2017. The broadcasts are received on all other devices tested (about ten devices).
Briar uses these broadcasts to detect connectivity changes, so it may be missing connectivity changes on the P8 Lite 2017.https://code.briarproject.org/briar/briar/-/issues/2005Connect Via Bluetooth shows error even if connection succeeds2021-07-06T10:00:49ZTorsten GroteConnect Via Bluetooth shows error even if connection succeedsIt can happen that we tell the user that no connection could be made even if it could be made.
It might help to show the error toast only after some delay.It can happen that we tell the user that no connection could be made even if it could be made.
It might help to show the error toast only after some delay.Adapt to changes in the Android platformIvanaIvana2021-04-30https://code.briarproject.org/briar/briar/-/issues/2004Use different Tor ports for debug builds2021-11-04T11:01:28ZakwizgranUse different Tor ports for debug buildsConfigure Tor to use different SOCKS and control ports when running a debug build, so that we can run debug and release builds on the same device without connectivity issues.Configure Tor to use different SOCKS and control ports when running a debug build, so that we can run debug and release builds on the same device without connectivity issues.Android 1.4SebastianSebastianhttps://code.briarproject.org/briar/briar/-/issues/2003Check for API/behaviour changes in Android 12 that could affect Briar2022-10-31T14:20:43ZakwizgranCheck for API/behaviour changes in Android 12 that could affect Briar* [x] [Safer component exporting](https://developer.android.com/about/versions/12/behavior-changes-12#exported) activities, services, or broadcast receivers that use intent filters must explicitly declare the `android:exported` attribut...* [x] [Safer component exporting](https://developer.android.com/about/versions/12/behavior-changes-12#exported) activities, services, or broadcast receivers that use intent filters must explicitly declare the `android:exported` attribute
* [x] [Pending intents mutability](https://developer.android.com/about/versions/12/behavior-changes-12#pending-intent-mutability)
* [x] [Unsafe intent launches](https://developer.android.com/about/versions/12/behavior-changes-12#unsafe-intent-launches)
* [x] `allowBackup="false"` doesn’t disable D2D transfers for the app. https://developer.android.com/about/versions/12/backup-restore
* [x] `SCHEDULE_EXACT_ALARM` permission https://developer.android.com/about/versions/12/behavior-changes-12#exact-alarm-permission
* [x] Restrictive App Standby bucket https://developer.android.com/about/versions/12/behavior-changes-all#restrictive-app-standby-bucket
* [x] [`BLUETOOTH_CONNECT`](https://developer.android.com/reference/android/Manifest.permission.html#BLUETOOTH_CONNECT) and [`BLUETOOTH_SCAN`](https://developer.android.com/reference/android/Manifest.permission.html#BLUETOOTH_SCAN) permissions
* [x] [`usesPermissionFlags`](https://developer.android.com/reference/android/R.attr.html#usesPermissionFlags) and `neverForLocation`
* [x] Location permission dialog
* [x] Splash screen
* [x] Camera notification
* [x] Multi-window mode
* [x] Camera preview on large screensAndroid 1.4Torsten GroteTorsten Grote2022-11-01https://code.briarproject.org/briar/briar/-/issues/2002Android 11 PIxel2 - 'Ask every time' - workflow user asked for permission in...2021-07-06T10:03:06ZIvanaAndroid 11 PIxel2 - 'Ask every time' - workflow user asked for permission in popup after they just selected 'ask every time' on deviceScenario: When user is taken to the pages Briar app settings on their device - they decide to grant Briar permission to access the camera and location by selecting 'Ask every time'. They then navigate back to Briar and are given the dial...Scenario: When user is taken to the pages Briar app settings on their device - they decide to grant Briar permission to access the camera and location by selecting 'Ask every time'. They then navigate back to Briar and are given the dialog/popup again with the same question to giv Briar permissions to access their location and camera again - They have just done that, so they shoudln't be asked it again.
Steps to reproduce:
Preconditions: Briar's access to location and camera are denied.
1. Start a new process of creating a nearby contact
2. Tap continue.
3. Popup asks the user to grant Briar permissions to access the camera and location.
4. User denies both.
5. User gets this message: you have denied access to the camera but adding contacts requires using the camera. Please consider granting access. User taps OK.
6. User is then taken to the Briar app settings to grant the Briar access to their camera.
7. User selects the 'Ask every time' option.
8. User navigates back to Briar by tapping the back button.
9. Briar create nearby contacts info screen shows, and user tap Continue
10. A popup comes up and asks the user to grant Briar access to their camera.
Expected results:
- The popup should nto be asking the user to grant permissions after their have just done so.
Actual result:
- A popup comes up and asks the user to grant Briar access to their camera.
- After granting the camera access once more, the user can continue and create the nearby contact OKAdapt to changes in the Android platform2021-04-30