public EventPayload(String label, String interactionId, String data, Map<String, Object> customData, ExtendedData... extendedData) { super(PayloadType.event); try { put(KEY_LABEL, label); if (interactionId != null) { put(KEY_INTERACTION_ID, interactionId); } if (data != null) { put(KEY_DATA, new JSONObject(data)); } if (customData != null && !customData.isEmpty()) { JSONObject customDataJson = generateCustomDataJson(customData); put(KEY_CUSTOM_DATA, customDataJson); } if (extendedData != null && extendedData.length != 0) { for (ExtendedData currentExtendedData : extendedData) { if (currentExtendedData != null) { put(currentExtendedData.getTypeName(), currentExtendedData.toJsonObject()); } } } } catch (JSONException e) { ApptentiveLog.e(e, "Unable to construct Event."); logException(e); } }