package com.xda.one.auth;
import com.xda.one.api.model.response.ResponseUserProfile;
import com.xda.one.api.model.response.container.ResponseUserProfileNotificationContainer;
import com.xda.one.api.retrofit.RetrofitClient;
import android.accounts.Account;
import android.os.Parcel;
public class XDAAccount extends Account {
public static final Creator<XDAAccount> CREATOR = new Creator<XDAAccount>() {
@Override
public XDAAccount createFromParcel(Parcel source) {
return new XDAAccount(source);
}
@Override
public XDAAccount[] newArray(int size) {
return new XDAAccount[size];
}
};
private final String mEmail;
private final String mUserId;
private final String mAvatarUrl;
private final int mPmCount;
private final int mQuoteCount;
private final int mMentionCount;
private final String mAuthToken;
public XDAAccount(final String name, final String userId, final String email,
final String avatarUrl, final int pmCount, final int quoteCount,
final int mentionCount, final String authToken) {
super(name, "com.xda");
mEmail = email;
mUserId = userId;
mAvatarUrl = avatarUrl;
mPmCount = pmCount;
mQuoteCount = quoteCount;
mMentionCount = mentionCount;
mAuthToken = authToken;
}
public XDAAccount(final Parcel source) {
super(source);
mEmail = source.readString();
mUserId = source.readString();
mAvatarUrl = source.readString();
mPmCount = source.readInt();
mQuoteCount = source.readInt();
mMentionCount = source.readInt();
mAuthToken = source.readString();
}
public static XDAAccount fromProfile(final ResponseUserProfile profile) {
final ResponseUserProfileNotificationContainer notifications = profile.getNotifications();
return new XDAAccount(profile.getUserName(), profile.getUserId(), profile.getEmail(),
profile.getAvatarUrl(), notifications.getPmUnread().getTotal(),
notifications.getDbTechQuoteCount().getTotal(),
notifications.getDbTechMetionCount().getTotal(),
RetrofitClient.getAuthToken());
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
super.writeToParcel(dest, flags);
dest.writeString(mEmail);
dest.writeString(mUserId);
dest.writeString(mAvatarUrl);
dest.writeInt(mPmCount);
dest.writeInt(mQuoteCount);
dest.writeInt(mMentionCount);
dest.writeString(mAuthToken);
}
public String getEmail() {
return mEmail;
}
public String getUserId() {
return mUserId;
}
public String getAvatarUrl() {
return mAvatarUrl;
}
public String getUserName() {
return name;
}
public int getPmCount() {
return mPmCount;
}
public int getQuoteCount() {
return mQuoteCount;
}
public int getMentionCount() {
return mMentionCount;
}
public String getAuthToken() {
return mAuthToken;
}
}