120 lines
4.9 KiB
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");
|
|
}
|
|
}
|
|
}
|