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 android.content.Context
|
||||||
import androidx.room.Room
|
import androidx.room.Room
|
||||||
|
import com.aurora.store.data.room.download.DownloadConverter
|
||||||
import com.aurora.store.data.room.download.DownloadDao
|
import com.aurora.store.data.room.download.DownloadDao
|
||||||
import dagger.Module
|
import dagger.Module
|
||||||
import dagger.Provides
|
import dagger.Provides
|
||||||
@@ -18,8 +19,12 @@ object RoomModule {
|
|||||||
|
|
||||||
@Singleton
|
@Singleton
|
||||||
@Provides
|
@Provides
|
||||||
fun providesRoomInstance(@ApplicationContext context: Context): AuroraDatabase {
|
fun providesRoomInstance(
|
||||||
|
@ApplicationContext context: Context,
|
||||||
|
downloadConverter: DownloadConverter
|
||||||
|
): AuroraDatabase {
|
||||||
return Room.databaseBuilder(context, AuroraDatabase::class.java, DATABASE)
|
return Room.databaseBuilder(context, AuroraDatabase::class.java, DATABASE)
|
||||||
|
.addTypeConverter(downloadConverter)
|
||||||
.fallbackToDestructiveMigration()
|
.fallbackToDestructiveMigration()
|
||||||
.build()
|
.build()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,31 +1,36 @@
|
|||||||
package com.aurora.store.data.room.download
|
package com.aurora.store.data.room.download
|
||||||
|
|
||||||
|
import androidx.room.ProvidedTypeConverter
|
||||||
import androidx.room.TypeConverter
|
import androidx.room.TypeConverter
|
||||||
import com.aurora.gplayapi.data.models.File
|
import com.aurora.gplayapi.data.models.File
|
||||||
import com.google.gson.Gson
|
import com.google.gson.Gson
|
||||||
import com.google.gson.reflect.TypeToken
|
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
|
@TypeConverter
|
||||||
fun toSharedLibList(string: String): List<SharedLib> {
|
fun toSharedLibList(string: String): List<SharedLib> {
|
||||||
val listType = object : TypeToken<List<SharedLib>>() {}.type
|
val listType = object : TypeToken<List<SharedLib>>() {}.type
|
||||||
return Gson().fromJson(string, listType)
|
return gson.fromJson(string, listType)
|
||||||
}
|
}
|
||||||
|
|
||||||
@TypeConverter
|
@TypeConverter
|
||||||
fun fromSharedLibList(list: List<SharedLib>): String {
|
fun fromSharedLibList(list: List<SharedLib>): String {
|
||||||
return Gson().toJson(list)
|
return gson.toJson(list)
|
||||||
}
|
}
|
||||||
|
|
||||||
@TypeConverter
|
@TypeConverter
|
||||||
fun toGPlayFileList(string: String): List<File> {
|
fun toGPlayFileList(string: String): List<File> {
|
||||||
val listType = object : TypeToken<List<File>>() {}.type
|
val listType = object : TypeToken<List<File>>() {}.type
|
||||||
return Gson().fromJson(string, listType)
|
return gson.fromJson(string, listType)
|
||||||
}
|
}
|
||||||
|
|
||||||
@TypeConverter
|
@TypeConverter
|
||||||
fun fromGPlayFileList(list: List<File>): String {
|
fun fromGPlayFileList(list: List<File>): String {
|
||||||
return Gson().toJson(list)
|
return gson.toJson(list)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user