summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRafal Michalski <michalski.raf@gmail.com>2010-10-25 11:04:58 +0200
committerJohan Hedberg <johan.hedberg@nokia.com>2010-10-25 12:24:11 -0400
commitc7f3f7ec60da8c5eeb9fe8571e2bd2674f1c882c (patch)
treeff60f049fe548c2d867c281bb62a4c825ea7b92e
parent9890a16a1bdf99af1a927a19eb2b3721227077ea (diff)
downloadobexd-c7f3f7ec60da8c5eeb9fe8571e2bd2674f1c882c.tar.gz
Provide extra query for vCard single call
This patch makes that additional circumstance is recognized - after making a call with number that is out of phonebook it can be downloaded as a single vCard containing number with OTHER type.
-rw-r--r--plugins/phonebook-tracker.c19
1 files changed, 17 insertions, 2 deletions
diff --git a/plugins/phonebook-tracker.c b/plugins/phonebook-tracker.c
index 1c579d1..a6e21f8 100644
--- a/plugins/phonebook-tracker.c
+++ b/plugins/phonebook-tracker.c
@@ -55,6 +55,7 @@
#define COL_SENT 36
#define COL_ANSWERED 37
#define ADDR_FIELD_AMOUNT 7
+#define CONTACT_ID_PREFIX "contact:"
#define CONTACTS_QUERY_ALL \
"SELECT ?v nco:fullname(?c) " \
@@ -569,6 +570,16 @@
"} " \
"}"
+#define CONTACTS_OTHER_QUERY_FROM_URI \
+ "SELECT \"\" \"\" \"\" \"\" \"\" \"\" \"\" \"\" \"\" \"\" \"\" "\
+ "\"\" \"\" \"\" \"\" \"\" \"\" \"\" \"\" \"\" \"\" \"\" \"\" " \
+ "\"\" \"\" \"\" \"\" \"\" \"\" \"\" \"\" \"\" \"\" \"\" " \
+ "nco:phoneNumber(?t) \"NOTACALL\" \"false\" \"false\" <%s> " \
+ "WHERE { " \
+ "<%s> a nco:Contact . " \
+ "<%s> nco:hasPhoneNumber ?t . " \
+ "} "
+
typedef void (*reply_list_foreach_t) (char **reply, int num_fields,
void *user_data);
@@ -1305,9 +1316,13 @@ int phonebook_get_entry(const char *folder, const char *id,
data->cb = cb;
data->vcardentry = TRUE;
- query = g_strdup_printf(CONTACTS_QUERY_FROM_URI, id, id, id, id, id,
- id, id, id, id, id, id, id,
+ if (strncmp(id, CONTACT_ID_PREFIX, strlen(CONTACT_ID_PREFIX)) == 0)
+ query = g_strdup_printf(CONTACTS_QUERY_FROM_URI, id, id, id, id,
+ id, id, id, id, id, id, id, id,
id, id, id, id, id);
+ else
+ query = g_strdup_printf(CONTACTS_OTHER_QUERY_FROM_URI,
+ id, id, id);
ret = query_tracker(query, PULL_QUERY_COL_AMOUNT, pull_contacts, data);