Add reminder methods

This commit is contained in:
Kyle Fang
2013-02-25 20:27:27 +08:00
parent 9cec1aae43
commit ce7ed3e8f4
2 changed files with 50 additions and 0 deletions

View File

@@ -15,4 +15,13 @@
- (void)setupEventManagerWithCompletionBlock:(void (^)(BOOL success))completionBlock;
//Reminder methods
- (NSString *)defaultReminderListIdentifier;
- (NSArray *)reminderLists;
- (void)getReminderItemsInListWithIdentifier:(NSString *)listIdentifier includeCompleted:(BOOL)includeCompleted includeImcompleted:(BOOL)incluImcomple withCompletionBlock:(void (^)(NSArray *))completion;
@end

View File

@@ -56,8 +56,49 @@ static PPEvenKitManager *_sharedManager;
return [EKEventStore authorizationStatusForEntityType:EKEntityTypeReminder] == EKAuthorizationStatusAuthorized;
}
#pragma mark - Reminder methods
- (NSString *)defaultReminderListIdentifier{
if ([self haveAccessToReminder]){
EKCalendar *defaultReminderList = [self.defaultStore defaultCalendarForNewReminders];
return defaultReminderList.calendarIdentifier;
} else {
return nil;
}
}
- (NSArray *)reminderLists{
if ([self haveAccessToReminder]){
NSArray *reminderLists = [self.defaultStore calendarsForEntityType:EKEntityTypeReminder];
return [reminderLists copy];
} else {
return nil;
}
}
- (void)getReminderItemsInListWithIdentifier:(NSString *)listIdentifier includeCompleted:(BOOL)includeCompleted includeImcompleted:(BOOL)incluImcomple withCompletionBlock:(void (^)(NSArray *))completion{
if ([self haveAccessToReminder]){
if (!incluImcomple && !includeCompleted) {
completion(nil);
} else {
NSPredicate *reminderPredicate = nil;
EKCalendar *calendar = [self.defaultStore calendarWithIdentifier:listIdentifier];
if (includeCompleted && incluImcomple) {
reminderPredicate = [self.defaultStore predicateForRemindersInCalendars:@[calendar]];
} else if (incluImcomple && !includeCompleted) {
reminderPredicate = [self.defaultStore predicateForIncompleteRemindersWithDueDateStarting:nil ending:nil calendars:@[calendar]];
} else if (includeCompleted && !incluImcomple) {
reminderPredicate = [self.defaultStore predicateForCompletedRemindersWithCompletionDateStarting:nil ending:nil calendars:@[calendar]];
}
[self.defaultStore fetchRemindersMatchingPredicate:reminderPredicate completion:^(NSArray *reminders) {
completion([reminders copy]);
}];
}
} else {
completion(nil);
}
}
@end