upgrade room and use ProvidedTypeConverter

This commit is contained in:
Konrad Pozniak 2020-10-15 17:35:48 +02:00
parent ea860a761b
commit 7df890efef
5 changed files with 17 additions and 10 deletions

View File

@ -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"

View File

@ -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()
}

View File

@ -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

View File

@ -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,

View File

@ -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,