TpContact already use it do get its list of groups, and we have _async() wrapper for all actions. What's missing is fetching Connection properties and the whole set of groups on the connection.
Done in that branch: http://cgit.collabora.com/git/user/xclaesse/telepathy-glib.git/log/?h=contact-groups
Created attachment 49875 [details] [review] Add TP_CONNECTION_FEATURE_CONTACT_GROUPS to prepare the list of groups on the connection
Review of attachment 49875 [details] [review]: ::: telepathy-glib/connection-contact-list.c @@ +1011,3 @@ + * + * When this feature is prepared, the contact groups properties of the + * Connection has been retrieved. I'd list all the properties needing this feature to be prepared. You should also mention that the 3 sigs won't be fired until this has been prepared. ::: telepathy-glib/connection.c @@ +2024,3 @@ + * #TpContact::contact-groups-changed signals that add some members. When this + * signal is emitted, #TpConnection:contact-groups property is already + param_spec = g_param_spec_uint ("group-storage", You should document that those signals need the feature to be prepared.
(In reply to comment #3) > Review of attachment 49875 [details] [review]: > > ::: telepathy-glib/connection-contact-list.c > @@ +1011,3 @@ > + * > + * When this feature is prepared, the contact groups properties of the > + * Connection has been retrieved. > > I'd list all the properties needing this feature to be prepared. You should > also mention that the 3 sigs won't be fired until this has been prepared. Other feature documentation does not do that, afaik. IMO it is too easy to get it outdated when adding new properties. Each property says which feature needs to be prepared already. > ::: telepathy-glib/connection.c > @@ +2024,3 @@ > + * #TpContact::contact-groups-changed signals that add some members. When > this > + * signal is emitted, #TpConnection:contact-groups property is already > + param_spec = g_param_spec_uint ("group-storage", > > You should document that those signals need the feature to be prepared. done
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.