package com.jdroid.android.about;
import android.support.annotation.NonNull;
import com.jdroid.android.about.analytics.AboutAnalyticsSender;
import com.jdroid.android.about.analytics.AboutAnalyticsTracker;
import com.jdroid.android.about.analytics.AboutFirebaseAnalyticsTracker;
import com.jdroid.android.about.analytics.AboutGoogleAnalyticsTracker;
import com.jdroid.android.application.AbstractAppModule;
import com.jdroid.android.application.AbstractApplication;
import com.jdroid.android.debug.PreferencesAppender;
import com.jdroid.java.analytics.BaseAnalyticsSender;
import com.jdroid.java.analytics.BaseAnalyticsTracker;
import com.jdroid.java.collections.Lists;
import java.util.List;
public class AboutAppModule extends AbstractAppModule {
public static final String MODULE_NAME = AboutAppModule.class.getName();
public static AboutAppModule get() {
return (AboutAppModule)AbstractApplication.get().getAppModule(MODULE_NAME);
}
private AboutContext aboutContext;
private AboutDebugContext aboutDebugContext;
public AboutAppModule() {
aboutContext = createAboutContext();
}
protected AboutContext createAboutContext() {
return new AboutContext();
}
public AboutContext getAboutContext() {
return aboutContext;
}
@Override
public List<PreferencesAppender> getPreferencesAppenders() {
return getAboutDebugContext().getPreferencesAppenders();
}
public AboutDebugContext getAboutDebugContext() {
synchronized (AbstractApplication.class) {
if (aboutDebugContext == null) {
aboutDebugContext = createAboutDebugContext();
}
}
return aboutDebugContext;
}
protected AboutDebugContext createAboutDebugContext() {
return new AboutDebugContext();
}
@NonNull
@Override
public BaseAnalyticsSender<? extends BaseAnalyticsTracker> createModuleAnalyticsSender(List<? extends BaseAnalyticsTracker> analyticsTrackers) {
return new AboutAnalyticsSender((List<AboutAnalyticsTracker>)analyticsTrackers);
}
@Override
public List<? extends BaseAnalyticsTracker> createModuleAnalyticsTrackers() {
return Lists.newArrayList(new AboutGoogleAnalyticsTracker(), new AboutFirebaseAnalyticsTracker());
}
@NonNull
@Override
public AboutAnalyticsSender getAnalyticsSender() {
return (AboutAnalyticsSender)super.getAnalyticsSender();
}
}