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

Revert "Use class instance instead of TypeToken for Gson decoding"

This reverts commit 48b19f7f.
parent 31c75094
No related branches found
No related tags found
No related merge requests found
...@@ -2,6 +2,7 @@ package io.elixxir.xxclient.models ...@@ -2,6 +2,7 @@ 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 {
...@@ -21,7 +22,8 @@ interface BindingsModel { ...@@ -21,7 +22,8 @@ interface BindingsModel {
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()) {
Gson().fromJson(decodeToString(), T::class.java) val typeToken = object : TypeToken<T>() {}.type
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
...@@ -32,7 +34,8 @@ interface BindingsModel { ...@@ -32,7 +34,8 @@ 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()) {
Gson().fromJson(decodeToString(), Array<T>::class.java).toList() val typeToken = object : TypeToken<Array<T>>() {}.type
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