diff --git a/res/values/non_localizable_custom.xml b/res/values/non_localizable_custom.xml
index bea0ab54c..3759e6aca 100644
--- a/res/values/non_localizable_custom.xml
+++ b/res/values/non_localizable_custom.xml
@@ -95,6 +95,8 @@
false
false
true
+ false
+ false
false
diff --git a/src/android/org/linphone/contacts/ContactDetailsFragment.java b/src/android/org/linphone/contacts/ContactDetailsFragment.java
index 9fa1490bb..e2e35dcba 100644
--- a/src/android/org/linphone/contacts/ContactDetailsFragment.java
+++ b/src/android/org/linphone/contacts/ContactDetailsFragment.java
@@ -212,6 +212,10 @@ public class ContactDetailsFragment extends Fragment implements OnClickListener
PresenceModel pm = contact.getFriend().getPresenceModelForUriOrTel(noa.getValue());
if (pm != null && pm.getBasicStatus().equals(PresenceBasicStatus.Open)) {
v.findViewById(R.id.friendLinphone).setVisibility(View.VISIBLE);
+ } else {
+ if (getResources().getBoolean(R.bool.hide_numbers_and_addresses_without_presence)) {
+ skip = true;
+ }
}
}
diff --git a/src/android/org/linphone/contacts/ContactsListFragment.java b/src/android/org/linphone/contacts/ContactsListFragment.java
index dc9a9f6ba..5ebf8a201 100644
--- a/src/android/org/linphone/contacts/ContactsListFragment.java
+++ b/src/android/org/linphone/contacts/ContactsListFragment.java
@@ -125,9 +125,19 @@ public class ContactsListFragment extends Fragment implements OnItemClickListene
}
});
+ if (getResources().getBoolean(R.bool.hide_non_linphone_contacts)) {
+ allContacts.setEnabled(false);
+ linphoneContacts.setEnabled(false);
+ onlyDisplayLinphoneContacts = true;
+ allContacts.setOnClickListener(null);
+ linphoneContacts.setOnClickListener(null);
+ linphoneContacts.setVisibility(View.INVISIBLE);
+ linphoneContactsSelected.setVisibility(View.INVISIBLE);
+ } else {
+ allContacts.setEnabled(onlyDisplayLinphoneContacts);
+ linphoneContacts.setEnabled(!allContacts.isEnabled());
+ }
newContact.setEnabled(LinphoneManager.getLc().getCallsNb() == 0);
- allContacts.setEnabled(onlyDisplayLinphoneContacts);
- linphoneContacts.setEnabled(!allContacts.isEnabled());
if (!ContactsManager.getInstance().contactsFetchedOnce()) {
contactsFetchInProgress.setVisibility(View.VISIBLE);
@@ -151,13 +161,10 @@ public class ContactsListFragment extends Fragment implements OnItemClickListene
searchField.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
-
}
@Override
- public void beforeTextChanged(CharSequence s, int start, int count,
- int after) {
-
+ public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
@@ -265,7 +272,7 @@ public class ContactsListFragment extends Fragment implements OnItemClickListene
}
private void changeContactsToggle() {
- if (onlyDisplayLinphoneContacts) {
+ if (onlyDisplayLinphoneContacts && !getResources().getBoolean(R.bool.hide_non_linphone_contacts)) {
allContacts.setEnabled(true);
allContactsSelected.setVisibility(View.INVISIBLE);
linphoneContacts.setEnabled(false);
@@ -328,7 +335,7 @@ public class ContactsListFragment extends Fragment implements OnItemClickListene
if (LinphoneActivity.isInstanciated()) {
LinphoneActivity.instance().selectMenu(FragmentsAvailable.CONTACTS_LIST);
LinphoneActivity.instance().hideTabBar(false);
- onlyDisplayLinphoneContacts = ContactsManager.getInstance().isLinphoneContactsPrefered();
+ onlyDisplayLinphoneContacts = ContactsManager.getInstance().isLinphoneContactsPrefered() || getResources().getBoolean(R.bool.hide_non_linphone_contacts);
}
changeContactsToggle();
invalidate();
@@ -362,7 +369,7 @@ public class ContactsListFragment extends Fragment implements OnItemClickListene
@Override
public void onDeleteSelection(Object[] objectsToDelete) {
- ArrayList ids = new ArrayList();
+ ArrayList ids = new ArrayList<>();
int size = mContactAdapter.getSelectedItemCount();
for (int i = size - 1; i >= 0; i--) {
LinphoneContact contact = (LinphoneContact) objectsToDelete[i];