feat: percent_indicator

This commit is contained in:
Simon Ding
2024-07-15 11:30:31 +08:00
parent b2c4b69d87
commit 7a19521ca6
4 changed files with 39 additions and 26 deletions

View File

@@ -1,5 +1,6 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:percent_indicator/circular_percent_indicator.dart';
import 'package:ui/providers/activity.dart'; import 'package:ui/providers/activity.dart';
import 'package:ui/widgets/progress_indicator.dart'; import 'package:ui/widgets/progress_indicator.dart';
@@ -34,7 +35,7 @@ class ActivityPage extends ConsumerWidget {
return const MyProgressIndicator( return const MyProgressIndicator(
size: 20, size: 20,
); );
}else if (activity.status == "fail") { } else if (activity.status == "fail") {
return const Icon( return const Icon(
Icons.close, Icons.close,
color: Colors.red, color: Colors.red,
@@ -46,10 +47,15 @@ class ActivityPage extends ConsumerWidget {
); );
} }
double p = activity.progress == null ? 0:activity.progress!.toDouble() / 100; double p = activity.progress == null
return MyProgressIndicator( ? 0
value: p, : activity.progress!.toDouble() / 100;
size: 20, return CircularPercentIndicator(
radius: 15.0,
lineWidth: 5.0,
percent: p,
center: Text("${p * 100}"),
progressColor: Colors.green,
); );
}()), }()),
DataCell(IconButton( DataCell(IconButton(

View File

@@ -36,17 +36,16 @@ class ActivityData extends AutoDisposeAsyncNotifier<List<Activity>> {
} }
class Activity { class Activity {
Activity({ Activity(
required this.id, {required this.id,
required this.seriesId, required this.seriesId,
required this.episodeId, required this.episodeId,
required this.sourceTitle, required this.sourceTitle,
required this.date, required this.date,
required this.targetDir, required this.targetDir,
required this.status, required this.status,
required this.saved, required this.saved,
required this.progress required this.progress});
});
final int? id; final int? id;
final int? seriesId; final int? seriesId;
@@ -60,15 +59,14 @@ class Activity {
factory Activity.fromJson(Map<String, dynamic> json) { factory Activity.fromJson(Map<String, dynamic> json) {
return Activity( return Activity(
id: json["id"], id: json["id"],
seriesId: json["series_id"], seriesId: json["series_id"],
episodeId: json["episode_id"], episodeId: json["episode_id"],
sourceTitle: json["source_title"], sourceTitle: json["source_title"],
date: DateTime.tryParse(json["date"] ?? ""), date: DateTime.tryParse(json["date"] ?? ""),
targetDir: json["target_dir"], targetDir: json["target_dir"],
status: json["status"], status: json["status"],
saved: json["saved"], saved: json["saved"],
progress: json["progress"] progress: json["progress"]);
);
} }
} }

View File

@@ -312,6 +312,14 @@ packages:
url: "https://pub.flutter-io.cn" url: "https://pub.flutter-io.cn"
source: hosted source: hosted
version: "2.3.0" version: "2.3.0"
percent_indicator:
dependency: "direct main"
description:
name: percent_indicator
sha256: c37099ad833a883c9d71782321cb65c3a848c21b6939b6185f0ff6640d05814c
url: "https://pub.flutter-io.cn"
source: hosted
version: "4.2.3"
phone_numbers_parser: phone_numbers_parser:
dependency: transitive dependency: transitive
description: description:

View File

@@ -41,6 +41,7 @@ dependencies:
quiver: ^3.2.1 quiver: ^3.2.1
flutter_login: ^5.0.0 flutter_login: ^5.0.0
shared_preferences: ^2.2.3 shared_preferences: ^2.2.3
percent_indicator: ^4.2.3
dev_dependencies: dev_dependencies:
flutter_test: flutter_test: