package co.smartreceipts.android.di;
import java.util.Arrays;
import java.util.Collections;
import co.smartreceipts.android.ExtraInitializer;
import co.smartreceipts.android.ExtraInitializerPlusImpl;
import co.smartreceipts.android.ad.AdManager;
import co.smartreceipts.android.ad.NoOpAdManager;
import co.smartreceipts.android.analytics.Analytics;
import co.smartreceipts.android.analytics.AnalyticsManager;
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.PlusPurchaseWallet;
import co.smartreceipts.android.purchases.wallet.PurchaseWallet;
import dagger.Module;
import dagger.Provides;
@Module
public class AppModule {
@Provides
@ApplicationScope
public static AdManager provideAdManager(NoOpAdManager noOpAdManager) {
return noOpAdManager;
}
@Provides
@ApplicationScope
public static PurchaseWallet providePurchaseWallet (PlusPurchaseWallet plusPurchaseWallet) {
return plusPurchaseWallet;
}
@Provides
@ApplicationScope
public static ExtraInitializer provideExtraInitializer (ExtraInitializerPlusImpl plusInitializer) {
return plusInitializer;
}
@Provides
@ApplicationScope
public static Analytics provideAnalytics(FirebaseAnalytics firebaseAnalytics) {
return new AnalyticsManager(Collections.unmodifiableList(Arrays.asList(new AnalyticsLogger(),
firebaseAnalytics)));
}
}