What was supposed to be a minimal change turned into a rather large MR. I did my best to keep things in separate commits, so I can still split this into smaller MRs if desired.
While making use of the new group metadata in the contact and forum list, I noticed some other things in need of improvement to get rid of needing to load all messages:
SharingManager
so its events provide message headers that can be used to update list itemsGroupId
to conversation items, so the metadata of the respective group can be updated as well when marking the items readConversationManager
so the GroupCount for the various clients can be queried in one go without needing to know all their groups per contactSome casual measurements with just a few contacts and messages showed a reduction of the contact list load time by one third.