package io.evercam.connect; import android.app.Activity; import android.support.multidex.MultiDexApplication; import com.google.android.gms.analytics.GoogleAnalytics; import com.google.android.gms.analytics.HitBuilders; import com.google.android.gms.analytics.Tracker; import java.util.HashMap; public class EvercamDiscover extends MultiDexApplication { private static final String PROPERTY_ID = "UA-52483995-2"; private static final String TAG = "EvercamDiscoverApplication"; public enum TrackerName { APP_TRACKER, // Tracker used only in this app. GLOBAL_TRACKER, // Tracker used by all the apps from a company. } HashMap<TrackerName, Tracker> mTrackers = new HashMap<TrackerName, Tracker>(); public EvercamDiscover() { super(); } // @Override // public void onCreate() // { // super.onCreate(); // // Redirect URL, just for temporary testing // API.URL = "http://proxy.evr.cm:9292/v1/"; // } synchronized Tracker getTracker(TrackerName trackerId) { if(!mTrackers.containsKey(trackerId)) { GoogleAnalytics analytics = GoogleAnalytics.getInstance(this); Tracker t = (trackerId == TrackerName.APP_TRACKER) ? analytics.newTracker(R.xml .app_tracker) : analytics.newTracker(PROPERTY_ID); mTrackers.put(trackerId, t); } return mTrackers.get(trackerId); } private static Tracker getAppTracker(Activity activity) { return ((EvercamDiscover) activity.getApplication()).getTracker(TrackerName.APP_TRACKER); } /** * Send screen view to Google Analytics from activity with screen name. * * @param activity * @param screenName The screen name that shows in Google dashboard. */ public static void sendScreenAnalytics(Activity activity, String screenName) { Tracker tracker = getAppTracker(activity); tracker.setScreenName(screenName); tracker.send(new HitBuilders.AppViewBuilder().build()); } /** * Send an event with fixed details string id. */ public static void sendEventAnalytics(Activity activity, int cateory, int action, int label) { Tracker tracker = getAppTracker(activity); tracker.send(new HitBuilders.EventBuilder().setCategory(activity.getString(cateory)) .setAction(activity.getString(action)).setLabel(activity.getString(label)).build()); } /** * Send an event with a customed label. */ public static void sendEventAnalytics(Activity activity, int cateory, int action, String label) { Tracker tracker = getAppTracker(activity); tracker.send(new HitBuilders.EventBuilder().setCategory(activity.getString(cateory)).setAction(activity.getString(action)).setLabel(label).build()); } }