diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/org/connectbot/bean/HostBean.java | 35 |
1 files changed, 29 insertions, 6 deletions
diff --git a/src/org/connectbot/bean/HostBean.java b/src/org/connectbot/bean/HostBean.java index fbde26f..3e06986 100644 --- a/src/org/connectbot/bean/HostBean.java +++ b/src/org/connectbot/bean/HostBean.java @@ -49,6 +49,7 @@ public class HostBean extends AbstractBean { } + @Override public String getBeanName() { return BEAN_NAME; } @@ -168,6 +169,7 @@ public class HostBean extends AbstractBean { return description; } + @Override public ContentValues getValues() { ContentValues values = new ContentValues(); @@ -196,19 +198,40 @@ public class HostBean extends AbstractBean { HostBean host = (HostBean)o; - if (host.getNickname().equals(nickname) - && host.getUsername().equals(username) - && host.getHostname().equals(hostname) - && host.getPort() == port) - return true; + if (id != -1 && host.getId() != -1) + return host.getId() == id; + + if (nickname == null) { + if (host.getNickname() != null) + return false; + } else if (!nickname.equals(host.getNickname())) + return false; + + if (username == null) { + if (host.getUsername() != null) + return false; + } else if (!username.equals(host.getUsername())) + return false; - return false; + if (hostname == null) { + if (host.getHostname() != null) + return false; + } else if (!hostname.equals(host.getHostname())) + return false; + + if (port != host.getPort()) + return false; + + return true; } @Override public int hashCode() { int hash = 7; + if (id != -1) + return (int)id; + hash = 31 * hash + (null == nickname ? 0 : nickname.hashCode()); hash = 31 * hash + (null == username ? 0 : username.hashCode()); hash = 31 * hash + (null == hostname ? 0 : hostname.hashCode()); |