diff --git a/ts/jobs/helpers/sendStory.ts b/ts/jobs/helpers/sendStory.ts index a06deee9a1..7d65f7c614 100644 --- a/ts/jobs/helpers/sendStory.ts +++ b/ts/jobs/helpers/sendStory.ts @@ -492,7 +492,7 @@ export async function sendStory( return acc; } - if (recipient.isUnregistered()) { + if (recipient.isEverUnregistered()) { if (!isSent(oldSendState.status)) { // We should have filtered this out on initial send, but we'll drop them from // send list here if needed. diff --git a/ts/models/conversations.ts b/ts/models/conversations.ts index 96766c0ba7..dd4e6566c9 100644 --- a/ts/models/conversations.ts +++ b/ts/models/conversations.ts @@ -52,6 +52,7 @@ import { strictAssert } from '../util/assert'; import { isConversationMuted } from '../util/isConversationMuted'; import { isConversationSMSOnly } from '../util/isConversationSMSOnly'; import { + isConversationEverUnregistered, isConversationUnregistered, isConversationUnregisteredAndStale, } from '../util/isConversationUnregistered'; @@ -785,7 +786,7 @@ export class ConversationModel extends window.Backbone } isEverUnregistered(): boolean { - return Boolean(this.get('discoveredUnregisteredAt')); + return isConversationEverUnregistered(this.attributes); } isUnregistered(): boolean { diff --git a/ts/util/getSignalConnections.ts b/ts/util/getSignalConnections.ts index a841e13ba6..909c655a3c 100644 --- a/ts/util/getSignalConnections.ts +++ b/ts/util/getSignalConnections.ts @@ -6,13 +6,16 @@ import type { ConversationModel } from '../models/conversations'; import type { ConversationType } from '../state/ducks/conversations'; import { isInSystemContacts } from './isInSystemContacts'; import { isDirectConversation } from './whatTypeOfConversation'; +import { isConversationEverUnregistered } from './isConversationUnregistered'; export function isSignalConnection( conversation: ConversationType | ConversationAttributesType ): boolean { return ( isDirectConversation(conversation) && - (conversation.profileSharing || isInSystemContacts(conversation)) + (conversation.profileSharing || isInSystemContacts(conversation)) && + conversation.uuid !== undefined && + !isConversationEverUnregistered(conversation) ); } diff --git a/ts/util/isConversationUnregistered.ts b/ts/util/isConversationUnregistered.ts index 9d06217010..d9e04ce433 100644 --- a/ts/util/isConversationUnregistered.ts +++ b/ts/util/isConversationUnregistered.ts @@ -6,6 +6,12 @@ import { HOUR, MONTH } from './durations'; const SIX_HOURS = 6 * HOUR; +export function isConversationEverUnregistered({ + discoveredUnregisteredAt, +}: Readonly<{ discoveredUnregisteredAt?: number }>): boolean { + return discoveredUnregisteredAt !== undefined; +} + export function isConversationUnregistered({ discoveredUnregisteredAt, }: Readonly<{ discoveredUnregisteredAt?: number }>): boolean { diff --git a/ts/util/sendStoryMessage.ts b/ts/util/sendStoryMessage.ts index a934eec591..322a48f5bd 100644 --- a/ts/util/sendStoryMessage.ts +++ b/ts/util/sendStoryMessage.ts @@ -96,7 +96,7 @@ export async function sendStoryMessage( return acc; } - if (convo.isUnregistered()) { + if (convo.isEverUnregistered()) { return acc; }