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 be2fb61d73c1a43de3bef815c094cc362564f467..7ae2b9441d6c5c91d9d36d761e02a68d3195c44f 100644 --- a/xxclient/src/main/java/io/elixxir/xxclient/models/BindingsModel.kt +++ b/xxclient/src/main/java/io/elixxir/xxclient/models/BindingsModel.kt @@ -16,14 +16,19 @@ interface BindingsModel { val data = list.map { (it as? ByteArray)?.toBase64String() ?: it } - return Gson().toJson(data.toTypedArray(), Array<T>::class.java).encodeToByteArray() + return Gson().toJson( + data.toTypedArray(), + object : TypeToken<Array<T>>() {}.type + ).encodeToByteArray() } inline fun <reified T> decode(data: ByteArray?): T? { return data?.run { if (isValidData()) { - val typeToken = object : TypeToken<T>() {}.type - Gson().fromJson<T>(decodeToString(), typeToken) + Gson().fromJson<T>( + decodeToString(), + object : TypeToken<T>() {}.type + ) } else { Log.d("Decode", "Failed to decode data: ${decodeToString()}") null @@ -34,8 +39,10 @@ interface BindingsModel { inline fun <reified T> decodeArray(data: ByteArray?): List<T> { return data?.run { if (isValidData()) { - val typeToken = object : TypeToken<Array<T>>() {}.type - Gson().fromJson<Array<T>>(decodeToString(), typeToken).toList() + Gson().fromJson<Array<T>>( + decodeToString(), + object : TypeToken<Array<T>>() {}.type + ).toList() } else listOf() } ?: listOf() }