diff options
| author | Alan Young <consult.awy@gmail.com> | 2016-06-03 15:19:28 (GMT) |
|---|---|---|
| committer | Alan Young <consult.awy@gmail.com> | 2016-06-03 15:19:28 (GMT) |
| commit | 8708b7b01cf4f36524bff3dc9aa5a7a6534ce221 (patch) | |
| tree | ddcf591d8a37d326b3989b4f9a70c3d828dde964 | |
| parent | 9d50093bee736d2b7b43756e9a41cfafbd568ee2 (diff) | |
| download | stroke-8708b7b01cf4f36524bff3dc9aa5a7a6534ce221.zip stroke-8708b7b01cf4f36524bff3dc9aa5a7a6534ce221.tar.bz2 | |
XMPPRosterImpl.getItems() needs to do deep copy.
And (therefore) XMPPRosterItem needs a copy constructor.
Change-Id: I9c4d833e559cf70d0c125fc6d841f16b8c2ce5b9
| -rw-r--r-- | src/com/isode/stroke/roster/XMPPRosterImpl.java | 6 | ||||
| -rw-r--r-- | src/com/isode/stroke/roster/XMPPRosterItem.java | 10 |
2 files changed, 15 insertions, 1 deletions
diff --git a/src/com/isode/stroke/roster/XMPPRosterImpl.java b/src/com/isode/stroke/roster/XMPPRosterImpl.java index d87a20e..7b80104 100644 --- a/src/com/isode/stroke/roster/XMPPRosterImpl.java +++ b/src/com/isode/stroke/roster/XMPPRosterImpl.java | |||
| @@ -73,7 +73,11 @@ public class XMPPRosterImpl extends XMPPRoster { | |||
| 73 | 73 | ||
| 74 | @Override | 74 | @Override |
| 75 | public Collection<XMPPRosterItem> getItems() { | 75 | public Collection<XMPPRosterItem> getItems() { |
| 76 | return entries_.values(); | 76 | Collection<XMPPRosterItem> items = new ArrayList<XMPPRosterItem>(entries_.size()); |
| 77 | for (XMPPRosterItem item : entries_.values()) { | ||
| 78 | items.add(new XMPPRosterItem(item)); | ||
| 79 | } | ||
| 80 | return items; | ||
| 77 | } | 81 | } |
| 78 | 82 | ||
| 79 | @Override | 83 | @Override |
diff --git a/src/com/isode/stroke/roster/XMPPRosterItem.java b/src/com/isode/stroke/roster/XMPPRosterItem.java index 1412f83..25ebc47 100644 --- a/src/com/isode/stroke/roster/XMPPRosterItem.java +++ b/src/com/isode/stroke/roster/XMPPRosterItem.java | |||
| @@ -5,6 +5,7 @@ | |||
| 5 | package com.isode.stroke.roster; | 5 | package com.isode.stroke.roster; |
| 6 | 6 | ||
| 7 | import java.util.Collection; | 7 | import java.util.Collection; |
| 8 | import java.util.ArrayList; | ||
| 8 | 9 | ||
| 9 | import com.isode.stroke.elements.RosterItemPayload; | 10 | import com.isode.stroke.elements.RosterItemPayload; |
| 10 | import com.isode.stroke.jid.JID; | 11 | import com.isode.stroke.jid.JID; |
| @@ -21,6 +22,15 @@ public class XMPPRosterItem { | |||
| 21 | this.groups = groups; | 22 | this.groups = groups; |
| 22 | this.subscription = subscription; | 23 | this.subscription = subscription; |
| 23 | } | 24 | } |
| 25 | |||
| 26 | // Copy constructor | ||
| 27 | public XMPPRosterItem(XMPPRosterItem from) { | ||
| 28 | this(from.jid, from.name, null, from.subscription); | ||
| 29 | if (from.groups != null) { | ||
| 30 | groups = new ArrayList<String>(from.groups.size()); | ||
| 31 | groups.addAll(from.groups); | ||
| 32 | } | ||
| 33 | } | ||
| 24 | 34 | ||
| 25 | public final JID getJID() { | 35 | public final JID getJID() { |
| 26 | return jid; | 36 | return jid; |
Swift