Commit Graph

41 Commits

Author SHA1 Message Date
akwizgran aa210fc555 Factor MessageTracker out of BdfIncomingMessageHook. 2016-11-11 16:59:10 +00:00
akwizgran edbf5ff5b4 Preliminaries for private group invitation protocol. 2016-11-08 15:45:04 +00:00
Torsten Grote 719a53dc94 Address review comments 2016-11-04 12:58:12 -02:00
Torsten Grote 3f9a254a0b Allow messages to be deleted in delivery hook 2016-11-04 12:52:33 -02:00
Torsten Grote 7125248677 Remove new member announcement and add signature to invitation 2016-11-03 17:24:31 -02:00
akwizgran f759a7506f Merge branch '600-remove-content-type-from-private-messages' into 'master'
Remove content-type and parentId from private messages

and turn them into a regular string.

Closes #600

See merge request !372
2016-11-01 11:05:30 +00:00
Torsten Grote 78740a6942 Remove content-type and parentId from private messages
and turn them into a regular string.
2016-11-01 08:39:15 -02:00
Torsten Grote 9e553ef9c8 Update blog backend to match current usage 2016-11-01 08:34:29 -02:00
Torsten Grote c0aa255bb6 Address review comments 2016-10-31 10:16:48 -02:00
Torsten Grote e06726b2f9 Implement New Member and Join Announcements in GroupMessageFactory 2016-10-31 10:10:14 -02:00
Torsten Grote 8dc529cc3f Move validator's signature verification into ClientHelper 2016-10-31 10:08:26 -02:00
akwizgran 1e36f21cc8 Merge branch '707-implement-ux-for-showing-and-answering-private-group-invitations' into 'master'
Implement UX for showing and answering private group invitations

As usual, this MR contains several logically separate commits that could be split out into smaller MRs if desired. It consists of two main parts:
* Showing open invitations in the list of private groups with a snackbar
* Showing invitations and responses in the private conversation

For both parts, the existing code was refactored to allow for a smooth implementation and to leave maintainable code behind.

![device-2016-10-18-101549](/uploads/66582dbe97736fdcd2498e87e1c7dfd1/device-2016-10-18-101549.png)
![device-2016-10-18-101612](/uploads/8c25eff8171f330796a55cb27cdb2552/device-2016-10-18-101612.png)
![device-2016-10-18-101534](/uploads/ebba4c0a2c0f727dcadac8c2ec57b48f/device-2016-10-18-101534.png)

Closes #707

See merge request !357
2016-10-31 12:02:22 +00:00
akwizgran ca8d3babaa Added ProtocolStateException for client protocols. 2016-10-27 11:57:36 +01:00
Torsten Grote 42175dca7a Show group invitations and responses in private conversation 2016-10-27 08:14:33 -02:00
Torsten Grote 8f882dc910 Addressing second round of review issues 2016-10-19 10:43:02 -02:00
Torsten Grote 0523c4e718 Address issues found in code review 2016-10-19 10:43:01 -02:00
Torsten Grote b09e30a95f Private Group List 2016-10-10 13:48:34 -03:00
Torsten Grote 7f2db71160 Address review comments 2016-10-10 10:46:30 -03:00
Torsten Grote 457c30f3f2 Add GroupId to conversation items 2016-10-10 08:00:15 -03:00
Torsten Grote a727a0817e Store message count, unread count and timestamp of latest message
in group metadata to be able to speed up group listings.

Closes #584, #586, #585
2016-10-05 12:34:37 -03:00
Torsten Grote 6ece398a21 Create PrivateGroupManager Facade and stub implementation 2016-09-30 12:05:35 -03:00
akwizgran fd6719301a Merge branch '556-thread-safety-blocking-issues' into 'master'
Forum controller thread safety and tree safety

This branch solves the concurrent forum issues by code restructure and refactoring.

Closes #556 
Closes #552 

