1package im.conversations.android.xmpp.model.jmi;
2
3import com.google.common.collect.ImmutableList;
4
5import eu.siacs.conversations.xml.Element;
6import eu.siacs.conversations.xml.Namespace;
7import eu.siacs.conversations.xmpp.jingle.stanzas.FileTransferDescription;
8import eu.siacs.conversations.xmpp.jingle.stanzas.GenericDescription;
9import eu.siacs.conversations.xmpp.jingle.stanzas.RtpDescription;
10import im.conversations.android.annotation.XmlElement;
11
12import java.util.List;
13
14@XmlElement
15public class Propose extends JingleMessage {
16
17 public Propose() {
18 super(Propose.class);
19 }
20
21 public List<GenericDescription> getDescriptions() {
22 final ImmutableList.Builder<GenericDescription> builder = new ImmutableList.Builder<>();
23 // TODO create proper extension for description
24 for (final Element child : this.children) {
25 if ("description".equals(child.getName())) {
26 final String namespace = child.getNamespace();
27 if (Namespace.JINGLE_APPS_FILE_TRANSFER.contains(namespace)) {
28 builder.add(FileTransferDescription.upgrade(child));
29 } else if (Namespace.JINGLE_APPS_RTP.equals(namespace)) {
30 builder.add(RtpDescription.upgrade(child));
31 } else {
32 builder.add(GenericDescription.upgrade(child));
33 }
34 }
35 }
36 return builder.build();
37 }
38}