refactor: Remove unnecessary roomId parameter from decryptRoomEvent method
This commit is contained in:
parent
04a46226cb
commit
bc7b987772
|
|
@ -1,2 +1,2 @@
|
|||
flutter_version=3.24.3
|
||||
dart_version=3.5.3
|
||||
flutter_version=3.27.1
|
||||
dart_version=3.6.0
|
||||
|
|
|
|||
|
|
@ -193,7 +193,7 @@ class Encryption {
|
|||
}
|
||||
}
|
||||
|
||||
Event decryptRoomEventSync(String roomId, Event event) {
|
||||
Event decryptRoomEventSync(Event event) {
|
||||
if (event.type != EventTypes.Encrypted || event.redacted) {
|
||||
return event;
|
||||
}
|
||||
|
|
@ -214,7 +214,7 @@ class Encryption {
|
|||
}
|
||||
|
||||
final inboundGroupSession =
|
||||
keyManager.getInboundGroupSession(roomId, sessionId);
|
||||
keyManager.getInboundGroupSession(event.room.id, sessionId);
|
||||
if (!(inboundGroupSession?.isValid ?? false)) {
|
||||
canRequestSession = true;
|
||||
throw DecryptException(DecryptException.unknownSession);
|
||||
|
|
@ -249,7 +249,7 @@ class Encryption {
|
|||
// ignore: discarded_futures
|
||||
?.updateInboundGroupSessionIndexes(
|
||||
json.encode(inboundGroupSession.indexes),
|
||||
roomId,
|
||||
event.room.id,
|
||||
sessionId,
|
||||
)
|
||||
// ignore: discarded_futures
|
||||
|
|
@ -260,14 +260,16 @@ class Encryption {
|
|||
// alright, if this was actually by our own outbound group session, we might as well clear it
|
||||
if (exception.toString() != DecryptException.unknownSession &&
|
||||
(keyManager
|
||||
.getOutboundGroupSession(roomId)
|
||||
.getOutboundGroupSession(event.room.id)
|
||||
?.outboundGroupSession
|
||||
?.session_id() ??
|
||||
'') ==
|
||||
content.sessionId) {
|
||||
runInRoot(
|
||||
() async =>
|
||||
keyManager.clearOrUseOutboundGroupSession(roomId, wipe: true),
|
||||
() async => keyManager.clearOrUseOutboundGroupSession(
|
||||
event.room.id,
|
||||
wipe: true,
|
||||
),
|
||||
);
|
||||
}
|
||||
if (canRequestSession) {
|
||||
|
|
@ -308,7 +310,6 @@ class Encryption {
|
|||
}
|
||||
|
||||
Future<Event> decryptRoomEvent(
|
||||
String roomId,
|
||||
Event event, {
|
||||
bool store = false,
|
||||
EventUpdateType updateType = EventUpdateType.timeline,
|
||||
|
|
@ -323,22 +324,22 @@ class Encryption {
|
|||
sessionId != null &&
|
||||
!(keyManager
|
||||
.getInboundGroupSession(
|
||||
roomId,
|
||||
event.room.id,
|
||||
sessionId,
|
||||
)
|
||||
?.isValid ??
|
||||
false)) {
|
||||
await keyManager.loadInboundGroupSession(
|
||||
roomId,
|
||||
event.room.id,
|
||||
sessionId,
|
||||
);
|
||||
}
|
||||
event = decryptRoomEventSync(roomId, event);
|
||||
event = decryptRoomEventSync(event);
|
||||
if (event.type == EventTypes.Encrypted &&
|
||||
event.content['can_request_session'] == true &&
|
||||
sessionId != null) {
|
||||
keyManager.maybeAutoRequest(
|
||||
roomId,
|
||||
event.room.id,
|
||||
sessionId,
|
||||
content.senderKey,
|
||||
);
|
||||
|
|
@ -350,7 +351,7 @@ class Encryption {
|
|||
await client.database?.storeEventUpdate(
|
||||
EventUpdate(
|
||||
content: event.toJson(),
|
||||
roomID: roomId,
|
||||
roomID: event.room.id,
|
||||
type: updateType,
|
||||
),
|
||||
client,
|
||||
|
|
|
|||
|
|
@ -192,7 +192,7 @@ class KeyManager {
|
|||
if (event != null &&
|
||||
event.type == EventTypes.Encrypted &&
|
||||
event.content['session_id'] == sessionId) {
|
||||
final decrypted = encryption.decryptRoomEventSync(roomId, event);
|
||||
final decrypted = encryption.decryptRoomEventSync(event);
|
||||
if (decrypted.type != EventTypes.Encrypted) {
|
||||
// Update the last event in memory first
|
||||
room.lastEvent = decrypted;
|
||||
|
|
|
|||
|
|
@ -1243,10 +1243,7 @@ class Client extends MatrixApi {
|
|||
if (archivedRoom.encrypted && archivedRoom.client.encryptionEnabled) {
|
||||
if (timeline.events[i].type == EventTypes.Encrypted) {
|
||||
await archivedRoom.client.encryption!
|
||||
.decryptRoomEvent(
|
||||
archivedRoom.id,
|
||||
timeline.events[i],
|
||||
)
|
||||
.decryptRoomEvent(timeline.events[i])
|
||||
.then(
|
||||
(decrypted) => timeline.events[i] = decrypted,
|
||||
);
|
||||
|
|
@ -1880,11 +1877,11 @@ class Client extends MatrixApi {
|
|||
|
||||
final encryption = this.encryption;
|
||||
if (event.type == EventTypes.Encrypted && encryption != null) {
|
||||
var decrypted = await encryption.decryptRoomEvent(roomId, event);
|
||||
var decrypted = await encryption.decryptRoomEvent(event);
|
||||
if (decrypted.messageType == MessageTypes.BadEncrypted &&
|
||||
prevBatch != null) {
|
||||
await oneShotSync();
|
||||
decrypted = await encryption.decryptRoomEvent(roomId, event);
|
||||
decrypted = await encryption.decryptRoomEvent(event);
|
||||
}
|
||||
event = decrypted;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1460,10 +1460,7 @@ class Room {
|
|||
for (var i = 0; i < events.length; i++) {
|
||||
if (events[i].type == EventTypes.Encrypted &&
|
||||
events[i].content['can_request_session'] == true) {
|
||||
events[i] = await client.encryption!.decryptRoomEvent(
|
||||
id,
|
||||
events[i],
|
||||
);
|
||||
events[i] = await client.encryption!.decryptRoomEvent(events[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1529,10 +1526,7 @@ class Room {
|
|||
// Try to decrypt encrypted events but don't update the database.
|
||||
if (encrypted && client.encryptionEnabled) {
|
||||
if (events[i].type == EventTypes.Encrypted) {
|
||||
events[i] = await client.encryption!.decryptRoomEvent(
|
||||
id,
|
||||
events[i],
|
||||
);
|
||||
events[i] = await client.encryption!.decryptRoomEvent(events[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1576,7 +1570,6 @@ class Room {
|
|||
// for the fragmented timeline, we don't cache the decrypted
|
||||
//message in the database
|
||||
chunk.events[i] = await client.encryption!.decryptRoomEvent(
|
||||
id,
|
||||
chunk.events[i],
|
||||
);
|
||||
} else if (client.database != null) {
|
||||
|
|
@ -1585,7 +1578,6 @@ class Room {
|
|||
for (var i = 0; i < chunk.events.length; i++) {
|
||||
if (chunk.events[i].content['can_request_session'] == true) {
|
||||
chunk.events[i] = await client.encryption!.decryptRoomEvent(
|
||||
id,
|
||||
chunk.events[i],
|
||||
store: !isArchived,
|
||||
updateType: EventUpdateType.history,
|
||||
|
|
@ -1913,10 +1905,7 @@ class Room {
|
|||
final event = Event.fromMatrixEvent(matrixEvent, this);
|
||||
if (event.type == EventTypes.Encrypted && client.encryptionEnabled) {
|
||||
// attempt decryption
|
||||
return await client.encryption?.decryptRoomEvent(
|
||||
id,
|
||||
event,
|
||||
);
|
||||
return await client.encryption?.decryptRoomEvent(event);
|
||||
}
|
||||
return event;
|
||||
} on MatrixException catch (err) {
|
||||
|
|
|
|||
|
|
@ -281,7 +281,6 @@ class Timeline {
|
|||
for (var i = 0; i < newEvents.length; i++) {
|
||||
if (newEvents[i].type == EventTypes.Encrypted) {
|
||||
newEvents[i] = await room.client.encryption!.decryptRoomEvent(
|
||||
room.id,
|
||||
newEvents[i],
|
||||
);
|
||||
}
|
||||
|
|
@ -390,7 +389,6 @@ class Timeline {
|
|||
events[i].messageType == MessageTypes.BadEncrypted &&
|
||||
events[i].content['session_id'] == sessionId) {
|
||||
events[i] = await encryption.decryptRoomEvent(
|
||||
room.id,
|
||||
events[i],
|
||||
store: true,
|
||||
updateType: EventUpdateType.history,
|
||||
|
|
@ -707,7 +705,7 @@ class Timeline {
|
|||
for (final matrixEvent in resp.chunk) {
|
||||
var event = Event.fromMatrixEvent(matrixEvent, room);
|
||||
if (event.type == EventTypes.Encrypted && encryption != null) {
|
||||
event = await encryption.decryptRoomEvent(room.id, event);
|
||||
event = await encryption.decryptRoomEvent(event);
|
||||
if (event.type == EventTypes.Encrypted &&
|
||||
event.messageType == MessageTypes.BadEncrypted &&
|
||||
event.content['can_request_session'] == true) {
|
||||
|
|
|
|||
|
|
@ -68,7 +68,6 @@ class EventUpdate {
|
|||
}
|
||||
try {
|
||||
final decrpytedEvent = await encryption.decryptRoomEvent(
|
||||
room.id,
|
||||
Event.fromJson(content, room),
|
||||
store: store,
|
||||
updateType: type,
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ class PushNotification {
|
|||
});
|
||||
|
||||
/// Generate a Push Notification object from JSON. It also supports a
|
||||
/// <String, String> map which usually comes from Firebase Cloud Messaging.
|
||||
/// `map<String, String>` which usually comes from Firebase Cloud Messaging.
|
||||
factory PushNotification.fromJson(Map<String, dynamic> json) =>
|
||||
PushNotification(
|
||||
content: json['content'] is Map
|
||||
|
|
|
|||
|
|
@ -61,7 +61,7 @@ void main() {
|
|||
senderId: client.userID!,
|
||||
);
|
||||
final decryptedEvent =
|
||||
await client.encryption!.decryptRoomEvent(roomId, encryptedEvent);
|
||||
await client.encryption!.decryptRoomEvent(encryptedEvent);
|
||||
expect(decryptedEvent.type, 'm.room.message');
|
||||
expect(decryptedEvent.content['msgtype'], 'm.text');
|
||||
expect(decryptedEvent.content['text'], 'Hello foxies!');
|
||||
|
|
@ -80,7 +80,7 @@ void main() {
|
|||
senderId: client.userID!,
|
||||
);
|
||||
final decryptedEvent =
|
||||
await client.encryption!.decryptRoomEvent(roomId, encryptedEvent);
|
||||
await client.encryption!.decryptRoomEvent(encryptedEvent);
|
||||
expect(decryptedEvent.type, 'm.room.message');
|
||||
expect(decryptedEvent.content['msgtype'], 'm.text');
|
||||
expect(decryptedEvent.content['text'], 'Hello foxies!');
|
||||
|
|
@ -98,12 +98,11 @@ void main() {
|
|||
senderId: '@alice:example.com',
|
||||
);
|
||||
final decryptedEvent =
|
||||
await client.encryption!.decryptRoomEvent(roomId, encryptedEvent);
|
||||
await client.encryption!.decryptRoomEvent(encryptedEvent);
|
||||
expect(decryptedEvent.type, 'm.room.message');
|
||||
expect(decryptedEvent.content['msgtype'], 'm.text');
|
||||
expect(decryptedEvent.content['text'], 'Hello foxies!');
|
||||
await client.encryption!
|
||||
.decryptRoomEvent(roomId, encryptedEvent, store: true);
|
||||
await client.encryption!.decryptRoomEvent(encryptedEvent, store: true);
|
||||
});
|
||||
|
||||
test('dispose client', () async {
|
||||
|
|
|
|||
Loading…
Reference in New Issue