(fix) don't update c_nextalarm in quick table for email alarms

This commit is contained in:
Ludovic Marcotte 2016-11-04 08:41:47 -04:00
parent a45d8c68f8
commit fb7a83f44a

View file

@ -692,6 +692,8 @@ NSNumber *iCalDistantFutureNumber = nil;
GCSAlarmsFolder *af; GCSAlarmsFolder *af;
NSString *path; NSString *path;
int alarm_number;
if ([[SOGoSystemDefaults sharedSystemDefaults] enableEMailAlarms]) if ([[SOGoSystemDefaults sharedSystemDefaults] enableEMailAlarms])
{ {
af = [[GCSFolderManager defaultFolderManager] alarmsFolder]; af = [[GCSFolderManager defaultFolderManager] alarmsFolder];
@ -704,6 +706,7 @@ NSNumber *iCalDistantFutureNumber = nil;
} }
nextAlarmDate = nil; nextAlarmDate = nil;
alarm_number = -1;
if ([self hasAlarms]) if ([self hasAlarms])
{ {
@ -736,15 +739,13 @@ NSNumber *iCalDistantFutureNumber = nil;
nextAlarmDate = nil; nextAlarmDate = nil;
else else
{ {
int alarmNbr; alarm_number = [[self alarms] indexOfObject: anAlarm];
alarmNbr = [[self alarms] indexOfObject: anAlarm];
[af writeRecordForEntryWithCName: nameInContainer [af writeRecordForEntryWithCName: nameInContainer
inCalendarAtPath: path inCalendarAtPath: path
forUID: [self uid] forUID: [self uid]
recurrenceId: nil recurrenceId: nil
alarmNumber: [NSNumber numberWithInt: alarmNbr] alarmNumber: [NSNumber numberWithInt: alarm_number]
andAlarmDate: nextAlarmDate]; andAlarmDate: nextAlarmDate];
} }
} }
@ -832,16 +833,14 @@ NSNumber *iCalDistantFutureNumber = nil;
} }
else if ((anAlarm = [self firstEmailAlarm]) && af) else if ((anAlarm = [self firstEmailAlarm]) && af)
{ {
int alarmNbr;
nextAlarmDate = [NSDate dateWithTimeIntervalSince1970: [[[alarms objectAtIndex: i] objectForKey: @"c_nextalarm"] intValue]]; nextAlarmDate = [NSDate dateWithTimeIntervalSince1970: [[[alarms objectAtIndex: i] objectForKey: @"c_nextalarm"] intValue]];
alarmNbr = [[self alarms] indexOfObject: anAlarm]; alarm_number = [[self alarms] indexOfObject: anAlarm];
[af writeRecordForEntryWithCName: nameInContainer [af writeRecordForEntryWithCName: nameInContainer
inCalendarAtPath: path inCalendarAtPath: path
forUID: [self uid] forUID: [self uid]
recurrenceId: [self recurrenceId] recurrenceId: [self recurrenceId]
alarmNumber: [NSNumber numberWithInt: alarmNbr] alarmNumber: [NSNumber numberWithInt: alarm_number]
andAlarmDate: nextAlarmDate]; andAlarmDate: nextAlarmDate];
} }
} }
@ -851,15 +850,18 @@ NSNumber *iCalDistantFutureNumber = nil;
} }
} }
if ([nextAlarmDate isNotNull]) // Don't update c_nextalarm in the quick table if it's an email alarm
[row setObject: [NSNumber numberWithInt: [nextAlarmDate timeIntervalSince1970]] if ([nextAlarmDate isNotNull] && alarm_number < 0)
forKey: @"c_nextalarm"]; {
[row setObject: [NSNumber numberWithInt: [nextAlarmDate timeIntervalSince1970]]
forKey: @"c_nextalarm"];
}
else else
{ {
[row setObject: [NSNumber numberWithInt: 0] forKey: @"c_nextalarm"]; [row setObject: [NSNumber numberWithInt: 0] forKey: @"c_nextalarm"];
// Delete old email alarms // Delete old email alarms
if (af) if (alarm_number >= 0)
[af deleteRecordForEntryWithCName: nameInContainer [af deleteRecordForEntryWithCName: nameInContainer
inCalendarAtPath: [theContainer ocsPath]]; inCalendarAtPath: [theContainer ocsPath]];
} }