diff --git a/android/fastlane/metadata/android/de-DE/changelogs/58.txt b/android/fastlane/metadata/android/de-DE/changelogs/58.txt index da37e28..0321b9f 100644 --- a/android/fastlane/metadata/android/de-DE/changelogs/58.txt +++ b/android/fastlane/metadata/android/de-DE/changelogs/58.txt @@ -1 +1,2 @@ -* Neue Einstellung um Animationen zu deaktivieren \ No newline at end of file +* Neue Einstellung um Animationen zu deaktivieren +* Verbesserte Validierung von Server-Adressen \ No newline at end of file diff --git a/android/fastlane/metadata/android/en-US/changelogs/58.txt b/android/fastlane/metadata/android/en-US/changelogs/58.txt index 5a8e3fa..25a29d9 100644 --- a/android/fastlane/metadata/android/en-US/changelogs/58.txt +++ b/android/fastlane/metadata/android/en-US/changelogs/58.txt @@ -1 +1,2 @@ -* Add setting to disable animations \ No newline at end of file +* Add setting to disable animations +* Improved server-address validation \ No newline at end of file diff --git a/lib/features/login/view/widgets/form_fields/server_address_form_field.dart b/lib/features/login/view/widgets/form_fields/server_address_form_field.dart index 207d74c..b03ed15 100644 --- a/lib/features/login/view/widgets/form_fields/server_address_form_field.dart +++ b/lib/features/login/view/widgets/form_fields/server_address_form_field.dart @@ -42,15 +42,6 @@ class _ServerAddressFormFieldState extends State { initialValue: widget.initialValue, name: ServerAddressFormField.fkServerAddress, autovalidateMode: AutovalidateMode.onUserInteraction, - validator: (value) { - if (value?.trim().isEmpty ?? true) { - return S.of(context)!.serverAddressMustNotBeEmpty; - } - if (!RegExp(r"https?://.*").hasMatch(value!)) { - return S.of(context)!.serverAddressMustIncludeAScheme; - } - return null; - }, builder: (field) { return RawAutocomplete( focusNode: _focusNode, @@ -74,7 +65,7 @@ class _ServerAddressFormFieldState extends State { }, fieldViewBuilder: (context, textEditingController, focusNode, onFieldSubmitted) { - return TextField( + return TextFormField( controller: textEditingController, focusNode: focusNode, decoration: InputDecoration( @@ -93,10 +84,20 @@ class _ServerAddressFormFieldState extends State { : null, ), autofocus: false, - onSubmitted: (_) { + onFieldSubmitted: (_) { onFieldSubmitted(); _formatInput(); }, + autovalidateMode: AutovalidateMode.onUserInteraction, + validator: (value) { + if (value?.trim().isEmpty ?? true) { + return S.of(context)!.serverAddressMustNotBeEmpty; + } + if (!RegExp(r"^https?://.*").hasMatch(value!)) { + return S.of(context)!.serverAddressMustIncludeAScheme; + } + return null; + }, keyboardType: TextInputType.url, onChanged: (value) { field.didChange(value);