From d22d3416df91b828750771ba20a2d9806d4f8d16 Mon Sep 17 00:00:00 2001 From: Lirons Date: Wed, 30 Oct 2019 20:06:23 +0200 Subject: [PATCH 1/5] improve exception handling in java --- .../src/main/java/com/calendarevents/CalendarEvents.java | 8 +++++++- package.json | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/android/src/main/java/com/calendarevents/CalendarEvents.java b/android/src/main/java/com/calendarevents/CalendarEvents.java index d3a3426..912e161 100644 --- a/android/src/main/java/com/calendarevents/CalendarEvents.java +++ b/android/src/main/java/com/calendarevents/CalendarEvents.java @@ -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); +} } } } @@ -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(); diff --git a/package.json b/package.json index 8a39fbd..39ed85d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-native-calendar-events", - "version": "1.7.3", + "version": "1.7.4", "author": "Will McMahan", "license": "MIT", "scripts": { From 6374b6414379ab4466c896f49112dc0610bf159a Mon Sep 17 00:00:00 2001 From: Lirons Date: Wed, 30 Oct 2019 20:12:23 +0200 Subject: [PATCH 2/5] add try catch for serialized --- RNCalendarEvents.m | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/RNCalendarEvents.m b/RNCalendarEvents.m index 90a7a03..f641fc3 100644 --- a/RNCalendarEvents.m +++ b/RNCalendarEvents.m @@ -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]; @@ -840,6 +844,7 @@ - (NSDictionary *)serializeCalendarEvent:(EKEvent *)event __weak RNCalendarEvents *weakSelf = self; dispatch_async(serialQueue, ^{ + RNCalendarEvents *strongSelf = weakSelf; NSArray *calendarEvents = [[strongSelf.eventStore eventsMatchingPredicate:predicate] sortedArrayUsingSelector:@selector(compareStartDateWithEvent:)]; if (calendarEvents) { From 2a95198c10d2a4a8607d43b6dfbab8b543f13bfb Mon Sep 17 00:00:00 2001 From: Lirons Date: Fri, 1 Nov 2019 09:53:28 +0200 Subject: [PATCH 3/5] add try catch --- RNCalendarEvents.m | 8 ++++++-- package.json | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/RNCalendarEvents.m b/RNCalendarEvents.m index f641fc3..7bd2c82 100644 --- a/RNCalendarEvents.m +++ b/RNCalendarEvents.m @@ -824,7 +824,7 @@ - (NSDictionary *)serializeCalendarEvent:(EKEvent *)event reject(@"error", @"unauthorized to access calendar", nil); return; } - + NSMutableArray *eventCalendars; if (calendars.count) { @@ -844,7 +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) { @@ -854,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); + } }); } diff --git a/package.json b/package.json index 39ed85d..50beeaa 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-native-calendar-events", - "version": "1.7.4", + "version": "1.7.5", "author": "Will McMahan", "license": "MIT", "scripts": { From 19d529239b00dbfb2035796fbdd32e865f5308a5 Mon Sep 17 00:00:00 2001 From: Lirons Date: Sat, 2 Nov 2019 15:06:12 +0200 Subject: [PATCH 4/5] remove support for detailed RecurrenceRules - cras --- RNCalendarEvents.m | 39 +++++++++++++++++++++------------------ package.json | 2 +- 2 files changed, 22 insertions(+), 19 deletions(-) diff --git a/RNCalendarEvents.m b/RNCalendarEvents.m index 7bd2c82..7c8754a 100644 --- a/RNCalendarEvents.m +++ b/RNCalendarEvents.m @@ -461,6 +461,9 @@ - (NSArray *)serializeCalendarEvents:(NSArray *)calendarEvents @try { [serializedCalendarEvents addObject:[self serializeCalendarEvent:event]]; } + @catch (NSInvalidArgumentException *exception) { + NSLog(@"%@", exception.reason); + } @catch (NSException *exception) { NSLog(@"%@", exception.reason); } @@ -645,23 +648,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]; } @@ -674,13 +677,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"]; } diff --git a/package.json b/package.json index 50beeaa..d8eb224 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-native-calendar-events", - "version": "1.7.5", + "version": "1.7.6", "author": "Will McMahan", "license": "MIT", "scripts": { From fbba815ed86a0dbcf13c22b694cb7adef7242b5a Mon Sep 17 00:00:00 2001 From: Lirons Date: Sat, 2 Nov 2019 15:11:25 +0200 Subject: [PATCH 5/5] remove NSInvalidArgumentException' --- RNCalendarEvents.m | 3 --- package.json | 2 +- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/RNCalendarEvents.m b/RNCalendarEvents.m index 7c8754a..b4c1db1 100644 --- a/RNCalendarEvents.m +++ b/RNCalendarEvents.m @@ -461,9 +461,6 @@ - (NSArray *)serializeCalendarEvents:(NSArray *)calendarEvents @try { [serializedCalendarEvents addObject:[self serializeCalendarEvent:event]]; } - @catch (NSInvalidArgumentException *exception) { - NSLog(@"%@", exception.reason); - } @catch (NSException *exception) { NSLog(@"%@", exception.reason); } diff --git a/package.json b/package.json index d8eb224..9c19139 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-native-calendar-events", - "version": "1.7.6", + "version": "1.7.7", "author": "Will McMahan", "license": "MIT", "scripts": {