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