aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/eu/siacs/conversations/entities/Bookmark.java
diff options
context:
space:
mode:
authoriNPUTmice <daniel@gultsch.de>2014-11-16 23:58:30 +0100
committeriNPUTmice <daniel@gultsch.de>2014-11-16 23:58:30 +0100
commit2036c58cd7793c25ce227bdc44f0377b07be45e1 (patch)
tree0bbe6db7d6e0043eed032cd36812bec47bf14598 /src/main/java/eu/siacs/conversations/entities/Bookmark.java
parent8c4236b01bc1d594ee80909e8a84b5b672e86725 (diff)
made tags searchable
Diffstat (limited to 'src/main/java/eu/siacs/conversations/entities/Bookmark.java')
-rw-r--r--src/main/java/eu/siacs/conversations/entities/Bookmark.java93
1 files changed, 55 insertions, 38 deletions
diff --git a/src/main/java/eu/siacs/conversations/entities/Bookmark.java b/src/main/java/eu/siacs/conversations/entities/Bookmark.java
index 862523a5..2156ab2c 100644
--- a/src/main/java/eu/siacs/conversations/entities/Bookmark.java
+++ b/src/main/java/eu/siacs/conversations/entities/Bookmark.java
@@ -2,8 +2,8 @@ package eu.siacs.conversations.entities;
import java.util.ArrayList;
import java.util.List;
-import java.util.Locale;
+import eu.siacs.conversations.utils.UIHelper;
import eu.siacs.conversations.xml.Element;
import eu.siacs.conversations.xmpp.jid.InvalidJidException;
import eu.siacs.conversations.xmpp.jid.Jid;
@@ -39,30 +39,11 @@ public class Bookmark extends Element implements ListItem {
}
}
- public void setName(String name) {
- this.name = name;
- }
-
- public void setNick(String nick) {
- Element element = this.findChild("nick");
- if (element == null) {
- element = this.addChild("nick");
- }
- element.setContent(nick);
- }
-
- public void setPassword(String password) {
- Element element = this.findChild("password");
- if (element != null) {
- element.setContent(password);
- }
- }
-
@Override
public int compareTo(final ListItem another) {
- return this.getDisplayName().compareToIgnoreCase(
- another.getDisplayName());
- }
+ return this.getDisplayName().compareToIgnoreCase(
+ another.getDisplayName());
+ }
@Override
public String getDisplayName() {
@@ -80,19 +61,26 @@ public class Bookmark extends Element implements ListItem {
public Jid getJid() {
final String jid = this.getAttribute("jid");
if (jid != null) {
- try {
- return Jid.fromString(jid);
- } catch (final InvalidJidException e) {
- return null;
- }
- } else {
+ try {
+ return Jid.fromString(jid);
+ } catch (final InvalidJidException e) {
+ return null;
+ }
+ } else {
return null;
}
}
@Override
public List<Tag> getTags() {
- return new ArrayList<Tag>();
+ ArrayList<Tag> tags = new ArrayList<Tag>();
+ for (Element element : getChildren()) {
+ if (element.getName().equals("group") && element.getContent() != null) {
+ String group = element.getContent();
+ tags.add(new Tag(group, UIHelper.getColorForName(group)));
+ }
+ }
+ return tags;
}
public String getNick() {
@@ -104,6 +92,14 @@ public class Bookmark extends Element implements ListItem {
}
}
+ public void setNick(String nick) {
+ Element element = this.findChild("nick");
+ if (element == null) {
+ element = this.addChild("nick");
+ }
+ element.setContent(nick);
+ }
+
public boolean autojoin() {
String autojoin = this.getAttribute("autojoin");
return (autojoin != null && (autojoin.equalsIgnoreCase("true") || autojoin
@@ -119,29 +115,50 @@ public class Bookmark extends Element implements ListItem {
}
}
+ public void setPassword(String password) {
+ Element element = this.findChild("password");
+ if (element != null) {
+ element.setContent(password);
+ }
+ }
+
public boolean match(String needle) {
- return needle == null
- || getJid().toString().toLowerCase(Locale.US).contains(needle.toLowerCase(Locale.US))
- || getDisplayName().toLowerCase(Locale.US).contains(
- needle.toLowerCase(Locale.US));
+ if (needle == null) {
+ return true;
+ }
+ needle = needle.toLowerCase();
+ return getJid().toString().contains(needle) || getDisplayName().toLowerCase().contains(needle) || matchInTag(needle);
}
- public Account getAccount() {
- return this.account;
+ private boolean matchInTag(String needle) {
+ for (Tag tag : getTags()) {
+ if (tag.getName().toLowerCase().contains(needle)) {
+ return true;
+ }
+ }
+ return false;
}
- public void setConversation(Conversation conversation) {
- this.mJoinedConversation = conversation;
+ public Account getAccount() {
+ return this.account;
}
public Conversation getConversation() {
return this.mJoinedConversation;
}
+ public void setConversation(Conversation conversation) {
+ this.mJoinedConversation = conversation;
+ }
+
public String getName() {
return this.getAttribute("name");
}
+ public void setName(String name) {
+ this.name = name;
+ }
+
public void unregisterConversation() {
if (this.mJoinedConversation != null) {
this.mJoinedConversation.deregisterWithBookmark();