From fd471fcf028eaef38a447f03a5a482251208117b Mon Sep 17 00:00:00 2001 From: fufesou Date: Thu, 27 Aug 2026 11:08:58 +0800 Subject: [PATCH] fix: show speed in desktop file transfer status (#15980) * fix: show speed in desktop file transfer status Signed-off-by: fufesou * fix: move file transfer speed beside progress bar Signed-off-by: fufesou * fix: move file transfer speed into progress bar Signed-off-by: fufesou * fix: refine file transfer speed display Signed-off-by: fufesou * fix: adapt file transfer progress text colors Signed-off-by: fufesou * fix: reduce file transfer speed text weight Signed-off-by: fufesou --------- Signed-off-by: fufesou --- .../lib/desktop/pages/file_manager_page.dart | 34 ++++++++++++++++++- .../lib/mobile/pages/file_manager_page.dart | 3 +- 2 files changed, 34 insertions(+), 3 deletions(-) diff --git a/flutter/lib/desktop/pages/file_manager_page.dart b/flutter/lib/desktop/pages/file_manager_page.dart index cf97351b3..e1130fdaa 100644 --- a/flutter/lib/desktop/pages/file_manager_page.dart +++ b/flutter/lib/desktop/pages/file_manager_page.dart @@ -278,7 +278,39 @@ class _FileManagerPageState extends State item.state != JobState.inProgress, child: LinearPercentIndicator( animateFromLastPercent: true, - center: Text(item.percentText), + center: SizedBox.expand( + child: ShaderMask( + blendMode: BlendMode.srcATop, + shaderCallback: (bounds) => + LinearGradient( + colors: [ + Colors.white, + Colors.transparent, + ], + stops: [item.percent, item.percent], + ).createShader(bounds), + child: FittedBox( + fit: BoxFit.scaleDown, + child: Text.rich( + TextSpan( + text: item.percentText, + children: [ + if (item.recvJobRes) + TextSpan( + text: + ' ${readableFileSize(item.speed)}/s', + style: TextStyle( + fontSize: 12, + fontWeight: FontWeight.w300, + color: MyTheme.darkGray, + ), + ), + ], + ), + ), + ), + ), + ), barRadius: Radius.circular(15), percent: item.percent, progressColor: MyTheme.accent, diff --git a/flutter/lib/mobile/pages/file_manager_page.dart b/flutter/lib/mobile/pages/file_manager_page.dart index 1e793bca7..982a4c805 100644 --- a/flutter/lib/mobile/pages/file_manager_page.dart +++ b/flutter/lib/mobile/pages/file_manager_page.dart @@ -366,8 +366,7 @@ class _FileManagerPageState extends State { return BottomSheetBody( leading: CircularProgressIndicator(), title: translate("Waiting"), - text: - "${translate("Speed")}: ${readableFileSize(activeJob.speed)}/s", + text: "${readableFileSize(activeJob.speed)}/s", onCanceled: () { model.jobController.cancelJob(activeJob.id); jobTable.clear();