[4.0.1.48] Syncing contacts not working as expected

REPRODUCIBILITY (% or how often): 100%
BUILD ID = OS VERSION (Settings > About product): 4.0.1.48
HARDWARE (XA2, Xperia 10…): Jolla C
UI LANGUAGE: EN
REGRESSION: (compared to previous public release: Yes, No, ?):

DESCRIPTION:

Every contact has one or more accounts to which it can be synced - this synchronization works.
BUT there is no chance to alter this setting, so once a sync-account is defined for a contact it cannot be altered thus disabling syncing a contact to another account - and even preventing the storage to the phone.
And, contacts not stored on the phone but just synced-in cannot be used in WhatsApp

PRECONDITIONS:

STEPS TO REPRODUCE:

  1. generate a new contact in google contacts on a PC
  2. sync this new contact to the phone
  3. try to sync this contact to nextcloud - cannot be configured
  4. try to use this contact in WhatsApp - will not show up

EXPECTED RESULT:

I would like to keep control about the account my contacts should be synced to.
And every contact on my phone - Independent if only synced-in from an external account or directly edited on the phone, should be available to WhatsApp

ACTUAL RESULT:

I have no control about the accounts to were my contacts should be synced.
Synced-In contacts are not available in WhatsApp

ADDITIONAL INFORMATION:

(Please ALWAYS attach relevant data such as logs, screenshots, etc…)

This bug report sounds like a feature request IMO, and it isn’t a very simple feature request, either - you are mixing up what your “master” is when you define your contact, so that contact that you’ve just created in Google and now want to synchronise to Nextcloud will have 2 sources - what will happen if you modify it in Google and Nextcloud and the change is conflicting?

Leave this conflict up to me - it may occur, but is very unlikely if I am the master of my data. And perhaps modifying the same contact in two databases in the same timespan just two stress a system should not be and is not the subject of my report.

At the moment this situation cannot happen anyhow as the account to were a contact is synced cannot be altered.

So you expect SFOS to stop the sync, ask for your input and only continue afterwards? This is not a good feature, sorry.

Like I said before: this isn’t a bug report to me, just a feature request, and one not very well defined as yet.

You can actually achieve this by manually copying your Google contact to Nextcloud - it should get deleted from Google in your phone, and added as a Nextcloud account.
However, you cannot have one contact synchronised to two accounts - if you wish you see your Google accounts in Nextcloud, then you have to configure the latter to sync the former.

You are never the master of your data, you just own it; the master of your data is a database, you normally decide which one it is and don’t mess around with it.

So you expect SFOS to stop the sync, ask for your input and only continue afterwards? This is not a good feature, sorry.
I have all my accounts on manual sync, so this would be no problem at all. The same if e.g. Nextcloud is only one-way synced.

Like I said before: this isn’t a bug report to me, just a feature request, and one not very well defined as yet.

Well, and because it is not a bug for you means what?!

You can actually achieve this by manually copying

If I copy my contacts manually I do not need sync at all.

However, you cannot have one contact synchronised to two accounts

Why not? Just because someone decides to blocks this?

And why can’t I edit the account to which I want to sync on the phone.
Come on - this is a linux-machine …

I am trying to reason that this isn’t a bug, but an alteration in the way in which you wish the synchronisation workflow to happen. Try to write a proof of concept of what you want, if you don’t believe me.

Because it isn’t the way it works right now, and I tried to explain why it wouldn’t make sense; I’ve also given you a way to work around your issue.

Right - I meant “move” your contact, since you wish you have a Google one in Nextcloud.

You can, if the contact is local; although not on an individual basis, you decide where to sync your contacts when you set up the accounts (Google, Nextcloud, etc.).

This is unrelated - have you got an example of any program for Linux out there that can let you do what you are describing here?

Just to let you know: Jolla is working to improve the contact sync (as part of the OS development). This is about new features, better robustness and preparing to changes in the outside services (e.g. Google migrating from Contacts API to People API in June).

Not everything can be done at once. We are a small company.

With Sailfish 4, it became possible to choose the addressbook (in practise, the sync provider) when creating a new contact. On OS release 4.0.1 it is not possible to change that later nor assign the contact to several services. In the future OS releases such new features may become possible.

We appreciate getting justified and and well-explained feature requests (voted by those in favour) at https://forum.sailfishos.org/c/feature-requests/ but we cannot afford searching them in the lines of long debates for and against of something.

2 Likes

I appreciated that, back in webOS times. And I’m very happy it lands in Sailfish, probably in 2021, even. So thank you, @jovirkku, for the good news.
Erm … on re-reading that: is this already implemented and working from the GUI? My (community port supported) hardware recently became unreliable and I have meanwhile switched to Mobian, but booted my SFOS phone just to see it still is on 3.4, so I can’t test this myself. Every contact on that phone comes from a sync provider.

Yes, this is implemented and working from the GUI in 4.0.x

When you create a contact, you can choose the addressbook it will get stored into. If that addressbook is managed by a sync plugin, any contact you add to that addressbook will be upsynced to the remote sync provider, etc.

There is also a read-only “aggregates” addressbook, for display/selection use cases. Contacts which are either manually linked together by the user, or heuristically determined to be the same, are “aggregated” together (that is, a contact is created by the system in that “aggregates” addressbook, and details from all of the linked “constituent” contacts are stored in it). Further constituents can be added just by creating a new contact in another addressbook which either matches the heuristic (same name, etc) or which is manually linked to the others by the user. Note that only the data stored into that specific constituent will be upsynced to the associated sync provider / service, to avoid “leaking” data from one addressbook to another.

Note that what the OP requested (moving contact from one addressbook to another, or even explicitly creating copy of one constituent and storing to another addressbook) is currently not supported, but hopefully will be in the future.

4 Likes

@chris.adams: that’s a very helpful summary / explanation. Thank you!

1 Like