The problem seems to have been that Empathy explicitly sets contacts' alias to their ID. So if the contact-specified nickname doesn't arrive fast enough — which it doesn't — the ICQ user's alias is forcibly set to their UIN, and then when their actual nickname arrives, we don't get it because we already have a user-set alias for the contact.
So this branch makes setting a contact's alias to their ID a no-op.
I'm wondering about making the alias lookup code explicitly ignore the local alias if it's the user's UIN, and try the remote nickname instead. Thoughts?
To clarify:
The problem seems to have been that Empathy explicitly sets contacts' alias to their ID. So if the contact-specified nickname doesn't arrive fast enough — which it doesn't — the ICQ user's alias is forcibly set to their UIN, and then when their actual nickname arrives, we don't get it because we already have a user-set alias for the contact.
So this branch makes setting a contact's alias to their ID a no-op.
I'm wondering about making the alias lookup code explicitly ignore the local alias if it's the user's UIN, and try the remote nickname instead. Thoughts?