35 lines
982 B
JavaScript
35 lines
982 B
JavaScript
// Copyright 2017-2020 Signal Messenger, LLC
|
|
// SPDX-License-Identifier: AGPL-3.0-only
|
|
|
|
/* global Whisper, SignalProtocolStore, ConversationController, _ */
|
|
|
|
/* eslint-disable more/no-then */
|
|
|
|
// eslint-disable-next-line func-names
|
|
(function () {
|
|
window.Whisper = window.Whisper || {};
|
|
|
|
Whisper.KeyChangeListener = {
|
|
init(signalProtocolStore) {
|
|
if (!(signalProtocolStore instanceof SignalProtocolStore)) {
|
|
throw new Error('KeyChangeListener requires a SignalProtocolStore');
|
|
}
|
|
|
|
signalProtocolStore.on('keychange', async identifier => {
|
|
const conversation = await ConversationController.getOrCreateAndWait(
|
|
identifier,
|
|
'private'
|
|
);
|
|
conversation.addKeyChange(identifier);
|
|
|
|
const groups = await ConversationController.getAllGroupsInvolvingId(
|
|
conversation.id
|
|
);
|
|
_.forEach(groups, group => {
|
|
group.addKeyChange(identifier);
|
|
});
|
|
});
|
|
},
|
|
};
|
|
})();
|