You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			32 lines
		
	
	
		
			845 B
		
	
	
	
		
			JavaScript
		
	
			
		
		
	
	
			32 lines
		
	
	
		
			845 B
		
	
	
	
		
			JavaScript
		
	
/* global Whisper, SignalProtocolStore, ConversationController, _ */
 | 
						|
 | 
						|
/* eslint-disable more/no-then */
 | 
						|
 | 
						|
// eslint-disable-next-line func-names
 | 
						|
(function() {
 | 
						|
  'use strict';
 | 
						|
 | 
						|
  window.Whisper = window.Whisper || {};
 | 
						|
 | 
						|
  Whisper.KeyChangeListener = {
 | 
						|
    init(signalProtocolStore) {
 | 
						|
      if (!(signalProtocolStore instanceof SignalProtocolStore)) {
 | 
						|
        throw new Error('KeyChangeListener requires a SignalProtocolStore');
 | 
						|
      }
 | 
						|
 | 
						|
      signalProtocolStore.on('keychange', async id => {
 | 
						|
        const conversation = await ConversationController.getOrCreateAndWait(
 | 
						|
          id,
 | 
						|
          'private'
 | 
						|
        );
 | 
						|
        conversation.addKeyChange(id);
 | 
						|
 | 
						|
        const groups = await ConversationController.getAllGroupsInvolvingId(id);
 | 
						|
        _.forEach(groups, group => {
 | 
						|
          group.addKeyChange(id);
 | 
						|
        });
 | 
						|
      });
 | 
						|
    },
 | 
						|
  };
 | 
						|
})();
 |