mirror of
https://github.com/twonlyapp/twonly-app.git
synced 2026-07-18 01:14:07 +00:00
improve media download logging
This commit is contained in:
parent
cda7df36f3
commit
dfa6ac2cfe
5 changed files with 63 additions and 37 deletions
|
|
@ -32,15 +32,24 @@ class MessagesDao extends DatabaseAccessor<TwonlyDB> with _$MessagesDaoMixin {
|
|||
MessagesDao(super.db);
|
||||
|
||||
Stream<List<Message>> watchMessageNotOpened(String groupId) {
|
||||
return (select(messages)
|
||||
final query =
|
||||
select(messages).join([
|
||||
leftOuterJoin(
|
||||
mediaFiles,
|
||||
mediaFiles.mediaId.equalsExp(messages.mediaId),
|
||||
),
|
||||
])
|
||||
..where(
|
||||
(t) =>
|
||||
t.openedAt.isNull() &
|
||||
t.groupId.equals(groupId) &
|
||||
t.isDeletedFromSender.equals(false),
|
||||
messages.openedAt.isNull() &
|
||||
messages.groupId.equals(groupId) &
|
||||
messages.isDeletedFromSender.equals(false) &
|
||||
(messages.mediaId.isNull() |
|
||||
mediaFiles.downloadState
|
||||
.equals(DownloadState.reuploadRequested.name)
|
||||
.not()),
|
||||
)
|
||||
..orderBy([(t) => OrderingTerm.desc(t.createdAt)]))
|
||||
.watch();
|
||||
..orderBy([OrderingTerm.desc(messages.createdAt)]);
|
||||
return query.map((row) => row.readTable(messages)).watch();
|
||||
}
|
||||
|
||||
Stream<List<Message>> watchMediaNotOpened(String groupId) {
|
||||
|
|
@ -91,7 +100,8 @@ class MessagesDao extends DatabaseAccessor<TwonlyDB> with _$MessagesDaoMixin {
|
|||
milliseconds: group!.deleteMessagesAfterMilliseconds,
|
||||
),
|
||||
);
|
||||
final query = select(messages).join([
|
||||
final query =
|
||||
select(messages).join([
|
||||
leftOuterJoin(
|
||||
mediaFiles,
|
||||
mediaFiles.mediaId.equalsExp(messages.mediaId),
|
||||
|
|
|
|||
|
|
@ -148,6 +148,10 @@ Future<bool> handleMedia(
|
|||
return false;
|
||||
}
|
||||
|
||||
Log.info(
|
||||
'[$receiptId] Inserting media message: messageId=${media.senderMessageId}, mediaId=${mediaFile!.mediaId}',
|
||||
);
|
||||
|
||||
message = await twonlyDB.messagesDao.insertMessage(
|
||||
MessagesCompanion(
|
||||
messageId: Value(media.senderMessageId),
|
||||
|
|
|
|||
|
|
@ -272,6 +272,13 @@ Future<void> downloadFileFast(
|
|||
}
|
||||
|
||||
Future<void> requestMediaReupload(String mediaId) async {
|
||||
await twonlyDB.mediaFilesDao.updateMedia(
|
||||
mediaId,
|
||||
const MediaFilesCompanion(
|
||||
downloadState: Value(DownloadState.reuploadRequested),
|
||||
),
|
||||
);
|
||||
|
||||
final messages = await twonlyDB.messagesDao.getMessagesByMediaId(mediaId);
|
||||
|
||||
for (final message in messages) {
|
||||
|
|
@ -285,12 +292,6 @@ Future<void> requestMediaReupload(String mediaId) async {
|
|||
),
|
||||
),
|
||||
);
|
||||
await twonlyDB.mediaFilesDao.updateMedia(
|
||||
mediaId,
|
||||
const MediaFilesCompanion(
|
||||
downloadState: Value(DownloadState.reuploadRequested),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -359,12 +359,17 @@ class _MediaViewerViewState extends State<MediaViewerView> {
|
|||
if (!mounted) return;
|
||||
|
||||
if (!currentMediaLocal.tempPath.existsSync()) {
|
||||
Log.warn('Temp media file not found for media ID: ${currentMediaLocal.mediaFile.mediaId}');
|
||||
Log.warn(
|
||||
'Temp media file not found for media ID: ${currentMediaLocal.mediaFile.mediaId}',
|
||||
);
|
||||
await handleMediaError(currentMediaLocal.mediaFile);
|
||||
return advanceToNextMediaOrExit();
|
||||
}
|
||||
|
||||
// The server can now delete the encrypted bytes, as the users has sucessfully opened it.
|
||||
Log.info(
|
||||
'Calling downloadDone for media ID: ${currentMediaLocal.mediaFile.mediaId}',
|
||||
);
|
||||
unawaited(
|
||||
apiService.downloadDone(currentMediaLocal.mediaFile.downloadToken!),
|
||||
);
|
||||
|
|
@ -469,7 +474,11 @@ class _MediaViewerViewState extends State<MediaViewerView> {
|
|||
..play();
|
||||
})
|
||||
.catchError((Object err, StackTrace st) {
|
||||
Log.error('Video player initialization error', error: err, stackTrace: st);
|
||||
Log.error(
|
||||
'Video player initialization error',
|
||||
error: err,
|
||||
stackTrace: st,
|
||||
);
|
||||
return null;
|
||||
});
|
||||
}
|
||||
|
|
@ -563,7 +572,9 @@ class _MediaViewerViewState extends State<MediaViewerView> {
|
|||
currentMedia!.mediaFile.displayLimitInMilliseconds == null)
|
||||
MyIconButton(
|
||||
variant: MyIconButtonVariant.secondary,
|
||||
onPressed: (currentMedia == null || currentMessage == null) ? null : onPressedSaveToGallery,
|
||||
onPressed: (currentMedia == null || currentMessage == null)
|
||||
? null
|
||||
: onPressedSaveToGallery,
|
||||
icon: imageSaving
|
||||
? const SizedBox(
|
||||
width: 16,
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ description: "twonly, a privacy-friendly way to connect with friends through sec
|
|||
|
||||
publish_to: 'none'
|
||||
|
||||
version: 0.3.5+150
|
||||
version: 0.3.5+151
|
||||
|
||||
environment:
|
||||
sdk: ^3.11.0
|
||||
|
|
|
|||
Loading…
Reference in a new issue