aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/kotlin/com/pitchedapps/frost/db
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/kotlin/com/pitchedapps/frost/db')
-rw-r--r--app/src/main/kotlin/com/pitchedapps/frost/db/CacheDb.kt14
-rw-r--r--app/src/main/kotlin/com/pitchedapps/frost/db/Database.kt41
-rw-r--r--app/src/main/kotlin/com/pitchedapps/frost/db/NotificationDb.kt14
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(