[Bug 21957] Doesn't implement SimplePresence

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Mon Jan 23 11:52:26 CET 2012


https://bugs.freedesktop.org/show_bug.cgi?id=21957

--- Comment #15 from Simon McVittie <simon.mcvittie at collabora.co.uk> 2012-01-23 02:52:26 PST ---
(In reply to comment #14)
> The current situation confuses Empathy and the Shell (which are both using
> tp_account_manager_get_most_available_presence()) if only Idle accounts are
> connected. As they don't implement SimplePresence, there is no "most available
> presence" and so UIs claim we are offline.

I don't think this is really Idle's fault: MC, telepathy-glib and clients
should cope with this situation. Is get_most_available_presence actually
returning OFFLINE, or is it really UNSET?

If it's UNSET, I believe MC uses UNSET to mean "it's online but does not report
any specific presence" - as a most available presence, UIs should treat that as
online.

Rationale for UNSET meaning that per-account: if we used AVAILABLE, then this
situation:

    XMPP: BUSY
    IRC: online

would be reported by get_most_available_presence as AVAILABLE, which is clearly
wrong: it should be BUSY. With the special handling of UNSET, and UNSET
prioritized below all online presences, it's reported as BUSY as expected.

I see two possibilities to fix this:

1) Change get_most_available_presence to return AVAILABLE if it would have
returned UNSET (implementation detail: you will want to store
priv->most_available_presence == UNSET, and only do the translation in the API
- otherwise certain state transitions will be wrong)

2) Change clients (Empathy, Shell) to treat UNSET as an online status

Some things to test if you do (1):

* XMPP offline, IRC online -> AVAILABLE (or UNSET for (2))
* XMPP BUSY, IRC online -> BUSY
* XMPP offline, IRC online, XMPP changes to BUSY -> AVAILABLE changes to BUSY

(That last one is an example of a transition that would break if you stored
priv->most_available_presence == AVAILABLE for the only-IRC-online case.)

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA Contact for the bug.



More information about the telepathy-bugs mailing list