From 946e1a29c5a385c52552ba5393e35448f6849791 Mon Sep 17 00:00:00 2001 From: Julian KOUNE Date: Thu, 24 Aug 2023 16:31:07 +0200 Subject: [PATCH] feat: dismiss keyboard when pressing outside of textfields This Closes #398 --- lib/pages/contacts_tab/contacts_appbar.dart | 4 ++++ lib/pages/dialer/pip/pip_view.dart | 3 --- .../new_group/selected_contacts_map_change_notifier.dart | 3 --- lib/pages/search/search_view.dart | 4 ++++ lib/widgets/app_bars/searchable_app_bar.dart | 4 ++++ 5 files changed, 12 insertions(+), 6 deletions(-) diff --git a/lib/pages/contacts_tab/contacts_appbar.dart b/lib/pages/contacts_tab/contacts_appbar.dart index 766e8e6dff..be97158afd 100644 --- a/lib/pages/contacts_tab/contacts_appbar.dart +++ b/lib/pages/contacts_tab/contacts_appbar.dart @@ -1,4 +1,5 @@ import 'package:fluffychat/pages/contacts_tab/contacts_appbar_style.dart'; +import 'package:fluffychat/pages/dialer/pip/dismiss_keyboard.dart'; import 'package:fluffychat/widgets/twake_components/twake_icon_button.dart'; import 'package:flutter/material.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; @@ -55,6 +56,9 @@ class ContactsAppBar extends StatelessWidget { return SizedBox( height: 48, child: TextField( + onTapOutside: (event) { + dismissKeyboard(); + }, focusNode: searchFocusNode, controller: textEditingController, textInputAction: TextInputAction.search, diff --git a/lib/pages/dialer/pip/pip_view.dart b/lib/pages/dialer/pip/pip_view.dart index 10402223db..0201e87622 100644 --- a/lib/pages/dialer/pip/pip_view.dart +++ b/lib/pages/dialer/pip/pip_view.dart @@ -1,7 +1,6 @@ import 'package:flutter/material.dart'; import 'package:fluffychat/config/themes.dart'; -import 'dismiss_keyboard.dart'; class PIPView extends StatefulWidget { final PIPViewCorner initialCorner; @@ -73,7 +72,6 @@ class PIPViewState extends State with TickerProviderStateMixin { void setFloating(bool floating) { if (_isAnimating()) return; - dismissKeyboard(); setState(() { _floating = floating; }); @@ -82,7 +80,6 @@ class PIPViewState extends State with TickerProviderStateMixin { void stopFloating() { if (_isAnimating()) return; - dismissKeyboard(); _toggleFloatingAnimationController.reverse().whenCompleteOrCancel(() { if (mounted) { setState(() { diff --git a/lib/pages/new_group/selected_contacts_map_change_notifier.dart b/lib/pages/new_group/selected_contacts_map_change_notifier.dart index 0f69df2c86..0d15c47a6b 100644 --- a/lib/pages/new_group/selected_contacts_map_change_notifier.dart +++ b/lib/pages/new_group/selected_contacts_map_change_notifier.dart @@ -1,4 +1,3 @@ -import 'package:fluffychat/pages/dialer/pip/dismiss_keyboard.dart'; import 'package:fluffychat/presentation/model/presentation_contact.dart'; import 'package:flutter/widgets.dart'; @@ -10,8 +9,6 @@ class SelectedContactsMapChangeNotifier extends ChangeNotifier { .where((contact) => selectedContactsMap[contact]?.value ?? false); void onContactTileTap(BuildContext context, PresentationContact contact) { - dismissKeyboard(); - final oldVal = selectedContactsMap[contact]?.value ?? false; final newVal = !oldVal; selectedContactsMap.putIfAbsent(contact, () => ValueNotifier(newVal)); diff --git a/lib/pages/search/search_view.dart b/lib/pages/search/search_view.dart index 7b08fe48ad..cc52b54002 100644 --- a/lib/pages/search/search_view.dart +++ b/lib/pages/search/search_view.dart @@ -1,4 +1,5 @@ import 'package:fluffychat/domain/app_state/search/pre_search_state.dart'; +import 'package:fluffychat/pages/dialer/pip/dismiss_keyboard.dart'; import 'package:fluffychat/pages/search/recent_contacts_banner_widget.dart'; import 'package:fluffychat/pages/search/recent_item_widget.dart'; import 'package:fluffychat/pages/search/search.dart'; @@ -145,6 +146,9 @@ class SearchView extends StatelessWidget { const SizedBox(width: 4.0), Expanded( child: TextField( + onTapOutside: (event) { + dismissKeyboard(); + }, controller: searchController.textEditingController, textInputAction: TextInputAction.search, enabled: true, diff --git a/lib/widgets/app_bars/searchable_app_bar.dart b/lib/widgets/app_bars/searchable_app_bar.dart index 757690001f..3932808878 100644 --- a/lib/widgets/app_bars/searchable_app_bar.dart +++ b/lib/widgets/app_bars/searchable_app_bar.dart @@ -1,3 +1,4 @@ +import 'package:fluffychat/pages/dialer/pip/dismiss_keyboard.dart'; import 'package:fluffychat/widgets/twake_components/twake_icon_button.dart'; import 'package:fluffychat/widgets/app_bars/searchable_app_bar_style.dart'; import 'package:flutter/material.dart'; @@ -69,6 +70,9 @@ class SearchableAppBar extends StatelessWidget { builder: (context, searchModeNotifier, child) { if (searchModeNotifier) { return TextField( + onTapOutside: (event) { + dismissKeyboard(); + }, focusNode: focusNode, autofocus: true, maxLines: 1,