briar issueshttps://code.briarproject.org/briar/briar/-/issues2018-06-12T11:32:17Zhttps://code.briarproject.org/briar/briar/-/issues/676Keyboard isn't shown when forum text entry field gets focus2018-06-12T11:32:17ZakwizgranKeyboard isn't shown when forum text entry field gets focusWhen touching the compose or reply button in a forum, the text entry field appears and gets focus, but the keyboard isn't shown until the field is touched. The keyboard should be shown automatically.When touching the compose or reply button in a forum, the text entry field appears and gets focus, but the keyboard isn't shown until the field is touched. The keyboard should be shown automatically.Milestone ETorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/674Ending a transaction can throw an exception in a finally block2018-06-12T11:32:18ZakwizgranEnding a transaction can throw an exception in a finally blockWe use the following pattern to commit or roll back a transaction:
```
Transaction txn = db.startTransaction();
try {
db.doSomething(txn);
txn.setComplete();
} finally {
db.endTransaction(txn);
}
```
`DatabaseComponent#endTr...We use the following pattern to commit or roll back a transaction:
```
Transaction txn = db.startTransaction();
try {
db.doSomething(txn);
txn.setComplete();
} finally {
db.endTransaction(txn);
}
```
`DatabaseComponent#endTransaction()` can throw a `DbException`, and Android Studio warns about the potential for the exception to be thrown in a finally block.
We should move the exception-throwing code from `endTransaction()` into a new `commitTransaction()` method, which replaces `Transaction#setComplete()` and is called inside the try block. The new contract of `endTransaction()` should be to abort the transaction if it has not already been committed, and release the database lock in either case.
```
Transaction txn = db.startTransaction();
try {
db.doSomething(txn);
db.commitTransaction(txn);
} finally {
db.endTransaction(txn);
}
```Milestone ETorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/673PrivateGroupManager facade2018-06-12T11:32:18ZakwizgranPrivateGroupManager facadeCreate a PrivateGroupManager interface in briar-api, with a stub implementation in briar-core, to allow development of the UI. The interface can be based on the existing ForumManager, with supporting classes for message headers, etc, as ...Create a PrivateGroupManager interface in briar-api, with a stub implementation in briar-core, to allow development of the UI. The interface can be based on the existing ForumManager, with supporting classes for message headers, etc, as required.
Subtask of #127.Milestone ETorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/672Implement UX for dissolving a group2018-06-05T20:39:27ZakwizgranImplement UX for dissolving a groupSubtask of #127. Design ticket is #651.
![](https://code.briarproject.org/akwizgran/briar/uploads/602c4f6ade32ea02f0ff2b81942dec88/651_dissolve_group.jpg)Subtask of #127. Design ticket is #651.
![](https://code.briarproject.org/akwizgran/briar/uploads/602c4f6ade32ea02f0ff2b81942dec88/651_dissolve_group.jpg)Milestone ETorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/671Implement UX for leaving a group2018-06-05T20:39:27ZakwizgranImplement UX for leaving a groupSubtask of #127. Design ticket is #undefined
![](https://code.briarproject.org/akwizgran/briar/uploads/ba733def3eec688975d93d959839124f/652_leave_group.jpg)Subtask of #127. Design ticket is #undefined
![](https://code.briarproject.org/akwizgran/briar/uploads/ba733def3eec688975d93d959839124f/652_leave_group.jpg)Milestone ETorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/670Uncaught exceptions do not print a stack trace in IntroductionIntegrationTest2018-06-12T11:32:18ZSantiago Torres-AriasUncaught exceptions do not print a stack trace in IntroductionIntegrationTestErrors and uncaught exceptions do not print a stack trace unless a try/catch block is added for NPE. This is a followup for the discussion in !237Errors and uncaught exceptions do not print a stack trace unless a try/catch block is added for NPE. This is a followup for the discussion in !237Milestone ETorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/669Integration tests need to know the client ID of MessageStateChangedEvents2018-06-12T11:32:18ZakwizgranIntegration tests need to know the client ID of MessageStateChangedEventsRecent refactoring of the validation manager removed the client ID from MessageStateChangedEvents, because these events are only used by tests and a lot of code in the validation manager and DB existed just to attach client IDs to these ...Recent refactoring of the validation manager removed the client ID from MessageStateChangedEvents, because these events are only used by tests and a lot of code in the validation manager and DB existed just to attach client IDs to these events. This has made the tests fail unpredictably.Milestone ETorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/665Potential NPE in AndroidExecutorImpl2018-06-12T11:32:18ZakwizgranPotential NPE in AndroidExecutorImplIf two threads call `AndroidExecutor#runOnBackgroundThread()` in quick succession, the first call will initialise the Handler for the background thread and wait for it to be initialised before using it. The second call will assume the Ha...If two threads call `AndroidExecutor#runOnBackgroundThread()` in quick succession, the first call will initialise the Handler for the background thread and wait for it to be initialised before using it. The second call will assume the Handler has been initialised and try to use it immediately, potentially throwing an NPE.Milestone Eakwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/664Don't throw an exception if a client has no delivery hook2018-06-12T11:32:18ZakwizgranDon't throw an exception if a client has no delivery hookThe validation manager throws an exception if it tries to deliver a message to a client and the client hasn't registered a delivery hook. The transport property manager doesn't register a delivery hook, so apparently it's possible to wri...The validation manager throws an exception if it tries to deliver a message to a client and the client hasn't registered a delivery hook. The transport property manager doesn't register a delivery hook, so apparently it's possible to write a client that doesn't need one, and the validation manager should just mark the message a delivered.Milestone Eakwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/663Implement UX for displaying message threads in private groups2018-06-12T11:32:18ZakwizgranImplement UX for displaying message threads in private groupsDepends on #650. Subtask of #127.
May depend on fixes for #443, #525, #526, #527, #552.Depends on #650. Subtask of #127.
May depend on fixes for #443, #525, #526, #527, #552.Milestone ETorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/662Implement UX for composing and replying to private group messages2018-06-12T11:32:18ZakwizgranImplement UX for composing and replying to private group messagesDepends on #649. Subtask of #127.Depends on #649. Subtask of #127.Milestone ETorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/661Implement UX for creating a private group2018-06-12T11:32:18ZakwizgranImplement UX for creating a private groupDepends on #648. Subtask of #127.
![](https://code.briarproject.org/akwizgran/briar/uploads/ab2eb815a24ade00564409afcf4e8f19/648_A_flow.jpg)
Depends on #648. Subtask of #127.
![](https://code.briarproject.org/akwizgran/briar/uploads/ab2eb815a24ade00564409afcf4e8f19/648_A_flow.jpg)
Milestone ETorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/660Implement UX for the list of private groups2018-06-12T11:32:18ZakwizgranImplement UX for the list of private groupsDepends on #656. Subtask of #127.
![list of private groups](https://code.briarproject.org/akwizgran/briar/uploads/5538a5b7a515228da908afe57367038c/656_pg_list.jpg)Depends on #656. Subtask of #127.
![list of private groups](https://code.briarproject.org/akwizgran/briar/uploads/5538a5b7a515228da908afe57367038c/656_pg_list.jpg)Milestone ETorsten GroteTorsten Grotehttps://code.briarproject.org/briar/briar/-/issues/659Protocol for private group invitations2018-06-12T11:32:18ZakwizgranProtocol for private group invitationsThis could be similar to the blog and forum invitation protocols, but there's an opportunity to make it simpler, as only the creator of the group can send invitations. When a member has been added or removed, the creator should send an a...This could be similar to the blog and forum invitation protocols, but there's an opportunity to make it simpler, as only the creator of the group can send invitations. When a member has been added or removed, the creator should send an announcement to the group (see #658).
Related to #456. Subtask of #127.Milestone Eakwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/658Protocol for private group messaging2018-06-12T11:32:18ZakwizgranProtocol for private group messagingThis can be similar to the forum protocol, plus messages for announcing when members join and leave. We may not need a message for announcing that the group has been dissolved, as that may be part of the invitation protocol.
Posts will ...This can be similar to the forum protocol, plus messages for announcing when members join and leave. We may not need a message for announcing that the group has been dissolved, as that may be part of the invitation protocol.
Posts will need to be compared with the current membership list to ensure they're signed by members, taking into account the possibility of posts and membership messages arriving out of order.
Subtask of #127.Milestone Eakwizgranakwizgranhttps://code.briarproject.org/briar/briar/-/issues/657UX design for viewing the membership of a private group2018-06-05T20:39:27ZakwizgranUX design for viewing the membership of a private groupThis capability was requested by users, and was part of the motivation for creating the private group feature, so it should be easily accessible.
Subtask of #127.This capability was requested by users, and was part of the motivation for creating the private group feature, so it should be easily accessible.
Subtask of #127.Milestone Ehttps://code.briarproject.org/briar/briar/-/issues/656UX design for the list of private groups2018-06-05T20:39:27ZakwizgranUX design for the list of private groupsEach list item should include the name of the group, the timestamp of the latest message and the number of unread messages. We could also include the identity of the creator and/or the number of members.
Subtask of #127.Each list item should include the name of the group, the timestamp of the latest message and the number of unread messages. We could also include the identity of the creator and/or the number of members.
Subtask of #127.Milestone Ehttps://code.briarproject.org/briar/briar/-/issues/655UX design for renaming a private group2018-06-05T20:39:27ZakwizgranUX design for renaming a private groupThis action is only available to the creator of the group.
Subtask of #127.This action is only available to the creator of the group.
Subtask of #127.Milestone Ehttps://code.briarproject.org/briar/briar/-/issues/654UX design for revealing contacts to a private group2018-06-05T20:39:27ZakwizgranUX design for revealing contacts to a private groupThis action is not available to the creator of the group. This ticket includes the UX for notifying the user that she has contacts in the group, both when she first joins and when any of her contacts subsequently join. The design may inc...This action is not available to the creator of the group. This ticket includes the UX for notifying the user that she has contacts in the group, both when she first joins and when any of her contacts subsequently join. The design may include an indication of how many contacts the user syncs the group with (connection strength), which may overlap with #645 and #646. The design may involve onboarding.
Subtask of #127.Milestone Ehttps://code.briarproject.org/briar/briar/-/issues/653UX design for inviting new members to a group2018-06-12T11:32:18ZakwizgranUX design for inviting new members to a groupThis action is only available to the creator of the group.
Subtask of #127.This action is only available to the creator of the group.
Subtask of #127.Milestone E