From 6f961ade747b1d8f6ee7e4036ea55263301b78cd Mon Sep 17 00:00:00 2001 From: Martijn van den Hoek Date: Sun, 15 Mar 2020 14:44:56 +0100 Subject: [PATCH] Fix crash when importing vcf after exporting it. Fixes #9465 --- .../securesms/contactshare/SharedContactRepository.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/contactshare/SharedContactRepository.java b/app/src/main/java/org/thoughtcrime/securesms/contactshare/SharedContactRepository.java index 4289fa5a27..bd8d2c8165 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/contactshare/SharedContactRepository.java +++ b/app/src/main/java/org/thoughtcrime/securesms/contactshare/SharedContactRepository.java @@ -125,7 +125,11 @@ public class SharedContactRepository { List phoneNumbers = new ArrayList<>(vPhones.size()); for (ezvcard.property.Telephone vEmail : vPhones) { String label = !vEmail.getTypes().isEmpty() ? getCleanedVcardType(vEmail.getTypes().get(0).getValue()) : null; - phoneNumbers.add(new Phone(vEmail.getText(), phoneTypeFromVcardType(label), label)); + + // Phone number is stored in the uri field in v4.0 only. In other versions, it is in the text field. + String phoneNumberFromText = vEmail.getText(); + String extractedPhoneNumber = phoneNumberFromText == null ? vEmail.getUri().getNumber() : phoneNumberFromText; + phoneNumbers.add(new Phone(extractedPhoneNumber, phoneTypeFromVcardType(label), label)); } List emails = new ArrayList<>(vEmails.size());