summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlan Young <consult.awy@gmail.com>2016-06-03 15:19:28 (GMT)
committerAlan Young <consult.awy@gmail.com>2016-06-03 15:19:28 (GMT)
commit8708b7b01cf4f36524bff3dc9aa5a7a6534ce221 (patch)
treeddcf591d8a37d326b3989b4f9a70c3d828dde964
parent9d50093bee736d2b7b43756e9a41cfafbd568ee2 (diff)
downloadstroke-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.java6
-rw-r--r--src/com/isode/stroke/roster/XMPPRosterItem.java10
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 @@
5package com.isode.stroke.roster; 5package com.isode.stroke.roster;
6 6
7import java.util.Collection; 7import java.util.Collection;
8import java.util.ArrayList;
8 9
9import com.isode.stroke.elements.RosterItemPayload; 10import com.isode.stroke.elements.RosterItemPayload;
10import com.isode.stroke.jid.JID; 11import 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;