TF-1573: Remove double cursor on android
(cherry picked from commit f6dad776b6e91d11ef0215f6fddd22590e1f5def)
This commit is contained in:
@@ -126,6 +126,8 @@ class ComposerController extends BaseController {
|
||||
|
||||
FocusNode? subjectEmailInputFocusNode;
|
||||
FocusNode? toAddressFocusNode;
|
||||
FocusNode? ccAddressFocusNode;
|
||||
FocusNode? bccAddressFocusNode;
|
||||
|
||||
final RichTextController keyboardRichTextController = RichTextController();
|
||||
|
||||
@@ -248,6 +250,10 @@ class ComposerController extends BaseController {
|
||||
subjectEmailInputFocusNode = null;
|
||||
toAddressFocusNode?.dispose();
|
||||
toAddressFocusNode = null;
|
||||
ccAddressFocusNode?.dispose();
|
||||
ccAddressFocusNode = null;
|
||||
bccAddressFocusNode?.dispose();
|
||||
bccAddressFocusNode = null;
|
||||
subjectEmailInputController.dispose();
|
||||
toEmailAddressController.dispose();
|
||||
ccEmailAddressController.dispose();
|
||||
@@ -331,6 +337,8 @@ class ComposerController extends BaseController {
|
||||
void createFocusNodeInput() {
|
||||
toAddressFocusNode = FocusNode();
|
||||
subjectEmailInputFocusNode = FocusNode();
|
||||
ccAddressFocusNode = FocusNode();
|
||||
bccAddressFocusNode = FocusNode();
|
||||
|
||||
subjectEmailInputFocusNode?.addListener(() {
|
||||
log('ComposerController::createFocusNodeInput():subjectEmailInputFocusNode: ${subjectEmailInputFocusNode?.hasFocus}');
|
||||
@@ -1508,9 +1516,16 @@ class ComposerController extends BaseController {
|
||||
if (Platform.isAndroid) {
|
||||
_collapseAllRecipient();
|
||||
_autoCreateEmailTag();
|
||||
_removeFocusAllInputEditorHeader();
|
||||
}
|
||||
}
|
||||
|
||||
void _removeFocusAllInputEditorHeader() {
|
||||
subjectEmailInputFocusNode?.unfocus();
|
||||
toAddressFocusNode?.unfocus();
|
||||
ccAddressFocusNode?.unfocus();
|
||||
bccAddressFocusNode?.unfocus();
|
||||
}
|
||||
void _onChangeCursorOnMobile(List<int>? coordinates) {
|
||||
|
||||
final headerEditorMobileWidgetRenderObject = headerEditorMobileWidgetKey.currentContext?.findRenderObject();
|
||||
|
||||
@@ -379,6 +379,7 @@ class ComposerView extends GetWidget<ComposerController>
|
||||
PrefixEmailAddress.cc,
|
||||
controller.listCcEmailAddress,
|
||||
controller.listEmailAddressType,
|
||||
focusNode: controller.ccAddressFocusNode,
|
||||
expandMode: controller.ccAddressExpandMode.value,
|
||||
controller: controller.ccEmailAddressController,
|
||||
keyTagEditor: controller.keyCcEmailTagEditor,
|
||||
@@ -404,6 +405,7 @@ class ComposerView extends GetWidget<ComposerController>
|
||||
PrefixEmailAddress.bcc,
|
||||
controller.listBccEmailAddress,
|
||||
controller.listEmailAddressType,
|
||||
focusNode: controller.bccAddressFocusNode,
|
||||
expandMode: controller.bccAddressExpandMode.value,
|
||||
controller: controller.bccEmailAddressController,
|
||||
keyTagEditor: controller.keyBccEmailTagEditor,
|
||||
@@ -627,14 +629,19 @@ class ComposerView extends GetWidget<ComposerController>
|
||||
}
|
||||
|
||||
Widget _buildHtmlEditor(BuildContext context, {String? initialContent}) {
|
||||
return Padding(
|
||||
padding: const EdgeInsets.only(left: 16, right: 16, bottom: 20),
|
||||
child: HtmlEditor(
|
||||
key: const Key('composer_editor'),
|
||||
minHeight: 550,
|
||||
addDefaultSelectionMenuItems: false,
|
||||
initialContent: initialContent ?? '',
|
||||
onCreated: (editorApi) => controller.initRichTextForMobile(context, editorApi, initialContent)
|
||||
return GestureDetector(
|
||||
onTapDown: (_) {
|
||||
FocusManager.instance.primaryFocus?.unfocus();
|
||||
},
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.only(left: 16, right: 16, bottom: 20),
|
||||
child: HtmlEditor(
|
||||
key: const Key('composer_editor'),
|
||||
minHeight: 550,
|
||||
addDefaultSelectionMenuItems: false,
|
||||
initialContent: initialContent ?? '',
|
||||
onCreated: (editorApi) => controller.initRichTextForMobile(context, editorApi)
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user