From 100ab5b679fd36e3420d61553550266ca23ddead Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Thu, 14 Apr 2016 12:10:52 +0200 Subject: [PATCH] Added back contacts search filter --- src/org/linphone/ContactsListFragment.java | 4 ++-- src/org/linphone/ContactsManager.java | 23 ++++++++++++++++++++++ 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/src/org/linphone/ContactsListFragment.java b/src/org/linphone/ContactsListFragment.java index 35dfae08d..df9abcefd 100644 --- a/src/org/linphone/ContactsListFragment.java +++ b/src/org/linphone/ContactsListFragment.java @@ -325,10 +325,10 @@ public class ContactsListFragment extends Fragment implements OnClickListener, O if (onlyDisplayLinphoneContacts) { contactsList.setChoiceMode(AbsListView.CHOICE_MODE_MULTIPLE); - contactsList.setAdapter(new ContactsListAdapter(ContactsManager.getInstance().getSIPContacts())); + contactsList.setAdapter(new ContactsListAdapter(ContactsManager.getInstance().getSIPContacts(search))); } else { contactsList.setChoiceMode(AbsListView.CHOICE_MODE_MULTIPLE); - contactsList.setAdapter(new ContactsListAdapter(ContactsManager.getInstance().getContacts())); + contactsList.setAdapter(new ContactsListAdapter(ContactsManager.getInstance().getContacts(search))); } } diff --git a/src/org/linphone/ContactsManager.java b/src/org/linphone/ContactsManager.java index d6725936d..ba258b316 100644 --- a/src/org/linphone/ContactsManager.java +++ b/src/org/linphone/ContactsManager.java @@ -22,6 +22,7 @@ package org.linphone; import java.util.ArrayList; import java.util.Collections; import java.util.List; +import java.util.Locale; import org.linphone.compatibility.Compatibility; import org.linphone.core.LinphoneAddress; @@ -119,6 +120,28 @@ public class ContactsManager extends ContentObserver { return sipContacts; } + public synchronized List getContacts(String search) { + search = search.toLowerCase(Locale.getDefault()); + List searchContacts = new ArrayList(); + for (LinphoneContact contact : contacts) { + if (contact.getFullName().toLowerCase(Locale.getDefault()).contains(search)) { + searchContacts.add(contact); + } + } + return searchContacts; + } + + public synchronized List getSIPContacts(String search) { + search = search.toLowerCase(Locale.getDefault()); + List searchContacts = new ArrayList(); + for (LinphoneContact contact : sipContacts) { + if (contact.getFullName().toLowerCase(Locale.getDefault()).contains(search)) { + searchContacts.add(contact); + } + } + return searchContacts; + } + public void enableContactsAccess() { hasContactAccess = true; }