aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/de/pixart/messenger/entities/Room.java
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/main/java/de/pixart/messenger/entities/Room.java88
1 files changed, 88 insertions, 0 deletions
diff --git a/src/main/java/de/pixart/messenger/entities/Room.java b/src/main/java/de/pixart/messenger/entities/Room.java
new file mode 100644
index 000000000..d41cbe2f2
--- /dev/null
+++ b/src/main/java/de/pixart/messenger/entities/Room.java
@@ -0,0 +1,88 @@
+package de.pixart.messenger.entities;
+
+import com.google.common.base.Objects;
+import com.google.common.base.Strings;
+import com.google.common.collect.ComparisonChain;
+
+import de.pixart.messenger.services.AvatarService;
+import de.pixart.messenger.utils.LanguageUtils;
+import de.pixart.messenger.utils.UIHelper;
+import rocks.xmpp.addr.Jid;
+
+public class Room implements AvatarService.Avatarable, Comparable<Room> {
+
+ public String address;
+ public String name;
+ public String description;
+ public String language;
+ public int nusers;
+
+ public Room(String address, String name, String description, String language, int nusers) {
+ this.address = address;
+ this.name = name;
+ this.description = description;
+ this.language = language;
+ this.nusers = nusers;
+ }
+
+ public Room() {
+
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public Jid getRoom() {
+ try {
+ return Jid.of(address);
+ } catch (IllegalArgumentException e) {
+ return null;
+ }
+ }
+
+ public String getLanguage() {
+ return LanguageUtils.convert(language);
+ }
+
+ @Override
+ public int getAvatarBackgroundColor() {
+ Jid room = getRoom();
+ return UIHelper.getColorForName(room != null ? room.asBareJid().toEscapedString() : name);
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+ Room room = (Room) o;
+ return Objects.equal(address, room.address) &&
+ Objects.equal(name, room.name) &&
+ Objects.equal(description, room.description);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hashCode(address, name, description);
+ }
+
+
+ public boolean contains(String needle) {
+ return Strings.nullToEmpty(name).contains(needle)
+ || Strings.nullToEmpty(description).contains(needle)
+ || Strings.nullToEmpty(address).contains(needle);
+ }
+
+ @Override
+ public int compareTo(Room o) {
+ return ComparisonChain.start()
+ .compare(o.nusers, nusers)
+ .compare(Strings.nullToEmpty(name), Strings.nullToEmpty(o.name))
+ .compare(Strings.nullToEmpty(address), Strings.nullToEmpty(o.address))
+ .result();
+ }
+} \ No newline at end of file