After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 676411 - gnome-contacts does not show Empathy contacts
gnome-contacts does not show Empathy contacts
Status: RESOLVED FIXED
Product: gnome-contacts
Classification: Core
Component: general
3.4.x
Other Linux
: Normal normal
: ---
Assigned To: GNOME Contacts maintainer(s)
GNOME Contacts maintainer(s)
: 686691 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2012-05-20 08:22 UTC by Michael Monreal
Modified: 2013-02-16 18:04 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Michael Monreal 2012-05-20 08:22:52 UTC
My gnome-contacts (3.4.1 atm) does no longer show contacts from telepathy/empathy which used to work in 3.2.x. Also, those contacts show up just fine in the shell overview when searching and pressing "information" in empathy opens gnome-contacts with that contact.
Comment 1 Mathieu Bridon 2012-09-22 07:27:10 UTC
I confirm that with 3.5.92.

Even though the contact list is empty in GNOME Contacts, the chat contacts suddenly appear out of nowhere if I search for them, both in the GNOME Shell overview (as mentioned by Michael above), but also if I search for them directly in GNOME Contacts.

So GNOME Contacts obviously knows about these contacts, but somehow just doesn't display them.
Comment 2 Erick Perez Castellanos 2012-09-22 15:26:01 UTC
(In reply to comment #1)
> I confirm that with 3.5.92.
> 
> Even though the contact list is empty in GNOME Contacts, the chat contacts
> suddenly appear out of nowhere if I search for them, both in the GNOME Shell
> overview (as mentioned by Michael above), but also if I search for them
> directly in GNOME Contacts.
> 
> So GNOME Contacts obviously knows about these contacts, but somehow just
> doesn't display them.

So, when you search in Contacts it show you those empathy-contacts ? The thing is those contacts does not belong to your default store, and that's why Contacts doesn't show you those contacts at first, but only when you look.
Comment 3 Mathieu Bridon 2012-09-22 16:06:29 UTC
(In reply to comment #2)
> So, when you search in Contacts it show you those empathy-contacts ?

Exactly

> The thing
> is those contacts does not belong to your default store, and that's why
> Contacts doesn't show you those contacts at first, but only when you look.

Why aren't they? Is that expected?
Comment 4 Erick Perez Castellanos 2012-09-22 16:50:10 UTC
(In reply to comment #3)
> (In reply to comment #2)
> > So, when you search in Contacts it show you those empathy-contacts ?
> 
> Exactly
> 
> > The thing
> > is those contacts does not belong to your default store, and that's why
> > Contacts doesn't show you those contacts at first, but only when you look.
> 
> Why aren't they? Is that expected?

Yeap, the default (primary) store has to be writable so we can allow users to add/delete/modify its contacts. And telepathy store isn't writable. When you start contacts the very first time, it ask you to select your address book, that's the default store, those are the contacts you will see everytime in Contacts.
The user could link one of those empathy contacts to one on the default store, or could click "Add to My Contacts" button.
Comment 5 Mathieu Bridon 2012-09-23 00:50:35 UTC
(In reply to comment #4)
> (In reply to comment #3)
> > (In reply to comment #2)
> > > So, when you search in Contacts it show you those empathy-contacts ?
> > 
> > Exactly
> > 
> > > The thing
> > > is those contacts does not belong to your default store, and that's why
> > > Contacts doesn't show you those contacts at first, but only when you look.
> > 
> > Why aren't they? Is that expected?
> 
> Yeap, the default (primary) store has to be writable so we can allow users to
> add/delete/modify its contacts. And telepathy store isn't writable. When you
> start contacts the very first time, it ask you to select your address book,
> that's the default store, those are the contacts you will see everytime in
> Contacts.

Yes, I said to use the local store as I don't have any online account.

> The user could link one of those empathy contacts to one on the default store,
> or could click "Add to My Contacts" button.

But how? I mean if they don't appear, you can't add them or link them.

I don't think it's a good idea to wait for the user to somehow find these contacts by chance. That's certainly how I found them.

I don't understand why the Telepathy contacts couldn't be automatically added to the local store. That would make them visible, which is the minimum before the user can link them to other contacts.
Comment 6 Erick Perez Castellanos 2012-09-24 14:27:15 UTC
(In reply to comment #5)
> 
> Yes, I said to use the local store as I don't have any online account.
> 
> > The user could link one of those empathy contacts to one on the default store,
> > or could click "Add to My Contacts" button.
> 
> But how? I mean if they don't appear, you can't add them or link them.
> 
By searching for them, and if you click on "Information" inside empathy, it will open Contacts with that contact shown, and then you can click "Add to my Contacts"

> I don't think it's a good idea to wait for the user to somehow find these
> contacts by chance. That's certainly how I found them.
> 
Certainly we need to improve this. Somehow
Comment 7 Mathieu Bridon 2012-09-24 14:38:05 UTC
(In reply to comment #6)
> (In reply to comment #5)
> > But how? I mean if they don't appear, you can't add them or link them.
> > 
> By searching for them, and if you click on "Information" inside empathy, it
> will open Contacts with that contact shown, and then you can click "Add to my
> Contacts"

That's the part I don't understand. They already are my contacts: I can chat with them.

Sure it's obvious for us that there's a local datastore, a Telepathy read-only datastore, that Empathy uses Telepathy for chats, etc...

But for the user, GNOME Contacts is supposed to show all their contacts. All of them. The Google Contacts, ones, the Facebook ones, the one they send emails to, and yes, the ones they chat to.

It seems like we are needlessly exposing the implementation details to the user, instead of nicely integrating all that.
Comment 8 Allan Day 2012-09-24 14:58:22 UTC
Contacts is primarily intended to act as a user's personal address book. It's the place you record information about your contacts, or pool them together.

Why do we normally only show contacts in the default store? Because only those are editable, and because it gives people the ability to have an addressbook containing people they care about, rather than every random person they happen to have available through a chat service (some of which could have hundreds or thousands of contacts). This isn't an unusual way for a contacts app to behave. It is how Google Contacts works, for starters.

Why do you want all your Empathy contacts to be placed in contacts? What is the use case for this? What are you trying to achieve?

Note: one thing that we should do is make it clear that these contacts are stored somewhere else, and it should be easy to import them (if they're not automatically linked with an existing contact). We could also potentially have an "Add to Contacts" action in Empathy.
Comment 9 Mathieu Bridon 2012-09-24 16:07:36 UTC
(In reply to comment #8)
> Contacts is primarily intended to act as a user's personal address book. It's
> the place you record information about your contacts, or pool them together.
> 
> Why do we normally only show contacts in the default store? Because only those
> are editable,

That's my point in fact: I don't think the user cares which contacts are editable or not, that's just an implementation detail. If they try to edit an uneditable contact, GNOME Contacts could just create a local contact, link it automatically to the contact the user tried to edit, and present the local contact for edition.

> and because it gives people the ability to have an addressbook
> containing people they care about, rather than every random person they happen
> to have available through a chat service (some of which could have hundreds or
> thousands of contacts).

That's what I don't understand I guess: I only have people I care about as chat contacts. I simply don't give others my Jabber ID.

> Why do you want all your Empathy contacts to be placed in contacts? What is the
> use case for this? What are you trying to achieve?

Well, Empathy contacts are my only contacts at the moment in GNOME.

Firstly because when I saw that GNOME Contacts was empty, I thought it was a bug (after all, I'm running a development version, bugs happen :), so I didn't start using GNOME Contacts.

Secondly because I'm using Thunderbird right now (not that I'm happy with it, but Evolution got me through a lot of pain this cycle), so I don't have email contacts going to GNOME Contacts (they go to Thunderbird's own thing). GNOME Mail should solve that specific point nicely. :)

And finally I don't have any Online Accounts configured (because I don't use any of the services available at the moment).

So I would have thought GNOME Contacts would act as my personal address book, containing all my contacts (my chat contacts), and allowing me to set their birthday for example.

> Note: one thing that we should do is make it clear that these contacts are
> stored somewhere else, and it should be easy to import them (if they're not
> automatically linked with an existing contact). We could also potentially have
> an "Add to Contacts" action in Empathy.

I still don't understand why you absolutely want to make a difference between two classes of contacts (what does "Add a contact to contacts" mean?), but I guess that would help.

If possible, make it so that importing contacts **doesn't** look like that:
1. Open GNOME Contacts
2. Open Empathy and "Show offline contacts"
3. For each Empathy contact:
        a. Search for the contact in GNOME Contacts and click "Add to contacts", or
        b. Create a new contact, and say « Yes » when asked « Does Rupert T Monkey from Jabber belong here? »
           (kudos for this by the way, it's a really cool feature on its own)

Importing more than a handful of contacts this way would be quite painful. :-/

Maybe a menu item somewhere « Import Chat contacts »? And that would either import them all, or open a dialog where the user could select which chat contacts to import?

Or maybe after the list of contacts (left pane), there could be a second list appended, something like that:

| [       search entry      o- ] |
|                                |
| [O] Allan Day                  |
| [O] Erick Pérez Castellanos    |
|                                |
| Not yet imported chat contacts |
| [O] Mathieu Bridon             |

(« [O] » is my poor attempt at representing the contact's avatar :)

That would make them visible straight out of box, while conveying the idea that these contacts are not really contacts until they have been imported?
Comment 10 Guillaume Desmottes 2012-09-25 07:47:30 UTC
I agree it's very confusing to not see IM contacts by default. Furthemore, if 2 IM contacts are merged together (because I have Alice on Facebook and GTalk for examples), the link information is stored in the primary abook and so this contact will appear by default while an unmerged one will not.

The Nokia N900 and N9 display all contacts by default in the abook and that makes very much sense.
Comment 11 Allan Day 2012-09-25 08:20:00 UTC
(In reply to comment #9)
...
> > Why do we normally only show contacts in the default store? Because only those
> > are editable,
> 
> That's my point in fact: I don't think the user cares which contacts are
> editable or not, that's just an implementation detail. If they try to edit an
> uneditable contact, GNOME Contacts could just create a local contact, link it
> automatically to the contact the user tried to edit, and present the local
> contact for edition.

Fair point.

> > and because it gives people the ability to have an addressbook
> > containing people they care about, rather than every random person they happen
> > to have available through a chat service (some of which could have hundreds or
> > thousands of contacts).
> 
> That's what I don't understand I guess: I only have people I care about as chat
> contacts. I simply don't give others my Jabber ID.

So I think this is the core issue. Should contacts simply show every contact that you might have access to, or should it be a personal data store for contact information (an address book, in other words). My view for a while has been that it should be the latter. A few reasons for this:

 * In many situations, a person might have hundreds of contacts available from chat services. Think about Google Plus or Facebook - would you want all of those people in your address book? I'm not sure people would. All those spurious contacts could get in the way of finding the contact data you care about.

 * How does Contacts get used? My feeling is that people will tend to use the chat app when they're looking for someone to chat to, and the mail app when getting an email address. That leaves a few potential uses for Contacts. One (and this is what I've been considering to be its primary role) is as a data store for contact information. Eg. I'm in a coffee shop, and I want to note down someone's email address, or I want to look up the phone number I recorded for that pizza company I like. There is another role for Contacts, and that's searching for a piece of contact information when I don't know where it's stored. Contacts fulfils this role too, but as secondary functionality (ie. you can search for it, but you can't browse for it).

 * Integration with online services. If someone uses Google to store their contacts, what you are suggesting would mean that Contacts would present a different set of contacts from those that are displayed in Google (I suspect that this would be the same for other online contacts services too), which could be rather confusing.

> > Why do you want all your Empathy contacts to be placed in contacts? What is the
> > use case for this? What are you trying to achieve?
> 
> Well, Empathy contacts are my only contacts at the moment in GNOME.
> 
> Firstly because when I saw that GNOME Contacts was empty, I thought it was a
> bug (after all, I'm running a development version, bugs happen :), so I didn't
> start using GNOME Contacts.
> 
> Secondly because I'm using Thunderbird right now (not that I'm happy with it,
> but Evolution got me through a lot of pain this cycle), so I don't have email
> contacts going to GNOME Contacts (they go to Thunderbird's own thing). GNOME
> Mail should solve that specific point nicely. :)
> 
> And finally I don't have any Online Accounts configured (because I don't use
> any of the services available at the moment).
> 
> So I would have thought GNOME Contacts would act as my personal address book,
> containing all my contacts (my chat contacts), and allowing me to set their
> birthday for example.

That doesn't quite answer the question... what are you trying to use Contacts to do?

...
> I still don't understand why you absolutely want to make a difference between
> two classes of contacts (what does "Add a contact to contacts" mean?), but I
> guess that would help.

The string that's in the mockups is "Add to My Contacts" - that's a little different.

> If possible, make it so that importing contacts **doesn't** look like that:
> 1. Open GNOME Contacts
> 2. Open Empathy and "Show offline contacts"
> 3. For each Empathy contact:
>         a. Search for the contact in GNOME Contacts and click "Add to
> contacts", or
>         b. Create a new contact, and say « Yes » when asked « Does Rupert T
> Monkey from Jabber belong here? »
>            (kudos for this by the way, it's a really cool feature on its own)
> 
> Importing more than a handful of contacts this way would be quite painful. :-/
>
> Maybe a menu item somewhere « Import Chat contacts »? And that would either
> import them all, or open a dialog where the user could select which chat
> contacts to import?
...

We can certainly provide a mechanism to bulk import from a chat account.

Don't get me wrong - I recognise the issues that you're describing, and I'm not 100% confident about the current approach, but there are also issues with the alternative. As ever with design, it's a question of balance and focus.
Comment 12 Allan Day 2012-09-25 08:20:29 UTC
(In reply to comment #10)
> I agree it's very confusing to not see IM contacts by default. Furthemore, if 2
> IM contacts are merged together (because I have Alice on Facebook and GTalk for
> examples), the link information is stored in the primary abook and so this
> contact will appear by default while an unmerged one will not.
...

Ugh, that's not right.
Comment 13 Mathieu Bridon 2012-09-25 11:11:56 UTC
(In reply to comment #11)
> So I think this is the core issue. Should contacts simply show every contact
> that you might have access to, or should it be a personal data store for
> contact information (an address book, in other words). My view for a while has
> been that it should be the latter. A few reasons for this:
> 
>  * In many situations, a person might have hundreds of contacts available from
> chat services. Think about Google Plus or Facebook - would you want all of
> those people in your address book? I'm not sure people would. All those
> spurious contacts could get in the way of finding the contact data you care
> about.

I'd say if you have contacts on Facebook, Google, and anywhere else, then your contacts (i.e the people you know) are the union of all these people.

And my address book should certainly contain all my contacts.

Otherwise, that means I would have to constantly remember whether or not I added a contact to my address book, and if I didn't I'd have to remember where their information is stored, and what "application" I should run to find them (Empathy for Chat accounts, Web opened on facebook.com for Facebook contacts, etc...).

If I have to remember all that, why would I even bother having an address book in GNOME Contacts at all?

>  * How does Contacts get used? My feeling is that people will tend to use the
> chat app when they're looking for someone to chat to, and the mail app when
> getting an email address.

Agreed.

>  * Integration with online services. If someone uses Google to store their
> contacts, what you are suggesting would mean that Contacts would present a
> different set of contacts from those that are displayed in Google (I suspect
> that this would be the same for other online contacts services too), which
> could be rather confusing.

Not at all.

It might not have been clear because I said the following:
> > If they try to edit an
> > uneditable contact, GNOME Contacts could just create a local contact, link it
> > automatically to the contact the user tried to edit, and present the local
> > contact for edition.

What I really meant was "... create a contact in the default address book, link... and present the contact in the default address book for edition".

If the default address book is Google Contacts, then that's where edited contacts should go, certainly not in the local datastore.

> That doesn't quite answer the question... what are you trying to use Contacts
> to do?

When I noticed the bug, I wanted to add some details to my contacts (e.g their birthday).

As I said, my only contacts at the moment are Empathy contacts, and I expected them to be in GNOME Contacts as every other contacts.

> ...
> > I still don't understand why you absolutely want to make a difference between
> > two classes of contacts (what does "Add a contact to contacts" mean?), but I
> > guess that would help.
> 
> The string that's in the mockups is "Add to My Contacts" - that's a little
> different.

Right, but the string applies to what is essentially a contact.

So that buttons allows me to "add a contact to my contacts", which without any context (which I would probably never have had before the discussion on this bug report) doesn't make a lot of sense to me.

I think "add to my address book" would already be clearer: I know this person, but I haven't taken the time to write his informations down.

It reminds of the old address books which were actual books with pages for each first letter: somebody would give you his name card, and then you would take the time to write these informations in the book if you thought you might want to contact that person later on.

> We can certainly provide a mechanism to bulk import from a chat account.
> 
> Don't get me wrong - I recognise the issues that you're describing, and I'm not
> 100% confident about the current approach, but there are also issues with the
> alternative. As ever with design, it's a question of balance and focus.

And I'm glad we can have this conversation to try and find a better alternative, if one exists. :)

I really think that hiding some contacts in a way that a user can only discover them by chance is not useful to the user, and that it will only lead to more bug reports like this one (e.g "GNOME Contacts does not show Google+ contacts").

Fundamentally, a contact is a contact.

As such, I see only two possibilities:

1. Show all contacts from all these "problematic" accounts (chat, Google+,...) in GNOME Contacts by default, as if they were in the main datastore (local, Google Contacts,...)

As you say, this can cause problems for people who have hundreds of contacts but don't want to see them. I sincerely don't understand why people would want to have contacts but not see them in their address book, but I can accept not understanding everything.

2. Show all contacts from all these "problematic" accounts (chat, Google+,...) in GNOME contacts by default, but **separately** from the contacts in the main datastore (local, Google Contacts,...).

If done properly, this would solve both the problem you have with option 1 (the main list of contacts in my address book doesn't get cluttered by the hundreds of Google+ contacts I don't want to see) and the problem reported originally in this bug report (I have contacts in an account I configured on this computer but I don't see them).

And then the problem becomes how to do that separation properly, and I can imagine it's a very hard problem to solve design-wise.

You didn't comment on it, what did you think of having that second list appended to the main list? (with a heading that suggests these contacts are known to the system but they haven't been added to the address book)
Comment 14 Erick Perez Castellanos 2012-09-25 12:18:22 UTC
(In reply to comment #13)
> > Don't get me wrong - I recognise the issues that you're describing, and I'm not
> > 100% confident about the current approach, but there are also issues with the
> > alternative. As ever with design, it's a question of balance and focus.
> 
I do recognize the issue, as well.

> And I'm glad we can have this conversation to try and find a better
> alternative, if one exists. :)
> 
Me too, it's needed I've seen a lot of people not understanding the actual behavior of the application. And I do like to have some kind of separation between "My Contacts" (the people I know) and all those other people I get email from, even "gtk-devel-list-request@gnome.org", which will be listed as contact

> 2. Show all contacts from all these "problematic" accounts (chat, Google+,...)
> in GNOME contacts by default, but **separately** from the contacts in the main
> datastore (local, Google Contacts,...).

I think, this would be the right answer, or at least it's the least wrong for me.

Allan, I think, we could order "My Contacts" in top of the Contacts List, and add some tagging to the item in the list itself. Something like:

+---------------------------------------+
|  Allan Day                 Google     |      
|  [ My Contacts ]           Available  |
+---------------------------------------+
|  Mathieu Bridon            Yahoo      |      
|  [ My Contacts ]           Available  |
+---------------------------------------+
+---------------------------------------+
|  Joe Cocker                EBay       |     
|  [ Some OtherGroups ]      Available  |
+---------------------------------------+

And the tags between [] could be color coded, and some separation in the list between those two groups.
Comment 15 Erick Perez Castellanos 2012-10-24 12:00:49 UTC
*** Bug 686691 has been marked as a duplicate of this bug. ***
Comment 16 Muflone 2012-10-24 12:34:08 UTC
Sorry but the current approach is not usable at all.

If a user doesn't remember how a contact was stored he cannot make a blind search hoping that the desired contact will be shown in the search.

If listing only the first group it's a feature then obtain results from others contact groups should then be considered a bug?

What if this approach would then be applied to the file manager? If a location cannot be written then could we hide all the files like if they don't exist? That's all but logical or usable.

Google contacts (see Bug 686691) can be splitted in many groups. Those groups are the result of an explicit user decision to organize the information in a logical way, they're not strangers whose presence is unexpected.
It couldn't considered unsafe to list all the GNOME contacts groups.

As long as gnome contacts doesn't provide a way to choose the desired groups to show there should be a way to list them all.
Comment 17 Allan Day 2012-11-14 18:58:01 UTC
Having thought about this for a while, I'm inclined to agree with the bug report, and to show all contacts in the list by default. It will make the interface easier to understand and much less complicated.
Comment 18 Erick Perez Castellanos 2013-02-16 18:04:11 UTC
We show either main contacts or all, according to the menu selection.

Fixed in: http://git.gnome.org/browse/gnome-contacts/commit/?id=ed64a43f4a44f0b8e96fc1c156ea45532293bb94