Remove concept of V1 vs V2 fuzzy phone number results.

V1 hasn't been used in a long time. So we can just delete that code then
remove the concept of a 'v2' from the other stuff.
fork-5.53.8
Greyson Parrelli 2021-10-11 13:24:03 -04:00
rodzic 9c6908873c
commit 49c9b0acde
4 zmienionych plików z 21 dodań i 134 usunięć

Wyświetl plik

@ -66,8 +66,8 @@ class ContactDiscoveryV2 {
KeyStore iasKeyStore = getIasKeyStore(context);
try {
Map<String, UUID> results = accountManager.getRegisteredUsers(iasKeyStore, sanitizedNumbers, BuildConfig.CDS_MRENCLAVE);
FuzzyPhoneNumberHelper.OutputResultV2 outputResult = FuzzyPhoneNumberHelper.generateOutputV2(results, inputResult);
Map<String, UUID> results = accountManager.getRegisteredUsers(iasKeyStore, sanitizedNumbers, BuildConfig.CDS_MRENCLAVE);
FuzzyPhoneNumberHelper.OutputResult outputResult = FuzzyPhoneNumberHelper.generateOutput(results, inputResult);
return new DirectoryResult(outputResult.getNumbers(), outputResult.getRewrites(), ignoredNumbers);
} catch (SignatureException | UnauthenticatedQuoteException | UnauthenticatedResponseException | Quote.InvalidQuoteFormatException |InvalidKeyException e) {

Wyświetl plik

@ -46,8 +46,8 @@ class ContactDiscoveryV3 {
SignalServiceAccountManager accountManager = ApplicationDependencies.getSignalServiceAccountManager();
try {
Map<String, UUID> results = accountManager.getRegisteredUsersWithCdsh(sanitizedNumbers, BuildConfig.CDSH_PUBLIC_KEY, BuildConfig.CDSH_CODE_HASH);
FuzzyPhoneNumberHelper.OutputResultV2 outputResult = FuzzyPhoneNumberHelper.generateOutputV2(results, inputResult);
Map<String, UUID> results = accountManager.getRegisteredUsersWithCdsh(sanitizedNumbers, BuildConfig.CDSH_PUBLIC_KEY, BuildConfig.CDSH_CODE_HASH);
FuzzyPhoneNumberHelper.OutputResult outputResult = FuzzyPhoneNumberHelper.generateOutput(results, inputResult);
return new DirectoryResult(outputResult.getNumbers(), outputResult.getRewrites(), ignoredNumbers);
} catch (IOException e) {

Wyświetl plik

@ -30,7 +30,6 @@ class FuzzyPhoneNumberHelper {
Set<String> allNumbers = new HashSet<>(testNumbers);
Map<String, String> fuzzies = new HashMap<>();
for (String number : testNumbers) {
for (FuzzyVariant fuzzyVariant: FUZZY_VARIANTS) {
if(fuzzyVariant.hasVariants(number)) {
@ -50,37 +49,7 @@ class FuzzyPhoneNumberHelper {
* these results and our initial input set, we can decide if we need to rewrite which number we
* have stored locally.
*/
static @NonNull OutputResult generateOutput(@NonNull Collection<String> registeredNumbers, @NonNull InputResult inputResult) {
Set<String> allNumbers = new HashSet<>(registeredNumbers);
Map<String, String> rewrites = new HashMap<>();
for (Map.Entry<String, String> entry : inputResult.getFuzzies().entrySet()) {
if (registeredNumbers.contains(entry.getKey()) && registeredNumbers.contains(entry.getValue())) {
for (FuzzyVariant fuzzyVariant: FUZZY_VARIANTS) {
if(fuzzyVariant.hasVariants(entry.getKey())) {
if (fuzzyVariant.isDefaultVariant(entry.getKey())) {
allNumbers.remove(entry.getValue());
} else {
rewrites.put(entry.getKey(), entry.getValue());
allNumbers.remove(entry.getKey());
}
}
}
} else if (registeredNumbers.contains(entry.getValue())) {
rewrites.put(entry.getKey(), entry.getValue());
allNumbers.remove(entry.getKey());
}
}
return new OutputResult(allNumbers, rewrites);
}
/**
* This should be run on the list of numbers we find out are registered with the server. Based on
* these results and our initial input set, we can decide if we need to rewrite which number we
* have stored locally.
*/
static @NonNull OutputResultV2 generateOutputV2(@NonNull Map<String, UUID> registeredNumbers, @NonNull InputResult inputResult) {
static @NonNull OutputResult generateOutput(@NonNull Map<String, UUID> registeredNumbers, @NonNull InputResult inputResult) {
Map<String, UUID> allNumbers = new HashMap<>(registeredNumbers);
Map<String, String> rewrites = new HashMap<>();
@ -102,7 +71,7 @@ class FuzzyPhoneNumberHelper {
}
}
return new OutputResultV2(allNumbers, rewrites);
return new OutputResult(allNumbers, rewrites);
}
private interface FuzzyVariant {
@ -183,28 +152,10 @@ class FuzzyPhoneNumberHelper {
}
public static class OutputResult {
private final Set<String> numbers;
private final Map<String, String> rewrites;
private OutputResult(@NonNull Set<String> numbers, @NonNull Map<String, String> rewrites) {
this.numbers = numbers;
this.rewrites = rewrites;
}
public @NonNull Set<String> getNumbers() {
return numbers;
}
public @NonNull Map<String, String> getRewrites() {
return rewrites;
}
}
public static class OutputResultV2 {
private final Map<String, UUID> numbers;
private final Map<String, String> rewrites;
private OutputResultV2(@NonNull Map<String, UUID> numbers, @NonNull Map<String, String> rewrites) {
private OutputResult(@NonNull Map<String, UUID> numbers, @NonNull Map<String, String> rewrites) {
this.numbers = numbers;
this.rewrites = rewrites;
}

Wyświetl plik

@ -3,7 +3,6 @@ package org.thoughtcrime.securesms.contacts.sync;
import org.junit.Test;
import org.thoughtcrime.securesms.contacts.sync.FuzzyPhoneNumberHelper.InputResult;
import org.thoughtcrime.securesms.contacts.sync.FuzzyPhoneNumberHelper.OutputResult;
import org.thoughtcrime.securesms.contacts.sync.FuzzyPhoneNumberHelper.OutputResultV2;
import org.whispersystems.signalservice.api.util.UuidUtil;
import java.util.Arrays;
@ -101,70 +100,7 @@ public class FuzzyPhoneNumberHelperTest {
@Test
public void generateOutput_noMxNumbers() {
OutputResult result = FuzzyPhoneNumberHelper.generateOutput(setOf(US_A, US_B), new InputResult(setOf(US_A, US_B), Collections.emptyMap()));
assertEquals(2, result.getNumbers().size());
assertTrue(result.getNumbers().containsAll(setOf(US_A, US_B)));
assertTrue(result.getRewrites().isEmpty());
}
@Test
public void generateOutput_bothMatch_no1To1() {
OutputResult result = FuzzyPhoneNumberHelper.generateOutput(setOf(MX_A, MX_A_1), new InputResult(setOf(MX_A, MX_A_1), Collections.singletonMap(MX_A, MX_A_1)));
assertEquals(1, result.getNumbers().size());
assertTrue(result.getNumbers().containsAll(setOf(MX_A)));
assertTrue(result.getRewrites().isEmpty());
}
@Test
public void generateOutput_bothMatch_1toNo1() {
OutputResult result = FuzzyPhoneNumberHelper.generateOutput(setOf(MX_A, MX_A_1), new InputResult(setOf(MX_A, MX_A_1), Collections.singletonMap(MX_A_1, MX_A)));
assertEquals(1, result.getNumbers().size());
assertTrue(result.getNumbers().containsAll(setOf(MX_A)));
assertEquals(MX_A, result.getRewrites().get(MX_A_1));
}
@Test
public void generateOutput_no1Match_no1To1() {
OutputResult result = FuzzyPhoneNumberHelper.generateOutput(setOf(MX_A), new InputResult(setOf(MX_A, MX_A_1), Collections.singletonMap(MX_A, MX_A_1)));
assertEquals(1, result.getNumbers().size());
assertTrue(result.getNumbers().containsAll(setOf(MX_A)));
assertTrue(result.getRewrites().isEmpty());
}
@Test
public void generateOutput_no1Match_1ToNo1() {
OutputResult result = FuzzyPhoneNumberHelper.generateOutput(setOf(MX_A), new InputResult(setOf(MX_A, MX_A_1), Collections.singletonMap(MX_A_1, MX_A)));
assertEquals(1, result.getNumbers().size());
assertTrue(result.getNumbers().containsAll(setOf(MX_A)));
assertEquals(MX_A, result.getRewrites().get(MX_A_1));
}
@Test
public void generateOutput_1Match_1ToNo1() {
OutputResult result = FuzzyPhoneNumberHelper.generateOutput(setOf(MX_A_1), new InputResult(setOf(MX_A, MX_A_1), Collections.singletonMap(MX_A_1, MX_A)));
assertEquals(1, result.getNumbers().size());
assertTrue(result.getNumbers().containsAll(setOf(MX_A_1)));
assertTrue(result.getRewrites().isEmpty());
}
@Test
public void generateOutput_1Match_no1To1() {
OutputResult result = FuzzyPhoneNumberHelper.generateOutput(setOf(MX_A_1), new InputResult(setOf(MX_A, MX_A_1), Collections.singletonMap(MX_A, MX_A_1)));
assertEquals(1, result.getNumbers().size());
assertTrue(result.getNumbers().containsAll(setOf(MX_A_1)));
assertEquals(MX_A_1, result.getRewrites().get(MX_A));
}
@Test
public void generateOutputV2_noMxNumbers() {
OutputResultV2 result = FuzzyPhoneNumberHelper.generateOutputV2(mapOf(US_A, UUID_A, US_B, UUID_B), new InputResult(setOf(US_A, US_B), Collections.emptyMap()));
OutputResult result = FuzzyPhoneNumberHelper.generateOutput(mapOf(US_A, UUID_A, US_B, UUID_B), new InputResult(setOf(US_A, US_B), Collections.emptyMap()));
assertEquals(2, result.getNumbers().size());
assertEquals(UUID_A, result.getNumbers().get(US_A));
@ -173,8 +109,8 @@ public class FuzzyPhoneNumberHelperTest {
}
@Test
public void generateOutputV2_bothMatch_no1To1() {
OutputResultV2 result = FuzzyPhoneNumberHelper.generateOutputV2(mapOf(MX_A, UUID_A, MX_A_1, UUID_B), new InputResult(setOf(MX_A, MX_A_1), Collections.singletonMap(MX_A, MX_A_1)));
public void generateOutput_bothMatch_no1To1() {
OutputResult result = FuzzyPhoneNumberHelper.generateOutput(mapOf(MX_A, UUID_A, MX_A_1, UUID_B), new InputResult(setOf(MX_A, MX_A_1), Collections.singletonMap(MX_A, MX_A_1)));
assertEquals(1, result.getNumbers().size());
assertEquals(UUID_A, result.getNumbers().get(MX_A));
@ -182,8 +118,8 @@ public class FuzzyPhoneNumberHelperTest {
}
@Test
public void generateOutputV2_bothMatch_1toNo1() {
OutputResultV2 result = FuzzyPhoneNumberHelper.generateOutputV2(mapOf(MX_A, UUID_A, MX_A_1, UUID_B), new InputResult(setOf(MX_A, MX_A_1), Collections.singletonMap(MX_A_1, MX_A)));
public void generateOutput_bothMatch_1toNo1() {
OutputResult result = FuzzyPhoneNumberHelper.generateOutput(mapOf(MX_A, UUID_A, MX_A_1, UUID_B), new InputResult(setOf(MX_A, MX_A_1), Collections.singletonMap(MX_A_1, MX_A)));
assertEquals(1, result.getNumbers().size());
assertEquals(UUID_A, result.getNumbers().get(MX_A));
@ -191,8 +127,8 @@ public class FuzzyPhoneNumberHelperTest {
}
@Test
public void generateOutputV2_no1Match_no1To1() {
OutputResultV2 result = FuzzyPhoneNumberHelper.generateOutputV2(mapOf(MX_A, UUID_A), new InputResult(setOf(MX_A, MX_A_1), Collections.singletonMap(MX_A, MX_A_1)));
public void generateOutput_no1Match_no1To1() {
OutputResult result = FuzzyPhoneNumberHelper.generateOutput(mapOf(MX_A, UUID_A), new InputResult(setOf(MX_A, MX_A_1), Collections.singletonMap(MX_A, MX_A_1)));
assertEquals(1, result.getNumbers().size());
assertEquals(UUID_A, result.getNumbers().get(MX_A));
@ -200,8 +136,8 @@ public class FuzzyPhoneNumberHelperTest {
}
@Test
public void generateOutputV2_no1Match_1ToNo1() {
OutputResultV2 result = FuzzyPhoneNumberHelper.generateOutputV2(mapOf(MX_A, UUID_A), new InputResult(setOf(MX_A, MX_A_1), Collections.singletonMap(MX_A_1, MX_A)));
public void generateOutput_no1Match_1ToNo1() {
OutputResult result = FuzzyPhoneNumberHelper.generateOutput(mapOf(MX_A, UUID_A), new InputResult(setOf(MX_A, MX_A_1), Collections.singletonMap(MX_A_1, MX_A)));
assertEquals(1, result.getNumbers().size());
assertEquals(UUID_A, result.getNumbers().get(MX_A));
@ -209,8 +145,8 @@ public class FuzzyPhoneNumberHelperTest {
}
@Test
public void generateOutputV2_1Match_1ToNo1() {
OutputResultV2 result = FuzzyPhoneNumberHelper.generateOutputV2(mapOf(MX_A_1, UUID_A), new InputResult(setOf(MX_A, MX_A_1), Collections.singletonMap(MX_A_1, MX_A)));
public void generateOutput_1Match_1ToNo1() {
OutputResult result = FuzzyPhoneNumberHelper.generateOutput(mapOf(MX_A_1, UUID_A), new InputResult(setOf(MX_A, MX_A_1), Collections.singletonMap(MX_A_1, MX_A)));
assertEquals(1, result.getNumbers().size());
assertEquals(UUID_A, result.getNumbers().get(MX_A_1));
@ -218,11 +154,11 @@ public class FuzzyPhoneNumberHelperTest {
}
@Test
public void generateOutputV2_1Match_no1To1() {
OutputResult result = FuzzyPhoneNumberHelper.generateOutput(setOf(MX_A_1), new InputResult(setOf(MX_A, MX_A_1), Collections.singletonMap(MX_A, MX_A_1)));
public void generateOutput_1Match_no1To1() {
OutputResult result = FuzzyPhoneNumberHelper.generateOutput(mapOf(MX_A_1, UUID_A), new InputResult(setOf(MX_A, MX_A_1), Collections.singletonMap(MX_A, MX_A_1)));
assertEquals(1, result.getNumbers().size());
assertTrue(result.getNumbers().containsAll(setOf(MX_A_1)));
assertEquals(UUID_A, result.getNumbers().get(MX_A_1));
assertEquals(MX_A_1, result.getRewrites().get(MX_A));
}