contacts: load new contacts when they're added

Connect to the EBookClientView to be able to react to
changes in the addressbook.

This patch reacts to contacts being added. Later patches
will react to contacts being removed and modified.

Refs #73494

Change-Id: I939ee48103caa07c87e3be957ea42c1ba95c9cc7
diff --git a/src/backends/edscontactbackend.h b/src/backends/edscontactbackend.h
index 0bc9734..026676f 100644
--- a/src/backends/edscontactbackend.h
+++ b/src/backends/edscontactbackend.h
@@ -85,7 +85,8 @@
     virtual QByteArray id       () const override;
     virtual FlagPack<SupportedFeatures>  supportedFeatures() const override;
 
-    void addContacts(GSList *contacts);
+    void addClientView(std::unique_ptr<EBookClientView, void(*)(EBookClientView *)> client_view);
+    void addContacts(std::unique_ptr<GSList, void(*)(GSList *)> contacts);
     void parseContact(EContact *contact);
     void lastContactAdded();
 
@@ -93,11 +94,9 @@
    CollectionMediator<Person>*  mediator_;
    std::unique_ptr<EClient, decltype(g_object_unref)&> client_;
    std::unique_ptr<GCancellable, decltype(g_object_unref)&> cancellable_;
-
-   static void free_contact_list(GSList *list) { g_slist_free_full(list, g_object_unref); };
-   std::unique_ptr<GSList, decltype(free_contact_list)&> contacts_;
+   std::unique_ptr<EBookClientView, void(*)(EBookClientView *)> client_view_;
 
    guint add_contacts_source_id {0};
 };
 
-#endif /* EDSCONTACTBACKEND_H */
\ No newline at end of file
+#endif /* EDSCONTACTBACKEND_H */