feat: Get event in a room faster by searching in database

This commit is contained in:
Christian Pauly 2022-03-24 14:10:41 +01:00
parent 118f2e6b97
commit 6b36d6bd79
1 changed files with 4 additions and 1 deletions

View File

@ -1411,9 +1411,12 @@ class Room {
return user; return user;
} }
/// Searches for the event on the server. Returns null if not found. /// Searches for the event in the local cache and then on the server if not
/// found. Returns null if not found anywhere.
Future<Event?> getEventById(String eventID) async { Future<Event?> getEventById(String eventID) async {
try { try {
final dbEvent = await client.database?.getEventById(eventID, this);
if (dbEvent != null) return dbEvent;
final matrixEvent = await client.getOneRoomEvent(id, eventID); final matrixEvent = await client.getOneRoomEvent(id, eventID);
final event = Event.fromMatrixEvent(matrixEvent, this); final event = Event.fromMatrixEvent(matrixEvent, this);
if (event.type == EventTypes.Encrypted && client.encryptionEnabled) { if (event.type == EventTypes.Encrypted && client.encryptionEnabled) {