package com.pandocloud.freeiot.jsbridge; import java.util.ArrayList; import java.util.List; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import android.util.Base64; import com.pandocloud.freeiot.utils.LogUtils; public class Message { private String callbackId; //callbackId private String responseId; //responseId private JSONObject responseData; //responseData private String data; //data of message private String handlerName; //name of handler private final static String CALLBACK_ID_STR = "callbackId"; private final static String RESPONSE_ID_STR = "responseId"; private final static String RESPONSE_DATA_STR = "responseData"; private final static String DATA_STR = "data"; private final static String HANDLER_NAME_STR = "handlerName"; public String getResponseId() { return responseId; } public void setResponseId(String responseId) { this.responseId = responseId; } public JSONObject getResponseData() { return responseData; } public void setResponseData(JSONObject responseData) { this.responseData = responseData; } public String getCallbackId() { return callbackId; } public void setCallbackId(String callbackId) { this.callbackId = callbackId; } public String getData() { return data; } public void setData(String data) { this.data = data; } public String getHandlerName() { return handlerName; } public void setHandlerName(String handlerName) { this.handlerName = handlerName; } public String toBase64Json() { return Base64.encodeToString(toJson().getBytes(), Base64.DEFAULT); } public String toJson(){ JSONObject jsonObject= new JSONObject(); try { jsonObject.put(CALLBACK_ID_STR, getCallbackId()); jsonObject.put(DATA_STR, getData()); jsonObject.put(HANDLER_NAME_STR, getHandlerName()); jsonObject.put(RESPONSE_DATA_STR, getResponseData()); jsonObject.put(RESPONSE_ID_STR, getResponseId()); return jsonObject.toString(); } catch (JSONException e) { e.printStackTrace(); } return null; } // public static Message toObject(String jsonStr){ // Message m = new Message(); // try { // JSONObject jsonObject = new JSONObject(jsonStr); // m.setHandlerName(jsonObject.has(HANDLER_NAME_STR) ? jsonObject.getString(HANDLER_NAME_STR):null); // m.setCallbackId(jsonObject.has(CALLBACK_ID_STR) ? jsonObject.getString(CALLBACK_ID_STR):null); //// m.setResponseData(jsonObject.has(RESPONSE_DATA_STR) ? jsonObject.getString(RESPONSE_DATA_STR):null); // m.setResponseId(jsonObject.has(RESPONSE_ID_STR) ? jsonObject.getString(RESPONSE_ID_STR):null); // m.setData(jsonObject.has(DATA_STR) ? jsonObject.getString(DATA_STR):null); // return m; // } catch (JSONException e) { // e.printStackTrace(); // } // return m; // } public static List<Message> toArrayList(String jsonStr){ List<Message> list = new ArrayList<Message>(); try { jsonStr = new String(Base64.decode(jsonStr.getBytes(), Base64.DEFAULT)); LogUtils.e(jsonStr); JSONArray jsonArray = new JSONArray(jsonStr); for(int i = 0; i < jsonArray.length(); i++){ Message m = new Message(); JSONObject jsonObject = jsonArray.getJSONObject(i); m.setHandlerName(jsonObject.has(HANDLER_NAME_STR) ? jsonObject.getString(HANDLER_NAME_STR):null); m.setCallbackId(jsonObject.has(CALLBACK_ID_STR) ? jsonObject.getString(CALLBACK_ID_STR):null); m.setResponseData(jsonObject.has(RESPONSE_DATA_STR) ? jsonObject.getJSONObject(RESPONSE_DATA_STR) : null); m.setResponseId(jsonObject.has(RESPONSE_ID_STR) ? jsonObject.getString(RESPONSE_ID_STR):null); m.setData(jsonObject.has(DATA_STR) ? jsonObject.getString(DATA_STR):null); list.add(m); } } catch (JSONException e) { e.printStackTrace(); } return list; } }