Comment 9 for bug 198493

Revision history for this message
Chascon (chascone) wrote :

K, it just happened where one contact gets displayed via Growl an unnecessary 3 times.

My skills got to be near zero since I haven programmed in half a decade but here goes ...

I gather that growl is simply mirroring every status update that it receives from transports. Let's look at the code referred to the event above.

RECV: <presence <email address hidden>" from="someone\<email address hidden>"><status>q wen krrete ayer!!!!</status></presence>

RECV: <presence <email address hidden>" from="someone\<email address hidden>"/><presence <email address hidden>" from="someone\<email address hidden>"><status>q wen krrete ayer!!!!</status></presence>

RECV: <presence <email address hidden>" from="someone\<email address hidden>"><status>q wen krrete ayer!!!!</status><x xmlns="vcard-temp:x:update"><photo><![CDATA

As far as I can see, there is no change in this contact's status, therefore there is no need for Growl to display the same contact's status three times, yet it does.

So what's needed is something you proposed before, a filter to catch unnecessary duplicate status reports, with a cache to refer to only the last received status. I don't think your code is working, if it's in the 0.96.8 release.

I did recheck my reading a few times and it seems to make sense with other occurrences in the debug console, although there was one other time where Growl reported a presence more than once but debug console didn't report each and every time; I gather there are various issues contributing to the same problem but we should probably work on one problem at a time, especially considering that I don't understand the later one. Lastly, I think there is a third contributing factor, and that is that sometimes transports seem to log in and out, but we have no control over this.