From ef2ab39a3adc4c326dfeb4dc9b43282e388a22ee Mon Sep 17 00:00:00 2001 From: dab246 Date: Tue, 9 Dec 2025 16:05:19 +0700 Subject: [PATCH] TF-4193 Show/Hide Label list when toggle label state in Setting --- .../email/presentation/email_view.dart | 20 +++++++++-- .../labels/presentation/label_controller.dart | 34 +++++++++++++++++++ .../presentation/base_mailbox_view.dart | 28 +++++++++++---- .../mailbox_dashboard_controller.dart | 9 +++-- .../datasource/manage_account_datasource.dart | 2 ++ .../manage_account_datasource_impl.dart | 16 +++++++++ .../local/preferences_setting_manager.dart | 4 +-- .../manage_account_repository_impl.dart | 5 +++ .../repository/manage_account_repository.dart | 2 ++ .../domain/state/get_label_setting_state.dart | 19 +++++++++++ .../get_label_setting_state_interactor.dart | 22 ++++++++++++ .../bindings/setting_interactor_bindings.dart | 4 +++ .../preferences/preferences_controller.dart | 4 +++ .../email/presentation/search_email_view.dart | 16 +++++++-- .../thread/presentation/thread_view.dart | 20 +++++++++-- .../get_thread_details_email_views.dart | 8 ++--- .../presentation/thread_detail_view.dart | 15 ++++++-- .../mailbox_dashboard_view_widget_test.dart | 5 +++ 18 files changed, 209 insertions(+), 24 deletions(-) create mode 100644 lib/features/manage_account/domain/state/get_label_setting_state.dart create mode 100644 lib/features/manage_account/domain/usecases/get_label_setting_state_interactor.dart diff --git a/lib/features/email/presentation/email_view.dart b/lib/features/email/presentation/email_view.dart index d0bca8ffb..baf1b26cc 100644 --- a/lib/features/email/presentation/email_view.dart +++ b/lib/features/email/presentation/email_view.dart @@ -9,6 +9,7 @@ import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:jmap_dart_client/jmap/mail/calendar/calendar_event.dart'; import 'package:jmap_dart_client/jmap/mail/email/email.dart'; +import 'package:labels/model/label.dart'; import 'package:model/email/email_action_type.dart'; import 'package:model/email/presentation_email.dart'; import 'package:model/extensions/list_email_address_extension.dart'; @@ -248,9 +249,22 @@ class EmailView extends GetWidget { children: [ if (!isInsideThreadDetailView || isFirstEmailInThreadDetail) Obx(() { - final allLabels = - controller.mailboxDashBoardController.labelController.labels; - final emailLabels = presentationEmail.getLabelList(allLabels); + final isLabelCapabilitySupported = controller + .mailboxDashBoardController.isLabelCapabilitySupported; + + final labelController = + controller.mailboxDashBoardController.labelController; + + final isLabelSettingEnabled = + labelController.isLabelSettingEnabled.isTrue; + + List