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