package com.moez.QKSMS.common; import android.content.Context; import android.util.Log; import com.crashlytics.android.Crashlytics; import com.google.android.gms.analytics.GoogleAnalytics; import com.google.android.gms.analytics.HitBuilders; import com.google.android.gms.analytics.Tracker; import com.moez.QKSMS.R; public class AnalyticsManager implements AnalyticsManagerBase { private AnalyticsManager() { } private static class AnalyticsManagerHolder { private final static AnalyticsManager INSTANCE = new AnalyticsManager(); } public static AnalyticsManager getInstance() { return AnalyticsManagerHolder.INSTANCE; } private boolean mNeedsInit = true; private Context mContext; private Tracker mTracker; public void init(Context context) { if (LOCAL_LOGV) Log.v(TAG, "init called. mNeedsInit: " + mNeedsInit); if (mNeedsInit) { mNeedsInit = false; mContext = context; // Initialize tracker GoogleAnalytics analytics = GoogleAnalytics.getInstance(mContext); mTracker = analytics.newTracker(R.xml.google_analytics_tracker); } } public void sendEvent(String category, String action, String label) { if (LOCAL_LOGV) Log.v(TAG, "sendEvent category:" + category + ", action:" + action + ", label:" + label); HitBuilders.EventBuilder b = new HitBuilders.EventBuilder(); if (category != null) b.setCategory(category); if (action != null) b.setAction(action); if (label != null) b.setLabel(label); mTracker.send(b.build()); } public void sendEvent(String category, String action, String label, long value) { if (LOCAL_LOGV) Log.v(TAG, "sendEvent category:" + category + ", action:" + action + ", label:" + label + ", value:" + value); HitBuilders.EventBuilder b = new HitBuilders.EventBuilder(); if (category != null) b.setCategory(category); if (action != null) b.setAction(action); if (label != null) b.setLabel(label); b.setValue(value); mTracker.send(b.build()); } @Override public void log(String msg) { Crashlytics.log(msg); } }