diff --git a/.dart_tool/flutter_gen/gen_l10n/l10n.dart b/.dart_tool/flutter_gen/gen_l10n/l10n.dart index f7cf67b0..0fae9f5d 100644 --- a/.dart_tool/flutter_gen/gen_l10n/l10n.dart +++ b/.dart_tool/flutter_gen/gen_l10n/l10n.dart @@ -320,11 +320,11 @@ abstract class S { /// **'Delete'** String get delete; - /// No description provided for @deleteAllServers. + /// No description provided for @deleteServers. /// /// In en, this message translates to: - /// **'Delete all servers'** - String get deleteAllServers; + /// **'Batch delete servers'** + String get deleteServers; /// No description provided for @disabled. /// diff --git a/.dart_tool/flutter_gen/gen_l10n/l10n_de.dart b/.dart_tool/flutter_gen/gen_l10n/l10n_de.dart index 6923139c..20a3d2f2 100644 --- a/.dart_tool/flutter_gen/gen_l10n/l10n_de.dart +++ b/.dart_tool/flutter_gen/gen_l10n/l10n_de.dart @@ -116,7 +116,7 @@ class SDe extends S { String get delete => 'Löschen'; @override - String get deleteAllServers => 'Alle Server löschen'; + String get deleteServers => 'Batch-Löschung von Servern'; @override String get disabled => 'Behinderte'; diff --git a/.dart_tool/flutter_gen/gen_l10n/l10n_en.dart b/.dart_tool/flutter_gen/gen_l10n/l10n_en.dart index ffc638ed..6ba8b34f 100644 --- a/.dart_tool/flutter_gen/gen_l10n/l10n_en.dart +++ b/.dart_tool/flutter_gen/gen_l10n/l10n_en.dart @@ -116,7 +116,7 @@ class SEn extends S { String get delete => 'Delete'; @override - String get deleteAllServers => 'Delete all servers'; + String get deleteServers => 'Batch delete servers'; @override String get disabled => 'Disabled'; diff --git a/.dart_tool/flutter_gen/gen_l10n/l10n_id.dart b/.dart_tool/flutter_gen/gen_l10n/l10n_id.dart index 52dfcbdb..209fef27 100644 --- a/.dart_tool/flutter_gen/gen_l10n/l10n_id.dart +++ b/.dart_tool/flutter_gen/gen_l10n/l10n_id.dart @@ -116,7 +116,7 @@ class SId extends S { String get delete => 'Menghapus'; @override - String get deleteAllServers => 'Hapus semua server'; + String get deleteServers => 'Penghapusan server secara batch'; @override String get disabled => 'Dengan disabilitas'; diff --git a/.dart_tool/flutter_gen/gen_l10n/l10n_zh.dart b/.dart_tool/flutter_gen/gen_l10n/l10n_zh.dart index 60f847a1..c9fb5c62 100644 --- a/.dart_tool/flutter_gen/gen_l10n/l10n_zh.dart +++ b/.dart_tool/flutter_gen/gen_l10n/l10n_zh.dart @@ -116,7 +116,7 @@ class SZh extends S { String get delete => '删除'; @override - String get deleteAllServers => '删除所有服务器'; + String get deleteServers => '批量删除服务器'; @override String get disabled => '已禁用'; @@ -798,7 +798,7 @@ class SZhTw extends SZh { String get delete => '刪除'; @override - String get deleteAllServers => '刪除所有服務器'; + String get deleteServers => '批量刪除服務器'; @override String get disabled => '已禁用'; diff --git a/lib/l10n/app_de.arb b/lib/l10n/app_de.arb index ef696a5d..2c917eeb 100644 --- a/lib/l10n/app_de.arb +++ b/lib/l10n/app_de.arb @@ -37,7 +37,7 @@ "debug": "Debug", "decode": "Decode", "delete": "Löschen", - "deleteAllServers": "Alle Server löschen", + "deleteServers": "Batch-Löschung von Servern", "disabled": "Behinderte", "disconnected": "Disconnected", "diskIgnorePath": "Pfad für Datenträger ignorieren", diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index 464bfa7b..1d1a7147 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -37,7 +37,7 @@ "debug": "Debug", "decode": "Decode", "delete": "Delete", - "deleteAllServers": "Delete all servers", + "deleteServers": "Batch delete servers", "disabled": "Disabled", "disconnected": "Disconnected", "diskIgnorePath": "Ignore path for disk", diff --git a/lib/l10n/app_id.arb b/lib/l10n/app_id.arb index 3a91d434..994150aa 100644 --- a/lib/l10n/app_id.arb +++ b/lib/l10n/app_id.arb @@ -37,7 +37,7 @@ "debug": "Debug", "decode": "Membaca sandi", "delete": "Menghapus", - "deleteAllServers": "Hapus semua server", + "deleteServers": "Penghapusan server secara batch", "disabled": "Dengan disabilitas", "disconnected": "Terputus", "diskIgnorePath": "Abaikan jalan untuk disk", diff --git a/lib/l10n/app_zh.arb b/lib/l10n/app_zh.arb index 1c49f435..1ff79be6 100644 --- a/lib/l10n/app_zh.arb +++ b/lib/l10n/app_zh.arb @@ -37,7 +37,7 @@ "debug": "调试", "decode": "解码", "delete": "删除", - "deleteAllServers": "删除所有服务器", + "deleteServers": "批量删除服务器", "disabled": "已禁用", "disconnected": "连接断开", "diskIgnorePath": "忽略的磁盘路径", diff --git a/lib/l10n/app_zh_tw.arb b/lib/l10n/app_zh_tw.arb index df6d1ec7..5ea4d23d 100644 --- a/lib/l10n/app_zh_tw.arb +++ b/lib/l10n/app_zh_tw.arb @@ -37,7 +37,7 @@ "debug": "調試", "decode": "解碼", "delete": "刪除", - "deleteAllServers": "刪除所有服務器", + "deleteServers": "批量刪除服務器", "disabled": "已禁用", "disconnected": "連接斷開", "diskIgnorePath": "忽略的磁盤路徑", diff --git a/lib/view/page/backup.dart b/lib/view/page/backup.dart index 5e01239a..599a406a 100644 --- a/lib/view/page/backup.dart +++ b/lib/view/page/backup.dart @@ -102,8 +102,12 @@ class BackupPage extends StatelessWidget { )); } - Widget _buildCard(String text, IconData icon, MediaQueryData media, - FutureOr Function() onTap) { + Widget _buildCard( + String text, + IconData icon, + MediaQueryData media, + FutureOr Function() onTap, + ) { final textColor = primaryColor.isBrightColor ? Colors.black : Colors.white; return GestureDetector( onTap: onTap, diff --git a/lib/view/page/setting.dart b/lib/view/page/setting.dart index 03df6db0..e653e3fe 100644 --- a/lib/view/page/setting.dart +++ b/lib/view/page/setting.dart @@ -173,7 +173,7 @@ class _SettingPageState extends State { _buildUpdateInterval(), _buildMaxRetry(), _buildDiskIgnorePath(), - _buildDeleteAllServers(), + _buildDeleteServers(), ].map((e) => RoundRectCard(e)).toList(), ); } @@ -941,21 +941,36 @@ class _SettingPageState extends State { ); } - Widget _buildDeleteAllServers() { + Widget _buildDeleteServers() { return ListTile( - title: Text(_s.deleteAllServers), + title: Text(_s.deleteServers), trailing: const Icon(Icons.delete_forever), - onTap: () => showRoundDialog( - context: context, - title: Text(_s.attention), - child: Text(_s.sureDelete(_s.all)), - actions: [ - TextButton( - onPressed: () => _serverProvider.deleteAll(), - child: Text(_s.ok), - ) - ], - ), + onTap: () async { + final all = _serverProvider.servers.keys.map( + (e) => TextButton( + onPressed: () => showRoundDialog( + context: context, + title: Text(_s.attention), + child: Text(_s.sureDelete(e)), + actions: [ + TextButton( + onPressed: () => _serverProvider.delServer(e), + child: Text(_s.ok), + ) + ], + ), + child: Text(e), + ), + ); + showRoundDialog>( + context: context, + title: Text(_s.choose), + child: Column( + mainAxisSize: MainAxisSize.min, + children: all.toList(), + ), + ); + }, ); } }