From 5d933c8da086e16089baf2c95ba810c68ceebaf9 Mon Sep 17 00:00:00 2001
From: Kamal Bramwell <kamal@elixxir.io>
Date: Thu, 27 Oct 2022 13:46:05 -0400
Subject: [PATCH] Added null input support to decode function

s
---
 .../elixxir/xxclient/models/BindingsModel.kt  | 28 +++++++++++--------
 1 file changed, 16 insertions(+), 12 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 16b02df..591fe84 100644
--- a/xxclient/src/main/java/io/elixxir/xxclient/models/BindingsModel.kt
+++ b/xxclient/src/main/java/io/elixxir/xxclient/models/BindingsModel.kt
@@ -17,21 +17,25 @@ interface BindingsModel {
             return Gson().toJson(list.toTypedArray(), typeToken).encodeToByteArray()
         }
 
-        inline fun <reified T> decode(data: ByteArray): T? {
-            return if (data.isNotEmpty()) {
-                val typeToken = object : TypeToken<T>() {}.type
-                Gson().fromJson(data.decodeToString(), typeToken)
-            } else {
-                Log.d("Decode", "Failed to decode data: ${data.decodeToString()}")
-                null
+        inline fun <reified T> decode(data: ByteArray?): T? {
+            return data?.run {
+                if (isNotEmpty()) {
+                    val typeToken = object : TypeToken<T>() {}.type
+                    Gson().fromJson<T>(decodeToString(), typeToken)
+                } else {
+                    Log.d("Decode", "Failed to decode data: ${decodeToString()}")
+                    null
+                }
             }
         }
 
-        inline fun <reified T> decodeArray(data: ByteArray): List<T> {
-            return if (data.isNotEmpty()) {
-                val typeToken = object : TypeToken<Array<T>>() {}.type
-                Gson().fromJson<Array<T>>(data.decodeToString(), typeToken).toList()
-            } else listOf()
+        inline fun <reified T> decodeArray(data: ByteArray?): List<T> {
+            return data?.run {
+                if (isNotEmpty()) {
+                    val typeToken = object : TypeToken<Array<T>>() {}.type
+                    Gson().fromJson<Array<T>>(decodeToString(), typeToken).toList()
+                } else listOf()
+            } ?: listOf()
         }
     }
 }
\ No newline at end of file
-- 
GitLab