DownloadConverter: Inject gson instance using hilt

Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
This commit is contained in:
Aayush Gupta
2024-05-20 14:40:49 +05:30
parent 2739f2fbc9
commit e2aa5e6b1d
2 changed files with 16 additions and 6 deletions

View File

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

View File

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