package fi.bitrite.android.ws;
import android.app.Application;
import android.content.Context;
import android.preference.PreferenceManager;
import com.google.android.gms.analytics.GoogleAnalytics;
import com.google.android.gms.analytics.Tracker;
import java.util.HashMap;
public class WSAndroidApplication extends Application {
public static final String TAG = "WSAndroidApplication";
private static Context mContext;
// Google Analytics Support
public enum TrackerName {
APP_TRACKER,
GLOBAL_TRACKER
}
HashMap<TrackerName, Tracker> mTrackers = new HashMap<TrackerName, Tracker>();
public synchronized Tracker getTracker(TrackerName trackerId) {
String PROPERTY_ID = getString(R.string.ga_property_id);
if (!mTrackers.containsKey(trackerId)) {
GoogleAnalytics analytics = GoogleAnalytics.getInstance(this);
Tracker t = (trackerId == TrackerName.APP_TRACKER) ? analytics.newTracker(R.xml.app_tracker)
: (trackerId == TrackerName.GLOBAL_TRACKER) ? analytics.newTracker(R.xml.global_tracker) :
analytics.newTracker(PROPERTY_ID);
mTrackers.put(trackerId, t);
}
return mTrackers.get(trackerId);
}
public void onCreate() {
super.onCreate();
mContext = getApplicationContext();
// Set automatic activity reports, per http://stackoverflow.com/a/24983778/215713
GoogleAnalytics analytics = GoogleAnalytics.getInstance(this);
analytics.enableAutoActivityReports(this);
boolean gaOptOut = !PreferenceManager.getDefaultSharedPreferences(this)
.getBoolean("ga_collect_stats", true);
analytics.setAppOptOut(gaOptOut);
}
public static Context getAppContext() {
return WSAndroidApplication.mContext;
}
}