package de.westnordost.streetcomplete.data;
import android.content.Context;
import android.content.SharedPreferences;
import android.database.sqlite.SQLiteOpenHelper;
import javax.inject.Singleton;
import dagger.Module;
import dagger.Provides;
import de.westnordost.streetcomplete.data.changesets.OpenChangesetsDao;
import de.westnordost.streetcomplete.data.osm.persist.OsmQuestDao;
import de.westnordost.streetcomplete.data.statistics.QuestStatisticsDao;
import de.westnordost.streetcomplete.util.KryoSerializer;
import de.westnordost.streetcomplete.util.Serializer;
import de.westnordost.osmapi.changesets.ChangesetsDao;
@Module
public class DbModule
{
@Provides @Singleton public static SQLiteOpenHelper sqliteOpenHelper(Context ctx)
{
return new StreetCompleteOpenHelper(ctx);
}
@Provides @Singleton public static Serializer serializer()
{
return new KryoSerializer();
}
@Provides @Singleton public static QuestStatisticsDao questStatisticsDao(
SQLiteOpenHelper dbHelper, ChangesetsDao changesetsDao)
{
return new QuestStatisticsDao(dbHelper, changesetsDao);
}
@Provides @Singleton public static OpenChangesetsDao changesetsManagerDao(
SQLiteOpenHelper dbHelper, SharedPreferences prefs)
{
return new OpenChangesetsDao(dbHelper,prefs);
}
@Provides @Singleton public static OsmQuestDao osmQuestDao(
SQLiteOpenHelper dbHelper, Serializer serializer, QuestTypes questTypeList)
{
return new OsmQuestDao(dbHelper, serializer, questTypeList);
}
}