moving some contact related things into Commons

This commit is contained in:
tibbi 2020-05-06 23:41:12 +02:00
parent c17d78b871
commit 605f9e845a
9 changed files with 44 additions and 166 deletions

View file

@ -7,13 +7,17 @@ import android.view.Menu
import android.view.WindowManager
import com.reddit.indicatorfastscroll.FastScrollItemIndicator
import com.simplemobiletools.commons.extensions.*
import com.simplemobiletools.commons.helpers.ContactsHelper
import com.simplemobiletools.commons.helpers.PERMISSION_READ_CONTACTS
import com.simplemobiletools.commons.helpers.ensureBackgroundThread
import com.simplemobiletools.commons.models.SimpleContact
import com.simplemobiletools.smsmessenger.R
import com.simplemobiletools.smsmessenger.adapters.ContactsAdapter
import com.simplemobiletools.smsmessenger.extensions.*
import com.simplemobiletools.smsmessenger.extensions.config
import com.simplemobiletools.smsmessenger.extensions.getSuggestedContacts
import com.simplemobiletools.smsmessenger.extensions.getThreadId
import com.simplemobiletools.smsmessenger.extensions.loadImage
import com.simplemobiletools.smsmessenger.helpers.*
import com.simplemobiletools.smsmessenger.models.Contact
import kotlinx.android.synthetic.main.activity_conversation.*
import kotlinx.android.synthetic.main.item_suggested_contact.view.*
import java.net.URLDecoder
@ -21,7 +25,7 @@ import java.util.*
import kotlin.collections.ArrayList
class NewConversationActivity : SimpleActivity() {
private var allContacts = ArrayList<Contact>()
private var allContacts = ArrayList<SimpleContact>()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
@ -57,7 +61,7 @@ class NewConversationActivity : SimpleActivity() {
fetchContacts()
new_conversation_address.onTextChangeListener {
val searchString = it
val filteredContacts = ArrayList<Contact>()
val filteredContacts = ArrayList<SimpleContact>()
allContacts.forEach {
if (it.phoneNumber.contains(searchString, true) || it.name.contains(searchString, true)) {
filteredContacts.add(it)
@ -100,7 +104,7 @@ class NewConversationActivity : SimpleActivity() {
private fun fetchContacts() {
fillSuggestedContacts {
getAvailableContacts {
ContactsHelper(this).getAvailableContacts {
allContacts = it
runOnUiThread {
@ -110,7 +114,7 @@ class NewConversationActivity : SimpleActivity() {
}
}
private fun setupAdapter(contacts: ArrayList<Contact>) {
private fun setupAdapter(contacts: ArrayList<SimpleContact>) {
val hasContacts = contacts.isNotEmpty()
contacts_list.beVisibleIf(hasContacts)
no_contacts_placeholder.beVisibleIf(!hasContacts)
@ -123,7 +127,7 @@ class NewConversationActivity : SimpleActivity() {
ContactsAdapter(this, contacts, contacts_list, null) {
hideKeyboard()
launchThreadActivity((it as Contact).phoneNumber, it.name)
launchThreadActivity((it as SimpleContact).phoneNumber, it.name)
}.apply {
contacts_list.adapter = this
}
@ -159,7 +163,7 @@ class NewConversationActivity : SimpleActivity() {
}
}
private fun setupLetterFastscroller(contacts: ArrayList<Contact>) {
private fun setupLetterFastscroller(contacts: ArrayList<SimpleContact>) {
contacts_letter_fastscroller.setupWithRecyclerView(contacts_list, { position ->
try {
val name = contacts[position].name

View file

@ -30,9 +30,11 @@ import com.klinker.android.send_message.Settings
import com.klinker.android.send_message.Transaction
import com.simplemobiletools.commons.dialogs.ConfirmationDialog
import com.simplemobiletools.commons.extensions.*
import com.simplemobiletools.commons.helpers.ContactsHelper
import com.simplemobiletools.commons.helpers.PERMISSION_READ_PHONE_STATE
import com.simplemobiletools.commons.helpers.ensureBackgroundThread
import com.simplemobiletools.commons.helpers.isNougatPlus
import com.simplemobiletools.commons.models.SimpleContact
import com.simplemobiletools.smsmessenger.R
import com.simplemobiletools.smsmessenger.adapters.AutoCompleteTextViewAdapter
import com.simplemobiletools.smsmessenger.adapters.ThreadAdapter
@ -54,7 +56,7 @@ class ThreadActivity : SimpleActivity() {
private var currentSIMCardIndex = 0
private var threadItems = ArrayList<ThreadItem>()
private var bus: EventBus? = null
private var participants = ArrayList<Contact>()
private var participants = ArrayList<SimpleContact>()
private var messages = ArrayList<Message>()
private val availableSIMCards = ArrayList<SIMCard>()
private var attachmentUris = LinkedHashSet<Uri>()
@ -104,7 +106,7 @@ class ThreadActivity : SimpleActivity() {
return@ensureBackgroundThread
}
val contact = Contact(0, name, "", number)
val contact = SimpleContact(0, name, "", number)
participants.add(contact)
}
@ -200,7 +202,7 @@ class ThreadActivity : SimpleActivity() {
thread_messages_list.adapter = adapter
}
getAvailableContacts {
ContactsHelper(this).getAvailableContacts {
runOnUiThread {
val adapter = AutoCompleteTextViewAdapter(this, it)
add_contact_or_number.setAdapter(adapter)
@ -219,7 +221,7 @@ class ThreadActivity : SimpleActivity() {
confirm_inserted_number.setOnClickListener {
val number = add_contact_or_number.value
val contact = Contact(number.hashCode(), number, "", number)
val contact = SimpleContact(number.hashCode(), number, "", number)
addSelectedContact(contact)
}
}
@ -358,7 +360,7 @@ class ThreadActivity : SimpleActivity() {
showSelectedContact(views)
}
private fun addSelectedContact(contact: Contact) {
private fun addSelectedContact(contact: SimpleContact) {
add_contact_or_number.setText("")
if (participants.map { it.id }.contains(contact.id)) {
return
@ -555,7 +557,7 @@ class ThreadActivity : SimpleActivity() {
}
private fun removeSelectedContact(id: Int) {
participants = participants.filter { it.id != id }.toMutableList() as ArrayList<Contact>
participants = participants.filter { it.id != id }.toMutableList() as ArrayList<SimpleContact>
showSelectedContacts()
}