-static void
-state_change_cb (EmpathyConnectivity *connectivity,
- gboolean new_online,
- EmpathyPresenceManager *self)
-{
- if (!new_online)
- {
- /* We are no longer connected */
- DEBUG ("Disconnected: Save state %d (%s)",
- self->priv->state, self->priv->status);
- self->priv->saved_state = self->priv->state;
- g_free (self->priv->saved_status);
- self->priv->saved_status = g_strdup (self->priv->status);
- empathy_presence_manager_set_state (self,
- TP_CONNECTION_PRESENCE_TYPE_OFFLINE);
- }
- else if (new_online
- && self->priv->saved_state != TP_CONNECTION_PRESENCE_TYPE_UNSET)
- {
- /* We are now connected */
- DEBUG ("Reconnected: Restore state %d (%s)",
- self->priv->saved_state, self->priv->saved_status);
- empathy_presence_manager_set_presence (self,
- self->priv->saved_state,
- self->priv->saved_status);
- self->priv->saved_state = TP_CONNECTION_PRESENCE_TYPE_UNSET;
- g_free (self->priv->saved_status);
- self->priv->saved_status = NULL;
- }
-}
-