mirror of
https://mirror.ghproxy.com/https://github.com/StarCitizenToolBox/app.git
synced 2024-12-23 10:03:43 +08:00
增加模块状态指示器
This commit is contained in:
parent
ca2f584f20
commit
a6a086fea3
@ -2,6 +2,7 @@ import 'package:file_sizes/file_sizes.dart';
|
|||||||
import 'package:intl/intl.dart';
|
import 'package:intl/intl.dart';
|
||||||
import 'package:starcitizen_doctor/base/ui.dart';
|
import 'package:starcitizen_doctor/base/ui.dart';
|
||||||
import 'package:starcitizen_doctor/base/ui_model.dart';
|
import 'package:starcitizen_doctor/base/ui_model.dart';
|
||||||
|
import 'package:starcitizen_doctor/common/io/aria2c.dart';
|
||||||
|
|
||||||
import 'downloads_ui_model.dart';
|
import 'downloads_ui_model.dart';
|
||||||
|
|
||||||
@ -12,19 +13,22 @@ class DownloadsUI extends BaseUI<DownloadsUIModel> {
|
|||||||
Widget? buildBody(BuildContext context, DownloadsUIModel model) {
|
Widget? buildBody(BuildContext context, DownloadsUIModel model) {
|
||||||
return makeDefaultPage(context, model,
|
return makeDefaultPage(context, model,
|
||||||
content: Column(
|
content: Column(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
children: [
|
children: [
|
||||||
const SizedBox(height: 12),
|
const SizedBox(height: 12),
|
||||||
Row(
|
Row(
|
||||||
children: [
|
children: [
|
||||||
const Spacer(),
|
const Spacer(),
|
||||||
const SizedBox(width: 24),
|
const SizedBox(width: 24),
|
||||||
|
const SizedBox(width: 12),
|
||||||
for (final item in <MapEntry<String, IconData>, String>{
|
for (final item in <MapEntry<String, IconData>, String>{
|
||||||
const MapEntry("settings", FluentIcons.settings): "限速设置",
|
const MapEntry("settings", FluentIcons.settings): "限速设置",
|
||||||
if (model.tasks.isNotEmpty)
|
if (model.tasks.isNotEmpty)
|
||||||
const MapEntry("pause_all", FluentIcons.pause): "暂停全部"
|
const MapEntry("pause_all", FluentIcons.pause): "全部暂停",
|
||||||
else
|
if (model.waitingTasks.isNotEmpty)
|
||||||
const MapEntry("resume_all", FluentIcons.download): "恢复全部",
|
const MapEntry("resume_all", FluentIcons.download): "恢复全部",
|
||||||
const MapEntry("cancel_all", FluentIcons.cancel): "取消全部",
|
if (model.tasks.isNotEmpty || model.waitingTasks.isNotEmpty)
|
||||||
|
const MapEntry("cancel_all", FluentIcons.cancel): "全部取消",
|
||||||
}.entries)
|
}.entries)
|
||||||
Padding(
|
Padding(
|
||||||
padding: const EdgeInsets.only(left: 6, right: 6),
|
padding: const EdgeInsets.only(left: 6, right: 6),
|
||||||
@ -79,11 +83,6 @@ class DownloadsUI extends BaseUI<DownloadsUIModel> {
|
|||||||
fontSize: 24,
|
fontSize: 24,
|
||||||
fontWeight: FontWeight.bold),
|
fontWeight: FontWeight.bold),
|
||||||
),
|
),
|
||||||
if (type == "active")
|
|
||||||
Text(
|
|
||||||
"下载: ${FileSize.getSize(model.globalStat?.downloadSpeed ?? 0)}/s 上传:${FileSize.getSize(model.globalStat?.uploadSpeed ?? 0)}/s",
|
|
||||||
style: const TextStyle(fontSize: 13),
|
|
||||||
),
|
|
||||||
],
|
],
|
||||||
)),
|
)),
|
||||||
],
|
],
|
||||||
@ -213,7 +212,32 @@ class DownloadsUI extends BaseUI<DownloadsUIModel> {
|
|||||||
);
|
);
|
||||||
},
|
},
|
||||||
itemCount: model.getTasksLen(),
|
itemCount: model.getTasksLen(),
|
||||||
))
|
)),
|
||||||
|
Container(
|
||||||
|
color: FluentTheme.of(context).cardColor.withOpacity(.06),
|
||||||
|
child: Padding(
|
||||||
|
padding: const EdgeInsets.only(left: 12, bottom: 3, top: 3),
|
||||||
|
child: Row(
|
||||||
|
children: [
|
||||||
|
Container(
|
||||||
|
width: 8,
|
||||||
|
height: 8,
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
color: Aria2cManager.isAvailable
|
||||||
|
? Colors.green
|
||||||
|
: Colors.white,
|
||||||
|
borderRadius: BorderRadius.circular(1000),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
const SizedBox(width: 12),
|
||||||
|
Text(
|
||||||
|
"下载: ${FileSize.getSize(model.globalStat?.downloadSpeed ?? 0)}/s 上传:${FileSize.getSize(model.globalStat?.uploadSpeed ?? 0)}/s",
|
||||||
|
style: const TextStyle(fontSize: 12),
|
||||||
|
)
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
],
|
],
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
@ -39,11 +39,12 @@ class DownloadsUIModel extends BaseUIModel {
|
|||||||
case "pause_all":
|
case "pause_all":
|
||||||
if (!Aria2cManager.isAvailable) return;
|
if (!Aria2cManager.isAvailable) return;
|
||||||
await Aria2cManager.getClient().pauseAll();
|
await Aria2cManager.getClient().pauseAll();
|
||||||
|
await Aria2cManager.getClient().saveSession();
|
||||||
return;
|
return;
|
||||||
case "resume_all":
|
case "resume_all":
|
||||||
if (!Aria2cManager.isAvailable) return;
|
if (!Aria2cManager.isAvailable) return;
|
||||||
|
|
||||||
await Aria2cManager.getClient().unpauseAll();
|
await Aria2cManager.getClient().unpauseAll();
|
||||||
|
await Aria2cManager.getClient().saveSession();
|
||||||
return;
|
return;
|
||||||
case "cancel_all":
|
case "cancel_all":
|
||||||
final userOK = await showConfirmDialogs(
|
final userOK = await showConfirmDialogs(
|
||||||
@ -54,6 +55,7 @@ class DownloadsUIModel extends BaseUIModel {
|
|||||||
for (var value in [...tasks, ...waitingTasks]) {
|
for (var value in [...tasks, ...waitingTasks]) {
|
||||||
await Aria2cManager.getClient().remove(value.gid!);
|
await Aria2cManager.getClient().remove(value.gid!);
|
||||||
}
|
}
|
||||||
|
await Aria2cManager.getClient().saveSession();
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
dPrint("DownloadsUIModel cancel_all Error: $e");
|
dPrint("DownloadsUIModel cancel_all Error: $e");
|
||||||
}
|
}
|
||||||
@ -241,6 +243,7 @@ class DownloadsUIModel extends BaseUIModel {
|
|||||||
if (r != null) {
|
if (r != null) {
|
||||||
await box.put('downloader_up_limit', upCtrl.text.trim());
|
await box.put('downloader_up_limit', upCtrl.text.trim());
|
||||||
await box.put('downloader_down_limit', downCtrl.text.trim());
|
await box.put('downloader_down_limit', downCtrl.text.trim());
|
||||||
|
notifyListeners();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user