Skip to content

Commit cc0cb8a

Browse files
committed
Prepare v1.6.2-rc1
1 parent 3629e2a commit cc0cb8a

28 files changed

+634
-359
lines changed

android/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ repositories {
9595
dependencies {
9696
implementation project(':expo-modules-core')
9797
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:${getKotlinVersion()}"
98-
implementation "org.xmtp:android:4.6.1"
98+
implementation "org.xmtp:android:4.6.2-rc1"
9999
implementation 'com.google.code.gson:gson:2.10.1'
100100
implementation 'com.facebook.react:react-native:0.71.3'
101101
implementation "com.daveanthonythomas.moshipack:moshipack:1.0.1"

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

Lines changed: 51 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import expo.modules.xmtpreactnativesdk.wrappers.DecryptedLocalAttachment
2626
import expo.modules.xmtpreactnativesdk.wrappers.DisappearingMessageSettingsWrapper
2727
import expo.modules.xmtpreactnativesdk.wrappers.DmWrapper
2828
import expo.modules.xmtpreactnativesdk.wrappers.EncryptedLocalAttachment
29+
import expo.modules.xmtpreactnativesdk.wrappers.GroupSyncSummaryWrapper
2930
import expo.modules.xmtpreactnativesdk.wrappers.GroupWrapper
3031
import expo.modules.xmtpreactnativesdk.wrappers.InboxStateWrapper
3132
import expo.modules.xmtpreactnativesdk.wrappers.KeyPackageStatusWrapper
@@ -584,7 +585,7 @@ class XMTPModule : Module() {
584585
logV("ffiRevokeAllOtherInstallationsSignatureText")
585586
val client = clients[installationId] ?: throw XMTPException("No client")
586587
val sigRequest = client.ffiRevokeAllOtherInstallations()
587-
sigRequest.let {
588+
sigRequest?.let {
588589
clientSignatureRequests[installationId] = it
589590
it.signatureText()
590591
}
@@ -1012,7 +1013,10 @@ class XMTPModule : Module() {
10121013
afterNs = queryParams.afterNs,
10131014
direction = DecodedMessage.SortDirection.valueOf(
10141015
queryParams.direction ?: "DESCENDING"
1015-
)
1016+
),
1017+
insertedAfterNs = queryParams.insertedAfterNs,
1018+
insertedBeforeNs = queryParams.insertedBeforeNs,
1019+
sortBy = getMessageSortBy(queryParams.sortBy)
10161020
)?.map { MessageWrapper.encode(it) }
10171021
}
10181022
}
@@ -1029,7 +1033,10 @@ class XMTPModule : Module() {
10291033
afterNs = queryParams.afterNs,
10301034
direction = DecodedMessage.SortDirection.valueOf(
10311035
queryParams.direction ?: "DESCENDING"
1032-
)
1036+
),
1037+
insertedAfterNs = queryParams.insertedAfterNs,
1038+
insertedBeforeNs = queryParams.insertedBeforeNs,
1039+
sortBy = getMessageSortBy(queryParams.sortBy)
10331040
)?.map { MessageWrapper.encode(it) }
10341041
}
10351042
}
@@ -1224,7 +1231,8 @@ class XMTPModule : Module() {
12241231
createGroupParams.groupName,
12251232
createGroupParams.groupImageUrl,
12261233
createGroupParams.groupDescription,
1227-
createGroupParams.disappearingMessageSettings
1234+
createGroupParams.disappearingMessageSettings,
1235+
createGroupParams.appData
12281236
)
12291237
GroupWrapper.encode(client, group)
12301238
}
@@ -1246,7 +1254,8 @@ class XMTPModule : Module() {
12461254
createGroupParams.groupName,
12471255
createGroupParams.groupImageUrl,
12481256
createGroupParams.groupDescription,
1249-
createGroupParams.disappearingMessageSettings
1257+
createGroupParams.disappearingMessageSettings,
1258+
createGroupParams.appData
12501259
)
12511260
GroupWrapper.encode(client, group)
12521261
}
@@ -1270,7 +1279,8 @@ class XMTPModule : Module() {
12701279
createGroupParams.groupName,
12711280
createGroupParams.groupImageUrl,
12721281
createGroupParams.groupDescription,
1273-
createGroupParams.disappearingMessageSettings
1282+
createGroupParams.disappearingMessageSettings,
1283+
createGroupParams.appData
12741284
)
12751285
GroupWrapper.encode(client, group)
12761286
}
@@ -1294,7 +1304,8 @@ class XMTPModule : Module() {
12941304
createGroupParams.groupName,
12951305
createGroupParams.groupImageUrl,
12961306
createGroupParams.groupDescription,
1297-
createGroupParams.disappearingMessageSettings
1307+
createGroupParams.disappearingMessageSettings,
1308+
createGroupParams.appData
12981309
)
12991310
GroupWrapper.encode(client, group)
13001311
}
@@ -1315,7 +1326,8 @@ class XMTPModule : Module() {
13151326
createGroupParams.groupName,
13161327
createGroupParams.groupImageUrl,
13171328
createGroupParams.groupDescription,
1318-
createGroupParams.disappearingMessageSettings
1329+
createGroupParams.disappearingMessageSettings,
1330+
createGroupParams.appData
13191331
)
13201332
GroupWrapper.encode(client, group)
13211333
}
@@ -1365,9 +1377,8 @@ class XMTPModule : Module() {
13651377
logV("syncAllConversations")
13661378
val client = clients[installationId] ?: throw XMTPException("No client")
13671379
val consentStates = consentStringStates?.let { ConsentWrapper.getConsentStates(it) }
1368-
val numGroupsSyncedInt: Int =
1369-
client.conversations.syncAllConversations(consentStates).numSynced.toInt()
1370-
numGroupsSyncedInt
1380+
val summary = client.conversations.syncAllConversations(consentStates)
1381+
GroupSyncSummaryWrapper.encode(summary)
13711382
}
13721383
}
13731384

