From 1f2b05506c3a8aa7b1ab08a030202b9c0f467272 Mon Sep 17 00:00:00 2001 From: mguessan Date: Mon, 16 Apr 2012 22:25:07 +0000 Subject: [PATCH] Carddav: Fix 3511472, implement fileas over EWS git-svn-id: http://svn.code.sf.net/p/davmail/code/trunk@1944 3d1905a2-6b24-0410-a738-b14d5a86fcbd --- src/java/davmail/exchange/ews/EwsExchangeSession.java | 6 +++++- src/java/davmail/exchange/ews/Field.java | 3 ++- src/java/davmail/exchange/ews/UnindexedFieldURI.java | 2 ++ 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/java/davmail/exchange/ews/EwsExchangeSession.java b/src/java/davmail/exchange/ews/EwsExchangeSession.java index cd8a17c5..07f07d47 100644 --- a/src/java/davmail/exchange/ews/EwsExchangeSession.java +++ b/src/java/davmail/exchange/ews/EwsExchangeSession.java @@ -1118,10 +1118,14 @@ public class EwsExchangeSession extends ExchangeSession { for (Map.Entry entry : entrySet()) { if ("photo".equals(entry.getKey())) { updates.add(Field.createFieldUpdate("haspicture", "true")); - } else if (!entry.getKey().startsWith("email") && !entry.getKey().startsWith("smtpemail")) { + } else if (!entry.getKey().startsWith("email") && !entry.getKey().startsWith("smtpemail") + && !entry.getKey().equals("fileas")) { updates.add(Field.createFieldUpdate(entry.getKey(), entry.getValue())); } } + if (get("fileas") != null) { + updates.add(Field.createFieldUpdate("fileas", get("fileas"))); + } // handle email addresses IndexedFieldUpdate emailFieldUpdate = null; for (Map.Entry entry : entrySet()) { diff --git a/src/java/davmail/exchange/ews/Field.java b/src/java/davmail/exchange/ews/Field.java index 1893e86b..b4f43c8f 100644 --- a/src/java/davmail/exchange/ews/Field.java +++ b/src/java/davmail/exchange/ews/Field.java @@ -93,7 +93,8 @@ public final class Field { FIELD_MAP.put("subject", new ExtendedFieldURI(0x0037, ExtendedFieldURI.PropertyType.String)); FIELD_MAP.put("middlename", new ExtendedFieldURI(0x3A44, ExtendedFieldURI.PropertyType.String)); - FIELD_MAP.put("fileas", new ExtendedFieldURI(ExtendedFieldURI.DistinguishedPropertySetType.PublicStrings, "urn:schemas:contacts:fileas")); + //FIELD_MAP.put("fileas", new ExtendedFieldURI(ExtendedFieldURI.DistinguishedPropertySetType.PublicStrings, "urn:schemas:contacts:fileas")); + FIELD_MAP.put("fileas", new UnindexedFieldURI("contacts:FileAs")); FIELD_MAP.put("homepostaladdress", new ExtendedFieldURI(ExtendedFieldURI.DistinguishedPropertySetType.Address, 0x801A, ExtendedFieldURI.PropertyType.String)); FIELD_MAP.put("otherpostaladdress", new ExtendedFieldURI(ExtendedFieldURI.DistinguishedPropertySetType.Address, 0x801C, ExtendedFieldURI.PropertyType.String)); diff --git a/src/java/davmail/exchange/ews/UnindexedFieldURI.java b/src/java/davmail/exchange/ews/UnindexedFieldURI.java index 94aeec88..0a2e852f 100644 --- a/src/java/davmail/exchange/ews/UnindexedFieldURI.java +++ b/src/java/davmail/exchange/ews/UnindexedFieldURI.java @@ -53,6 +53,8 @@ public class UnindexedFieldURI implements FieldURI { itemType = "CalendarItem"; } else if (fieldURI.startsWith("task") && itemType != null) { itemType = "Task"; + } else if (fieldURI.startsWith("contacts") && itemType != null) { + itemType = "Contact"; } if (itemType != null) { appendTo(buffer);