package treehou.se.habit.data; import android.content.Context; import android.preference.PreferenceManager; import com.google.gson.Gson; import javax.inject.Singleton; import dagger.Provides; import io.realm.Realm; import io.realm.RealmConfiguration; import se.treehou.ng.ohcommunicator.connector.GsonHelper; import treehou.se.habit.core.db.model.OHRealm; import treehou.se.habit.core.db.model.OHRealmModule; import treehou.se.habit.core.db.model.ServerDB; import treehou.se.habit.module.AndroidModule; import treehou.se.habit.module.ForApplication; import treehou.se.habit.module.ServerLoaderFactory; import treehou.se.habit.util.ConnectionFactory; import treehou.se.habit.util.Settings; public class TestAndroidModule extends AndroidModule { public TestAndroidModule(Context application) { super(application); } @Provides @Singleton @ForApplication Context provideApplicationContext() { return application; } @Provides @Singleton public android.content.SharedPreferences provideSharedPreferences() { return PreferenceManager.getDefaultSharedPreferences(application); } @Provides public Gson provideGson() { return GsonHelper.createGsonBuilder(); } @Provides public Settings provideSettingsManager(){ return Settings.instance(application); } @Provides public ConnectionFactory provideConnectionFactory(){ return new ConnectionFactory(); } @Override public OHRealm provideRealm() { return new TestOHRealm(application); } @Provides public ServerLoaderFactory provideServerLoaderFactory(ConnectionFactory connectionFactory){ return new TestServerLoaderFactory(connectionFactory); } class TestOHRealm extends OHRealm { public TestOHRealm(Context context) { super(context); } @Override public void setup(Context context) { Realm.setDefaultConfiguration(configuration(context)); int size = Realm.getDefaultInstance().where(ServerDB.class).findAll().size(); if(size <= 0) { ServerDB server = new ServerDB(); ServerDB.save(server); } } @Override public RealmConfiguration configuration(Context context) { return new RealmConfiguration.Builder(context) .modules(new OHRealmModule()) .name("treehou-test-2.realm") .schemaVersion(1) .build(); } } }