upgrade room and use ProvidedTypeConverter
This commit is contained in:
parent
ea860a761b
commit
7df890efef
|
@ -62,7 +62,7 @@ dependencies {
|
||||||
|
|
||||||
val lifecycleVersion = "2.3.0-alpha07"
|
val lifecycleVersion = "2.3.0-alpha07"
|
||||||
val emojiCompatVersion = "1.2.0-alpha01"
|
val emojiCompatVersion = "1.2.0-alpha01"
|
||||||
val roomVersion = "2.3.0-alpha02"
|
val roomVersion = "2.3.0-alpha03"
|
||||||
val okHttpVersion = "4.8.1"
|
val okHttpVersion = "4.8.1"
|
||||||
val retrofitVersion = "2.9.0"
|
val retrofitVersion = "2.9.0"
|
||||||
val moshiVersion = "1.10.0"
|
val moshiVersion = "1.10.0"
|
||||||
|
|
|
@ -27,6 +27,7 @@ import androidx.room.Room
|
||||||
import at.connyduck.pixelcat.PixelcatApplication
|
import at.connyduck.pixelcat.PixelcatApplication
|
||||||
import at.connyduck.pixelcat.db.AccountManager
|
import at.connyduck.pixelcat.db.AccountManager
|
||||||
import at.connyduck.pixelcat.db.AppDatabase
|
import at.connyduck.pixelcat.db.AppDatabase
|
||||||
|
import at.connyduck.pixelcat.db.RoomConverter
|
||||||
import dagger.Module
|
import dagger.Module
|
||||||
import dagger.Provides
|
import dagger.Provides
|
||||||
import javax.inject.Singleton
|
import javax.inject.Singleton
|
||||||
|
@ -47,9 +48,10 @@ class AppModule {
|
||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
@Singleton
|
@Singleton
|
||||||
fun providesDatabase(app: PixelcatApplication): AppDatabase {
|
fun providesDatabase(context: Context, converter: RoomConverter): AppDatabase {
|
||||||
return Room
|
return Room
|
||||||
.databaseBuilder(app, AppDatabase::class.java, "pixelcat.db")
|
.databaseBuilder(context, AppDatabase::class.java, "pixelcat.db")
|
||||||
|
.addTypeConverter(converter)
|
||||||
.build()
|
.build()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -19,6 +19,7 @@
|
||||||
|
|
||||||
package at.connyduck.pixelcat.db
|
package at.connyduck.pixelcat.db
|
||||||
|
|
||||||
|
import androidx.room.ProvidedTypeConverter
|
||||||
import androidx.room.TypeConverter
|
import androidx.room.TypeConverter
|
||||||
import at.connyduck.pixelcat.model.Attachment
|
import at.connyduck.pixelcat.model.Attachment
|
||||||
import at.connyduck.pixelcat.model.Notification
|
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.Moshi
|
||||||
import com.squareup.moshi.Types
|
import com.squareup.moshi.Types
|
||||||
import java.util.Date
|
import java.util.Date
|
||||||
|
import javax.inject.Inject
|
||||||
|
import javax.inject.Singleton
|
||||||
|
|
||||||
class Converters {
|
@ProvidedTypeConverter
|
||||||
|
@Singleton
|
||||||
private val moshi = Moshi.Builder().build()
|
class RoomConverter @Inject constructor (
|
||||||
|
private val moshi: Moshi
|
||||||
|
) {
|
||||||
|
|
||||||
@TypeConverter
|
@TypeConverter
|
||||||
fun visibilityToString(visibility: Status.Visibility) = visibility.name
|
fun visibilityToString(visibility: Status.Visibility) = visibility.name
|
|
@ -22,11 +22,11 @@ package at.connyduck.pixelcat.db.entitity
|
||||||
import androidx.room.Embedded
|
import androidx.room.Embedded
|
||||||
import androidx.room.Entity
|
import androidx.room.Entity
|
||||||
import androidx.room.TypeConverters
|
import androidx.room.TypeConverters
|
||||||
import at.connyduck.pixelcat.db.Converters
|
import at.connyduck.pixelcat.db.RoomConverter
|
||||||
import at.connyduck.pixelcat.model.Notification
|
import at.connyduck.pixelcat.model.Notification
|
||||||
|
|
||||||
@Entity(primaryKeys = ["accountId", "id"])
|
@Entity(primaryKeys = ["accountId", "id"])
|
||||||
@TypeConverters(Converters::class)
|
@TypeConverters(RoomConverter::class)
|
||||||
data class NotificationEntity(
|
data class NotificationEntity(
|
||||||
val accountId: Long,
|
val accountId: Long,
|
||||||
val type: Notification.Type,
|
val type: Notification.Type,
|
||||||
|
|
|
@ -22,13 +22,13 @@ package at.connyduck.pixelcat.db.entitity
|
||||||
import androidx.room.Embedded
|
import androidx.room.Embedded
|
||||||
import androidx.room.Entity
|
import androidx.room.Entity
|
||||||
import androidx.room.TypeConverters
|
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.Attachment
|
||||||
import at.connyduck.pixelcat.model.Status
|
import at.connyduck.pixelcat.model.Status
|
||||||
import java.util.Date
|
import java.util.Date
|
||||||
|
|
||||||
@Entity(primaryKeys = ["accountId", "id"])
|
@Entity(primaryKeys = ["accountId", "id"])
|
||||||
@TypeConverters(Converters::class)
|
@TypeConverters(RoomConverter::class)
|
||||||
data class StatusEntity(
|
data class StatusEntity(
|
||||||
val accountId: Long,
|
val accountId: Long,
|
||||||
val id: String,
|
val id: String,
|
||||||
|
|
Loading…
Reference in New Issue