diff --git a/ActiveSync/iCalEvent+ActiveSync.m b/ActiveSync/iCalEvent+ActiveSync.m index afb6d9fe8..7a361f814 100644 --- a/ActiveSync/iCalEvent+ActiveSync.m +++ b/ActiveSync/iCalEvent+ActiveSync.m @@ -99,6 +99,7 @@ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVE if ((o = [theValues objectForKey: @"UID"])) [self setUid: o]; + // FIXME: merge with iCalToDo if ((o = [theValues objectForKey: @"Subject"])) [self setSummary: o]; @@ -152,6 +153,7 @@ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVE [(iCalCalendar *) parent addTimeZone: tz]; } + // FIXME: merge with iCalToDo if ((o = [[theValues objectForKey: @"Body"] objectForKey: @"Data"])) [self setComment: o]; diff --git a/ActiveSync/iCalToDo+ActiveSync.m b/ActiveSync/iCalToDo+ActiveSync.m index 0e0f97c9a..a329d533d 100644 --- a/ActiveSync/iCalToDo+ActiveSync.m +++ b/ActiveSync/iCalToDo+ActiveSync.m @@ -19,10 +19,18 @@ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVE */ #import "iCalToDo+ActiveSync.h" +#import +#import #import #import +#import + +#import +#import +#import #include "NSDate+ActiveSync.h" +#include "NSString+ActiveSync.h" @implementation iCalToDo (ActiveSync) @@ -76,10 +84,72 @@ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVE - (void) takeActiveSyncValues: (NSDictionary *) theValues { + NSTimeZone *userTimeZone; + iCalTimeZone *tz; id o; + NSInteger tzOffset; + + userTimeZone = [theValues objectForKey: @"SOGoUserTimeZone"]; + tz = [iCalTimeZone timeZoneForName: [userTimeZone name]]; + [(iCalCalendar *) parent addTimeZone: tz]; + + // FIXME: merge with iCalEvent if ((o = [theValues objectForKey: @"Subject"])) [self setSummary: o]; + + // FIXME: merge with iCalEvent + if ((o = [[theValues objectForKey: @"Body"] objectForKey: @"Data"])) + [self setComment: o]; + + + if ([[theValues objectForKey: @"Complete"] intValue] && + ((o = [theValues objectForKey: @"DateCompleted"])) ) + { + iCalDateTime *completed; + + o = [o calendarDate]; + completed = (iCalDateTime *) [self uniqueChildWithTag: @"completed"]; + //tzOffset = [[o timeZone] secondsFromGMTForDate: o]; + //o = [o dateByAddingYears: 0 months: 0 days: 0 + // hours: 0 minutes: 0 + // seconds: -tzOffset]; + [completed setDate: o]; + [self setStatus: @"COMPLETED"]; + } + + if ((o = [theValues objectForKey: @"DueDate"])) + { + iCalDateTime *due; + + + o = [o calendarDate]; + due = (iCalDateTime *) [self uniqueChildWithTag: @"due"]; + [due setTimeZone: tz]; + + tzOffset = [userTimeZone secondsFromGMTForDate: o]; + o = [o dateByAddingYears: 0 months: 0 days: 0 + hours: 0 minutes: 0 + seconds: tzOffset]; + [due setDateTime: o]; + } + + // 2 == high, 1 == normal, 0 == low + if ((o = [theValues objectForKey: @"Importance"])) + { + if ([o intValue] == 2) + [self setPriority: @"1"]; + else if ([o intValue] == 1) + [self setPriority: @"5"]; + else + [self setPriority: @"9"]; + } + + + if ((o = [theValues objectForKey: @"ReminderTime"])) + { + + } } @end