package com.jdroid.android.crashlytics; import android.support.v4.util.Pair; import com.crashlytics.android.Crashlytics; import com.jdroid.android.analytics.AnalyticsTracker; import com.jdroid.android.application.AbstractAppModule; import com.jdroid.android.application.AbstractApplication; import com.jdroid.java.collections.Lists; import java.util.List; import io.fabric.sdk.android.Kit; public class CrashlyticsAppModule extends AbstractAppModule { public static final String MODULE_NAME = CrashlyticsAppModule.class.getName(); public static CrashlyticsAppModule get() { return (CrashlyticsAppModule)AbstractApplication.get().getAppModule(MODULE_NAME); } private CrashlyticsAppContext crashlyticsAppContext; public CrashlyticsAppModule() { crashlyticsAppContext = createCrashlyticsAppContext(); } protected CrashlyticsAppContext createCrashlyticsAppContext() { return new CrashlyticsAppContext(); } public CrashlyticsAppContext getCrashlyticsAppContext() { return crashlyticsAppContext; } @Override public void onCreate() { super.onCreate(); AbstractApplication.get().getDebugContext().addCustomDebugInfoProperty(new Pair<String, Object>("Crashlytics Enabled", crashlyticsAppContext.isCrashlyticsEnabled())); } @Override public List<Kit> getFabricKits() { return Lists.<Kit>newArrayList(new Crashlytics()); } @Override public List<? extends AnalyticsTracker> getAnalyticsTrackers() { return Lists.newArrayList(crashlyticsAppContext.getAnalyticsTracker()); } }