@@ -19,7 +19,8 @@ use xmtp_mls::{
19
19
client:: Client as MlsClient ,
20
20
groups:: MlsGroup ,
21
21
storage:: {
22
- group_message:: StoredGroupMessage , EncryptedMessageStore , EncryptionKey , StorageOption ,
22
+ group_message:: GroupMessageKind , group_message:: StoredGroupMessage , EncryptedMessageStore ,
23
+ EncryptionKey , StorageOption ,
23
24
} ,
24
25
types:: Address ,
25
26
} ;
@@ -224,7 +225,10 @@ impl FfiConversations {
224
225
Ok ( out)
225
226
}
226
227
227
- pub fn process_streamed_welcome_message ( & self , envelope_bytes : Vec < u8 > ) -> Result < Arc < FfiGroup > , GenericError > {
228
+ pub fn process_streamed_welcome_message (
229
+ & self ,
230
+ envelope_bytes : Vec < u8 > ,
231
+ ) -> Result < Arc < FfiGroup > , GenericError > {
228
232
let inner = self . inner_client . as_ref ( ) ;
229
233
let group = inner. process_streamed_welcome_message ( envelope_bytes) ?;
230
234
@@ -365,23 +369,32 @@ impl FfiGroup {
365
369
) ;
366
370
367
371
let messages: Vec < FfiMessage > = group
368
- . find_messages ( None , opts. sent_before_ns , opts. sent_after_ns , None , opts. limit ) ?
372
+ . find_messages (
373
+ None ,
374
+ opts. sent_before_ns ,
375
+ opts. sent_after_ns ,
376
+ None ,
377
+ opts. limit ,
378
+ ) ?
369
379
. into_iter ( )
370
380
. map ( |msg| msg. into ( ) )
371
381
. collect ( ) ;
372
382
373
383
Ok ( messages)
374
384
}
375
385
376
- pub async fn process_streamed_group_message ( & self , envelope_bytes : Vec < u8 > ) -> Result < FfiMessage , GenericError > {
386
+ pub async fn process_streamed_group_message (
387
+ & self ,
388
+ envelope_bytes : Vec < u8 > ,
389
+ ) -> Result < FfiMessage , GenericError > {
377
390
let group = MlsGroup :: new (
378
391
self . inner_client . as_ref ( ) ,
379
392
self . group_id . clone ( ) ,
380
393
self . created_at_ns ,
381
394
) ;
382
395
let message = group. process_streamed_group_message ( envelope_bytes) . await ?;
383
396
let ffi_message = message. into ( ) ;
384
-
397
+
385
398
Ok ( ffi_message)
386
399
}
387
400
@@ -484,13 +497,29 @@ impl FfiGroup {
484
497
}
485
498
}
486
499
500
+ #[ derive( uniffi:: Enum ) ]
501
+ pub enum FfiGroupMessageKind {
502
+ Application ,
503
+ MembershipChange ,
504
+ }
505
+
506
+ impl From < GroupMessageKind > for FfiGroupMessageKind {
507
+ fn from ( kind : GroupMessageKind ) -> Self {
508
+ match kind {
509
+ GroupMessageKind :: Application => FfiGroupMessageKind :: Application ,
510
+ GroupMessageKind :: MembershipChange => FfiGroupMessageKind :: MembershipChange ,
511
+ }
512
+ }
513
+ }
514
+
487
515
#[ derive( uniffi:: Record ) ]
488
516
pub struct FfiMessage {
489
517
pub id : Vec < u8 > ,
490
518
pub sent_at_ns : i64 ,
491
519
pub convo_id : Vec < u8 > ,
492
520
pub addr_from : String ,
493
521
pub content : Vec < u8 > ,
522
+ pub kind : FfiGroupMessageKind ,
494
523
}
495
524
496
525
impl From < StoredGroupMessage > for FfiMessage {
@@ -501,6 +530,7 @@ impl From<StoredGroupMessage> for FfiMessage {
501
530
convo_id : msg. group_id ,
502
531
addr_from : msg. sender_account_address ,
503
532
content : msg. decrypted_message_bytes ,
533
+ kind : msg. kind . into ( ) ,
504
534
}
505
535
}
506
536
}
0 commit comments