Better send state for unregistered recipients

This commit is contained in:
Fedor Indutny 2022-11-16 18:15:26 -08:00 committed by GitHub
parent 90734e306c
commit 629b5c3f6a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 14 additions and 4 deletions

View file

@ -492,7 +492,7 @@ export async function sendStory(
return acc; return acc;
} }
if (recipient.isUnregistered()) { if (recipient.isEverUnregistered()) {
if (!isSent(oldSendState.status)) { if (!isSent(oldSendState.status)) {
// We should have filtered this out on initial send, but we'll drop them from // We should have filtered this out on initial send, but we'll drop them from
// send list here if needed. // send list here if needed.

View file

@ -52,6 +52,7 @@ import { strictAssert } from '../util/assert';
import { isConversationMuted } from '../util/isConversationMuted'; import { isConversationMuted } from '../util/isConversationMuted';
import { isConversationSMSOnly } from '../util/isConversationSMSOnly'; import { isConversationSMSOnly } from '../util/isConversationSMSOnly';
import { import {
isConversationEverUnregistered,
isConversationUnregistered, isConversationUnregistered,
isConversationUnregisteredAndStale, isConversationUnregisteredAndStale,
} from '../util/isConversationUnregistered'; } from '../util/isConversationUnregistered';
@ -785,7 +786,7 @@ export class ConversationModel extends window.Backbone
} }
isEverUnregistered(): boolean { isEverUnregistered(): boolean {
return Boolean(this.get('discoveredUnregisteredAt')); return isConversationEverUnregistered(this.attributes);
} }
isUnregistered(): boolean { isUnregistered(): boolean {

View file

@ -6,13 +6,16 @@ import type { ConversationModel } from '../models/conversations';
import type { ConversationType } from '../state/ducks/conversations'; import type { ConversationType } from '../state/ducks/conversations';
import { isInSystemContacts } from './isInSystemContacts'; import { isInSystemContacts } from './isInSystemContacts';
import { isDirectConversation } from './whatTypeOfConversation'; import { isDirectConversation } from './whatTypeOfConversation';
import { isConversationEverUnregistered } from './isConversationUnregistered';
export function isSignalConnection( export function isSignalConnection(
conversation: ConversationType | ConversationAttributesType conversation: ConversationType | ConversationAttributesType
): boolean { ): boolean {
return ( return (
isDirectConversation(conversation) && isDirectConversation(conversation) &&
(conversation.profileSharing || isInSystemContacts(conversation)) (conversation.profileSharing || isInSystemContacts(conversation)) &&
conversation.uuid !== undefined &&
!isConversationEverUnregistered(conversation)
); );
} }

View file

@ -6,6 +6,12 @@ import { HOUR, MONTH } from './durations';
const SIX_HOURS = 6 * HOUR; const SIX_HOURS = 6 * HOUR;
export function isConversationEverUnregistered({
discoveredUnregisteredAt,
}: Readonly<{ discoveredUnregisteredAt?: number }>): boolean {
return discoveredUnregisteredAt !== undefined;
}
export function isConversationUnregistered({ export function isConversationUnregistered({
discoveredUnregisteredAt, discoveredUnregisteredAt,
}: Readonly<{ discoveredUnregisteredAt?: number }>): boolean { }: Readonly<{ discoveredUnregisteredAt?: number }>): boolean {

View file

@ -96,7 +96,7 @@ export async function sendStoryMessage(
return acc; return acc;
} }
if (convo.isUnregistered()) { if (convo.isEverUnregistered()) {
return acc; return acc;
} }