From: AsamK Date: Fri, 6 Oct 2023 19:42:28 +0000 (+0200) Subject: Support serviceId based safety number for scannable safety numbers X-Git-Tag: v0.12.3~24 X-Git-Url: https://git.nmode.ca/signal-cli/commitdiff_plain/54c3b19052eeb12544462e696922e5f47671b11c Support serviceId based safety number for scannable safety numbers --- diff --git a/lib/src/main/java/org/asamk/signal/manager/helper/IdentityHelper.java b/lib/src/main/java/org/asamk/signal/manager/helper/IdentityHelper.java index 61973f33..c1e22c97 100644 --- a/lib/src/main/java/org/asamk/signal/manager/helper/IdentityHelper.java +++ b/lib/src/main/java/org/asamk/signal/manager/helper/IdentityHelper.java @@ -58,22 +58,25 @@ public class IdentityHelper { } public String computeSafetyNumber(ServiceId serviceId, IdentityKey theirIdentityKey) { - final Fingerprint fingerprint = computeSafetyNumberFingerprint(serviceId, theirIdentityKey); + final var fingerprint = computeSafetyNumberFingerprint(serviceId, theirIdentityKey, false); return fingerprint == null ? null : fingerprint.getDisplayableFingerprint().getDisplayText(); } public ScannableFingerprint computeSafetyNumberForScanning(ServiceId serviceId, IdentityKey theirIdentityKey) { - final Fingerprint fingerprint = computeSafetyNumberFingerprint(serviceId, theirIdentityKey); + var fingerprint = computeSafetyNumberFingerprint(serviceId, theirIdentityKey, false); + if (fingerprint == null) { + fingerprint = computeSafetyNumberFingerprint(serviceId, theirIdentityKey, true); + } return fingerprint == null ? null : fingerprint.getScannableFingerprint(); } private Fingerprint computeSafetyNumberFingerprint( - final ServiceId serviceId, final IdentityKey theirIdentityKey + final ServiceId serviceId, final IdentityKey theirIdentityKey, boolean useServiceId ) { final var recipientId = account.getRecipientResolver().resolveRecipient(serviceId); final var address = account.getRecipientAddressResolver().resolveRecipientAddress(recipientId); - if (false) { + if (useServiceId) { if (serviceId.isUnknown()) { return null; }