From 7c22a1c821fbaf73b4374682014834bfc1b740e4 Mon Sep 17 00:00:00 2001 From: dab246 Date: Tue, 5 Apr 2022 16:50:26 +0700 Subject: [PATCH] TF-451 Add version information --- .../mailbox/presentation/mailbox_view.dart | 20 +++++++++++++++++++ .../mailbox_dashboard_controller.dart | 10 ++++++++++ lib/l10n/intl_messages.arb | 8 +++++++- lib/main/localizations/app_localizations.dart | 6 ++++++ pubspec.yaml | 2 ++ 5 files changed, 45 insertions(+), 1 deletion(-) diff --git a/lib/features/mailbox/presentation/mailbox_view.dart b/lib/features/mailbox/presentation/mailbox_view.dart index ba257a1c7..dd02e9050 100644 --- a/lib/features/mailbox/presentation/mailbox_view.dart +++ b/lib/features/mailbox/presentation/mailbox_view.dart @@ -4,6 +4,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:get/get.dart'; import 'package:model/model.dart'; +import 'package:package_info_plus/package_info_plus.dart'; import 'package:tmail_ui_user/features/mailbox/presentation/mailbox_controller.dart'; import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_node.dart'; import 'package:tmail_ui_user/features/mailbox/presentation/widgets/bottom_bar_selection_mailbox_widget.dart'; @@ -261,6 +262,13 @@ class MailboxView extends GetWidget { margin: EdgeInsets.only(left: 16, right: 16, bottom: 30), child: _buildFolderMailbox(context), ), + Obx(() { + if (controller.mailboxDashBoardController.appInformation.value != null) { + return _buildVersionInformation(context, controller.mailboxDashBoardController.appInformation.value!); + } else { + return SizedBox.shrink(); + } + }), ] ); } @@ -431,4 +439,16 @@ class MailboxView extends GetWidget { ]); } } + + Widget _buildVersionInformation(BuildContext context, PackageInfo packageInfo) { + return Container( + padding: EdgeInsets.symmetric(vertical: 16, horizontal: 16), + margin: EdgeInsets.only(bottom: 30), + child: Text( + '${AppLocalizations.of(context).version} ${packageInfo.version}', + textAlign: TextAlign.center, + style: TextStyle(fontSize: 16, color: AppColor.colorContentEmail, fontWeight: FontWeight.w500), + ), + ); + } } \ No newline at end of file diff --git a/lib/features/mailbox_dashboard/presentation/mailbox_dashboard_controller.dart b/lib/features/mailbox_dashboard/presentation/mailbox_dashboard_controller.dart index 476dac6df..b2e1f5a52 100644 --- a/lib/features/mailbox_dashboard/presentation/mailbox_dashboard_controller.dart +++ b/lib/features/mailbox_dashboard/presentation/mailbox_dashboard_controller.dart @@ -14,6 +14,7 @@ import 'package:jmap_dart_client/jmap/core/unsigned_int.dart'; import 'package:jmap_dart_client/jmap/mail/email/email.dart'; import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart'; import 'package:model/model.dart'; +import 'package:package_info_plus/package_info_plus.dart'; import 'package:tmail_ui_user/features/base/reloadable/reloadable_controller.dart'; import 'package:tmail_ui_user/features/caching/caching_manager.dart'; import 'package:tmail_ui_user/features/composer/domain/state/save_email_as_drafts_state.dart'; @@ -68,6 +69,7 @@ class MailboxDashBoardController extends ReloadableController { final suggestionSearch = [].obs; final dashBoardAction = DashBoardAction.none.obs; final routePath = AppRoutes.MAILBOX_DASHBOARD.obs; + final appInformation = Rxn(); SearchQuery? searchQuery; Session? sessionCurrent; @@ -97,6 +99,7 @@ class MailboxDashBoardController extends ReloadableController { dispatchRoute(AppRoutes.THREAD); _setSessionCurrent(); _getUserProfile(); + _initPackageInfo(); } @override @@ -194,6 +197,13 @@ class MailboxDashBoardController extends ReloadableController { }); } + Future _initPackageInfo() async { + final info = await PackageInfo.fromPlatform(); + log('MailboxDashBoardController::_initPackageInfo(): ${info.version}'); + appInformation.value = info; + } + + void setMapDefaultMailboxId(Map newMapMailboxId) { mapDefaultMailboxId = newMapMailboxId; } diff --git a/lib/l10n/intl_messages.arb b/lib/l10n/intl_messages.arb index 9a8692500..86861fc30 100644 --- a/lib/l10n/intl_messages.arb +++ b/lib/l10n/intl_messages.arb @@ -1,5 +1,5 @@ { - "@@last_modified": "2022-04-05T16:53:32.520037", + "@@last_modified": "2022-04-05T16:47:07.723009", "initializing_data": "Initializing data...", "@initializing_data": { "type": "text", @@ -1009,5 +1009,11 @@ "type": "text", "placeholders_order": [], "placeholders": {} + }, + "version": "Version", + "@version": { + "type": "text", + "placeholders_order": [], + "placeholders": {} } } \ No newline at end of file diff --git a/lib/main/localizations/app_localizations.dart b/lib/main/localizations/app_localizations.dart index 34af109dc..27f46f72e 100644 --- a/lib/main/localizations/app_localizations.dart +++ b/lib/main/localizations/app_localizations.dart @@ -1063,4 +1063,10 @@ class AppLocalizations { 'All messages has been deleted forever', name: 'toast_message_empty_trash_folder_success'); } + + String get version { + return Intl.message( + 'Version', + name: 'version'); + } } \ No newline at end of file diff --git a/pubspec.yaml b/pubspec.yaml index 80fd3efac..406fe5ab0 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -139,6 +139,8 @@ dependencies: connectivity_plus: 2.2.1 + package_info_plus: 1.4.1 + dev_dependencies: flutter_test: sdk: flutter