diff options
Diffstat (limited to 'WordPress/src/main/java/org/wordpress/android/models/AccountModel.java')
-rw-r--r-- | WordPress/src/main/java/org/wordpress/android/models/AccountModel.java | 248 |
1 files changed, 248 insertions, 0 deletions
diff --git a/WordPress/src/main/java/org/wordpress/android/models/AccountModel.java b/WordPress/src/main/java/org/wordpress/android/models/AccountModel.java new file mode 100644 index 000000000..93f3400ef --- /dev/null +++ b/WordPress/src/main/java/org/wordpress/android/models/AccountModel.java @@ -0,0 +1,248 @@ +package org.wordpress.android.models; + +import android.text.TextUtils; + +import org.json.JSONObject; +import org.wordpress.android.util.AppLog; +import org.wordpress.android.util.DateTimeUtils; +import org.wordpress.android.util.StringUtils; + +import java.util.Date; + +public class AccountModel { + // WordPress.com only - data fetched from the REST API endpoint + private String mUserName; + private long mUserId; + private String mDisplayName; + private String mProfileUrl; + private String mAvatarUrl; + private long mPrimaryBlogId; + private int mSiteCount; + private int mVisibleSiteCount; + private String mAccessToken; + private String mEmail; + private String mFirstName; + private String mLastName; + private String mAboutMe; + private Date mDateCreated; + private String mNewEmail; + private boolean mPendingEmailChange; + private String mWebAddress; + + public AccountModel() { + init(); + } + + public void init() { + mUserName = ""; + mUserId = 0; + mDisplayName = ""; + mProfileUrl = ""; + mAvatarUrl = ""; + mPrimaryBlogId = 0; + mSiteCount = 0; + mVisibleSiteCount = 0; + mAccessToken = ""; + mEmail = ""; + mFirstName = ""; + mLastName = ""; + mAboutMe = ""; + mDateCreated = new Date(); + mNewEmail = ""; + mPendingEmailChange = false; + mWebAddress = ""; + } + + public void updateFromRestResponse(JSONObject json) { + mUserId = json.optLong("ID"); + mUserName = json.optString("username"); + mDisplayName = json.optString("display_name"); + mProfileUrl = json.optString("profile_URL"); + mAvatarUrl = json.optString("avatar_URL"); + mPrimaryBlogId = json.optLong("primary_blog"); + mSiteCount = json.optInt("site_count"); + mVisibleSiteCount = json.optInt("visible_site_count"); + mEmail = json.optString("email"); + + Date date = DateTimeUtils.dateFromIso8601(json.optString("date")); + if (date != null) { + mDateCreated = date; + } else { + AppLog.e(AppLog.T.API, "Date could not be found from Account JSON response"); + } + } + + public void updateAccountSettingsFromRestResponse(JSONObject json) { + if (json.has(RestParam.FIRST_NAME.getDescription())) mFirstName = json.optString(RestParam.FIRST_NAME.getDescription()); + if (json.has(RestParam.LAST_NAME.getDescription())) mLastName = json.optString(RestParam.LAST_NAME.getDescription()); + if (json.has(RestParam.DISPLAY_NAME.getDescription())) mDisplayName = json.optString(RestParam.DISPLAY_NAME.getDescription()); + if (json.has(RestParam.ABOUT_ME.getDescription())) mAboutMe = json.optString(RestParam.ABOUT_ME.getDescription()); + if (json.has(RestParam.EMAIL.getDescription())) mEmail = json.optString(RestParam.EMAIL.getDescription()); + if (json.has(RestParam.NEW_EMAIL.getDescription())) mNewEmail = json.optString(RestParam.NEW_EMAIL.getDescription()); + if (json.has(RestParam.EMAIL_CHANGE_PENDING.getDescription())) mPendingEmailChange = json.optBoolean(RestParam.EMAIL_CHANGE_PENDING.getDescription()); + if (json.has(RestParam.PRIMARY_BLOG.getDescription())) mPrimaryBlogId = json.optLong(RestParam.PRIMARY_BLOG.getDescription()); + if (json.has(RestParam.WEB_ADDRESS.getDescription())) mWebAddress = json.optString(RestParam.WEB_ADDRESS.getDescription()); + } + + public long getUserId() { + return mUserId; + } + + public void setUserId(long userId) { + mUserId = userId; + } + + public void setPrimaryBlogId(long primaryBlogId) { + mPrimaryBlogId = primaryBlogId; + } + + public long getPrimaryBlogId() { + return mPrimaryBlogId; + } + + public String getUserName() { + return StringUtils.notNullStr(mUserName); + } + + public void setUserName(String userName) { + mUserName = userName; + } + + public String getAccessToken() { + return mAccessToken; + } + + public void setAccessToken(String accessToken) { + mAccessToken = accessToken; + } + + boolean hasAccessToken() { + return !TextUtils.isEmpty(getAccessToken()); + } + + public String getDisplayName() { + return StringUtils.notNullStr(mDisplayName); + } + + public void setDisplayName(String displayName) { + mDisplayName = displayName; + } + + public String getProfileUrl() { + return StringUtils.notNullStr(mProfileUrl); + } + + public void setProfileUrl(String profileUrl) { + mProfileUrl = profileUrl; + } + + public String getAvatarUrl() { + return StringUtils.notNullStr(mAvatarUrl); + } + + public void setAvatarUrl(String avatarUrl) { + mAvatarUrl = avatarUrl; + } + + public int getSiteCount() { + return mSiteCount; + } + + public void setSiteCount(int siteCount) { + mSiteCount = siteCount; + } + + public int getVisibleSiteCount() { + return mVisibleSiteCount; + } + + public void setVisibleSiteCount(int visibleSiteCount) { + mVisibleSiteCount = visibleSiteCount; + } + + public void setEmail(String email) { + mEmail = email; + } + + public String getEmail() { + return StringUtils.notNullStr(mEmail); + } + + public String getFirstName() { + return StringUtils.notNullStr(mFirstName); + } + + public void setFirstName(String firstName) { + mFirstName = firstName; + } + + public String getLastName() { + return StringUtils.notNullStr(mLastName); + } + + public void setLastName(String lastName) { + mLastName = lastName; + } + + public String getAboutMe() { + return StringUtils.notNullStr(mAboutMe); + } + + public void setAboutMe(String aboutMe) { + mAboutMe = aboutMe; + } + + public Date getDateCreated() { + return mDateCreated; + } + + public void setDateCreated(Date date) { + mDateCreated = date; + } + + public String getNewEmail() { + return StringUtils.notNullStr(mNewEmail); + } + + public void setNewEmail(String newEmail) { + mNewEmail = newEmail; + } + + public boolean getPendingEmailChange() { + return mPendingEmailChange; + } + + public void setPendingEmailChange(boolean pendingEmailChange) { + mPendingEmailChange = pendingEmailChange; + } + + public String getWebAddress() { + return mWebAddress; + } + + public void setWebAddress(String webAddress) { + mWebAddress = webAddress; + } + + public enum RestParam { + FIRST_NAME("first_name"), + LAST_NAME("last_name"), + DISPLAY_NAME("display_name"), + ABOUT_ME("description"), + EMAIL("user_email"), + NEW_EMAIL("new_user_email"), + EMAIL_CHANGE_PENDING("user_email_change_pending"), + PRIMARY_BLOG("primary_site_ID"), + WEB_ADDRESS("user_URL"); + + private String description; + + RestParam(String description) { + this.description = description; + } + + public String getDescription() { + return description; + } + } +} |