Bug 5452 - Don't overwrite pre-existing contact info
: Don't overwrite pre-existing contact info
Status: NEW
Product: Hermes
General
: unspecified
: All Linux
: Low enhancement with 14 votes (vote)
: ---
Assigned To: unassigned
: general
:
:
:
:
  Show dependency tree
 
Reported: 2009-10-14 22:36 UTC by Zach Goldberg
Modified: 2011-01-10 14:33 UTC (History)
8 users (show)

See Also:


Attachments
vcf of a user whose image gets overwritten (5.23 KB, text/x-vcard)
2009-11-17 15:13 UTC, Attila Csipa
Details


Note

You need to log in before you can comment on or make changes to this bug.


Description Zach Goldberg (reporter) 2009-10-14 22:36:35 UTC
SOFTWARE VERSION:
41.10
hermes 0.6

STEPS TO REPRODUCE THE PROBLEM:
1) Update a contact's photo with hermes
2) Change that photo manually
3) re-run hermes

EXPECTED OUTCOME:
Hermes detects a conflict and asks the user what they prefer.  

ACTUAL OUTCOME:
Right now, for images in particular, it just gets set on the contact and
overwrites previous settings.  If you click on the choices of image for a
contact hermes's images don't get added to that list.  Once you change away the
image that hermes sets the only way to get it back is to re-run hermes.

REPRODUCIBILITY:
always

EXTRA SOFTWARE INSTALLED:

OTHER COMMENTS:

User-Agent:       Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/532.1
(KHTML, like Gecko) Chrome/4.0.219.4 Safari/532.1
Comment 1 Andrew Flegg maemo.org 2009-10-14 23:54:26 UTC
This is the difference between "Retrieve" and "Update", with the latter to
cater for people who want to keep of the frequent changes in profile pictures
spme Facebook users make.

Is this, therefore, a documentation issue rather than a behaviour one? Or
should I try and find a way of storing contacts that have been enriched by
Hermes and only update those? If so, how to enable people to overwrite existing
images?

Finally, the image chooser dialogue never shows previously selected images,
there is not really anything Hermes can do here. Unless Hermes stored all
images for a user and allowed you to select one. This could also solve the
overwriting issue.
Comment 2 Zach Goldberg (reporter) 2009-10-15 00:00:32 UTC
Hm.  I am a bit confused by your response.  Clear documentation on the
difference between retrieve and update might help a bunch :)
Comment 3 Andrew Flegg maemo.org 2009-10-15 11:54:23 UTC
(In reply to comment #2)
> Clear documentation on the difference between retrieve and update might help a 
> bunch :)

Well it is v0.0.6 :-p

"Retrieve" will "Get contacts' missing info" - i.e., if they don't have a
photo; or a birthday; it will download them and add them if possible.

"Update" will "Update contacts' info" - i.e., it will overwrite a photo or
birthday if it finds a match.
Comment 4 Tim Samoff maemo.org 2009-10-26 14:59:44 UTC
Andrew and I discussed using the term "Refresh" instead of update (which may
help this issue). Thinking out loud: What if "Retrieve" was renamed "Update"?
So, te two buttons were:

[Update] [Refresh]

Opinions?
Comment 5 Zach Goldberg (reporter) 2009-10-26 16:47:11 UTC
Update and refresh are equally as confusing to me.  If I have previously used
Hermes to download information and it added a photo for person A and I later
changed that photo which button will overwrite that to what Hermes originally
downloaded?
Comment 6 Andrew Flegg maemo.org 2009-10-26 17:05:53 UTC
(In reply to comment #4)
> Andrew and I discussed using the term "Refresh" instead of update (which may
> help this issue). Thinking out loud: What if "Retrieve" was renamed "Update"?
> So, te two buttons were:
> 
> [Update] [Refresh]

Sounds good to me. mgedmin was also expressing confusion that "Retrieve" and
"Update" made it sound like a two-step process.

Version after 0.1.0 might have to be 0.2.0 with the cool UI changes Tim's
pushing :-)

I've also added "show all images Hermes has downloaded, and anything which was
already there" to the medium-term development roadmap, visible at
http://hermes.garage.maemo.org/
Comment 7 Andrew Flegg maemo.org 2009-10-26 17:10:22 UTC
(In reply to comment #5)
> Update and refresh are equally as confusing to me.  If I have previously used
> Hermes to download information and it added a photo for person A and I later
> changed that photo which button will overwrite that to what Hermes originally
> downloaded?  

The one on the right ;-)

