Skip to content

Separate the sync layer from its clients. #112

akwizgran requested to merge 112-message-validators into master

This patch contains most of the work for #112 (closed). MessagingManager and ForumManager have been converted to BSP clients, and the sync layer's message and group formats no longer contain any client-specific data.

Each client has a MessageValidator that's called by the ValidationManager to validate messages belonging to the client. A new MessageValidatedEvent informs listeners when a message has been validated. This required some changes to the UI, especially the notification manager.

While working on the notification manager I realised it was calling Android API methods from background threads, which may be unsafe, and the notification logic was split across BriarService and AndroidNotificationManagerImpl. So I refactored those classes, along with AndroidExecutorImpl, which was using an unnecessary background thread.

Still to do:

  • Synchronise blocks, not messages
  • Add message type field to message header as per BSP spec
  • Convert TransportPropertyManager into a BSP client
  • Convert SubscriptionUpdates/Acks into forum client messages

Merge request reports