TF-3444 Fix could not expand folder tree in folder visibility on iOS

Signed-off-by: dab246 <tdvu@linagora.com>
This commit is contained in:
dab246
2025-02-05 15:20:56 +07:00
committed by Dat H. Pham
parent 38d2cc5350
commit 9d54709fac
2 changed files with 60 additions and 94 deletions
@@ -99,7 +99,11 @@ class ManageAccountDashBoardView extends GetWidget<ManageAccountDashBoardControl
], ],
)) ))
]), ]),
mobile: SettingsView(closeAction: () => controller.backToMailboxDashBoard(context: context)) mobile: SafeArea(
child: SettingsView(
closeAction: () =>
controller.backToMailboxDashBoard(context: context)),
)
), ),
), ),
); );
@@ -33,75 +33,53 @@ class SettingsView extends GetWidget<SettingsController> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Container( return Column(
color: Colors.white, crossAxisAlignment: CrossAxisAlignment.start,
child: SafeArea( children: [
top: controller.manageAccountDashboardController.isVacationCapabilitySupported, SizedBox.fromSize(
bottom: controller.manageAccountDashboardController.isVacationCapabilitySupported, size: const Size.fromHeight(52),
left: controller.manageAccountDashboardController.isVacationCapabilitySupported && child: Padding(
controller.responsiveUtils.isPortraitMobile(context), padding: SettingsUtils.getPaddingAppBar(context, controller.responsiveUtils),
right: controller.manageAccountDashboardController.isVacationCapabilitySupported && child: _buildAppbar(context))),
controller.responsiveUtils.isPortraitMobile(context), const Divider(color: AppColor.colorDividerComposer, height: 1),
child: Column( Obx(() {
crossAxisAlignment: CrossAxisAlignment.start, if (controller.manageAccountDashboardController.vacationResponse.value?.vacationResponderIsValid == true) {
children: [ return VacationNotificationMessageWidget(
SafeArea( margin: const EdgeInsetsDirectional.only(start: 12, end: 12, top: 8),
bottom: false, fromAccountDashBoard: true,
child: SizedBox.fromSize( vacationResponse: controller.manageAccountDashboardController.vacationResponse.value!,
size: const Size.fromHeight(52), actionGotoVacationSetting: !controller.manageAccountDashboardController.inVacationSettings()
child: Padding( ? () => controller.manageAccountDashboardController.selectAccountMenuItem(AccountMenuItem.vacation)
padding: SettingsUtils.getPaddingAppBar(context, controller.responsiveUtils), : null,
child: _buildAppbar(context))), actionEndNow: controller.manageAccountDashboardController.disableVacationResponder
), );
const Divider(color: AppColor.colorDividerComposer, height: 1), } else if ((controller.manageAccountDashboardController.vacationResponse.value?.vacationResponderIsWaiting == true
Obx(() { || controller.manageAccountDashboardController.vacationResponse.value?.vacationResponderIsStopped == true)
if (controller.manageAccountDashboardController.vacationResponse.value?.vacationResponderIsValid == true) { && controller.manageAccountDashboardController.inVacationSettings()) {
return SafeArea( return VacationNotificationMessageWidget(
top: false, margin: const EdgeInsetsDirectional.only(start: 12, end: 12, top: 8),
bottom: false, fromAccountDashBoard: true,
child: VacationNotificationMessageWidget( vacationResponse: controller.manageAccountDashboardController.vacationResponse.value!,
margin: const EdgeInsetsDirectional.only(start: 12, end: 12, top: 8), padding: const EdgeInsets.symmetric(vertical: 10, horizontal: 16),
fromAccountDashBoard: true, leadingIcon: const Padding(
vacationResponse: controller.manageAccountDashboardController.vacationResponse.value!, padding: EdgeInsetsDirectional.only(end: 12),
actionGotoVacationSetting: !controller.manageAccountDashboardController.inVacationSettings() child: Icon(Icons.timer, size: 20),
? () => controller.manageAccountDashboardController.selectAccountMenuItem(AccountMenuItem.vacation) )
: null, );
actionEndNow: controller.manageAccountDashboardController.disableVacationResponder } else {
), return const SizedBox.shrink();
); }
} else if ((controller.manageAccountDashboardController.vacationResponse.value?.vacationResponderIsWaiting == true }),
|| controller.manageAccountDashboardController.vacationResponse.value?.vacationResponderIsStopped == true) Obx(() {
&& controller.manageAccountDashboardController.inVacationSettings()) { if (controller.manageAccountDashboardController.forwardWarningBannerState.value == BannerState.enabled &&
return SafeArea( controller.manageAccountDashboardController.accountMenuItemSelected.value == AccountMenuItem.forward) {
top: false, return ForwardWarningBanner();
bottom: false, } else {
child: VacationNotificationMessageWidget( return const SizedBox.shrink();
margin: const EdgeInsetsDirectional.only(start: 12, end: 12, top: 8), }
fromAccountDashBoard: true, }),
vacationResponse: controller.manageAccountDashboardController.vacationResponse.value!, Expanded(child: _bodySettingsScreen())
padding: const EdgeInsets.symmetric(vertical: 10, horizontal: 16), ]
leadingIcon: const Padding(
padding: EdgeInsetsDirectional.only(end: 12),
child: Icon(Icons.timer, size: 20),
)
),
);
} else {
return const SizedBox.shrink();
}
}),
Obx(() {
if (controller.manageAccountDashboardController.forwardWarningBannerState.value == BannerState.enabled &&
controller.manageAccountDashboardController.accountMenuItemSelected.value == AccountMenuItem.forward) {
return ForwardWarningBanner();
} else {
return const SizedBox.shrink();
}
}),
Expanded(child: _bodySettingsScreen())
]
),
),
); );
} }
@@ -200,9 +178,7 @@ class SettingsView extends GetWidget<SettingsController> {
return Obx(() { return Obx(() {
switch (controller.manageAccountDashboardController.settingsPageLevel.value) { switch (controller.manageAccountDashboardController.settingsPageLevel.value) {
case SettingsPageLevel.universal: case SettingsPageLevel.universal:
return const SafeArea( return const SettingsFirstLevelView();
top: false,
child: SettingsFirstLevelView());
case SettingsPageLevel.level1: case SettingsPageLevel.level1:
return _viewDisplayedOfAccountMenuItem(); return _viewDisplayedOfAccountMenuItem();
} }
@@ -213,34 +189,24 @@ class SettingsView extends GetWidget<SettingsController> {
return Obx(() { return Obx(() {
switch(controller.manageAccountDashboardController.accountMenuItemSelected.value) { switch(controller.manageAccountDashboardController.accountMenuItemSelected.value) {
case AccountMenuItem.profiles: case AccountMenuItem.profiles:
return SafeArea( return ProfilesView();
top: false,
child: ProfilesView());
case AccountMenuItem.languageAndRegion: case AccountMenuItem.languageAndRegion:
return const SafeArea( return const LanguageAndRegionView();
top: false,
child: LanguageAndRegionView());
case AccountMenuItem.emailRules: case AccountMenuItem.emailRules:
if (controller.manageAccountDashboardController.isRuleFilterCapabilitySupported) { if (controller.manageAccountDashboardController.isRuleFilterCapabilitySupported) {
return SafeArea( return EmailRulesView();
top: false,
child: EmailRulesView());
} else { } else {
return const SizedBox.shrink(); return const SizedBox.shrink();
} }
case AccountMenuItem.alwaysReadReceipt: case AccountMenuItem.alwaysReadReceipt:
if (controller.manageAccountDashboardController.isServerSettingsCapabilitySupported) { if (controller.manageAccountDashboardController.isServerSettingsCapabilitySupported) {
return const SafeArea( return const AlwaysReadReceiptView();
top: false,
child: AlwaysReadReceiptView());
} else { } else {
return const SizedBox.shrink(); return const SizedBox.shrink();
} }
case AccountMenuItem.forward: case AccountMenuItem.forward:
if (controller.manageAccountDashboardController.isForwardCapabilitySupported) { if (controller.manageAccountDashboardController.isForwardCapabilitySupported) {
return SafeArea( return ForwardView();
top: false,
child: ForwardView());
} else { } else {
return const SizedBox.shrink(); return const SizedBox.shrink();
} }
@@ -251,13 +217,9 @@ class SettingsView extends GetWidget<SettingsController> {
return const SizedBox.shrink(); return const SizedBox.shrink();
} }
case AccountMenuItem.mailboxVisibility: case AccountMenuItem.mailboxVisibility:
return SafeArea( return MailboxVisibilityView();
top: false,
child: MailboxVisibilityView());
case AccountMenuItem.notification: case AccountMenuItem.notification:
return const SafeArea( return const NotificationView();
top: false,
child: NotificationView());
default: default:
return const SizedBox.shrink(); return const SizedBox.shrink();
} }