mirror of
https://github.com/SimpleMobileTools/Simple-SMS-Messenger.git
synced 2025-02-18 04:30:55 +01:00
make getAvailableContacts asynchronous
This commit is contained in:
parent
fdf4957da2
commit
97299a0900
@ -1,19 +1,15 @@
|
|||||||
package com.simplemobiletools.smsmessenger.activities
|
package com.simplemobiletools.smsmessenger.activities
|
||||||
|
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.database.Cursor
|
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.provider.ContactsContract
|
|
||||||
import android.provider.ContactsContract.CommonDataKinds
|
|
||||||
import android.text.TextUtils
|
|
||||||
import android.view.WindowManager
|
import android.view.WindowManager
|
||||||
import com.simplemobiletools.commons.extensions.*
|
import com.simplemobiletools.commons.extensions.hideKeyboard
|
||||||
|
import com.simplemobiletools.commons.extensions.onTextChangeListener
|
||||||
|
import com.simplemobiletools.commons.extensions.updateTextColors
|
||||||
import com.simplemobiletools.commons.helpers.PERMISSION_READ_CONTACTS
|
import com.simplemobiletools.commons.helpers.PERMISSION_READ_CONTACTS
|
||||||
import com.simplemobiletools.smsmessenger.R
|
import com.simplemobiletools.smsmessenger.R
|
||||||
import com.simplemobiletools.smsmessenger.adapters.ContactsAdapter
|
import com.simplemobiletools.smsmessenger.adapters.ContactsAdapter
|
||||||
import com.simplemobiletools.smsmessenger.extensions.getAvailableContacts
|
import com.simplemobiletools.smsmessenger.extensions.getAvailableContacts
|
||||||
import com.simplemobiletools.smsmessenger.extensions.getContactNames
|
|
||||||
import com.simplemobiletools.smsmessenger.extensions.getContactPhoneNumbers
|
|
||||||
import com.simplemobiletools.smsmessenger.extensions.getThreadId
|
import com.simplemobiletools.smsmessenger.extensions.getThreadId
|
||||||
import com.simplemobiletools.smsmessenger.helpers.THREAD_ID
|
import com.simplemobiletools.smsmessenger.helpers.THREAD_ID
|
||||||
import com.simplemobiletools.smsmessenger.helpers.THREAD_NAME
|
import com.simplemobiletools.smsmessenger.helpers.THREAD_NAME
|
||||||
@ -40,8 +36,12 @@ class NewMessageActivity : SimpleActivity() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun initContacts() {
|
private fun initContacts() {
|
||||||
allContacts = getAvailableContacts()
|
getAvailableContacts {
|
||||||
|
allContacts = it
|
||||||
|
runOnUiThread {
|
||||||
setupAdapter(allContacts)
|
setupAdapter(allContacts)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
new_message_to.onTextChangeListener {
|
new_message_to.onTextChangeListener {
|
||||||
val searchString = it
|
val searchString = it
|
||||||
|
@ -10,6 +10,7 @@ import android.provider.Telephony
|
|||||||
import android.text.TextUtils
|
import android.text.TextUtils
|
||||||
import com.simplemobiletools.commons.extensions.*
|
import com.simplemobiletools.commons.extensions.*
|
||||||
import com.simplemobiletools.commons.helpers.PERMISSION_READ_CONTACTS
|
import com.simplemobiletools.commons.helpers.PERMISSION_READ_CONTACTS
|
||||||
|
import com.simplemobiletools.commons.helpers.ensureBackgroundThread
|
||||||
import com.simplemobiletools.commons.helpers.isMarshmallowPlus
|
import com.simplemobiletools.commons.helpers.isMarshmallowPlus
|
||||||
import com.simplemobiletools.smsmessenger.helpers.Config
|
import com.simplemobiletools.smsmessenger.helpers.Config
|
||||||
import com.simplemobiletools.smsmessenger.models.Contact
|
import com.simplemobiletools.smsmessenger.models.Contact
|
||||||
@ -179,7 +180,8 @@ fun Context.getPersonsName(id: Int): String? {
|
|||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
|
|
||||||
fun Context.getAvailableContacts(): ArrayList<Contact> {
|
fun Context.getAvailableContacts(callback: (ArrayList<Contact>) -> Unit) {
|
||||||
|
ensureBackgroundThread {
|
||||||
val names = getContactNames()
|
val names = getContactNames()
|
||||||
var allContacts = getContactPhoneNumbers()
|
var allContacts = getContactPhoneNumbers()
|
||||||
allContacts.forEach {
|
allContacts.forEach {
|
||||||
@ -204,7 +206,8 @@ fun Context.getAvailableContacts(): ArrayList<Contact> {
|
|||||||
}.toMutableList() as ArrayList<Contact>
|
}.toMutableList() as ArrayList<Contact>
|
||||||
|
|
||||||
allContacts.sortBy { it.name.normalizeString().toLowerCase() }
|
allContacts.sortBy { it.name.normalizeString().toLowerCase() }
|
||||||
return allContacts
|
callback(allContacts)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun Context.getNameFromPhoneNumber(number: String): Int? {
|
fun Context.getNameFromPhoneNumber(number: String): Int? {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user