diff --git a/src/org/linphone/ContactsFragment.java b/src/org/linphone/ContactsFragment.java index 0cfffb40b..73b3c8db9 100644 --- a/src/org/linphone/ContactsFragment.java +++ b/src/org/linphone/ContactsFragment.java @@ -82,14 +82,10 @@ public class ContactsFragment extends Fragment implements OnClickListener, OnIte int id = v.getId(); if (id == R.id.allContacts) { - allContacts.setEnabled(false); - linphoneContacts.setEnabled(true); onlyDisplayLinphoneContacts = false; changeContactsAdapter(); } else if (id == R.id.linphoneContacts) { - allContacts.setEnabled(true); - linphoneContacts.setEnabled(false); onlyDisplayLinphoneContacts = true; changeContactsAdapter(); @@ -101,6 +97,8 @@ public class ContactsFragment extends Fragment implements OnClickListener, OnIte } private void changeContactsAdapter() { + changeContactsToggle(); + Cursor allContactsCursor = LinphoneActivity.instance().getAllContactsCursor(); Cursor sipContactsCursor = LinphoneActivity.instance().getSIPContactsCursor(); @@ -111,6 +109,17 @@ public class ContactsFragment extends Fragment implements OnClickListener, OnIte indexer = new AlphabetIndexer(allContactsCursor, Compatibility.getCursorDisplayNameColumnIndex(allContactsCursor), " ABCDEFGHIJKLMNOPQRSTUVWXYZ"); contactsList.setAdapter(new ContactsListAdapter(LinphoneActivity.instance().getAllContacts(), allContactsCursor)); } + LinphoneActivity.instance().setLinphoneContactsPrefered(onlyDisplayLinphoneContacts); + } + + private void changeContactsToggle() { + if (onlyDisplayLinphoneContacts) { + allContacts.setEnabled(true); + linphoneContacts.setEnabled(false); + } else { + allContacts.setEnabled(false); + linphoneContacts.setEnabled(true); + } } @Override @@ -124,6 +133,7 @@ public class ContactsFragment extends Fragment implements OnClickListener, OnIte super.onResume(); if (LinphoneActivity.isInstanciated()) { LinphoneActivity.instance().selectMenu(FragmentsAvailable.CONTACTS); + onlyDisplayLinphoneContacts = LinphoneActivity.instance().isLinphoneContactsPrefered(); } if (contactsList.getAdapter() == null) { diff --git a/src/org/linphone/LinphoneActivity.java b/src/org/linphone/LinphoneActivity.java index 3305d76aa..eb8a58ba6 100644 --- a/src/org/linphone/LinphoneActivity.java +++ b/src/org/linphone/LinphoneActivity.java @@ -83,6 +83,7 @@ public class LinphoneActivity extends FragmentActivity implements OnClickListene private Fragment dialerFragment, messageListenerFragment; private SavedState dialerSavedState; private ChatStorage chatStorage; + private boolean preferLinphoneContacts = false; private Handler mHandler = new Handler(); private List contactList, sipContactList; private Cursor contactCursor, sipContactCursor; @@ -584,6 +585,14 @@ public class LinphoneActivity extends FragmentActivity implements OnClickListene return sipContactCursor; } + public void setLinphoneContactsPrefered(boolean isPrefered) { + preferLinphoneContacts = isPrefered; + } + + public boolean isLinphoneContactsPrefered() { + return preferLinphoneContacts; + } + private void prepareContactsInBackground() { contactCursor = Compatibility.getContactsCursor(getContentResolver()); sipContactCursor = Compatibility.getSIPContactsCursor(getContentResolver());