fix: add logging and hide non-downloaded images
Some checks are pending
Flutter analyze & test / flutter_analyze_and_test (push) Waiting to run

This commit is contained in:
otsmr 2026-06-01 23:39:12 +02:00
parent d03c42659c
commit 24efc76c02
3 changed files with 28 additions and 20 deletions

View file

@ -93,24 +93,32 @@ class MessagesDao extends DatabaseAccessor<TwonlyDB> with _$MessagesDaoMixin {
milliseconds: group!.deleteMessagesAfterMilliseconds, milliseconds: group!.deleteMessagesAfterMilliseconds,
), ),
); );
return ((select(messages)..where( final query = select(messages).join([
(t) => leftOuterJoin(
t.groupId.equals(groupId) & mediaFiles,
// messages in groups will only be removed in case all members have received it... mediaFiles.mediaId.equalsExp(messages.mediaId),
// so ensuring that this message is not shown in the messages anymore ),
(t.openedAt.isBiggerThanValue(deletionTime) | ])
t.openedAt.isNull() | ..where(
t.mediaStored.equals(true)) & messages.groupId.equals(groupId) &
(t.isDeletedFromSender.equals(true) | (messages.openedAt.isBiggerThanValue(deletionTime) |
(t.type.equals(MessageType.text.name).not() & messages.openedAt.isNull() |
t.type.equals(MessageType.media.name).not()) | messages.mediaStored.equals(true)) &
(t.type.equals(MessageType.text.name) & (messages.isDeletedFromSender.equals(true) |
t.content.isNotNull()) | (messages.type.equals(MessageType.text.name).not() &
(t.type.equals(MessageType.media.name) & messages.type.equals(MessageType.media.name).not()) |
t.mediaId.isNotNull())), (messages.type.equals(MessageType.text.name) &
)) messages.content.isNotNull()) |
..orderBy([(t) => OrderingTerm.asc(t.createdAt)])) (messages.type.equals(MessageType.media.name) &
.watch(); messages.mediaId.isNotNull() &
(mediaFiles.downloadState.isNull() |
mediaFiles.downloadState
.equals(DownloadState.reuploadRequested.name)
.not()))),
)
..orderBy([OrderingTerm.asc(messages.createdAt)]);
return query.map((row) => row.readTable(messages)).watch();
} }
Stream<List<(GroupMember, Contact)>> watchMembersByGroupId(String groupId) { Stream<List<(GroupMember, Contact)>> watchMembersByGroupId(String groupId) {

View file

@ -252,7 +252,7 @@ Future<void> downloadFileFast(
} else { } else {
if (response.statusCode == 404 || response.statusCode == 403) { if (response.statusCode == 404 || response.statusCode == 403) {
Log.error( Log.error(
'Got ${response.statusCode} from server. Requesting upload again', 'Got ${response.statusCode} from server for media ID ${media.mediaId}. Requesting upload again',
); );
// Message was deleted from the server. Requesting it again from the sender to upload it again... // Message was deleted from the server. Requesting it again from the sender to upload it again...
await requestMediaReupload(media.mediaId); await requestMediaReupload(media.mediaId);

View file

@ -3,7 +3,7 @@ description: "twonly, a privacy-friendly way to connect with friends through sec
publish_to: 'none' publish_to: 'none'
version: 0.2.26+135 version: 0.2.27+136
environment: environment:
sdk: ^3.11.0 sdk: ^3.11.0