Propose.java

 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}