Make verified notifications consistent

Co-authored-by: Scott Nonnenberg <scott@signal.org>
This commit is contained in:
automated-signal
2025-10-09 15:11:17 -05:00
committed by GitHub
parent 5460165972
commit 9d1159bd13
3 changed files with 45 additions and 36 deletions

View File

@@ -2386,7 +2386,7 @@ export class SignalProtocolStore extends EventEmitter {
serviceId: ServiceIdString,
verifiedStatus: number,
publicKey: Uint8Array
): Promise<boolean> {
): Promise<{ shouldAddVerifiedChangedMessage: boolean }> {
strictAssert(
validateVerifiedStatus(verifiedStatus),
`Invalid verified status: ${verifiedStatus}`
@@ -2436,23 +2436,27 @@ export class SignalProtocolStore extends EventEmitter {
}
}
// We only want to show a notification if the key is the same as before
if (hadEntry && !keyMatches) {
return { shouldAddVerifiedChangedMessage: false };
}
// See: https://github.com/signalapp/Signal-Android/blob/fc3db538bcaa38dc149712a483d3032c9c1f3998/app/src/main/java/org/thoughtcrime/securesms/database/RecipientDatabase.kt#L921-L936
if (
verifiedStatus === VerifiedStatus.VERIFIED &&
(!hadEntry || identityRecord?.verified !== VerifiedStatus.VERIFIED)
) {
// Needs a notification.
return true;
return { shouldAddVerifiedChangedMessage: true };
}
if (
verifiedStatus !== VerifiedStatus.VERIFIED &&
hadEntry &&
identityRecord?.verified === VerifiedStatus.VERIFIED
) {
// Needs a notification.
return true;
return { shouldAddVerifiedChangedMessage: true };
}
return false;
return { shouldAddVerifiedChangedMessage: false };
}
);
}