package co.smartreceipts.android.di; import java.util.Arrays; import java.util.Collections; import co.smartreceipts.android.ExtraInitializer; import co.smartreceipts.android.ExtraInitializerFreeImpl; import co.smartreceipts.android.ad.AdManager; import co.smartreceipts.android.ad.FreeAdManager; import co.smartreceipts.android.analytics.Analytics; import co.smartreceipts.android.analytics.AnalyticsManager; import co.smartreceipts.android.analytics.GoogleAnalytics; import co.smartreceipts.android.analytics.impl.firebase.FirebaseAnalytics; import co.smartreceipts.android.analytics.impl.logger.AnalyticsLogger; import co.smartreceipts.android.di.scopes.ApplicationScope; import co.smartreceipts.android.purchases.wallet.DefaultPurchaseWallet; import co.smartreceipts.android.purchases.wallet.PurchaseWallet; import dagger.Module; import dagger.Provides; @Module public class AppModule { @Provides @ApplicationScope public static AdManager provideAdManager(FreeAdManager freeAdManager) { return freeAdManager; } @Provides @ApplicationScope public static PurchaseWallet providePurchaseWallet (DefaultPurchaseWallet defaultPurchaseWallet) { return defaultPurchaseWallet; } @Provides @ApplicationScope public static ExtraInitializer provideExtraInitializer (ExtraInitializerFreeImpl freeInitializer) { return freeInitializer; } @Provides @ApplicationScope public static Analytics provideAnalytics(FirebaseAnalytics firebaseAnalytics, GoogleAnalytics googleAnalytics) { return new AnalyticsManager(Collections.unmodifiableList(Arrays.asList(new AnalyticsLogger(), firebaseAnalytics, googleAnalytics))); } }