Is the fundamental question, should there be two modes (until the "show me
everything Hermes has ever retrieved or overwritten" is implemented)? I *can*
see use cases for both...
Comment 8 Zach Goldberg (reporter) 2009-10-26 17:30:03 UTC
I think that's a good idea Andrew.  I think a good way to do it is to have  one
button "Retrieve Information" and an option "Allow Hermes to overwrite
pre-existing data."
Comment 9 Attila Csipa nokia 2009-11-17 14:28:49 UTC
What's the status on this bug ? For me (hermes 0.2.2), *retrieve* still
reproducibly overwrites images (my guess is those that were manually updated).
Comment 10 Andrew Flegg maemo.org 2009-11-17 14:44:48 UTC
(In reply to comment #9)
> What's the status on this bug ? For me (hermes 0.2.2), *retrieve* still
> reproducibly overwrites images (my guess is those that were manually updated).

If you can export a VCard of the user who gets overwritten, that would help. I
would guess that the contact doesn't have an image as far as the master contact
is concerned, but it does have an IM avatar. This would then mean that when
Hermes asked if the contact had a photo, it said "no".

If so, I can probably add a check to see if it has an avatar as well - but
these are often lower resolution than Facebook photos.
Comment 11 Attila Csipa nokia 2009-11-17 15:13:42 UTC
Created an attachment (id=1590) [details]
vcf of a user whose image gets overwritten
Comment 12 Andrew Flegg maemo.org 2009-11-17 15:23:28 UTC
(In reply to comment #11)
> Created an attachment (id=1590) [details] [details]
> vcf of a user whose image gets overwritten

Thanks. Is this before or after its been overwritten?
Comment 13 Attila Csipa nokia 2009-11-17 15:32:53 UTC
Before. The person in question also has a facebook account and the facebook
image overwrites the one in this vcf.
Comment 14 EC 2009-12-14 15:00:12 UTC
*** This bug has been confirmed by popular vote. ***
Comment 15 Fredrik Wendt 2009-12-22 12:07:18 UTC
I'm not familiar with the contacts API, but I've worked with vcf before. A
simple suggestion is to use a X-hermes-image-MD5 key, with a computed MD5 sum
of the image data. When updating (or refresh?), only update contacts whose
image still match the MD5-sum set previously by Hermes.
This also indicates when to (optionally) ask the user what to do.
Comment 16 Fredrik Wendt 2010-07-15 00:23:51 UTC
Andrew: Is it possible (reliable, API wise) to set X-PROPERTIES on the
VCards/Contacts - if so it should be fairly easy to only update/overwrite
photos on contacts, where the photo from address book was set by Hermes. md5sum
might be overkill, byte length perhaps too simple - but some sort of check
would be nice methinks.
Comment 17 Andrew Flegg maemo.org 2010-07-15 15:17:52 UTC
(In reply to comment #16)
> Andrew: Is it possible (reliable, API wise) to set X-PROPERTIES on the
> VCards/Contacts

I *think* so, but haven't fully checked. It should be possible to put an
additional parameter on the PHOTO property; we've got parameter handling code
to deal with the phone number types.

> - if so it should be fairly easy to only update/overwrite
> photos on contacts, where the photo from address book was set by Hermes. 

We'd also have to add a general "Settings" screen so that photos *could* be
overridden if people wanted (or we stick with the two buttons and make the left
one update images if set by Hermes - but this'll increase bandwidth usage).
Comment 18 Fredrik Wendt 2010-07-16 12:38:55 UTC
This is what I do:
1) Disable all accounts except Gravatar, do a Refresh to overwrite all photos.
2) Enable all accounts, and
3) only use Retreive.

This is because Gravatar (and LinkedIn) images are generally a photo of the
actual person. The "photos" on Facebook, twitter etc changes quite often and is
quite commonly NOT a photo showing the person in question. 

So (I'm branching suggestions here):

A) With a general setting "update photos: yes/no", we could save bandwidth
(feature) but still use Refresh to get new or changed information. We would not
use any X-SET-BY-HERMES=true property on the photo (or similar) - this as
simple as all or none.

B) With the addition of a X-SET-BY-HERMES=true property on photos we update,
that will allow for a third option: "update photos: all(yes above)/only update
contacts without a photo, or with a photo previously set by Hermes/no"

Option A would be enough for me.

(BTW: Is this off topic - open a separate issue?)
Comment 19 John G 2010-07-16 12:54:36 UTC
Yes, I (without having read the guidelines recently) believe this is getting
off-topic and may be better served (although not sure if still the right place)
by a talk.maemo.org thread.

Option A would be reasonable, but I'd love (and had been thinking of already)
option B as the ideal way to do it.
Comment 20 Andrew Flegg maemo.org 2010-12-20 14:38:47 UTC
I'm tempted to just put a confirm dialogue on _Refresh_; as bug 11702 shows
there are other instances where people don't want certain classes of
information (such as nicknames) overwritten.

Lots of options is a poor UI; reducing the screen to only having a single
button isn't much better. Therefore, to change the screen from having two
buttons to only one mode (possibly with options) pulls at a thread which might
require a fundamental rethink of the UI.
Comment 21 Will Thompson 2010-12-24 17:24:31 UTC
*** Bug 11702 has been marked as a duplicate of this bug. ***
Comment 22 Andrew Flegg maemo.org 2011-01-08 10:37:57 UTC
*** Bug 11752 has been marked as a duplicate of this bug. ***
Comment 23 Sony K. Philip 2011-01-10 14:33:30 UTC
@Andrew:
Just like you said, I was using "Refresh" and that was overwriting everything.

"Retrieve" doesnt overwrite the "Nickname" but it does overwrite the picture
(using linkedin?)

I understand that the logic for this was that the linkedin picture was more
likely be an actual picture of the user. True as it may be, but in my
experience its pretty stale vs. a facebook picture which is more likely to be
kept current, even though it may not be an actual picture of the user.

Some users (including myself) would prefer fb over linkedin/twitter and rather
be given an option to choose where the current picture is retrieved from.

On the topic of naming convention, how about "Update" and "Sync" instead of
"Retrieve" and "Refresh" respectively since "Retrieve" is "updating" the
details of the contact and "Refresh" is "syncing" everything from the start?