Chat

Differences between revisions 7 and 8
Revision 7 as of 2007-09-06 15:09:35
Size: 8198
Editor: jffwpr02
Comment:
Revision 8 as of 2007-09-06 17:52:44
Size: 8221
Editor: 47
Comment: Fix up markup
Deletions are marked like this. Additions are marked like this.
Line 35: Line 35:
* 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 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.
Line 37: Line 37:
* 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 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.
Line 39: Line 39:
* Peter is brought to contact window after enabling at least one account and quitting account dialog.  * Peter is brought to contact window after enabling at least one account and quitting account dialog.
Line 41: Line 41:
* 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.  * 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.
Line 43: Line 43:
* 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 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.
Line 45: Line 45:
* 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, one new message from Bob arrives and chat window is now tabbed window 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 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, one new message from Bob arrives and chat window is now tabbed window 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.
Line 47: Line 47:
* 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 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.
Line 49: Line 49:
* 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, chat window is brought upon to front of MID desktop if one new message arrives.  * 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, chat window is brought upon to front of MID desktop if one new message arrives.
Line 51: Line 51:
* 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.  * 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.
Line 59: Line 59:
* 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 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.
Line 61: Line 61:
* 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 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.
Line 63: Line 63:
* 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.  * 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.
Line 65: Line 65:
* Continuous merge upstream Empathy bug fixes and new features into moblin-chat.  * Continuous merge upstream Empathy bug fixes and new features into moblin-chat.
Line 69: Line 69:
* 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.  * 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.
Line 71: Line 71:
* 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.  * 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.
Line 73: Line 73:
* 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.  * 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.
Line 75: Line 75:
* During account creation, "Enable/Disable" button is disabled if required field for one account is empty.  * During account creation, "Enable/Disable" button is disabled if required field for one account is empty.
Line 77: Line 77:
* 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  * 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
Line 79: Line 79:
* If new message arrives, whatever user is doing, chat window with new message is brought upon rather than no response.  * If new message arrives, whatever user is doing, chat window with new message is brought upon rather than no response.
Line 81: Line 81:
* If new subscription request arrives, status icon flashes.  * If new subscription request arrives, status icon flashes.
Line 83: Line 83:
* 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".  * 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".
Line 85: Line 85:
* Remove some unused widgets to make visible area bigger and looks great in small screens.  * Remove some unused widgets to make visible area bigger and looks great in small screens.
Line 87: Line 87:
* Some user input ways are modified to be touch friendly. All right button activities are changed to be single touch activation.  * Some user input ways are modified to be touch friendly. All right button activities are changed to be single touch activation.

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_chat.html

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, the only fully US-legal and 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, one new message from Bob arrives and chat window is now tabbed window 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, chat window is brought upon to front of MID desktop if one new message arrives.
  • 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
  • If new message arrives, whatever user is doing, chat window with new message is brought upon rather than no response.
  • 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.

Code Changes

Migration

BoF agenda and discussion


CategorySpec

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