mirror of
https://github.com/moparisthebest/davmail
synced 2024-12-13 19:22:22 -05:00
Caldav: Fix missing TZID in DTSTART from iPhone
git-svn-id: http://svn.code.sf.net/p/davmail/code/trunk@1356 3d1905a2-6b24-0410-a738-b14d5a86fcbd
This commit is contained in:
parent
9353e2bc63
commit
a4cd443485
@ -179,6 +179,9 @@ public class VCalendar extends VObject {
|
|||||||
// convert date values to outlook compatible values
|
// convert date values to outlook compatible values
|
||||||
setServerAllday(vObject.getProperty("DTSTART"));
|
setServerAllday(vObject.getProperty("DTSTART"));
|
||||||
setServerAllday(vObject.getProperty("DTEND"));
|
setServerAllday(vObject.getProperty("DTEND"));
|
||||||
|
} else {
|
||||||
|
fixTzid(vObject.getProperty("DTSTART"));
|
||||||
|
fixTzid(vObject.getProperty("DTEND"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -190,6 +193,12 @@ public class VCalendar extends VObject {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void fixTzid(VProperty property) {
|
||||||
|
if (property != null && !property.hasParam("TZID")) {
|
||||||
|
property.addParam("TZID", vTimezone.getPropertyValue("TZID"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
protected void splitExDate(VObject vObject) {
|
protected void splitExDate(VObject vObject) {
|
||||||
List<VProperty> exDateProperties = vObject.getProperties("EXDATE");
|
List<VProperty> exDateProperties = vObject.getProperties("EXDATE");
|
||||||
if (exDateProperties != null) {
|
if (exDateProperties != null) {
|
||||||
|
@ -149,8 +149,6 @@ public class TestCaldav extends AbstractDavMailTestCase {
|
|||||||
MultiStatus multiStatus = method.getResponseBodyAsMultiStatus();
|
MultiStatus multiStatus = method.getResponseBodyAsMultiStatus();
|
||||||
MultiStatusResponse[] responses = multiStatus.getResponses();
|
MultiStatusResponse[] responses = multiStatus.getResponses();
|
||||||
|
|
||||||
Set<String> ITEM_PROPERTIES = new HashSet<String>();
|
|
||||||
ITEM_PROPERTIES.add("instancetype");
|
|
||||||
List<ExchangeSession.Event> events = session.searchEvents("/users/" + session.getEmail() + "/calendar/",
|
List<ExchangeSession.Event> events = session.searchEvents("/users/" + session.getEmail() + "/calendar/",
|
||||||
session.and(
|
session.and(
|
||||||
session.gt("dtstart", session.formatSearchDate(start)),
|
session.gt("dtstart", session.formatSearchDate(start)),
|
||||||
|
@ -276,4 +276,16 @@ public class TestExchangeSessionEvent extends TestCase {
|
|||||||
System.out.println("'"+BundleMessage.format(status)+"'");
|
System.out.println("'"+BundleMessage.format(status)+"'");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void testMissingTzid() throws IOException {
|
||||||
|
String itemBody = "BEGIN:VCALENDAR\n" +
|
||||||
|
"BEGIN:VEVENT\n" +
|
||||||
|
"DTSTART:20100101T000000\n" +
|
||||||
|
"DTEND:20100102T000000\n" +
|
||||||
|
"END:VEVENT\n" +
|
||||||
|
"END:VCALENDAR";
|
||||||
|
String toServer = fixICS(itemBody, false);
|
||||||
|
System.out.println(toServer);
|
||||||
|
assertTrue(toServer.contains("DTSTART;TZID="));
|
||||||
|
assertTrue(toServer.contains("DTEND;TZID="));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user