Skip to content
Snippets Groups Projects
Commit 48b19f7f authored by Kamal Bramwell's avatar Kamal Bramwell
Browse files

Use class instance instead of TypeToken for Gson decoding

parent f7f70125
No related branches found
No related tags found
No related merge requests found
...@@ -2,7 +2,6 @@ package io.elixxir.xxclient.models ...@@ -2,7 +2,6 @@ package io.elixxir.xxclient.models
import android.util.Log import android.util.Log
import com.google.gson.Gson import com.google.gson.Gson
import com.google.gson.reflect.TypeToken
import io.elixxir.xxclient.utils.toBase64String import io.elixxir.xxclient.utils.toBase64String
interface BindingsModel { interface BindingsModel {
...@@ -16,15 +15,13 @@ interface BindingsModel { ...@@ -16,15 +15,13 @@ interface BindingsModel {
val data = list.map { val data = list.map {
(it as? ByteArray)?.toBase64String() ?: it (it as? ByteArray)?.toBase64String() ?: it
} }
val typeToken = object : TypeToken<Array<T>>() {}.type return Gson().toJson(data.toTypedArray(), T::class.java).encodeToByteArray()
return Gson().toJson(data.toTypedArray(), typeToken).encodeToByteArray()
} }
inline fun <reified T> decode(data: ByteArray?): T? { inline fun <reified T> decode(data: ByteArray?): T? {
return data?.run { return data?.run {
if (isValidData()) { if (isValidData()) {
val typeToken = object : TypeToken<T>() {}.type Gson().fromJson(decodeToString(), T::class.java)
Gson().fromJson<T>(decodeToString(), typeToken)
} else { } else {
Log.d("Decode", "Failed to decode data: ${decodeToString()}") Log.d("Decode", "Failed to decode data: ${decodeToString()}")
null null
...@@ -35,8 +32,7 @@ interface BindingsModel { ...@@ -35,8 +32,7 @@ interface BindingsModel {
inline fun <reified T> decodeArray(data: ByteArray?): List<T> { inline fun <reified T> decodeArray(data: ByteArray?): List<T> {
return data?.run { return data?.run {
if (isValidData()) { if (isValidData()) {
val typeToken = object : TypeToken<Array<T>>() {}.type Gson().fromJson(decodeToString(), Array<T>::class.java).toList()
Gson().fromJson<Array<T>>(decodeToString(), typeToken).toList()
} else listOf() } else listOf()
} ?: listOf() } ?: listOf()
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment