From d8f530658868b57796e628a1053ca51e4a02abec Mon Sep 17 00:00:00 2001 From: Kamal Bramwell <kamal@elixxir.io> Date: Mon, 7 Nov 2022 12:26:21 -0500 Subject: [PATCH] Updated decoding of empty or null JSON data s s --- .../main/java/io/elixxir/xxclient/models/BindingsModel.kt | 8 ++++++-- 1 file changed, 6 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 3a272bf..581fd6c 100644 --- a/xxclient/src/main/java/io/elixxir/xxclient/models/BindingsModel.kt +++ b/xxclient/src/main/java/io/elixxir/xxclient/models/BindingsModel.kt @@ -19,7 +19,7 @@ interface BindingsModel { inline fun <reified T> decode(data: ByteArray?): T? { return data?.run { - if (isNotEmpty() && decodeToString() != "null") { + if (isValidData()) { val typeToken = object : TypeToken<T>() {}.type Gson().fromJson<T>(decodeToString(), typeToken) } else { @@ -31,11 +31,15 @@ interface BindingsModel { inline fun <reified T> decodeArray(data: ByteArray?): List<T> { return data?.run { - if (isNotEmpty() && decodeToString() != "null") { + if (isValidData()) { val typeToken = object : TypeToken<Array<T>>() {}.type Gson().fromJson<Array<T>>(decodeToString(), typeToken).toList() } else listOf() } ?: listOf() } + + fun ByteArray.isValidData(): Boolean { + return isNotEmpty() && decodeToString() != "[]" && decodeToString() != "null" + } } } \ No newline at end of file -- GitLab