TF-2667 Create ApplicationVersionWidget to display app version

This commit is contained in:
dab246
2024-03-06 11:14:33 +07:00
committed by Dat H. Pham
parent c9fed1fa41
commit 61687b60e0
20 changed files with 233 additions and 143 deletions
@@ -10,7 +10,6 @@ import 'package:jmap_dart_client/jmap/core/capability/capability_identifier.dart
import 'package:jmap_dart_client/jmap/core/session/session.dart';
import 'package:jmap_dart_client/jmap/mail/vacation/vacation_response.dart';
import 'package:model/model.dart';
import 'package:package_info_plus/package_info_plus.dart';
import 'package:rule_filter/rule_filter/capability_rule_filter.dart';
import 'package:server_settings/server_settings/capability_server_settings.dart';
import 'package:tmail_ui_user/features/base/action/ui_action.dart';
@@ -44,7 +43,6 @@ class ManageAccountDashBoardController extends ReloadableController {
GetAllVacationInteractor? _getAllVacationInteractor;
UpdateVacationInteractor? _updateVacationInteractor;
final appInformation = Rxn<PackageInfo>();
final accountId = Rxn<AccountId>();
final accountMenuItemSelected = AccountMenuItem.profiles.obs;
final settingsPageLevel = SettingsPageLevel.universal.obs;
@@ -66,7 +64,6 @@ class ManageAccountDashBoardController extends ReloadableController {
void onReady() {
_initialPageLevel();
_getArguments();
_getAppVersion();
super.onReady();
}
@@ -151,12 +148,6 @@ class ManageAccountDashBoardController extends ReloadableController {
}
}
Future<void> _getAppVersion() async {
final info = await PackageInfo.fromPlatform();
log('ManageAccountDashBoardController::_getAppVersion(): ${info.version}');
appInformation.value = info;
}
void _getVacationResponse() {
if (accountId.value != null && _getAllVacationInteractor != null) {
consumeState(_getAllVacationInteractor!.execute(accountId.value!));
@@ -9,6 +9,7 @@ import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:model/model.dart';
import 'package:tmail_ui_user/features/base/state/banner_state.dart';
import 'package:tmail_ui_user/features/base/widget/application_version_widget.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/mixin/user_setting_popup_menu_mixin.dart';
import 'package:tmail_ui_user/features/manage_account/presentation/always_read_receipt/always_read_receipt_view.dart';
import 'package:tmail_ui_user/features/manage_account/presentation/email_rules/email_rules_view.dart';
@@ -55,18 +56,9 @@ class ManageAccountDashBoardView extends GetWidget<ManageAccountDashBoardControl
logoSVG: controller.imagePaths.icTMailLogo,
onTapCallback: () => controller.backToMailboxDashBoard(context: context),
),
Obx(() {
if (controller.appInformation.value != null) {
return Padding(padding: const EdgeInsets.only(top: 6),
child: Text(
'v.${controller.appInformation.value!.version}',
textAlign: TextAlign.center,
style: const TextStyle(fontSize: 13, color: AppColor.colorContentEmail, fontWeight: FontWeight.w500),
));
} else {
return const SizedBox.shrink();
}
}),
ApplicationVersionWidget(
applicationManager: controller.applicationManager
)
])
),
Expanded(child: Padding(
@@ -4,6 +4,7 @@ import 'package:core/utils/direction_utils.dart';
import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:get/get.dart';
import 'package:tmail_ui_user/features/base/widget/application_version_widget.dart';
import 'package:tmail_ui_user/features/manage_account/presentation/menu/manage_account_menu_controller.dart';
import 'package:tmail_ui_user/features/manage_account/presentation/menu/widgets/account_menu_item_tile_builder.dart';
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
@@ -31,20 +32,10 @@ class ManageAccountMenuView extends GetWidget<ManageAccountMenuController> {
textStyle: const TextStyle(color: Colors.black, fontSize: 20, fontWeight: FontWeight.bold),
logoSVG: controller.imagePaths.icTMailLogo
),
Obx(() {
if (controller.dashBoardController.appInformation.value != null) {
return Padding(
padding: const EdgeInsets.only(top: 4),
child: Text(
'v.${controller.dashBoardController.appInformation.value!.version}',
textAlign: TextAlign.center,
style: const TextStyle(fontSize: 13, color: AppColor.colorContentEmail, fontWeight: FontWeight.w500),
),
);
} else {
return const SizedBox.shrink();
}
}),
ApplicationVersionWidget(
applicationManager: controller.dashBoardController.applicationManager,
padding: const EdgeInsets.only(top: 4),
)
])
),
if (!controller.responsiveUtils.isWebDesktop(context))