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 3a272bf544721d57d366b38dbda689550fac9fdc..581fd6c863b1e5d075d300144bc3bf7224f4d3d0 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