95 lines
1.9 KiB
Java
95 lines
1.9 KiB
Java
|
package eu.siacs.conversations.entities;
|
||
|
|
||
|
import java.util.Locale;
|
||
|
|
||
|
import eu.siacs.conversations.xml.Element;
|
||
|
|
||
|
public class Bookmark implements ListItem {
|
||
|
|
||
|
private Account account;
|
||
|
private String jid;
|
||
|
private String nick;
|
||
|
private String displayName;
|
||
|
private boolean autojoin;
|
||
|
|
||
|
public Bookmark(Account account) {
|
||
|
this.account = account;
|
||
|
}
|
||
|
|
||
|
public static Bookmark parse(Element element, Account account) {
|
||
|
Bookmark bookmark = new Bookmark(account);
|
||
|
bookmark.setJid(element.getAttribute("jid"));
|
||
|
bookmark.setDisplayName(element.getAttribute("name"));
|
||
|
String autojoin = element.getAttribute("autojoin");
|
||
|
if (autojoin!=null && (autojoin.equals("true")||autojoin.equals("1"))) {
|
||
|
bookmark.setAutojoin(true);
|
||
|
} else {
|
||
|
bookmark.setAutojoin(false);
|
||
|
}
|
||
|
Element nick = element.findChild("nick");
|
||
|
if (nick!=null) {
|
||
|
bookmark.setNick(nick.getContent());
|
||
|
}
|
||
|
return bookmark;
|
||
|
}
|
||
|
|
||
|
public void setAutojoin(boolean autojoin) {
|
||
|
this.autojoin = autojoin;
|
||
|
}
|
||
|
|
||
|
public void setDisplayName(String name) {
|
||
|
this.displayName = name;
|
||
|
}
|
||
|
|
||
|
public void setJid(String jid) {
|
||
|
this.jid = jid;
|
||
|
}
|
||
|
|
||
|
public void setNick(String nick) {
|
||
|
this.nick = nick;
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public int compareTo(ListItem another) {
|
||
|
return this.getDisplayName().compareToIgnoreCase(another.getDisplayName());
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public String getDisplayName() {
|
||
|
if (displayName!=null) {
|
||
|
return displayName;
|
||
|
} else {
|
||
|
return this.jid.split("@")[0];
|
||
|
}
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public String getJid() {
|
||
|
return this.jid.toLowerCase(Locale.US);
|
||
|
}
|
||
|
|
||
|
public String getNick() {
|
||
|
return this.nick;
|
||
|
}
|
||
|
|
||
|
public boolean autojoin() {
|
||
|
return autojoin;
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public String getProfilePhoto() {
|
||
|
return null;
|
||
|
}
|
||
|
|
||
|
public boolean match(String needle) {
|
||
|
return needle == null
|
||
|
|| getJid().contains(needle.toLowerCase(Locale.US))
|
||
|
|| getDisplayName().toLowerCase(Locale.US)
|
||
|
.contains(needle.toLowerCase(Locale.US));
|
||
|
}
|
||
|
|
||
|
public Account getAccount() {
|
||
|
return this.account;
|
||
|
}
|
||
|
}
|