package com.quran.labs.androidquran.component.application;
import com.quran.labs.androidquran.QuranImportActivity;
import com.quran.labs.androidquran.component.activity.PagerActivityComponent;
import com.quran.labs.androidquran.data.QuranDataProvider;
import com.quran.labs.androidquran.module.application.ApplicationModule;
import com.quran.labs.androidquran.module.application.DatabaseModule;
import com.quran.labs.androidquran.module.application.NetworkModule;
import com.quran.labs.androidquran.service.QuranDownloadService;
import com.quran.labs.androidquran.ui.QuranActivity;
import com.quran.labs.androidquran.ui.TranslationManagerActivity;
import com.quran.labs.androidquran.ui.fragment.AddTagDialog;
import com.quran.labs.androidquran.ui.fragment.BookmarksFragment;
import com.quran.labs.androidquran.ui.fragment.QuranAdvancedSettingsFragment;
import com.quran.labs.androidquran.ui.fragment.QuranSettingsFragment;
import com.quran.labs.androidquran.ui.fragment.TagBookmarkDialog;
import javax.inject.Singleton;
import dagger.Component;
@Singleton
@Component(modules = { ApplicationModule.class, DatabaseModule.class, NetworkModule.class } )
public interface ApplicationComponent {
// subcomponents
PagerActivityComponent.Builder pagerActivityComponentBuilder();
// content provider
void inject(QuranDataProvider quranDataProvider);
// services
void inject(QuranDownloadService quranDownloadService);
// activities
void inject(QuranActivity quranActivity);
void inject(QuranImportActivity quranImportActivity);
// fragments
void inject(BookmarksFragment bookmarksFragment);
void inject(QuranSettingsFragment fragment);
void inject(TranslationManagerActivity translationManagerActivity);
void inject(QuranAdvancedSettingsFragment quranAdvancedSettingsFragment);
// dialogs
void inject(TagBookmarkDialog tagBookmarkDialog);
void inject(AddTagDialog addTagDialog);
}