From 4178e3dc91f990fea5a3061d624e8224a6d092a5 Mon Sep 17 00:00:00 2001 From: Hadrien De Sousa <hadrien.desousa@savoirfairelinux.com> Date: Wed, 24 May 2017 11:42:08 -0400 Subject: [PATCH] vcard: add uid to locale vcards There was no uid set on android locale vcard which made lrc to duplicate the conversation for each new vcard sent Change-Id: I83b1e0c0db7847d3d2d7e3ae7697f687aae6d236 --- .../app/src/main/java/cx/ring/client/AccountWizard.java | 3 +++ .../main/java/cx/ring/navigation/RingNavigationPresenter.java | 3 +++ .../libringclient/src/main/java/cx/ring/utils/VCardUtils.java | 2 +- .../src/main/java/cx/ring/wizard/SIPCreationPresenter.java | 3 +++ 4 files changed, 10 insertions(+), 1 deletion(-) diff --git a/ring-android/app/src/main/java/cx/ring/client/AccountWizard.java b/ring-android/app/src/main/java/cx/ring/client/AccountWizard.java index 75d01fb7f..6c70d3e0a 100644 --- a/ring-android/app/src/main/java/cx/ring/client/AccountWizard.java +++ b/ring-android/app/src/main/java/cx/ring/client/AccountWizard.java @@ -74,6 +74,7 @@ import ezvcard.parameter.ImageType; import ezvcard.property.FormattedName; import ezvcard.property.Photo; import ezvcard.property.RawProperty; +import ezvcard.property.Uid; public class AccountWizard extends AppCompatActivity implements Observer<ServiceEvent> { static final String TAG = AccountWizard.class.getName(); @@ -293,6 +294,8 @@ public class AccountWizard extends AppCompatActivity implements Observer<Service public void saveProfile(String accountID) { VCard vcard = new VCard(); vcard.setFormattedName(new FormattedName(mFullname)); + String ringId = mAccountService.getCurrentAccount().getUsername(); + vcard.setUid(new Uid(ringId)); ByteArrayOutputStream stream = new ByteArrayOutputStream(); if (mPhotoProfile != null) { mPhotoProfile.compress(Bitmap.CompressFormat.PNG, 100, stream); diff --git a/ring-android/libringclient/src/main/java/cx/ring/navigation/RingNavigationPresenter.java b/ring-android/libringclient/src/main/java/cx/ring/navigation/RingNavigationPresenter.java index 25b532da7..71c66eabc 100644 --- a/ring-android/libringclient/src/main/java/cx/ring/navigation/RingNavigationPresenter.java +++ b/ring-android/libringclient/src/main/java/cx/ring/navigation/RingNavigationPresenter.java @@ -38,6 +38,7 @@ import ezvcard.VCard; import ezvcard.property.FormattedName; import ezvcard.property.Photo; import ezvcard.property.RawProperty; +import ezvcard.property.Uid; public class RingNavigationPresenter extends RootPresenter<GenericView<RingNavigationViewModel>> implements Observer<ServiceEvent> { @@ -87,10 +88,12 @@ public class RingNavigationPresenter extends RootPresenter<GenericView<RingNavig public void saveVCard(String username, Photo photo) { String accountId = mAccountService.getCurrentAccount().getAccountID(); + String ringId = mAccountService.getCurrentAccount().getUsername(); File filesDir = mDeviceRuntimeService.provideFilesDir(); VCard vcard = VCardUtils.loadLocalProfileFromDisk(filesDir, accountId); vcard.setFormattedName(username); + vcard.setUid(new Uid(ringId)); vcard.removeProperties(Photo.class); vcard.addPhoto(photo); vcard.removeProperties(RawProperty.class); diff --git a/ring-android/libringclient/src/main/java/cx/ring/utils/VCardUtils.java b/ring-android/libringclient/src/main/java/cx/ring/utils/VCardUtils.java index e22bb5000..6549b0f0f 100644 --- a/ring-android/libringclient/src/main/java/cx/ring/utils/VCardUtils.java +++ b/ring-android/libringclient/src/main/java/cx/ring/utils/VCardUtils.java @@ -231,7 +231,7 @@ public class VCardUtils { private static VCard setupDefaultProfile(File filesDir, String accountId) { VCard vcard = new VCard(); - vcard.setUid(new Uid(String.valueOf(System.currentTimeMillis()))); + vcard.setUid(new Uid(accountId)); saveLocalProfileToDisk(vcard, accountId, filesDir); return vcard; } diff --git a/ring-android/libringclient/src/main/java/cx/ring/wizard/SIPCreationPresenter.java b/ring-android/libringclient/src/main/java/cx/ring/wizard/SIPCreationPresenter.java index ea417728e..90a499cf8 100644 --- a/ring-android/libringclient/src/main/java/cx/ring/wizard/SIPCreationPresenter.java +++ b/ring-android/libringclient/src/main/java/cx/ring/wizard/SIPCreationPresenter.java @@ -41,6 +41,7 @@ import cx.ring.utils.VCardUtils; import ezvcard.VCard; import ezvcard.property.FormattedName; import ezvcard.property.RawProperty; +import ezvcard.property.Uid; public class SIPCreationPresenter extends RootPresenter<SIPCreationView> implements Observer<ServiceEvent> { @@ -217,6 +218,8 @@ public class SIPCreationPresenter extends RootPresenter<SIPCreationView> impleme formattedName = mAccount.getAlias(); } vcard.setFormattedName(new FormattedName(formattedName)); + String vcardUid = formattedName + accountID; + vcard.setUid(new Uid(vcardUid)); vcard.removeProperties(RawProperty.class); VCardUtils.saveLocalProfileToDisk(vcard, accountID, mDeviceService.provideFilesDir()); } -- GitLab