From 1e9895a00c0be16b0a85c23e90bfd36b2b929296 Mon Sep 17 00:00:00 2001 From: dab246 Date: Mon, 1 Apr 2024 10:19:51 +0700 Subject: [PATCH] TF-2717 Disable delete in keyboard shortcut on mobile --- .../composer/presentation/composer_controller.dart | 13 ++++++++++++- .../composer/presentation/composer_view_web.dart | 9 +++++++++ .../widgets/recipient_composer_widget.dart | 4 ++++ pubspec.lock | 2 +- 4 files changed, 26 insertions(+), 2 deletions(-) diff --git a/lib/features/composer/presentation/composer_controller.dart b/lib/features/composer/presentation/composer_controller.dart index dfe25299c..43851f3e9 100644 --- a/lib/features/composer/presentation/composer_controller.dart +++ b/lib/features/composer/presentation/composer_controller.dart @@ -155,6 +155,9 @@ class ComposerController extends BaseController with DragDropFileMixin { FocusNode? ccAddressFocusNode; FocusNode? bccAddressFocusNode; FocusNode? searchIdentitiesFocusNode; + FocusNode? toAddressFocusNodeKeyboard; + FocusNode? ccAddressFocusNodeKeyboard; + FocusNode? bccAddressFocusNodeKeyboard; StreamSubscription? _subscriptionOnBeforeUnload; StreamSubscription? _subscriptionOnDragEnter; @@ -249,6 +252,12 @@ class ComposerController extends BaseController with DragDropFileMixin { ccAddressFocusNode = null; bccAddressFocusNode?.dispose(); bccAddressFocusNode = null; + toAddressFocusNodeKeyboard?.dispose(); + toAddressFocusNodeKeyboard = null; + ccAddressFocusNodeKeyboard?.dispose(); + ccAddressFocusNodeKeyboard = null; + bccAddressFocusNodeKeyboard?.dispose(); + bccAddressFocusNodeKeyboard = null; searchIdentitiesFocusNode?.dispose(); searchIdentitiesFocusNode = null; subjectEmailInputController.dispose(); @@ -417,6 +426,9 @@ class ComposerController extends BaseController with DragDropFileMixin { ccAddressFocusNode = FocusNode(); bccAddressFocusNode = FocusNode(); searchIdentitiesFocusNode = FocusNode(); + toAddressFocusNodeKeyboard = FocusNode(); + ccAddressFocusNodeKeyboard = FocusNode(); + bccAddressFocusNodeKeyboard = FocusNode(); subjectEmailInputFocusNode?.addListener(() { log('ComposerController::createFocusNodeInput():subjectEmailInputFocusNode: ${subjectEmailInputFocusNode?.hasFocus}'); @@ -1313,7 +1325,6 @@ class ComposerController extends BaseController with DragDropFileMixin { } void displayScreenTypeComposerAction(ScreenDisplayMode displayMode) async { - createFocusNodeInput(); _updateTextForEditor(); screenDisplayMode.value = displayMode; diff --git a/lib/features/composer/presentation/composer_view_web.dart b/lib/features/composer/presentation/composer_view_web.dart index e2d353148..30d990171 100644 --- a/lib/features/composer/presentation/composer_view_web.dart +++ b/lib/features/composer/presentation/composer_view_web.dart @@ -95,6 +95,7 @@ class ComposerView extends GetWidget { expandMode: controller.toAddressExpandMode.value, controller: controller.toEmailAddressController, focusNode: controller.toAddressFocusNode, + focusNodeKeyboard: controller.toAddressFocusNodeKeyboard, keyTagEditor: controller.keyToEmailTagEditor, isInitial: controller.isInitialRecipient.value, padding: ComposerStyle.mobileRecipientPadding, @@ -117,6 +118,7 @@ class ComposerView extends GetWidget { expandMode: controller.ccAddressExpandMode.value, controller: controller.ccEmailAddressController, focusNode: controller.ccAddressFocusNode, + focusNodeKeyboard: controller.ccAddressFocusNodeKeyboard, keyTagEditor: controller.keyCcEmailTagEditor, isInitial: controller.isInitialRecipient.value, nextFocusNode: controller.getNextFocusOfCcEmailAddress(), @@ -139,6 +141,7 @@ class ComposerView extends GetWidget { expandMode: controller.bccAddressExpandMode.value, controller: controller.bccEmailAddressController, focusNode: controller.bccAddressFocusNode, + focusNodeKeyboard: controller.bccAddressFocusNodeKeyboard, keyTagEditor: controller.keyBccEmailTagEditor, isInitial: controller.isInitialRecipient.value, nextFocusNode: controller.subjectEmailInputFocusNode, @@ -319,6 +322,7 @@ class ComposerView extends GetWidget { expandMode: controller.toAddressExpandMode.value, controller: controller.toEmailAddressController, focusNode: controller.toAddressFocusNode, + focusNodeKeyboard: controller.toAddressFocusNodeKeyboard, keyTagEditor: controller.keyToEmailTagEditor, isInitial: controller.isInitialRecipient.value, padding: ComposerStyle.desktopRecipientPadding, @@ -341,6 +345,7 @@ class ComposerView extends GetWidget { expandMode: controller.ccAddressExpandMode.value, controller: controller.ccEmailAddressController, focusNode: controller.ccAddressFocusNode, + focusNodeKeyboard: controller.ccAddressFocusNodeKeyboard, keyTagEditor: controller.keyCcEmailTagEditor, isInitial: controller.isInitialRecipient.value, nextFocusNode: controller.getNextFocusOfCcEmailAddress(), @@ -363,6 +368,7 @@ class ComposerView extends GetWidget { expandMode: controller.bccAddressExpandMode.value, controller: controller.bccEmailAddressController, focusNode: controller.bccAddressFocusNode, + focusNodeKeyboard: controller.bccAddressFocusNodeKeyboard, keyTagEditor: controller.keyBccEmailTagEditor, isInitial: controller.isInitialRecipient.value, nextFocusNode: controller.subjectEmailInputFocusNode, @@ -582,6 +588,7 @@ class ComposerView extends GetWidget { expandMode: controller.toAddressExpandMode.value, controller: controller.toEmailAddressController, focusNode: controller.toAddressFocusNode, + focusNodeKeyboard: controller.toAddressFocusNodeKeyboard, keyTagEditor: controller.keyToEmailTagEditor, isInitial: controller.isInitialRecipient.value, padding: ComposerStyle.tabletRecipientPadding, @@ -604,6 +611,7 @@ class ComposerView extends GetWidget { expandMode: controller.ccAddressExpandMode.value, controller: controller.ccEmailAddressController, focusNode: controller.ccAddressFocusNode, + focusNodeKeyboard: controller.ccAddressFocusNodeKeyboard, keyTagEditor: controller.keyCcEmailTagEditor, isInitial: controller.isInitialRecipient.value, nextFocusNode: controller.getNextFocusOfCcEmailAddress(), @@ -626,6 +634,7 @@ class ComposerView extends GetWidget { expandMode: controller.bccAddressExpandMode.value, controller: controller.bccEmailAddressController, focusNode: controller.bccAddressFocusNode, + focusNodeKeyboard: controller.bccAddressFocusNodeKeyboard, keyTagEditor: controller.keyBccEmailTagEditor, isInitial: controller.isInitialRecipient.value, nextFocusNode: controller.subjectEmailInputFocusNode, diff --git a/lib/features/composer/presentation/widgets/recipient_composer_widget.dart b/lib/features/composer/presentation/widgets/recipient_composer_widget.dart index 9f65a6d1e..3d82574d9 100644 --- a/lib/features/composer/presentation/widgets/recipient_composer_widget.dart +++ b/lib/features/composer/presentation/widgets/recipient_composer_widget.dart @@ -48,6 +48,7 @@ class RecipientComposerWidget extends StatefulWidget { final PrefixRecipientState bccState; final bool? isInitial; final FocusNode? focusNode; + final FocusNode? focusNodeKeyboard; final GlobalKey? keyTagEditor; final FocusNode? nextFocusNode; final TextEditingController? controller; @@ -89,6 +90,7 @@ class RecipientComposerWidget extends StatefulWidget { this.onFocusNextAddressAction, this.onRemoveDraggableEmailAddressAction, this.onEnableAllRecipientsInputAction, + this.focusNodeKeyboard, }); @override @@ -164,6 +166,7 @@ class _RecipientComposerWidgetState extends State { controller: widget.controller, focusNode: widget.focusNode, enableBorder: _isDragging, + focusNodeKeyboard: widget.focusNodeKeyboard, borderRadius: RecipientComposerWidgetStyle.enableBorderRadius, enableBorderColor: RecipientComposerWidgetStyle.enableBorderColor, keyboardType: TextInputType.emailAddress, @@ -244,6 +247,7 @@ class _RecipientComposerWidgetState extends State { length: _collapsedListEmailAddress.length, controller: widget.controller, focusNode: widget.focusNode, + focusNodeKeyboard: widget.focusNodeKeyboard, keyboardType: TextInputType.emailAddress, textInputAction: TextInputAction.done, debounceDuration: RecipientComposerWidgetStyle.suggestionDebounceDuration, diff --git a/pubspec.lock b/pubspec.lock index 66deb9a3f..bc1ede15a 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -1738,7 +1738,7 @@ packages: description: path: "." ref: master - resolved-ref: dd81c8f1e870bacdffddda5b360c5fbe8a188bbb + resolved-ref: "0fb93e1ea5cff5b1065deeb46193d6fe0db7403e" url: "https://github.com/dab246/super_tag_editor.git" source: git version: "0.2.0"