otbeta/com.iamthefij.otbeta/src/main/java/com/iamthefij/otbeta/api/ExerciserProfile.java

120 lines
4.9 KiB
Java

package com.iamthefij.otbeta.api;
import android.location.Address;
import org.json.JSONObject;
import java.util.Locale;
/**
* Full profile of an Exerciser or user
*/
public class ExerciserProfile {
private final String mAboutMe;
private final Boolean mActive;
private Address mAddress;
private final String mBarcode;
private final String mBirthday;
private final String mClientLoginId;
private final String mCreatedAt;
private final String mEmail;
private EmailPreference mEmailPreference;
private final JSONObject mExternalServiceNames;
private final Boolean mFacebookAutoShare;
private final String mFirstName;
private final String mLastName;
private final String mGender;
private final Double mHeight;
private final String mHomeClubUuid;
private final String mMeasurementUnit;
private final String mNickname;
private final String mPasscode;
private final String mPhoneNumber;
private final String mPicturePassword;
private final String mPrivacy;
private final String mProfilePicture;
private final String mTimezone;
private final String mUpdatedAt;
private final String mUuid;
private final Boolean mVerified;
private final Double mWeight;
public ExerciserProfile(JSONObject response) {
mAboutMe = response.optString("aboutMe");
mActive = response.optBoolean("active");
mBarcode = response.optString("barcode");
mBirthday = response.optString("birthday");
mClientLoginId = response.optString("clientLoginId");
mCreatedAt = response.optString("createdAt");
mEmail = response.optString("email");
mExternalServiceNames = response.optJSONObject("externalServiceNames");
mFacebookAutoShare = response.optBoolean("facebookAutoShare");
mFirstName = response.optString("firstName");
mLastName = response.optString("lastName");
mGender = response.optString("gender");
mHomeClubUuid = response.optString("homeClubUuid");
mMeasurementUnit = response.optString("measurementUnit");
mNickname = response.optString("nickname");
mPasscode = response.optString("passcode");
mPhoneNumber = response.optString("phoneNumber");
mPicturePassword = response.optString("picturePassword");
mPrivacy = response.optString("privacy");
mProfilePicture = response.optString("profilePicture");
mTimezone = response.optString("timezone");
mUpdatedAt = response.optString("updatedAt");
mUuid = response.optString("uuid");
mVerified = response.optBoolean("verified");
mHeight = response.optDouble("height");
mWeight = response.optDouble("weight");
JSONObject address = response.optJSONObject("address");
if (address != null) {
mAddress = new Address(Locale.US);
mAddress.setAddressLine(1, address.optString("street1"));
mAddress.setAddressLine(2, address.optString("street2"));
mAddress.setLocality(address.optString("city"));
mAddress.setCountryCode(address.optString("country"));
mAddress.setPostalCode(address.optString("postalCode"));
mAddress.setAdminArea(address.optString("stateOrProvince"));
}
JSONObject emailPreference = response.optJSONObject("emailPreference");
if (emailPreference != null) {
mEmailPreference = new EmailPreference(emailPreference);
}
}
/**
* Email preferences for a user
*/
public class EmailPreference {
private final Boolean mEmailApplause;
private final Boolean mEmailChallengeNotice;
private final Boolean mEmailComment;
private final Boolean mEmailGoalNotice;
private final Boolean mEmailMonthlyWorkout;
private final Boolean mEmailSingleWorkout;
private final Boolean mEmailSystemMessage;
private final Boolean mEmailTrainerMessage;
private final Boolean mEmailWeeklyWorkout;
/**
* Generates the preferences instance for a given user based on JSON response
* @param preference {@link JSONObject} to build preferences from
*/
public EmailPreference(JSONObject preference) {
mEmailApplause = preference.optBoolean("emailApplause");
mEmailChallengeNotice = preference.optBoolean("emailChallengeNotice");
mEmailComment = preference.optBoolean("emailComment");
mEmailGoalNotice = preference.optBoolean("emailGoalNotice");
mEmailMonthlyWorkout = preference.optBoolean("emailMonthlyWorkout");
mEmailSingleWorkout = preference.optBoolean("emailSingleWorkout");
mEmailSystemMessage = preference.optBoolean("emailSystemMessage");
mEmailTrainerMessage = preference.optBoolean("emailTrainerMessage");
mEmailWeeklyWorkout = preference.optBoolean("emailWeeklyWorkout");
}
}
}