diff options
Diffstat (limited to 'app/src/main/kotlin/com/pitchedapps/frost/db')
3 files changed, 48 insertions, 21 deletions
diff --git a/app/src/main/kotlin/com/pitchedapps/frost/db/CacheDb.kt b/app/src/main/kotlin/com/pitchedapps/frost/db/CacheDb.kt index f0dacdc7..68d71a91 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/db/CacheDb.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/db/CacheDb.kt @@ -36,12 +36,14 @@ import kotlinx.android.parcel.Parcelize @Entity( tableName = "frost_cache", primaryKeys = ["id", "type"], - foreignKeys = [ForeignKey( - entity = CookieEntity::class, - parentColumns = ["cookie_id"], - childColumns = ["id"], - onDelete = ForeignKey.CASCADE - )] + foreignKeys = [ + ForeignKey( + entity = CookieEntity::class, + parentColumns = ["cookie_id"], + childColumns = ["id"], + onDelete = ForeignKey.CASCADE + ) + ] ) @Parcelize data class CacheEntity( diff --git a/app/src/main/kotlin/com/pitchedapps/frost/db/Database.kt b/app/src/main/kotlin/com/pitchedapps/frost/db/Database.kt index bd0b4ee0..ef763617 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/db/Database.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/db/Database.kt @@ -21,7 +21,12 @@ import androidx.room.Database import androidx.room.Room import androidx.room.RoomDatabase import com.pitchedapps.frost.BuildConfig -import org.koin.dsl.module +import dagger.Module +import dagger.Provides +import dagger.hilt.InstallIn +import dagger.hilt.android.qualifiers.ApplicationContext +import dagger.hilt.components.SingletonComponent +import javax.inject.Singleton interface FrostPrivateDao { fun cookieDao(): CookieDao @@ -91,13 +96,31 @@ class FrostDatabase( ).frostBuild() return FrostDatabase(privateDb, publicDb) } - - fun module() = module { - single { create(get()) } - single { get<FrostDatabase>().cookieDao() } - single { get<FrostDatabase>().cacheDao() } - single { get<FrostDatabase>().notifDao() } - single { get<FrostDatabase>().genericDao() } - } } } + +@Module +@InstallIn(SingletonComponent::class) +object DatabaseModule { + + @Provides + @Singleton + fun frostDatabase(@ApplicationContext context: Context): FrostDatabase = + FrostDatabase.create(context) + + @Provides + @Singleton + fun cookieDao(frostDatabase: FrostDatabase): CookieDao = frostDatabase.cookieDao() + + @Provides + @Singleton + fun cacheDao(frostDatabase: FrostDatabase): CacheDao = frostDatabase.cacheDao() + + @Provides + @Singleton + fun notifDao(frostDatabase: FrostDatabase): NotificationDao = frostDatabase.notifDao() + + @Provides + @Singleton + fun genericDao(frostDatabase: FrostDatabase): GenericDao = frostDatabase.genericDao() +} diff --git a/app/src/main/kotlin/com/pitchedapps/frost/db/NotificationDb.kt b/app/src/main/kotlin/com/pitchedapps/frost/db/NotificationDb.kt index 93df01dc..f8f16e26 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/db/NotificationDb.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/db/NotificationDb.kt @@ -32,12 +32,14 @@ import com.pitchedapps.frost.utils.L @Entity( tableName = "notifications", primaryKeys = ["notif_id", "userId"], - foreignKeys = [ForeignKey( - entity = CookieEntity::class, - parentColumns = ["cookie_id"], - childColumns = ["userId"], - onDelete = ForeignKey.CASCADE - )], + foreignKeys = [ + ForeignKey( + entity = CookieEntity::class, + parentColumns = ["cookie_id"], + childColumns = ["userId"], + onDelete = ForeignKey.CASCADE + ) + ], indices = [Index("notif_id"), Index("userId")] ) data class NotificationEntity( |