TF-4354 Remove all logic related to Label Visibility in Settings
This commit is contained in:
@@ -13,9 +13,5 @@ abstract class ManageAccountDataSource {
|
||||
|
||||
Future<AIScribeConfig> getAiScribeConfigLocalSettings();
|
||||
|
||||
Future<bool> getLabelVisibility();
|
||||
|
||||
Future<void> saveLabelVisibility(bool visible);
|
||||
|
||||
Future<bool> getLabelSettingState();
|
||||
}
|
||||
|
||||
@@ -4,7 +4,6 @@ import 'package:tmail_ui_user/features/manage_account/data/datasource/manage_acc
|
||||
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/domain/model/preferences/ai_scribe_config.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/data/local/setting_cache_manager.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/domain/model/preferences/label_config.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/domain/model/preferences/preferences_config.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/domain/model/preferences/preferences_setting.dart';
|
||||
@@ -17,13 +16,11 @@ class ManageAccountDataSourceImpl extends ManageAccountDataSource {
|
||||
|
||||
final LanguageCacheManager _languageCacheManager;
|
||||
final PreferencesSettingManager _preferencesSettingManager;
|
||||
final SettingCacheManager _settingCacheManager;
|
||||
final ExceptionThrower _exceptionThrower;
|
||||
|
||||
ManageAccountDataSourceImpl(
|
||||
this._languageCacheManager,
|
||||
this._preferencesSettingManager,
|
||||
this._settingCacheManager,
|
||||
this._exceptionThrower
|
||||
);
|
||||
|
||||
@@ -80,20 +77,6 @@ class ManageAccountDataSourceImpl extends ManageAccountDataSource {
|
||||
}).catchError(_exceptionThrower.throwException);
|
||||
}
|
||||
|
||||
@override
|
||||
Future<bool> getLabelVisibility() {
|
||||
return Future.sync(() {
|
||||
return _settingCacheManager.getLabelVisibility();
|
||||
}).catchError(_exceptionThrower.throwException);
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> saveLabelVisibility(bool visible) {
|
||||
return Future.sync(() async {
|
||||
return await _settingCacheManager.saveLabelVisibility(visible);
|
||||
}).catchError(_exceptionThrower.throwException);
|
||||
}
|
||||
|
||||
@override
|
||||
Future<bool> getLabelSettingState() {
|
||||
return Future.sync(() async {
|
||||
|
||||
@@ -1,17 +0,0 @@
|
||||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
|
||||
class SettingCacheManager {
|
||||
static const String _labelVisibilitySettingKey = 'LABEL_VISIBILITY';
|
||||
|
||||
const SettingCacheManager(this._sharedPreferences);
|
||||
|
||||
final SharedPreferences _sharedPreferences;
|
||||
|
||||
bool getLabelVisibility() {
|
||||
return _sharedPreferences.getBool(_labelVisibilitySettingKey) ?? true;
|
||||
}
|
||||
|
||||
Future<void> saveLabelVisibility(bool visible) async {
|
||||
await _sharedPreferences.setBool(_labelVisibilitySettingKey, visible);
|
||||
}
|
||||
}
|
||||
@@ -32,16 +32,6 @@ class ManageAccountRepositoryImpl extends ManageAccountRepository {
|
||||
return dataSource.getAiScribeConfigLocalSettings();
|
||||
}
|
||||
|
||||
@override
|
||||
Future<bool> getLabelVisibility() {
|
||||
return dataSource.getLabelVisibility();
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> saveLabelVisibility(bool visible) {
|
||||
return dataSource.saveLabelVisibility(visible);
|
||||
}
|
||||
|
||||
@override
|
||||
Future<bool> getLabelSettingState() {
|
||||
return dataSource.getLabelSettingState();
|
||||
|
||||
@@ -13,9 +13,5 @@ abstract class ManageAccountRepository {
|
||||
|
||||
Future<AIScribeConfig> getAiScribeConfigLocalSettings();
|
||||
|
||||
Future<bool> getLabelVisibility();
|
||||
|
||||
Future<void> saveLabelVisibility(bool visible);
|
||||
|
||||
Future<bool> getLabelSettingState();
|
||||
}
|
||||
|
||||
@@ -1,17 +0,0 @@
|
||||
import 'package:core/presentation/state/failure.dart';
|
||||
import 'package:core/presentation/state/success.dart';
|
||||
|
||||
class GettingLabelVisibility extends LoadingState {}
|
||||
|
||||
class GetLabelVisibilitySuccess extends UIState {
|
||||
final bool visible;
|
||||
|
||||
GetLabelVisibilitySuccess(this.visible);
|
||||
|
||||
@override
|
||||
List<Object?> get props => [...super.props, visible];
|
||||
}
|
||||
|
||||
class GetLabelVisibilityFailure extends FeatureFailure {
|
||||
GetLabelVisibilityFailure(dynamic exception) : super(exception: exception);
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
import 'package:core/presentation/state/failure.dart';
|
||||
import 'package:core/presentation/state/success.dart';
|
||||
|
||||
class SavingLabelVisibility extends LoadingState {}
|
||||
|
||||
class SaveLabelVisibilitySuccess extends UIState {}
|
||||
|
||||
class SaveLabelVisibilityFailure extends FeatureFailure {
|
||||
SaveLabelVisibilityFailure(dynamic exception) : super(exception: exception);
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
import 'package:core/presentation/state/failure.dart';
|
||||
import 'package:core/presentation/state/success.dart';
|
||||
import 'package:dartz/dartz.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/domain/repository/manage_account_repository.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/domain/state/get_label_visibility_state.dart';
|
||||
|
||||
class GetLabelVisibilityInteractor {
|
||||
final ManageAccountRepository _manageAccountRepository;
|
||||
|
||||
GetLabelVisibilityInteractor(this._manageAccountRepository);
|
||||
|
||||
Stream<Either<Failure, Success>> execute() async* {
|
||||
try {
|
||||
yield Right(GettingLabelVisibility());
|
||||
final visible = await _manageAccountRepository.getLabelVisibility();
|
||||
yield Right(GetLabelVisibilitySuccess(visible));
|
||||
} catch (exception) {
|
||||
yield Left(GetLabelVisibilityFailure(exception));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
import 'package:core/presentation/state/failure.dart';
|
||||
import 'package:core/presentation/state/success.dart';
|
||||
import 'package:dartz/dartz.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/domain/repository/manage_account_repository.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/domain/state/save_label_visibility_state.dart';
|
||||
|
||||
class SaveLabelVisibilityInteractor {
|
||||
final ManageAccountRepository _manageAccountRepository;
|
||||
|
||||
SaveLabelVisibilityInteractor(this._manageAccountRepository);
|
||||
|
||||
Stream<Either<Failure, Success>> execute({bool visible = true}) async* {
|
||||
try {
|
||||
yield Right(SavingLabelVisibility());
|
||||
await _manageAccountRepository.saveLabelVisibility(visible);
|
||||
yield Right(SaveLabelVisibilitySuccess());
|
||||
} catch (exception) {
|
||||
yield Left(SaveLabelVisibilityFailure(exception));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -4,12 +4,9 @@ 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/get_label_setting_state_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/domain/usecases/get_label_visibility_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/domain/usecases/save_label_visibility_interactor.dart';
|
||||
import 'package:tmail_ui_user/main/exceptions/cache_exception_thrower.dart';
|
||||
|
||||
class SettingInteractorBindings extends InteractorsBindings {
|
||||
@@ -26,7 +23,6 @@ class SettingInteractorBindings extends InteractorsBindings {
|
||||
() => ManageAccountDataSourceImpl(
|
||||
Get.find<LanguageCacheManager>(),
|
||||
Get.find<PreferencesSettingManager>(),
|
||||
Get.find<SettingCacheManager>(),
|
||||
Get.find<CacheExceptionThrower>(),
|
||||
),
|
||||
);
|
||||
@@ -34,12 +30,6 @@ class SettingInteractorBindings extends InteractorsBindings {
|
||||
|
||||
@override
|
||||
void bindingsInteractor() {
|
||||
Get.lazyPut(
|
||||
() => SaveLabelVisibilityInteractor(Get.find<ManageAccountRepository>()),
|
||||
);
|
||||
Get.lazyPut(
|
||||
() => GetLabelVisibilityInteractor(Get.find<ManageAccountRepository>()),
|
||||
);
|
||||
Get.lazyPut(
|
||||
() => GetLabelSettingStateInteractor(Get.find<ManageAccountRepository>()),
|
||||
);
|
||||
|
||||
-33
@@ -1,10 +1,6 @@
|
||||
import 'package:labels/utils/labels_constants.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/domain/usecases/get_label_visibility_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/domain/usecases/save_label_visibility_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/presentation/manage_account_dashboard_controller.dart';
|
||||
import 'package:tmail_ui_user/main/error/capability_validator.dart';
|
||||
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
|
||||
import 'package:tmail_ui_user/main/routes/route_navigation.dart';
|
||||
|
||||
extension HandleSetupLabelVisibilityInSettingExtension
|
||||
on ManageAccountDashBoardController {
|
||||
@@ -16,33 +12,4 @@ extension HandleSetupLabelVisibilityInSettingExtension
|
||||
accountId.value!,
|
||||
);
|
||||
}
|
||||
|
||||
void enableLabelVisibility() {
|
||||
isLabelVisibilityEnabled.value = true;
|
||||
|
||||
saveLabelVisibilityInteractor = getBinding<SaveLabelVisibilityInteractor>();
|
||||
if (saveLabelVisibilityInteractor != null) {
|
||||
consumeState(saveLabelVisibilityInteractor!.execute());
|
||||
}
|
||||
|
||||
if (currentOverlayContext != null && currentContext != null) {
|
||||
appToast.showToastSuccessMessage(
|
||||
currentOverlayContext!,
|
||||
AppLocalizations.of(currentContext!).theLabelFeatureIsNowAvailable,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
void setUpLabelVisibility() {
|
||||
getLabelVisibilityInteractor = getBinding<GetLabelVisibilityInteractor>();
|
||||
if (getLabelVisibilityInteractor != null) {
|
||||
consumeState(getLabelVisibilityInteractor!.execute());
|
||||
} else {
|
||||
isLabelVisibilityEnabled.value = false;
|
||||
}
|
||||
}
|
||||
|
||||
void handleGetLabelVisibilitySuccess(bool visible) {
|
||||
isLabelVisibilityEnabled.value = visible;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,11 +26,8 @@ import 'package:tmail_ui_user/features/home/data/exceptions/session_exceptions.d
|
||||
import 'package:tmail_ui_user/features/home/domain/extensions/session_extensions.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/domain/state/export_trace_log_state.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/domain/state/get_all_vacation_state.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/domain/state/get_label_visibility_state.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/domain/state/update_vacation_state.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/domain/usecases/get_all_vacation_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/domain/usecases/get_label_visibility_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/domain/usecases/save_label_visibility_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/domain/usecases/update_vacation_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/presentation/action/dashboard_setting_action.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/presentation/email_rules/bindings/email_rules_bindings.dart';
|
||||
@@ -69,8 +66,6 @@ class ManageAccountDashBoardController extends ReloadableController
|
||||
UpdateVacationInteractor? _updateVacationInteractor;
|
||||
PaywallController? paywallController;
|
||||
GetQuotasInteractor? getQuotasInteractor;
|
||||
SaveLabelVisibilityInteractor? saveLabelVisibilityInteractor;
|
||||
GetLabelVisibilityInteractor? getLabelVisibilityInteractor;
|
||||
|
||||
final accountId = Rxn<AccountId>();
|
||||
final accountMenuItemSelected = AccountMenuItem.profiles.obs;
|
||||
@@ -78,7 +73,7 @@ class ManageAccountDashBoardController extends ReloadableController
|
||||
final vacationResponse = Rxn<VacationResponse>();
|
||||
final dashboardSettingAction = Rxn<UIAction>();
|
||||
final octetsQuota = Rxn<Quota>();
|
||||
final isLabelVisibilityEnabled = RxBool(PlatformInfo.isIntegrationTesting);
|
||||
final isLabelVisibilityEnabled = RxBool(false);
|
||||
|
||||
Uri? previousUri;
|
||||
AccountMenuItem? selectedMenu;
|
||||
@@ -110,8 +105,6 @@ class ManageAccountDashBoardController extends ReloadableController
|
||||
handleExportTraceLogSuccess(success);
|
||||
} else if (success is GetQuotasSuccess) {
|
||||
handleGetQuotasSuccess(success);
|
||||
} else if (success is GetLabelVisibilitySuccess) {
|
||||
handleGetLabelVisibilitySuccess(success.visible);
|
||||
} else {
|
||||
super.handleSuccessViewState(success);
|
||||
}
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/presentation/email_rules/email_rules_view.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/extensions/vacation_response_extension.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/presentation/extensions/validate_setting_capability_supported_extension.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/presentation/forward/forward_view.dart';
|
||||
@@ -30,17 +29,6 @@ class SettingsView extends GetWidget<SettingsController> {
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Obx(() {
|
||||
final labelVisibility = controller
|
||||
.manageAccountDashboardController
|
||||
.isLabelVisibilityEnabled
|
||||
.value;
|
||||
final isLabelCapabilitySupported = controller
|
||||
.manageAccountDashboardController
|
||||
.isLabelCapabilitySupported;
|
||||
|
||||
final disableMultiClick =
|
||||
labelVisibility || !isLabelCapabilitySupported;
|
||||
|
||||
return SettingAppBar(
|
||||
pageLevel: controller
|
||||
.manageAccountDashboardController
|
||||
@@ -55,9 +43,6 @@ class SettingsView extends GetWidget<SettingsController> {
|
||||
onBackAction: () => controller.onBackSettingAction(context),
|
||||
onExportTraceLogAction: () =>
|
||||
controller.showExportTraceLogConfirmDialog(context),
|
||||
onMultiClickAction: disableMultiClick
|
||||
? null
|
||||
: controller.manageAccountDashboardController.enableLabelVisibility,
|
||||
);
|
||||
}),
|
||||
Obx(() {
|
||||
|
||||
-2
@@ -4,7 +4,6 @@ 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';
|
||||
@@ -45,7 +44,6 @@ class PreferencesInteractorsBindings extends InteractorsBindings {
|
||||
Get.lazyPut(() => ManageAccountDataSourceImpl(
|
||||
Get.find<LanguageCacheManager>(),
|
||||
Get.find<PreferencesSettingManager>(),
|
||||
Get.find<SettingCacheManager>(),
|
||||
Get.find<CacheExceptionThrower>(),
|
||||
), tag: composerId);
|
||||
}
|
||||
|
||||
@@ -2,7 +2,6 @@ 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';
|
||||
@@ -52,27 +51,9 @@ class PreferencesView extends GetWidget<PreferencesController> with AppLoaderMix
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
if (controller.responsiveUtils.isWebDesktop(context))
|
||||
Obx(
|
||||
() {
|
||||
final labelVisibility = controller
|
||||
.accountDashboardController.isLabelVisibilityEnabled.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,
|
||||
);
|
||||
},
|
||||
const SettingHeaderWidget(
|
||||
menuItem: AccountMenuItem.preferences,
|
||||
padding: EdgeInsets.only(bottom: 21),
|
||||
),
|
||||
Obx(() {
|
||||
final settingOption = controller.settingOption.value;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"@@last_modified": "2026-01-26T09:26:54.654131",
|
||||
"@@last_modified": "2026-03-04T11:35:04.572137",
|
||||
"initializing_data": "Initializing data...",
|
||||
"@initializing_data": {
|
||||
"type": "text",
|
||||
@@ -5284,12 +5284,6 @@
|
||||
"placeholders_order": [],
|
||||
"placeholders": {}
|
||||
},
|
||||
"theLabelFeatureIsNowAvailable": "The label feature is now available.",
|
||||
"@theLabelFeatureIsNowAvailable": {
|
||||
"type": "text",
|
||||
"placeholders_order": [],
|
||||
"placeholders": {}
|
||||
},
|
||||
"labelAs": "Label as",
|
||||
"@labelAs": {
|
||||
"type": "text",
|
||||
|
||||
@@ -36,7 +36,6 @@ import 'package:tmail_ui_user/features/mailbox/data/local/state_cache_manager.da
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/data/local/local_sort_order_manager.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/offline_mode/manager/new_email_cache_manager.dart';
|
||||
import 'package:tmail_ui_user/features/offline_mode/manager/new_email_cache_worker_queue.dart';
|
||||
import 'package:tmail_ui_user/features/offline_mode/manager/opened_email_cache_manager.dart';
|
||||
@@ -95,7 +94,6 @@ class LocalBindings extends Bindings {
|
||||
Get.put(SessionHiveCacheClient());
|
||||
Get.put(SessionCacheManager(Get.find<SessionHiveCacheClient>()));
|
||||
Get.put(LocalSortOrderManager(Get.find<SharedPreferences>()));
|
||||
Get.put(SettingCacheManager(Get.find<SharedPreferences>()));
|
||||
Get.put(CachingManager(
|
||||
Get.find<MailboxCacheManager>(),
|
||||
Get.find<StateCacheManager>(),
|
||||
|
||||
@@ -5613,13 +5613,6 @@ class AppLocalizations {
|
||||
);
|
||||
}
|
||||
|
||||
String get theLabelFeatureIsNowAvailable {
|
||||
return Intl.message(
|
||||
'The label feature is now available.',
|
||||
name: 'theLabelFeatureIsNowAvailable',
|
||||
);
|
||||
}
|
||||
|
||||
String get labelAs {
|
||||
return Intl.message(
|
||||
'Label as',
|
||||
|
||||
Reference in New Issue
Block a user