From 30f9ba9acad9082bafeb92602767f2a372c4bcc9 Mon Sep 17 00:00:00 2001 From: Vincent Lucas Date: Thu, 4 Jul 2013 10:21:50 +0200 Subject: [PATCH] Corrects Outlook plugin when setting several contact details with the same category and the same value. --- .../MsOutlookAddrBookContactDetail.java | 25 +++++++++++++------ .../MsOutlookAddrBookSourceContact.java | 2 +- 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/src/net/java/sip/communicator/plugin/addrbook/msoutlook/MsOutlookAddrBookContactDetail.java b/src/net/java/sip/communicator/plugin/addrbook/msoutlook/MsOutlookAddrBookContactDetail.java index 17c1212ca..af4745755 100644 --- a/src/net/java/sip/communicator/plugin/addrbook/msoutlook/MsOutlookAddrBookContactDetail.java +++ b/src/net/java/sip/communicator/plugin/addrbook/msoutlook/MsOutlookAddrBookContactDetail.java @@ -61,9 +61,23 @@ public MsOutlookAddrBookContactDetail( */ public boolean match(ContactDetail contactDetail) { - return (contactDetail != null - && this.getCategory() == contactDetail.getCategory() - && this.getDetail().equals(contactDetail.getDetail())); + boolean containsAll = true; + + if(contactDetail != null) + { + for(SubCategory subCategory: this.getSubCategories()) + { + containsAll &= contactDetail.containsSubCategory(subCategory); + } + for(SubCategory subCategory: contactDetail.getSubCategories()) + { + containsAll &= this.containsSubCategory(subCategory); + } + return (containsAll + && this.getCategory() == contactDetail.getCategory() + && this.getDetail().equals(contactDetail.getDetail())); + } + return false; } /** @@ -89,10 +103,5 @@ public void setDetail(String value) super.setDetail(value); EditableSourceContact sourceContact = this.getSourceContact(); - if(sourceContact != null - && sourceContact instanceof MsOutlookAddrBookSourceContact) - { - ((MsOutlookAddrBookSourceContact) sourceContact).save(); - } } } diff --git a/src/net/java/sip/communicator/plugin/addrbook/msoutlook/MsOutlookAddrBookSourceContact.java b/src/net/java/sip/communicator/plugin/addrbook/msoutlook/MsOutlookAddrBookSourceContact.java index fe215d4d0..84fcdb1d4 100644 --- a/src/net/java/sip/communicator/plugin/addrbook/msoutlook/MsOutlookAddrBookSourceContact.java +++ b/src/net/java/sip/communicator/plugin/addrbook/msoutlook/MsOutlookAddrBookSourceContact.java @@ -199,7 +199,6 @@ public void addContactDetail(ContactDetail detail) } } this.contactDetails.add(addDetail); - this.save(); } } @@ -299,6 +298,7 @@ public void unlock() { synchronized(this) { + this.save(); locked = Boolean.FALSE; notify(); }