Bug 325433 - Change the sort order of contact presences
Summary: Change the sort order of contact presences
Status: RESOLVED INTENTIONAL
Alias: None
Product: telepathy
Classification: Frameworks and Libraries
Component: presence-applet (show other bugs)
Version: 0.6.80
Platform: Gentoo Packages Linux
: NOR wishlist
Target Milestone: Future
Assignee: Telepathy Bugs
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-09-29 15:45 UTC by Christian (Fuchs)
Modified: 2013-11-07 10:58 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Christian (Fuchs) 2013-09-29 15:45:44 UTC
It's great that both the presence plasmoid and contact list application can now list all (custom defined as well) statuses. Thanks a lot for that. However, they are now somewhat sorted in an odd way,  from online to not available to invisible (?) to away to not available to offline. 
More common seems to be a logical system going from online to  (via away, busy, not available, invisible) offline. 

Also if one defines lots of status the list gets a bit crowdy, maybe sub-menus could be used? 

Reproducible: Always

Steps to Reproduce:
1. Try to set the status either via contact list or plasmoid
2. Open the list of possible statuses
Actual Results:  
See a rather crowded and oddly sorted list

Expected Results:  
List is sorted logically and the status is found quickly
Comment 1 Christian (Fuchs) 2013-11-06 22:53:28 UTC
As I just patched this for my personal use I noticed that there already is a function which does exactly this: sort per presence. 

http://api.kde.org/extragear-api/network-apidocs/telepathy/ktp-common-internals/html/presence_8cpp_source.html#l00111

As per the documentation, this "Returns an int representation of the presence type sorted by priority. 0 - most online, 7 - offline"

Looking at this list either I do not get the logic behind it or I clearly disagree, as neither "busy" nor "hidden" should be more online than away. Is this used anywere in KTp that depends on the order being exactly like that? Else I'd recommend changing the order there to 

    switch(type) {
        case Tp::ConnectionPresenceTypeAvailable:
            return 0;
        case Tp::ConnectionPresenceTypeAway:
            return 1;
        case Tp::ConnectionPresenceTypeExtendedAway:
            return 2;
        case Tp::ConnectionPresenceTypeBusy: 
            return 3;
       case Tp::ConnectionPresenceTypeHidden:
            return 4;
        //don't distinguish between the following three presences
        case Tp::ConnectionPresenceTypeError:
        case Tp::ConnectionPresenceTypeUnknown:
        case Tp::ConnectionPresenceTypeUnset:
            return 5;
        case Tp::ConnectionPresenceTypeOffline:
        default:
            return 6;

Which fixes this bug all over ktp. 

Thanks in advance, kind regards
Comment 2 Martin Klapetek 2013-11-07 07:55:00 UTC
The logic behind "busy" & "hidden" being more online is that "hidden" is exactly the same as "available" except for the few people which you have in your invisible list, those see you as offline. "Busy" means you are (probably) still sitting at your computer doing something and just being busy, while "away" means you are away from your computer.

We discussed it quite a while iirc and imho should keep it the way it is now.

Btw. what's the logic behind your proposal?
Comment 3 Christian (Fuchs) 2013-11-07 09:48:11 UTC
(In reply to comment #2)

Hi :-) 

> The logic behind "busy" & "hidden" being more online is that "hidden" is
> exactly the same as "available" except for the few people which you have in
> your invisible list, those see you as offline. 

It is the other way around, isn't it? Because in general if you set yourself to invisible I think that other people can't see you as online aside from the ones that you allow to. At least this is how I know it from all other protocols / clients. http://xmpp.org/extensions/xep-0126.html seems to see it this way, ICQ certainly is this way, Skype as well. Is it really inverted here? If not: the exception would be users seeing you despite being invisible, so the ordering should imo be based on the general rule, not the exception. 

> "Busy" means you are
> (probably) still sitting at your computer doing something and just being
> busy, while "away" means you are away from your computer.

Here the thing that is important is: from what point of view am I looking at this. Is it my point of view, or is it the point of view of the other people who have me in their contact list? And in my opinion always the other persons point of view should be considered, because I do know whether I am online, away, busy, eating a sandwich etc.  So setting a status is not something I do for me, but for others. 
Now how do I appear to others?  Away (or extended away) means (especially given that most clients, including kde telepathy, have a setting to set auto-away after n minutes of inactivity) that I wasn't active at the computer. I might be watching a movie, read something or actually be away from the keyboard. However, other people are free to send me a message. Maybe it will "wake me up", or I just reply as soon as I am back. 
Now busy/do not disturb/etc. is something else. As the icon also in most clients signalizes (red, stop, no) I do not want to be contacted. It doesn't matter whether I am currently sitting in front of my keyboard or I am skiing in the mountains: I don't want others to send me messages, or at least not want them to expect that I will reply in time. So from the point of view of people who do have me in their contact list, I am "more away" than I would be when set to away. 

> We discussed it quite a while iirc and imho should keep it the way it is now.
> 
> Btw. what's the logic behind your proposal?

The above, which does not seem to be my logic/opinion only, but a rather common one. I went through a couple of clients (for some I only had screenshots available, so I might be wrong), including Kopete, Psi, Skype, Pidgin, Empathy ...  and they all had it this way. And from an usability point of view:  if everybody else is doing something a given way, then you should not change it unless you have really really good arguments to. 

Kind regards, 

Christian
Comment 4 Martin Klapetek 2013-11-07 10:17:15 UTC
I might have explained the "hidden" poorly; yes, it's exactly like you say and it's what I meant. But you see, those that you have in your "see me when hidden" list, perceive you as online, so you're definitely more online as when "away".

If it helps you, the presence sorting can be defined as "how likely it is that the target contact will see my message". If the contact is "busy", he might be working, watching movie etc. but still might see my message and decide to answer if he wants. While "away" can mean "away from keyboard", so in this sense it's less likely my message would be seen.

As for your list of clients - Empathy does not provide sorting by presence at all, Pidgin does put "busy" before "away" and so does Kopete (as well as goo'ol' GTalk in GMail, and Google sure knows what they're doing ;)

So..we're not doing anything different at all, in fact, we're doing what everyone else is doing and that is, as you say, very good from usability point of view :)

Also this report mixes two actual feature requests, can you please open new one for the submenus? That is a good idea and it got lost in here, also helps up keeping tracking of features more easily, thanks.
Comment 5 Martin Klapetek 2013-11-07 10:38:27 UTC
I've filed a new report for the submenus, see bug 327268
Comment 6 Christian (Fuchs) 2013-11-07 10:58:09 UTC
(In reply to comment #5)
> I've filed a new report for the submenus, see bug 327268

Yes, thank you, I've already received the e-mail. 

As for the rest: I still think that using the exception instead of the generic rule as a reason is a bit wrong, and I won't go and upload screenshots of Skype and Kopete now, I respect your decision to keep the ordering. 

Of course I'll just create a local patch which changes it to the logic I proposed, that is one of the advantages of using a source based distro. Then everybody will be happy :)

I will give a couple of thoughts on the submenu bug report at a later point, unfortunately I am quite busy this week. 

Kind regards