Monotone-Parent: e16807404ac6ea20632ee7e0e21ae2db34830540
Monotone-Revision: 46e2b0eb136b0ff20576ecbaa9428e3c5bcd2ce7 Monotone-Author: wsourdeau@inverse.ca Monotone-Date: 2010-08-13T21:03:04 Monotone-Branch: ca.inverse.sogomaint-2.0.2
parent
25fe7bbe9e
commit
42817f45bf
|
@ -1,3 +1,8 @@
|
||||||
|
2010-08-13 Wolfgang Sourdeau <wsourdeau@inverse.ca>
|
||||||
|
|
||||||
|
* iCalAlarm.m (-nextAlarmDate): new utility method split from the
|
||||||
|
SOGo quick table extractor for events.
|
||||||
|
|
||||||
2010-08-11 Wolfgang Sourdeau <wsourdeau@inverse.ca>
|
2010-08-11 Wolfgang Sourdeau <wsourdeau@inverse.ca>
|
||||||
|
|
||||||
* NGVCardPhoto.m (-type): returns @"JPEG" if the type is
|
* NGVCardPhoto.m (-type): returns @"JPEG" if the type is
|
||||||
|
|
|
@ -41,6 +41,8 @@
|
||||||
- (void) setRecurrenceRule: (NSString *) _recurrenceRule;
|
- (void) setRecurrenceRule: (NSString *) _recurrenceRule;
|
||||||
- (NSString *) recurrenceRule;
|
- (NSString *) recurrenceRule;
|
||||||
|
|
||||||
|
- (NSCalendarDate *) nextAlarmDate;
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|
||||||
#endif /* __NGCards_iCalAlarm_H__ */
|
#endif /* __NGCards_iCalAlarm_H__ */
|
||||||
|
|
|
@ -20,10 +20,14 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#import <Foundation/NSString.h>
|
#import <Foundation/NSString.h>
|
||||||
|
#import <NGExtensions/NSNull+misc.h>
|
||||||
|
#import <NGExtensions/NSObject+Logs.h>
|
||||||
|
|
||||||
#import "iCalAttachment.h"
|
#import "iCalAttachment.h"
|
||||||
|
#import "iCalEvent.h"
|
||||||
#import "iCalRecurrenceRule.h"
|
#import "iCalRecurrenceRule.h"
|
||||||
#import "iCalTrigger.h"
|
#import "iCalTrigger.h"
|
||||||
|
#import "NSString+NGCards.h"
|
||||||
|
|
||||||
#import "iCalAlarm.h"
|
#import "iCalAlarm.h"
|
||||||
|
|
||||||
|
@ -103,4 +107,42 @@
|
||||||
return [[self uniqueChildWithTag: @"rrule"] value: 0];
|
return [[self uniqueChildWithTag: @"rrule"] value: 0];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (NSCalendarDate *) nextAlarmDate
|
||||||
|
{
|
||||||
|
Class parentClass;
|
||||||
|
iCalTrigger *aTrigger;
|
||||||
|
NSCalendarDate *relationDate, *nextAlarmDate;
|
||||||
|
NSString *relation;
|
||||||
|
NSTimeInterval anInterval;
|
||||||
|
iCalEvent *parentEvent;
|
||||||
|
|
||||||
|
nextAlarmDate = nil;
|
||||||
|
|
||||||
|
parentClass = [parent class];
|
||||||
|
if ([parentClass isKindOfClass: [iCalEvent class]])
|
||||||
|
{
|
||||||
|
parentEvent = (iCalEvent *) parent;
|
||||||
|
aTrigger = [self trigger];
|
||||||
|
|
||||||
|
if ([[aTrigger valueType] caseInsensitiveCompare: @"DURATION"])
|
||||||
|
{
|
||||||
|
relation = [aTrigger relationType];
|
||||||
|
anInterval = [[aTrigger value] durationAsTimeInterval];
|
||||||
|
if ([relation caseInsensitiveCompare: @"END"] == NSOrderedSame)
|
||||||
|
relationDate = [parentEvent endDate];
|
||||||
|
else
|
||||||
|
relationDate = [parentEvent startDate];
|
||||||
|
|
||||||
|
// Compute the next alarm date with respect to the reference date
|
||||||
|
if ([relationDate isNotNull])
|
||||||
|
nextAlarmDate = [relationDate addTimeInterval: anInterval];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
[self warnWithFormat: @"alarms not handled for elements of class '%@'",
|
||||||
|
NSStringFromClass (parentClass)];
|
||||||
|
|
||||||
|
return nextAlarmDate;
|
||||||
|
}
|
||||||
|
|
||||||
@end /* iCalAlarm */
|
@end /* iCalAlarm */
|
||||||
|
|
Loading…
Reference in New Issue