From ca289411707c9be052d4e0e8a65af3e76b165c50 Mon Sep 17 00:00:00 2001 From: woheller69 Date: Mon, 16 Sep 2024 11:02:43 +0200 Subject: [PATCH] bugfixes #96 --- .../sufficientlysecure/ical/SaveCalendar.java | 31 ++++++++++++------- .../ical/ui/MainActivity.java | 2 +- 2 files changed, 20 insertions(+), 13 deletions(-) diff --git a/CalendarImportExport/src/main/java/org/sufficientlysecure/ical/SaveCalendar.java b/CalendarImportExport/src/main/java/org/sufficientlysecure/ical/SaveCalendar.java index 70f10b6..7a80b49 100644 --- a/CalendarImportExport/src/main/java/org/sufficientlysecure/ical/SaveCalendar.java +++ b/CalendarImportExport/src/main/java/org/sufficientlysecure/ical/SaveCalendar.java @@ -231,11 +231,14 @@ private List getEvents(ContentResolver resolver, AndroidCalendar cal_src String where = Events.CALENDAR_ID + "=? AND deleted=0"; String[] args = new String[] { cal_src.mIdStr }; String sortBy = Events.CALENDAR_ID + " ASC"; - Cursor cur; + Cursor cur = null; + try { cur = resolver.query(Events.CONTENT_URI, mAllCols ? null : EVENT_COLS, - where, args, sortBy); - } catch (Exception except) { + where, args, sortBy); + } catch (Exception ignored) {} + + if (cur == null) { Log.w(TAG, "Calendar provider is missing columns, continuing anyway"); int n = 0; for (n = 0; n < EVENT_COLS.length; ++n) @@ -249,18 +252,22 @@ private List getEvents(ContentResolver resolver, AndroidCalendar cal_src //TW: _sync_id=1611333603291 pro Event? oder: secTimeStamp=1611334074922 // Collect up events and add them after any timezones - setMax(cur.getCount()); List events = new ArrayList<>(); - while (cur.moveToNext()) { - incrementProgress(); - VEvent e = convertFromDb(cur, cal_dst, timestamp); - if (e != null) { - events.add(e); - if (Log.getIsUserEnabled()) - Log.d(TAG, "Adding event: " + e.toString()); + + if (cur != null) { + setMax(cur.getCount()); + while (cur.moveToNext()) { + incrementProgress(); + VEvent e = convertFromDb(cur, cal_dst, timestamp); + if (e != null) { + events.add(e); + if (Log.getIsUserEnabled()) + Log.d(TAG, "Adding event: " + e.toString()); + } } + cur.close(); } - cur.close(); + return events; } diff --git a/CalendarImportExport/src/main/java/org/sufficientlysecure/ical/ui/MainActivity.java b/CalendarImportExport/src/main/java/org/sufficientlysecure/ical/ui/MainActivity.java index e1e42f5..c53069f 100644 --- a/CalendarImportExport/src/main/java/org/sufficientlysecure/ical/ui/MainActivity.java +++ b/CalendarImportExport/src/main/java/org/sufficientlysecure/ical/ui/MainActivity.java @@ -373,7 +373,7 @@ public void onClick(DialogInterface iface, int id) { boolean found = false; for (int i = 0; i < mCalendars.size(); i++) { if (mCalendars.get(i).mId == mIntentCalendarId && - (calendarName == null || mCalendars.get(i).mName.contentEquals(calendarName))) { + (calendarName == null || (mCalendars.get(i).mName != null && mCalendars.get(i).mName.contentEquals(calendarName)))) { found = true; final int index = i; runOnUiThread(new Runnable() {