/*
* Licensed Materials - Property of IBM
* © Copyright IBM Corporation 2015. All Rights Reserved.
*/
package com.ibm.mil.readyapps.telco.analytics;
import android.util.Log;
import com.google.gson.Gson;
import com.worklight.common.WLAnalytics;
import org.json.JSONException;
import org.json.JSONObject;
import java.sql.Timestamp;
import java.util.Date;
public final class OperationalAnalyticsReporter {
private static final Gson gson = new Gson();
/**
* planChangeAccepted() sends an Operational Analytics log anytime a user accepts a plan change.
*
* @param planChangeType the type of plan change that a user has accepted (ie baseplan
* increase, baseplan decrease, addon, etc)
* @param amount the cost amount of the plan change.
*/
public static void planChangeAccepted(@AnalyticsCnsts.PlanChange String planChangeType,
double amount) {
// Create a custom activity with a log message
Date date = new Date();
Timestamp curTime = new Timestamp(date.getTime());
String json = gson.toJson(new AnalyticsPlanChange(planChangeType, amount, curTime),
AnalyticsPlanChange.class);
JSONObject jsonObject = null;
try {
jsonObject = new JSONObject(json);
jsonObject.put("_activity", "planChanged");
Log.i("TEST", "JSON AFTER ACTIVITY " + jsonObject.toString());
WLAnalytics.log("Plan change accepted by a user", jsonObject); //async
} catch (JSONException e) {
e.printStackTrace();
}
}
/**
* pageTransition() sends an Operational Analytics log anytime a user changes from one screen
* to another.
*
* @param src The source page that the user is navigating from.
* @param dst The destination page that the user navigates to, it refers to there current
* screen.
* @param dwellTime The dwellTime in milliseconds that the user spent on the source page
* before transitioning to the destination page.
*/
public static void pageTransition(@AnalyticsCnsts.Page String src, @AnalyticsCnsts.Page
String dst, long dwellTime) {
Date date = new Date();
Timestamp curTime = new Timestamp(date.getTime());
String json = gson.toJson(new AnalyticsPageTransition(src, dst, curTime),
AnalyticsPageTransition.class);
JSONObject jsonObject = null;
try {
jsonObject = new JSONObject(json);
jsonObject.put("_activity", "pageTransition");
String dwellField = src + "_dwellTime";
double dwellTimeSeconds = (double) dwellTime / 1000;
jsonObject.put(dwellField, dwellTimeSeconds );
Log.i("TEST", "PAGE_TRANSITION : " + jsonObject.toString());
WLAnalytics.log("Page transition recorded.", jsonObject);
WLAnalytics.send();
} catch (JSONException e) {
e.printStackTrace();
}
}
}