From b5df1b9367dd07d311c9bc453be0d38e3439c411 Mon Sep 17 00:00:00 2001 From: kolo Date: Sun, 22 Mar 2026 00:45:41 +0300 Subject: [PATCH] stableee --- lib/core/l10n/app_strings.dart | 4 +-- lib/features/settings/screen.dart | 41 ++++++++++++++++++++++++++++--- 2 files changed, 39 insertions(+), 6 deletions(-) diff --git a/lib/core/l10n/app_strings.dart b/lib/core/l10n/app_strings.dart index 929ada6..7ba684d 100644 --- a/lib/core/l10n/app_strings.dart +++ b/lib/core/l10n/app_strings.dart @@ -76,8 +76,8 @@ class AppStrings { String get data => _ru ? 'Данные' : 'Data'; String get exportData => _ru ? 'Экспорт данных' : 'Export data'; String get clearData => _ru ? 'Очистить данные' : 'Clear all data'; - String get clearAllTransactions => _ru ? 'Очистить все транзакции' : 'Clear All Transactions'; - String get clearDataConfirm => _ru ? 'Удалить все транзакции?' : 'Clear all transactions?'; + String get clearAllTransactions => _ru ? 'Удалить транзакции' : 'Clear All Transactions'; + String get clearDataConfirm => _ru ? 'Удалить транзакции?' : 'Clear all transactions?'; String get clearDataWarning => _ru ? 'Это навсегда удалит всю историю транзакций. Это действие нельзя отменить.' : 'This will permanently delete all your transaction history. This cannot be undone.'; String get areYouSure => _ru ? 'Вы абсолютно уверены?' : 'Are you absolutely sure?'; String get allTransactionsDeleted => _ru ? 'Все транзакции удалены' : 'All transactions deleted'; diff --git a/lib/features/settings/screen.dart b/lib/features/settings/screen.dart index 7769302..d4ce493 100644 --- a/lib/features/settings/screen.dart +++ b/lib/features/settings/screen.dart @@ -20,6 +20,7 @@ class SettingsScreen extends ConsumerWidget { final s = ref.read(stringsProvider); showDialog( context: context, + barrierDismissible: false, builder: (ctx) => AlertDialog( title: Text(s.clearDataConfirm), content: Text(s.clearDataWarning), @@ -29,10 +30,11 @@ class SettingsScreen extends ConsumerWidget { child: Text(s.cancel), ), TextButton( - onPressed: () { + onPressed: () async { Navigator.pop(ctx); - showDialog( + await showDialog( context: context, + barrierDismissible: false, builder: (ctx2) => AlertDialog( title: Text(s.areYouSure), content: Text(s.allTransactionsWillBeDeleted), @@ -42,11 +44,42 @@ class SettingsScreen extends ConsumerWidget { child: Text(s.noKeepThem), ), TextButton( - onPressed: () { + onPressed: () async { + final biometricEnabled = await BiometricService.isEnabled(); + if (biometricEnabled) { + final authenticated = await BiometricService.authenticate(); + if (!authenticated) { + Navigator.pop(ctx2); + return; + } + } ref.read(transactionsProvider.notifier).clearAll(); Navigator.pop(ctx2); + ScaffoldMessenger.of(context).showSnackBar( - SnackBar(content: Text(s.allTransactionsDeleted)), + SnackBar( + content: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Icon( + Icons.check_circle_rounded, + color: Colors.white, + size: 20, + ), + const SizedBox(width: 12), + Text( + s.allTransactionsDeleted, + style: const TextStyle( + color: Colors.white, + fontWeight: FontWeight.w600, + ), + ), + ], + ), + backgroundColor: const Color(0xFF4CAF50), + behavior: SnackBarBehavior.fixed, + duration: const Duration(seconds: 3), + ), ); }, style: TextButton.styleFrom(