aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/eu/siacs/conversations/xmpp/chatstate/ChatState.java
blob: 3e371562ca97cd9e6eae0eb9855382cffa68c73e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package eu.siacs.conversations.xmpp.chatstate;

import eu.siacs.conversations.xml.Element;

public enum ChatState {

	ACTIVE, INACTIVE, GONE, COMPOSING, PAUSED;

	public static ChatState parse(Element element) {
		final String NAMESPACE = "http://jabber.org/protocol/chatstates";
		if (element.hasChild("active",NAMESPACE)) {
			return ACTIVE;
		} else if (element.hasChild("inactive",NAMESPACE)) {
			return INACTIVE;
		} else if (element.hasChild("composing",NAMESPACE)) {
			return COMPOSING;
		} else if (element.hasChild("gone",NAMESPACE)) {
			return GONE;
		} else if (element.hasChild("paused",NAMESPACE)) {
			return PAUSED;
		} else {
			return null;
		}
	}

	public static Element toElement(ChatState state) {
		final String NAMESPACE = "http://jabber.org/protocol/chatstates";
		final Element element = new Element(state.toString().toLowerCase());
		element.setAttribute("xmlns",NAMESPACE);
		return element;
	}
}