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
@@ -4,7 +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/base/widget/application_version_widget.dart';
import 'package:tmail_ui_user/features/mailbox/presentation/base_mailbox_view.dart';
import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_categories.dart';
import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_node.dart';
@@ -85,13 +85,25 @@ class MailboxView extends BaseMailboxView {
: const SizedBox.shrink(),
),
Obx(() {
final appInformation = controller.mailboxDashBoardController.appInformation.value;
if (appInformation != null
&& !controller.isSelectionEnabled()) {
if (controller.responsiveUtils.isLandscapeMobile(context)) {
return const SizedBox.shrink();
}
return _buildVersionInformation(context, appInformation);
if (!controller.isSelectionEnabled() && controller.responsiveUtils.isPortraitMobile(context)) {
return Container(
color: AppColor.colorBgMailbox,
width: double.infinity,
padding: const EdgeInsets.all(16),
child: SafeArea(
top: false,
child: ApplicationVersionWidget(
applicationManager: controller.applicationManager,
padding: EdgeInsets.zero,
title: '${AppLocalizations.of(context).version} ',
textStyle: Theme.of(context).textTheme.labelMedium?.copyWith(
fontSize: 16,
color: AppColor.colorContentEmail,
fontWeight: FontWeight.w500
),
),
),
);
} else {
return const SizedBox.shrink();
}
@@ -365,20 +377,4 @@ class MailboxView extends BaseMailboxView {
}
}).toList() ?? <Widget>[];
}
Widget _buildVersionInformation(BuildContext context, PackageInfo packageInfo) {
return Container(
color: AppColor.colorBgMailbox,
width: double.infinity,
padding: const EdgeInsets.all(16),
child: SafeArea(
top: false,
child: Text(
'${AppLocalizations.of(context).version} ${packageInfo.version}',
textAlign: TextAlign.center,
style: const TextStyle(fontSize: 16, color: AppColor.colorContentEmail, fontWeight: FontWeight.w500),
),
),
);
}
}
@@ -3,7 +3,7 @@ import 'package:flutter/gestures.dart';
import 'package:flutter/material.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/base/widget/application_version_widget.dart';
import 'package:tmail_ui_user/features/base/widget/scrollbar_list_view.dart';
import 'package:tmail_ui_user/features/mailbox/presentation/base_mailbox_view.dart';
import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_categories.dart';
@@ -68,13 +68,10 @@ class MailboxView extends BaseMailboxView {
textStyle: const TextStyle(color: Colors.black, fontSize: 20, fontWeight: FontWeight.bold),
logoSVG: controller.imagePaths.icTMailLogo
),
Obx(() {
if (controller.mailboxDashBoardController.appInformation.value != null) {
return _buildVersionInformation(context, controller.mailboxDashBoardController.appInformation.value!);
} else {
return const SizedBox.shrink();
}
}),
ApplicationVersionWidget(
applicationManager: controller.mailboxDashBoardController.applicationManager,
padding: const EdgeInsets.only(top: 4),
)
])
);
}
@@ -331,15 +328,4 @@ class MailboxView extends BaseMailboxView {
controller.mailboxDashBoardController.dragSelectedMultipleEmailToMailboxAction(listEmails, presentationMailbox);
}
}
Widget _buildVersionInformation(BuildContext context, PackageInfo packageInfo) {
return Container(
padding: const EdgeInsets.only(top: 4),
child: Text(
'v.${packageInfo.version}',
textAlign: TextAlign.center,
style: const TextStyle(fontSize: 13, color: AppColor.colorContentEmail, fontWeight: FontWeight.w500),
),
);
}
}