Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision
  • bindings-update
  • development
  • master
  • project_setup
  • xxclient
5 results

Target

Select target project
  • mobile/android/elixxir-dapps-sdk-kotlin
1 result
Select Git revision
  • bindings-update
  • development
  • master
  • project_setup
  • xxclient
5 results
Show changes

Commits on Source 3

...@@ -130,7 +130,7 @@ open class E2eAdapter(protected val e2e: E2eBindings) : E2e{ ...@@ -130,7 +130,7 @@ open class E2eAdapter(protected val e2e: E2eBindings) : E2e{
payload, payload,
params params
) )
return Gson().fromJson(reportData.decodeToString(), SendReport::class.java) return decode(reportData)
} }
override fun registerListener( override fun registerListener(
......
package io.elixxir.xxclient.group package io.elixxir.xxclient.group
import io.elixxir.xxclient.models.BindingsModel.Companion.decode import io.elixxir.xxclient.models.BindingsModel.Companion.decodeArray
import io.elixxir.xxclient.models.GroupMembersList import io.elixxir.xxclient.models.GroupMember
import bindings.Group as GroupBindings import bindings.Group as GroupBindings
interface Group { interface Group {
...@@ -9,7 +9,7 @@ interface Group { ...@@ -9,7 +9,7 @@ interface Group {
val createdNano: Long val createdNano: Long
val id: ByteArray val id: ByteArray
val initMessage: ByteArray val initMessage: ByteArray
val membership: GroupMembersList val membership: List<GroupMember>
val name: ByteArray val name: ByteArray
val serialize: ByteArray val serialize: ByteArray
} }
...@@ -25,8 +25,7 @@ open class GroupAdapter( ...@@ -25,8 +25,7 @@ open class GroupAdapter(
get() = group.id get() = group.id
override val initMessage: ByteArray override val initMessage: ByteArray
get() = group.initMessage get() = group.initMessage
override val membership: GroupMembersList override val membership: List<GroupMember> by lazy { decodeArray(group.membership) }
get() = decode(group.membership) ?: GroupMembersList(listOf())
override val name: ByteArray override val name: ByteArray
get() = group.name get() = group.name
override val serialize: ByteArray by lazy { group.serialize() } override val serialize: ByteArray by lazy { group.serialize() }
......
...@@ -2,7 +2,6 @@ package io.elixxir.xxclient.models ...@@ -2,7 +2,6 @@ package io.elixxir.xxclient.models
import android.util.Log import android.util.Log
import com.google.gson.Gson import com.google.gson.Gson
import com.google.gson.reflect.TypeToken
import io.elixxir.xxclient.utils.toBase64String import io.elixxir.xxclient.utils.toBase64String
interface BindingsModel { interface BindingsModel {
...@@ -16,15 +15,13 @@ interface BindingsModel { ...@@ -16,15 +15,13 @@ interface BindingsModel {
val data = list.map { val data = list.map {
(it as? ByteArray)?.toBase64String() ?: it (it as? ByteArray)?.toBase64String() ?: it
} }
val typeToken = object : TypeToken<Array<T>>() {}.type return Gson().toJson(data.toTypedArray(), T::class.java).encodeToByteArray()
return Gson().toJson(data.toTypedArray(), typeToken).encodeToByteArray()
} }
inline fun <reified T> decode(data: ByteArray?): T? { inline fun <reified T> decode(data: ByteArray?): T? {
return data?.run { return data?.run {
if (isValidData()) { if (isValidData()) {
val typeToken = object : TypeToken<T>() {}.type Gson().fromJson(decodeToString(), T::class.java)
Gson().fromJson<T>(decodeToString(), typeToken)
} else { } else {
Log.d("Decode", "Failed to decode data: ${decodeToString()}") Log.d("Decode", "Failed to decode data: ${decodeToString()}")
null null
...@@ -35,8 +32,7 @@ interface BindingsModel { ...@@ -35,8 +32,7 @@ interface BindingsModel {
inline fun <reified T> decodeArray(data: ByteArray?): List<T> { inline fun <reified T> decodeArray(data: ByteArray?): List<T> {
return data?.run { return data?.run {
if (isValidData()) { if (isValidData()) {
val typeToken = object : TypeToken<Array<T>>() {}.type Gson().fromJson(decodeToString(), Array<T>::class.java).toList()
Gson().fromJson<Array<T>>(decodeToString(), typeToken).toList()
} else listOf() } else listOf()
} ?: listOf() } ?: listOf()
} }
......