package com.bocai.model;
import android.graphics.Bitmap;
import android.os.Parcel;
import android.os.Parcelable;
import com.bocai.net.AsyncHTTPRequest;
import com.bocai.util.Macros;
import java.util.HashMap;
import org.json.JSONException;
import org.json.JSONObject;
public class Person extends FSObject
implements Parcelable
{
public Person(){
}
private Person(Parcel parcel)
{
uid = parcel.readInt();
name = parcel.readString();
avatarURL = parcel.readString();
avatar = (Bitmap)parcel.readParcelable(null);
hugeAvatarURL = parcel.readString();
hugeAvatar = (Bitmap)parcel.readParcelable(null);
location = parcel.readString();
ribbonsCount = parcel.readInt();
tipsCount = parcel.readInt();
sightingsCount = parcel.readInt();
wantsCount = parcel.readInt();
achievementsCount = parcel.readInt();
recentAchievementsCount = parcel.readInt();
followingsCount = parcel.readInt();
guidesCount = parcel.readInt();
if(parcel.readByte() == 1)
isFollowing = true;
else
isFollowing = false;
}
public Person(JSONObject jsonObject)
{
if(jsonObject == null)
{
return;
} else
{
init(jsonObject);
return;
}
}
public static final AsyncHTTPRequest personRequestWithID(int uid, HashMap<String,Object> params)
{
return FSObject.requestWithPath((new StringBuilder()).append("people/").append(uid).toString(), params);
}
public int describeContents()
{
throw new UnsupportedOperationException("Not supported yet.");
}
public void init(JSONObject jsonObject)
{
uid = jsonObject.optInt("id");
name = jsonObject.optString("name");
avatarURL = jsonObject.optString("avatar_50");
hugeAvatarURL = jsonObject.optString("avatar_300");
location = jsonObject.optString("location");
ribbonsCount = jsonObject.optInt("noms_count");
tipsCount = jsonObject.optInt("tips_count");
sightingsCount = jsonObject.optInt("sightings_count");
wantsCount = jsonObject.optInt("wants_count");
achievementsCount = jsonObject.optInt("notifications_count");
recentAchievementsCount = jsonObject.optInt("recent_notifications_count");
followingsCount = jsonObject.optInt("followings_count");
guidesCount = jsonObject.optInt("guides_count");
isFollowing = jsonObject.optBoolean("following");
}
public void loadPerson(int userId)
{
uid = userId;
personLoading = true;
HashMap<String,Object> requestParams = new HashMap<String,Object>();
User user = User.currentUser();
if(user != null)
{
String s = Integer.toString(user.uid);
requestParams.put("u", s);
}
AsyncHTTPRequest asyncHttpRequest = personRequestWithID(userId, requestParams);
performRequest(asyncHttpRequest);
}
protected void responseData(JSONObject jsonObject, AsyncHTTPRequest asyncHttpRequest)
throws JSONException
{
if(!personLoading)
return;
personLoading = false;
init(jsonObject);
if(delegate == null)
{
return;
}
JSONObject obj = new JSONObject(Macros.ACTION_PERSON_LOADED());
delegate.finishedAction(obj);
delegate.FSResponse(null);
}
public String toString()
{
StringBuilder stringBuilder = (new StringBuilder()).append("{[Person] uid: ");
stringBuilder.append(uid).append(", name: ");
stringBuilder.append(name).append(", avatarURL: ");
return stringBuilder.append(avatarURL).append("}").toString();
}
public void writeToParcel(Parcel parcel, int flags)
{
parcel.writeInt(uid);
parcel.writeString(name);
parcel.writeString(avatarURL);
parcel.writeParcelable(avatar, 0);
parcel.writeString(hugeAvatarURL);
parcel.writeParcelable(hugeAvatar, 0);
parcel.writeString(location);
parcel.writeInt(ribbonsCount);
parcel.writeInt(tipsCount);
parcel.writeInt(sightingsCount);
parcel.writeInt(wantsCount);
parcel.writeInt(achievementsCount);
parcel.writeInt(recentAchievementsCount);
parcel.writeInt(followingsCount);
parcel.writeInt(guidesCount);
if(isFollowing){
parcel.writeByte((byte)1);
}else{
parcel.writeByte((byte)0);
}
}
public static final android.os.Parcelable.Creator<Person> CREATOR = new android.os.Parcelable.Creator<Person>() {
public Person createFromParcel(Parcel parcel)
{
return new Person(parcel);
}
public Person[] newArray(int i)
{
return new Person[i];
}
};
static final String LOG_TAG = "Person";
public int achievementsCount;
public Bitmap avatar;
public String avatarURL;
public int followingsCount;
public int guidesCount;
public Bitmap hugeAvatar;
public String hugeAvatarURL;
public boolean isFollowing;
boolean isSettingFollowing;
public String location;
public String name;
boolean personLoading;
public int recentAchievementsCount;
boolean reviewsLoaded;
boolean reviewsLoading;
public int ribbonsCount;
public int sightingsCount;
public int tipsCount;
public int uid;
public int wantsCount;
}