Commit 80f0004e authored by Dan Pascu's avatar Dan Pascu

Save xcap operations in the journal while an account is disabled

parent 94533e56
......@@ -178,13 +178,13 @@ class PresencePublicationHandler(object):
if notification.sender is BlinkSettings():
account_manager = AccountManager()
if 'presence.offline_note' in notification.data.modified:
for account in (account for account in account_manager.get_accounts() if account.enabled and account.xcap_available):
for account in (account for account in account_manager.get_accounts() if account.xcap_available):
state = BlinkPresenceState(account).offline_state
account.xcap_manager.set_offline_status(OfflineStatus(state) if state is not None else None)
if 'presence.icon' in notification.data.modified:
icon_data = IconManager().get_image('avatar')
icon = Icon(icon_data, 'image/png') if icon_data is not None else None
for account in (account for account in account_manager.get_accounts() if account.enabled and account.xcap_available):
for account in (account for account in account_manager.get_accounts() if account.xcap_available):
account.xcap_manager.set_status_icon(icon)
if 'presence.current_state' in notification.data.modified:
for account in (account for account in account_manager.get_accounts() if account.enabled and account.presence.enabled):
......@@ -196,7 +196,7 @@ class PresencePublicationHandler(object):
account.save()
elif {'presence.enabled', 'display_name', 'xcap.icon'}.intersection(notification.data.modified) and account.presence.enabled:
account.presence_state = BlinkPresenceState(account).online_state
if account.enabled and account.xcap_available and (set(notification.data.modified) != {'xcap.icon'} or account.id in self._should_set_offline_status):
if account.xcap_available and (set(notification.data.modified) != {'xcap.icon'} or account.id in self._should_set_offline_status):
state = BlinkPresenceState(account).offline_state
account.xcap_manager.set_offline_status(OfflineStatus(state) if state is not None else None)
if account.id in self._should_set_offline_status: # do not use set.discard() here to avoid race conditions. it should only be removed if present.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment