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 75d01fb7f4435daa0ef4e3fbfff5e14160d26660..6c70d3e0aa532ebad0013a00086d41e7ee57e2a4 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 25b532da712a3652f00ab3e1b8cf2690738c3619..71c66eabcb7804748291901329187cf41b19dbde 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 e22bb500004226c706eec204626fbb2863932761..6549b0f0f17b3401cc7b6137913dd8bd22a0b2ff 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 ea417728e3473c2e8f4e79143c60742a91f5a056..90a499cf85e55c0484837afcde0064f3947dcad7 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()); }