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); } }
public void putData(Map<String, String> data) { if (data == null || data.isEmpty()) { return; } try { JSONObject dataObject; if (isNull(KEY_DATA)) { dataObject = new JSONObject(); put(KEY_DATA, dataObject); } else { dataObject = getJSONObject(KEY_DATA); } for (String key : data.keySet()) { dataObject.put(key, data.get(key)); } } catch (JSONException e) { ApptentiveLog.e(e, "Unable to add data to Event."); logException(e); } }
public String getEventLabel() { return optString(KEY_LABEL, null); }
ApptentiveLog.e("testExtendedDataEvents()"); try { EventPayload expected = new EventPayload(loadTextAssetAsString(TEST_DATA_DIR + "testExtendedDataEvents.json")); expected.setClientCreatedAtUtcOffset(Util.getUtcOffset()); EventPayload actual = new EventPayload("event_label", null, data, customData, commerce, time, location); actual.setClientCreatedAt(1.406316991967E9); actual.setNonce("4579c403-e8c5-4e6b-8826-f3d61e6ebb98"); boolean equal = JsonDiffer.areObjectsEqual(expected.getJsonObject(), actual.getJsonObject()); ApptentiveLog.e("Events are equal: %b", equal); assertTrue(equal);
public static JsonPayload createPayload(PayloadType type, String json) throws JSONException { switch (type) { case message: return MessageFactory.fromJson(json); case event: return new EventPayload(json); case device: return new DevicePayload(json); case sdk: //return new SdkPayload(json); // TODO: FIXME return null; case app_release: //return new AppReleasePayload(json); return null; case person: return new PersonPayload(json); case survey: return new SurveyResponsePayload(json); default: throw new IllegalArgumentException("Unexpected payload type: " + type); } } }
public static void sendMetric(final EventPayload.EventLabel type, final String trigger, final Map<String, String> data) { if (!isConversationQueue()) { dispatchOnConversationQueue(new DispatchTask() { @Override protected void execute() { sendMetric(type, trigger, data); } }); return; } Configuration config = Configuration.load(); if (config.isMetricsEnabled()) { ApptentiveLog.v(UTIL, "Sending Metric: %s, trigger: %s, data: %s", type.getLabelName(), trigger, data != null ? data.toString() : "null"); EventPayload event = new EventPayload(type.getLabelName(), trigger); event.putData(data); sendEvent(event); } }
public EventPayload(String label, String trigger) { this(label, (Map<String, String>) null); Map<String, String> data = new HashMap<>(); data.put(KEY_TRIGGER, trigger); putData(data); }
if (config.isMetricsEnabled()) { ApptentiveLog.v(UTIL, "Sending Error Metric: %s, data: %s", type.getLabelName(), data.toString()); EventPayload event = new EventPayload(type.getLabelName(), data); sendEvent(event);
public EventPayload(String label, Map<String, String> data) { super(PayloadType.event); try { put(KEY_LABEL, label); if (data != null && !data.isEmpty()) { JSONObject dataObject = new JSONObject(); for (String key : data.keySet()) { dataObject.put(key, data.get(key)); } put(KEY_DATA, dataObject); } } catch (JSONException e) { ApptentiveLog.e(e, "Unable to construct Event."); logException(e); } }
public static synchronized boolean engage(Context context, Conversation conversation, String vendor, String interaction, String interactionId, String eventName, String data, Map<String, Object> customData, ExtendedData... extendedData) { checkConversationQueue(); if (context == null) { throw new IllegalArgumentException("Context is null"); } if (conversation == null) { throw new IllegalArgumentException("Conversation is null"); } Assert.assertTrue(ApptentiveInternal.isApptentiveRegistered()); if (!ApptentiveInternal.isApptentiveRegistered()) { return false; } try { String eventLabel = generateEventLabel(vendor, interaction, eventName); ApptentiveLog.i(INTERACTIONS, "Engage event: '%s'", eventLabel); String versionName = ApptentiveInternal.getInstance().getApplicationVersionName(); int versionCode = ApptentiveInternal.getInstance().getApplicationVersionCode(); conversation.getEventData().storeEventForCurrentAppVersion(Util.currentTimeSeconds(), versionCode, versionName, eventLabel); conversation.addPayload(new EventPayload(eventLabel, interactionId, data, customData, extendedData)); return doEngage(conversation, context, eventLabel); } catch (Exception e) { ApptentiveLog.e(INTERACTIONS, e, "Exception while engaging event '%s'", eventName); logException(e); } return false; }