briar issueshttps://code.briarproject.org/briar/briar/-/issues2018-06-12T11:32:26Zhttps://code.briarproject.org/briar/briar/-/issues/410My Blogs tab with option to add new blogs2018-06-12T11:32:26ZTorsten GroteMy Blogs tab with option to add new blogsThis tickets depends and builds on #409. A tab "My Blogs" should be created that shows a list of the user's own blogs. There should be a button in the toolbar to add a new blog with a name and a description.
![410-adding-post](/upload...This tickets depends and builds on #409. A tab "My Blogs" should be created that shows a list of the user's own blogs. There should be a button in the toolbar to add a new blog with a name and a description.
![410-adding-post](/uploads/8d87c65e6c5a47aec784fe6374b64dee/410-adding-post.jpg)
1. the user wants to start a new blog and taps the + icon
2. she composes a title (check for max number of characters)
3. and a description (check for max number of characters)
4. the new empty blog is added to the "My blogs" list. Blogs are sorted by creation time by default. But they can also be sorted sorted alphabetically and by date of latest post.
We could of course combine steps (2) and (3).
![Combined](https://code.briarproject.org/akwizgran/briar/uploads/1b37a8ece05ea4b8f11b214a38b9f5b5/Add_new_blog_2_in_1.jpg)
Sort order:
always put the last blog the user interacted with (create, edit, post) on top
Milestone DTorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/411UI for creating new Blog Posts2018-06-12T11:32:26ZTorsten GroteUI for creating new Blog PostsThis ticket depends on #410.
![new_blog_new_post](/uploads/ace1431ea4b716f2b3fd0447498a125a/composer_flow.jpg)
There are two patterns: Compose in a distinct screen (like it is shown above) or just open keyboard and input field (li...This ticket depends on #410.
![new_blog_new_post](/uploads/ace1431ea4b716f2b3fd0447498a125a/composer_flow.jpg)
There are two patterns: Compose in a distinct screen (like it is shown above) or just open keyboard and input field (like in private messages and forums). We planned to use the distinct screen for the blog feature before we changed it to micro blogs. I'm still a fan of this pattern, but maybe it is of higher importance for the user to still see the feed now that we offer the microblog. Open for suggestions.Milestone DTorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/413Show list of Available Blogs2018-06-12T11:32:26ZTorsten GroteShow list of Available BlogsThis ticket depends on #409 and #412. A child fragment should be added to the TabLayout that shows all blogs the user can still subscribe to.
![New_marker_Tag_v02](/uploads/86e41472322c9ed607353a2ec42c4a2c/New_marker_Tag_v02.png)
U...This ticket depends on #409 and #412. A child fragment should be added to the TabLayout that shows all blogs the user can still subscribe to.
![New_marker_Tag_v02](/uploads/86e41472322c9ed607353a2ec42c4a2c/New_marker_Tag_v02.png)
Update: Tab indicator and tags
Sorting order (from top to bottom):
(1) new+contact
(2) new
(3) contact
(4) date of sharing
A blog is considered as new when it was added in the last 24h hours. The date in the mockup refers to the time the blog was added and not the time of the last post, because that information is not available.Milestone DTorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/414Add a Blog List tab that shows all subscribed blogs2018-06-12T11:32:26ZTorsten GroteAdd a Blog List tab that shows all subscribed blogsThis ticket depends on #409 and #413.
When a blog from Available Blogs (#413) has been clicked, it will be added to the "Blog List" tab. Here all subscribed blogs should be shown.
Phase 1
![Blogs_5_tab_blog_list_sortiert](/uploa...This ticket depends on #409 and #413.
When a blog from Available Blogs (#413) has been clicked, it will be added to the "Blog List" tab. Here all subscribed blogs should be shown.
Phase 1
![Blogs_5_tab_blog_list_sortiert](/uploads/d116fb881fd0b127cbc69bb7a7bd5531/Blogs_5_tab_blog_list_sortiert.png)
Order:
(1) unread messages with latest posts first (2) date of last post
Phase2
Implement possibility to pin an element to the top
![Blogs_5_tab_blog_list_sortiert_mit_pin](/uploads/bbf8c4b2885548456daef418df7cebce/Blogs_5_tab_blog_list_sortiert_mit_pin.png)
Order:
(1) pinned blogs (2) unread messages with latest posts first (3) date of last post
https://code.briarproject.org/briar/briar/-/issues/415Blog Activity for Viewing List of Blog Posts2018-06-12T11:32:26ZTorsten GroteBlog Activity for Viewing List of Blog PostsThis ticket depends on #414 and/or #411.
When clicking on a blog, a list of posts should be shown to the user.
![blog_-_entires2](/uploads/b5565269d04e334ee204172c9334a742/blog_-_entires2.jpg)This ticket depends on #414 and/or #411.
When clicking on a blog, a list of posts should be shown to the user.
![blog_-_entires2](/uploads/b5565269d04e334ee204172c9334a742/blog_-_entires2.jpg)Milestone DTorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/416Blog Sharing Status UI2018-06-12T11:32:26ZTorsten GroteBlog Sharing Status UIThis ticket depends on #412.
Each blog should have an option to show the user how she shares this blog with others.
The implementor should look into the forum sharing status for code re-use.
![sharing_status_foverview](/uploads/...This ticket depends on #412.
Each blog should have an option to show the user how she shares this blog with others.
The implementor should look into the forum sharing status for code re-use.
![sharing_status_foverview](/uploads/2bd62c8ba17a326a1a9d61991a40f424/sharing_status_foverview.jpg)Milestone DTorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/417Combined Blog Feed2018-06-12T11:32:26ZTorsten GroteCombined Blog FeedThis ticket depends on #409 and would be implemented after #413 is complete.
![Blogs_5_tab_feed](/uploads/591e095406a64d8d2215ab223cc5bca8/Micro_blog_feed_with_chat_option.png)
This ticket depends on #409 and would be implemented after #413 is complete.
![Blogs_5_tab_feed](/uploads/591e095406a64d8d2215ab223cc5bca8/Micro_blog_feed_with_chat_option.png)
Milestone DTorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/422Forum sub-tree duplicates2018-06-12T11:32:26ZErnir ErlingssonForum sub-tree duplicates>I've managed to generate a different bug now: subtrees can get duplicated. Specifically, if I close one subtree (at any level), the indicator for one of the subtrees below it at the same level (not always the immediate next subtree) wil...>I've managed to generate a different bug now: subtrees can get duplicated. Specifically, if I close one subtree (at any level), the indicator for one of the subtrees below it at the same level (not always the immediate next subtree) will also change to closed, and tapping it will "open" the subtree again, inserting it into the list a second time.Milestone Chttps://code.briarproject.org/briar/briar/-/issues/423Forum code re-factor2018-06-12T11:32:26ZErnir ErlingssonForum code re-factor* Remove redundancy in nested for-loops
* Use `NO_POSITION` instead of -1 when applicable
* Some comments have improper indenting
* Make sure that `position` is not directly in `onBindViewHolder`* Remove redundancy in nested for-loops
* Use `NO_POSITION` instead of -1 when applicable
* Some comments have improper indenting
* Make sure that `position` is not directly in `onBindViewHolder`Milestone Dhttps://code.briarproject.org/briar/briar/-/issues/424Forum post timestamps2018-06-12T11:32:26ZErnir ErlingssonForum post timestampsThere was some old logic upon forum post creation that I didn't quite understand:
`// Don't use an earlier timestamp than the newest post`
Find out what this is about and make appropriate changes if anyThere was some old logic upon forum post creation that I didn't quite understand:
`// Don't use an earlier timestamp than the newest post`
Find out what this is about and make appropriate changes if anyMilestone Dhttps://code.briarproject.org/briar/briar/-/issues/425Forum Event race-condition2018-06-12T11:32:26ZErnir ErlingssonForum Event race-conditionCurrently there exists a race condition in the event handler when new forum messages are received.
Note that this is related to #310 Currently there exists a race condition in the event handler when new forum messages are received.
Note that this is related to #310 https://code.briarproject.org/briar/briar/-/issues/426Forum improvements2018-06-12T11:32:26ZErnir ErlingssonForum improvements* Orientation changes should maintain the state of thread closures and text input
* clickable snack bar when applicable
* bottom divider should not be visible* Orientation changes should maintain the state of thread closures and text input
* clickable snack bar when applicable
* bottom divider should not be visibleMilestone Dhttps://code.briarproject.org/briar/briar/-/issues/427Loading authors2018-06-12T11:32:26ZErnir ErlingssonLoading authorsCurrently, in the forum, the author is loaded like this.
```
private void loadAuthor() throws DbException {
Collection<LocalAuthor> localAuthors =
identityManager.getLocalAuthors();
for (LocalAuthor author : localAuth...Currently, in the forum, the author is loaded like this.
```
private void loadAuthor() throws DbException {
Collection<LocalAuthor> localAuthors =
identityManager.getLocalAuthors();
for (LocalAuthor author : localAuthors) {
if (author == null)
continue;
data.setLocalAuthor(author);
break;
}
}
```
This follows the assumption that the first author (with a null safety check) is the correct author.
* Am I right to assume that we are following a single author scheme at the moment?
* Shouldn't we load up the author once, after login, and then just re-use that instance throughout the app ? Heck, we could even inject it.Milestone Fhttps://code.briarproject.org/briar/briar/-/issues/428Blog Post Activity2018-06-12T11:32:26ZTorsten GroteBlog Post ActivityThis ticket depends on #410 and #415.
When tapping on a long blog post, the post should open up in a dedicated activity. This activity should be implemented here.
![list_of_posts_-_post_overview](/uploads/3d1e667760f502a117211d6d3e...This ticket depends on #410 and #415.
When tapping on a long blog post, the post should open up in a dedicated activity. This activity should be implemented here.
![list_of_posts_-_post_overview](/uploads/3d1e667760f502a117211d6d3e9b1836/list_of_posts_-_post_overview.jpg)
The overflow menu hides the delete option (see #418)Milestone DTorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/429Explain that QR codes can not be scanned remotely2018-06-12T11:32:26ZTorsten GroteExplain that QR codes can not be scanned remotelyAlmost all people that I showed Briar to asked my to post my QR code into another chat app or to go into a WebRTC room to show my QR code in a webcam. Everytime I need to explain that this won't work, so it would be nice if it would some...Almost all people that I showed Briar to asked my to post my QR code into another chat app or to go into a WebRTC room to show my QR code in a webcam. Everytime I need to explain that this won't work, so it would be nice if it would somehow be clear from the app.Milestone BTorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/430NPE in ForumSharingStatusActivity2018-06-12T11:32:26ZTorsten GroteNPE in ForumSharingStatusActivity```
java.lang.NullPointerException
at org.briarproject.android.contact.BaseContactListAdapter.onBindViewHolder(BaseContactListAdapter.java:55)
at org.briarproject.android.contact.BaseContactListAdapter.onBindViewHolder(BaseCon...```
java.lang.NullPointerException
at org.briarproject.android.contact.BaseContactListAdapter.onBindViewHolder(BaseContactListAdapter.java:55)
at org.briarproject.android.contact.BaseContactListAdapter.onBindViewHolder(BaseContactListAdapter.java:23)
```Milestone DTorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/432Design consistent visual elements for empty states, error messages and navidr...2018-06-12T11:32:26ZMegaloxDesign consistent visual elements for empty states, error messages and navidrawer headerSubtickets:
* empty states #327
* error messages #380
* navigation drawer #431Subtickets:
* empty states #327
* error messages #380
* navigation drawer #431https://code.briarproject.org/briar/briar/-/issues/433ForumPersistentData does not work2018-06-12T11:32:26ZTorsten GroteForumPersistentData does not workThe idea of `ForumPersistentData` is to keep its data in memory as long as the activity lives, so that you can rotate your screen and the data does not need to be loaded from the database again.
However, when you go to a forum and rot...The idea of `ForumPersistentData` is to keep its data in memory as long as the activity lives, so that you can rotate your screen and the data does not need to be loaded from the database again.
However, when you go to a forum and rotate your screen, the data is loaded from the database again. I am facing the same problem with blogs.Milestone Dhttps://code.briarproject.org/briar/briar/-/issues/436Automatic Personal Blogs2018-06-12T11:32:26ZTorsten GroteAutomatic Personal BlogsAll users should have a blog by default and automatically subscribe to the default blog of their contacts. The blogs of the contacts should show up in the combined feed (#417). Writing a new post into the default blog should be quick an...All users should have a blog by default and automatically subscribe to the default blog of their contacts. The blogs of the contacts should show up in the combined feed (#417). Writing a new post into the default blog should be quick and easy.
As for other blogs, the group descriptor is a BDF list with three elements: `name` (string), `author_name` (string) and the author's long-term `public_key` (raw). The name should be a deterministic identifier that is either known beforehand or can be calculated from the given information. I would suggest to not use "$author_name's blog" as the internal name to allow for localization. The name could be something like "org.briaproject.BLOG_NAME" which will be shown as "$Author's blog" in an English UI.
This is a sub-ticket of #134.Milestone DTorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/437Blog Comments2018-06-12T11:32:26ZTorsten GroteBlog CommentsCommenting on blog posts works by reblogging the original post into one's own blog and adding a comment. Comments are visible to subscribers of the commenter's blog.
The reblogged post would be wrapped in a new message that would be p...Commenting on blog posts works by reblogging the original post into one's own blog and adding a comment. Comments are visible to subscribers of the commenter's blog.
The reblogged post would be wrapped in a new message that would be posted to the reposter's blog. The new message would include a signature by the reposter and an optional comment, and it would be distributed to the reposter's subscribers in the same way as a normal post.
Reading a few Tumblr blogs is the easiest way to understand how this style of commenting works. See http://awkwardvagina.com/ for example (don't worry about the URL, it's just a typical Tumblr blog full of reblogged memes and jokes).Milestone DTorsten GroteTorsten Grote