/** * galaxy inc. * meetup client for android */ package com.galaxy.meetup.client.android.content; import java.util.List; import android.os.Parcel; import android.os.Parcelable; import com.galaxy.meetup.server.client.domain.MobileSettingsUser; import com.galaxy.meetup.server.client.domain.MobileSettingsUserInfo; import com.galaxy.meetup.server.client.domain.ShareboxSettings; import com.galaxy.meetup.server.client.domain.response.GetMobileSettingsResponse; import com.galaxy.meetup.server.client.util.JsonUtil; /** * * @author sihai * */ public class AccountSettingsData implements Parcelable { private boolean mIsChild; private String mPlusPageIds[]; private String mPlusPageNames[]; private String mPlusPagePhotoUrls[]; private ShareboxSettings mShareboxSettings; private String mUserDisplayName; private String mUserGaiaId; private Long mWarmWelcomeTimestamp; public static final Parcelable.Creator CREATOR = new Parcelable.Creator() { public final Object createFromParcel(Parcel parcel) { return new AccountSettingsData(parcel); } public final Object[] newArray(int i) { return new AccountSettingsData[i]; } }; private AccountSettingsData(Parcel parcel) { mUserGaiaId = parcel.readString(); mUserDisplayName = parcel.readString(); boolean flag; String s; ShareboxSettings shareboxsettings; if(parcel.readInt() == 1) flag = true; else flag = false; mIsChild = flag; s = parcel.readString(); if(s != null) shareboxsettings = (ShareboxSettings)JsonUtil.toBean(s, ShareboxSettings.class); else shareboxsettings = null; mShareboxSettings = shareboxsettings; if(parcel.readInt() == 1) mWarmWelcomeTimestamp = Long.valueOf(parcel.readLong()); mPlusPageNames = parcel.createStringArray(); mPlusPageIds = parcel.createStringArray(); mPlusPagePhotoUrls = parcel.createStringArray(); } public AccountSettingsData(GetMobileSettingsResponse getmobilesettingsresponse) { if(getmobilesettingsresponse.user != null) { MobileSettingsUser mobilesettingsuser = getmobilesettingsresponse.user; boolean flag; if(mobilesettingsuser.isChild != null && mobilesettingsuser.isChild.booleanValue()) flag = true; else flag = false; mIsChild = flag; if(mobilesettingsuser.info != null) { mUserGaiaId = mobilesettingsuser.info.obfuscatedGaiaId; mUserDisplayName = mobilesettingsuser.info.displayName; } setPlusPages(mobilesettingsuser.plusPageInfo); } if(getmobilesettingsresponse.preference != null) mWarmWelcomeTimestamp = getmobilesettingsresponse.preference.wwMainFlowAckTimestampMsec; mShareboxSettings = getmobilesettingsresponse.shareboxSettings; } private void setPlusPages(List<MobileSettingsUserInfo> list) { int i; if(list != null) i = list.size(); else i = 0; mPlusPageNames = new String[i]; mPlusPageIds = new String[i]; mPlusPagePhotoUrls = new String[i]; for(int j = 0; j < i; j++) { MobileSettingsUserInfo mobilesettingsuserinfo = list.get(j); mPlusPageNames[j] = mobilesettingsuserinfo.displayName; mPlusPageIds[j] = mobilesettingsuserinfo.obfuscatedGaiaId; mPlusPagePhotoUrls[j] = mobilesettingsuserinfo.photoUrl; } } public int describeContents() { return 0; } public final int getNumPlusPages() { return mPlusPageIds.length; } public final String getPlusPageId(int i) { return mPlusPageIds[i]; } public final String getPlusPageName(int i) { return mPlusPageNames[i]; } public final String getPlusPagePhotoUrl(int i) { return mPlusPagePhotoUrls[i]; } public final ShareboxSettings getShareboxSettings() { return mShareboxSettings; } public final String getUserDisplayName() { return mUserDisplayName; } public final String getUserGaiaId() { return mUserGaiaId; } public final String getUserPhotoUrl() { return null; } public final Long getWarmWelcomeTimestamp() { return mWarmWelcomeTimestamp; } public final boolean isChild() { return mIsChild; } public void writeToParcel(Parcel parcel, int i) { parcel.writeString(mUserGaiaId); parcel.writeString(mUserDisplayName); int j; String s; if(mIsChild) j = 1; else j = 0; parcel.writeInt(j); if(mShareboxSettings != null) s = mShareboxSettings.toJsonString(); else s = null; parcel.writeString(s); if(mWarmWelcomeTimestamp != null) { parcel.writeInt(1); parcel.writeLong(mWarmWelcomeTimestamp.longValue()); } else { parcel.writeInt(0); } parcel.writeStringArray(mPlusPageNames); parcel.writeStringArray(mPlusPageIds); parcel.writeStringArray(mPlusPagePhotoUrls); } }