aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/eu/siacs/conversations/entities/Presences.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/eu/siacs/conversations/entities/Presences.java')
-rw-r--r--src/main/java/eu/siacs/conversations/entities/Presences.java29
1 files changed, 28 insertions, 1 deletions
diff --git a/src/main/java/eu/siacs/conversations/entities/Presences.java b/src/main/java/eu/siacs/conversations/entities/Presences.java
index 6391f5bb..f9dfee36 100644
--- a/src/main/java/eu/siacs/conversations/entities/Presences.java
+++ b/src/main/java/eu/siacs/conversations/entities/Presences.java
@@ -1,7 +1,10 @@
package eu.siacs.conversations.entities;
+import android.util.Pair;
+
import java.util.ArrayList;
import java.util.Collections;
+import java.util.HashMap;
import java.util.Hashtable;
import java.util.Iterator;
import java.util.List;
@@ -54,7 +57,7 @@ public class Presences {
}
}
- public String[] asStringArray() {
+ public String[] toResourceArray() {
synchronized (this.presences) {
final String[] presencesArray = new String[presences.size()];
presences.keySet().toArray(presencesArray);
@@ -104,4 +107,28 @@ public class Presences {
}
return true;
}
+
+ public Pair<Map<String, String>,Map<String,String>> toTypeAndNameMap() {
+ Map<String,String> typeMap = new HashMap<>();
+ Map<String,String> nameMap = new HashMap<>();
+ synchronized (this.presences) {
+ for(Map.Entry<String,Presence> presenceEntry : this.presences.entrySet()) {
+ String resource = presenceEntry.getKey();
+ Presence presence = presenceEntry.getValue();
+ ServiceDiscoveryResult serviceDiscoveryResult = presence == null ? null : presence.getServiceDiscoveryResult();
+ if (serviceDiscoveryResult != null && serviceDiscoveryResult.getIdentities().size() > 0) {
+ ServiceDiscoveryResult.Identity identity = serviceDiscoveryResult.getIdentities().get(0);
+ String type = identity.getType();
+ String name = identity.getName();
+ if (type != null) {
+ typeMap.put(resource,type);
+ }
+ if (name != null) {
+ nameMap.put(resource, name);
+ }
+ }
+ }
+ }
+ return new Pair(typeMap,nameMap);
+ }
}