package com.codeest.geeknews.di.module;
import com.codeest.geeknews.app.App;
import com.codeest.geeknews.model.DataManager;
import com.codeest.geeknews.model.db.DBHelper;
import com.codeest.geeknews.model.db.RealmHelper;
import com.codeest.geeknews.model.http.HttpHelper;
import com.codeest.geeknews.model.http.RetrofitHelper;
import com.codeest.geeknews.model.prefs.ImplPreferencesHelper;
import com.codeest.geeknews.model.prefs.PreferencesHelper;
import javax.inject.Singleton;
import dagger.Module;
import dagger.Provides;
/**
* Created by codeest on 16/8/7.
*/
@Module
public class AppModule {
private final App application;
public AppModule(App application) {
this.application = application;
}
@Provides
@Singleton
App provideApplicationContext() {
return application;
}
@Provides
@Singleton
HttpHelper provideHttpHelper(RetrofitHelper retrofitHelper) {
return retrofitHelper;
}
@Provides
@Singleton
DBHelper provideDBHelper(RealmHelper realmHelper) {
return realmHelper;
}
@Provides
@Singleton
PreferencesHelper providePreferencesHelper(ImplPreferencesHelper implPreferencesHelper) {
return implPreferencesHelper;
}
@Provides
@Singleton
DataManager provideDataManager(HttpHelper httpHelper, DBHelper DBHelper, PreferencesHelper preferencesHelper) {
return new DataManager(httpHelper, DBHelper, preferencesHelper);
}
}