@@ -293,6 +293,7 @@ impl SendQueue {
293
293
294
294
/// Metadata about a thumbnail needed when pushing media uploads to the send
295
295
/// queue.
296
+ #[ derive( Clone , Debug ) ]
296
297
struct QueueThumbnailInfo {
297
298
/// Metadata about the thumbnail needed when finishing a media upload.
298
299
finish_upload_thumbnail_info : FinishUploadThumbnailInfo ,
@@ -607,7 +608,7 @@ impl RoomSendQueue {
607
608
match & queued_request. kind {
608
609
QueuedRequestKind :: MediaUpload { accumulated, .. } => accumulated. len( ) as u64 ,
609
610
_ => default_index,
610
- } ;
611
+ }
611
612
} else {
612
613
default_index
613
614
}
@@ -1395,8 +1396,13 @@ impl QueueStorage {
1395
1396
return Ok ( ( ) ) ;
1396
1397
} ;
1397
1398
1398
- let GalleryItemQueueInfo { content_type, upload_file_txn, file_media_request, thumbnail } =
1399
- first;
1399
+ let GalleryItemQueueInfo {
1400
+ content_type,
1401
+ upload_file_txn,
1402
+ file_media_request,
1403
+ file_size,
1404
+ thumbnail,
1405
+ } = first;
1400
1406
1401
1407
let thumbnail_info = self
1402
1408
. push_thumbnail_and_media_uploads (
@@ -1406,6 +1412,7 @@ impl QueueStorage {
1406
1412
created_at,
1407
1413
upload_file_txn. clone ( ) ,
1408
1414
file_media_request. clone ( ) ,
1415
+ * file_size,
1409
1416
thumbnail. clone ( ) ,
1410
1417
)
1411
1418
. await ?;
@@ -1420,38 +1427,45 @@ impl QueueStorage {
1420
1427
content_type,
1421
1428
upload_file_txn,
1422
1429
file_media_request,
1430
+ file_size,
1423
1431
thumbnail,
1424
1432
} = item_queue_info;
1425
1433
1426
- let thumbnail_info =
1427
- if let Some ( ( thumbnail_info, thumbnail_media_request, thumbnail_content_type) ) =
1428
- thumbnail
1429
- {
1430
- let upload_thumbnail_txn = thumbnail_info. txn . clone ( ) ;
1434
+ let thumbnail_info = if let Some ( QueueThumbnailInfo {
1435
+ finish_upload_thumbnail_info : thumbnail_info,
1436
+ media_request_parameters : thumbnail_media_request,
1437
+ content_type : thumbnail_content_type,
1438
+ file_size : thumbnail_file_size,
1439
+ } ) = thumbnail
1440
+ {
1441
+ let upload_thumbnail_txn = thumbnail_info. txn . clone ( ) ;
1431
1442
1432
- // Save the thumbnail upload request as a dependent request of the last file
1433
- // upload.
1434
- store
1435
- . save_dependent_queued_request (
1436
- & self . room_id ,
1437
- & last_upload_file_txn,
1438
- upload_thumbnail_txn. clone ( ) . into ( ) ,
1439
- created_at,
1440
- DependentQueuedRequestKind :: UploadFileOrThumbnail {
1441
- content_type : thumbnail_content_type. to_string ( ) ,
1442
- cache_key : thumbnail_media_request. clone ( ) ,
1443
- related_to : send_event_txn. clone ( ) ,
1444
- parent_is_thumbnail_upload : false ,
1445
- } ,
1446
- )
1447
- . await ?;
1443
+ // Save the thumbnail upload request as a dependent request of the last file
1444
+ // upload.
1445
+ store
1446
+ . save_dependent_queued_request (
1447
+ & self . room_id ,
1448
+ & last_upload_file_txn,
1449
+ upload_thumbnail_txn. clone ( ) . into ( ) ,
1450
+ created_at,
1451
+ DependentQueuedRequestKind :: UploadFileOrThumbnail {
1452
+ content_type : thumbnail_content_type. to_string ( ) ,
1453
+ cache_key : thumbnail_media_request. clone ( ) ,
1454
+ related_to : send_event_txn. clone ( ) ,
1455
+ parent_is_thumbnail_upload : false ,
1456
+ file_size : * thumbnail_file_size,
1457
+ thumbnail_file_size : None ,
1458
+ media_file_size : Some ( * file_size) ,
1459
+ } ,
1460
+ )
1461
+ . await ?;
1448
1462
1449
- last_upload_file_txn = upload_thumbnail_txn;
1463
+ last_upload_file_txn = upload_thumbnail_txn;
1450
1464
1451
- Some ( thumbnail_info)
1452
- } else {
1453
- None
1454
- } ;
1465
+ Some ( thumbnail_info)
1466
+ } else {
1467
+ None
1468
+ } ;
1455
1469
1456
1470
// Save the file upload as a dependent request of the previous upload.
1457
1471
store
@@ -1465,6 +1479,9 @@ impl QueueStorage {
1465
1479
cache_key : file_media_request. clone ( ) ,
1466
1480
related_to : send_event_txn. clone ( ) ,
1467
1481
parent_is_thumbnail_upload : thumbnail. is_some ( ) ,
1482
+ file_size : * file_size,
1483
+ thumbnail_file_size : thumbnail. as_ref ( ) . map ( |t| t. file_size ) ,
1484
+ media_file_size : None ,
1468
1485
} ,
1469
1486
)
1470
1487
. await ?;
@@ -2125,7 +2142,8 @@ struct GalleryItemQueueInfo {
2125
2142
content_type : Mime ,
2126
2143
upload_file_txn : OwnedTransactionId ,
2127
2144
file_media_request : MediaRequestParameters ,
2128
- thumbnail : Option < ( FinishUploadThumbnailInfo , MediaRequestParameters , Mime ) > ,
2145
+ file_size : usize ,
2146
+ thumbnail : Option < QueueThumbnailInfo > ,
2129
2147
}
2130
2148
2131
2149
/// The content of a local echo.
0 commit comments