Chat

Please check the status of this specification in Launchpad before editing it. If it is Approved, contact the Assignee or another knowledgeable person before making changes.

Summary

Moblin-chat is a chat application customized specially for use on Mobile Internet Device. It's based on http://live.gnome.org/Empathy which uses telepathy-mission-control and connection manager for each supported instant message protocol with help of telepathy spec.

Screenshots of Moblin_chat available from Moblin.org: http://moblin.org/projects/projects_chat.php

Scope

Moblin-chat can support any protocols created that work with Telepathy, including telepathy-haze (libpurple wrapper from pidgin/gaim project). This allows Moblin-chat to have extensibility along with protocol license separation. By default moblin-chat includes gTalk/Jabber, an open protocol that is widely used. Even with gTalk, due to limitation of telepathy spec which is under heavily development, no file transfer function is available yet, but is planned.

The current features of the application include:

  1. Account creation
  2. Connection with other gTalk clients running moblin-chat or via gmail or other.
  3. Multiple simultaneous connections with different people
  4. Support for other telepathy-enabled protocols such as MSN

The features planned for implementation include:

  1. File transfer
  2. VOIP on gTalk
  3. Integration with dbus based EDS.
  4. Better UI integration of other protocols and improved account creation.

Rationale

Moblin-chat is based on Empathy application. While Empathy UI is designed for use on a full-screen PC with keyboard and mouse, Moblin-chat is designed to fit the use of MID with a small screen and touch only. It made a lot of changes including porting to Hildon application framework and many user experience improvements. There is still much to be done to simplify and enhance the user interface for use on a MID device.

Use Cases

  • Peter launches moblin-chat for the first time, then accounts edit dialog is presented. Then he can click "Add" to add one account and is prompted with one combobox to select account type. Currently moblin-chat supports gTalk only. After selecting type and clicking "Create", account setting UI shows off. Peter can click auto-generated account name in left panel and replace with preferred name. Then he has to fill ID/Pass info as usual. After that, Peter must click "Enable" to enable and connect this account to gTalk server. Peter can adds whatever number of accounts at one time. Once done, he can click "Close" or upper right "X" to quit account dialog.
  • Peter might want to see if one slow web page is already ok before any account is enabled. He then tries to close the dialog to go to already activated browser. He will be prompted with one confirmation dialog if he really want to close the dialog without any account enabled. If yes, moblin-chat will be minimized to status icon to relinquish MID desktop.
  • Peter is brought to contact window after enabling at least one account and quitting account dialog.
  • After Peter launches moblin-chat with at least one account already enabled, contact window rather than account edit dialog shows off. To add one contact, he activates menu of empathy and goes to "Chat" submenu and clicks "Add Contact" and comes "New Contact" Dialog. Peter then fills the gmail address of that friend and clicks "Add". Once that friend is online, Peter can talk to that friend.
  • Peter launches moblin-chat and comes contact window. Peter can relinquish MID desktop anytime by clicking upper right X of contact window. Now chat application is still running with status icon in status bar.
  • Peter launches moblin-chat and comes contact window. Peter begins chat with Cathy by clicking her. One popup menu is shown and Peter clicks "Chat" and then chat window is shown. After some talk, icon flashes indicating that there is at least new message arriving. After clicking the blinking icon, chat window becomes tabbed and page with Bob is shown with the new message. If Peter now wants to talk with Jack, then he clicks status icon and activates "Show Contact List", contact window is brought upon. Then Peter clicks Jack to chat with him and same Chat window containing three tabs of Cathy/Bob/Jack is shown.
  • Peter wants to view chat history with Cathy. To do that, he goes to contact window and clicks "Chat history" menu item of Cathy and then Chat history window is shown. Peter can search in the history.
  • Peter launches moblin-chat and comes contact window. Peter then click another application to run in desktop. Whatever Peter is doing, as long as moblin-chat is running, status icon flashes if new messages arrive. After clicking that, chat window is brought upon with new received messages to front of MID desktop
  • Peter launches moblin-chat and comes contact window. Peter then click another application to run in desktop. Whatever Peter is doing, as long as moblin-chat is running, icon flashes in the status bar if one guy is requesting to be in Peter's contact list. Then Peter clicks the flashing icon to add him.

Design

Moblin-chat is built on Empathy. Most of work as far is of improvements on user interface and user experiences. Besides, there are also some bug fixes to upstream Empathy. The UI changes keep focus on how to give a great chat experience on small screen and touch-only Mobile Internet Device.

Implementation

  • Moblin-chat integrates very well with Hildon application framework. Contact window and chat window, which are main two UIs users use, are hildonized. The two windows are created with glade file by registering HildonWindow glade recognition at run time and manually modifying glade files. The process is described in http://www.mail-archive.com/ubuntu-mobile@lists.ubuntu.com/msg00187.html.

  • Moblin-chat utilizes libosso to allow only one instance of application launched at one time. All what you do is of adding X-Osso-Service entry in desktop file and adding one dbus service file.
  • Moblin-chat adds https-proxy support for gTalk. It's NOT moblin-chat itself connecting outside like Pidgin does. All moblin-chat does is of collecting proxy setting and feeding them to mission-control and then gabble CM which is real entity to do proxy connection.
  • Continuous merge upstream Empathy bug fixes and new features into moblin-chat.

Moblin-chat made a lot of changes to improve user experience with it in MID, below are some.

  • Startup process is modified. If there is no enabled account, account edit dialog is shown; If there are enabled accounts, contact window is shown. And defautly, offline contacts are shown. This brings much better user experience than original Empathy which just shows status icon at first time launch.
  • Account edit dialog is modified to be big enough and looks great in MID. And users can't switch to contact window until he closes this dialog.
  • If user tries to close account dialog without any accounts enabled, one confirmation dialog is shown to ask if it's really wanted, giving flexibility to users.
  • During account creation, "Enable/Disable" button is disabled if required field for one account is empty.
  • In account edit dialog, if id or password is modified and all required fields are filled and if the account is enabled, reconnect to gTalk server automatically
  • Present user one confirmation message dialog as removing a contact
  • If new message arrives, whatever user is doing, status icon flashes. After clicking, chat window with new message is brought upon.
  • If new subscription request arrives, status icon flashes.
  • Some hints are added in the upper of roster window so that users know what's happening under the hood, like "Account Connecting" and "Connect fail".
  • Remove some unused widgets to make visible area bigger and looks great in small screens.
  • Some user input ways are modified to be touch friendly. All right button activities are changed to be single touch activation.
  • Some workaround for some issues that might come from matchbox or hildon-desktop
  • After quiting account dialog, present contact window anyway

Code Changes

  • Should merge as much as possible in upstream empathy.

Migration

BoF agenda and discussion


CategorySpec

MobileAndEmbedded/Chat (last edited 2008-08-06 16:38:08 by localhost)