| package org.wordpress.android.models; |
| |
| import android.text.TextUtils; |
| |
| import org.json.JSONObject; |
| import org.wordpress.android.util.JSONUtils; |
| import org.wordpress.android.util.StringUtils; |
| import org.wordpress.android.util.UrlUtils; |
| |
| public class ReaderUser { |
| public long userId; |
| public long blogId; |
| private String userName; |
| private String displayName; |
| private String url; |
| private String profileUrl; |
| private String avatarUrl; |
| |
| public static ReaderUser fromJson(JSONObject json) { |
| ReaderUser user = new ReaderUser(); |
| if (json==null) |
| return user; |
| |
| user.userId = json.optLong("ID"); |
| user.blogId = json.optLong("site_ID"); |
| |
| user.userName = JSONUtils.getString(json, "username"); |
| user.url = JSONUtils.getString(json, "URL"); // <-- this isn't necessarily a wp blog |
| user.profileUrl = JSONUtils.getString(json, "profile_URL"); |
| user.avatarUrl = JSONUtils.getString(json, "avatar_URL"); |
| |
| // "me" api call (current user) has "display_name", others have "name" |
| if (json.has("display_name")) { |
| user.displayName = JSONUtils.getStringDecoded(json, "display_name"); |
| } else { |
| user.displayName = JSONUtils.getStringDecoded(json, "name"); |
| } |
| |
| return user; |
| } |
| |
| public String getUserName() { |
| return StringUtils.notNullStr(userName); |
| } |
| public void setUserName(String userName) { |
| this.userName = StringUtils.notNullStr(userName); |
| } |
| |
| public String getDisplayName() { |
| return StringUtils.notNullStr(displayName); |
| } |
| public void setDisplayName(String displayName) { |
| this.displayName = StringUtils.notNullStr(displayName); |
| } |
| |
| public String getUrl() { |
| return StringUtils.notNullStr(url); |
| } |
| public void setUrl(String url) { |
| this.url = StringUtils.notNullStr(url); |
| } |
| |
| public String getProfileUrl() { |
| return StringUtils.notNullStr(profileUrl); |
| } |
| public void setProfileUrl(String profileUrl) { |
| this.profileUrl = StringUtils.notNullStr(profileUrl); |
| } |
| |
| public String getAvatarUrl() { |
| return StringUtils.notNullStr(avatarUrl); |
| } |
| public void setAvatarUrl(String avatarUrl) { |
| this.avatarUrl = StringUtils.notNullStr(avatarUrl); |
| } |
| |
| public boolean hasUrl() { |
| return !TextUtils.isEmpty(url); |
| } |
| |
| public boolean hasAvatarUrl() { |
| return !TextUtils.isEmpty(avatarUrl); |
| } |
| |
| public boolean hasBlogId() { |
| return (blogId != 0); |
| } |
| |
| /* |
| * not stored - used by ReaderUserAdapter for performance |
| */ |
| private transient String urlDomain; |
| public String getUrlDomain() { |
| if (urlDomain == null) { |
| if (hasUrl()) { |
| urlDomain = UrlUtils.getHost(getUrl()); |
| } else { |
| urlDomain = ""; |
| } |
| } |
| return urlDomain; |
| } |
| |
| public boolean isSameUser(ReaderUser user) { |
| if (user == null) |
| return false; |
| if (this.userId != user.userId) |
| return false; |
| if (!this.getAvatarUrl().equals(user.getAvatarUrl())) |
| return false; |
| if (!this.getDisplayName().equals(user.getDisplayName())) |
| return false; |
| if (!this.getUserName().equals(user.getUserName())) |
| return false; |
| if (!this.getUrl().equals(user.getUrl())) |
| return false; |
| if (!this.getProfileUrl().equals(user.getProfileUrl())) |
| return false; |
| return true; |
| } |
| } |