diff --git a/ui/flutter/lib/api/model/downloader_config.dart b/ui/flutter/lib/api/model/downloader_config.dart index 9a26feb6..fd4db7d3 100644 --- a/ui/flutter/lib/api/model/downloader_config.dart +++ b/ui/flutter/lib/api/model/downloader_config.dart @@ -222,7 +222,7 @@ class ExtraConfig { this.themeMode = '', this.themeColor = 'green', this.locale = '', - this.lastDeleteTaskKeep = false, + this.lastDeleteTaskKeep = true, this.defaultDirectDownload = false, this.defaultBtClient = true, this.notifyWhenNewVersion = true, diff --git a/ui/flutter/lib/api/model/downloader_config.g.dart b/ui/flutter/lib/api/model/downloader_config.g.dart index 47014fbd..9aa8fc20 100644 --- a/ui/flutter/lib/api/model/downloader_config.g.dart +++ b/ui/flutter/lib/api/model/downloader_config.g.dart @@ -186,7 +186,7 @@ ExtraConfig _$ExtraConfigFromJson(Map json) => ExtraConfig( themeMode: json['themeMode'] as String? ?? '', themeColor: json['themeColor'] as String? ?? 'green', locale: json['locale'] as String? ?? '', - lastDeleteTaskKeep: json['lastDeleteTaskKeep'] as bool? ?? false, + lastDeleteTaskKeep: json['lastDeleteTaskKeep'] as bool? ?? true, defaultDirectDownload: json['defaultDirectDownload'] as bool? ?? false, defaultBtClient: json['defaultBtClient'] as bool? ?? true, notifyWhenNewVersion: json['notifyWhenNewVersion'] as bool? ?? true, diff --git a/ui/flutter/lib/features/home/presentation/pages/home_page.dart b/ui/flutter/lib/features/home/presentation/pages/home_page.dart index 8094180b..33716cb7 100644 --- a/ui/flutter/lib/features/home/presentation/pages/home_page.dart +++ b/ui/flutter/lib/features/home/presentation/pages/home_page.dart @@ -541,7 +541,7 @@ class _HomePageState extends ConsumerState { fileCount: !hasGroups ? null : selected.fold(0, (total, task) => total + (task.files.isEmpty ? 1 : task.files.length)), - keepFiles: config?.extra.lastDeleteTaskKeep ?? false, + keepFiles: config?.extra.lastDeleteTaskKeep ?? true, ); if (keepFiles == null || !mounted) return; diff --git a/ui/flutter/lib/features/tasks/presentation/widgets/task_delete_dialog.dart b/ui/flutter/lib/features/tasks/presentation/widgets/task_delete_dialog.dart index 13ac593f..eb1736ef 100644 --- a/ui/flutter/lib/features/tasks/presentation/widgets/task_delete_dialog.dart +++ b/ui/flutter/lib/features/tasks/presentation/widgets/task_delete_dialog.dart @@ -12,7 +12,7 @@ Future showTaskDeleteDialog( int? memberCount, int? fileCount, }) async { - var currentKeepFiles = keepFiles; + var deleteFiles = !keepFiles; final dialog = const DialogOverlayHandler().show( context: context, alignment: Alignment.center, @@ -47,16 +47,16 @@ Future showTaskDeleteDialog( const SizedBox(height: AppDesignTokens.space16), ], AnimatedContainer( - key: const ValueKey('task-delete-keep-files-option'), + key: const ValueKey('task-delete-files-option'), duration: const Duration(milliseconds: 160), padding: const EdgeInsets.symmetric( horizontal: AppDesignTokens.space16, vertical: AppDesignTokens.space12, ), decoration: BoxDecoration( - color: currentKeepFiles ? palette.brandSoft : palette.surfaceSoft, + color: deleteFiles ? palette.error.withValues(alpha: 0.08) : palette.surfaceSoft, border: Border.all( - color: currentKeepFiles ? palette.brand.withValues(alpha: 0.45) : palette.border, + color: deleteFiles ? palette.error.withValues(alpha: 0.35) : palette.border, ), borderRadius: BorderRadius.circular(8), ), @@ -70,9 +70,9 @@ Future showTaskDeleteDialog( ), const SizedBox(width: AppDesignTokens.space16), Switch( - key: const ValueKey('task-delete-keep-files-switch'), - value: currentKeepFiles, - onChanged: (value) => setDialogState(() => currentKeepFiles = value), + key: const ValueKey('task-delete-files-switch'), + value: deleteFiles, + onChanged: (value) => setDialogState(() => deleteFiles = value), ), ], ), @@ -83,7 +83,7 @@ Future showTaskDeleteDialog( actions: [ SecondaryButton(onPressed: () => closeOverlay(dialogContext), child: Text(dialogContext.l10n.cancel)), DestructiveButton( - onPressed: () => closeOverlay(dialogContext, currentKeepFiles), + onPressed: () => closeOverlay(dialogContext, !deleteFiles), child: Text(dialogContext.l10n.delete), ), ], diff --git a/ui/flutter/lib/l10n/app_ar.arb b/ui/flutter/lib/l10n/app_ar.arb index 54faaeb4..6123f256 100644 --- a/ui/flutter/lib/l10n/app_ar.arb +++ b/ui/flutter/lib/l10n/app_ar.arb @@ -98,7 +98,7 @@ "startAll": "بدء الكل", "pauseAll": "إيقاف الكل مؤقتاً", "deleteTask": "حذف @count مهمة", - "deleteTaskTip": "الاحتفاظ بالملفات التي تم تحميلها", + "deleteTaskTip": "حذف الملفات التي تم تنزيلها", "delete": "حذف", "add": "إضافة", "edit": "تعديل", diff --git a/ui/flutter/lib/l10n/app_az.arb b/ui/flutter/lib/l10n/app_az.arb index 7e966e87..577b1937 100644 --- a/ui/flutter/lib/l10n/app_az.arb +++ b/ui/flutter/lib/l10n/app_az.arb @@ -105,7 +105,7 @@ "startAll": "Hamısını Başlat", "pauseAll": "Hamısına Fasilə Ver", "deleteTask": "@count tapşırığı sil", - "deleteTaskTip": "Endirilmiş faylları saxla", + "deleteTaskTip": "Endirilmiş faylları sil", "delete": "Sil", "add": "Əlavə et", "edit": "Redaktə et", diff --git a/ui/flutter/lib/l10n/app_ca.arb b/ui/flutter/lib/l10n/app_ca.arb index 342c5b9b..4e8fd62e 100644 --- a/ui/flutter/lib/l10n/app_ca.arb +++ b/ui/flutter/lib/l10n/app_ca.arb @@ -98,7 +98,7 @@ "startAll": "Inicia-ho tot", "pauseAll": "Pausa-ho tot", "deleteTask": "Suprimeix @count tasques", - "deleteTaskTip": "Mantén els fitxers baixats", + "deleteTaskTip": "Suprimeix els fitxers baixats", "delete": "Suprimeix", "add": "Afegeix", "edit": "Edita", diff --git a/ui/flutter/lib/l10n/app_de.arb b/ui/flutter/lib/l10n/app_de.arb index aa0914a6..8e46d196 100644 --- a/ui/flutter/lib/l10n/app_de.arb +++ b/ui/flutter/lib/l10n/app_de.arb @@ -98,7 +98,7 @@ "startAll": "Alles starten", "pauseAll": "Alle pausieren", "deleteTask": "@count Aufgaben löschen", - "deleteTaskTip": "Heruntergeladene Dateien behalten", + "deleteTaskTip": "Heruntergeladene Dateien löschen", "delete": "Löschen", "add": "Hinzugefügt", "edit": "Bearbeiten", diff --git a/ui/flutter/lib/l10n/app_en.arb b/ui/flutter/lib/l10n/app_en.arb index 88072e1c..3816a3fc 100644 --- a/ui/flutter/lib/l10n/app_en.arb +++ b/ui/flutter/lib/l10n/app_en.arb @@ -105,7 +105,7 @@ "startAll": "Start All", "pauseAll": "Pause All", "deleteTask": "Delete @count tasks", - "deleteTaskTip": "Keep downloaded files", + "deleteTaskTip": "Delete downloaded files", "delete": "Delete", "add": "Add", "edit": "Edit", diff --git a/ui/flutter/lib/l10n/app_es.arb b/ui/flutter/lib/l10n/app_es.arb index d70bf3f0..d2daef8c 100644 --- a/ui/flutter/lib/l10n/app_es.arb +++ b/ui/flutter/lib/l10n/app_es.arb @@ -98,7 +98,7 @@ "startAll": "Iniciar Todo", "pauseAll": "Pausar Todo", "deleteTask": "Eliminar @count tareas", - "deleteTaskTip": "Mantener archivos descargados", + "deleteTaskTip": "Eliminar archivos descargados", "delete": "Eliminar", "add": "Añadir", "edit": "Editar", diff --git a/ui/flutter/lib/l10n/app_fa.arb b/ui/flutter/lib/l10n/app_fa.arb index 081664fc..97478f13 100644 --- a/ui/flutter/lib/l10n/app_fa.arb +++ b/ui/flutter/lib/l10n/app_fa.arb @@ -98,7 +98,7 @@ "startAll": "شروع همه", "pauseAll": "توقف همه", "deleteTask": "حذف @count کار", - "deleteTaskTip": "فایل های دانلود شده را نگه دارد", + "deleteTaskTip": "حذف فایل‌های دانلودشده", "delete": "پاک کردن", "add": "افزودن", "edit": "ویرایش", diff --git a/ui/flutter/lib/l10n/app_fr.arb b/ui/flutter/lib/l10n/app_fr.arb index 6350d033..23566819 100644 --- a/ui/flutter/lib/l10n/app_fr.arb +++ b/ui/flutter/lib/l10n/app_fr.arb @@ -98,7 +98,7 @@ "startAll": "Tout démarrer", "pauseAll": "Tout suspendre", "deleteTask": "Supprimer @count tâches", - "deleteTaskTip": "Conserver les fichiers téléchargés", + "deleteTaskTip": "Supprimer les fichiers téléchargés", "delete": "Supprimer", "add": "Ajouter", "edit": "Modifier", diff --git a/ui/flutter/lib/l10n/app_hu.arb b/ui/flutter/lib/l10n/app_hu.arb index 79bab34a..d2e3cbc2 100644 --- a/ui/flutter/lib/l10n/app_hu.arb +++ b/ui/flutter/lib/l10n/app_hu.arb @@ -98,7 +98,7 @@ "startAll": "Összes indítása", "pauseAll": "Összes szüneteltetése", "deleteTask": "@count feladat törlése", - "deleteTaskTip": "Letöltött fájlok megőrzése", + "deleteTaskTip": "Letöltött fájlok törlése", "delete": "Törlés", "add": "Hozzáad", "edit": "Szerk", diff --git a/ui/flutter/lib/l10n/app_id.arb b/ui/flutter/lib/l10n/app_id.arb index ef55b4b4..a2383e10 100644 --- a/ui/flutter/lib/l10n/app_id.arb +++ b/ui/flutter/lib/l10n/app_id.arb @@ -98,7 +98,7 @@ "startAll": "Mulai Semua", "pauseAll": "Jeda Semua", "deleteTask": "Hapus @count Tugas", - "deleteTaskTip": "Simpan file yang terunduh", + "deleteTaskTip": "Hapus berkas yang diunduh", "delete": "Hapus", "add": "Tambah", "edit": "Sunting", diff --git a/ui/flutter/lib/l10n/app_it.arb b/ui/flutter/lib/l10n/app_it.arb index f7887f2b..1a8df506 100644 --- a/ui/flutter/lib/l10n/app_it.arb +++ b/ui/flutter/lib/l10n/app_it.arb @@ -98,7 +98,7 @@ "startAll": "Avvia tutti", "pauseAll": "Mtti in pausa tutti", "deleteTask": "Elimina @count attività", - "deleteTaskTip": "Conserva i file scaricati", + "deleteTaskTip": "Elimina i file scaricati", "delete": "Elimina", "add": "Aggiungi", "edit": "Modifica", diff --git a/ui/flutter/lib/l10n/app_ja.arb b/ui/flutter/lib/l10n/app_ja.arb index f0f12448..2ffb0d45 100644 --- a/ui/flutter/lib/l10n/app_ja.arb +++ b/ui/flutter/lib/l10n/app_ja.arb @@ -98,7 +98,7 @@ "startAll": "すべてを開始", "pauseAll": "すべてを一時停止", "deleteTask": "@count タスクを削除", - "deleteTaskTip": "ダウンロードしたファイルを保持", + "deleteTaskTip": "ダウンロードしたファイルを削除", "delete": "削除", "add": "追加", "edit": "編集", diff --git a/ui/flutter/lib/l10n/app_ko.arb b/ui/flutter/lib/l10n/app_ko.arb index 1631f70c..1973cbd0 100644 --- a/ui/flutter/lib/l10n/app_ko.arb +++ b/ui/flutter/lib/l10n/app_ko.arb @@ -98,7 +98,7 @@ "startAll": "전체 시작", "pauseAll": "전체 일시정지", "deleteTask": "작업 @count개 삭제", - "deleteTaskTip": "다운로드된 파일은 유지", + "deleteTaskTip": "다운로드한 파일 삭제", "delete": "삭제", "add": "추가", "edit": "편집", diff --git a/ui/flutter/lib/l10n/app_pl.arb b/ui/flutter/lib/l10n/app_pl.arb index 6303c48e..d953dbaa 100644 --- a/ui/flutter/lib/l10n/app_pl.arb +++ b/ui/flutter/lib/l10n/app_pl.arb @@ -98,7 +98,7 @@ "startAll": "Zacznij wszystkie", "pauseAll": "Zatrzymaj wszystkie", "deleteTask": "Usuń @count zadania", - "deleteTaskTip": "Zachowaj pobrane pliki", + "deleteTaskTip": "Usuń pobrane pliki", "delete": "Usuń", "add": "Dodaj", "edit": "Edycja", diff --git a/ui/flutter/lib/l10n/app_pt.arb b/ui/flutter/lib/l10n/app_pt.arb index cae88e04..464e7960 100644 --- a/ui/flutter/lib/l10n/app_pt.arb +++ b/ui/flutter/lib/l10n/app_pt.arb @@ -98,7 +98,7 @@ "startAll": "Iniciar Tudo", "pauseAll": "Pausar Tudo", "deleteTask": "Excluir @count tarefas", - "deleteTaskTip": "Manter arquivos baixados", + "deleteTaskTip": "Excluir arquivos baixados", "delete": "Excluir", "add": "Adicionar", "edit": "Editar", diff --git a/ui/flutter/lib/l10n/app_ru.arb b/ui/flutter/lib/l10n/app_ru.arb index 64c2c82c..fd9abe4a 100644 --- a/ui/flutter/lib/l10n/app_ru.arb +++ b/ui/flutter/lib/l10n/app_ru.arb @@ -98,7 +98,7 @@ "startAll": "Запустить все", "pauseAll": "Приостановить все", "deleteTask": "Удалить @count задач", - "deleteTaskTip": "Сохранить загруженные файлы", + "deleteTaskTip": "Удалить загруженные файлы", "delete": "Удалить", "add": "Добавить", "edit": "Редактировать", diff --git a/ui/flutter/lib/l10n/app_sk.arb b/ui/flutter/lib/l10n/app_sk.arb index c51e89d1..afdf6695 100644 --- a/ui/flutter/lib/l10n/app_sk.arb +++ b/ui/flutter/lib/l10n/app_sk.arb @@ -105,7 +105,7 @@ "startAll": "Spustiť všetko", "pauseAll": "Pozastaviť všetko", "deleteTask": "Odstrániť @count úloh", - "deleteTaskTip": "Zachovať stiahnuté súbory", + "deleteTaskTip": "Odstrániť stiahnuté súbory", "delete": "Odstrániť", "add": "Pridať", "edit": "Upraviť", diff --git a/ui/flutter/lib/l10n/app_ta.arb b/ui/flutter/lib/l10n/app_ta.arb index 2fc4e197..44acf778 100644 --- a/ui/flutter/lib/l10n/app_ta.arb +++ b/ui/flutter/lib/l10n/app_ta.arb @@ -98,7 +98,7 @@ "startAll": "அனைத்தையும் தொடங்கு", "pauseAll": "அனைத்தையும் நிறுத்திவை", "deleteTask": "பணிகளை நீக்கு @count", - "deleteTaskTip": "பதிவிறக்கம் செய்யப்பட்ட கோப்புகளை வைத்திரு", + "deleteTaskTip": "பதிவிறக்கிய கோப்புகளை நீக்கு", "delete": "நீக்கு", "add": "சேர்", "edit": "திருத்துக", diff --git a/ui/flutter/lib/l10n/app_tr.arb b/ui/flutter/lib/l10n/app_tr.arb index 015a647f..7fe573c7 100644 --- a/ui/flutter/lib/l10n/app_tr.arb +++ b/ui/flutter/lib/l10n/app_tr.arb @@ -98,7 +98,7 @@ "startAll": "Tümünü Başlat", "pauseAll": "Tümünü Duraklat", "deleteTask": "@count işlemi sil", - "deleteTaskTip": "İndirilen dosyaları sakla", + "deleteTaskTip": "İndirilen dosyaları sil", "delete": "Sil", "add": "Ekle", "edit": "Düzenle", diff --git a/ui/flutter/lib/l10n/app_uk.arb b/ui/flutter/lib/l10n/app_uk.arb index a82e5480..8dc51080 100644 --- a/ui/flutter/lib/l10n/app_uk.arb +++ b/ui/flutter/lib/l10n/app_uk.arb @@ -98,7 +98,7 @@ "startAll": "Запустити все", "pauseAll": "Зупинити все", "deleteTask": "Видалити @count завдань", - "deleteTaskTip": "Зберегти завантажені файли", + "deleteTaskTip": "Видалити завантажені файли", "delete": "Видалити", "add": "Додати", "edit": "Редагування", diff --git a/ui/flutter/lib/l10n/app_vi.arb b/ui/flutter/lib/l10n/app_vi.arb index a85c12c0..91d7cf89 100644 --- a/ui/flutter/lib/l10n/app_vi.arb +++ b/ui/flutter/lib/l10n/app_vi.arb @@ -98,7 +98,7 @@ "startAll": "Bắt đầu tất cả", "pauseAll": "Tạm dừng tất cả", "deleteTask": "Xóa @count nhiệm vụ", - "deleteTaskTip": "Giữ các tệp đã tải về", + "deleteTaskTip": "Xóa các tệp đã tải xuống", "delete": "Xóa", "add": "Thêm", "edit": "Sửa", diff --git a/ui/flutter/lib/l10n/app_zh.arb b/ui/flutter/lib/l10n/app_zh.arb index c9a4ea87..56eab1d9 100644 --- a/ui/flutter/lib/l10n/app_zh.arb +++ b/ui/flutter/lib/l10n/app_zh.arb @@ -98,7 +98,7 @@ "startAll": "全部开始", "pauseAll": "全部暂停", "deleteTask": "删除 @count 个任务", - "deleteTaskTip": "保留已下载的文件", + "deleteTaskTip": "删除已下载的文件", "delete": "删除", "add": "添加", "edit": "编辑", diff --git a/ui/flutter/lib/l10n/app_zh_TW.arb b/ui/flutter/lib/l10n/app_zh_TW.arb index da3561dd..0b36e96c 100644 --- a/ui/flutter/lib/l10n/app_zh_TW.arb +++ b/ui/flutter/lib/l10n/app_zh_TW.arb @@ -98,7 +98,7 @@ "startAll": "全部開始", "pauseAll": "全部暫停", "deleteTask": "刪除 @count 個任務", - "deleteTaskTip": "保留已下載的檔案", + "deleteTaskTip": "刪除已下載的檔案", "delete": "刪除", "add": "新增", "edit": "編輯", diff --git a/ui/flutter/test/features/tasks/presentation/task_delete_dialog_test.dart b/ui/flutter/test/features/tasks/presentation/task_delete_dialog_test.dart index cb9d96f1..0db7b2b3 100644 --- a/ui/flutter/test/features/tasks/presentation/task_delete_dialog_test.dart +++ b/ui/flutter/test/features/tasks/presentation/task_delete_dialog_test.dart @@ -35,6 +35,8 @@ void main() { await tester.tap(find.text('Open delete dialog')); await tester.pumpAndSettle(); expect(find.text('Affects 65 downloads and 65 files.'), findsOneWidget); + final deleteFilesSwitch = find.byKey(const ValueKey('task-delete-files-switch')); + expect(tester.widget(deleteFilesSwitch).value, isFalse); expect(keepFiles, isNull); await tester.tap(find.text('Delete')); await tester.pumpAndSettle(); diff --git a/ui/flutter/test/widget_test.dart b/ui/flutter/test/widget_test.dart index ee720eb1..34bc10d9 100644 --- a/ui/flutter/test/widget_test.dart +++ b/ui/flutter/test/widget_test.dart @@ -5361,7 +5361,7 @@ void main() { expect(tester.takeException(), isNull); }); - testWidgets('delete dialog returns keep-files switch value', (WidgetTester tester) async { + testWidgets('delete dialog only removes downloaded files when requested', (WidgetTester tester) async { await _setTestSize(tester, const Size(520, 620)); bool? keepFiles; await tester.pumpWidget( @@ -5384,11 +5384,14 @@ void main() { expect(find.text('Delete 2 tasks?'), findsOneWidget); expect(find.text('Only remove the task record from Gopeed'), findsNothing); expect(find.byKey(const ValueKey('task-delete-dialog-icon')), findsOneWidget); - expect(find.byKey(const ValueKey('task-delete-keep-files-option')), findsOneWidget); - final keepFilesSwitch = find.byKey(const ValueKey('task-delete-keep-files-switch')); - expect(tester.widget(keepFilesSwitch).value, isTrue); + expect(find.byKey(const ValueKey('task-delete-files-option')), findsOneWidget); + final deleteFilesSwitch = find.byKey(const ValueKey('task-delete-files-switch')); + expect(find.text('Delete downloaded files'), findsOneWidget); + expect(tester.widget(deleteFilesSwitch).value, isFalse); - await tester.tap(keepFilesSwitch); + await tester.tap(deleteFilesSwitch); + await tester.pumpAndSettle(); + expect(tester.widget(deleteFilesSwitch).value, isTrue); await tester.pumpAndSettle(); await tester.tap(find.text('Delete')); await tester.pumpAndSettle();