diff --git a/ActiveSync/SOGoActiveSyncDispatcher+Sync.m b/ActiveSync/SOGoActiveSyncDispatcher+Sync.m index fa380226a..f311ea9a5 100644 --- a/ActiveSync/SOGoActiveSyncDispatcher+Sync.m +++ b/ActiveSync/SOGoActiveSyncDispatcher+Sync.m @@ -53,9 +53,12 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #import #import +#import + #import #import #import +#import #import @@ -227,7 +230,26 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. return nameInCache; } +- (void) _removeAllAlarmsFromCalendar: (iCalCalendar *) theCalendar +{ + NSArray *allComponents; + iCalEntityObject *currentComponent; + NSUInteger count, max; + if (debugOn) + [self logWithFormat: @"EAS - Remove all alarms"]; + + allComponents = [theCalendar allObjects]; + + max = [allComponents count]; + for (count = 0; count < max; count++) + { + currentComponent = [allComponents objectAtIndex: count]; + if ([currentComponent isKindOfClass: [iCalEvent class]] || + [currentComponent isKindOfClass: [iCalToDo class]]) + [currentComponent removeAllAlarms]; + } +} // // @@ -1221,6 +1243,9 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. d = [NSCalendarDate distantFuture]; [dateCache setObject: d forKey: uid]; + + if (!([theCollection showCalendarAlarms])) + [self _removeAllAlarmsFromCalendar: [componentObject parent]]; } if (updated) @@ -1581,7 +1606,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. [s appendString: [mailObject activeSyncRepresentationInContext: context]]; [s appendString: @""]; [s appendString: @""]; - + [syncCache setObject: [aCacheObject sequence] forKey: [aCacheObject uid]]; [dateCache setObject: [NSCalendarDate date] forKey: [aCacheObject uid]];