Mercurial > pidgin
comparison libpurple/protocols/jabber/buddy.c @ 25204:cac2f6203505
Patch from darkrain42
Use idleness when finding buddy resources (most active)
Use resource found using jabber_buddy_find_resource to report idle time
(get rid of an extra function to rank on idle time)
author | Marcus Lundblad <ml@update.uu.se> |
---|---|
date | Tue, 18 Nov 2008 20:24:59 +0000 |
parents | c5c4faef04ff |
children | b2f4964768d7 |
comparison
equal
deleted
inserted
replaced
25203:c5c4faef04ff | 25204:cac2f6203505 |
---|---|
109 /* Determine if this resource is more available than the one we've currently chosen */ | 109 /* Determine if this resource is more available than the one we've currently chosen */ |
110 switch(tmp->state) { | 110 switch(tmp->state) { |
111 case JABBER_BUDDY_STATE_ONLINE: | 111 case JABBER_BUDDY_STATE_ONLINE: |
112 case JABBER_BUDDY_STATE_CHAT: | 112 case JABBER_BUDDY_STATE_CHAT: |
113 /* This resource is online/chatty. Prefer to one which isn't either. */ | 113 /* This resource is online/chatty. Prefer to one which isn't either. */ |
114 if ((jbr->state != JABBER_BUDDY_STATE_ONLINE) && (jbr->state != JABBER_BUDDY_STATE_CHAT)) | 114 if (((jbr->state != JABBER_BUDDY_STATE_ONLINE) && (jbr->state != JABBER_BUDDY_STATE_CHAT)) || |
115 (jbr->idle && !tmp->idle) || (jbr->idle && tmp->idle && tmp->idle > jbr->idle)) | |
115 jbr = tmp; | 116 jbr = tmp; |
116 break; | 117 break; |
117 case JABBER_BUDDY_STATE_AWAY: | 118 case JABBER_BUDDY_STATE_AWAY: |
118 case JABBER_BUDDY_STATE_DND: | 119 case JABBER_BUDDY_STATE_DND: |
119 case JABBER_BUDDY_STATE_UNAVAILABLE: | 120 case JABBER_BUDDY_STATE_UNAVAILABLE: |
120 /* This resource is away/dnd/unavailable. Prefer to one which is extended away or unknown. */ | 121 /* This resource is away/dnd/unavailable. Prefer to one which is extended away or unknown. */ |
121 if ((jbr->state == JABBER_BUDDY_STATE_XA) || | 122 if (((jbr->state == JABBER_BUDDY_STATE_XA) || |
122 (jbr->state == JABBER_BUDDY_STATE_UNKNOWN) || (jbr->state == JABBER_BUDDY_STATE_ERROR)) | 123 (jbr->state == JABBER_BUDDY_STATE_UNKNOWN) || (jbr->state == JABBER_BUDDY_STATE_ERROR)) || |
124 (jbr->idle && !tmp->idle) || (jbr->idle && tmp->idle && tmp->idle > jbr->idle)) | |
123 jbr = tmp; | 125 jbr = tmp; |
124 break; | 126 break; |
125 case JABBER_BUDDY_STATE_XA: | 127 case JABBER_BUDDY_STATE_XA: |
126 /* This resource is extended away. That's better than unknown. */ | 128 /* This resource is extended away. That's better than unknown. */ |
127 if ((jbr->state == JABBER_BUDDY_STATE_UNKNOWN) || (jbr->state == JABBER_BUDDY_STATE_ERROR)) | 129 if (((jbr->state == JABBER_BUDDY_STATE_UNKNOWN) || (jbr->state == JABBER_BUDDY_STATE_ERROR)) || |
130 (jbr->idle && !tmp->idle) || (jbr->idle && tmp->idle && tmp->idle > jbr->idle)) | |
128 jbr = tmp; | 131 jbr = tmp; |
129 break; | 132 break; |
130 case JABBER_BUDDY_STATE_UNKNOWN: | 133 case JABBER_BUDDY_STATE_UNKNOWN: |
131 case JABBER_BUDDY_STATE_ERROR: | 134 case JABBER_BUDDY_STATE_ERROR: |
132 /* These are never preferable. */ | 135 /* These are never preferable. */ |