feat: Allow removing all ratchets for a given Jid
This commit is contained in:
parent
dad938b0e1
commit
8991599a0b
@ -441,6 +441,24 @@ class OmemoSessionManager {
|
||||
});
|
||||
}
|
||||
|
||||
/// Removes all ratchets for Jid [jid]. Triggers a DeviceMapModified event at the end and an
|
||||
/// RatchetRemovedEvent for each ratchet.
|
||||
Future<void> removeAllRatchets(String jid) async {
|
||||
await _lock.synchronized(() async {
|
||||
for (final deviceId in _deviceMap[jid]!) {
|
||||
// Remove the ratchet
|
||||
_ratchetMap.remove(RatchetMapKey(jid, deviceId));
|
||||
// Commit it
|
||||
_eventStreamController.add(RatchetRemovedEvent(jid, deviceId));
|
||||
}
|
||||
|
||||
// Remove the device from jid
|
||||
_deviceMap.remove(jid);
|
||||
// Commit it
|
||||
_eventStreamController.add(DeviceMapModifiedEvent(_deviceMap));
|
||||
});
|
||||
}
|
||||
|
||||
/// Returns the list of device identifiers belonging to [jid] that are yet unacked, i.e.
|
||||
/// we have not yet received an empty OMEMO message from.
|
||||
Future<List<int>?> getUnacknowledgedRatchets(String jid) async {
|
||||
|
Loading…
Reference in New Issue
Block a user