TF-4193 Handle multi click to enable Label visibility feature
This commit is contained in:
+7
-7
@@ -13,18 +13,18 @@ class PreferencesBindings extends Bindings {
|
||||
void dependencies() {
|
||||
PreferencesInteractorsBindings().dependencies();
|
||||
|
||||
Get.lazyPut(() => PreferencesController(
|
||||
Get.find<GetServerSettingInteractor>(),
|
||||
Get.find<UpdateServerSettingInteractor>(),
|
||||
Get.find<GetLocalSettingsInteractor>(),
|
||||
Get.find<UpdateLocalSettingsInteractor>(),
|
||||
));
|
||||
|
||||
Get.lazyPut(() => GetLocalSettingsInteractor(
|
||||
Get.find<ManageAccountRepository>(),
|
||||
));
|
||||
Get.lazyPut(() => UpdateLocalSettingsInteractor(
|
||||
Get.find<ManageAccountRepository>(),
|
||||
));
|
||||
|
||||
Get.lazyPut(() => PreferencesController(
|
||||
Get.find<GetServerSettingInteractor>(),
|
||||
Get.find<UpdateServerSettingInteractor>(),
|
||||
Get.find<GetLocalSettingsInteractor>(),
|
||||
Get.find<UpdateLocalSettingsInteractor>(),
|
||||
));
|
||||
}
|
||||
}
|
||||
+2
@@ -4,6 +4,7 @@ import 'package:tmail_ui_user/features/manage_account/data/datasource/manage_acc
|
||||
import 'package:tmail_ui_user/features/manage_account/data/datasource_impl/manage_account_datasource_impl.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/data/local/language_cache_manager.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/data/local/preferences_setting_manager.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/data/local/setting_cache_manager.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/data/repository/manage_account_repository_impl.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/domain/repository/manage_account_repository.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/domain/usecases/save_language_interactor.dart';
|
||||
@@ -44,6 +45,7 @@ class PreferencesInteractorsBindings extends InteractorsBindings {
|
||||
Get.lazyPut(() => ManageAccountDataSourceImpl(
|
||||
Get.find<LanguageCacheManager>(),
|
||||
Get.find<PreferencesSettingManager>(),
|
||||
Get.find<SettingCacheManager>(),
|
||||
Get.find<CacheExceptionThrower>(),
|
||||
), tag: composerId);
|
||||
}
|
||||
|
||||
@@ -48,7 +48,7 @@ class PreferencesController extends BaseController {
|
||||
(failure) => false,
|
||||
(success) => success is GettingServerSetting || success is UpdatingServerSetting);
|
||||
|
||||
final _manageAccountDashBoardController = Get.find<ManageAccountDashBoardController>();
|
||||
final accountDashboardController = Get.find<ManageAccountDashBoardController>();
|
||||
|
||||
bool get isAICapabilitySupported {
|
||||
return _manageAccountDashBoardController.isAICapabilitySupported;
|
||||
@@ -128,7 +128,7 @@ class PreferencesController extends BaseController {
|
||||
|
||||
void _getSettingOption() {
|
||||
consumeState(_getLocalSettingInteractor.execute());
|
||||
final accountId = _manageAccountDashBoardController.accountId.value;
|
||||
final accountId = accountDashboardController.accountId.value;
|
||||
if (accountId != null) {
|
||||
consumeState(_getServerSettingInteractor.execute(accountId));
|
||||
} else {
|
||||
@@ -196,8 +196,8 @@ class PreferencesController extends BaseController {
|
||||
break;
|
||||
}
|
||||
|
||||
final session = _manageAccountDashBoardController.sessionCurrent;
|
||||
final accountId = _manageAccountDashBoardController.accountId.value;
|
||||
final session = accountDashboardController.sessionCurrent;
|
||||
final accountId = accountDashboardController.accountId.value;
|
||||
if (session != null && accountId != null && newSettingOption != null) {
|
||||
consumeState(
|
||||
_updateServerSettingInteractor.execute(
|
||||
@@ -215,7 +215,6 @@ class PreferencesController extends BaseController {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@override
|
||||
void onClose() {
|
||||
_appLifecycleListener?.dispose();
|
||||
|
||||
@@ -2,6 +2,7 @@ import 'package:flutter/material.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:tmail_ui_user/features/base/mixin/app_loader_mixin.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/presentation/base/setting_detail_view_builder.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/presentation/extensions/handle_setup_label_visibility_in_setting_extension.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/presentation/menu/settings_utils.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/presentation/model/account_menu_item.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/presentation/model/preferences_option_type.dart';
|
||||
@@ -51,13 +52,34 @@ class PreferencesView extends GetWidget<PreferencesController> with AppLoaderMix
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
if (controller.responsiveUtils.isWebDesktop(context))
|
||||
const SettingHeaderWidget(
|
||||
menuItem: AccountMenuItem.preferences,
|
||||
padding: EdgeInsets.only(bottom: 21),
|
||||
Obx(
|
||||
() {
|
||||
final labelVisibility = controller
|
||||
.accountDashboardController.isLabelVisibility.value;
|
||||
|
||||
final isLabelCapabilitySupported = controller
|
||||
.accountDashboardController
|
||||
.isLabelCapabilitySupported;
|
||||
|
||||
final disableMultiClick =
|
||||
labelVisibility || !isLabelCapabilitySupported;
|
||||
|
||||
return SettingHeaderWidget(
|
||||
menuItem: AccountMenuItem.preferences,
|
||||
padding: const EdgeInsets.only(bottom: 21),
|
||||
onMultiClickAction: disableMultiClick
|
||||
? null
|
||||
: controller.accountDashboardController
|
||||
.enableLabelVisibility,
|
||||
);
|
||||
},
|
||||
),
|
||||
Obx(() {
|
||||
final settingOption = controller.settingOption.value;
|
||||
final localSettingOption = controller.localSettings.value;
|
||||
final isLabelVisibility = controller
|
||||
.accountDashboardController
|
||||
.isLabelVisibility;
|
||||
|
||||
if (settingOption == null &&
|
||||
localSettingOption.configs.isEmpty) {
|
||||
@@ -75,12 +97,15 @@ class PreferencesView extends GetWidget<PreferencesController> with AppLoaderMix
|
||||
...PreferencesOptionType.values.where(
|
||||
(type) =>
|
||||
type.isLocal &&
|
||||
type != PreferencesOptionType.label &&
|
||||
(type != PreferencesOptionType.aiScribe ||
|
||||
controller.isAIScribeCapabilityAvailable),
|
||||
),
|
||||
if (settingOption != null &&
|
||||
controller.isAICapabilitySupported)
|
||||
PreferencesOptionType.aiNeedsAction,
|
||||
if (isLabelVisibility.isTrue)
|
||||
PreferencesOptionType.label,
|
||||
];
|
||||
|
||||
return Expanded(
|
||||
|
||||
Reference in New Issue
Block a user