package com.esoxjem.movieguide; import android.app.Application; import android.os.StrictMode; import com.esoxjem.movieguide.details.DetailsComponent; import com.esoxjem.movieguide.details.DetailsModule; import com.esoxjem.movieguide.favorites.FavoritesModule; import com.esoxjem.movieguide.listing.ListingComponent; import com.esoxjem.movieguide.listing.ListingModule; import com.esoxjem.movieguide.network.NetworkModule; import com.esoxjem.movieguide.listing.sorting.SortingModule; /** * @author arun */ public class BaseApplication extends Application { private AppComponent appComponent; private DetailsComponent detailsComponent; private ListingComponent listingComponent; @Override public void onCreate() { super.onCreate(); StrictMode.enableDefaults(); appComponent = createAppComponent(); } private AppComponent createAppComponent() { return DaggerAppComponent.builder() .appModule(new AppModule(this)) .networkModule(new NetworkModule()) .favoritesModule(new FavoritesModule()) .build(); } public DetailsComponent createDetailsComponent() { detailsComponent = appComponent.plus(new DetailsModule()); return detailsComponent; } public void releaseDetailsComponent() { detailsComponent = null; } public ListingComponent createListingComponent() { listingComponent = appComponent.plus(new ListingModule()); return listingComponent; } public void releaseListingComponent() { listingComponent = null; } public ListingComponent getListingComponent() { return listingComponent; } }