Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Picture uploded in Web GUI are not synchronized anymore in Android with DAVx5 3.3.1-ose with contacts 3.4.0 #1820

Closed
theyoungstone opened this issue Oct 1, 2020 · 9 comments · Fixed by #1918
Labels
1. to develop Accepted and waiting to be taken care of bug Something isn't working

Comments

@theyoungstone
Copy link

theyoungstone commented Oct 1, 2020

Describe the bug

I have just updated contacts to 3.4.0 version.
In the Web GUI, I upload an new picture for a contact.
When I synchronize the contract on my Android 10 smarphone with DAVx5 3.3.1-ose, the old picture is deleted but the new one does not appear. So the contact has not picture anymore.

To Reproduce
Steps to reproduce the behavior:

  1. Go into a contact card into NextCloud Web GUI with a browser
  2. Click on "Add a new picture"
  3. Choose an picture
  4. On Android device, synchronize contacts with DAVx5
  5. Open the contact card on the Android device
  6. There is no picture anymore

Expected behavior
We should see the new picture uploaded into the Web GUI

Actual behavior
The is no picture as if it was deleted

Server configuration

Operating system: Linux Debian 10 up to date

Web server: Apache

Database: MariaDB

PHP version: 7.3

Nextcloud version: 19.0.3

Contacts version: 3.4.0

Updated from an older Nextcloud or fresh install: Updated

Signing status:

Login as admin user into your Nextcloud and access 
http://example.com/index.php/settings/integrity/failed 
No errors have been found.

**List of activated apps:**
Enabled:
  - accessibility: 1.5.0
  - activity: 2.12.0
  - bruteforcesettings: 2.0.1
  - calendar: 2.0.4
  - cloud_federation_api: 1.2.0
  - comments: 1.9.0
  - contacts: 3.4.0
  - contactsinteraction: 1.0.0
  - dav: 1.15.0
  - deck: 1.0.5
  - federatedfilesharing: 1.9.0
  - federation: 1.9.0
  - files: 1.14.0
  - files_pdfviewer: 1.8.0
  - files_rightclick: 0.16.0
  - files_sharing: 1.11.0
  - files_trashbin: 1.9.0
  - files_versions: 1.12.0
  - files_videoplayer: 1.8.0
  - firstrunwizard: 2.8.0
  - gpxedit: 0.0.13
  - gpxmotion: 0.0.11
  - gpxpod: 4.2.2
  - groupfolders: 7.0.0
  - logreader: 2.4.0
  - lookup_server_connector: 1.7.0
  - mail: 1.4.1
  - nextcloud_announcements: 1.8.0
  - notes: 3.6.4
  - notifications: 2.7.0
  - oauth2: 1.7.0
  - password_policy: 1.9.1
  - phonetrack: 0.6.4
  - photos: 1.1.0
  - privacy: 1.3.0
  - provisioning_api: 1.9.0
  - quota_warning: 1.8.0
  - recommendations: 0.7.0
  - serverinfo: 1.9.0
  - settings: 1.1.0
  - sharebymail: 1.9.0
  - side_menu: 1.16.0
  - support: 1.2.1
  - survey_client: 1.7.0
  - systemtags: 1.9.0
  - text: 3.0.1
  - theming: 1.10.0
  - twofactor_backupcodes: 1.8.0
  - twofactor_totp: 5.0.0
  - updatenotification: 1.9.0
  - viewer: 1.3.0
  - workflowengine: 2.1.0
Disabled:
  - admin_audit
  - encryption
  - files_external
  - user_ldap

**Nextcloud configuration:**
{
    "system": {
        "instanceid": "***REMOVED SENSITIVE VALUE***",
        "passwordsalt": "***REMOVED SENSITIVE VALUE***",
        "secret": "***REMOVED SENSITIVE VALUE***",
        "trusted_domains": [
            "nextcloud.lejeune.pl"
        ],
        "datadirectory": "***REMOVED SENSITIVE VALUE***",
        "dbtype": "mysql",
        "version": "19.0.3.1",
        "overwrite.cli.url": "https:\/\/nextcloud.lejeune.pl",
        "dbname": "***REMOVED SENSITIVE VALUE***",
        "dbhost": "***REMOVED SENSITIVE VALUE***",
        "dbport": "",
        "dbtableprefix": "oc_",
        "mysql.utf8mb4": true,
        "dbuser": "***REMOVED SENSITIVE VALUE***",
        "dbpassword": "***REMOVED SENSITIVE VALUE***",
        "installed": true,
        "memcache.local": "\\OC\\Memcache\\APCu",
        "maintenance": false,
        "mail_smtpmode": "smtp",
        "mail_smtphost": "***REMOVED SENSITIVE VALUE***",
        "mail_sendmailmode": "smtp",
        "mail_from_address": "***REMOVED SENSITIVE VALUE***",
        "mail_domain": "***REMOVED SENSITIVE VALUE***",
        "mail_smtpauthtype": "LOGIN",
        "mail_smtpauth": 1,
        "mail_smtpname": "***REMOVED SENSITIVE VALUE***",
        "mail_smtppassword": "***REMOVED SENSITIVE VALUE***",
        "mail_smtpport": "465",
        "mail_smtpsecure": "ssl",
        "has_rebuilt_cache": true,
        "twofactor_enforced": "true",
        "twofactor_enforced_groups": [
            "DoubleAuth"
        ],
        "twofactor_enforced_excluded_groups": [
            "SimpleAuth"
        ],
        "theme": "",
        "loglevel": 2,
        "updater.release.channel": "stable"
    }
}

