@@ -22,6 +22,7 @@ import uniffi.xmtpv3.FfiGroupPermissionsOptions
22
22
import uniffi.xmtpv3.FfiListConversationsOptions
23
23
import uniffi.xmtpv3.FfiMessage
24
24
import uniffi.xmtpv3.FfiMessageCallback
25
+ import uniffi.xmtpv3.FfiMessageDisappearingSettings
25
26
import uniffi.xmtpv3.FfiPermissionPolicySet
26
27
import uniffi.xmtpv3.FfiSubscribeException
27
28
import java.util.Date
@@ -54,8 +55,7 @@ data class Conversations(
54
55
groupImageUrlSquare : String = "",
55
56
groupDescription : String = "",
56
57
groupPinnedFrameUrl : String = "",
57
- messageExpirationFromMs : Long? = null,
58
- messageExpirationMs : Long? = null,
58
+ messageDisappearingSettings : FfiMessageDisappearingSettings ? = null,
59
59
): Group {
60
60
return newGroupInternal(
61
61
accountAddresses,
@@ -65,8 +65,7 @@ data class Conversations(
65
65
groupDescription,
66
66
groupPinnedFrameUrl,
67
67
null ,
68
- messageExpirationFromMs,
69
- messageExpirationMs,
68
+ messageDisappearingSettings,
70
69
)
71
70
}
72
71
@@ -77,8 +76,7 @@ data class Conversations(
77
76
groupImageUrlSquare : String = "",
78
77
groupDescription : String = "",
79
78
groupPinnedFrameUrl : String = "",
80
- messageExpirationFromMs : Long? = null,
81
- messageExpirationMs : Long? = null,
79
+ messageDisappearingSettings : FfiMessageDisappearingSettings ? = null,
82
80
): Group {
83
81
return newGroupInternal(
84
82
accountAddresses,
@@ -88,8 +86,7 @@ data class Conversations(
88
86
groupDescription,
89
87
groupPinnedFrameUrl,
90
88
PermissionPolicySet .toFfiPermissionPolicySet(permissionPolicySet),
91
- messageExpirationFromMs,
92
- messageExpirationMs
89
+ messageDisappearingSettings
93
90
)
94
91
}
95
92
@@ -101,8 +98,7 @@ data class Conversations(
101
98
groupDescription : String ,
102
99
groupPinnedFrameUrl : String ,
103
100
permissionsPolicySet : FfiPermissionPolicySet ? ,
104
- messageExpirationFromMs : Long? ,
105
- messageExpirationMs : Long? ,
101
+ messageDisappearingSettings : FfiMessageDisappearingSettings ? ,
106
102
): Group {
107
103
if (accountAddresses.any { it.equals(client.address, ignoreCase = true ) }) {
108
104
throw XMTPException (" Recipient is sender" )
@@ -124,8 +120,7 @@ data class Conversations(
124
120
groupDescription = groupDescription,
125
121
groupPinnedFrameUrl = groupPinnedFrameUrl,
126
122
customPermissionPolicySet = permissionsPolicySet,
127
- messageExpirationFromMs = messageExpirationFromMs,
128
- messageExpirationMs = messageExpirationMs,
123
+ messageDisappearingSettings = messageDisappearingSettings
129
124
)
130
125
)
131
126
return Group (client.inboxId, group)
@@ -138,8 +133,7 @@ data class Conversations(
138
133
groupImageUrlSquare : String = "",
139
134
groupDescription : String = "",
140
135
groupPinnedFrameUrl : String = "",
141
- messageExpirationFromMs : Long? = null,
142
- messageExpirationMs : Long? = null,
136
+ messageDisappearingSettings : FfiMessageDisappearingSettings ? = null,
143
137
): Group {
144
138
return newGroupInternalWithInboxIds(
145
139
inboxIds,
@@ -149,8 +143,7 @@ data class Conversations(
149
143
groupDescription,
150
144
groupPinnedFrameUrl,
151
145
null ,
152
- messageExpirationFromMs,
153
- messageExpirationMs,
146
+ messageDisappearingSettings
154
147
)
155
148
}
156
149
@@ -161,8 +154,7 @@ data class Conversations(
161
154
groupImageUrlSquare : String = "",
162
155
groupDescription : String = "",
163
156
groupPinnedFrameUrl : String = "",
164
- messageExpirationFromMs : Long? = null,
165
- messageExpirationMs : Long? = null,
157
+ messageDisappearingSettings : FfiMessageDisappearingSettings ? = null,
166
158
): Group {
167
159
return newGroupInternalWithInboxIds(
168
160
inboxIds,
@@ -172,8 +164,7 @@ data class Conversations(
172
164
groupDescription,
173
165
groupPinnedFrameUrl,
174
166
PermissionPolicySet .toFfiPermissionPolicySet(permissionPolicySet),
175
- messageExpirationFromMs,
176
- messageExpirationMs
167
+ messageDisappearingSettings
177
168
)
178
169
}
179
170
@@ -185,8 +176,7 @@ data class Conversations(
185
176
groupDescription : String ,
186
177
groupPinnedFrameUrl : String ,
187
178
permissionsPolicySet : FfiPermissionPolicySet ? ,
188
- messageExpirationFromMs : Long? ,
189
- messageExpirationMs : Long? ,
179
+ messageDisappearingSettings : FfiMessageDisappearingSettings ? ,
190
180
): Group {
191
181
if (inboxIds.any { it.equals(client.inboxId, ignoreCase = true ) }) {
192
182
throw XMTPException (" Recipient is sender" )
@@ -202,8 +192,7 @@ data class Conversations(
202
192
groupDescription = groupDescription,
203
193
groupPinnedFrameUrl = groupPinnedFrameUrl,
204
194
customPermissionPolicySet = permissionsPolicySet,
205
- messageExpirationFromMs = messageExpirationFromMs,
206
- messageExpirationMs = messageExpirationMs,
195
+ messageDisappearingSettings = messageDisappearingSettings
207
196
)
208
197
)
209
198
return Group (client.inboxId, group)
@@ -237,12 +226,8 @@ data class Conversations(
237
226
if (falseAddresses.isNotEmpty()) {
238
227
throw XMTPException (" ${falseAddresses.joinToString()} not on network" )
239
228
}
240
- var dm = client.findDmByAddress(peerAddress)
241
- if (dm == null ) {
242
- val dmConversation = ffiConversations.createDm(peerAddress.lowercase())
243
- dm = Dm (client.inboxId, dmConversation)
244
- }
245
- return dm
229
+ val dmConversation = ffiConversations.findOrCreateDm(peerAddress.lowercase())
230
+ return Dm (client.inboxId, dmConversation)
246
231
}
247
232
248
233
suspend fun newConversationWithInboxId (peerInboxId : String ): Conversation {
@@ -254,12 +239,8 @@ data class Conversations(
254
239
if (peerInboxId.lowercase() == client.inboxId.lowercase()) {
255
240
throw XMTPException (" Recipient is sender" )
256
241
}
257
- var dm = client.findDmByInboxId(peerInboxId)
258
- if (dm == null ) {
259
- val dmConversation = ffiConversations.createDmWithInboxId(peerInboxId.lowercase())
260
- dm = Dm (client.inboxId, dmConversation)
261
- }
262
- return dm
242
+ val dmConversation = ffiConversations.findOrCreateDmByInboxId(peerInboxId.lowercase())
243
+ return Dm (client.inboxId, dmConversation)
263
244
}
264
245
265
246
fun listGroups (
0 commit comments