• Philip Withnall's avatar
    telepathy: Preserve Tpf.Persona avatars from the cache for online contacts · c2338c65
    Philip Withnall authored
    This is a fairly hacky way of fixing the problem in bug #660128: maintaining
    a map of IIDs to avatar files for all personas in the Telepathy backend, and
    referring to it in case Telepathy doesn’t know the current avatar for a
    TpContact. This can happen if that contact is currently offline while we’re
    online, for example. This allows use of the avatars cached from last time
    contacts were online, even though those contacts are now offline.
    
    A more comprehensive fix, which I would have implemented if I hadn’t just got
    my degree classification and weren’t just heading out to celebrate, would
    involve rearchitecting the caching of the Telepathy backend so that the
    Tpf.Personas weren’t destroyed and re-created whenever the backend went
    offline/online; instead, they would have their properties updated from the
    cache/online contact list. This would eliminate spurious personas-changed
    signals, unify the code implementing the different properties (currently it’s
    split between the properties and separate implementations in
    Tpf.Persona.from_cache()), and allow property values to persist from offline
    to online without the need for hacks like this.
    
    Closes: https://bugzilla.gnome.org/show_bug.cgi?id=660128
    c2338c65
tpf-persona.vala 37.7 KB