[Bug 45120] New: tp_account_manager_get_most_available_presence() returns Offline with Idle
bugzilla-daemon at freedesktop.org
bugzilla-daemon at freedesktop.org
Mon Jan 23 13:31:02 CET 2012
https://bugs.freedesktop.org/show_bug.cgi?id=45120
Bug #: 45120
Summary: tp_account_manager_get_most_available_presence()
returns Offline with Idle
Classification: Unclassified
Product: Telepathy
Version: unspecified
Platform: Other
OS/Version: All
Status: NEW
Severity: normal
Priority: medium
Component: tp-glib
AssignedTo: telepathy-bugs at lists.freedesktop.org
ReportedBy: guillaume.desmottes at collabora.co.uk
QAContact: telepathy-bugs at lists.freedesktop.org
>From bug #21957 :
"""
> 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.)
"""
According to my test, it does return Offline which doesn't fit with either 1)
or 2).
--
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA Contact for the bug.
You are the assignee for the bug.
More information about the telepathy-bugs
mailing list