Group information and photos from server get erased
I have a server running OwnCloud 6.0.0.a and am running DAVdroid 0.5.6-alpha. On my OwnCloud server, my contacts are in groups. The group information and picture are erased when I make modifications using the phone.
- I create a contact, "Joe", in OwnCloud. I give him a phone number and put him in the group "Friends".
- I sync the phone with the server using DAVdroid, and all the information is displayed properly, except of course that group information is not there, but that's fine. It's documented that right now DAVdroid doesn't do groups, no worries, just what we expected.
- Joe changes his phone number. On my phone I update the phone number, and the phone syncs this change via DAVdroid to OwnCloud.
- I go look at the contact in OwnCloud using my web browser. My friend Joe is there with the updated phone number, but his group information has been deleted. His photo has also been deleted.
What I would like to have happen:
- The photo isn't deleted.
- Group information isn't modified.
This problem no doubt relates to https://github.com/rfc2822/davdroid/issues/48. I feel like since this issue involves data loss, it might be worthy of a separate issue.
The workaround is to only update contacts in OwnCloud, and that is effective as a short term measure, but it's not generally desirable.
These are in fact 2 issues:
The photo should not be deleted. → In which step did you upload the photo? Does this also happen with users without group? If yes, could you please create a new issue with steps to reproduce this photo bug?
The other issue is indeed related to #48 and a duplicate of #104. DAVdroid doesn't parse CATEGORIES (as well as other VCard fields) and doesn't store un-parsed fields. As soon as you change a contact, a new VCard is created from the known information and uploaded. I think it would be quite error-prone to keep unknown VCard entries and would bloat the VCards every time a new property is added. At the end, you have countless "X-YourClient-UseLessHTMLFlag: 1231" and "X-SERVER_FILENAME-HASH-USELESSINFO: 32445" entries which would be synchronized every time. So, this issue is closely related to #48 and can only be fixed by (at least partial) CATEGORIES support. I'm thinking of adding partial group support anyways because real support seems not to be possible. Please see #48 for further updates.
Regarding the photos: Do you use high-resolution photos? I have an idea what may be the cause that photos get lost on some devices when they're not stored in a file asset (i.e. when there's only a low-res photo). Which Android version do you use?
Maybe related to #142, in this case we could use this issue for further discussion.
I just tested in the following fashion.
- Make a new contact in OwnCloud and add a low resolution (100x75) picture. No group added.
- Add a phone number on the phone.
- On the OwnCloud side, everything is fine. The image is there as expected.
I tested using a Galaxy S3 running Cyanogenmod 11.
On further testing using images from http://www.clker.com/clipart-red-t-shirt-10.html, both the small (100x73) and large (600x440)
pngimages (which get cropped into squares by OwnCloud).
These images don't disappear when I make a new contact with them and some group information and then modify it on the phone. Several of my currently existing contacts' pictures, though, definitely did, as documented above. This is kind of weird.
I have tested this on the Galaxy S3 with Cyanogenmod 11 and an emulated Nexus One running Android 4.4.2.