Fixed no contacts label not visible and spinner always visible if no contacts

This commit is contained in:
Sylvain Berfini 2018-10-15 12:55:31 +02:00
parent 4ed7ea0fa5
commit 4d31d79c8d
2 changed files with 19 additions and 11 deletions

View file

@ -128,7 +128,16 @@ public class ContactsListFragment extends Fragment implements OnItemClickListene
newContact.setEnabled(LinphoneManager.getLc().getCallsNb() == 0);
allContacts.setEnabled(onlyDisplayLinphoneContacts);
linphoneContacts.setEnabled(!allContacts.isEnabled());
contactsFetchInProgress.setVisibility(View.VISIBLE);
if (!ContactsManager.getInstance().contactsFetchedOnce()) {
contactsFetchInProgress.setVisibility(View.VISIBLE);
} else {
if (!onlyDisplayLinphoneContacts && ContactsManager.getInstance().getContacts().size() == 0) {
noContact.setVisibility(View.VISIBLE);
} else if (onlyDisplayLinphoneContacts && ContactsManager.getInstance().getSIPContacts().size() == 0) {
noSipContact.setVisibility(View.VISIBLE);
}
}
clearSearchField = view.findViewById(R.id.clearSearchField);
clearSearchField.setOnClickListener(new View.OnClickListener() {
@ -165,9 +174,6 @@ public class ContactsListFragment extends Fragment implements OnItemClickListene
dividerItemDecoration.setDrawable(getActivity().getResources().getDrawable(R.drawable.divider));
contactsList.addItemDecoration(dividerItemDecoration);
contactsFetchInProgress = view.findViewById(R.id.contactsFetchInProgress);
contactsFetchInProgress.setVisibility(View.VISIBLE);
return view;
}
@ -249,9 +255,12 @@ public class ContactsListFragment extends Fragment implements OnItemClickListene
mContactAdapter.notifyDataSetChanged();
if (mContactAdapter.getItemCount() > 0) {
contactsFetchInProgress.setVisibility(View.GONE);
if (!onlyDisplayLinphoneContacts && mContactAdapter.getItemCount() == 0) {
noContact.setVisibility(View.VISIBLE);
} else if (onlyDisplayLinphoneContacts && mContactAdapter.getItemCount() == 0) {
noSipContact.setVisibility(View.VISIBLE);
}
ContactsManager.getInstance().setLinphoneContactsPrefered(onlyDisplayLinphoneContacts);
}
@ -316,10 +325,6 @@ public class ContactsListFragment extends Fragment implements OnItemClickListene
sipAddressToAdd = null;
}
if (searchField != null && searchField.getText().toString().length() > 0) {
if (contactsFetchInProgress != null) contactsFetchInProgress.setVisibility(View.GONE);
}
if (LinphoneActivity.isInstanciated()) {
LinphoneActivity.instance().selectMenu(FragmentsAvailable.CONTACTS_LIST);
LinphoneActivity.instance().hideTabBar(false);

View file

@ -78,6 +78,7 @@ public class ContactsManager extends ContentObserver implements FriendListListen
private Activity mActivity;
private HashMap<String, LinphoneContact> mAndroidContactsCache;
private Bitmap defaultAvatar;
private boolean mContactsFetchedOnce = false;
private static ArrayList<ContactsUpdatedListener> contactsUpdatedListeners;
@ -117,7 +118,7 @@ public class ContactsManager extends ContentObserver implements FriendListListen
}
public boolean contactsFetchedOnce() {
return mContacts.size() > 0;
return mContactsFetchedOnce;
}
public Bitmap getDefaultAvatarBitmap() {
@ -425,6 +426,8 @@ public class ContactsManager extends ContentObserver implements FriendListListen
@Override
public void onLoadFinished(@NonNull Loader<Cursor> loader, Cursor c) {
mContactsFetchedOnce = true;
Date contactsTime = new Date();
List<LinphoneContact> contacts = new ArrayList<>();
List<LinphoneContact> sipContacts = new ArrayList<>();