1
0
mirror of https://github.com/moparisthebest/davmail synced 2024-12-14 03:32:22 -05:00

Caldav: additional patch for Outlook created recurring events

git-svn-id: http://svn.code.sf.net/p/davmail/code/trunk@663 3d1905a2-6b24-0410-a738-b14d5a86fcbd
This commit is contained in:
mguessan 2009-08-11 09:14:16 +00:00
parent ed2e28afee
commit 5cb2c3e9b7
2 changed files with 8 additions and 5 deletions

View File

@ -1573,7 +1573,9 @@ public class ExchangeSession {
hasAttendee = true;
} else if ("TRANSP".equals(key)) {
transp = value;
} else if (line.startsWith("TZID:(GMT")) {
} else if (line.startsWith("TZID:(GMT") ||
// additional test for Outlook created recurring events
line.startsWith("TZID:GMT ")) {
try {
validTimezoneId = ResourceBundle.getBundle("timezones").getString(value);
} catch (MissingResourceException mre) {
@ -1602,7 +1604,7 @@ public class ExchangeSession {
continue;
}
// fix invalid exchange timezoneid
if (validTimezoneId != null && line.indexOf(";TZID=\"") >= 0) {
if (validTimezoneId != null && line.indexOf(";TZID=") >= 0) {
line = fixTimezoneId(line, validTimezoneId);
}
if (!fromServer && currentAllDayState.isAllDay && "X-MICROSOFT-CDO-ALLDAYEVENT:FALSE".equals(line)) {
@ -1674,10 +1676,10 @@ public class ExchangeSession {
}
protected String fixTimezoneId(String line, String validTimezoneId) {
int startIndex = line.indexOf("TZID=\"");
int endIndex = line.indexOf('"', startIndex + 6);
int startIndex = line.indexOf("TZID=");
int endIndex = line.indexOf(':', startIndex + 5);
if (startIndex >= 0 && endIndex >= 0) {
return line.substring(0, startIndex + 5) + validTimezoneId + line.substring(endIndex + 1);
return line.substring(0, startIndex + 5) + validTimezoneId + line.substring(endIndex);
} else {
return line;
}

View File

@ -72,3 +72,4 @@
(GMT-10.00)\ Hawaii=Pacific/Honolulu
(GMT-11.00)\ Midway Island/Samoa=Pacific/Pago_Pago
(GMT-12.00)\ Eniwetok/Kwajalein/Dateline Time=Pacific/Kwajalein
GMT\ +0100\ (Standard)\ /\ GMT\ +0200\ (Daylight)=Europe/Paris