FavouriteViewModel: Avoid using reflection on import
Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
This commit is contained in:
@@ -27,7 +27,6 @@ import com.aurora.store.data.room.favourite.Favourite
|
|||||||
import com.aurora.store.data.room.favourite.FavouriteDao
|
import com.aurora.store.data.room.favourite.FavouriteDao
|
||||||
import com.aurora.store.data.room.favourite.ImportExport
|
import com.aurora.store.data.room.favourite.ImportExport
|
||||||
import com.google.gson.Gson
|
import com.google.gson.Gson
|
||||||
import com.google.gson.reflect.TypeToken
|
|
||||||
import dagger.hilt.android.lifecycle.HiltViewModel
|
import dagger.hilt.android.lifecycle.HiltViewModel
|
||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.flow.SharingStarted
|
import kotlinx.coroutines.flow.SharingStarted
|
||||||
@@ -47,8 +46,8 @@ class FavouriteViewModel @Inject constructor(
|
|||||||
fun importFavourites(context: Context, uri: Uri) {
|
fun importFavourites(context: Context, uri: Uri) {
|
||||||
viewModelScope.launch(Dispatchers.IO) {
|
viewModelScope.launch(Dispatchers.IO) {
|
||||||
context.contentResolver.openInputStream(uri)?.use {
|
context.contentResolver.openInputStream(uri)?.use {
|
||||||
val type = object : TypeToken<ImportExport>() {}.type
|
val importExport =
|
||||||
val importExport = gson.fromJson<ImportExport>(it.bufferedReader().readText(), type)
|
gson.fromJson(it.bufferedReader().readText(), ImportExport::class.java)
|
||||||
favouriteDao.insertAll(
|
favouriteDao.insertAll(
|
||||||
importExport.favourites.map { fav -> fav.copy(mode = Favourite.Mode.IMPORT) }
|
importExport.favourites.map { fav -> fav.copy(mode = Favourite.Mode.IMPORT) }
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user