TF-3226 Parsing minInputLength from Autocomplete capability in session

This commit is contained in:
dab246
2024-10-25 15:47:15 +07:00
committed by Dat H. Pham
parent e002be63b5
commit b344062068
7 changed files with 293 additions and 2 deletions
+9
View File
@@ -32,6 +32,7 @@ import 'package:tmail_ui_user/features/base/mixin/message_dialog_action_mixin.da
import 'package:tmail_ui_user/features/base/mixin/popup_context_menu_action_mixin.dart';
import 'package:tmail_ui_user/features/caching/caching_manager.dart';
import 'package:tmail_ui_user/features/email/presentation/bindings/mdn_interactor_bindings.dart';
import 'package:tmail_ui_user/features/home/domain/extensions/session_extensions.dart';
import 'package:tmail_ui_user/features/login/data/network/interceptors/authorization_interceptors.dart';
import 'package:tmail_ui_user/features/login/domain/usecases/delete_authority_oidc_interactor.dart';
import 'package:tmail_ui_user/features/login/domain/usecases/delete_credential_interactor.dart';
@@ -516,4 +517,12 @@ abstract class BaseController extends GetxController
authorizationInterceptors.clear();
await cachingManager.closeHive();
}
int getMinInputLengthAutocomplete({
required Session session,
required AccountId accountId,
}) {
final minInputLength = session.getMinInputLengthAutocomplete(accountId);
return minInputLength?.value.toInt() ?? AppConfig.defaultMinInputLengthAutocomplete;
}
}
@@ -1,12 +1,16 @@
import 'dart:convert';
import 'package:contact/contact/model/autocomplete_capability.dart';
import 'package:contact/contact/model/capability_contact.dart';
import 'package:core/presentation/extensions/uri_extension.dart';
import 'package:core/utils/app_logger.dart';
import 'package:get/get.dart';
import 'package:jmap_dart_client/http/converter/state_converter.dart';
import 'package:jmap_dart_client/http/converter/user_name_converter.dart';
import 'package:jmap_dart_client/jmap/account_id.dart';
import 'package:jmap_dart_client/jmap/core/session/session.dart';
import 'package:jmap_dart_client/jmap/core/unsigned_int.dart';
import 'package:model/model.dart';
import 'package:tmail_ui_user/features/home/data/model/session_hive_obj.dart';
import 'package:tmail_ui_user/features/home/domain/converter/session_account_converter.dart';
@@ -61,4 +65,18 @@ extension SessionExtensions on Session {
return '';
}
}
UnsignedInt? getMinInputLengthAutocomplete(AccountId accountId) {
try {
final autocompleteCapability = getCapabilityProperties<AutocompleteCapability>(
accountId,
tmailContactCapabilityIdentifier);
final minInputLength = autocompleteCapability?.minInputLength;
log('SessionExtensions::getMinInputLengthAutocomplete:minInputLength = $minInputLength');
return minInputLength;
} catch (e) {
logError('SessionExtensions::getMinInputLengthAutocomplete():[Exception] $e');
return null;
}
}
}
+1 -1
View File
@@ -7,7 +7,7 @@ import 'package:tmail_ui_user/features/login/data/network/config/oidc_constant.d
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
class AppConfig {
static const int limitCharToStartSearch = 3;
static const int defaultMinInputLengthAutocomplete = 3;
static const int warningAttachmentFileSizeInMegabytes = 10;
static const String appDashboardConfigurationPath = "configurations/app_dashboard.json";