package treehou.se.habit.module;
import android.content.Context;
import android.preference.PreferenceManager;
import android.support.v4.app.Fragment;
import com.google.gson.Gson;
import com.ning.http.client.Realm;
import javax.inject.Singleton;
import dagger.Component;
import dagger.Module;
import dagger.Provides;
import se.treehou.ng.ohcommunicator.connector.GsonHelper;
import treehou.se.habit.HabitApplication;
import treehou.se.habit.MainActivity;
import treehou.se.habit.ui.menu.NavigationDrawerFragment;
import treehou.se.habit.core.db.model.OHRealm;
import treehou.se.habit.ui.settings.subsettings.GeneralSettingsFragment;
import treehou.se.habit.ui.sitemaps.SitemapListFragment;
import treehou.se.habit.util.ConnectionFactory;
import treehou.se.habit.util.DatabaseServerLoaderFactory;
import treehou.se.habit.util.Settings;
@Module
public class AndroidModule {
protected final Context application;
public AndroidModule(Context application) {
this.application = application;
}
@Provides @Singleton @ForApplication Context provideApplicationContext() {
return application;
}
@Provides
public android.content.SharedPreferences provideSharedPreferences() {
return PreferenceManager.getDefaultSharedPreferences(application);
}
@Provides
public OHRealm provideRealm() {
return new OHRealm(application);
}
@Provides
public Gson provideGson() {
return GsonHelper.createGsonBuilder();
}
@Provides
public Settings provideSettingsManager(){
return Settings.instance(application);
}
@Provides
public ConnectionFactory provideConnectionFactory(){
return new ConnectionFactory();
}
@Provides
public ServerLoaderFactory provideServerLoaderFactory(DatabaseServerLoaderFactory databaseServerLoaderFactory){
return databaseServerLoaderFactory;
}
}