Comment 4 for bug 548851

Revision history for this message
Jason J. Herne (hernejj) wrote :

The problem seems to be this:

file: rhythmbox/plugins/im-status/im-status/__init__.py
----------------------------------
def get_mc5_status (self):
...
    for acct in am.Get (MC5_AM_IFACE_NAME, "ValidAccounts"):
        ...
        if status[2] != "":
              return status[2]
    ....
    return None
----------------------------------

This algorithm is doing the following:

Loop through all empathy accounts.
If the status of the current account is not an empty string then return it and
save it so we can restore it later.
If we do not find an account with a status that is not an empty string then
simply return None.

the None value is implicitly used by this plugin to mean that we never saved
the status in the first place, so we never bother restoring it.

Here is the kicker: Empathy (MC5, rather) uses an empty string as the default
status message. Even though the user is seeing the status as "Available"...
status[2] is actually an empty string.

The proper fix seems to be to change the return statement to return an empty
string instead of None.

NOTE: This patch has also been submitted upstream.