Better ordering of ACI/E164 numbers

This commit is contained in:
Fedor Indutny 2023-07-19 01:40:14 +02:00 committed by Fedor Indutnyy
parent 1e6e8c3be4
commit eaae3ff88b
6 changed files with 26 additions and 17 deletions

View file

@ -56,18 +56,22 @@ export async function generateSafetyNumbers(
const theirKey = PublicKey.deserialize(Buffer.from(theirKeyBuffer));
let identifierTypes: ReadonlyArray<SafetyNumberIdentifierType>;
if (mode === SafetyNumberMode.ACIAndE164) {
if (mode === SafetyNumberMode.DefaultE164AndThenACI) {
// Important: order matters, legacy safety number should be displayed first.
identifierTypes = [
SafetyNumberIdentifierType.E164Identifier,
SafetyNumberIdentifierType.ACIIdentifier,
];
// Controlled by 'desktop.safetyNumberAci'
} else if (mode === SafetyNumberMode.E164) {
} else if (mode === SafetyNumberMode.JustE164) {
identifierTypes = [SafetyNumberIdentifierType.E164Identifier];
} else if (mode === SafetyNumberMode.DefaultACIAndMaybeE164) {
identifierTypes = [
SafetyNumberIdentifierType.ACIIdentifier,
SafetyNumberIdentifierType.E164Identifier,
];
} else {
assertDev(mode === SafetyNumberMode.ACI, 'Invalid security number mode');
identifierTypes = [SafetyNumberIdentifierType.ACIIdentifier];
throw missingCaseError(mode);
}
return identifierTypes