diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 9b05983..ac00dbc 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -62,7 +62,7 @@ dependencies { val lifecycleVersion = "2.3.0-alpha07" val emojiCompatVersion = "1.2.0-alpha01" - val roomVersion = "2.3.0-alpha02" + val roomVersion = "2.3.0-alpha03" val okHttpVersion = "4.8.1" val retrofitVersion = "2.9.0" val moshiVersion = "1.10.0" diff --git a/app/src/main/kotlin/at/connyduck/pixelcat/dagger/AppModule.kt b/app/src/main/kotlin/at/connyduck/pixelcat/dagger/AppModule.kt index e4f2ebd..f40c6f8 100644 --- a/app/src/main/kotlin/at/connyduck/pixelcat/dagger/AppModule.kt +++ b/app/src/main/kotlin/at/connyduck/pixelcat/dagger/AppModule.kt @@ -27,6 +27,7 @@ import androidx.room.Room import at.connyduck.pixelcat.PixelcatApplication import at.connyduck.pixelcat.db.AccountManager import at.connyduck.pixelcat.db.AppDatabase +import at.connyduck.pixelcat.db.RoomConverter import dagger.Module import dagger.Provides import javax.inject.Singleton @@ -47,9 +48,10 @@ class AppModule { @Provides @Singleton - fun providesDatabase(app: PixelcatApplication): AppDatabase { + fun providesDatabase(context: Context, converter: RoomConverter): AppDatabase { return Room - .databaseBuilder(app, AppDatabase::class.java, "pixelcat.db") + .databaseBuilder(context, AppDatabase::class.java, "pixelcat.db") + .addTypeConverter(converter) .build() } diff --git a/app/src/main/kotlin/at/connyduck/pixelcat/db/Converters.kt b/app/src/main/kotlin/at/connyduck/pixelcat/db/RoomConverter.kt similarity index 91% rename from app/src/main/kotlin/at/connyduck/pixelcat/db/Converters.kt rename to app/src/main/kotlin/at/connyduck/pixelcat/db/RoomConverter.kt index 3a50c74..4792d58 100644 --- a/app/src/main/kotlin/at/connyduck/pixelcat/db/Converters.kt +++ b/app/src/main/kotlin/at/connyduck/pixelcat/db/RoomConverter.kt @@ -19,6 +19,7 @@ package at.connyduck.pixelcat.db +import androidx.room.ProvidedTypeConverter import androidx.room.TypeConverter import at.connyduck.pixelcat.model.Attachment import at.connyduck.pixelcat.model.Notification @@ -26,10 +27,14 @@ import at.connyduck.pixelcat.model.Status import com.squareup.moshi.Moshi import com.squareup.moshi.Types import java.util.Date +import javax.inject.Inject +import javax.inject.Singleton -class Converters { - - private val moshi = Moshi.Builder().build() +@ProvidedTypeConverter +@Singleton +class RoomConverter @Inject constructor ( + private val moshi: Moshi +) { @TypeConverter fun visibilityToString(visibility: Status.Visibility) = visibility.name diff --git a/app/src/main/kotlin/at/connyduck/pixelcat/db/entitity/NotificationEntity.kt b/app/src/main/kotlin/at/connyduck/pixelcat/db/entitity/NotificationEntity.kt index 8bc91b6..e229b2f 100644 --- a/app/src/main/kotlin/at/connyduck/pixelcat/db/entitity/NotificationEntity.kt +++ b/app/src/main/kotlin/at/connyduck/pixelcat/db/entitity/NotificationEntity.kt @@ -22,11 +22,11 @@ package at.connyduck.pixelcat.db.entitity import androidx.room.Embedded import androidx.room.Entity import androidx.room.TypeConverters -import at.connyduck.pixelcat.db.Converters +import at.connyduck.pixelcat.db.RoomConverter import at.connyduck.pixelcat.model.Notification @Entity(primaryKeys = ["accountId", "id"]) -@TypeConverters(Converters::class) +@TypeConverters(RoomConverter::class) data class NotificationEntity( val accountId: Long, val type: Notification.Type, diff --git a/app/src/main/kotlin/at/connyduck/pixelcat/db/entitity/StatusEntity.kt b/app/src/main/kotlin/at/connyduck/pixelcat/db/entitity/StatusEntity.kt index c633952..3e77f86 100644 --- a/app/src/main/kotlin/at/connyduck/pixelcat/db/entitity/StatusEntity.kt +++ b/app/src/main/kotlin/at/connyduck/pixelcat/db/entitity/StatusEntity.kt @@ -22,13 +22,13 @@ package at.connyduck.pixelcat.db.entitity import androidx.room.Embedded import androidx.room.Entity import androidx.room.TypeConverters -import at.connyduck.pixelcat.db.Converters +import at.connyduck.pixelcat.db.RoomConverter import at.connyduck.pixelcat.model.Attachment import at.connyduck.pixelcat.model.Status import java.util.Date @Entity(primaryKeys = ["accountId", "id"]) -@TypeConverters(Converters::class) +@TypeConverters(RoomConverter::class) data class StatusEntity( val accountId: Long, val id: String,