From: Jose Dapena Paz Date: Tue, 29 Jan 2008 13:39:42 +0000 (+0000) Subject: * src/maemo/modest-address-book.c: X-Git-Tag: git_migration_finished~1749 X-Git-Url: http://git.maemo.org/git/?p=modest;a=commitdiff_plain;h=e3480a667fa614794b145a9b3d5124e64e26198f;ds=sidebyside * src/maemo/modest-address-book.c: * (add_to_address_book): now it supports receiving a full address (form User ). If it gets it, it searches in contacts for only email@address. If it's not found, then it stores a contact with full name User and email address email@address. Fixes NB#79467. pmo-trunk-r4102 --- diff --git a/src/maemo/modest-address-book.c b/src/maemo/modest-address-book.c index f97f647..9b3541f 100644 --- a/src/maemo/modest-address-book.c +++ b/src/maemo/modest-address-book.c @@ -586,6 +586,7 @@ add_to_address_book (const gchar* address) EBookQuery *query; GList *contacts = NULL; GError *err = NULL; + gchar *email; g_return_val_if_fail (address, FALSE); @@ -593,8 +594,10 @@ add_to_address_book (const gchar* address) open_addressbook (); g_return_val_if_fail (book, FALSE); + + email = modest_text_utils_get_email_address (address); - query = e_book_query_field_test (E_CONTACT_EMAIL, E_BOOK_QUERY_IS, address); + query = e_book_query_field_test (E_CONTACT_EMAIL, E_BOOK_QUERY_IS, email); if (!e_book_get_contacts (book, query, &contacts, &err)) { g_printerr ("modest: failed to get contacts: %s", err ? err->message : ""); @@ -616,12 +619,22 @@ add_to_address_book (const gchar* address) } else { /* it's not yet in the addressbook, add it now! */ EContact *new_contact = e_contact_new (); - e_contact_set (new_contact, E_CONTACT_EMAIL_1, (const gpointer)address); + gchar *display_address; + display_address = g_strdup (address); + if (display_address) { + modest_text_utils_get_display_address (display_address); + if ((display_address[0] != '\0') && (strlen (display_address) != strlen (address))) + e_contact_set (new_contact, E_CONTACT_FULL_NAME, (const gpointer)display_address); + } + e_contact_set (new_contact, E_CONTACT_EMAIL_1, (const gpointer)email); + g_free (display_address); commit_contact (new_contact, TRUE); g_debug ("%s added to address book", address); g_object_unref (new_contact); } + g_free (email); + return TRUE; }