Small improvements regarding contacts

This commit is contained in:
Sylvain Berfini 2022-03-04 13:49:41 +01:00
parent 7f035cccbc
commit fc901e8131
3 changed files with 14 additions and 3 deletions

View file

@ -88,7 +88,6 @@ class ContactsListViewModel : ViewModel() {
fun updateContactsList(clearCache: Boolean) { fun updateContactsList(clearCache: Boolean) {
val filterValue = filter.value.orEmpty() val filterValue = filter.value.orEmpty()
contactsList.value.orEmpty().forEach(ContactViewModel::destroy)
if (clearCache || ( if (clearCache || (
previousFilter.isNotEmpty() && ( previousFilter.isNotEmpty() && (
@ -122,6 +121,8 @@ class ContactsListViewModel : ViewModel() {
private fun processMagicSearchResults(results: Array<SearchResult>) { private fun processMagicSearchResults(results: Array<SearchResult>) {
Log.i("[Contacts] Processing ${results.size} results") Log.i("[Contacts] Processing ${results.size} results")
contactsList.value.orEmpty().forEach(ContactViewModel::destroy)
val list = arrayListOf<ContactViewModel>() val list = arrayListOf<ContactViewModel>()
for (result in results) { for (result in results) {
val contact = searchMatchingContact(result) ?: Contact(searchResult = result) val contact = searchMatchingContact(result) ?: Contact(searchResult = result)
@ -230,8 +231,9 @@ class ContactsListViewModel : ViewModel() {
if (contact != null) return contact if (contact != null) return contact
} }
if (searchResult.phoneNumber != null) { val phoneNumber = searchResult.phoneNumber
return coreContext.contactsManager.findContactByPhoneNumber(searchResult.phoneNumber.orEmpty()) if (phoneNumber != null) {
return coreContext.contactsManager.findContactByPhoneNumber(phoneNumber)
} }
return null return null

View file

@ -59,6 +59,7 @@ open class Contact() : Comparable<Contact> {
constructor(searchResult: SearchResult) : this() { constructor(searchResult: SearchResult) : this() {
friend = searchResult.friend friend = searchResult.friend
fullName = friend?.name
addAddressAndPhoneNumberFromSearchResult(searchResult) addAddressAndPhoneNumberFromSearchResult(searchResult)
} }

View file

@ -233,16 +233,24 @@ class ContactsManager(private val context: Context) {
} }
val address = friend.address val address = friend.address
var potentialContact: Contact? = null
if (address != null) { if (address != null) {
val friends = coreContext.core.findFriends(address) val friends = coreContext.core.findFriends(address)
for (f in friends) { for (f in friends) {
if (f.name == friend.name) { if (f.name == friend.name) {
val contact: Contact? = f.userData as? Contact val contact: Contact? = f.userData as? Contact
if (contact != null) return contact if (contact != null) return contact
} else {
val contact: Contact? = f.userData as? Contact
if (contact != null) potentialContact = contact
} }
} }
} }
if (potentialContact != null) {
return potentialContact
}
for (list in coreContext.core.friendsLists) { for (list in coreContext.core.friendsLists) {
for (f in list.friends) { for (f in list.friends) {
if (f.name == friend.name) { if (f.name == friend.name) {