package com.linroid.sky31radio.module; import android.content.Context; import com.linroid.sky31radio.App; import com.linroid.sky31radio.BuildConfig; import com.linroid.sky31radio.service.RadioPlaybackService; import java.io.File; import javax.inject.Named; import javax.inject.Singleton; import dagger.Module; import dagger.Provides; import timber.log.Timber; @Module( injects = { App.class, RadioPlaybackService.class }, includes = { DataModule.class }, library = true ) public class AppModule { Context ctx; public AppModule(Context ctx) { this.ctx = ctx; } @Provides Context provideContext() { return this.ctx; } @Provides Timber.Tree provideTimberTree(){ return BuildConfig.DEBUG ? new Timber.DebugTree() : new Timber.HollowTree(); } @Provides @Singleton @Named("Root") File provideCacheDir(Context ctx){ return ctx.getCacheDir(); } @Provides @Singleton @Named("Http") File provideHttpCacheDir(@Named("Root") File root){ return new File(root, "http"); } @Provides @Singleton @Named("Data") File provideDataCacheDir(@Named("Root") File data){ return new File(data, "data"); } }