From ca8234b2461a955f639963dc6b98597d0f74520d Mon Sep 17 00:00:00 2001 From: mguessan Date: Fri, 16 Sep 2011 08:53:41 +0000 Subject: [PATCH] Caldav: allow direct access to task folder git-svn-id: http://svn.code.sf.net/p/davmail/code/trunk@1792 3d1905a2-6b24-0410-a738-b14d5a86fcbd --- src/java/davmail/caldav/CaldavConnection.java | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/java/davmail/caldav/CaldavConnection.java b/src/java/davmail/caldav/CaldavConnection.java index 372e5660..b1af9485 100644 --- a/src/java/davmail/caldav/CaldavConnection.java +++ b/src/java/davmail/caldav/CaldavConnection.java @@ -297,7 +297,7 @@ public class CaldavConnection extends AbstractConnection { ExchangeSession.Folder folder = session.getFolder(folderPath); if (folder.isContact()) { sendHttpResponse(HttpStatus.SC_OK, buildEtagHeader(folder.etag), "text/vcard", (byte[]) null, true); - } else if (folder.isCalendar()) { + } else if (folder.isCalendar() || folder.isTask()) { List events = session.getAllEvents(folderPath); ChunkedResponse response = new ChunkedResponse(HttpStatus.SC_OK, "text/calendar;charset=UTF-8"); response.append("BEGIN:VCALENDAR\r\n"); @@ -429,7 +429,7 @@ public class CaldavConnection extends AbstractConnection { if (folder.isContact()) { response.appendProperty("D:resourcetype", "" + ""); - } else if (folder.isCalendar()) { + } else if (folder.isCalendar() || folder.isTask()) { response.appendProperty("D:resourcetype", "" + ""); } else { response.appendProperty("D:resourcetype", ""); @@ -448,6 +448,8 @@ public class CaldavConnection extends AbstractConnection { response.appendProperty("D:getcontenttype", "text/x-vcard"); } else if (folder.isCalendar()) { response.appendProperty("D:getcontenttype", "text/calendar; component=vevent"); + } else if (folder.isTask()) { + response.appendProperty("D:getcontenttype", "text/calendar; component=vtodo"); } } if (request.hasProperty("getetag")) { @@ -472,8 +474,12 @@ public class CaldavConnection extends AbstractConnection { if (request.hasProperty("calendar-description")) { response.appendProperty("C:calendar-description", ""); } - if (request.hasProperty("supported-calendar-component-set") && folder.isCalendar()) { - response.appendProperty("C:supported-calendar-component-set", ""); + if (request.hasProperty("supported-calendar-component-set")) { + if (folder.isCalendar()) { + response.appendProperty("C:supported-calendar-component-set", ""); + } else if (folder.isTask()) { + response.appendProperty("C:supported-calendar-component-set", ""); + } } if (request.hasProperty("current-user-privilege-set")) { @@ -630,7 +636,7 @@ public class CaldavConnection extends AbstractConnection { if (request.getDepth() == 1) { if (folder.isContact()) { contacts = session.getAllContacts(folderPath); - } else if (folder.isCalendar()) { + } else if (folder.isCalendar() || folder.isTask()) { events = session.getAllEvents(folderPath); if (!folderPath.startsWith("/public")) { folderList = session.getSubCalendarFolders(folderPath, false);