briar issueshttps://code.briarproject.org/groups/briar/-/issues2018-06-12T11:32:28Zhttps://code.briarproject.org/briar/briar/-/issues/375Extract ForumFactory from ForumManager2018-06-12T11:32:28ZakwizgranExtract ForumFactory from ForumManagerThe code for creating forums in ForumManager is used by ForumSharingManager and also needed by InviteeEngine. Extract it into its own class.The code for creating forums in ForumManager is used by ForumSharingManager and also needed by InviteeEngine. Extract it into its own class.Milestone CTorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/374Add Forum Avatars to Available Forums List2018-06-12T11:32:28ZTorsten GroteAdd Forum Avatars to Available Forums ListAs soon as !172 and !178 have both been merged, the forum avatars should also be added to the Available Forums List.
As soon as !172 and !178 have both been merged, the forum avatars should also be added to the Available Forums List.
Milestone CTorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/372Clean up Introduction Session States when removing contact2018-06-12T11:32:28ZTorsten GroteClean up Introduction Session States when removing contactCurrently, when a contact is removed, any existing sessions will be aborted, but no session state messages are deleted from the local group.
Currently, when a contact is removed, any existing sessions will be aborted, but no session state messages are deleted from the local group.
Milestone CTorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/339Forum Sharing Integration Tests2018-06-12T11:32:29ZTorsten GroteForum Sharing Integration TestsMilestone CTorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/337Avatar Placeholders for Forums2018-06-12T11:32:29ZTorsten GroteAvatar Placeholders for ForumsTo make forums visually more pleasing, they should have avatars that use the first letter of their name and a deterministically chosen color as a background. Here's a mockup:
![avatars](https://code.briarproject.org/akwizgran/briar/up...To make forums visually more pleasing, they should have avatars that use the first letter of their name and a deterministically chosen color as a background. Here's a mockup:
![avatars](https://code.briarproject.org/akwizgran/briar/uploads/7c7eb7eb7029c015bc2ed48a1115073c/forums_list_with_Circles.jpg)
Tthis works better with unsaturated colors. I would suggest saturation < 50%. For the identicons we pick random red, green and blue values in the bottom 3/4 of the range, which ensures the colours are somewhat desturated and dark enough to contrast with a light background.Milestone CTorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/336Remove TestingActivity2018-06-12T11:32:29ZakwizgranRemove TestingActivityThis has been replaced by the new feedback reporter.This has been replaced by the new feedback reporter.Milestone Cakwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/322New ForumSharingManager based on ProtocolEngine2018-06-12T11:32:30ZTorsten GroteNew ForumSharingManager based on ProtocolEngineIn order to improve the UX for sharing forums, the `ForumSharingManager` needs to be rewritten.
Similar to the `IntroductionManager`, it should make use of the abstract Protocol engine and implement a protocol (#320) between two parties...In order to improve the UX for sharing forums, the `ForumSharingManager` needs to be rewritten.
Similar to the `IntroductionManager`, it should make use of the abstract Protocol engine and implement a protocol (#320) between two parties.
This is a subtask of Issue #121 which concerns the UX. The interface with the UI is discussed in #321.Milestone CTorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/321ForumSharingManager interface with UI2018-06-12T11:32:30ZTorsten GroteForumSharingManager interface with UIThe ForumSharingManager will be rewritten and changes its paradigm from "sharing as state" to "sharing as action", so the UI interface will need to change along with it.
This is how it could look like:
```java
/** Returns the uniq...The ForumSharingManager will be rewritten and changes its paradigm from "sharing as state" to "sharing as action", so the UI interface will need to change along with it.
This is how it could look like:
```java
/** Returns the unique ID of the forum sharing client. */
ClientId getClientId();
/** Sends an invitation to share the given forum with the given contact and sends an optional message along with it. */
void sendForumInvitation(Forum f, ContactId contactId, @Nullable String message) throws DbException;
/** Responds to a pending forum invitation */
void respondToInvitation(SessionId sessionId, ContactId contactId, boolean accept) throws DbException;
/** Returns all forum sharing messages sent by the Contact identified by contactId. */
Collection<ForumInvitationMessage> getForumInvitationMessages(ContactId contactId) throws DbException;
/** Returns all forums to which the user could subscribe. */
Collection<Forum> getAvailableForums() throws DbException;
/** Returns all contacts who are sharing the given forum with the user. */
Collection<Contact> getSharedBy(Forum f) throws DbException;
/** Returns the IDs of all contacts with whom the given forum is shared. */
Collection<ContactId> getSharedWith(Forum f) throws DbException;
```
Note that I removed methods for adding and (un)subscribing to/from a forum. These are probably better placed into the `ForumManager`.
This is a subtask of Issue #121.Milestone CTorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/320Design Protocol for Sharing Forums2018-06-12T11:32:30ZTorsten GroteDesign Protocol for Sharing ForumsThe protocol will look like a simpler version of the introduction protocol, with two parties per session, and messages for invite/accept/decline/abort. (if you share a forum with more than one contact we can just create one session per c...The protocol will look like a simpler version of the introduction protocol, with two parties per session, and messages for invite/accept/decline/abort. (if you share a forum with more than one contact we can just create one session per contact, there's no reason to tie them together.)
1: **INVITATION** - This is send by the sharer to one of her contacts. The content is a BDF list.
* (int) The type of the message, here 1
* (raw) SessionId chosen by the sharer
* (string) name of the forum
* (raw) salt to uniquely identify this forum
* (string) optional invitation message
2: **ACCEPT RESPONSE** - This should be sent by contacts that received a sharing invitation. The content is a BDF list with these elements:
* (int) The type of the message, here 2
* (raw) SessionId must match the SessionId of an unanswered invitation.
3: **DECLINE RESPONSE** - This should be sent by contacts that received a sharing invitation and do not want to add the forum. The content is a BDF list with these elements:
* (int) The type of the message, here 3
* (raw) SessionId must match the SessionId of an unanswered invitation.
4: **LEAVE** - This should be send by a contact that is unsubscribing from the forum. The content is a BDF list with two elements:
* (int) The type of the message, here 4
* (raw) SessionId must match the SessionId of a previous (un)answered invitation.
5: **ABORT** - This should be send by a contact that encountered an error, so that it can not complete the protocol. The content is a BDF list with two elements:
* (int) The type of the message, here 5
* (raw) SessionId must match the SessionId of an unanswered invitation.
A successful run of the protocol would look like this:
![forum-sharing](/uploads/8f53758e8ed55146f498181b2708a9b1/forum-sharing.png)
**Sharer**
![sharer-state-machine](/uploads/5ca0924c21eef0601e5cfdf4060577ad/sharer-state-machine.png)
[sharer-state-machine.odg](/uploads/24354e5ef7779d36ed7a815eccb8f35e/sharer-state-machine.odg)
**Invitee**
![invitee-state-machine](/uploads/b57dc42ebe5873530543ce7ab36af8f4/invitee-state-machine.png)
[invitee-state-machine.odg](/uploads/2099baeb7948980819022fda5f402aed/invitee-state-machine.odg)
Arrows that have no label stand for 'all other actions'.
It should be documented in the wiki as well: https://code.briarproject.org/akwizgran/briar/wikis/ForumSharingClient
This is a subtask of Issue #322.Milestone CTorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/313Move create forum post and share forum buttons in action bar2018-06-12T11:32:30ZTorsten GroteMove create forum post and share forum buttons in action barThis is a subtask of #121.
According to the designs in #305, the 'create forum post' and 'share forum' buttons will go into the in action bar.
In the spirit of keeping MRs small and to avoid conflicts with #306, this could be done ...This is a subtask of #121.
According to the designs in #305, the 'create forum post' and 'share forum' buttons will go into the in action bar.
In the spirit of keeping MRs small and to avoid conflicts with #306, this could be done first and independently of future work.Milestone CTorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/311Audit crash report and feedback fields for sensitive or identifying information2018-06-12T11:32:30ZakwizgranAudit crash report and feedback fields for sensitive or identifying informationSubtask of #123.Subtask of #123.Milestone CTorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/302Improve privacy of LAN plugin2018-01-28T11:30:28ZakwizgranImprove privacy of LAN pluginThe LAN plugin updates its transport properties with the latest IP address whenever a connectivity change is detected. This may allow the user's contacts to tell when she's at a frequently visited location, either by recognising an addre...The LAN plugin updates its transport properties with the latest IP address whenever a connectivity change is detected. This may allow the user's contacts to tell when she's at a frequently visited location, either by recognising an address she used when they were nearby, or by inferring a pattern (e.g. the IP address she usually advertises at night probably represents her home network).
Instead of advertising a single current address, we could advertise a list of recent addresses. This would make polling more expensive - addresses that aren't valid for the current network aren't polled, but we can expect a lot of networks to use the 192.168.0.0/16 range, resulting in multiple polling attempts per contact.
Related to #28, #44, #62.Milestone Chttps://code.briarproject.org/briar/briar/-/issues/296Use consistent styling for dialogs2018-06-12T11:32:31ZakwizgranUse consistent styling for dialogsSome of the dialogs in the app use Material Design styling on all devices, others use MD styling on newer devices and older styling on older devices. Pick one approach and apply it consistently.Some of the dialogs in the app use Material Design styling on all devices, others use MD styling on newer devices and older styling on older devices. Pick one approach and apply it consistently.Milestone Cakwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/293Remove avatar code and layout from ConversationActivity and ConversationAdapter2018-06-12T11:32:31ZakwizgranRemove avatar code and layout from ConversationActivity and ConversationAdapterThis code is currently unused, remove it if we're definitely not going to use it.This code is currently unused, remove it if we're definitely not going to use it.Milestone CTorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/292Reuse contact selector for introductions and sharing2018-06-12T11:32:31ZakwizgranReuse contact selector for introductions and sharingSeparate the contact chooser from the contact list and make it reusable for introductions and the various sharing features.Separate the contact chooser from the contact list and make it reusable for introductions and the various sharing features.Milestone CTorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/280Break up ConstantsTest2018-06-12T11:32:31ZakwizgranBreak up ConstantsTestThis integration test used to check that data produced at runtime matched constants declared in the API, but most of the meaningful tests have been removed. Convert the remaining tests into unit tests.This integration test used to check that data produced at runtime matched constants declared in the API, but most of the meaningful tests have been removed. Convert the remaining tests into unit tests.Milestone Cakwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/277Unit tests for Forum list & posts2018-06-12T11:32:31ZErnir ErlingssonUnit tests for Forum list & postsNote that this does not include the forum sharing tests, that part is still up for grabs Note that this does not include the forum sharing tests, that part is still up for grabs Milestone Chttps://code.briarproject.org/briar/briar/-/issues/274Code encapsulation techniques2018-06-12T11:32:31ZErnir ErlingssonCode encapsulation techniquesThis issue is a prerequisite of #255
Right now we aren't really using any code design patterns, e.g. MVC, MVP, in the briar-android module. There is hardly any encapsulation between logic, threading or UI and there are a lot of redund...This issue is a prerequisite of #255
Right now we aren't really using any code design patterns, e.g. MVC, MVP, in the briar-android module. There is hardly any encapsulation between logic, threading or UI and there are a lot of redundancies. Improve this by decoupling the logic and UI code, using dependency injections and inheritance if needed.Milestone Chttps://code.briarproject.org/briar/briar/-/issues/273Services should throw exceptions for startup errors2018-06-12T11:32:31ZakwizgranServices should throw exceptions for startup errors`Service#start()` returns true if the service started successfully. Services are always expected to start unless there's a fatal problem, so the interface should use an exception rather than a return value to indicate an error.`Service#start()` returns true if the service started successfully. Services are always expected to start unless there's a fatal problem, so the interface should use an exception rather than a return value to indicate an error.Milestone Cakwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/271Port the splash screen and create forum activities to XML layout2018-06-12T11:32:32ZSantiago Torres-AriasPort the splash screen and create forum activities to XML layoutThis is a subtask of issue #53 This is a subtask of issue #53 Milestone CSantiago Torres-AriasSantiago Torres-Arias