Speed up message creation.

We were fetching all of our devices everytime a new message was received.
This was only used for when the message was a public chat message, so i moved it into the relevant if statement.

In the future if we increase the device link limit, we'll need to fetch all our devices on application launch or something.
pull/976/head
Mikunj 6 years ago
parent 26140e0ed0
commit 8c91aa04f1

@ -1964,21 +1964,23 @@
return handleProfileUpdate({ data, confirm, messageDescriptor }); return handleProfileUpdate({ data, confirm, messageDescriptor });
} }
const primaryDeviceKey = window.storage.get('primaryDevicePubKey');
const allOurDevices = await libloki.storage.getAllDevicePubKeysForPrimaryPubKey(
primaryDeviceKey
);
const descriptorId = await textsecure.MessageReceiver.arrayBufferToString( const descriptorId = await textsecure.MessageReceiver.arrayBufferToString(
messageDescriptor.id messageDescriptor.id
); );
let message; let message;
if ( if (
messageDescriptor.type === 'group' && messageDescriptor.type === 'group' &&
descriptorId.match(/^publicChat:/) && descriptorId.match(/^publicChat:/)
allOurDevices.includes(data.source)
) { ) {
// Public chat messages from ourselves should be outgoing // Note: This only works currently because we have a 1 device limit
message = await createSentMessage(data); // When we change that, the check below needs to change too
const ourNumber = textsecure.storage.user.getNumber();
const primaryDevice = window.storage.get('primaryDevicePubKey');
const { source } = data;
if (source && (source === ourNumber || source === primaryDevice)) {
// Public chat messages from ourselves should be outgoing
message = await createSentMessage(data);
}
} else { } else {
message = await createMessage(data); message = await createMessage(data);
} }

Loading…
Cancel
Save