Fix: (De)serializing releases

This commit is contained in:
machiav3lli 2022-03-31 11:10:33 +02:00
parent 8a445f78e4
commit 2ce7a421ea

View File

@ -5,7 +5,9 @@ import com.looker.droidify.database.entity.Release
import com.looker.droidify.database.entity.Release.Companion.deserializeIncompatibilities import com.looker.droidify.database.entity.Release.Companion.deserializeIncompatibilities
import com.looker.droidify.entity.Donate import com.looker.droidify.entity.Donate
import com.looker.droidify.entity.Screenshot import com.looker.droidify.entity.Screenshot
import com.looker.droidify.utility.extension.json.collectList
import com.looker.droidify.utility.extension.json.writeDictionary import com.looker.droidify.utility.extension.json.writeDictionary
import com.looker.droidify.utility.extension.json.writeList
import com.looker.droidify.utility.jsonGenerate import com.looker.droidify.utility.jsonGenerate
import com.looker.droidify.utility.jsonParse import com.looker.droidify.utility.jsonParse
@ -34,17 +36,16 @@ object Converters {
@TypeConverter @TypeConverter
@JvmStatic @JvmStatic
fun toReleases(byteArray: ByteArray): List<Release> { fun toReleases(byteArray: ByteArray): List<Release> = byteArray.jsonParse {
val string = byteArray.toString() it.collectList("releases") { Release.deserialize(it) }
return if (string == "") emptyList()
else string.split(",").map { byteArray.jsonParse { Release.deserialize(it) } }
} }
@JvmName("releasesToByteArray") @JvmName("releasesToByteArray")
@TypeConverter @TypeConverter
@JvmStatic @JvmStatic
fun toByteArray(releases: List<Release>) = fun toByteArray(releases: List<Release>) = jsonGenerate { generator ->
jsonGenerate { releases.forEach { item -> item.serialize(it) }.toString().toByteArray() } generator.writeList("releases", releases) { serialize(generator) }
}
@TypeConverter @TypeConverter
@JvmStatic @JvmStatic