briar issueshttps://code.briarproject.org/briar/briar/-/issues2020-11-21T18:46:19Zhttps://code.briarproject.org/briar/briar/-/issues/466Offline Mode: Don't inform contacts that we are online2020-11-21T18:46:19Zstr4dOffline Mode: Don't inform contacts that we are onlineSeveral users asked for the option not to let contacts know when they're online.
Some of those users wanted to be online without their contacts seeing them as online. It isn't possible to be online without connecting to contacts, and th...Several users asked for the option not to let contacts know when they're online.
Some of those users wanted to be online without their contacts seeing them as online. It isn't possible to be online without connecting to contacts, and the "show what you know" principle says that if we know a contact is connected, we should show that information in the UI, so that feature request was rejected - see #72.
Other users wanted to be signed in without their contacts seeing them as online. We can achieve that by providing an offline mode where the user is signed in but all transports are disabled. As mentioned in the discussion on #72, being able to toggle transports (#185) may not fully address the need for an offline mode, as users may not understand that disabling all transports means they're offline. Also, the user may want to enable offline mode when signing in.https://code.briarproject.org/briar/briar/-/issues/464UX-/UI-review2020-11-21T18:46:54ZMegaloxUX-/UI-reviewThis is an (imcomplete) list of features which need special attention during UX-/UI-review. Please feel free to add points to the list.
- highlight for unread messages/forum posts/blog posts correct (color and animation) (#232)?
- P...This is an (imcomplete) list of features which need special attention during UX-/UI-review. Please feel free to add points to the list.
- highlight for unread messages/forum posts/blog posts correct (color and animation) (#232)?
- Personal feed: Does the timestamp move a lot (#442 !235)?
- All colors correct? All font colors correct (#333)?
- All transitions consistent?
- Empty state messages: All present and correct?
- Big button: Corners correct (#451 !231)? (Sharp, not rounded)
[- New Tag vanishes after 24h? (not implemented)]https://code.briarproject.org/briar/briar/-/issues/463Redesign panic button settings2020-11-21T18:47:35ZMegaloxRedesign panic button settingsThe panic button settings could look better, but this is very low priority.The panic button settings could look better, but this is very low priority.https://code.briarproject.org/briar/briar/-/issues/457Personal detail screen / My profile2020-11-21T18:54:24ZMegaloxPersonal detail screen / My profileWe need some screen to ~~edit nick names, create additional identities,~~ edit avatars, ~~select identities~~, sign out and display the users single feed. Could even be a navigation target in the drawer.We need some screen to ~~edit nick names, create additional identities,~~ edit avatars, ~~select identities~~, sign out and display the users single feed. Could even be a navigation target in the drawer.https://code.briarproject.org/briar/briar/-/issues/454Research RSS article extraction libraries2020-11-21T18:55:04ZTorsten GroteResearch RSS article extraction librariesThere are two main problems with doing a RSS Import and republishing it as a Briar Blog:
1. **The feed may not include the full article, but only a teaser**
2. How would RSS feed of a traditional blog or news website fit with Briar's mor...There are two main problems with doing a RSS Import and republishing it as a Briar Blog:
1. **The feed may not include the full article, but only a teaser**
2. How would RSS feed of a traditional blog or news website fit with Briar's more tumblr-like blogs
This ticket is about solving the first problem. Once this is solved, we'll open a new ticket for the second one.
One solution could be to **fetch and reformat the full article** that is usually linked from the RSS feed. This is a difficult job that would require a lot of testing with real-world data. Fortunately, there are libraries out there that could solve this problem for us.
It is difficult to detect if an RSS feed provides the full content or not. In both cases, the `<description>` tag is used. So maybe we could show users a **preview** before importing the feed and allow them to **switch article extraction mode on manually** for when the feed only contains teasers.
An alternative is not to support teaser-only feeds at all and rely on users to provide full text feeds. There is even a [Free Software webservice](http://fivefilters.org/content-only/) to do this.
This is a sub-ticket of #135.
# Article Extraction Libraries
## [boilerpipe](https://github.com/kohlschutter/boilerpipe)
* seems to be the most popular library on the net, but last release was 5 years ago and last commit 2 years ago
* not on jcenter, only private maven repo or jars
* `ArticleExtractor#getText()` can take various arguments such as `Url`, `String`, `Reader`, etc. so we can fetch the document ourselves via Tor
* The built-in `HTMLFetcher` is very simple and does not seem to support proxies
* License: Apache License 2.0
* Dependencies:
* [nekohtml](http://nekohtml.sourceforge.net/)
* [xerces](https://xerces.apache.org/)
## [snacktory](https://github.com/karussell/snacktory)
* used by the RSS reader Torsten is using and works well, but also [no longer actively developed](https://github.com/karussell/snacktory/issues/42#issuecomment-71230546)
* good detection for none-english sites (German, Japanese, ...), snacktory does not depend on the word count in its text detection to support CJK languages
* not on jcenter, only private maven repo or jars (or one `.java` file)
* `ArticleTextExtractor#extractContent()` can take various arguments such as `JResult`, `String`, `Document`, etc. so we can fetch the document ourselves via Tor
* There is also a built-in `HtmlFetcher` that has a `setProxy()` method
* License: Apache License 2.0
* Dependencies:
* [jsoup](https://jsoup.org/)
* [log4j](https://logging.apache.org/log4j/)
* [slf4j-api](http://www.slf4j.org/)
## [goose](https://github.com/GravityLabs/goose)
* written in Scala which apparently can be used in Android projects
* Last release in Nov 2015
* License: Apache License 2.0https://code.briarproject.org/briar/briar/-/issues/445iOS and iPhone2023-03-28T12:51:28ZSimó Albert i BeltraniOS and iPhoneUnfortunatelly I know iPhone users :(
Could they run Briar?Unfortunatelly I know iPhone users :(
Could they run Briar?https://code.briarproject.org/briar/briar/-/issues/439Compare TRVE Data with BSP2020-11-21T18:55:43Zstr4dCompare TRVE Data with BSPFrom the research team we are talking with about performance / battery life measurements (for #115). It sounds like it has a lot of overlap with BSP; it would be interesting to know in what ways the approaches differ.
http://www.cl.cam....From the research team we are talking with about performance / battery life measurements (for #115). It sounds like it has a lot of overlap with BSP; it would be interesting to know in what ways the approaches differ.
http://www.cl.cam.ac.uk/research/dtg/trve/
https://github.com/trvedatahttps://code.briarproject.org/briar/briar/-/issues/438Extract general means for loading body content in background2020-11-21T18:56:48Zstr4dExtract general means for loading body content in backgroundPer [this comment](https://code.briarproject.org/akwizgran/briar/merge_requests/209#note_6830):
> Fetching content is also needed for blogs and I think also forums. Maybe there's a way to somehow generalize this either further so it can...Per [this comment](https://code.briarproject.org/akwizgran/briar/merge_requests/209#note_6830):
> Fetching content is also needed for blogs and I think also forums. Maybe there's a way to somehow generalize this either further so it can be reused by other clients as well.https://code.briarproject.org/briar/briar/-/issues/435Generalise ForumSharingIntegrationTest2020-11-21T18:58:09Zstr4dGeneralise ForumSharingIntegrationTestAs part of #403, `ForumSharingManager` was generalised into a `SharingManager` that is subclassed per-shareable.
`ForumSharingIntegrationTest` should be similarly generalised to ensure that the common behaviour is consistent across all ...As part of #403, `ForumSharingManager` was generalised into a `SharingManager` that is subclassed per-shareable.
`ForumSharingIntegrationTest` should be similarly generalised to ensure that the common behaviour is consistent across all subclasses (and to reduce duplication).https://code.briarproject.org/briar/briar/-/issues/421Rich Text Editor for Writing Blog Posts2022-11-23T14:44:51ZTorsten GroteRich Text Editor for Writing Blog PostsThis ticket depends on #411.
Blog posts need some kind of styling like Markdown or HTML. Users should have a simple WYSIWYG editor to apply simple styles to their posts.
It's possible to render HTML in TextView (and there's a library t...This ticket depends on #411.
Blog posts need some kind of styling like Markdown or HTML. Users should have a simple WYSIWYG editor to apply simple styles to their posts.
It's possible to render HTML in TextView (and there's a library that extends the support). We could find e.g. a Markdown renderer for Android. When we render arbitrary HTML, we have to be very careful about how we increase the attack surface. We also find a way to handle links. You don't want people to publish blogs with specially prepared links that will deanonymize the readers of the blog once they click on them without special precautions like opening the link only via Orfox for example.
[HTMLTextView](https://github.com/SufficientlySecure/html-textview) could be a candidate for rendering a subset of HTML in TextViews.
For inspiration:
![other app](https://code.briarproject.org/akwizgran/briar/uploads/41699a337c47789ab1a51b929d37a7fa/Screenshot_20160523-092610.jpg)
![new_blog_new_post](/uploads/779490393046b65a97557363cc4651c2/new_blog_new_post.jpg)https://code.briarproject.org/briar/briar/-/issues/420Save Blog Posts as Draft and Show List of Drafts2021-01-13T10:26:10ZTorsten GroteSave Blog Posts as Draft and Show List of DraftsThis ticket depends on #409 and #411.
There should be a tab "Drafts" that shows all unpublished blog posts. When writing a blog post, add an option to the menu that allows to save the post as a draft. When clicking on a draft post, the ...This ticket depends on #409 and #411.
There should be a tab "Drafts" that shows all unpublished blog posts. When writing a blog post, add an option to the menu that allows to save the post as a draft. When clicking on a draft post, the normal blog editor (#411) should be opened with the post. The draft tab should have an option to start a new post.
![save_to_draft](/uploads/add76e8afca07ef03e383b2732d87816/save_to_draft.jpg)https://code.briarproject.org/briar/briar/-/issues/407Messages with File Attachments such as Photos2022-12-25T22:52:55ZTorsten GroteMessages with File Attachments such as PhotosI couldn't find an issue for that, but heard already many people requesting this.I couldn't find an issue for that, but heard already many people requesting this.https://code.briarproject.org/briar/briar/-/issues/400Show Active Forum Members2020-11-21T19:00:39ZTorsten GroteShow Active Forum MembersIntroduce a screen reachable from a forum's overflow menu that shows the active members of a forum.
![Metainformation_Overflow3](/uploads/e7f88f57219c5ca3a112479f125db6de/Metainformation_Overflow3.jpg)Introduce a screen reachable from a forum's overflow menu that shows the active members of a forum.
![Metainformation_Overflow3](/uploads/e7f88f57219c5ca3a112479f125db6de/Metainformation_Overflow3.jpg)https://code.briarproject.org/briar/briar/-/issues/379Safe publication audit2020-11-21T19:01:53ZakwizgranSafe publication auditAudit the codebase for safe publication issues:
* Allowing `this` to escape the constructor (including indirectly via non-static inner classes)
* Passing mutable objects between threads (including mutable collections)Audit the codebase for safe publication issues:
* Allowing `this` to escape the constructor (including indirectly via non-static inner classes)
* Passing mutable objects between threads (including mutable collections)https://code.briarproject.org/briar/briar/-/issues/368Simplify Dagger providers2020-11-21T19:02:14ZakwizgranSimplify Dagger providersThe Dagger modules have a lot of methods like this:
```
@Provides
Foo provideFoo(Bar bar, Baz baz, Bam bam, Qux qux) {
return new FooImpl(bar, baz, bam, qux);
}
```
This can be simplified, making it easier to maintain:
```
@Provides
...The Dagger modules have a lot of methods like this:
```
@Provides
Foo provideFoo(Bar bar, Baz baz, Bam bam, Qux qux) {
return new FooImpl(bar, baz, bam, qux);
}
```
This can be simplified, making it easier to maintain:
```
@Provides
Foo provideFoo(FooImpl foo) {
return foo;
}
````https://code.briarproject.org/briar/briar/-/issues/362Connection indicators showed wrong information2020-11-21T19:02:42ZakwizgranConnection indicators showed wrong informationTesters reported that the connection indicators didn't correspond with whether their contacts were online or offline. This occurred with Bluetooth if multiple devices were in a small space.
May be related to the maximum number of device...Testers reported that the connection indicators didn't correspond with whether their contacts were online or offline. This occurred with Bluetooth if multiple devices were in a small space.
May be related to the maximum number of devices in a Bluetooth piconet, see #12.
We may be able to improve the situation by reducing the idle timeout for Bluetooth connections in order to detect failed connections more quickly.https://code.briarproject.org/briar/briar/-/issues/351Overlapping speech bubbles in conversation screen2020-11-21T19:03:30ZakwizgranOverlapping speech bubbles in conversation screenTesters occasionally saw overlapping speech bubbles in the conversation screen.Testers occasionally saw overlapping speech bubbles in the conversation screen.https://code.briarproject.org/briar/briar/-/issues/349Explain Panic Button settings better2020-11-21T19:04:18ZakwizgranExplain Panic Button settings betterSome users discovered the Panic Button settings and were confused by them.Some users discovered the Panic Button settings and were confused by them.https://code.briarproject.org/briar/briar/-/issues/348Testers did not understand QR code workflow2022-11-18T17:24:07ZakwizgranTesters did not understand QR code workflowThree testers tried to scan each other's QR codes: A scanned B, B scanned C, and C scanned A. The testers were not able to complete the task.
In an earlier round of testing we encountered a similar problem with invitation codes.
The f...Three testers tried to scan each other's QR codes: A scanned B, B scanned C, and C scanned A. The testers were not able to complete the task.
In an earlier round of testing we encountered a similar problem with invitation codes.
The first step we should take is to detect that the device we've connected to isn't the same device we scanned, and show a helpful error message. But we may need to consider a more fundamental change: is it possible to design the key agreement protocol to accommodate what the users are trying to achieve?https://code.briarproject.org/briar/briar/-/issues/338Assign parents to activities2020-11-21T19:06:06ZakwizgranAssign parents to activitiesMost activities are currently using NavDrawerActivity as their parent. Pick an appropriate parent for each activity and update the manifest.Most activities are currently using NavDrawerActivity as their parent. Pick an appropriate parent for each activity and update the manifest.