From e0e46a0a806ca6b694c68efef1734a6156d8fcd8 Mon Sep 17 00:00:00 2001 From: Kamal Bramwell <kamal@elixxir.io> Date: Wed, 16 Nov 2022 19:54:18 -0500 Subject: [PATCH] Revert "Use class instance instead of TypeToken for Gson decoding" This reverts commit 48b19f7f64c19032edf5bd07168ea1eedce3eba4. --- .../main/java/io/elixxir/xxclient/models/BindingsModel.kt | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/xxclient/src/main/java/io/elixxir/xxclient/models/BindingsModel.kt b/xxclient/src/main/java/io/elixxir/xxclient/models/BindingsModel.kt index 2c1a8c9..be2fb61 100644 --- a/xxclient/src/main/java/io/elixxir/xxclient/models/BindingsModel.kt +++ b/xxclient/src/main/java/io/elixxir/xxclient/models/BindingsModel.kt @@ -2,6 +2,7 @@ package io.elixxir.xxclient.models import android.util.Log import com.google.gson.Gson +import com.google.gson.reflect.TypeToken import io.elixxir.xxclient.utils.toBase64String interface BindingsModel { @@ -21,7 +22,8 @@ interface BindingsModel { inline fun <reified T> decode(data: ByteArray?): T? { return data?.run { if (isValidData()) { - Gson().fromJson(decodeToString(), T::class.java) + val typeToken = object : TypeToken<T>() {}.type + Gson().fromJson<T>(decodeToString(), typeToken) } else { Log.d("Decode", "Failed to decode data: ${decodeToString()}") null @@ -32,7 +34,8 @@ interface BindingsModel { inline fun <reified T> decodeArray(data: ByteArray?): List<T> { return data?.run { 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() } ?: listOf() } -- GitLab