In order for a chat program to be useful, you need people to talk to. Currently, if you want to add contacts in Empathy, you need to know their ids. The format and style of these IDs differ across services but we cvan broadly abstract to a Jabber ID (otherwise known as a JID) which looks a little bit like an email address.

Telepathy has now added support to search for contacts on services by asking for things like name, location, birthday and it seems like a good idea top add some UI to support this to Empathy. This would be similar to e.g. Skype's Add contacts dialog, although the UI doesn't need to be the same :)

This is bug 606947

The proposed UI is shown below. The UI design is based on the current Add contact dialog but has been simplified and extended with search functionality. The user chooses which account to add a contact to. She then enters a search criteria and presses search. The results will be displayed in the list view below. To add a contact the user left clicks on the correct one and presses the +Add button. When no contacts are found, an appropriate message id shown.

Screenshot-1.png

Screenshot-2.png

Changes with respect to the past proposal are (see the bug report above for more details and rationale):

  • The Add button is at the end, since you need to select a contact first.
  • There is a Close button.
  • The Find button is next to the search entry.
  • The spinner is between the search entry and the Find button, and is hidden while there is no search in progress.
  • The "Enter search criteria" has been changed to "Search: " since it's still clear and has been moved at the left of the search entry, where it makes more sense.

Our current "Add Contact" dialog looks like this:

AddContact.png

This single entry point is used for adding contacts as buddies in the chat list and also for adding other users to group conversations or calls, we need to maintain this flexibility. Each service has very different fields to search with and we can only search one service at a time. As an example Jabber servers tend to support searching across the full set of vCard properties, Skype supports the fields shown in the screenshot below. Furthermore, jabber services can only search one server at a time, even though your service could federate with multiple servers (e.g. gnome.org or jabber.org). As far as I am aware all searches are text strings and take place in a textbox.

Required functionality:

  • select account to search on
  • allow to search by username/contact ID
  • allow to search by arbitrary fields
  • display results
  • allow the user to add as contact
  • allow the user to add to the current conversation (potentially only if invoked from a conversation)

Ideally

  • don't show rarely used fields by default

We also have other similar dialogs to the "Add Contact". It may be a good idea to merge/add that functionality with the new UI.

NewCall.png

NewConversation.png

For reference, the Skype dialog looks like this:

skype-cs-1.png

And when you click on Search, it becomes:

skype-cs-2.png

Attic/Empathy/ContactSearch (last edited 2021-05-25 17:33:34 by MichaelCatanzaro)