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,
),
);
return ((select(messages)..where(
(t) =>
t.groupId.equals(groupId) &
// messages in groups will only be removed in case all members have received it...
// so ensuring that this message is not shown in the messages anymore
(t.openedAt.isBiggerThanValue(deletionTime) |
t.openedAt.isNull() |
t.mediaStored.equals(true)) &
(t.isDeletedFromSender.equals(true) |
(t.type.equals(MessageType.text.name).not() &
t.type.equals(MessageType.media.name).not()) |
(t.type.equals(MessageType.text.name) &
t.content.isNotNull()) |
(t.type.equals(MessageType.media.name) &
t.mediaId.isNotNull())),
))
..orderBy([(t) => OrderingTerm.asc(t.createdAt)]))
.watch();
final query = select(messages).join([
leftOuterJoin(
mediaFiles,
mediaFiles.mediaId.equalsExp(messages.mediaId),
),
])
..where(
messages.groupId.equals(groupId) &
(messages.openedAt.isBiggerThanValue(deletionTime) |
messages.openedAt.isNull() |
messages.mediaStored.equals(true)) &
(messages.isDeletedFromSender.equals(true) |
(messages.type.equals(MessageType.text.name).not() &
messages.type.equals(MessageType.media.name).not()) |
(messages.type.equals(MessageType.text.name) &
messages.content.isNotNull()) |
(messages.type.equals(MessageType.media.name) &
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) {

View file

@ -252,7 +252,7 @@ Future<void> downloadFileFast(
} else {
if (response.statusCode == 404 || response.statusCode == 403) {
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...
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'
version: 0.2.26+135
version: 0.2.27+136
environment:
sdk: ^3.11.0