### Client configuration
**Browser:** Firefox 81.0 (64 bits)

**Operating system:** Xubuntu 20.04.1 LTS

**CardDAV-clients:** DAVx5 3.3.1-ose

@theyoungstone theyoungstone added 0. Needs triage bug Something isn't working labels Oct 1, 2020
@skjnldsv
Copy link
Member

skjnldsv commented Oct 1, 2020

Could you share the contact with the picture please?
john@nextcloud.com

@skjnldsv skjnldsv added the needs info Not enough information provided label Oct 1, 2020
@theyoungstone
Copy link
Author

I don't know how to share a contact.
But to try it, I have generated a new contact with only a name and a picture and when I synchronized it, the picture is on my phone. But if I update the picture and synchronize again, the picture disappear and the new one is not on my phone.
The contacts where there is no picture anymore are the one who I have updated the picture after the update of the application to 3.4.0.

@theyoungstone
Copy link
Author

If I want to update the picture and synchronize it with my Android Smartphone, instead of updating it into the Web GUI of Nextcloud, I have to delete it and import a new one. If I import a new picture on the old one without deleting it before, the new picture is not synchronized on my smartphone and the old one disapear.

@skjnldsv
Copy link
Member

skjnldsv commented Oct 7, 2020

So, to sum it up:

  1. Have a contact with a picture
  2. Sync it to android with Davx
  3. Update contacts to 3.4.0
  4. Change picture
  5. Sync contact
  6. Still sees old picture

Questions

  1. Is the update to 3.4.0 necessary, if you do all of this on 3.4.0, does it still behave the same?
  2. If you edit other fields, are they still synced?
  3. What vcard version is your contact? 3 or 4?

Please export the contacts before and after it doesn't sync anymore so I can compare.
You can download them from the Nextcloud app or export them from your Android device

You can attach them here as `.txt. if yuo want or send them as attachements to my mail above 🚀

@theyoungstone
Copy link
Author

No: So, to sum it up:

  1. Have a contact with a picture
  2. Sync it to android with Davx
  3. Update contacts to 3.4.0
  4. Change picture
  5. Sync contact
  6. There is no picture anymore into Android

And:

  1. Have a contact with a picture
  2. Sync it to android with Davx
  3. Update contacts to 3.4.0
  4. Delete picture
  5. Upload a new picture
  6. Sync contact
  7. The picture is OK, the new one

But If I do all this after the migration, it is the same:

  1. Update contacts to 3.4.0
  2. Create a contact with picture
  3. Sync it to android with Davx
  4. The new contact with the picture is on Android
  5. Change picture
  6. Sync contact
  7. There is no picture anymore into Android

And if instead of update the picture, I delete it and upload a new one, the sync is OK and the new picture is on the phone.

I tried to update the phone number or the email address of an existing contact and this modification is synchronized on the phone with no issue.

I don't know the vcard version. I am using Nextcloud 19.0.3, Contacts 3.4.0, Davx5 3.3.2-ose now and Android 10 with Google contacts 1.7.31

Export after picture delete and import.vcf.txt
Export after picture update.vcf.txt
Export before picture update.vcf.txt

"Export before picture update.vcf.txt"
--> I have the picture on my phone after sync

I upload a new picture instead of the existing one without deleting it before:
"Export after picture update.vcf.txt"
--> The is no picture anymore on my phone after sync

I delete the picture and upload the same one:
"Export after picture delete and import.vcf.txt"
--> The new picture is on my phone.

I hope my explanations are clear.

Regards,

@skjnldsv skjnldsv added 1. to develop Accepted and waiting to be taken care of and removed 0. Needs triage needs info Not enough information provided labels Oct 25, 2020
@eleith
Copy link
Member

eleith commented Nov 7, 2020

i can't replicate this when uploading an image manually, however, when syncing an image from twitter (or any available social network) what i have found is that two PHOTO fields are created.

one with the encoded image, and one empty field.

this empty field is causing images to not render in one of my address book clients.

@eleith
Copy link
Member

eleith commented Nov 7, 2020

if you later delete the photo, the empty PHOTO fields remain.

thus adding an image (even manually) later will not resolve the problem

@skjnldsv
Copy link
Member

skjnldsv commented Nov 7, 2020

however, when syncing an image from twitter (or any available social network) what i have found is that two PHOTO fields are created.

one with the encoded image, and one empty field.

cc @call-me-matt

@eleith
Copy link
Member

eleith commented Nov 7, 2020

i am able to get it working with a few small changes. this seems to only affect vcard 3.0. will put up a PR shortly.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
1. to develop Accepted and waiting to be taken care of bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants