package com.tencent.xinge; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Map; import java.util.Vector; import org.json.JSONArray; import org.json.JSONObject; public class MessageIOS { public MessageIOS() { this.m_sendTime = "2014-03-13 16:13:00"; this.m_acceptTimes = new Vector(); this.m_raw = ""; this.m_alertStr = ""; this.m_alertJo = new JSONObject(); this.m_badge = 0; this.m_sound = ""; this.m_category = ""; this.m_loopInterval = -1; this.m_loopTimes = -1; } public void setExpireTime(int expireTime) { this.m_expireTime = expireTime; } public int getExpireTime() { return this.m_expireTime; } public void setSendTime(String sendTime) { this.m_sendTime = sendTime; } public String getSendTime() { return this.m_sendTime; } public void addAcceptTime(TimeInterval acceptTime) { this.m_acceptTimes.add(acceptTime); } public String acceptTimeToJson() { JSONArray json_arr = new JSONArray(); for (TimeInterval ti : m_acceptTimes) { JSONObject jtmp = ti.toJsonObject(); json_arr.put(jtmp); } return json_arr.toString(); } public JSONArray acceptTimeToJsonArray() { JSONArray json_arr = new JSONArray(); for (TimeInterval ti : m_acceptTimes) { JSONObject jtmp = ti.toJsonObject(); json_arr.put(jtmp); } return json_arr; } public int getType() { return 0; } public void setCustom(Map custom) { this.m_custom = custom; } public void setRaw(String raw) { this.m_raw = raw; } public void setAlert(String alert) { m_alertStr = alert; } public void setAlert(JSONObject alert) { m_alertJo = alert; } public void setBadge(int badge) { m_badge = badge; } public void setSound(String sound) { m_sound = sound; } public void setCategory(String category) { m_category = category; } public int getLoopInterval() { return m_loopInterval; } public void setLoopInterval(int loopInterval) { m_loopInterval = loopInterval; } public int getLoopTimes() { return m_loopTimes; } public void setLoopTimes(int loopTimes) { m_loopTimes = loopTimes; } public boolean isValid() { if (m_expireTime<0 || m_expireTime>3*24*60*60) return false; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); try { sdf.parse(m_sendTime); }catch(ParseException e){ return false; } if (!m_raw.isEmpty()) return true; for (TimeInterval ti : m_acceptTimes) { if(!ti.isValid()) return false; } if(m_alertStr.isEmpty() && m_alertJo.length()==0) return false; return true; } public String toJson() { if (!m_raw.isEmpty()) return m_raw; JSONObject json = new JSONObject(m_custom); json.put("accept_time", acceptTimeToJsonArray()); JSONObject aps = new JSONObject(); if(m_alertJo.length()!=0) aps.put("alert", m_alertJo); else aps.put("alert", m_alertStr); if(m_badge!=0) aps.put("badge", m_badge); if(!m_sound.isEmpty()) aps.put("sound", m_sound); if(!m_category.isEmpty()) aps.put("category", m_category); json.put("aps", aps); return json.toString(); } private int m_expireTime; private String m_sendTime; private Vector m_acceptTimes; private Map m_custom; private String m_raw; private String m_alertStr; private JSONObject m_alertJo; private int m_badge; private String m_sound; private String m_category; private int m_loopInterval; private int m_loopTimes; }