From 1ff455bbaedf19de2b9507da2842f5cba8c17db1 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Tue, 24 Oct 2017 11:27:54 +0200 Subject: [PATCH] Fixed duplicated entry while creating a chat room --- .../org/linphone/chat/ChatCreationFragment.java | 2 +- .../contacts/SearchContactsListAdapter.java | 13 +++++++++++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/android/org/linphone/chat/ChatCreationFragment.java b/src/android/org/linphone/chat/ChatCreationFragment.java index 94d1e33ef..810f78f43 100644 --- a/src/android/org/linphone/chat/ChatCreationFragment.java +++ b/src/android/org/linphone/chat/ChatCreationFragment.java @@ -135,7 +135,7 @@ public class ChatCreationFragment extends Fragment implements View.OnClickListen @Override public void afterTextChanged(Editable s) { - searchAdapter.searchContacts(searchField.getText().toString(), contactsList); + searchAdapter.searchContacts(searchField.getText().toString(), contactsList); } }); diff --git a/src/android/org/linphone/contacts/SearchContactsListAdapter.java b/src/android/org/linphone/contacts/SearchContactsListAdapter.java index 1f635cf79..02155d809 100644 --- a/src/android/org/linphone/contacts/SearchContactsListAdapter.java +++ b/src/android/org/linphone/contacts/SearchContactsListAdapter.java @@ -114,7 +114,7 @@ public class SearchContactsListAdapter extends BaseAdapter { } public List getContactsList() { - List list = new ArrayList(); + List list = new ArrayList<>(); if (ContactsManager.getInstance().hasContacts()) { for (Address addr : LinphoneManager.getLc().findContactsByChar("", mOnlySipContact)) { LinphoneContact cont = ContactsManager.getInstance().findContactFromAddress(addr); @@ -163,11 +163,14 @@ public class SearchContactsListAdapter extends BaseAdapter { } List result = new ArrayList<>(); + String searchAddress = "sip:" + search + "@" + LinphoneManager.getLc().getDefaultProxyConfig().getDomain(); - result.add(new ContactAddress(null, searchAddress, false)); + + boolean searchFound = false; if (search != null) { for (ContactAddress c : (search.length() < oldSize) ? getContactsList() : getContacts()) { String address = c.getAddress(); + if (address.equals(searchAddress)) searchFound = true; if (address.startsWith("sip:")) address = address.substring(4); if (c.getContact() != null && c.getContact().getFullName() != null && c.getContact().getFullName().toLowerCase(Locale.getDefault()).startsWith(search.toLowerCase(Locale.getDefault())) @@ -176,6 +179,12 @@ public class SearchContactsListAdapter extends BaseAdapter { } } } + if (!searchFound) { + LinphoneContact searchContact = new LinphoneContact(); + searchContact.setFullName(search); + result.add(new ContactAddress(searchContact, searchAddress, false)); + } + oldSize = search.length(); contacts = result; resultContactsSearch.setAdapter(this);