fix: finally got all the test cases to pass!

removed misMatchedMessage and replaced with shouldDisappearButIsntMessage which is a more explicit check
pull/2660/head
William Grant 3 years ago
parent 8dc7d48c52
commit ceeb9b790a

@ -417,9 +417,7 @@ export async function innerHandleSwarmContentMessage(
// TODO legacy messages support will be removed in a future release // TODO legacy messages support will be removed in a future release
if ( if (
expireUpdate?.isDisappearingMessagesV2Released && expireUpdate?.isDisappearingMessagesV2Released &&
(expireUpdate?.isLegacyConversationSettingMessage || expireUpdate?.isLegacyConversationSettingMessage
(expireUpdate?.isMismatchedMessage &&
content.dataMessage.flags === SignalService.DataMessage.Flags.EXPIRATION_TIMER_UPDATE))
) { ) {
window.log.info(`WIP: The legacy message is an expiration timer update. Ignoring it.`); window.log.info(`WIP: The legacy message is an expiration timer update. Ignoring it.`);
return; return;

@ -35,7 +35,6 @@ export type DisappearingMessageUpdate = {
isLegacyConversationSettingMessage?: boolean; isLegacyConversationSettingMessage?: boolean;
isLegacyDataMessage?: boolean; isLegacyDataMessage?: boolean;
isDisappearingMessagesV2Released?: boolean; isDisappearingMessagesV2Released?: boolean;
isMismatchedMessage?: boolean;
}; };
export async function destroyMessagesAndUpdateRedux( export async function destroyMessagesAndUpdateRedux(
@ -310,19 +309,17 @@ export async function checkForExpireUpdate(
? Number(content.lastDisappearingMessageChangeTimestamp) ? Number(content.lastDisappearingMessageChangeTimestamp)
: undefined; : undefined;
const isMismatchedMessage = const shouldDisappearButIsntMessage =
(!isLegacyConversationSettingMessage && dataMessage.flags !== SignalService.DataMessage.Flags.EXPIRATION_TIMER_UPDATE &&
convoToUpdate.get('expirationType') !== 'off' && expirationType === 'off' &&
convoToUpdate.get('expirationType') !== expirationType) || expirationTimer === 0 &&
(convoToUpdate.get('expireTimer') !== 0 && convoToUpdate.get('expirationType') !== 'off' &&
convoToUpdate.get('expireTimer') !== expirationTimer); convoToUpdate.get('expireTimer') !== 0;
// If it is a legacy message and disappearing messages v2 is released then we ignore it and use the local client's conversation settings // If it is a legacy message and disappearing messages v2 is released then we ignore it and use the local client's conversation settings
if ( if (
isDisappearingMessagesV2Released && isDisappearingMessagesV2Released &&
(isLegacyDataMessage || (isLegacyDataMessage || isLegacyConversationSettingMessage || shouldDisappearButIsntMessage)
isLegacyConversationSettingMessage ||
(isLegacyDataMessage && isMismatchedMessage))
) { ) {
window.log.info(`WIP: received a legacy disappearing message after v2 was released.`); window.log.info(`WIP: received a legacy disappearing message after v2 was released.`);
expirationType = convoToUpdate.get('expirationType'); expirationType = convoToUpdate.get('expirationType');
@ -336,7 +333,6 @@ export async function checkForExpireUpdate(
isLegacyConversationSettingMessage, isLegacyConversationSettingMessage,
isLegacyDataMessage, isLegacyDataMessage,
isDisappearingMessagesV2Released, isDisappearingMessagesV2Released,
isMismatchedMessage,
}; };
window.log.info(`WIP: checkForExpireUpdate`, expireUpdate); window.log.info(`WIP: checkForExpireUpdate`, expireUpdate);
@ -395,11 +391,7 @@ export function checkHasOutdatedClient(
if (convoToUpdate.get('hasOutdatedClient')) { if (convoToUpdate.get('hasOutdatedClient')) {
// trigger notice banner // trigger notice banner
if ( if (expireUpdate.isLegacyDataMessage || expireUpdate.isLegacyConversationSettingMessage) {
expireUpdate.isLegacyDataMessage ||
expireUpdate.isLegacyConversationSettingMessage ||
(expireUpdate.isDisappearingMessagesV2Released && expireUpdate.isMismatchedMessage)
) {
if (convoToUpdate.get('hasOutdatedClient') !== outdatedSender) { if (convoToUpdate.get('hasOutdatedClient') !== outdatedSender) {
convoToUpdate.set({ convoToUpdate.set({
hasOutdatedClient: outdatedSender, hasOutdatedClient: outdatedSender,
@ -412,11 +404,7 @@ export function checkHasOutdatedClient(
} }
convoToUpdate.commit(); convoToUpdate.commit();
} else { } else {
if ( if (expireUpdate.isLegacyDataMessage || expireUpdate.isLegacyConversationSettingMessage) {
expireUpdate.isLegacyDataMessage ||
expireUpdate.isLegacyConversationSettingMessage ||
(expireUpdate.isDisappearingMessagesV2Released && expireUpdate.isMismatchedMessage)
) {
convoToUpdate.set({ convoToUpdate.set({
hasOutdatedClient: outdatedSender, hasOutdatedClient: outdatedSender,
}); });

Loading…
Cancel
Save