diff --git a/app/src/main/java/com/aurora/store/data/room/RoomModule.kt b/app/src/main/java/com/aurora/store/data/room/RoomModule.kt index 2166a9225..cea751959 100644 --- a/app/src/main/java/com/aurora/store/data/room/RoomModule.kt +++ b/app/src/main/java/com/aurora/store/data/room/RoomModule.kt @@ -2,6 +2,7 @@ package com.aurora.store.data.room import android.content.Context import androidx.room.Room +import com.aurora.store.data.room.download.DownloadConverter import com.aurora.store.data.room.download.DownloadDao import dagger.Module import dagger.Provides @@ -18,8 +19,12 @@ object RoomModule { @Singleton @Provides - fun providesRoomInstance(@ApplicationContext context: Context): AuroraDatabase { + fun providesRoomInstance( + @ApplicationContext context: Context, + downloadConverter: DownloadConverter + ): AuroraDatabase { return Room.databaseBuilder(context, AuroraDatabase::class.java, DATABASE) + .addTypeConverter(downloadConverter) .fallbackToDestructiveMigration() .build() } diff --git a/app/src/main/java/com/aurora/store/data/room/download/DownloadConverter.kt b/app/src/main/java/com/aurora/store/data/room/download/DownloadConverter.kt index a53f62508..65cc4d053 100644 --- a/app/src/main/java/com/aurora/store/data/room/download/DownloadConverter.kt +++ b/app/src/main/java/com/aurora/store/data/room/download/DownloadConverter.kt @@ -1,31 +1,36 @@ package com.aurora.store.data.room.download +import androidx.room.ProvidedTypeConverter import androidx.room.TypeConverter import com.aurora.gplayapi.data.models.File import com.google.gson.Gson import com.google.gson.reflect.TypeToken +import javax.inject.Inject +import javax.inject.Singleton -object DownloadConverter { +@Singleton +@ProvidedTypeConverter +class DownloadConverter @Inject constructor(private val gson: Gson) { @TypeConverter fun toSharedLibList(string: String): List { val listType = object : TypeToken>() {}.type - return Gson().fromJson(string, listType) + return gson.fromJson(string, listType) } @TypeConverter fun fromSharedLibList(list: List): String { - return Gson().toJson(list) + return gson.toJson(list) } @TypeConverter fun toGPlayFileList(string: String): List { val listType = object : TypeToken>() {}.type - return Gson().fromJson(string, listType) + return gson.fromJson(string, listType) } @TypeConverter fun fromGPlayFileList(list: List): String { - return Gson().toJson(list) + return gson.toJson(list) } }