From 08f1b48aac649a2fb02cb8efd228a006fcd8f39c Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Wed, 3 Oct 2018 14:21:31 +0200 Subject: [PATCH] Prevent duplicated contacts with different ids to show in contacts list --- src/android/org/linphone/LinphoneService.java | 2 +- .../org/linphone/contacts/LinphoneContact.java | 12 +++++++++++- .../linphone/contacts/LinphoneNumberOrAddress.java | 12 +++++++----- 3 files changed, 19 insertions(+), 7 deletions(-) diff --git a/src/android/org/linphone/LinphoneService.java b/src/android/org/linphone/LinphoneService.java index 0725e99d5..75eb56f99 100644 --- a/src/android/org/linphone/LinphoneService.java +++ b/src/android/org/linphone/LinphoneService.java @@ -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(); + mChatNotifMap = new HashMap<>(); setupActivityMonitor(); // In case restart after a crash. Main in LinphoneActivity diff --git a/src/android/org/linphone/contacts/LinphoneContact.java b/src/android/org/linphone/contacts/LinphoneContact.java index 7572461e2..7eea49fe1 100644 --- a/src/android/org/linphone/contacts/LinphoneContact.java +++ b/src/android/org/linphone/contacts/LinphoneContact.java @@ -75,7 +75,17 @@ public class LinphoneContact implements Serializable, Comparable noas1 = getNumbersOrAddresses(); + List 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; } diff --git a/src/android/org/linphone/contacts/LinphoneNumberOrAddress.java b/src/android/org/linphone/contacts/LinphoneNumberOrAddress.java index 1ea5340c4..65c0ab608 100644 --- a/src/android/org/linphone/contacts/LinphoneNumberOrAddress.java +++ b/src/android/org/linphone/contacts/LinphoneNumberOrAddress.java @@ -49,12 +49,14 @@ public class LinphoneNumberOrAddress implements Serializable, Comparable