From a5e9b8d91f2e9de8dd10d0222fb4e76127aff475 Mon Sep 17 00:00:00 2001
From: Andy Scherzinger <info@andy-scherzinger.de>
Date: Thu, 19 May 2022 12:07:40 +0200
Subject: [PATCH] replace getColumnIndex with getColumnIndexOrThrow

Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
---
 .../nextcloud/talk/activities/MainActivity.kt |  2 +-
 .../talk/controllers/ChatController.kt        |  4 +--
 .../talk/jobs/ContactAddressBookWorker.kt     | 25 +++++++++++--------
 .../com/nextcloud/talk/utils/ContactUtils.kt  |  2 +-
 .../java/com/nextcloud/talk/utils/UriUtils.kt |  2 +-
 5 files changed, 20 insertions(+), 15 deletions(-)

diff --git a/app/src/main/java/com/nextcloud/talk/activities/MainActivity.kt b/app/src/main/java/com/nextcloud/talk/activities/MainActivity.kt
index 9fb13ad74..cb60b731c 100644
--- a/app/src/main/java/com/nextcloud/talk/activities/MainActivity.kt
+++ b/app/src/main/java/com/nextcloud/talk/activities/MainActivity.kt
@@ -209,7 +209,7 @@ class MainActivity : BaseActivity(), ActionBarProvider {
             if (cursor != null) {
                 if (cursor.moveToFirst()) {
                     // userId @ server
-                    userId = cursor.getString(cursor.getColumnIndex(ContactsContract.Data.DATA1))
+                    userId = cursor.getString(cursor.getColumnIndexOrThrow(ContactsContract.Data.DATA1))
                 }
 
                 cursor.close()
diff --git a/app/src/main/java/com/nextcloud/talk/controllers/ChatController.kt b/app/src/main/java/com/nextcloud/talk/controllers/ChatController.kt
index d66e4135b..74a7d0869 100644
--- a/app/src/main/java/com/nextcloud/talk/controllers/ChatController.kt
+++ b/app/src/main/java/com/nextcloud/talk/controllers/ChatController.kt
@@ -1382,7 +1382,7 @@ class ChatController(args: Bundle) :
             val cursor: Cursor? = activity?.contentResolver!!.query(contactUri, null, null, null, null)
 
             if (cursor != null && cursor.moveToFirst()) {
-                val id = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID))
+                val id = cursor.getString(cursor.getColumnIndexOrThrow(ContactsContract.Contacts._ID))
                 val fileName = ContactUtils.getDisplayNameFromDeviceContact(context!!, id) + ".vcf"
                 val file = File(context?.cacheDir, fileName)
                 writeContactToVcfFile(cursor, file)
@@ -1427,7 +1427,7 @@ class ChatController(args: Bundle) :
     }
 
     private fun writeContactToVcfFile(cursor: Cursor, file: File) {
-        val lookupKey = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.LOOKUP_KEY))
+        val lookupKey = cursor.getString(cursor.getColumnIndexOrThrow(ContactsContract.Contacts.LOOKUP_KEY))
         val uri = Uri.withAppendedPath(ContactsContract.Contacts.CONTENT_VCARD_URI, lookupKey)
 
         val fd: AssetFileDescriptor = activity?.contentResolver!!.openAssetFileDescriptor(uri, "r")!!
