From 2a638d29a335f7b0bd72bc1e7e8efd91f6d969b7 Mon Sep 17 00:00:00 2001 From: Moez Bhatti Date: Fri, 6 Apr 2018 17:31:54 -0400 Subject: [PATCH] Allow nullable cursor when querying for contact uri --- data/src/main/java/repository/ContactRepositoryImpl.kt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/data/src/main/java/repository/ContactRepositoryImpl.kt b/data/src/main/java/repository/ContactRepositoryImpl.kt index 76d4d489..b62fbc32 100644 --- a/data/src/main/java/repository/ContactRepositoryImpl.kt +++ b/data/src/main/java/repository/ContactRepositoryImpl.kt @@ -28,6 +28,7 @@ import io.reactivex.schedulers.Schedulers import io.realm.Realm import model.Contact import util.extensions.asFlowable +import util.extensions.mapNotNull import javax.inject.Inject import javax.inject.Singleton @@ -37,7 +38,8 @@ class ContactRepositoryImpl @Inject constructor(val context: Context) : ContactR override fun findContactUri(address: String): Single { return Flowable.just(address) .map { Uri.withAppendedPath(ContactsContract.PhoneLookup.CONTENT_FILTER_URI, Uri.encode(address)) } - .flatMap { uri -> context.contentResolver.query(uri, arrayOf(ContactsContract.PhoneLookup._ID), null, null, null).asFlowable() } + .mapNotNull { uri -> context.contentResolver.query(uri, arrayOf(ContactsContract.PhoneLookup._ID), null, null, null) } + .flatMap { cursor -> cursor.asFlowable() } .firstOrError() .map { cursor -> cursor.getString(cursor.getColumnIndexOrThrow(ContactsContract.PhoneLookup._ID)) } .map { id -> Uri.withAppendedPath(ContactsContract.Contacts.CONTENT_URI, id) }