From 2b8c009ef18e757338e087cb614175634aefccc0 Mon Sep 17 00:00:00 2001 From: Inex Code Date: Thu, 9 Dec 2021 03:35:15 +0000 Subject: [PATCH] Add button to force refetch backups list --- assets/translations/en.json | 4 +++- assets/translations/ru.json | 5 ++++- lib/logic/cubit/backups/backups_cubit.dart | 7 +++++++ lib/ui/pages/backup_details/header.dart | 12 +++++++++++- 4 files changed, 25 insertions(+), 3 deletions(-) diff --git a/assets/translations/en.json b/assets/translations/en.json index 84a07fd4..76ee8bb9 100644 --- a/assets/translations/en.json +++ b/assets/translations/en.json @@ -110,7 +110,9 @@ "creating": "Creating a new backup: {}%", "restoring": "Restoring from backup", "error_pending": "Server returned error, check it below", - "restore_alert": "You are about to restore from backup created on {}. All current data will be lost. Are you sure?" + "restore_alert": "You are about to restore from backup created on {}. All current data will be lost. Are you sure?", + "refetchBackups": "Refetch backup list", + "refetchingList": "In a few minutes list will be updated" } }, "not_ready_card": { diff --git a/assets/translations/ru.json b/assets/translations/ru.json index e36e8d2f..192d3164 100644 --- a/assets/translations/ru.json +++ b/assets/translations/ru.json @@ -110,7 +110,10 @@ "creating": "Создание копии: {}%", "restoring": "Восстановление из копии", "error_pending": "Сервер вернул ошибку: проверьте её ниже.", - "restore_alert": "Вы собираетесь восстановить из копии созданной {}. Все текущие данные будут потеряны. Вы уверены?" + "restore_alert": "Вы собираетесь восстановить из копии созданной {}. Все текущие данные будут потеряны. Вы уверены?", + "refetchBackups": "Обновить список копий", + "refetchingList": "Через несколько минут список будет обновлён" + } }, "not_ready_card": { diff --git a/lib/logic/cubit/backups/backups_cubit.dart b/lib/logic/cubit/backups/backups_cubit.dart index 574808bf..7fb42ed3 100644 --- a/lib/logic/cubit/backups/backups_cubit.dart +++ b/lib/logic/cubit/backups/backups_cubit.dart @@ -148,6 +148,13 @@ class BackupsCubit extends AppConfigDependendCubit { Timer(state.refreshTimer, () => updateBackups(useTimer: true)); } + Future forceUpdateBackups() async { + emit(state.copyWith(preventActions: true)); + await api.forceBackupListReload(); + getIt().showSnackBar('providers.backup.refetchingList'); + emit(state.copyWith(preventActions: false)); + } + Future createBackup() async { emit(state.copyWith(preventActions: true)); await api.startBackup(); diff --git a/lib/ui/pages/backup_details/header.dart b/lib/ui/pages/backup_details/header.dart index f6821380..0dd93b53 100644 --- a/lib/ui/pages/backup_details/header.dart +++ b/lib/ui/pages/backup_details/header.dart @@ -48,6 +48,9 @@ class _Header extends StatelessWidget { case _PopupMenuItemType.reuploadKey: context.read().reuploadKey(); break; + case _PopupMenuItemType.refetchBackups: + context.read().forceUpdateBackups(); + break; } }, icon: Icon(Icons.more_vert), @@ -59,6 +62,13 @@ class _Header extends StatelessWidget { child: Text('providers.backup.reuploadKey'.tr()), ), ), + PopupMenuItem<_PopupMenuItemType>( + value: _PopupMenuItemType.refetchBackups, + child: Container( + padding: EdgeInsets.only(left: 5), + child: Text('providers.backup.refetchBackups'.tr()), + ), + ), ], ), ), @@ -67,4 +77,4 @@ class _Header extends StatelessWidget { } } -enum _PopupMenuItemType { reuploadKey } +enum _PopupMenuItemType { reuploadKey, refetchBackups }