package com.photoshare.service.photos; import org.json.JSONException; import org.json.JSONObject; import android.os.Bundle; import android.os.Parcel; import android.os.Parcelable; import com.photoshare.common.ResponseBean; import com.photoshare.utils.User; import com.photoshare.utils.Utils; /** * 上传图片请求的返回结果包装类 * * */ public class PhotoUploadResponseBean extends ResponseBean implements Parcelable { /** * 字段常量 */ private static final String KEY_PID = PhotoBean.KEY_PID; private static final String KEY_UID = PhotoBean.KEY_UID; private static final String KEY_SRC = PhotoBean.KEY_MIDDLE_URL; private static final String KEY_SRC_SMALL = PhotoBean.KEY_TINY_URL; private static final String KEY_SRC_BIG = PhotoBean.KEY_LARGE_URL; private static final String KEY_CAPTION = PhotoBean.KEY_CAPTION; /** * 照片pid */ private long pid; /** * 照片所有者uid */ private long uid; /** * 正常尺寸照片源url */ private String src; /** * 小尺寸照片源url */ private String src_small; /** * 大尺寸照片源url */ private String src_big; /** * 照片描述 */ private String caption; /** * 构造函数,将请求返回的json串格式数据解析成对象 * * @param response */ public PhotoUploadResponseBean(String response) { this(response, User.RESPONSE_FORMAT_JSON); } /** * 构造函数,将请求返回的json串格式数据解析成对象 * * @param response * 服务器返回的请求结果串 * @param format * 服务器返回结果的格式 */ private PhotoUploadResponseBean(String response, String format) { super(response); if (response == null) { return; } // 暂时只提供json格式的数据解析 if (format.toLowerCase().endsWith("json")) { try { JSONObject object = new JSONObject(response); if (object != null) { pid = object.optLong(KEY_PID); uid = object.optLong(KEY_UID); src = object.optString(KEY_SRC); src_small = object.optString(KEY_SRC_SMALL); src_big = object.optString(KEY_SRC_BIG); caption = object.optString(KEY_CAPTION); } } catch (JSONException e) { Utils.logger("exception in parsing json data:" + e.getMessage()); } } } public PhotoBean get() { PhotoBean photo = new PhotoBean(pid); photo.setUid(uid); photo.setCaption(caption); photo.setUrlHead(src); photo.setUrlTiny(src_small); photo.setUrlLarge(src_big); return photo; } @Override public String toString() { StringBuffer sb = new StringBuffer(); sb.append(KEY_PID).append(" = ").append(pid).append("\r\n"); sb.append(KEY_UID).append(" = ").append(uid).append("\r\n"); sb.append(KEY_SRC).append(" = ").append(src).append("\r\n"); sb.append(KEY_SRC_SMALL).append(" = ").append(src_small).append("\r\n"); sb.append(KEY_SRC_BIG).append(" = ").append(src_big).append("\r\n"); sb.append(KEY_CAPTION).append(" = ").append(caption).append("\r\n"); return sb.toString(); } public int describeContents() { return 0; } public void writeToParcel(Parcel dest, int flag) { Bundle bundle = new Bundle(); if (pid != 0) { bundle.putLong(KEY_PID, pid); } if (uid != 0) { bundle.putLong(KEY_UID, uid); } if (caption != null) { bundle.putString(KEY_CAPTION, caption); } if (src != null) { bundle.putString(KEY_SRC, src); } if (src_small != null) { bundle.putString(KEY_SRC_SMALL, src_small); } if (src_big != null) { bundle.putString(KEY_SRC_BIG, src_big); } dest.writeBundle(bundle); } public static final Parcelable.Creator<PhotoUploadResponseBean> CREATOR = new Parcelable.Creator<PhotoUploadResponseBean>() { public PhotoUploadResponseBean createFromParcel(Parcel in) { return new PhotoUploadResponseBean(in); } public PhotoUploadResponseBean[] newArray(int size) { return new PhotoUploadResponseBean[size]; } }; /** * 构造函数,根据序列化对象构造实例 * * @param in */ public PhotoUploadResponseBean(Parcel in) { super(null); Bundle bundle = in.readBundle(); if (bundle.containsKey(KEY_PID)) { pid = bundle.getLong(KEY_PID); } if (bundle.containsKey(KEY_UID)) { uid = bundle.getLong(KEY_UID); } if (bundle.containsKey(KEY_CAPTION)) { caption = bundle.getString(KEY_CAPTION); } if (bundle.containsKey(KEY_SRC)) { src = bundle.getString(KEY_SRC); } if (bundle.containsKey(KEY_SRC_SMALL)) { src_small = bundle.getString(KEY_SRC_SMALL); } if (bundle.containsKey(KEY_SRC_BIG)) { src_big = bundle.getString(KEY_SRC_BIG); } } }