DownloadConverter: Inject gson instance using hilt
Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
This commit is contained in:
@@ -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()
|
||||
}
|
||||
|
||||
@@ -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<SharedLib> {
|
||||
val listType = object : TypeToken<List<SharedLib>>() {}.type
|
||||
return Gson().fromJson(string, listType)
|
||||
return gson.fromJson(string, listType)
|
||||
}
|
||||
|
||||
@TypeConverter
|
||||
fun fromSharedLibList(list: List<SharedLib>): String {
|
||||
return Gson().toJson(list)
|
||||
return gson.toJson(list)
|
||||
}
|
||||
|
||||
@TypeConverter
|
||||
fun toGPlayFileList(string: String): List<File> {
|
||||
val listType = object : TypeToken<List<File>>() {}.type
|
||||
return Gson().fromJson(string, listType)
|
||||
return gson.fromJson(string, listType)
|
||||
}
|
||||
|
||||
@TypeConverter
|
||||
fun fromGPlayFileList(list: List<File>): String {
|
||||
return Gson().toJson(list)
|
||||
return gson.toJson(list)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user