package co.smartreceipts.android.di;
import android.app.Activity;
import android.app.Service;
import android.support.v4.app.Fragment;
import co.smartreceipts.android.activities.SmartReceiptsActivity;
import co.smartreceipts.android.di.subcomponents.CSVColumnsListFragmentSubcomponent;
import co.smartreceipts.android.di.subcomponents.CategoriesListFragmentSubcomponent;
import co.smartreceipts.android.di.subcomponents.DeleteRemoteBackupProgressDialogFragmentSubcomponent;
import co.smartreceipts.android.di.subcomponents.DistanceDialogFragmentSubcomponent;
import co.smartreceipts.android.di.subcomponents.DistanceFragmentSubcomponent;
import co.smartreceipts.android.di.subcomponents.DownloadRemoteBackupImagesProgressDialogFragmentSubcomponent;
import co.smartreceipts.android.di.subcomponents.ExportBackupWorkerProgressDialogFragmentSubcomponent;
import co.smartreceipts.android.di.subcomponents.FeedbackDialogFragmentSubcomponent;
import co.smartreceipts.android.di.subcomponents.ImportLocalBackupWorkerProgressDialogFragmentSubcomponent;
import co.smartreceipts.android.di.subcomponents.ImportRemoteBackupWorkerProgressDialogFragmentSubcomponent;
import co.smartreceipts.android.di.subcomponents.InformAboutPdfImageAttachmentDialogFragmentSubcomponent;
import co.smartreceipts.android.di.subcomponents.PDFColumnsListFragmentSubcomponent;
import co.smartreceipts.android.di.subcomponents.PaymentMethodsListFragmentSubcomponent;
import co.smartreceipts.android.di.subcomponents.RatingDialogFragmentSubcomponent;
import co.smartreceipts.android.di.subcomponents.ReceiptMoveCopyDialogFragmentSubcomponent;
import co.smartreceipts.android.di.subcomponents.SelectAutomaticBackupProviderDialogFragmentSubcomponent;
import co.smartreceipts.android.di.subcomponents.SettingsActivitySubcomponent;
import co.smartreceipts.android.di.subcomponents.SmartReceiptsActivitySubcomponent;
import co.smartreceipts.android.fragments.DistanceDialogFragment;
import co.smartreceipts.android.fragments.DistanceFragment;
import co.smartreceipts.android.fragments.InformAboutPdfImageAttachmentDialogFragment;
import co.smartreceipts.android.fragments.ReceiptMoveCopyDialogFragment;
import co.smartreceipts.android.fragments.SelectAutomaticBackupProviderDialogFragment;
import co.smartreceipts.android.ocr.widget.di.OcrConfigurationFragmentSubcomponent;
import co.smartreceipts.android.rating.FeedbackDialogFragment;
import co.smartreceipts.android.rating.RatingDialogFragment;
import co.smartreceipts.android.settings.widget.CSVColumnsListFragment;
import co.smartreceipts.android.settings.widget.CategoriesListFragment;
import co.smartreceipts.android.settings.widget.PDFColumnsListFragment;
import co.smartreceipts.android.settings.widget.PaymentMethodsListFragment;
import co.smartreceipts.android.settings.widget.SettingsActivity;
import co.smartreceipts.android.sync.drive.services.DriveCompletionEventService;
import co.smartreceipts.android.sync.drive.services.di.DriveCompletionEventServiceSubcomponent;
import co.smartreceipts.android.sync.widget.backups.BackupsFragment;
import co.smartreceipts.android.sync.widget.backups.DeleteRemoteBackupDialogFragment;
import co.smartreceipts.android.sync.widget.backups.DeleteRemoteBackupProgressDialogFragment;
import co.smartreceipts.android.sync.widget.backups.DownloadRemoteBackupImagesProgressDialogFragment;
import co.smartreceipts.android.sync.widget.backups.ExportBackupWorkerProgressDialogFragment;
import co.smartreceipts.android.sync.widget.backups.ImportLocalBackupWorkerProgressDialogFragment;
import co.smartreceipts.android.sync.widget.backups.ImportRemoteBackupWorkerProgressDialogFragment;
import dagger.Binds;
import dagger.Module;
import dagger.android.ActivityKey;
import dagger.android.AndroidInjector;
import dagger.android.ServiceKey;
import dagger.android.support.FragmentKey;
import dagger.multibindings.IntoMap;
@Module(
subcomponents = {
SmartReceiptsActivitySubcomponent.class,
SettingsActivitySubcomponent.class,
DriveCompletionEventServiceSubcomponent.class,
CSVColumnsListFragmentSubcomponent.class,
PDFColumnsListFragmentSubcomponent.class,
DistanceFragmentSubcomponent.class,
DistanceDialogFragmentSubcomponent.class,
InformAboutPdfImageAttachmentDialogFragmentSubcomponent.class,
DeleteRemoteBackupProgressDialogFragmentSubcomponent.class,
DownloadRemoteBackupImagesProgressDialogFragmentSubcomponent.class,
ExportBackupWorkerProgressDialogFragmentSubcomponent.class,
ImportLocalBackupWorkerProgressDialogFragmentSubcomponent.class,
ImportRemoteBackupWorkerProgressDialogFragmentSubcomponent.class,
FeedbackDialogFragmentSubcomponent.class,
OcrConfigurationFragmentSubcomponent.class,
RatingDialogFragmentSubcomponent.class,
PaymentMethodsListFragmentSubcomponent.class,
CategoriesListFragmentSubcomponent.class,
ReceiptMoveCopyDialogFragmentSubcomponent.class,
SelectAutomaticBackupProviderDialogFragmentSubcomponent.class,
}
)
public abstract class GlobalBindingModule {
@Binds
@IntoMap
@ActivityKey(SmartReceiptsActivity.class)
public abstract AndroidInjector.Factory<? extends Activity> smartReceiptsActivitySubcomponentBuilder(
SmartReceiptsActivitySubcomponent.Builder builder);
@Binds
@IntoMap
@ActivityKey(SettingsActivity.class)
public abstract AndroidInjector.Factory<? extends Activity> settingsActivitySubcomponentBuilder(
SettingsActivitySubcomponent.Builder builder);
@Binds
@IntoMap
@ServiceKey(DriveCompletionEventService.class)
public abstract AndroidInjector.Factory<? extends Service> driveCompletionEventServiceSubcomponentBuilder(
DriveCompletionEventServiceSubcomponent.Builder builder);
@Binds
@IntoMap
@FragmentKey(CSVColumnsListFragment.class)
public abstract AndroidInjector.Factory<? extends Fragment> csvColumnListFragmentSubcomponentBuilder(
CSVColumnsListFragmentSubcomponent.Builder builder);
@Binds
@IntoMap
@FragmentKey(PDFColumnsListFragment.class)
public abstract AndroidInjector.Factory<? extends Fragment> pdfColumnListFragmentSubcomponentBuilder(
PDFColumnsListFragmentSubcomponent.Builder builder);
@Binds
@IntoMap
@FragmentKey(DistanceFragment.class)
public abstract AndroidInjector.Factory<? extends Fragment> distanceFragmentBuilder(
DistanceFragmentSubcomponent.Builder builder);
@Binds
@IntoMap
@FragmentKey(DistanceDialogFragment.class)
public abstract AndroidInjector.Factory<? extends Fragment> distanceDialogFragmentBuilder(
DistanceDialogFragmentSubcomponent.Builder builder);
@Binds
@IntoMap
@FragmentKey(InformAboutPdfImageAttachmentDialogFragment.class)
public abstract AndroidInjector.Factory<? extends Fragment> informDialogBuilder(
InformAboutPdfImageAttachmentDialogFragmentSubcomponent.Builder builder);
@Binds
@IntoMap
@FragmentKey(DeleteRemoteBackupProgressDialogFragment.class)
public abstract AndroidInjector.Factory<? extends Fragment> deleteRemoteBackupProgressFragmentBuilder(
DeleteRemoteBackupProgressDialogFragmentSubcomponent.Builder builder);
@Binds
@IntoMap
@FragmentKey(DownloadRemoteBackupImagesProgressDialogFragment.class)
public abstract AndroidInjector.Factory<? extends Fragment> downloadRemoteBackupImagesProgressFragmentBuilder(
DownloadRemoteBackupImagesProgressDialogFragmentSubcomponent.Builder builder);
@Binds
@IntoMap
@FragmentKey(ExportBackupWorkerProgressDialogFragment.class)
public abstract AndroidInjector.Factory<? extends Fragment> exportBackupWorkerProgressDialogFragmentBuilder(
ExportBackupWorkerProgressDialogFragmentSubcomponent.Builder builder);
@Binds
@IntoMap
@FragmentKey(ImportLocalBackupWorkerProgressDialogFragment.class)
public abstract AndroidInjector.Factory<? extends Fragment> importLocalBackupWorkerProgressDialogFragmentBuilder(
ImportLocalBackupWorkerProgressDialogFragmentSubcomponent.Builder builder);
@Binds
@IntoMap
@FragmentKey(ImportRemoteBackupWorkerProgressDialogFragment.class)
public abstract AndroidInjector.Factory<? extends Fragment> importRemoteBackupWorkerProgressDialogFragmentBuilder(
ImportRemoteBackupWorkerProgressDialogFragmentSubcomponent.Builder builder);
@Binds
@IntoMap
@FragmentKey(FeedbackDialogFragment.class)
public abstract AndroidInjector.Factory<? extends Fragment> feedbackDialogFragmentBuilder(
FeedbackDialogFragmentSubcomponent.Builder builder);
@Binds
@IntoMap
@FragmentKey(RatingDialogFragment.class)
public abstract AndroidInjector.Factory<? extends Fragment> ratingDialogFragmentBuilder(
RatingDialogFragmentSubcomponent.Builder builder);
@Binds
@IntoMap
@FragmentKey(PaymentMethodsListFragment.class)
public abstract AndroidInjector.Factory<? extends Fragment> paymentMethodsListFragmentBuilder(
PaymentMethodsListFragmentSubcomponent.Builder builder);
@Binds
@IntoMap
@FragmentKey(CategoriesListFragment.class)
public abstract AndroidInjector.Factory<? extends Fragment> categoriesListFragmentBuilder(
CategoriesListFragmentSubcomponent.Builder builder);
@Binds
@IntoMap
@FragmentKey(ReceiptMoveCopyDialogFragment.class)
public abstract AndroidInjector.Factory<? extends Fragment> receiptMoveCopyDialogFragmentBuilder(
ReceiptMoveCopyDialogFragmentSubcomponent.Builder builder);
@Binds
@IntoMap
@FragmentKey(SelectAutomaticBackupProviderDialogFragment.class)
public abstract AndroidInjector.Factory<? extends Fragment> selectAutomaticBackupProviderDialogFragmentBuilder(
SelectAutomaticBackupProviderDialogFragmentSubcomponent.Builder builder);
}