diff options
author | iNPUTmice <daniel@gultsch.de> | 2014-11-16 23:58:30 +0100 |
---|---|---|
committer | iNPUTmice <daniel@gultsch.de> | 2014-11-16 23:58:30 +0100 |
commit | 2036c58cd7793c25ce227bdc44f0377b07be45e1 (patch) | |
tree | 0bbe6db7d6e0043eed032cd36812bec47bf14598 /src/main/java/eu/siacs/conversations/entities/Bookmark.java | |
parent | 8c4236b01bc1d594ee80909e8a84b5b672e86725 (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.java | 93 |
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(); |