diff --git a/app/src/main/java/com/nextcloud/talk/jobs/ContactAddressBookWorker.kt b/app/src/main/java/com/nextcloud/talk/jobs/ContactAddressBookWorker.kt
index 7c8843226..d05e760ed 100644
--- a/app/src/main/java/com/nextcloud/talk/jobs/ContactAddressBookWorker.kt
+++ b/app/src/main/java/com/nextcloud/talk/jobs/ContactAddressBookWorker.kt
@@ -175,9 +175,11 @@ class ContactAddressBookWorker(val context: Context, workerParameters: WorkerPar
             if (contactCursor.count > 0) {
                 contactCursor.moveToFirst()
                 for (i in 0 until contactCursor.count) {
-                    val id = contactCursor.getString(contactCursor.getColumnIndex(ContactsContract.Contacts._ID))
+                    val id = contactCursor.getString(contactCursor.getColumnIndexOrThrow(ContactsContract.Contacts._ID))
                     val lookup =
-                        contactCursor.getString(contactCursor.getColumnIndex(ContactsContract.Contacts.LOOKUP_KEY))
+                        contactCursor.getString(
+                            contactCursor.getColumnIndexOrThrow(ContactsContract.Contacts.LOOKUP_KEY)
+                        )
                     deviceContactsWithNumbers[lookup] = getPhoneNumbersFromDeviceContact(id)
                     contactCursor.moveToNext()
                 }
@@ -228,13 +230,16 @@ class ContactAddressBookWorker(val context: Context, workerParameters: WorkerPar
             if (rawContactsCursor.count > 0) {
                 while (rawContactsCursor.moveToNext()) {
                     val lookupKey =
-                        rawContactsCursor.getString(rawContactsCursor.getColumnIndex(ContactsContract.Data.LOOKUP_KEY))
-                    val contactId =
-                        rawContactsCursor.getString(rawContactsCursor.getColumnIndex(ContactsContract.Data.CONTACT_ID))
-
-                    if (contactsWithAssociatedPhoneNumbers == null || !contactsWithAssociatedPhoneNumbers.containsKey(
-                            lookupKey
+                        rawContactsCursor.getString(
+                            rawContactsCursor.getColumnIndexOrThrow(ContactsContract.Data.LOOKUP_KEY)
                         )
+                    val contactId =
+                        rawContactsCursor.getString(
+                            rawContactsCursor.getColumnIndexOrThrow(ContactsContract.Data.CONTACT_ID)
+                        )
+
+                    if (contactsWithAssociatedPhoneNumbers == null ||
+                        !contactsWithAssociatedPhoneNumbers.containsKey(lookupKey)
                     ) {
                         deleteLinkedAccount(contactId)
                     }
@@ -302,7 +307,7 @@ class ContactAddressBookWorker(val context: Context, workerParameters: WorkerPar
                 if (contactCursor.count > 0) {
                     contactCursor.moveToFirst()
 
-                    val id = contactCursor.getString(contactCursor.getColumnIndex(ContactsContract.Contacts._ID))
+                    val id = contactCursor.getString(contactCursor.getColumnIndexOrThrow(ContactsContract.Contacts._ID))
                     if (hasLinkedAccount(id)) {
                         return
                     }
@@ -416,7 +421,7 @@ class ContactAddressBookWorker(val context: Context, workerParameters: WorkerPar
             while (phonesNumbersCursor.moveToNext()) {
                 numbers.add(
                     phonesNumbersCursor.getString(
-                        phonesNumbersCursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)
+                        phonesNumbersCursor.getColumnIndexOrThrow(ContactsContract.CommonDataKinds.Phone.NUMBER)
                     )
                 )
             }
diff --git a/app/src/main/java/com/nextcloud/talk/utils/ContactUtils.kt b/app/src/main/java/com/nextcloud/talk/utils/ContactUtils.kt
index 3f65dfe0e..98e7e1d63 100644
--- a/app/src/main/java/com/nextcloud/talk/utils/ContactUtils.kt
+++ b/app/src/main/java/com/nextcloud/talk/utils/ContactUtils.kt
@@ -24,7 +24,7 @@ object ContactUtils {
             while (nameCursor.moveToNext()) {
                 displayName =
                     nameCursor.getString(
-                        nameCursor.getColumnIndex(ContactsContract.CommonDataKinds.StructuredName.DISPLAY_NAME)
+                        nameCursor.getColumnIndexOrThrow(ContactsContract.CommonDataKinds.StructuredName.DISPLAY_NAME)
                     )
             }
             nameCursor.close()
diff --git a/app/src/main/java/com/nextcloud/talk/utils/UriUtils.kt b/app/src/main/java/com/nextcloud/talk/utils/UriUtils.kt
index 71d0e05ff..101d715cf 100644
--- a/app/src/main/java/com/nextcloud/talk/utils/UriUtils.kt
+++ b/app/src/main/java/com/nextcloud/talk/utils/UriUtils.kt
@@ -36,7 +36,7 @@ class UriUtils {
                 val cursor: Cursor? = context.contentResolver.query(uri, null, null, null, null)
                 try {
                     if (cursor != null && cursor.moveToFirst()) {
-                        filename = cursor.getString(cursor.getColumnIndex(OpenableColumns.DISPLAY_NAME))
+                        filename = cursor.getString(cursor.getColumnIndexOrThrow(OpenableColumns.DISPLAY_NAME))
                     }
                 } finally {
                     cursor?.close()