@@ -1485,6 +1496,26 @@ class XMTPModule : Module() {
14851496
}
14861497
}
14871498

1499+
AsyncFunction("groupAppData") Coroutine { installationId: String, groupId: String ->
1500+
withContext(Dispatchers.IO) {
1501+
logV("groupAppData")
1502+
val client = clients[installationId] ?: throw XMTPException("No client")
1503+
val group = client.conversations.findGroup(groupId)
1504+
?: throw XMTPException("no group found for $groupId")
1505+
group.appData()
1506+
}
1507+
}
1508+
1509+
AsyncFunction("updateGroupAppData") Coroutine { installationId: String, groupId: String, appData: String ->
1510+
withContext(Dispatchers.IO) {
1511+
logV("updateGroupAppData")
1512+
val client = clients[installationId] ?: throw XMTPException("No client")
1513+
val group = client.conversations.findGroup(groupId)
1514+
?: throw XMTPException("no group found for $groupId")
1515+
group.updateAppData(appData)
1516+
}
1517+
}
1518+
14881519
AsyncFunction("disappearingMessageSettings") Coroutine { installationId: String, conversationId: String ->
14891520
withContext(Dispatchers.IO) {
14901521
logV("disappearingMessageSettings")
@@ -2029,15 +2060,15 @@ class XMTPModule : Module() {
20292060
}
20302061
}
20312062

2032-
AsyncFunction("createArchive") Coroutine { installationId: String, path: String, encryptionKey: List<Int>, startNs: Int?, endNs: Int?, archiveElements: List<String>? ->
2063+
AsyncFunction("createArchive") Coroutine { installationId: String, path: String, encryptionKey: List<Int>, startNs: Int?, endNs: Int?, archiveElements: List<String>?, excludeDisappearingMessages: Boolean? ->
20332064
withContext(Dispatchers.IO) {
20342065
val client = clients[installationId] ?: throw XMTPException("No client")
20352066
val encryptionKeyBytes =
20362067
encryptionKey.foldIndexed(ByteArray(encryptionKey.size)) { i, a, v ->
20372068
a.apply { set(i, v.toByte()) }
20382069
}
20392070
val elements = archiveElements?.map { getArchiveElement(it) } ?: listOf(ArchiveElement.MESSAGES, ArchiveElement.CONSENT)
2040-
val archiveOptions = ArchiveOptions(startNs?.toLong(), endNs?.toLong(), elements)
2071+
val archiveOptions = ArchiveOptions(startNs?.toLong(), endNs?.toLong(), elements, excludeDisappearingMessages ?: false)
20412072
client.createArchive(path, encryptionKeyBytes, archiveOptions)
20422073
}
20432074
}
@@ -2348,6 +2379,13 @@ class XMTPModule : Module() {
23482379
}
23492380
}
23502381

2382+
private fun getMessageSortBy(sortBy: String?): DecodedMessage.SortBy {
2383+
return when (sortBy) {
2384+
"INSERTED_TIME" -> DecodedMessage.SortBy.INSERTED_TIME
2385+
else -> DecodedMessage.SortBy.SENT_TIME
2386+
}
2387+
}
2388+
23512389
private val preAuthenticateToInboxCallback: suspend () -> Unit = {
23522390
sendEvent("preAuthenticateToInboxCallback")
23532391
preAuthenticateToInboxCallbackDeferred?.await()

0 commit comments

Comments
 (0)