package com.aiyou.bbs.bean; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import android.content.Context; import com.aiyou.bbs.utils.BBSManager; import com.aiyou.utils.JsonHelper; import com.aiyou.utils.http.HttpManager; /** * 用户信箱元数据 * * @author sollian */ public class Mailbox { public enum MailboxType { INBOX("inbox"), // 收件箱 OUTBOX("outbox"), // 发件箱 DELETED("deleted"); // 回收站 private String mType; MailboxType(String type) { mType = type; } @Override public String toString() { return mType; } } // 是否有新邮件 public boolean new_mail = false; // 信箱是否已满 public boolean full_mail = false; // 信箱已用空间 public String space_used; // 当前用户是否能发信 public boolean can_send = false; /** * 附加 */ // 信箱类型描述,包括:收件箱,发件箱,废纸篓 public String description; // 当前信箱的分页信息 public Pagination pagination; // 当前信箱所包含的信件元数据数组 public Mail[] mails; public Mailbox(String strJson) { if (strJson == null) { return; } try { JSONObject jsonObject = new JSONObject(strJson); new_mail = JsonHelper.getBoolean(jsonObject, "new_mail"); full_mail = JsonHelper.getBoolean(jsonObject, "full_mail"); space_used = JsonHelper.getString(jsonObject, "space_used"); can_send = JsonHelper.getBoolean(jsonObject, "can_send"); description = JsonHelper.getString(jsonObject, "description"); JSONObject pagObj = JsonHelper.getJSONObject(jsonObject, "pagination"); if (pagObj != null) { pagination = new Pagination(pagObj.toString()); } JSONArray jsonArray = JsonHelper.getJSONArray(jsonObject, "mail"); if (null != jsonArray) { int length = jsonArray.length(); mails = new Mail[length]; for (int i = 0; i < length; i++) { mails[i] = new Mail(jsonArray.opt(i).toString()); } } } catch (JSONException e) { e.printStackTrace(); } } /** * 获取指定信箱信息 * * @param box * @return */ public static String getMailBox(Context context, MailboxType box) { return getMailBox(context, box, 1); } /** * 获取指定信箱信息 * * @param box * @param page 信箱的页数 * @return */ public static String getMailBox(Context context, MailboxType box, int page) { return HttpManager.getInstance(context).getHttp(context, Mail.API_MAIL + box.toString() + BBSManager.FORMAT + "?appkey=" + BBSManager.APPKEY + "&page=" + page); } /** * 信箱属性信息,包括是否有新邮件 * * @return Mailbox元数据的json数据 */ public static String getMailBoxInfo(Context context) { return HttpManager.getInstance(context).getHttp(context, Mail.API_MAIL + "info" + BBSManager.FORMAT + "?appkey=" + BBSManager.APPKEY); } }