[evolution] Bug #618177 - Mobile Phone of imported contact not shown in preview



commit b41e9b362942d7503e9f61d503dd23ffb007ddf5
Author: Milan Crha <mcrha redhat com>
Date:   Mon May 10 12:10:45 2010 +0200

    Bug #618177 - Mobile Phone of imported contact not shown in preview

 addressbook/importers/evolution-vcard-importer.c |   31 ++++++++++++++--------
 1 files changed, 20 insertions(+), 11 deletions(-)
---
diff --git a/addressbook/importers/evolution-vcard-importer.c b/addressbook/importers/evolution-vcard-importer.c
index 1222566..080ef94 100644
--- a/addressbook/importers/evolution-vcard-importer.c
+++ b/addressbook/importers/evolution-vcard-importer.c
@@ -138,6 +138,7 @@ vcard_import_contact(VCardImporter *gci, EContact *contact)
 		EVCardAttribute *a = attr->data;
 		gboolean location_only = TRUE;
 		gboolean no_location = TRUE;
+		gboolean is_work_home = FALSE;
 		GList *params, *param;
 
 		if (g_ascii_strcasecmp (e_vcard_attribute_get_name (a),
@@ -155,6 +156,10 @@ vcard_import_contact(VCardImporter *gci, EContact *contact)
 
 			vs = e_vcard_attribute_param_get_values (p);
 			for (v = vs; v; v = v->next) {
+				is_work_home = is_work_home ||
+					!g_ascii_strcasecmp ((gchar *)v->data, "WORK") ||
+					!g_ascii_strcasecmp ((gchar *)v->data, "HOME");
+
 				if (!g_ascii_strcasecmp ((gchar *)v->data, "WORK") ||
 				    !g_ascii_strcasecmp ((gchar *)v->data, "HOME") ||
 				    !g_ascii_strcasecmp ((gchar *)v->data, "OTHER"))
@@ -164,17 +169,21 @@ vcard_import_contact(VCardImporter *gci, EContact *contact)
 			}
 		}
 
-		if (location_only) {
-			/* add VOICE */
-			e_vcard_attribute_add_param_with_value (a,
-								e_vcard_attribute_param_new (EVC_TYPE),
-								"VOICE");
-		}
-		if (no_location) {
-			/* add OTHER */
-			e_vcard_attribute_add_param_with_value (a,
-								e_vcard_attribute_param_new (EVC_TYPE),
-								"OTHER");
+		if (is_work_home) {
+			/* only WORK and HOME phone numbers require locations,
+			   the rest should be kept as is */
+			if (location_only) {
+				/* add VOICE */
+				e_vcard_attribute_add_param_with_value (a,
+									e_vcard_attribute_param_new (EVC_TYPE),
+									"VOICE");
+			}
+			if (no_location) {
+				/* add OTHER */
+				e_vcard_attribute_add_param_with_value (a,
+									e_vcard_attribute_param_new (EVC_TYPE),
+									"OTHER");
+			}
 		}
 	}
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]