package com.jdroid.android.application; import android.content.Context; import android.content.res.Configuration; import android.support.v4.app.Fragment; import com.jdroid.android.activity.AbstractFragmentActivity; import com.jdroid.android.activity.ActivityDelegate; import com.jdroid.android.analytics.AnalyticsTracker; import com.jdroid.android.debug.PreferencesAppender; import com.jdroid.android.firebase.remoteconfig.RemoteConfigParameter; import com.jdroid.android.fragment.FragmentDelegate; import com.jdroid.java.analytics.BaseAnalyticsSender; import com.jdroid.java.analytics.BaseAnalyticsTracker; import java.util.List; import io.fabric.sdk.android.Kit; public interface AppModule { public void onCreate(); public void onConfigurationChanged(Configuration newConfig); public void onLowMemory(); public void onTrimMemory(int level); public void attachBaseContext(Context base); public void onInstanceIdTokenRefresh(); public void onGooglePlayServicesUpdated(); public List<? extends AnalyticsTracker> getAnalyticsTrackers(); public List<Kit> getFabricKits(); public List<PreferencesAppender> getPreferencesAppenders(); public void onInitializeGcmTasks(); public ActivityDelegate createActivityDelegate(AbstractFragmentActivity abstractFragmentActivity); public FragmentDelegate createFragmentDelegate(Fragment fragment); // Analytics public BaseAnalyticsSender<? extends BaseAnalyticsTracker> createModuleAnalyticsSender(List<? extends BaseAnalyticsTracker> analyticsTrackers); public List<? extends BaseAnalyticsTracker> createModuleAnalyticsTrackers(); public BaseAnalyticsSender<? extends BaseAnalyticsTracker> getAnalyticsSender(); public List<RemoteConfigParameter> getRemoteConfigParameters(); }