Add new API to load contacts and use it
This commit does a lot:
New classes
- chatty-contact-provider: A folks provider that loads all contacts from evolution
- chatty-contact: Each contact loaded via folks
Manager
-
Load buddies on startup
-
Create a list of buddy list by joining the list of each account buddies (using GtkFlattenListModel)
-
Add protocol property to get active accounts (ie, enabled and connected accounts)
-
Add various list models from GTK4 to
contrib
dir
New Chat Dialog
- Populate the contact list from manager
- use GtkSortListModel to sort the contact list
- filter them using GtkFilterListModel
- Load chunks of 50 items with GtkSliceListModel
- when the user scrolls to the end of the list, next 50 is loaded
- Only show contact in the list (not group chats)
This doesn't replace every API of chatty-folks.c, so as to keep less complicated. It will be done in later MRs.