TF-3226 Apply minInputLength on autocomplete capability to app
This commit is contained in:
@@ -27,6 +27,7 @@ import 'package:tmail_ui_user/features/email_recovery/presentation/model/email_r
|
||||
import 'package:tmail_ui_user/features/email_recovery/presentation/model/email_recovery_time_type.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/presentation/extensions/datetime_extension.dart';
|
||||
import 'package:tmail_ui_user/main/routes/route_navigation.dart';
|
||||
import 'package:tmail_ui_user/main/utils/app_config.dart';
|
||||
|
||||
class EmailRecoveryController extends BaseController with DateRangePickerMixin {
|
||||
GetAllAutoCompleteInteractor? _getAllAutoCompleteInteractor;
|
||||
@@ -87,6 +88,15 @@ class EmailRecoveryController extends BaseController with DateRangePickerMixin {
|
||||
super.onReady();
|
||||
}
|
||||
|
||||
int get minInputLengthAutocomplete {
|
||||
if (_session == null || _accountId == null) {
|
||||
return AppConfig.defaultMinInputLengthAutocomplete;
|
||||
}
|
||||
return getMinInputLengthAutocomplete(
|
||||
session: _session!,
|
||||
accountId: _accountId!);
|
||||
}
|
||||
|
||||
void _checkContactPermission() async {
|
||||
final permissionStatus = await Permission.contacts.status;
|
||||
if (permissionStatus.isGranted) {
|
||||
|
||||
+2
@@ -75,6 +75,7 @@ class EmailRecoveryFormDesktopBuilder extends GetWidget<EmailRecoveryController>
|
||||
listEmailAddress: controller.listRecipients,
|
||||
responsiveUtils: controller.responsiveUtils,
|
||||
expandMode: controller.recipientsExpandMode.value,
|
||||
minInputLengthAutocomplete: controller.minInputLengthAutocomplete,
|
||||
textEditingController: controller.recipientsFieldInputController,
|
||||
focusNode: controller.focusManager.recipientsFieldFocusNode,
|
||||
nextFocusNode: controller.listSenders.length != 1
|
||||
@@ -90,6 +91,7 @@ class EmailRecoveryFormDesktopBuilder extends GetWidget<EmailRecoveryController>
|
||||
listEmailAddress: controller.listSenders,
|
||||
responsiveUtils: controller.responsiveUtils,
|
||||
expandMode: controller.senderExpandMode.value,
|
||||
minInputLengthAutocomplete: controller.minInputLengthAutocomplete,
|
||||
textEditingController: controller.senderFieldInputController,
|
||||
focusNode: controller.focusManager.senderFieldFocusNode,
|
||||
nextFocusNode: controller.focusManager.attachmentCheckboxFocusNode,
|
||||
|
||||
+2
@@ -73,6 +73,7 @@ class EmailRecoveryFormMobileBuilder extends GetWidget<EmailRecoveryController>
|
||||
focusNode: controller.focusManager.recipientsFieldFocusNode,
|
||||
nextFocusNode: controller.focusManager.senderFieldFocusNode,
|
||||
expandMode: controller.recipientsExpandMode.value,
|
||||
minInputLengthAutocomplete: controller.minInputLengthAutocomplete,
|
||||
textEditingController: controller.recipientsFieldInputController,
|
||||
onShowFullListEmailAddressAction: controller.showFullEmailAddress,
|
||||
onUpdateListEmailAddressAction: controller.updateListEmailAddress,
|
||||
@@ -86,6 +87,7 @@ class EmailRecoveryFormMobileBuilder extends GetWidget<EmailRecoveryController>
|
||||
focusNode: controller.focusManager.senderFieldFocusNode,
|
||||
nextFocusNode: controller.focusManager.attachmentCheckboxFocusNode,
|
||||
expandMode: controller.senderExpandMode.value,
|
||||
minInputLengthAutocomplete: controller.minInputLengthAutocomplete,
|
||||
textEditingController: controller.senderFieldInputController,
|
||||
onShowFullListEmailAddressAction: controller.showFullEmailAddress,
|
||||
onUpdateListEmailAddressAction: controller.updateListEmailAddress,
|
||||
|
||||
+2
@@ -75,6 +75,7 @@ class EmailRecoveryFormTabletBuilder extends GetWidget<EmailRecoveryController>
|
||||
listEmailAddress: controller.listRecipients,
|
||||
responsiveUtils: controller.responsiveUtils,
|
||||
expandMode: controller.recipientsExpandMode.value,
|
||||
minInputLengthAutocomplete: controller.minInputLengthAutocomplete,
|
||||
textEditingController: controller.recipientsFieldInputController,
|
||||
focusNode: controller.focusManager.recipientsFieldFocusNode,
|
||||
nextFocusNode: controller.focusManager.senderFieldFocusNode,
|
||||
@@ -88,6 +89,7 @@ class EmailRecoveryFormTabletBuilder extends GetWidget<EmailRecoveryController>
|
||||
listEmailAddress: controller.listSenders,
|
||||
responsiveUtils: controller.responsiveUtils,
|
||||
expandMode: controller.senderExpandMode.value,
|
||||
minInputLengthAutocomplete: controller.minInputLengthAutocomplete,
|
||||
textEditingController: controller.senderFieldInputController,
|
||||
focusNode: controller.focusManager.senderFieldFocusNode,
|
||||
nextFocusNode: controller.focusManager.attachmentCheckboxFocusNode,
|
||||
|
||||
+3
-1
@@ -40,6 +40,7 @@ class TextInputFieldSuggestionWidget extends StatefulWidget {
|
||||
final OnDeleteTagAction? onDeleteTagAction;
|
||||
final TextEditingController? textEditingController;
|
||||
final VoidCallback? onCreateAction;
|
||||
final int minInputLengthAutocomplete;
|
||||
|
||||
const TextInputFieldSuggestionWidget({
|
||||
super.key,
|
||||
@@ -47,6 +48,7 @@ class TextInputFieldSuggestionWidget extends StatefulWidget {
|
||||
required this.listEmailAddress,
|
||||
required this.responsiveUtils,
|
||||
this.expandMode = ExpandMode.EXPAND,
|
||||
this.minInputLengthAutocomplete = AppConfig.defaultMinInputLengthAutocomplete,
|
||||
this.focusNode,
|
||||
this.keyTagEditor,
|
||||
this.nextFocusNode,
|
||||
@@ -325,7 +327,7 @@ class _TextInputFieldSuggestionWidgetState extends State<TextInputFieldSuggestio
|
||||
|
||||
final tmailSuggestion = List<SuggestionEmailAddress>.empty(growable: true);
|
||||
if (
|
||||
processedQuery.length >= AppConfig.limitCharToStartSearch
|
||||
processedQuery.length >= widget.minInputLengthAutocomplete
|
||||
&& widget.onSuggestionEmailAddress != null
|
||||
) {
|
||||
final listEmailAddress = await widget.onSuggestionEmailAddress!(processedQuery);
|
||||
|
||||
Reference in New Issue
Block a user