Fix potential NPE

Fix #115
This commit is contained in:
MM20 2022-07-12 14:58:19 +02:00
parent 82edd0a208
commit 144db406ca
No known key found for this signature in database
GPG Key ID: 0B61A8F2DEAFA389
2 changed files with 16 additions and 10 deletions

View File

@ -110,8 +110,11 @@ internal class CalendarRepositoryImpl(
) ?: return@withContext mutableListOf() ) ?: return@withContext mutableListOf()
val attendees = mutableListOf<String>() val attendees = mutableListOf<String>()
while (cur.moveToNext()) { while (cur.moveToNext()) {
attendees.add(cur.getString(1).takeUnless { it.isNullOrBlank() } attendees.add(
?: cur.getString(2)) cur.getStringOrNull(1).takeUnless { it.isNullOrBlank() }
?: cur.getStringOrNull(2)
?: continue
)
} }
cur.close() cur.close()
val allday = cursor.getInt(4) > 0 val allday = cursor.getInt(4) > 0
@ -123,13 +126,13 @@ internal class CalendarRepositoryImpl(
0 0
} }
val event = CalendarEvent( val event = CalendarEvent(
label = cursor.getString(1) ?: "", label = cursor.getStringOrNull(1) ?: "",
id = cursor.getLong(0), id = cursor.getLong(0),
color = cursor.getInt(5), color = cursor.getInt(5),
startTime = begin - tzOffset, startTime = begin - tzOffset,
endTime = cursor.getLong(3) - tzOffset - if (allday) 1 else 0, endTime = cursor.getLong(3) - tzOffset - if (allday) 1 else 0,
allDay = allday, allDay = allday,
location = cursor.getString(6) ?: "", location = cursor.getStringOrNull(6) ?: "",
attendees = attendees, attendees = attendees,
description = cursor.getStringOrNull(8) description = cursor.getStringOrNull(8)
?: "", ?: "",
@ -189,8 +192,8 @@ internal class CalendarRepositoryImpl(
calendars.add( calendars.add(
UserCalendar( UserCalendar(
id = cursor.getLong(0), id = cursor.getLong(0),
name = cursor.getString(5) ?: cursor.getString(1) ?: "", name = cursor.getStringOrNull(5) ?: cursor.getStringOrNull(1) ?: "",
owner = cursor.getString(2), owner = cursor.getStringOrNull(2) ?: "",
color = cursor.getInt(3) color = cursor.getInt(3)
) )
) )

View File

@ -51,12 +51,12 @@ class CalendarEventDeserializer(val context: Context): SearchableDeserializer {
val cursor = context.contentResolver.query(uri, projection, selection, selArgs, null) val cursor = context.contentResolver.query(uri, projection, selection, selArgs, null)
?: return null ?: return null
if (cursor.moveToNext()) { if (cursor.moveToNext()) {
val title = cursor.getString(1) val title = cursor.getStringOrNull(1) ?: ""
val begin = cursor.getLong(2) val begin = cursor.getLong(2)
val end = cursor.getLong(3) val end = cursor.getLong(3)
val allday = cursor.getInt(4) != 0 val allday = cursor.getInt(4) != 0
val color = cursor.getInt(5) val color = cursor.getInt(5)
val location = cursor.getString(6) val location = cursor.getStringOrNull(6)
val calendar = cursor.getLong(7) val calendar = cursor.getLong(7)
val description = cursor.getStringOrNull(8) val description = cursor.getStringOrNull(8)
?: "" ?: ""
@ -74,8 +74,11 @@ class CalendarEventDeserializer(val context: Context): SearchableDeserializer {
) ?: return null ) ?: return null
val attendees = mutableListOf<String>() val attendees = mutableListOf<String>()
while (cur.moveToNext()) { while (cur.moveToNext()) {
attendees.add(cur.getString(1).takeUnless { it.isNullOrBlank() } attendees.add(
?: cur.getString(2)) cur.getStringOrNull(1).takeUnless { it.isNullOrBlank() }
?: cur.getStringOrNull(2)
?: continue
)
} }
cur.close() cur.close()
val tzOffset = if (allday) { val tzOffset = if (allday) {