briar issueshttps://code.briarproject.org/groups/briar/-/issues2023-09-05T11:00:37Zhttps://code.briarproject.org/briar/briar-desktop/-/issues/532NoSuchGroupException when upgrading to 0.5.0-beta2023-09-05T11:00:37ZNicoNoSuchGroupException when upgrading to 0.5.0-betaI'm on Debian stable, i.e., version 12, titled `bookworm`, and have a Briar database which originated from Android in 2019.
After upgrading to 0.5.0-beta, I can't use Briar Desktop at all anymore, because it fails to "start a required c...I'm on Debian stable, i.e., version 12, titled `bookworm`, and have a Briar database which originated from Android in 2019.
After upgrading to 0.5.0-beta, I can't use Briar Desktop at all anymore, because it fails to "start a required component." I vaguely remember having had the same issue when I upgraded to the Briar Desktop version that introduced forums.
![Screenshot_from_2023-06-28_18-42-21](/uploads/eafbcb563141d68634f2540a35956c22/Screenshot_from_2023-06-28_18-42-21.png)
```
$ briar-desktop
2023-06-28 18:42:34,034 [main] INFO org.briarproject.briar.desktop.Main - This is briar-desktop version 0.5.0-beta
2023-06-28 18:42:34,036 [main] INFO org.briarproject.briar.desktop.Main - Build info:
2023-06-28 18:42:34,036 [main] INFO org.briarproject.briar.desktop.Main - Git hash 50cccb716940208c2a71257e3109d9c1cad5d53e
2023-06-28 18:42:34,036 [main] INFO org.briarproject.briar.desktop.Main - Commit time 2023-06-28 13:08:48
2023-06-28 18:42:34,037 [main] INFO org.briarproject.briar.desktop.Main - Tag 0.5.0-beta
2023-06-28 18:42:35,435 [AWT-EventQueue-0] INFO o.b.b.d.n.l.LibnotifyNotificationProvider - Notification server capabilities: actions, body, body-markup, icon-static, persistence, sound
2023-06-28 18:42:40,015 [pool-1-thread-1] WARN o.b.b.lifecycle.LifecycleManagerImpl - org.briarproject.bramble.api.lifecycle.ServiceException: org.briarproject.bramble.api.db.NoSuchGroupException
org.briarproject.bramble.api.lifecycle.ServiceException: org.briarproject.bramble.api.db.NoSuchGroupException
at org.briarproject.bramble.versioning.ClientVersioningManagerImpl.startService(ClientVersioningManagerImpl.java:149)
at org.briarproject.bramble.lifecycle.LifecycleManagerImpl.startServices(LifecycleManagerImpl.java:145)
at org.briarproject.briar.desktop.login.StartupViewModel.startBriarCore(StartupViewModel.kt:111)
at org.briarproject.briar.desktop.login.LoginSubViewModel$signIn$1.invoke(LoginSubViewModel.kt:100)
at org.briarproject.briar.desktop.login.LoginSubViewModel$signIn$1.invoke(LoginSubViewModel.kt:97)
at org.briarproject.briar.desktop.threading.BriarExecutorsImpl.onIoThread$lambda$5(BriarExecutorsImpl.kt:105)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.base/java.lang.Thread.run(Unknown Source)
Caused by: org.briarproject.bramble.api.db.NoSuchGroupException: null
at org.briarproject.bramble.db.DatabaseComponentImpl.getMessageMetadata(DatabaseComponentImpl.java:695)
at org.briarproject.bramble.client.ClientHelperImpl.getMessageMetadataAsDictionary(ClientHelperImpl.java:231)
at org.briarproject.briar.privategroup.invitation.GroupInvitationManagerImpl.getPreferredVisibilities(GroupInvitationManagerImpl.java:706)
at org.briarproject.briar.privategroup.invitation.GroupInvitationManagerImpl.onPrivateGroupClientVisibilityChanging(GroupInvitationManagerImpl.java:688)
at org.briarproject.bramble.versioning.ClientVersioningManagerImpl.callVisibilityHook(ClientVersioningManagerImpl.java:502)
at org.briarproject.bramble.versioning.ClientVersioningManagerImpl.callVisibilityHooks(ClientVersioningManagerImpl.java:494)
at org.briarproject.bramble.versioning.ClientVersioningManagerImpl.clientVersionsUpdated(ClientVersioningManagerImpl.java:345)
at org.briarproject.bramble.versioning.ClientVersioningManagerImpl.lambda$startService$0(ClientVersioningManagerImpl.java:145)
at org.briarproject.bramble.db.DatabaseComponentImpl.transaction(DatabaseComponentImpl.java:200)
at org.briarproject.bramble.versioning.ClientVersioningManagerImpl.startService(ClientVersioningManagerImpl.java:142)
... 8 common frames omitted
2023-06-28 18:42:40,018 [pool-1-thread-1] WARN o.b.b.desktop.login.StartupViewModel - Startup failed: SERVICE_ERROR
```
Besides that: congratulations to the team for releasing this very important features and platforms :tada:Desktop 0.5.0https://code.briarproject.org/briar/briar/-/issues/590Option to save the password2023-09-01T12:43:31ZligiOption to save the passwordadd a setting to store the password with the hint to the user that this makes things less secure
**Motivation**
this will help developers when developing the app because it reduces the time they have to enter the password
could also he...add a setting to store the password with the hint to the user that this makes things less secure
**Motivation**
this will help developers when developing the app because it reduces the time they have to enter the password
could also help adoption as a users might get frustrated having to enter a password often. There are some use cases where this additional attack-vector does not really matter and could be traded for convenience. Ideally this setting is exposed to the contacts so they know.
this is a follow up from a discussion in #587https://code.briarproject.org/briar/briar-desktop/-/issues/545Allow plain text blog posts with newlines in them2023-09-01T09:12:48ZSebastianAllow plain text blog posts with newlines in themCurrently, all blog posts are interpreted as HTML, which basically means newlines are ignored.
I think that's not so nice because I think most people would expect that the plain text formatting in the text input works for blog posts.
I...Currently, all blog posts are interpreted as HTML, which basically means newlines are ignored.
I think that's not so nice because I think most people would expect that the plain text formatting in the text input works for blog posts.
It's the same on Android though.
I think it would be good to use some kind of heuristic to determine if a piece of text is actual plain text / no HTML and display it as regular text in that case.https://code.briarproject.org/briar/briar-desktop/-/issues/548Option to mark all blog posts as read2023-08-31T13:43:30ZMikolai GütschowOption to mark all blog posts as readhttps://code.briarproject.org/briar/briar-desktop/-/issues/546Make sure HtmlText Composable is secure2023-08-31T11:33:04ZSebastianMake sure HtmlText Composable is securehttps://code.briarproject.org/briar/briar-desktop/-/issues/544Material style buttons for add contact dialog2023-08-31T10:20:33ZSebastianMaterial style buttons for add contact dialogthe buttons in the add contact dialog look different than the other dialog buttons which are AlertDialogs.the buttons in the add contact dialog look different than the other dialog buttons which are AlertDialogs.https://code.briarproject.org/briar/briar-desktop/-/issues/508Release 0.4.2-beta2023-08-29T13:34:52ZSebastianRelease 0.4.2-betasee #463 as reference
### Preparation
* [x] ~~String freeze (disable auto-pull) and announcement on Transifex at least a week before the release~~
* [x] ~~Update translations (MR)~~
- run `tx pull -a -f`, add new languages to `Une...see #463 as reference
### Preparation
* [x] ~~String freeze (disable auto-pull) and announcement on Transifex at least a week before the release~~
* [x] ~~Update translations (MR)~~
- run `tx pull -a -f`, add new languages to `UnencryptedSettings.kt` (see [java locale list](https://www.oracle.com/java/technologies/javase/jdk17-suported-locales.html)), create commit
- temporarily remove `minimum_perc = 50` from `.tx/config`
- run `tx pull -a -f && rm briar-desktop/src/main/resources/strings/* && git restore briar-desktop/src/main/resources/strings/*`
- re-add `minimum_perc = 50` to `.tx/config`, append changes to last commit
* [x] Extensive testing
* [x] Update [changelog](https://code.briarproject.org/briar/briar-desktop/-/wikis/Changelog)
### Version bump
* [x] Change version in build config and metainfo.xml (!325)
* [x] Tag in Git (use `git tag -a -s <version-name>-beta -m "Briar Desktop <version-name>-beta"`) (https://code.briarproject.org/briar/briar-desktop/-/tags/0.4.2-beta)
* [x] GitLab CI builds release files automatically (https://code.briarproject.org/briar/briar-desktop/-/pipelines/13935)
### Deployment
* [x] Copy release files to desktop.briarproject.org (using [`update-binaries.sh`](https://code.briarproject.org/briar/briar-desktop-servers/-/blob/main/root/update-binaries.sh) with updated version code)
* [x] Rewrite and check that permalink points to correct version (don't forget to test and reload web server)
* [x] Update version and checksums (calculated using [`verify_hashsums.sh`](https://code.briarproject.org/briar/briar-desktop-servers/-/blob/main/verify_hashsums.sh)) on website (https://code.briarproject.org/briar/website/-/merge_requests/108)
* [x] Publish website
### PR
* [x] Inform 3rd party maintainers about release
* [ ] Publish blog post
* [x] Post on social media ([Mastodon](), [Twitter](TWITTER)), useful [character counter](https://charactercounter.com/twitter)
* [x] ~~Update screenshot on website~~
### Backlog
* [x] Update description, milestone and due date of #337
* [x] ~~Re-enable auto-pull on Transifex under Resources > Auto update resources > add [url](https://code.briarproject.org/briar/briar-desktop/-/raw/main/briar-desktop/src/main/resources/strings/BriarDesktop.properties)~~Desktop 0.4.2https://code.briarproject.org/briar/briar-desktop/-/issues/534Show RSS avatar when post is from RSS feed2023-08-29T13:27:10ZTorsten GroteShow RSS avatar when post is from RSS feedLike the Android app does it.Like the Android app does it.Desktop 0.6.0Mikolai GütschowMikolai Gütschowhttps://code.briarproject.org/briar/briar-desktop/-/issues/542Show beta warning / update notice only a certain time before expiration2023-08-29T12:51:06ZMikolai GütschowShow beta warning / update notice only a certain time before expirationWe got some feedback from confused users who interpreted the message as "there is a new version, go install it".
Also we could discuss to either drop the expiration altogether with the next release or at least extend the time.We got some feedback from confused users who interpreted the message as "there is a new version, go install it".
Also we could discuss to either drop the expiration altogether with the next release or at least extend the time.Desktop 0.6.0Mikolai GütschowMikolai Gütschowhttps://code.briarproject.org/briar/briar/-/issues/2387Add links to manual, quick start guide and FAQ from Google Play2023-08-28T16:11:48ZakwizgranAdd links to manual, quick start guide and FAQ from Google PlaySponsor 6 usability improvementshttps://code.briarproject.org/briar/briar/-/issues/2388Add links to manual, quick start guide, FAQ and privacy policy from GitHub2023-08-28T16:11:24ZakwizgranAdd links to manual, quick start guide, FAQ and privacy policy from GitHubSponsor 6 usability improvementshttps://code.briarproject.org/briar/public-mesh-research/-/issues/5Initial investigations: Wi-Fi Direct2023-08-28T16:08:03ZakwizgranInitial investigations: Wi-Fi DirectSubtask of #1. Related to briar#39, briar#28.
https://www.wi-fi.org/file/wi-fi-direct-specificationSubtask of #1. Related to briar#39, briar#28.
https://www.wi-fi.org/file/wi-fi-direct-specificationPublic mesh researchakwizgranakwizgranhttps://code.briarproject.org/briar/public-mesh-research/-/issues/7Initial investigations: Bluetooth LE2023-08-28T16:08:02ZakwizgranInitial investigations: Bluetooth LESubtask of #1. Related to briar#28, briar#303, briar#1147, briar#1546.
Investigate BLE advertising and scanning (including larger advertisement packets in BT 5), L2CAP connections, and coded PHY.
https://www.bluetooth.com/wp-content/up...Subtask of #1. Related to briar#28, briar#303, briar#1147, briar#1546.
Investigate BLE advertising and scanning (including larger advertisement packets in BT 5), L2CAP connections, and coded PHY.
https://www.bluetooth.com/wp-content/uploads/2022/05/Bluetooth_LE_Primer_Paper.pdfPublic mesh researchakwizgranakwizgranhttps://code.briarproject.org/briar/public-mesh-research/-/issues/11Initial investigations: LAN peer discovery2023-08-28T16:08:02ZakwizgranInitial investigations: LAN peer discoveryPort the LAN peer discovery code from the Disco app to the public mesh testbed, bring it up to date, wire it up to the UI, and see whether we can use wake locks, wifi locks and/or multicast locks to solve the issues reported [here](https...Port the LAN peer discovery code from the Disco app to the public mesh testbed, bring it up to date, wire it up to the UI, and see whether we can use wake locks, wifi locks and/or multicast locks to solve the issues reported [here](https://code.briarproject.org/briar/briar/-/issues/28#note_32217) with the success rate dropping when the screen is turned off. We also need to test on newer API levels and work out what permissions are required on each API level.
It would be useful to know whether LAN peer discovery typically works for devices connected to a wifi hotspot (created manually via the system settings app) and/or a Wi-Fi Direct legacy mode hotspot (we could use the Offline Hotspot app for testing this).
Subtask of #1. Related to briar#28.Public mesh researchakwizgranakwizgranhttps://code.briarproject.org/briar/public-mesh-research/-/issues/13Evaluate testing libraries for automating mesh experiments2023-08-28T16:08:02ZakwizgranEvaluate testing libraries for automating mesh experimentsEvaluate libraries designed for automated on-device testing to see whether any of them would be suitable for automating mesh experiments that need to run on real devices.
* https://www.softwaretestingmagazine.com/tools/open-source-andro...Evaluate libraries designed for automated on-device testing to see whether any of them would be suitable for automating mesh experiments that need to run on real devices.
* https://www.softwaretestingmagazine.com/tools/open-source-android-testing-tools/
* https://android.googlesource.com/platform/tools/test/connectivity/+/master/acts
* https://source.android.com/docs/core/connect/acts
* https://source.android.com/docs/core/connect/acts-advanced-guide
* https://android.googlesource.com/platform/external/sl4a/+/master/README.md
* https://github.com/google/mobly
* https://github.com/google/mobly/issues/666Public mesh researchSebastianSebastianhttps://code.briarproject.org/briar/public-mesh-research/-/issues/14Initial investigations: companion device pairing2023-08-28T16:08:02ZakwizgranInitial investigations: companion device pairinghttps://developer.android.com/guide/topics/connectivity/companion-device-pairinghttps://developer.android.com/guide/topics/connectivity/companion-device-pairingPublic mesh researchSebastianSebastianhttps://code.briarproject.org/briar/public-mesh-research/-/issues/15Initial investigations: wifi client2023-08-28T16:08:02ZakwizgranInitial investigations: wifi clientInvestigate our options for connecting to a wifi hotspot (which could be a WFD legacy mode hotspot) as a wifi client, rather than by using the WFD API.
The APIs available for connecting to wifi networks have changed a lot over the years...Investigate our options for connecting to a wifi hotspot (which could be a WFD legacy mode hotspot) as a wifi client, rather than by using the WFD API.
The APIs available for connecting to wifi networks have changed a lot over the years, so we'll need to test on a lot of different API versions.
Questions:
* Can we scan for available networks? How often? What permissions are needed? Can we access the SSIDs of the networks?
* Can we request a connection to a network that's not currently in range? If so, do we connect automatically when the network comes in range? What if the client's screen is off? Is the connection kept if the network doesn't have internet access?
* If two or more devices are providing hotspots with the same SSID and password, can a client roam from one to the other?
* If a client has previously connected to a hotspot and accepted the dialog that warns about no internet access, is the dialog shown again when reconnecting to the same hotspot? Is it shown again when connecting to a different device's hotspot that uses the same SSID and password?
Subtask of #1. Related to #5.Public mesh researchakwizgranakwizgranhttps://code.briarproject.org/briar/public-mesh-research/-/issues/16Initial investigations: Google Nearby2023-08-28T16:08:02ZakwizgranInitial investigations: Google NearbyInvestigate the performance of the (closed source) Google Nearby libraries to see whether they perform better on problematic devices than the other options we've identified.
https://developers.google.com/nearby/Investigate the performance of the (closed source) Google Nearby libraries to see whether they perform better on problematic devices than the other options we've identified.
https://developers.google.com/nearby/Public mesh researchhttps://code.briarproject.org/briar/public-mesh-research/-/issues/18Experimentation orchestration library: Mobly2023-08-28T16:08:01ZSebastianExperimentation orchestration library: Mobly* https://github.com/google/mobly
* https://github.com/google/mobly/issues/666* https://github.com/google/mobly
* https://github.com/google/mobly/issues/666Public mesh researchhttps://code.briarproject.org/briar/briar/-/issues/2385Sponsor 6 User feedback2023-08-28T16:07:07ZIvanaSponsor 6 User feedbackThis ticket gathers different strands of user feedback received during Q3 and Q4 2022 from users.
Users were asked to test the Briar app at an event, therefore there was little in the way of user preparation, onboarding etc.
## Feedba...This ticket gathers different strands of user feedback received during Q3 and Q4 2022 from users.
Users were asked to test the Briar app at an event, therefore there was little in the way of user preparation, onboarding etc.
## Feedback from users on how to improve Briar
### Issues Relating to User Experience and Functionality
| Problem | Solution proposed by person giving feedback | Notes from team | Relevant tickets | Next steps |
| ------ | ------ | ------ | ------ | ------ |
| Anecdotally, users have said that Briar doesn't work during internet shutdowns. We heard this at the conference last week. | <p> What we need to explain is that it does work, but it has limitations. We need to lower expectations of what this can do. It is not as good as WhatsApp, and it can take up to 10 minutes to install and connect with friends who have it as well as add yourself to a forum. </p><p> Briar should adjust expectations of what it is capable of doing and make its limitations clear, so users don't become frustrated that it doesn't operate like WhatsApp. </p> | <p> This feedback touches on an issue we've been discussing recently: whether our product strategy of imitating the features and UX of a typical messaging app is effective for meeting the needs of people affected by internet shutdowns. That's an issue we should continue to discuss as a team, but it's too big to tackle in the remaining sponsor 6 hours. Still, within the existing product strategy there are things we could do to address this feedback. </p><p> We could change the language we use to describe the app (on our website, Google Play and elsewhere), to make it clear that when operating offline, the app can only be used to communicate with people nearby. </p><p> Within the app, we could create a stronger UX distinction between online and offline operation. </p><p> We could add onboarding to explain how offline communication works when the app is used offline for the first time, perhaps using information about the available transports and contacts to decide when onboarding is needed. </p><p> We could be more proactive about using onboarding and UX cues to explain the differences between Briar and typical messaging apps, both online and offline. </p> | #1472 | Design UX for contextual help: #2390. |
| Techies at the event found it hard to download and install the app and became frustrated. Once the app is downloaded and users are trying to connect to one another, they don't understand how to scan each other's QR codes. Our tests often saw pairs of users only scanning one of the QR codes, rather than both on each user’s phone - the current documentation of a still image doesn't exactly show how to do that - and users can get frustrated during this period. | Here are some ways to improve this: Briar needs to include clear images, GIFs and/or a video to make clear how to correctly scan the QR codes early in the installation process to avoid user frustration. | <p> Many other apps use QR codes, but none of them require both parties to scan each other's codes, creating a strong expectation that Briar will work in the same way. </p><p> We've already made a small step towards addressing this by adding hints to the UI. </p><p> We could improve the onboarding for adding a nearby contact, perhaps with a vector animation of both devices scanning each other's QR codes. </p><p> In the longer term we could replace the QR code workflow with a new workflow in which the users choose who will go first, so that we can show each user the next step they need to take. </p> | #348, #1909, #1235 | Design UX for contextual help: #2390. |
| While tutorials and documentation on Briar exist in several languages, these are difficult to find. | <p> We need a centralized place to download Briar's existing documentation and tutorials in multiple languages quickly and easily to help people install the app with ease. </p><p> Some suggestions to improve this include: Making these resources available on the Google Play Store and/or the Briar website, and/or when people download the app they are instructed to do a walkthrough of the app in various languages. Instructions or a walk-through in multiple languages would be helpful. </p> | <p> We should make the manual, quick start guide and FAQ easier to find on the website - this depends on restructuring the nav. </p><p> Linking to the docs from Google Play is an easy win. </p><p> We could also write tutorials for specific tasks (eg creating an account, adding a contact). These might replace the current quick start guide and would allow more topics to be covered. </p><p> Bundling the manual and/or tutorials with the app, and/or writing help text specifically for the app, might also help. </p><p> Open problem: generating in-app documentation and web documentation from the same source, in a format that's compatible with Transifex. </p> | website#21, #1312 | <p> Restructure website navigation: website#21. </p><p> Link to docs from Google Play: #2387. </p><p> Design UX for contextual help: #2390. </p> |
| People join Briar, but they don't know what to do or how to find and join a forum. | The documentation should spell this process out clearly, along with GIFs -- not just still images that don't properly explain what is needed. | <p> We should add onboarding for the blog, forum and private group features. This could consist of a "tour" after the user creates their account, and/or onboarding for specific features when the user first opens them. </p><p> We should offer contextual help throughout the app, either by linking to the appropriate part of the bundled documentation or by writing help text specifically for the app. </p><p> Open problem: how to indicate that help is available in a given context without interrupting the user's workflow? </p> | #1472 | Design UX for contextual help: #2390. |
### Issues Relating to Transparency
| Problem | Solution proposed by person giving feedback | Notes from team | Relevant tickets | Next steps |
| ------ | ------ | ------ | ------ | ------ |
| <p> Information on how and what user data is collected and used by Briar needs to be more clear and more transparent to users in plain language. While the privacy information is on GitHub this is not accessible to an ordinary user and to those who may not be familiar with a privacy policy, especially if it is written in very technical language. </p><p> Some of the questions event participants wished to be answered before they downloaded the app included: Is it encrypted? What will they do with my data? Why do I need a password? Why isn't it on iOS? Will it become available on iOS? Who has developed the app? </p> | They should have a help/FAQ section based on this information. | <p> The privacy policy is linked from Google Play - we should also link to it from GitHub. </p><p> The privacy policy is written in non-technical language, but it's only available in English. Making the website available in multiple languages would help with this. </p><p> The FAQ should also be made available in multiple languages and linked from Google Play and GitHub. This argues in favour of putting the FAQ on the website (where it can be translated) rather than the wiki. Including the FAQ in the app might also help. </p><p> We could add onboarding to the account setup process (or expand the existing contextual help and make it more obvious) to answer the questions about encryption, data storage and why the password is needed. </p> | website#28, website#29, #1312 | <p> Link to docs and privacy policy from GitHub: #2388. </p><p> Make website translatable: website!87. </p><p> Add FAQ to website: website#29 (depends on website#21). </p><p> Design UX for contextual help: #2390. </p> |
### Some Suggestions for Improvements to Increase Functionality/User Uptake
#### Read/Delivery Receipts
| Problem | Solution proposed by person giving feedback | Notes from team | Relevant tickets | Next steps |
| ------ | ------ | ------ | ------ | ------ |
| During an emergency situation information on the delivery/receipt/reading of messages can be vital. | Briar developers should make it optional to add read receipts to private messages and forums. The app should provide clear ways to show if a message has not been delivered or read, similar to some other apps. | <p> Opt-in read receipts could be implemented for private messages. </p><p> We should look at how other apps handle the UI distinction between a contact who hasn't enabled read receipts and a contact who has enabled them but hasn't read the message. </p><p> Some apps don't let you request read receipts unless you also send receipts to your contacts (although this couldn't be enforced in a P2P app). </p><p> For forums, it's not clear how read receipts would work, as the membership of the forum isn't known. </p><p> Read receipts for private groups might be feasible. We should look at how other apps handle read receipts for group chats. </p><p> Some people may think that two checkmarks mean a message has been read. We could show onboarding for this and add it to the FAQ. </p> | #1220, #1208 | <p> Research how other apps handle read receipts: #2389. </p> |
#### Understanding the Internet vs Bluetooth Function
| Problem | Solution proposed by person giving feedback | Notes from team | Relevant tickets | Next steps |
| ------ | ------ | ------ | ------ | ------ |
| At the moment, people don't seem to understand what the internet and Bluetooth functions are, what they mean, why it is better than WhatsApp, when it is appropriate to use either function, and what the limitations are when these functions are used. | A notification/banner showing if the app is relying on the internet or Bluetooth should be shown to make the use of the two functions clear and help people understand the two different modes it can operate. | See notes above re: making it clear that the app works differently from WhatsApp. | See above. | See above. |
#### Confusion about the Forum Function
| Problem | Solution proposed by person giving feedback | Notes from team | Relevant tickets | Next steps |
| ------ | ------ | ------ | ------ | ------ |
| Event participants were confused about what the term ‘forum’ meant and which function it was meant to provide, which can indicate that other users, especially non-English-speaking users may not be able to understand what this function provides. | Briar should consider changing the name Forum to Groups which is more clear and in line with other apps to avoid confusion and misunderstandings by users, especially those in non-English-speaking countries. | <p> We should try to find out whether this is a translation issue or whether the term is also unclear to English-speaking users. </p><p> We could do some user research into what users expect the terms "forum", "private group" and "blog" to mean. </p><p> We discussed renaming "forum" and "private group" to "public group" and "private group", or "open group" and "closed group", but this might cause further confusion between the two features. We won't find any single term that conveys the right concept to everyone, so explanations need to be included in the app and easily accessible. See notes above re: onboarding for features and contextual help. </p> | #800, #1472 | Design UX for contextual help: #2390. |
#### Warnings and Notifications on Internet Disruptions and Shutdowns
| Problem | Solution proposed by person giving feedback | Notes from team | Relevant tickets | Next steps |
| ------ | ------ | ------ | ------ | ------ |
| It needs to be clear that people DO need internet access to download and install the app, so installation needs to happen before any shutdowns/disruptions. | <p> To help users be prepared and remember to use Briar, notifications could be sent to users' phones while they are connected to the internet to tell friends about the application and to help them download it. The notification can be sent periodically to remind users about the app. </p><p> Briar could also connect to civil society/research groups who monitor internet connectivity around the world, so that it can provide notifications and warnings if there is a risk of imminent internet disruption or shutdown so that users can prepare/share information to friends/family to start using Briar. </p> | <p> Apparently we need to do a better job of advertising the offline app sharing function! We could add onboarding for this feature when the app is first used offline. We could also think about whether there's a more prominent place in the app where this feature could live. </p><p> Showing too many notifications might irritate users and cause them to turn off notifications. </p><p> Notifications for specific countries at risk of internet disruptions would be possible, but the Briar team would prefer not to operate any centralised infrastructure. We might be able to partner with an organisation like Access Now to publish information, perhaps as an RSS feed that Briar peers could fetch via Tor and automatically re-share. </p><p> We could direct the user to the offline app sharing feature when we detect that the app is offline. </p><p> Many apps have the ability to generate a generic message like "Let's keep in touch via Briar, download it here", which can be sent via another app. This would be an easy win. </p> | | Share a link to the Briar download page: #2391. |
## Feedback received via Briar blog from project partners
| Problem | Solution proposed by person giving feedback | Notes from team | Relevant tickets | Next steps |
| ------ | ------ | ------ | ------ | ------ |
| It's not obvious that the Reblog button can be used to reply to a post. The reblog icon is intuitive *if you're accustomed to Tumblr*, but that's ancient to most savvy youths, a primary target audience for Briar. | It would be better to have separate Reply and Reblog buttons, like Twitter. | This is an easy win. | | Use separate buttons for reblogging and commenting: #2392. |
| A link shared within a blog is neither clickable not intuitively copy-able. | | <p> The underlying issue is that blog posts are written in plain text but rendered as HTML, because RSS posts can contain HTML. Messages elsewhere in the app (private messages, forums, private groups and even blog comments) are written and rendered as plain text. </p><p> We could convert blog posts to HTML when they're written, including converting URLs into links. </p><p> Alternatively, we could continue to render RSS posts as HTML, but render non-RSS posts as plain text. We could then make links clickable when rendering all plain text content (blog posts, blog comments, private messages, forums and private groups). </p><p> We should investigate the options for preprocessing text to HTML. </p> | #689, #421, #786, #1038, #90 | Convert blog posts and comments to HTML when composing: #2393. |
| As I play with the app, I'm continually seeking a "homebase" with the feed but featuring notifications of messages and new posts, and instead I end up hitting the Back button and accidentally exiting the app. | A centralised homepage with just my notifications would be optimal. | <p> We could show badges for new content in the nav menu, and maybe even on the hamburger button. This might require some refactoring to limit the amount of DB work needed. </p><p> Paul has some drawings of different navigation options, including bottom navigation, which would make the badges visible from everywhere. </p><p> Another option would be to create a new homepage that shows new content from all parts of the app. This would be a much bigger change, requiring design work to differentiate the various types of content and backend work to make the new content available efficiently. </p> | #42 | Show new content in navigation drawer: #42. (This may need to be broken down into subtasks.) |
| Why can't I filter the Blogs page to see posts from specific contacts? | | This could be added, either as a blog list screen accessible via the overflow menu, similar to the forum and private group lists, or as a dropdown at the top of the feed.| #624, #864, #865, #996 | |
| Post that is continually reblogged when I add comments to it creates annoying redundancy for my contact. | | This is a tricky one because comment threads can fork. Let's look at how Tumblr and Twitter handle this. | #2154 | Research how Tumblr and Twitter handle comments/reblogs for previously seen posts: #2394. |
| When I go to contacts individually, I'd like to see their blogs. | | This could easily be added to the conversation screen's overflow menu. Alternatively, it could be added to the long-requested contact info screen. The contact info screen could also serve as an entry point for documentation. | #26 | |
| Adding nearby contact wait screen makes one unable to do other things in the app. | Can it happen in the background? | <p> By the time we know that the contact has scanned our QR code, the process is nearly finished. So with the current protocol, not much time would be saved by moving the process to the background at that point. </p><p> If we redesign the workflow and protocol for adding nearby contacts then we should keep this request in mind, but that redesign is probably too big a piece of work to tackle in the remaining sponsor 6 hours. </p> | #348 | Too big for sponsor 6. |
| Ability to make others admins of private groups. | | This has been requested before. Having multiple admins would be very complex. Transferring ownership to a new admin might be feasible, but it would be too big a piece of work for the remaining sponsor 6 hours. | #920 | Too big for sponsor 6. |
| Bigger buttons. | | More information needed. | | Ask for more info. |
| Too many similar terms. | | More information needed. | | Ask for more info. |
| Notifications are clunky. | | More information needed. | | Ask for more info. |
| Restructure actions so you just write a post and then decide who sees it (eg private, a contact, a group, or all). | | <p> If the request is only intended to apply to blogs then it should be feasible. It would require UX and backend changes, including a small protocol change to let recipients know whether they're allowed to re-share the post. </p><p> If the request is intended to apply across the app, ie to make it possible to write some content and then decide whether it should be a private message, a blog post, etc, then that would be more complex (for example, private messages support attachments but other types of content don't). Email clients and some messengers support this, and it's useful to be able to create an ad hoc group for a conversation. We should keep this use case in mind when working on public mesh protocols. </p> | #1013 | |akwizgranakwizgran