Prevent duplicated contacts with different ids to show in contacts list
This commit is contained in:
parent
fba1be573e
commit
08f1b48aac
3 changed files with 19 additions and 7 deletions
|
@ -445,7 +445,7 @@ public final class LinphoneService extends Service {
|
|||
public void onCreate() {
|
||||
super.onCreate();
|
||||
mLastNotificationId = 8; // To not interfere with other notifs ids
|
||||
mChatNotifMap = new HashMap<String, Notified>();
|
||||
mChatNotifMap = new HashMap<>();
|
||||
|
||||
setupActivityMonitor();
|
||||
// In case restart after a crash. Main in LinphoneActivity
|
||||
|
|
|
@ -75,7 +75,17 @@ public class LinphoneContact implements Serializable, Comparable<LinphoneContact
|
|||
if (fullName.equals(contactFullName)) {
|
||||
if (getAndroidId() != null) {
|
||||
if (contact.getAndroidId() != null) {
|
||||
return getAndroidId().compareTo(contact.getAndroidId());
|
||||
int idComp = getAndroidId().compareTo(contact.getAndroidId());
|
||||
if (idComp == 0) return 0;
|
||||
List<LinphoneNumberOrAddress> noas1 = getNumbersOrAddresses();
|
||||
List<LinphoneNumberOrAddress> noas2 = contact.getNumbersOrAddresses();
|
||||
if (noas1.size() == noas2.size()) {
|
||||
if (noas1.containsAll(noas2) && noas2.containsAll(noas1)) {
|
||||
return 0;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
return ((Integer)noas1.size()).compareTo(noas2.size());
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
|
|
@ -49,12 +49,14 @@ public class LinphoneNumberOrAddress implements Serializable, Comparable<Linphon
|
|||
|
||||
@Override
|
||||
public int compareTo(LinphoneNumberOrAddress noa) {
|
||||
String value = noa.getValue();
|
||||
if (noa.isSIPAddress() == isSIPAddress() && value != null) {
|
||||
return value.compareTo(getValue());
|
||||
} else {
|
||||
return isSIPAddress() ? -1 : 1;
|
||||
if (value != null) {
|
||||
if (noa.isSIPAddress() && isSIPAddress()) {
|
||||
return value.compareTo(noa.getValue());
|
||||
} else if (!noa.isSIPAddress() && !isSIPAddress()) {
|
||||
return getNormalizedPhone().compareTo(noa.getNormalizedPhone());
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
Loading…
Reference in a new issue