Transport properties client. #229
This branch moves support for exchanging transport properties from the sync layer to the client layer.
Local properties are stored in an unshared group. When a contact is added, the latest local properties are copied into a group shared with the contact. Whenever the local properties are updated, they're copied into the groups shared with all contacts.
The transport update messages include a unique device ID that prevents collisions between local and remote messages, and will be used in future for multi-device support.
See merge request !80
Identicons
Closes#120. Part of #82.
I pulled in the identicon code because there is no published library, and also because when I used it for Bote I ended up modifying the code somewhat for my purposes; I expect the same to happen here.
I am not sure what information should be used to seed the identicon. I originally thought of using the public key, but that seemed to change the identicon every single page load (obviously the representation wasn't consistent). Then I tried using the `ContactId`, which was fine until I got to adding an identicon to `AuthorView`: activities that use it are only passed (via Intent) a name, not anything else. Hence `AuthorView` identicons are currently inconsistent with the contact list and conversations.
See merge request !51
This commit renames identicons to avatars in field names, and uses an ImageView
derivative to show the identicons, which should make implementing #214 easier.
Navigation drawer (squashed and rebased).
This is @ernir's work on #30 and #181, rebased onto master with recent changes to ConversationActivity and ForumListActivity ported to the respective fragments.
See merge request !75
Update contact list when contacts are deleted. #227
The logic in ConversationActivity for adding or updating items didn't allow for items being removed. We *could* come up with logic for doing that - throw all the items from the adapter into a set, remove any items corresponding to current contacts from the set, then batch update the adapter to remove any items remaining in the set - but I think it would be overly complex. It's simpler to just clear the adapter and add the current contacts.
Also tidied up some adapter code while looking for the bug.
See merge request !70
ENH: Replaces transport config with namespaced settings
This MR contains the following:
* Adds a new guice module: SettingsManager, that abstracts the settings interface from the underlying database
* Uses SettingsManager to replace the db.getConfig/mergeConfig calls in the Settings activity
* Replaces the getSettings and mergeSettings calls in the database modules to include a namespace parameter. Updates the corresponding queries in the Jdbc module
* Removes the TransportConfig module, as it is not used anymore
* Updates the DuplexPlugin interface, to reflect this change in schemas and calls
* Updates the calls in the corresponding plugins, for both briar-android and briar-desktop
* Updates the hardcoded plugins in the tests to reflect these changes and updates the unit tests.
See merge request !65
Fix notifications for current conversation
* Remove notification about private messages when viewing the conversation
* Do not show a notification for a conversation the user is viewing
Closes#195
See merge request !61
The method `runOnDbThread()` depends on an executor
that's created by roboguice at startup.
It requires to be signed in, so use a different thread instead.
Support for Destructive Panic Actions
This MR is based on and requires !52.
More details are available in the commit message.
All known issues have now been fixed by new upstream releases.
See merge request !54