diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/extensions/Context.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/extensions/Context.kt index 42722770b..893e4cfa2 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/extensions/Context.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/extensions/Context.kt @@ -10,6 +10,7 @@ import android.content.Context import android.content.Intent import android.content.pm.ActivityInfo import android.content.res.Resources +import android.database.Cursor import android.graphics.Bitmap import android.media.AudioAttributes import android.net.Uri @@ -677,3 +678,29 @@ fun Context.updateTaskCompletion(event: Event, completed: Boolean) { // mark event as "incomplete" in the main events db eventsDB.updateTaskCompletion(event.id!!, event.flags.removeBit(FLAG_TASK_COMPLETED)) } + +// same as Context.queryCursor but inlined to allow non-local returns +inline fun Context.queryCursorInlined( + uri: Uri, + projection: Array, + selection: String? = null, + selectionArgs: Array? = null, + sortOrder: String? = null, + showErrors: Boolean = false, + callback: (cursor: Cursor) -> Unit +) { + try { + val cursor = contentResolver.query(uri, projection, selection, selectionArgs, sortOrder) + cursor?.use { + if (cursor.moveToFirst()) { + do { + callback(cursor) + } while (cursor.moveToNext()) + } + } + } catch (e: Exception) { + if (showErrors) { + showErrorToast(e) + } + } +} diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/helpers/CalDAVHelper.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/helpers/CalDAVHelper.kt index f4da2900d..2f4a4de4f 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/helpers/CalDAVHelper.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/helpers/CalDAVHelper.kt @@ -6,6 +6,7 @@ import android.content.ContentValues import android.content.Context import android.provider.CalendarContract.* import android.util.SparseIntArray +import android.widget.Toast import com.google.gson.Gson import com.google.gson.reflect.TypeToken import com.simplemobiletools.calendar.pro.R @@ -150,11 +151,13 @@ class CalDAVHelper(val context: Context) { private fun fetchCalDAVCalendarEvents(calendarId: Int, eventTypeId: Long, showToasts: Boolean) { val importIdsMap = HashMap() val fetchedEventIds = ArrayList() + + var errorFetchingLocalEvents = false val existingEvents = try { context.eventsDB.getEventsFromCalDAVCalendar("$CALDAV-$calendarId") } catch (e: Exception) { - context.showErrorToast(context.getString(R.string.unknown_error_occurred)) - return + errorFetchingLocalEvents = true + ArrayList() } existingEvents.forEach { @@ -182,14 +185,20 @@ class CalDAVHelper(val context: Context) { ) val selection = "${Events.CALENDAR_ID} = $calendarId" - context.queryCursor(uri, projection, selection, showErrors = showToasts) { cursor -> + context.queryCursorInlined(uri, projection, selection, showErrors = showToasts) { cursor -> val deleted = cursor.getIntValue(Events.DELETED) if (deleted == 1) { - return@queryCursor + return@queryCursorInlined } val id = cursor.getLongValue(Events._ID) val title = cursor.getStringValue(Events.TITLE) ?: "" + + if (errorFetchingLocalEvents) { + context.toast(context.getString(R.string.fetching_event_failed, "\"$title\""), Toast.LENGTH_LONG) + return + } + val description = cursor.getStringValue(Events.DESCRIPTION) ?: "" val startTS = cursor.getLongValue(Events.DTSTART) / 1000L var endTS = cursor.getLongValue(Events.DTEND) / 1000L @@ -251,7 +260,7 @@ class CalDAVHelper(val context: Context) { event.parentId = parentEvent.id!! event.addRepetitionException(originalDayCode) eventsHelper.insertEvent(event, addToCalDAV = false, showToasts = false) - return@queryCursor + return@queryCursorInlined } } diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index b10880905..d3d356198 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -228,6 +228,7 @@ No synchronizable calendars have been found Free Busy + Fetching event %s failed الإثنين diff --git a/app/src/main/res/values-az/strings.xml b/app/src/main/res/values-az/strings.xml index fdeca179c..0b94935d7 100644 --- a/app/src/main/res/values-az/strings.xml +++ b/app/src/main/res/values-az/strings.xml @@ -228,6 +228,7 @@ No synchronizable calendars have been found Free Busy + Fetching event %s failed Bazar ertəsi diff --git a/app/src/main/res/values-be/strings.xml b/app/src/main/res/values-be/strings.xml index 0838f232f..24a5433ea 100644 --- a/app/src/main/res/values-be/strings.xml +++ b/app/src/main/res/values-be/strings.xml @@ -228,6 +228,7 @@ No synchronizable calendars have been found Free Заняты + Fetching event %s failed панядзелак diff --git a/app/src/main/res/values-bg/strings.xml b/app/src/main/res/values-bg/strings.xml index 1e873f3aa..c2b6d89d7 100644 --- a/app/src/main/res/values-bg/strings.xml +++ b/app/src/main/res/values-bg/strings.xml @@ -228,6 +228,7 @@ Не са намерени календари, които да могат да се синхронизират Свободно Заето + Fetching event %s failed Понеделник @@ -280,4 +281,4 @@ Haven't found some strings? There's more at https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res --> - \ No newline at end of file + diff --git a/app/src/main/res/values-bn/strings.xml b/app/src/main/res/values-bn/strings.xml index 9f97e6cbb..54bfed41a 100644 --- a/app/src/main/res/values-bn/strings.xml +++ b/app/src/main/res/values-bn/strings.xml @@ -227,6 +227,7 @@ No synchronizable calendars have been found Free Busy + Fetching event %s failed সোমবার diff --git a/app/src/main/res/values-br/strings.xml b/app/src/main/res/values-br/strings.xml index 663dd20a7..8ecccb6ab 100644 --- a/app/src/main/res/values-br/strings.xml +++ b/app/src/main/res/values-br/strings.xml @@ -228,6 +228,7 @@ No synchronizable calendars have been found Free Busy + Fetching event %s failed Lun diff --git a/app/src/main/res/values-ca/strings.xml b/app/src/main/res/values-ca/strings.xml index 14d07594f..a80ce6805 100644 --- a/app/src/main/res/values-ca/strings.xml +++ b/app/src/main/res/values-ca/strings.xml @@ -228,6 +228,7 @@ No s\'ha trobat cap calendari que es pugui sincronitzar Lliure Ocupat + Fetching event %s failed dilluns @@ -280,4 +281,4 @@ Haven't found some strings? There's more at https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res --> - \ No newline at end of file + diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index 5e578eec0..41e7b06f1 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -228,6 +228,7 @@ Nebyly nalezeny žádné synchronizovatelné kalendáře K dispozici Zaneprázdněný + Fetching event %s failed pondělí @@ -283,4 +284,4 @@ Haven't found some strings? There's more at https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res --> - \ No newline at end of file + diff --git a/app/src/main/res/values-da/strings.xml b/app/src/main/res/values-da/strings.xml index f7989224b..374752cdb 100644 --- a/app/src/main/res/values-da/strings.xml +++ b/app/src/main/res/values-da/strings.xml @@ -228,6 +228,7 @@ Der er ikke fundet nogen kalendere der kan synkroniseres Ledig Optaget + Fetching event %s failed Mandag diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index e0ac0c308..90ba76b7e 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -228,6 +228,7 @@ Es wurden keine synchronisierbaren Kalender gefunden Verfügbar Beschäftigt + Fetching event %s failed Montag @@ -280,4 +281,4 @@ Haven't found some strings? There's more at https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res --> - \ No newline at end of file + diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml index 9b86e0917..199502c77 100644 --- a/app/src/main/res/values-el/strings.xml +++ b/app/src/main/res/values-el/strings.xml @@ -228,6 +228,7 @@ Δεν μπόρεσαν να βρεθούν συγχρονισμένα Ημερολόγια Ελεύθερα Κατειλημμένα + Fetching event %s failed Δευτέρα diff --git a/app/src/main/res/values-eo/strings.xml b/app/src/main/res/values-eo/strings.xml index eaac5016b..030c9dfd1 100644 --- a/app/src/main/res/values-eo/strings.xml +++ b/app/src/main/res/values-eo/strings.xml @@ -228,6 +228,7 @@ No synchronizable calendars have been found Free Busy + Fetching event %s failed lundo diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 587c7ec2d..0d2cce9fb 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -228,6 +228,7 @@ No se han encontrado calendarios para sincronizar Libre Ocupado + Fetching event %s failed lunes diff --git a/app/src/main/res/values-et/strings.xml b/app/src/main/res/values-et/strings.xml index a07d46407..7dba6c524 100644 --- a/app/src/main/res/values-et/strings.xml +++ b/app/src/main/res/values-et/strings.xml @@ -228,6 +228,7 @@ No synchronizable calendars have been found Free Busy + Fetching event %s failed Monday diff --git a/app/src/main/res/values-eu/strings.xml b/app/src/main/res/values-eu/strings.xml index 9a26e91e3..ad6798796 100644 --- a/app/src/main/res/values-eu/strings.xml +++ b/app/src/main/res/values-eu/strings.xml @@ -228,6 +228,7 @@ Sinkronizatu daitekeen egutegirik ez da aurkitu Free Busy + Fetching event %s failed astelehenean diff --git a/app/src/main/res/values-fi/strings.xml b/app/src/main/res/values-fi/strings.xml index 3544e96f8..419ca0df1 100644 --- a/app/src/main/res/values-fi/strings.xml +++ b/app/src/main/res/values-fi/strings.xml @@ -228,6 +228,7 @@ Synkronoitavia kalentereita ei löytynyt Vapaa Varattu + Fetching event %s failed Maanantaisin diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 6e2878374..d9edddc10 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -228,6 +228,7 @@ Aucun agenda synchronisable n\'a été trouvé Disponible Occupé + Fetching event %s failed Lundi @@ -280,4 +281,4 @@ Haven't found some strings? There's more at https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res --> - \ No newline at end of file + diff --git a/app/src/main/res/values-gl/strings.xml b/app/src/main/res/values-gl/strings.xml index 26cb97e28..127130409 100644 --- a/app/src/main/res/values-gl/strings.xml +++ b/app/src/main/res/values-gl/strings.xml @@ -228,6 +228,7 @@ Non se atoparon calendarios sincronizados Free Busy + Fetching event %s failed luns diff --git a/app/src/main/res/values-hi-rIN/strings.xml b/app/src/main/res/values-hi-rIN/strings.xml index c16f25ce0..6ce17dab6 100644 --- a/app/src/main/res/values-hi-rIN/strings.xml +++ b/app/src/main/res/values-hi-rIN/strings.xml @@ -228,6 +228,7 @@ No synchronizable calendars have been found Free Busy + Fetching event %s failed Monday diff --git a/app/src/main/res/values-hr/strings.xml b/app/src/main/res/values-hr/strings.xml index 03ecd9d2c..2fcfe4873 100644 --- a/app/src/main/res/values-hr/strings.xml +++ b/app/src/main/res/values-hr/strings.xml @@ -228,6 +228,7 @@ Nijedan sinkronizirajući kalendar nije pronađen Slobodan/Slobodna Zauzet/Zauzeta + Fetching event %s failed Ponedjeljak diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml index 5847e8ed0..f1840979c 100644 --- a/app/src/main/res/values-hu/strings.xml +++ b/app/src/main/res/values-hu/strings.xml @@ -228,6 +228,7 @@ Nem találhatók szinkronizálható naptárak Szabad Elfoglalt + Fetching event %s failed hétfőn diff --git a/app/src/main/res/values-in/strings.xml b/app/src/main/res/values-in/strings.xml index f2fa485cd..19b8b5c60 100644 --- a/app/src/main/res/values-in/strings.xml +++ b/app/src/main/res/values-in/strings.xml @@ -228,6 +228,7 @@ No synchronizable calendars have been found Free Busy + Fetching event %s failed Senin diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 7057a6e29..3707d2589 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -228,6 +228,7 @@ Non é stato trovato nessun calendario sincronizzabile Disponibile Occupato + Fetching event %s failed Lunedì @@ -280,4 +281,4 @@ Haven't found some strings? There's more at https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res --> - \ No newline at end of file + diff --git a/app/src/main/res/values-iw/strings.xml b/app/src/main/res/values-iw/strings.xml index ceccb0cb7..2d6bd3f95 100644 --- a/app/src/main/res/values-iw/strings.xml +++ b/app/src/main/res/values-iw/strings.xml @@ -228,6 +228,7 @@ לא נמצאו לוחות שנה הניתנים לסנכרון Free עסוק + Fetching event %s failed שני diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index a45469abe..234c9dee8 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -229,6 +229,7 @@ No synchronizable calendars have been found Free Busy + Fetching event %s failed 月曜日 diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml index 71c0e4f65..7a9c41b29 100644 --- a/app/src/main/res/values-ko/strings.xml +++ b/app/src/main/res/values-ko/strings.xml @@ -228,6 +228,7 @@ No synchronizable calendars have been found Free Busy + Fetching event %s failed 월요일 diff --git a/app/src/main/res/values-lt/strings.xml b/app/src/main/res/values-lt/strings.xml index d27f5a1a1..88a3cf999 100644 --- a/app/src/main/res/values-lt/strings.xml +++ b/app/src/main/res/values-lt/strings.xml @@ -228,6 +228,7 @@ Nerasta jokių sinchronizuojamų kalendorių Laisvas Užimtas + Fetching event %s failed Pirmadienį diff --git a/app/src/main/res/values-lv/strings.xml b/app/src/main/res/values-lv/strings.xml index bb9dec332..b0af9ab46 100644 --- a/app/src/main/res/values-lv/strings.xml +++ b/app/src/main/res/values-lv/strings.xml @@ -228,6 +228,7 @@ No synchronizable calendars have been found Free Busy + Fetching event %s failed pirmdiena diff --git a/app/src/main/res/values-nb-rNO/strings.xml b/app/src/main/res/values-nb-rNO/strings.xml index 8932e944a..52adde734 100644 --- a/app/src/main/res/values-nb-rNO/strings.xml +++ b/app/src/main/res/values-nb-rNO/strings.xml @@ -228,6 +228,7 @@ No synchronizable calendars have been found Free Busy + Fetching event %s failed Mandag diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index cb1482644..51cb4275b 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -224,6 +224,7 @@ Er zijn geen gesynchroniseerde agenda\'s gevonden. Vrij Bezet + Fetching event %s failed maandag @@ -276,4 +277,4 @@ Haven't found some strings? There's more at https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res --> - \ No newline at end of file + diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index d29e0cc53..ba1d774ef 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -228,6 +228,7 @@ Nie znaleziono kalendarzy, które można zsynchronizować Wolny Zajęty + Fetching event %s failed poniedziałek @@ -286,4 +287,4 @@ Haven't found some strings? There's more at https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res --> - \ No newline at end of file + diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index a60302f94..350c368c7 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -228,6 +228,7 @@ Nenhum calendário encontrado para a sincronização Livre Ocupado + Fetching event %s failed Segunda diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml index a13273d9f..24e3b3a93 100644 --- a/app/src/main/res/values-pt/strings.xml +++ b/app/src/main/res/values-pt/strings.xml @@ -228,6 +228,7 @@ Não existem calendários passíveis de sincronização Livre Ocupado + Fetching event %s failed segunda diff --git a/app/src/main/res/values-ro/strings.xml b/app/src/main/res/values-ro/strings.xml index 26f618140..e2ed74f8f 100644 --- a/app/src/main/res/values-ro/strings.xml +++ b/app/src/main/res/values-ro/strings.xml @@ -228,6 +228,7 @@ Nu au fost găsite calendare care pot fi sincronizate Liber Ocupat + Fetching event %s failed Luni diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index f415a2005..4e7886e90 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -228,6 +228,7 @@ Синхронизируемые календари не найдены Свободен Занят + Fetching event %s failed понедельник @@ -286,4 +287,4 @@ Haven't found some strings? There's more at https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res --> - \ No newline at end of file + diff --git a/app/src/main/res/values-sk/strings.xml b/app/src/main/res/values-sk/strings.xml index 30fcc115a..188e0f1d4 100644 --- a/app/src/main/res/values-sk/strings.xml +++ b/app/src/main/res/values-sk/strings.xml @@ -228,6 +228,7 @@ Nenašli sa žiadne synchronizovateľné kalendáre Dostupný Zaneprázdnený + Fetching event %s failed pondelok diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index 514734a3c..3f9457431 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -228,6 +228,7 @@ Inga synkroniserbara kalendrar har hittats Ledig Upptagen + Fetching event %s failed Måndag diff --git a/app/src/main/res/values-th/strings.xml b/app/src/main/res/values-th/strings.xml index 6ed6bc404..3e316f8d2 100644 --- a/app/src/main/res/values-th/strings.xml +++ b/app/src/main/res/values-th/strings.xml @@ -228,6 +228,7 @@ No synchronizable calendars have been found Free Busy + Fetching event %s failed Monday diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index db3870254..1f7413c94 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -228,6 +228,7 @@ Eşzamanlanabilir takvim bulunamadı Serbest Meşgul + Fetching event %s failed Pazartesi @@ -280,4 +281,4 @@ Haven't found some strings? There's more at https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res --> - \ No newline at end of file + diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index 274e3494d..cd579d30d 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -228,6 +228,7 @@ Не знайдено календарів для синхронізації Free Зайнятий + Fetching event %s failed понеділок @@ -286,4 +287,4 @@ Haven't found some strings? There's more at https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res --> - \ No newline at end of file + diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index d068808e8..b219dc301 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -228,6 +228,7 @@ 未发现可同步的日历 空闲 繁忙 + Fetching event %s failed 星期一 @@ -277,4 +278,4 @@ Haven't found some strings? There's more at https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res --> - \ No newline at end of file + diff --git a/app/src/main/res/values-zh-rHK/strings.xml b/app/src/main/res/values-zh-rHK/strings.xml index 725fb285e..f63732ff0 100644 --- a/app/src/main/res/values-zh-rHK/strings.xml +++ b/app/src/main/res/values-zh-rHK/strings.xml @@ -228,6 +228,7 @@ No synchronizable calendars have been found 空閒 繁忙 + Fetching event %s failed 星期一 diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index c4ff6325d..9af5961e6 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -228,6 +228,7 @@ No synchronizable calendars have been found 空閒 繁忙 + Fetching event %s failed 星期一 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 42e33acdc..20dee0b97 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -239,6 +239,7 @@ No synchronizable calendars have been found Free Busy + Fetching event %s failed