Prevent crash if contact doesn't have a display name
This commit is contained in:
parent
1a01d41db4
commit
b4158e542d
1 changed files with 19 additions and 0 deletions
|
@ -47,6 +47,7 @@ import android.support.annotation.Nullable;
|
||||||
import org.linphone.LinphoneManager;
|
import org.linphone.LinphoneManager;
|
||||||
import org.linphone.LinphonePreferences;
|
import org.linphone.LinphonePreferences;
|
||||||
import org.linphone.LinphoneService;
|
import org.linphone.LinphoneService;
|
||||||
|
import org.linphone.LinphoneUtils;
|
||||||
import org.linphone.R;
|
import org.linphone.R;
|
||||||
import org.linphone.core.Address;
|
import org.linphone.core.Address;
|
||||||
import org.linphone.core.Core;
|
import org.linphone.core.Core;
|
||||||
|
@ -463,6 +464,9 @@ public class ContactsManager extends ContentObserver implements FriendListListen
|
||||||
contact.setFullName(displayName);
|
contact.setFullName(displayName);
|
||||||
mAndroidContactsCache.put(id, contact);
|
mAndroidContactsCache.put(id, contact);
|
||||||
}
|
}
|
||||||
|
if (contact.getFullName() == null && displayName != null) {
|
||||||
|
contact.setFullName(displayName);
|
||||||
|
}
|
||||||
|
|
||||||
if (ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE.equals(mime)) {
|
if (ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE.equals(mime)) {
|
||||||
contact.addNumberOrAddress(new LinphoneNumberOrAddress(data1, data4));
|
contact.addNumberOrAddress(new LinphoneNumberOrAddress(data1, data4));
|
||||||
|
@ -499,6 +503,21 @@ public class ContactsManager extends ContentObserver implements FriendListListen
|
||||||
|
|
||||||
for (LinphoneContact contact : contacts) {
|
for (LinphoneContact contact : contacts) {
|
||||||
// Create the Friends matching the native contacts
|
// Create the Friends matching the native contacts
|
||||||
|
if (contact.getFullName() == null) {
|
||||||
|
if (contact.hasAddress()) {
|
||||||
|
for (LinphoneNumberOrAddress noa : contact.getNumbersOrAddresses()) {
|
||||||
|
if (noa.isSIPAddress()) {
|
||||||
|
contact.setFullName(LinphoneUtils.getAddressDisplayName(noa.getValue()));
|
||||||
|
Log.w("Couldn't find a display name for contact " + contact.getFullName() + ", used SIP address display name / username instead...");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (contact.getFullName() == null) {
|
||||||
|
Log.e("Couldn't find a display name for contact " + contact);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
contact.createOrUpdateFriendFromNativeContact();
|
contact.createOrUpdateFriendFromNativeContact();
|
||||||
}
|
}
|
||||||
mAndroidContactsCache.clear();
|
mAndroidContactsCache.clear();
|
||||||
|
|
Loading…
Reference in a new issue