package br.com.dgimenes.nasapic.service; import android.content.Context; import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; import android.os.Bundle; import com.crashlytics.android.Crashlytics; import com.crashlytics.android.answers.Answers; import com.crashlytics.android.answers.CustomEvent; import com.flurry.android.FlurryAgent; import br.com.dgimenes.nasapic.control.ErrorMessage; import io.fabric.sdk.android.Fabric; public class EventsLogger { private static boolean initialized = false; public static void initialize(Context context) { if (!initialized) { initialized = true; // Fabric Fabric.with(context, new Crashlytics(), new Answers()); // Flurry try { ApplicationInfo ai = context.getPackageManager() .getApplicationInfo(context.getPackageName(), PackageManager.GET_META_DATA); Bundle bundle = ai.metaData; String flurryApiKey = bundle.getString("flurry.ApiKey"); FlurryAgent.setLogEnabled(false); FlurryAgent.setContinueSessionMillis(30000); FlurryAgent.init(context, flurryApiKey); } catch (Exception e) { Crashlytics.logException(e); } } } public static void logSessionStart(Context context) { // Flurry FlurryAgent.onStartSession(context); } public static void logSessionEnd(Context context) { // Flurry FlurryAgent.onEndSession(context); } public static void logEvent(String description) { // Fabric Answers.getInstance().logCustom(new CustomEvent(description)); // Flurry FlurryAgent.logEvent(description); } public static void logError(ErrorMessage error, Throwable e) { // Fabric Answers.getInstance().logCustom(new CustomEvent("ERROR" + error.analyticsMessage)); if (e != null) { Crashlytics.logException(e); } // Flurry if (e != null) { FlurryAgent.onError(error.id, error.analyticsMessage, e); } else { FlurryAgent.onError(error.id, error.analyticsMessage, "unknown"); } } }