See merge request !262
2016-09-29 09:30:51 +00:00
Ernir Erlingsson 92f2e7b0fc merge with master and fixes after comments 2016-09-29 01:30:13 +02:00
Torsten Grote d058172429 When a message is shared, share its transitive dependencies
Like other recursive operations on the dependency graph, this is
not done in a single transaction to prevent an attacker from creating
arbitrary large transactions.

So at startup, the `ValidationManager` finds and resumes any
unfinished operations, by looking for shared messages with unshared
dependencies.
2016-09-28 13:17:11 -03:00
akwizgran 8a3e5bfb50 Refactor ValidationManager and fix some bugs. #619 2016-09-09 18:03:14 +01:00
Torsten Grote 3dd3a18694 Add support for comments and reblogging to Blog Client
Comments and reblogs need to depend on the post they refer to.
Since message dependencies are limited to one group,
the post and also the comments need to be wrapped
when commented on or reblogged to another blog.

For this reason, in addition to comments, two new wrapping message types
are introduced. They retain all data of the original messages and allow
for reconstruction and signature verification.

This commit breaks backwards compatibility with old blog posts.
It removes the content type, title and parent ID from the post
message structure.
2016-08-29 13:37:20 -03:00
Torsten Grote 743fc7dd1f Do not require an entire Message for the MessageSharedEvent 2016-08-29 13:36:09 -03:00
Torsten Grote 71196e3494 Let clients decide whether to share messages or not 2016-08-11 12:19:10 -03:00
Torsten Grote e1bdede4f5 Introduce client layer events for forums
The forum UI depended on sync layer events such as MessageStateChangedEvent.
Now, the forum client broadcasts its own high-level event (`ForumPostReceivedEvent`)
with the information the UI needs (`ForumPostHeader`).

Closes #310
2016-07-29 15:16:52 -03:00
Torsten Grote da68ef78f1 Blog Client with Factory and Validator
This implements a simple initial blog client that covers the basic blog
actions, but no deletion/removal of blogs, yet.

Classes for Blogs and Blog Post Headers have been introduced along with
the associated factories.

A `BlogPostValidator` has been added that validates incoming blog posts.

Closes #402
Closes #404
2016-06-15 11:16:28 -03:00
Ernir Erlingsson d2ba7c9b7f generic sorted message tree 2016-05-25 22:12:20 +02:00
Torsten Grote 3f2b85ac0d Introduce a MessageContext class for more flexibility
This change will allow to pass message dependencies from the client
validators to the ValidationManager.
2016-05-20 02:46:37 +00:00
akwizgran f2ab0eff53 Simple metadata queries. #222
Added support for retrieving metadata that matches all key/value pairs in a query.
2016-05-12 17:40:11 +01:00
Torsten Grote 9f9a216305 Prepare for new Forum Sharing Client
Methods for creating, adding and removing forums have been moved to the
`ForumManager`. In order to still handle removing forums properly, a
`RemoveForumHook` has been introduced.

Methods for sharing forums with all current and future contacts have
been removed along with the localGroup where this information was saved.

The `ShareForumActivity` now has the proper label.

The `SessionId` and the `ProtocolEngine` have been moved to the
`clients` package.

This addresses part of #322 and part of what has been discussed in #320.
2016-05-03 11:48:45 -03:00
akwizgran 945b5eb1ac Create local state for clients at startup. #279 2016-04-01 17:15:35 +01:00
akwizgran efa06527c9 Moved validation interfaces into respective managers. 2016-03-08 16:22:09 +00:00
akwizgran a4d6de0340 Added message queue manager. 2016-03-08 16:07:29 +00:00
akwizgran 4ddc34ee01 Added new methods to ClientHelper. 2016-03-04 21:07:33 +00:00
akwizgran 34d34a754a Renamed metadata methods. 2016-02-29 14:29:53 +00:00
akwizgran 640f5484e0 Moved PrivateGroupFactory to clients package. 2016-02-29 14:25:29 +00:00
akwizgran 2e7df53dba Added helper class so clients can use less boilerplate. 2016-02-29 14:23:50 +00:00