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 16b02dfb080d681f4c85915cf513c9ca2b4b5ecb..591fe84c794ee37d15010330a93c1cde0fddbcc7 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