diff --git a/android/src/main/java/com/calendarevents/RNCalendarEvents.java b/android/src/main/java/com/calendarevents/RNCalendarEvents.java index ef3d499..6e3157b 100644 --- a/android/src/main/java/com/calendarevents/RNCalendarEvents.java +++ b/android/src/main/java/com/calendarevents/RNCalendarEvents.java @@ -1087,8 +1087,9 @@ private WritableNativeMap serializeEvent(Cursor cursor) { recurrenceRule.putString("frequency", recurrenceRules[0].split("=")[1].toLowerCase()); } - if (cursor.getColumnIndex(CalendarContract.Events.DURATION) != -1 && cursor.getString(cursor.getColumnIndex(CalendarContract.Events.DURATION)) != null) { - recurrenceRule.putString("duration", cursor.getString(cursor.getColumnIndex(CalendarContract.Events.DURATION))); + int durationIndex = cursor.getColumnIndex(CalendarContract.Events.DURATION); + if (durationIndex != -1 && cursor.getString(durationIndex) != null) { + recurrenceRule.putString("duration", cursor.getString(durationIndex)); } if (recurrenceRules.length >= 2 && recurrenceRules[1].split("=")[0].equals("INTERVAL")) { @@ -1112,8 +1113,20 @@ private WritableNativeMap serializeEvent(Cursor cursor) { } event.putString("id", cursor.getString(0)); - event.putMap("calendar", findCalendarById(cursor.getString(cursor.getColumnIndex("calendar_id")))); - event.putString("title", cursor.getString(cursor.getColumnIndex("title"))); + int calendarIdIndex = cursor.getColumnIndex("calendar_id"); + if (calendarIdIndex != -1) { + String calendarId = cursor.getString(calendarIdIndex); + if (calendarId != null) { + event.putMap("calendar", findCalendarById(calendarId)); + } + } + int titleIndex = cursor.getColumnIndex("title"); + if (titleIndex != -1) { + String title = cursor.getString(titleIndex); + if (title != null) { + event.putString("title", title); + } + } event.putString("description", cursor.getString(2)); event.putString("startDate", startDateUTC); event.putString("endDate", endDateUTC); @@ -1129,12 +1142,14 @@ private WritableNativeMap serializeEvent(Cursor cursor) { event.putArray("alarms", emptyAlarms); } - if (cursor.getColumnIndex(CalendarContract.Events.ORIGINAL_ID) != -1 && cursor.getString(cursor.getColumnIndex(CalendarContract.Events.ORIGINAL_ID)) != null) { - event.putString("originalId", cursor.getString(cursor.getColumnIndex(CalendarContract.Events.ORIGINAL_ID))); + int originalIdIndex = cursor.getColumnIndex(CalendarContract.Events.ORIGINAL_ID); + if (originalIdIndex != -1 && cursor.getString(originalIdIndex) != null) { + event.putString("originalId", cursor.getString(originalIdIndex)); } - if (cursor.getColumnIndex(CalendarContract.Instances.ORIGINAL_SYNC_ID) != -1 && cursor.getString(cursor.getColumnIndex(CalendarContract.Instances.ORIGINAL_SYNC_ID)) != null) { - event.putString("syncId", cursor.getString(cursor.getColumnIndex(CalendarContract.Instances.ORIGINAL_SYNC_ID))); + int originalSyncIdIndex = cursor.getColumnIndex(CalendarContract.Instances.ORIGINAL_SYNC_ID); + if (originalSyncIdIndex != -1 && cursor.getString(originalSyncIdIndex) != null) { + event.putString("syncId", cursor.getString(originalSyncIdIndex)); } return event;