From a3ad1105e24abf9c0b04f40bd7fe1394dab202e1 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Fri, 29 Apr 2016 10:06:03 +0200 Subject: [PATCH] Fixed crash when contact doesn't have a name --- src/org/linphone/ContactsListFragment.java | 12 ++++++++++-- src/org/linphone/LinphoneContact.java | 20 ++++++++++---------- 2 files changed, 20 insertions(+), 12 deletions(-) diff --git a/src/org/linphone/ContactsListFragment.java b/src/org/linphone/ContactsListFragment.java index df9abcefd..f40336f64 100644 --- a/src/org/linphone/ContactsListFragment.java +++ b/src/org/linphone/ContactsListFragment.java @@ -431,7 +431,11 @@ public class ContactsListFragment extends Fragment implements OnClickListener, O String prevLetter = null; for (int i = 0; i < contacts.size(); i++) { LinphoneContact contact = contacts.get(i); - String firstLetter = contact.getFullName().substring(0, 1).toUpperCase(Locale.getDefault()); + String fullName = contact.getFullName(); + if (fullName == null || fullName.isEmpty()) { + continue; + } + String firstLetter = fullName.substring(0, 1).toUpperCase(Locale.getDefault()); if (!firstLetter.equals(prevLetter)) { prevLetter = firstLetter; map.put(firstLetter, i); @@ -561,7 +565,11 @@ public class ContactsListFragment extends Fragment implements OnClickListener, O return 0; } LinphoneContact contact = contacts.get(position); - String letter = contact.getFullName().substring(0, 1); + String fullName = contact.getFullName(); + if (fullName == null || fullName.isEmpty()) { + return 0; + } + String letter = fullName.substring(0, 1); return sectionsList.indexOf(letter); } } diff --git a/src/org/linphone/LinphoneContact.java b/src/org/linphone/LinphoneContact.java index 2a77c1660..6efda5d61 100644 --- a/src/org/linphone/LinphoneContact.java +++ b/src/org/linphone/LinphoneContact.java @@ -368,16 +368,7 @@ public class LinphoneContact implements Serializable, Comparable(); hasSipAddress = false; - if (!isAndroidContact() && isLinphoneFriend()) { - fullName = friend.getName(); - thumbnailUri = null; - photoUri = null; - LinphoneAddress addr = friend.getAddress(); - if (addr != null) { - addresses.add(new LinphoneNumberOrAddress(addr.asStringUriOnly(), true)); - hasSipAddress = true; - } - } else if (isAndroidContact()) { + if (isAndroidContact()) { String id = getAndroidId(); getContactNames(id); setThumbnailUri(getContactPictureUri(id)); @@ -416,6 +407,15 @@ public class LinphoneContact implements Serializable, Comparable