[omemo] Adapt to Gajim event changes

This commit is contained in:
lovetox
2022-01-03 22:08:42 +01:00
parent cdfc4590f9
commit 26fd2e4664
2 changed files with 37 additions and 12 deletions

28
omemo/modules/events.py Normal file
View File

@@ -0,0 +1,28 @@
# This file is part of OMEMO Gajim Plugin.
#
# OMEMO Gajim Plugin is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published
# by the Free Software Foundation; version 3 only.
#
# OMEMO Gajim Plugin is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with OMEMO Gajim Plugin. If not, see <http://www.gnu.org/licenses/>.
from __future__ import annotations
from typing import Any
from dataclasses import dataclass
from dataclasses import field
from gajim.common.events import ApplicationEvent
@dataclass
class OMEMONewFingerprint(ApplicationEvent):
name: str = field(init=False, default='omemo-new-fingerprint')
chat_control: Any

View File

@@ -31,7 +31,7 @@ from nbxmpp.modules.util import is_error
from gajim.common import app
from gajim.common import configpaths
from gajim.common.nec import NetworkEvent
from gajim.common.events import MessageNotSent
from gajim.common.const import EncryptionData
from gajim.common.const import Trust as GajimTrust
from gajim.common.modules.base import BaseModule
@@ -47,6 +47,7 @@ from omemo.backend.state import MessageNotForDevice
from omemo.backend.state import DecryptionFailed
from omemo.backend.state import DuplicateMessage
from omemo.backend.util import Trust
from omemo.modules.events import OMEMONewFingerprint
from omemo.modules.util import prepare_stanza
@@ -157,15 +158,12 @@ class OMEMO(BaseModule):
omemo_message = self.backend.encrypt(event.jid, event.message)
if omemo_message is None:
session = event.session if hasattr(event, 'session') else None
app.nec.push_incoming_event(
NetworkEvent('message-not-sent',
conn=conn,
jid=event.jid,
message=event.message,
error=_('Encryption error'),
time_=time.time(),
session=session))
app.ged.raise_event(
MessageNotSent(client=conn,
jid=event.jid,
message=event.message,
error=_('Encryption error'),
time=time.time()))
return
create_omemo_message(event.stanza, omemo_message,
@@ -441,8 +439,7 @@ class OMEMO(BaseModule):
# the Chat Window is Open
ctrl = app.window.get_control(self._account, jid)
if ctrl:
app.nec.push_incoming_event(
NetworkEvent('omemo-new-fingerprint', chat_control=ctrl))
app.ged.raise_event(OMEMONewFingerprint(chat_control=ctrl))
def set_devicelist(self, devicelist=None):
devicelist_ = set([self.backend.own_device])