Prevent crash if exception is thrown during contacts fetching + fixed cast issue

This commit is contained in:
Sylvain Berfini 2022-02-11 10:40:54 +01:00
parent 6ef3dc288e
commit 197b45536c
2 changed files with 16 additions and 10 deletions

View file

@ -24,7 +24,7 @@ import android.view.View
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import org.linphone.LinphoneApplication.Companion.coreContext import org.linphone.LinphoneApplication.Companion.coreContext
import org.linphone.R import org.linphone.R
import org.linphone.activities.assistant.AssistantActivity import org.linphone.activities.SnackBarActivity
import org.linphone.activities.assistant.viewmodels.* import org.linphone.activities.assistant.viewmodels.*
import org.linphone.activities.navigateToEchoCancellerCalibration import org.linphone.activities.navigateToEchoCancellerCalibration
import org.linphone.activities.navigateToPhoneAccountValidation import org.linphone.activities.navigateToPhoneAccountValidation
@ -99,7 +99,7 @@ class PhoneAccountLinkingFragment : AbstractPhoneFragment<AssistantPhoneAccountL
viewLifecycleOwner viewLifecycleOwner
) { ) {
it.consume { message -> it.consume { message ->
(requireActivity() as AssistantActivity).showSnackBar(message) (requireActivity() as SnackBarActivity).showSnackBar(message)
} }
} }

View file

@ -109,7 +109,9 @@ class AsyncContactsLoader(private val context: Context) :
Log.i("[Contacts Loader] Only fetching contacts in default directory") Log.i("[Contacts Loader] Only fetching contacts in default directory")
selection = ContactsContract.Data.IN_DEFAULT_DIRECTORY + " == 1" selection = ContactsContract.Data.IN_DEFAULT_DIRECTORY + " == 1"
} }
val cursor: Cursor? = context.contentResolver
val cursor: Cursor? = try {
context.contentResolver
.query( .query(
ContactsContract.Data.CONTENT_URI, ContactsContract.Data.CONTENT_URI,
projection, projection,
@ -117,6 +119,10 @@ class AsyncContactsLoader(private val context: Context) :
null, null,
null null
) )
} catch (e: Exception) {
Log.e("[Contacts Loader] Failed to get contacts cursor: $e")
null
}
if (cursor != null) { if (cursor != null) {
Log.i("[Contacts Loader] Found ${cursor.count} entries in cursor") Log.i("[Contacts Loader] Found ${cursor.count} entries in cursor")