package com.mirhoseini.marvel;
import com.mirhoseini.marvel.util.ConsoleConstants;
import com.mirhoseini.marvel.util.ConsoleSchedulerProvider;
import com.mirhoseini.marvel.util.Constants;
import com.mirhoseini.marvel.util.SchedulerProvider;
import com.mirhoseini.marvel.util.StateManager;
import com.mirhoseini.marvel.util.StateManagerImpl;
import java.io.File;
import javax.inject.Named;
import javax.inject.Singleton;
import dagger.Module;
import dagger.Provides;
import okhttp3.HttpUrl;
/**
* Created by Mohsen on 20/10/2016.
*/
@Module
public class ConsoleModule {
@Provides
@Singleton
@Named("isDebug")
boolean provideIsDebug() {
return false;
}
@Provides
@Singleton
@Named("networkTimeoutInSeconds")
int provideNetworkTimeoutInSeconds() {
return ConsoleConstants.NETWORK_CONNECTION_TIMEOUT;
}
@Provides
@Singleton
HttpUrl provideEndpoint() {
return HttpUrl.parse(ConsoleConstants.BASE_URL);
}
@Provides
@Singleton
SchedulerProvider provideAppScheduler() {
return new ConsoleSchedulerProvider();
}
@Provides
@Singleton
@Named("cacheSize")
long provideCacheSize() {
return ConsoleConstants.CACHE_SIZE;
}
@Provides
@Singleton
@Named("cacheMaxAge")
int provideCacheMaxAgeMinutes() {
return ConsoleConstants.CACHE_MAX_AGE;
}
@Provides
@Singleton
@Named("cacheMaxStale")
int provideCacheMaxStaleDays() {
return ConsoleConstants.CACHE_MAX_STALE;
}
@Provides
@Singleton
@Named("retryCount")
public int provideApiRetryCount() {
return ConsoleConstants.API_RETRY_COUNT;
}
@Provides
@Singleton
@Named("cacheDir")
File provideCacheDir() {
return new File("build");
}
@Provides
@Named("isConnect")
boolean provideIsConnect() {
return true;
}
@Provides
@Singleton
public StateManager provideStateManager(StateManagerImpl stateManager) {
return stateManager;
}
}