瀏覽代碼

Show freed up space result

vishnukvmd 3 年之前
父節點
當前提交
f22836d9f6
共有 2 個文件被更改,包括 28 次插入18 次删除
  1. 15 10
      lib/ui/deduplicate_page.dart
  2. 13 8
      lib/ui/settings/backup_section_widget.dart

+ 15 - 10
lib/ui/deduplicate_page.dart

@@ -58,7 +58,7 @@ class _DeduplicatePageState extends State<DeduplicatePage> {
     for (final duplicate in widget.duplicates) {
       for (int index = 0; index < duplicate.files.length; index++) {
         if (index != 0) {
-          _selectedFiles.add(duplicate.files[index]);
+          // _selectedFiles.add(duplicate.files[index]);
         }
         _fileSizeMap[duplicate.files[index].uploadedFileID] = duplicate.size;
       }
@@ -235,13 +235,6 @@ class _DeduplicatePageState extends State<DeduplicatePage> {
     for (final file in _selectedFiles) {
       size += _fileSizeMap[file.uploadedFileID];
     }
-    final onPressed = _selectedFiles.isEmpty
-        ? null
-        : () async {
-            await deleteFilesFromRemoteOnly(context, _selectedFiles.toList());
-            Bus.instance.fire(UserDetailsChangedEvent());
-            Navigator.of(context).pop(_selectedFiles.length);
-          };
     return SizedBox(
       width: double.infinity,
       child: TextButton(
@@ -256,7 +249,7 @@ class _DeduplicatePageState extends State<DeduplicatePage> {
               style: TextStyle(
                 fontWeight: FontWeight.bold,
                 fontSize: 14,
-                color: onPressed == null ? Colors.grey : Colors.white,
+                color: Colors.white,
               ),
               textAlign: TextAlign.center,
             ),
@@ -271,7 +264,12 @@ class _DeduplicatePageState extends State<DeduplicatePage> {
             Padding(padding: EdgeInsets.all(2)),
           ],
         ),
-        onPressed: onPressed,
+        onPressed: () async {
+          await deleteFilesFromRemoteOnly(context, _selectedFiles.toList());
+          Bus.instance.fire(UserDetailsChangedEvent());
+          Navigator.of(context)
+              .pop(DeduplicationResult(_selectedFiles.length, size));
+        },
       ),
     );
   }
@@ -367,3 +365,10 @@ enum SortKey {
   count,
   time,
 }
+
+class DeduplicationResult {
+  final int count;
+  final int size;
+
+  DeduplicationResult(this.count, this.size);
+}

+ 13 - 8
lib/ui/settings/backup_section_widget.dart

@@ -139,10 +139,10 @@ class BackupSectionWidgetState extends State<BackupSectionWidget> {
               showErrorDialog(context, "✨ no duplicates",
                   "you've no duplicate files that can be cleared");
             } else {
-              int cleanedItemCount =
+              DeduplicationResult result =
                   await routeToPage(context, DeduplicatePage(duplicates));
-              if (cleanedItemCount != null) {
-                _showDuplicateFilesDeletedDialog(cleanedItemCount);
+              if (result != null) {
+                _showDuplicateFilesDeletedDialog(result);
               }
             }
           },
@@ -206,11 +206,17 @@ class BackupSectionWidgetState extends State<BackupSectionWidget> {
     );
   }
 
-  void _showDuplicateFilesDeletedDialog(int itemCount) {
+  void _showDuplicateFilesDeletedDialog(DeduplicationResult result) {
+    String countText = result.count.toString() +
+        " duplicate file" +
+        (result.count == 1 ? "" : "s");
     AlertDialog alert = AlertDialog(
       title: Text("✨ success"),
-      content: Text(
-          "you have cleaned up " + itemCount.toString() + " duplicate files!"),
+      content: Text("you have cleaned up " +
+          countText +
+          ", saving " +
+          formatBytes(result.size) +
+          "!"),
       actions: [
         TextButton(
           child: Text(
@@ -237,8 +243,7 @@ class BackupSectionWidgetState extends State<BackupSectionWidget> {
             ),
           ),
           onPressed: () {
-            showToast(
-                "also empty your \"Trash\" from to claim the freed space");
+            showToast("also empty your \"Trash\" to claim the freed up space");
             Navigator.of(context, rootNavigator: true).pop('dialog');
           },
         ),