diff --git a/src/main/java/org/thoughtcrime/securesms/ProfileActivity.java b/src/main/java/org/thoughtcrime/securesms/ProfileActivity.java index 5f9acbe6e..9f2bf41bf 100644 --- a/src/main/java/org/thoughtcrime/securesms/ProfileActivity.java +++ b/src/main/java/org/thoughtcrime/securesms/ProfileActivity.java @@ -25,8 +25,11 @@ import com.b44t.messenger.DcContact; import com.b44t.messenger.DcContext; import com.b44t.messenger.DcEvent; import java.io.File; +import java.util.ArrayList; +import java.util.Collections; import org.thoughtcrime.securesms.connect.DcEventCenter; import org.thoughtcrime.securesms.connect.DcHelper; +import org.thoughtcrime.securesms.providers.PersistentBlobProvider; import org.thoughtcrime.securesms.util.DynamicNoActionBarTheme; import org.thoughtcrime.securesms.util.Prefs; import org.thoughtcrime.securesms.util.ShareUtil; @@ -398,7 +401,19 @@ public class ProfileActivity extends PassphraseRequiredActionBarActivity Intent composeIntent = new Intent(); DcContact dcContact = dcContext.getContact(contactId); if (dcContact.isKeyContact()) { - ShareUtil.setSharedContactId(composeIntent, contactId); + try { + byte[] vcard = + rpc.makeVcard(rpc.getSelectedAccountId(), Collections.singletonList(contactId)) + .getBytes(); + Uri vcardUri = + PersistentBlobProvider.getInstance().create(this, vcard, "text/vcard", "contact.vcf"); + ArrayList uris = new ArrayList<>(); + uris.add(vcardUri); + ShareUtil.setSharedUris(composeIntent, uris); + } catch (RpcException e) { + e.printStackTrace(); + ShareUtil.setSharedText(composeIntent, dcContact.getAddr()); + } } else { ShareUtil.setSharedText(composeIntent, dcContact.getAddr()); }