diff --git a/lib/screens/clients/logs_list_client.dart b/lib/screens/clients/logs_list_client.dart index dd731c4..6fe4782 100644 --- a/lib/screens/clients/logs_list_client.dart +++ b/lib/screens/clients/logs_list_client.dart @@ -73,7 +73,7 @@ class _LogsListClientState extends State { final result = await cancelableRequest?.value; if (result != null) { - if (loadingMore != null && loadingMore == true) { + if (loadingMore != null && loadingMore == true && mounted) { setState(() => isLoadingMore = false); } diff --git a/lib/screens/home/management_modal.dart b/lib/screens/home/management_modal.dart index 46f94e5..9781206 100644 --- a/lib/screens/home/management_modal.dart +++ b/lib/screens/home/management_modal.dart @@ -8,6 +8,7 @@ import 'package:provider/provider.dart'; import 'package:expandable/expandable.dart'; import 'package:flutter_gen/gen_l10n/app_localizations.dart'; +import 'package:adguard_home_manager/functions/snackbar.dart'; import 'package:adguard_home_manager/functions/compare_versions.dart'; import 'package:adguard_home_manager/functions/time_server_disabled.dart'; import 'package:adguard_home_manager/providers/app_config_provider.dart'; @@ -137,11 +138,10 @@ class _ManagementModalState extends State with SingleTickerProv if (result != false) { appConfigProvider.addLog(result); } - ScaffoldMessenger.of(context).showSnackBar( - SnackBar( - content: Text(AppLocalizations.of(context)!.invalidUsernamePassword), - backgroundColor: Colors.red, - ) + showSnacbkar( + appConfigProvider: appConfigProvider, + label: AppLocalizations.of(context)!.invalidUsernamePassword, + color: Colors.red ); } } diff --git a/lib/screens/settings/encryption/encryption.dart b/lib/screens/settings/encryption/encryption.dart index 6af29ab..b99efd7 100644 --- a/lib/screens/settings/encryption/encryption.dart +++ b/lib/screens/settings/encryption/encryption.dart @@ -187,25 +187,7 @@ class _EncryptionSettingsWidgetState extends State { tlsPortController.text != '' && tlsPortError == null && dnsOverQuicPortController.text != '' && - dnsOverQuicPortError == null && - (( - certificateOption == 0 && - certificatePathController.text != '' && - certificatePathError == null - ) || ( - certificateOption == 1 && - certificateContentController.text != '' && - certificateContentError == null - )) && - (( - privateKeyOption == 0 && - privateKeyPathController.text != '' && - privateKeyPathError == null - ) || ( - privateKeyOption == 1 && - pastePrivateKeyController.text != '' && - pastePrivateKeyError == null - )) + dnsOverQuicPortError == null ) { setState(() => localValidationValid = true); return true; @@ -246,9 +228,9 @@ class _EncryptionSettingsWidgetState extends State { "enabled": enabled, "server_name": domainNameController.text, "force_https": redirectHttps, - "port_https": int.parse(httpsPortController.text), - "port_dns_over_tls": int.parse(tlsPortController.text), - "port_dns_over_quic": int.parse(dnsOverQuicPortController.text), + "port_https": int.tryParse(httpsPortController.text), + "port_dns_over_tls": int.tryParse(tlsPortController.text), + "port_dns_over_quic": int.tryParse(dnsOverQuicPortController.text), "certificate_chain": encodeBase64(certificateContentController.text), "private_key": encodeBase64(pastePrivateKeyController.text), "private_key_saved": usePreviouslySavedKey, @@ -672,7 +654,9 @@ class _EncryptionSettingsWidgetState extends State { tooltip: generateStatusString(context, localValidationValid, certKeyValidApi) ), IconButton( - onPressed: saveData, + onPressed: localValidationValid ? + () => saveData() + : null, icon: const Icon(Icons.save), tooltip: AppLocalizations.of(context)!.save, ), diff --git a/pubspec.yaml b/pubspec.yaml index 9982de9..5296fbf 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -67,7 +67,7 @@ dependencies: git: url: https://github.com/JGeek00/flutter_split_view ref: master-alt - url_launcher: ^6.1.10 + url_launcher: ^6.1.11 contextmenu: ^3.0.0 async: ^2.10.0 sentry_flutter: ^7.5.2