briar issueshttps://code.briarproject.org/briar/briar/-/issues2020-11-21T18:39:19Zhttps://code.briarproject.org/briar/briar/-/issues/499Private messaging: cancel undelivered messages2020-11-21T18:39:19ZErnir ErlingssonPrivate messaging: cancel undelivered messagesIf the recipient's phone is offline messages are not delivered, this can cause messages to become obsolete and one tester suggested that we allow the user to cancel any pending messages.
This feature will make message dependencies more ...If the recipient's phone is offline messages are not delivered, this can cause messages to become obsolete and one tester suggested that we allow the user to cancel any pending messages.
This feature will make message dependencies more difficult, such as was suggested in #232https://code.briarproject.org/briar/briar/-/issues/491Compose blog posts in the same screen as the blog feed2020-11-21T18:39:55ZakwizgranCompose blog posts in the same screen as the blog feedAllow the user to compose blog posts in the same screen as the blog feed, like we do for forums.Allow the user to compose blog posts in the same screen as the blog feed, like we do for forums.https://code.briarproject.org/briar/briar/-/issues/489Show only the first few lines of long forum posts2020-11-21T18:40:21ZakwizgranShow only the first few lines of long forum postsVery long forum posts should not automatically be shown in their entirety. Show the first few lines plus a 'Show more' or 'Read more' control that expands the post to its full length.Very long forum posts should not automatically be shown in their entirety. Show the first few lines plus a 'Show more' or 'Read more' control that expands the post to its full length.https://code.briarproject.org/briar/briar/-/issues/481Message receipt hooks2020-11-21T18:41:07ZakwizgranMessage receipt hooksAllow clients to register hooks for messages being received by contacts. These can be used, for example, to delete a locally created message that doesn't need to be kept once it has been synced to the contact.Allow clients to register hooks for messages being received by contacts. These can be used, for example, to delete a locally created message that doesn't need to be kept once it has been synced to the contact.https://code.briarproject.org/briar/briar/-/issues/480Separate Bramble peers from Briar contacts2020-11-21T18:41:33ZakwizgranSeparate Bramble peers from Briar contactshttps://code.briarproject.org/briar/briar/-/issues/479High background data traffic2020-11-21T18:42:17ZMegaloxHigh background data trafficA tester complained that he had briar running over the weekend without communicating (briar mostly in the background) and had a data traffic of 20 MB (17 background, 3 foreground).A tester complained that he had briar running over the weekend without communicating (briar mostly in the background) and had a data traffic of 20 MB (17 background, 3 foreground).https://code.briarproject.org/briar/briar/-/issues/473Private messages: Notification for new message while message screen was open2020-11-21T18:43:10ZMegaloxPrivate messages: Notification for new message while message screen was openA tester noticed that he got a notification about a new message while the screen where this message appeared was open. He tapped the open message and the message screen reloaded.A tester noticed that he got a notification about a new message while the screen where this message appeared was open. He tapped the open message and the message screen reloaded.https://code.briarproject.org/briar/briar/-/issues/469Identify errors and improve error messages2020-11-21T18:45:01ZMegaloxIdentify errors and improve error messagesAt the moment we implement a standard error message (#380). We could improve the UX with distinct error messages. If we can identify the specific nature of an error we can tell the user (1) what went wrong and (2) what she can do about i...At the moment we implement a standard error message (#380). We could improve the UX with distinct error messages. If we can identify the specific nature of an error we can tell the user (1) what went wrong and (2) what she can do about it. We could also define what kind of errors trigger special behaviour like sending error reports to the developer.https://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/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/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/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;
}
````