add Secondary Device only if it's not a primary device

pull/1332/head
Audric Ackermann 5 years ago
parent c34edee180
commit 29dfb092eb
No known key found for this signature in database
GPG Key ID: 999F434D76324AD4

@ -836,7 +836,7 @@
return Boolean(lookup[contactId]); return Boolean(lookup[contactId]);
}, },
getPropsForMessageDetail() { async getPropsForMessageDetail() {
const newIdentity = i18n('newIdentity'); const newIdentity = i18n('newIdentity');
const OUTGOING_KEY_ERROR = 'OutgoingIdentityKeyError'; const OUTGOING_KEY_ERROR = 'OutgoingIdentityKeyError';
@ -872,8 +872,7 @@
// that contact. Otherwise, it will be a standalone entry. // that contact. Otherwise, it will be a standalone entry.
const errors = _.reject(allErrors, error => Boolean(error.number)); const errors = _.reject(allErrors, error => Boolean(error.number));
const errorsGroupedById = _.groupBy(allErrors, 'number'); const errorsGroupedById = _.groupBy(allErrors, 'number');
const primaryDevicePubKey = this.get('conversationId'); const finalContacts = await Promise.all((phoneNumbers || []).map(async id => {
const finalContacts = (phoneNumbers || []).map(id => {
const errorsForContact = errorsGroupedById[id]; const errorsForContact = errorsGroupedById[id];
const isOutgoingKeyError = Boolean( const isOutgoingKeyError = Boolean(
_.find(errorsForContact, error => error.name === OUTGOING_KEY_ERROR) _.find(errorsForContact, error => error.name === OUTGOING_KEY_ERROR)
@ -881,8 +880,11 @@
const isUnidentifiedDelivery = const isUnidentifiedDelivery =
storage.get('unidentifiedDeliveryIndicators') && storage.get('unidentifiedDeliveryIndicators') &&
this.isUnidentifiedDelivery(id, unidentifiedLookup); this.isUnidentifiedDelivery(id, unidentifiedLookup);
const primary = await window.libsession.Protocols.MultiDeviceProtocol.getPrimaryDevice(
id
);
const isPrimaryDevice = id === primaryDevicePubKey; const isPrimaryDevice = id === primary.key;
const contact = this.findAndFormatContact(id); const contact = this.findAndFormatContact(id);
const profileName = isPrimaryDevice const profileName = isPrimaryDevice
@ -904,7 +906,7 @@
onShowSafetyNumber: () => onShowSafetyNumber: () =>
this.trigger('show-identity', this.findContact(id)), this.trigger('show-identity', this.findContact(id)),
}; };
}); }));
// The prefix created here ensures that contacts with errors are listed // The prefix created here ensures that contacts with errors are listed
// first; otherwise it's alphabetical // first; otherwise it's alphabetical

@ -1496,14 +1496,14 @@
Signal.Backbone.Views.Lightbox.show(this.lightboxGalleryView.el); Signal.Backbone.Views.Lightbox.show(this.lightboxGalleryView.el);
}, },
showMessageDetail(message) { async showMessageDetail(message) {
const onClose = () => { const onClose = () => {
this.stopListening(message, 'change', update); this.stopListening(message, 'change', update);
this.resetPanel(); this.resetPanel();
this.updateHeader(); this.updateHeader();
}; };
const props = message.getPropsForMessageDetail(); const props = await message.getPropsForMessageDetail();
const view = new Whisper.ReactWrapperView({ const view = new Whisper.ReactWrapperView({
className: 'message-detail-wrapper', className: 'message-detail-wrapper',
Component: Signal.Components.MessageDetail, Component: Signal.Components.MessageDetail,
@ -1511,7 +1511,7 @@
onClose, onClose,
}); });
const update = () => view.update(message.getPropsForMessageDetail()); const update = async () => view.update(await message.getPropsForMessageDetail());
this.listenTo(message, 'change', update); this.listenTo(message, 'change', update);
this.listenTo(message, 'expired', onClose); this.listenTo(message, 'expired', onClose);
// We could listen to all involved contacts, but we'll call that overkill // We could listen to all involved contacts, but we'll call that overkill

Loading…
Cancel
Save