diff --git a/lib/src/database/daos/mediafiles.dao.dart b/lib/src/database/daos/mediafiles.dao.dart index 01752ed..5ff7cb6 100644 --- a/lib/src/database/daos/mediafiles.dao.dart +++ b/lib/src/database/daos/mediafiles.dao.dart @@ -24,13 +24,13 @@ class MediaFilesDao extends DatabaseAccessor ); } - final rowId = await into( - mediaFiles, - ).insertOnConflictUpdate(insertMediaFile); + await into(mediaFiles).insertOnConflictUpdate(insertMediaFile); + + final mediaId = insertMediaFile.mediaId.value; return await (select( mediaFiles, - )..where((t) => t.rowId.equals(rowId))).getSingle(); + )..where((t) => t.mediaId.equals(mediaId))).getSingle(); } catch (e) { Log.error('Could not insert media file: $e'); return null; diff --git a/lib/src/services/api/client2client/media.c2c.dart b/lib/src/services/api/client2client/media.c2c.dart index 4f08d91..496ac0b 100644 --- a/lib/src/services/api/client2client/media.c2c.dart +++ b/lib/src/services/api/client2client/media.c2c.dart @@ -117,8 +117,8 @@ Future handleMedia( } } - late MediaFile? mediaFile; - late Message? message; + MediaFile? mediaFile; + Message? message; await twonlyDB.transaction(() async { mediaFile = await twonlyDB.mediaFilesDao.insertOrUpdateMedia( @@ -163,7 +163,7 @@ Future handleMedia( ); }); - if (message != null) { + if (message != null && mediaFile != null) { await twonlyDB.groupsDao.increaseLastMessageExchange( groupId, fromTimestamp(media.timestamp), @@ -176,6 +176,10 @@ Future handleMedia( ); unawaited(startDownloadMedia(mediaFile!, false)); + } else { + Log.error( + 'Could not insert new message as both the message and mediaFile are empty.', + ); } }