这是indexloc提供的服务,不要输入任何密码
Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
49 changes: 29 additions & 20 deletions RNCalendarEvents.m
Original file line number Diff line number Diff line change
Expand Up @@ -458,8 +458,12 @@ - (NSArray *)serializeCalendarEvents:(NSArray *)calendarEvents
NSMutableArray *serializedCalendarEvents = [[NSMutableArray alloc] init];

for (EKEvent *event in calendarEvents) {

@try {
[serializedCalendarEvents addObject:[self serializeCalendarEvent:event]];
}
@catch (NSException *exception) {
NSLog(@"%@", exception.reason);
}
}

return [serializedCalendarEvents copy];
Expand Down Expand Up @@ -641,23 +645,23 @@ - (NSDictionary *)serializeCalendarEvent:(EKEvent *)event
[formedCalendarEvent setValue:[NSNumber numberWithBool:event.allDay] forKey:_allDay];

if (event.hasRecurrenceRules) {
EKRecurrenceRule *rule = [event.recurrenceRules objectAtIndex:0];
NSString *frequencyType = [self nameMatchingFrequency:[rule frequency]];
//EKRecurrenceRule *rule = [event.recurrenceRules objectAtIndex:0];
NSString *frequencyType = @"Recurrence";//[self nameMatchingFrequency:[rule frequency]];
[formedCalendarEvent setValue:frequencyType forKey:_recurrence];

NSMutableDictionary *recurrenceRule = [NSMutableDictionary dictionaryWithDictionary:@{@"frequency": frequencyType}];

if ([rule interval]) {
[recurrenceRule setValue:@([rule interval]) forKey:@"interval"];
}
// if ([rule interval]) {
// [recurrenceRule setValue:@([rule interval]) forKey:@"interval"];
// }

if ([[rule recurrenceEnd] endDate]) {
[recurrenceRule setValue:[dateFormatter stringFromDate:[[rule recurrenceEnd] endDate]] forKey:@"endDate"];
}
// if ([[rule recurrenceEnd] endDate]) {
// [recurrenceRule setValue:[dateFormatter stringFromDate:[[rule recurrenceEnd] endDate]] forKey:@"endDate"];
// }

if ([[rule recurrenceEnd] occurrenceCount]) {
[recurrenceRule setValue:@([[rule recurrenceEnd] occurrenceCount]) forKey:@"occurrence"];
}
// if ([[rule recurrenceEnd] occurrenceCount]) {
// [recurrenceRule setValue:@([[rule recurrenceEnd] occurrenceCount]) forKey:@"occurrence"];
// }

[formedCalendarEvent setValue:recurrenceRule forKey:_recurrenceRule];
}
Expand All @@ -670,13 +674,13 @@ - (NSDictionary *)serializeCalendarEvent:(EKEvent *)event
@"title": event.structuredLocation.title,
@"radius": @(event.structuredLocation.radius)
}];
if (event.structuredLocation.geoLocation) {
[structuredLocation setValue: @{
@"latitude": @(event.structuredLocation.geoLocation.coordinate.latitude),
@"longitude": @(event.structuredLocation.geoLocation.coordinate.longitude)
}
forKey:@"coords"];
}
// if (event.structuredLocation.geoLocation) {
// [structuredLocation setValue: @{
// @"latitude": @(event.structuredLocation.geoLocation.coordinate.latitude),
// @"longitude": @(event.structuredLocation.geoLocation.coordinate.longitude)
// }
// forKey:@"coords"];
// }
[formedCalendarEvent setValue: structuredLocation forKey:@"structuredLocation"];
}

Expand Down Expand Up @@ -820,7 +824,7 @@ - (NSDictionary *)serializeCalendarEvent:(EKEvent *)event
reject(@"error", @"unauthorized to access calendar", nil);
return;
}

NSMutableArray *eventCalendars;

if (calendars.count) {
Expand All @@ -840,6 +844,7 @@ - (NSDictionary *)serializeCalendarEvent:(EKEvent *)event

__weak RNCalendarEvents *weakSelf = self;
dispatch_async(serialQueue, ^{
@try{
RNCalendarEvents *strongSelf = weakSelf;
NSArray *calendarEvents = [[strongSelf.eventStore eventsMatchingPredicate:predicate] sortedArrayUsingSelector:@selector(compareStartDateWithEvent:)];
if (calendarEvents) {
Expand All @@ -849,6 +854,10 @@ - (NSDictionary *)serializeCalendarEvent:(EKEvent *)event
} else {
reject(@"error", @"calendar event request error", nil);
}
}
@catch (NSException *exception) {
reject(@"error", @"calendar event request error", nil);
}
});
}

Expand Down
8 changes: 7 additions & 1 deletion android/src/main/java/com/calendarevents/CalendarEvents.java
Original file line number Diff line number Diff line change
Expand Up @@ -836,8 +836,11 @@ private void createRemindersForEvent(ContentResolver resolver, int eventID, Read
reminderValues.put(CalendarContract.Reminders.EVENT_ID, eventID);
reminderValues.put(CalendarContract.Reminders.MINUTES, minutes);
reminderValues.put(CalendarContract.Reminders.METHOD, CalendarContract.Reminders.METHOD_ALERT);
try{
resolver.insert(CalendarContract.Reminders.CONTENT_URI, reminderValues);
}catch(Exception e){

resolver.insert(CalendarContract.Reminders.CONTENT_URI, reminderValues);
}
}
}
}
Expand Down Expand Up @@ -1248,6 +1251,9 @@ public void run() {
} catch (ParseException e) {
promise.reject("add event error", e.getMessage());
}
catch (Exception e) {
promise.reject("add event error", e.getMessage());
}
}
});
thread.start();
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "react-native-calendar-events",
"version": "1.7.3",
"version": "1.7.7",
"author": "Will McMahan",
"license": "MIT",
"scripts": {
Expand Down