Skip to content

Commit 3d8c892

Browse files
committed
address feedback
1 parent f92b04f commit 3d8c892

4 files changed

Lines changed: 13 additions & 9 deletions

File tree

android/src/main/java/expo/modules/xmtpreactnativesdk/XMTPModule.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2172,11 +2172,11 @@ class XMTPModule : Module() {
21722172
}
21732173
}
21742174

2175-
AsyncFunction("sendSyncArchive") Coroutine { installationId: String, pin: String, serverUrl: String?, startNs: Int?, endNs: Int?, archiveElements: List<String>?, excludeDisappearingMessages: Boolean? ->
2175+
AsyncFunction("sendSyncArchive") Coroutine { installationId: String, pin: String, serverUrl: String?, startNs: Long?, endNs: Long?, archiveElements: List<String>?, excludeDisappearingMessages: Boolean? ->
21762176
withContext(Dispatchers.IO) {
21772177
val client = clients[installationId] ?: throw XMTPException("No client")
21782178
val elements = archiveElements?.map { getArchiveElement(it) } ?: listOf(ArchiveElement.MESSAGES, ArchiveElement.CONSENT)
2179-
val opts = ArchiveOptions(startNs?.toLong(), endNs?.toLong(), elements, excludeDisappearingMessages ?: false)
2179+
val opts = ArchiveOptions(startNs, endNs, elements, excludeDisappearingMessages ?: false)
21802180
val url = serverUrl?.takeIf { it.isNotBlank() } ?: client.environment.getHistorySyncUrl()
21812181
client.sendSyncArchive(opts, url, pin)
21822182
}

android/src/main/java/expo/modules/xmtpreactnativesdk/wrappers/ArchiveMetadataWrapper.kt

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,11 +32,11 @@ class ArchiveMetadataWrapper {
3232
}
3333
}
3434

35-
fun encode(metadata: ArchiveMetadata?): String {
36-
val obj = if (metadata != null) {
35+
/** Returns metadata as a map for embedding in another JSON object (avoids double JSON encoding). */
36+
fun encodeToMap(metadata: ArchiveMetadata?): Map<String, Any?> {
37+
return if (metadata != null) {
3738
encodeToObj(metadata)
3839
} else {
39-
// Create a default metadata object when null
4040
mapOf(
4141
"archiveVersion" to 0u,
4242
"elements" to listOf("messages", "consent"),
@@ -45,7 +45,10 @@ class ArchiveMetadataWrapper {
4545
"endNs" to null
4646
)
4747
}
48-
return gson.toJson(obj)
48+
}
49+
50+
fun encode(metadata: ArchiveMetadata?): String {
51+
return gson.toJson(encodeToMap(metadata))
4952
}
5053
}
5154
}

android/src/main/java/expo/modules/xmtpreactnativesdk/wrappers/AvailableArchiveWrapper.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@ class AvailableArchiveWrapper {
88
companion object {
99
private val gson = GsonBuilder().create()
1010

11-
fun encodeToObj(archive: AvailableArchive): Map<String, Any> = mapOf(
11+
fun encodeToObj(archive: AvailableArchive): Map<String, Any?> = mapOf(
1212
"pin" to archive.pin,
13-
"metadata" to ArchiveMetadataWrapper.encode(archive.metadata),
13+
"metadata" to ArchiveMetadataWrapper.encodeToMap(archive.metadata),
1414
"sentByInstallation" to Base64.encodeToString(archive.sentByInstallation, Base64.NO_WRAP),
1515
)
1616

ios/XMTPModule.swift

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3013,7 +3013,8 @@ public class XMTPModule: Module {
30133013
let opts = XMTP.ArchiveOptions(
30143014
startNs: startNs,
30153015
endNs: endNs,
3016-
archiveElements: elements
3016+
archiveElements: elements,
3017+
excludeDisappearingMessages: excludeDisappearingMessages ?? false
30173018
)
30183019
try await client.sendSyncArchive(opts: opts, serverUrl: serverUrl, pin: pin)
30193020
}

0 commit comments

Comments
 (0)