TF-1487 Upgrade latest dependencies version
(cherry picked from commit 2ba54a168494f772174b196e3a7b5e4173abcdd9)
This commit is contained in:
@@ -1,6 +1,5 @@
|
||||
import 'package:core/core.dart';
|
||||
import 'package:dropdown_button2/dropdown_button2.dart';
|
||||
import 'package:enough_html_editor/enough_html_editor.dart';
|
||||
import 'package:file_picker/file_picker.dart';
|
||||
import 'package:filesize/filesize.dart';
|
||||
import 'package:flutter/foundation.dart';
|
||||
@@ -9,7 +8,7 @@ import 'package:flutter_svg/flutter_svg.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:jmap_dart_client/jmap/identities/identity.dart';
|
||||
import 'package:model/model.dart';
|
||||
import 'package:rich_text_composer/rich_text_composer.dart' as rich_text_composer;
|
||||
import 'package:rich_text_composer/rich_text_composer.dart';
|
||||
import 'package:rich_text_composer/views/widgets/rich_text_keyboard_toolbar.dart';
|
||||
import 'package:tmail_ui_user/features/base/mixin/app_loader_mixin.dart';
|
||||
import 'package:tmail_ui_user/features/composer/presentation/composer_controller.dart';
|
||||
@@ -84,7 +83,7 @@ class ComposerView extends GetWidget<ComposerController>
|
||||
child: Scaffold(
|
||||
backgroundColor: Colors.black38,
|
||||
body: LayoutBuilder(builder: (context, constraints) {
|
||||
return rich_text_composer.KeyboardRichText(
|
||||
return KeyboardRichText(
|
||||
richTextController: controller.keyboardRichTextController,
|
||||
keyBroadToolbar: RichTextKeyboardToolBar(
|
||||
backgroundKeyboardToolBarColor: AppColor.colorBackgroundKeyboard,
|
||||
@@ -313,7 +312,7 @@ class ComposerView extends GetWidget<ComposerController>
|
||||
)).toList(),
|
||||
onChanged: (newIdentity) => controller.selectIdentity(newIdentity),
|
||||
itemPadding: const EdgeInsets.symmetric(horizontal: 8),
|
||||
customItemsHeight: 55,
|
||||
itemHeight: 55,
|
||||
dropdownMaxHeight: 240,
|
||||
dropdownWidth: 300,
|
||||
dropdownDecoration: BoxDecoration(
|
||||
@@ -435,27 +434,7 @@ class ComposerView extends GetWidget<ComposerController>
|
||||
}
|
||||
|
||||
Widget _buildBodyMobile(BuildContext context, double maxWidth) {
|
||||
return rich_text_composer.KeyboardRichText(
|
||||
child: SingleChildScrollView(
|
||||
controller: controller.scrollController,
|
||||
physics: const ClampingScrollPhysics(),
|
||||
child: Column(children: [
|
||||
Obx(() => controller.identitySelected.value != null
|
||||
? _buildFromEmailAddress(context)
|
||||
: const SizedBox.shrink()),
|
||||
Obx(() => controller.identitySelected.value != null
|
||||
? const Divider(color: AppColor.colorDividerComposer, height: 1)
|
||||
: const SizedBox.shrink()),
|
||||
_buildEmailAddress(context),
|
||||
const Divider(color: AppColor.colorDividerComposer, height: 1),
|
||||
Padding(padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 8), child: _buildSubjectEmail(context)),
|
||||
const Divider(color: AppColor.colorDividerComposer, height: 1),
|
||||
_buildAttachmentsWidget(context),
|
||||
buildInlineLoadingView(controller),
|
||||
_buildComposerEditor(context),
|
||||
])
|
||||
),
|
||||
richTextController: controller.keyboardRichTextController,
|
||||
return KeyboardRichText(
|
||||
keyBroadToolbar: RichTextKeyboardToolBar(
|
||||
backgroundKeyboardToolBarColor: AppColor.colorBackgroundKeyboard,
|
||||
isLandScapeMode: responsiveUtils.isLandscapeMobile(context),
|
||||
@@ -468,6 +447,28 @@ class ComposerView extends GetWidget<ComposerController>
|
||||
titleFormatBottomSheet: AppLocalizations.of(context).titleFormat,
|
||||
titleBack: AppLocalizations.of(context).format,
|
||||
),
|
||||
richTextController: controller.keyboardRichTextController,
|
||||
child: SingleChildScrollView(
|
||||
controller: controller.scrollController,
|
||||
physics: const ClampingScrollPhysics(),
|
||||
child: Column(children: [
|
||||
Obx(() => controller.identitySelected.value != null
|
||||
? _buildFromEmailAddress(context)
|
||||
: const SizedBox.shrink()),
|
||||
Obx(() => controller.identitySelected.value != null
|
||||
? const Divider(color: AppColor.colorDividerComposer, height: 1)
|
||||
: const SizedBox.shrink()),
|
||||
_buildEmailAddress(context),
|
||||
const Divider(color: AppColor.colorDividerComposer, height: 1),
|
||||
Padding(
|
||||
padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 8),
|
||||
child: _buildSubjectEmail(context)),
|
||||
const Divider(color: AppColor.colorDividerComposer, height: 1),
|
||||
_buildAttachmentsWidget(context),
|
||||
buildInlineLoadingView(controller),
|
||||
_buildComposerEditor(context),
|
||||
])
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -435,7 +435,7 @@ class ComposerView extends GetWidget<ComposerController>
|
||||
)).toList(),
|
||||
onChanged: (newIdentity) => controller.selectIdentity(newIdentity),
|
||||
itemPadding: const EdgeInsets.symmetric(horizontal: 8),
|
||||
customItemsHeight: 55,
|
||||
itemHeight: 55,
|
||||
dropdownMaxHeight: 240,
|
||||
dropdownWidth: 370,
|
||||
dropdownDecoration: BoxDecoration(
|
||||
@@ -582,7 +582,7 @@ class ComposerView extends GetWidget<ComposerController>
|
||||
icon: SvgPicture.asset(imagePaths.icAttachmentsComposer,
|
||||
width: 24,
|
||||
height: 24,
|
||||
color: AppColor.colorTextButton,
|
||||
colorFilter: const ColorFilter.mode(AppColor.colorTextButton, BlendMode.srcIn),
|
||||
fit: BoxFit.fill),
|
||||
tooltip: AppLocalizations.of(context).attach_file,
|
||||
onTap: () => controller.openFilePickerByType(context, FileType.any)),
|
||||
@@ -594,8 +594,11 @@ class ComposerView extends GetWidget<ComposerController>
|
||||
child: buildIconWeb(
|
||||
minSize: 40,
|
||||
iconPadding: EdgeInsets.zero,
|
||||
icon: SvgPicture.asset(imagePaths.icInsertImage,
|
||||
color: AppColor.colorTextButton.withOpacity(opacity),
|
||||
icon: SvgPicture.asset(
|
||||
imagePaths.icInsertImage,
|
||||
colorFilter: ColorFilter.mode(
|
||||
AppColor.colorTextButton.withOpacity(opacity),
|
||||
BlendMode.srcIn),
|
||||
fit: BoxFit.fill),
|
||||
tooltip: AppLocalizations.of(context).insertImage,
|
||||
onTap: () => controller.insertImage(context, constraints.maxWidth)),
|
||||
@@ -609,9 +612,10 @@ class ComposerView extends GetWidget<ComposerController>
|
||||
? AppColor.colorSelectedRichTextButton
|
||||
: Colors.transparent,
|
||||
iconPadding: EdgeInsets.zero,
|
||||
icon: SvgPicture.asset(imagePaths.icStyleCodeView,
|
||||
color: AppColor.colorTextButton,
|
||||
fit: BoxFit.fill),
|
||||
icon: SvgPicture.asset(
|
||||
imagePaths.icStyleCodeView,
|
||||
colorFilter: const ColorFilter.mode(AppColor.colorTextButton, BlendMode.srcIn),
|
||||
fit: BoxFit.fill),
|
||||
tooltip: AppLocalizations.of(context).codeView,
|
||||
onTap: () => controller.richTextWebController.toggleCodeView());
|
||||
}),
|
||||
|
||||
@@ -21,7 +21,7 @@ import 'package:model/model.dart';
|
||||
import 'package:better_open_file/better_open_file.dart' as open_file;
|
||||
import 'package:permission_handler/permission_handler.dart';
|
||||
import 'package:pointer_interceptor/pointer_interceptor.dart';
|
||||
import 'package:share/share.dart' as share_library;
|
||||
import 'package:share_plus/share_plus.dart';
|
||||
import 'package:tmail_ui_user/features/base/base_controller.dart';
|
||||
import 'package:tmail_ui_user/features/base/mixin/app_loader_mixin.dart';
|
||||
import 'package:tmail_ui_user/features/composer/presentation/extensions/email_action_type_extension.dart';
|
||||
@@ -445,7 +445,9 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
|
||||
_downloadAttachmentsAction(attachments);
|
||||
break;
|
||||
case PermissionStatus.permanentlyDenied:
|
||||
_appToast.showToast(AppLocalizations.of(context).you_need_to_grant_files_permission_to_download_attachments);
|
||||
if (context.mounted) {
|
||||
_appToast.showToast(AppLocalizations.of(context).you_need_to_grant_files_permission_to_download_attachments);
|
||||
}
|
||||
break;
|
||||
default: {
|
||||
final requested = await Permission.storage.request();
|
||||
@@ -454,7 +456,9 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
|
||||
_downloadAttachmentsAction(attachments);
|
||||
break;
|
||||
default:
|
||||
_appToast.showToast(AppLocalizations.of(context).you_need_to_grant_files_permission_to_download_attachments);
|
||||
if (context.mounted) {
|
||||
_appToast.showToast(AppLocalizations.of(context).you_need_to_grant_files_permission_to_download_attachments);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -536,7 +540,7 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
|
||||
void _openDownloadedPreviewWorkGroupDocument(DownloadedResponse downloadedResponse) async {
|
||||
log('SingleEmailController::_openDownloadedPreviewWorkGroupDocument(): $downloadedResponse');
|
||||
if (downloadedResponse.mediaType == null) {
|
||||
await share_library.Share.shareFiles([downloadedResponse.filePath]);
|
||||
await Share.shareXFiles([XFile(downloadedResponse.filePath)]);
|
||||
}
|
||||
|
||||
final openResult = await open_file.OpenFile.open(
|
||||
@@ -596,10 +600,10 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
|
||||
void moveToMailbox(BuildContext context, PresentationEmail email) async {
|
||||
final currentMailbox = getMailboxContain(email);
|
||||
final accountId = mailboxDashBoardController.accountId.value;
|
||||
final _session = mailboxDashBoardController.sessionCurrent;
|
||||
final session = mailboxDashBoardController.sessionCurrent;
|
||||
|
||||
if (currentMailbox != null && accountId != null) {
|
||||
final arguments = DestinationPickerArguments(accountId, MailboxActions.moveEmail, _session);
|
||||
final arguments = DestinationPickerArguments(accountId, MailboxActions.moveEmail, session);
|
||||
if (BuildUtils.isWeb) {
|
||||
showDialogDestinationPicker(
|
||||
context: context,
|
||||
@@ -621,8 +625,10 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
|
||||
arguments: arguments);
|
||||
|
||||
if (destinationMailbox != null &&
|
||||
destinationMailbox is PresentationMailbox &&
|
||||
mailboxDashBoardController.sessionCurrent != null) {
|
||||
destinationMailbox is PresentationMailbox &&
|
||||
mailboxDashBoardController.sessionCurrent != null &&
|
||||
context.mounted
|
||||
) {
|
||||
_dispatchMoveToAction(
|
||||
context,
|
||||
accountId,
|
||||
@@ -692,7 +698,7 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
|
||||
imagePaths.icFolderMailbox,
|
||||
width: 24,
|
||||
height: 24,
|
||||
color: Colors.white,
|
||||
colorFilter: const ColorFilter.mode(Colors.white, BlendMode.srcIn),
|
||||
fit: BoxFit.fill),
|
||||
backgroundColor: AppColor.toastSuccessBackgroundColor,
|
||||
textColor: Colors.white,
|
||||
@@ -932,7 +938,7 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
|
||||
imagePaths.icNotConnection,
|
||||
width: 24,
|
||||
height: 24,
|
||||
color: Colors.white,
|
||||
colorFilter: const ColorFilter.mode(Colors.white, BlendMode.srcIn),
|
||||
fit: BoxFit.fill),
|
||||
backgroundColor: AppColor.toastErrorBackgroundColor,
|
||||
textColor: Colors.white,
|
||||
@@ -949,7 +955,7 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
|
||||
imagePaths.icNotConnection,
|
||||
width: 24,
|
||||
height: 24,
|
||||
color: Colors.white,
|
||||
colorFilter: const ColorFilter.mode(Colors.white, BlendMode.srcIn),
|
||||
fit: BoxFit.fill),
|
||||
backgroundColor: AppColor.toastErrorBackgroundColor,
|
||||
textColor: Colors.white,
|
||||
@@ -966,7 +972,7 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
|
||||
imagePaths.icNotConnection,
|
||||
width: 24,
|
||||
height: 24,
|
||||
color: Colors.white,
|
||||
colorFilter: const ColorFilter.mode(Colors.white, BlendMode.srcIn),
|
||||
fit: BoxFit.fill),
|
||||
backgroundColor: AppColor.toastErrorBackgroundColor,
|
||||
textColor: Colors.white,
|
||||
|
||||
+2
-2
@@ -32,11 +32,11 @@ class SetDefaultIdentityCheckboxBuilder extends StatelessWidget {
|
||||
decoration: BoxDecoration(
|
||||
borderRadius: BorderRadius.circular(4.0),
|
||||
border: Border.all(color: AppColor.primaryColor, width: 2.0),
|
||||
color: isCheck ? AppColor.primaryColor : Colors.transparent,
|
||||
color: isCheck ? AppColor.primaryColor : Colors.white,
|
||||
),
|
||||
child: SvgPicture.asset(
|
||||
imagePaths.icSelectedSB,
|
||||
color: isCheck ? Colors.white : Colors.transparent,
|
||||
colorFilter: const ColorFilter.mode(Colors.white, BlendMode.srcIn),
|
||||
width: 18,
|
||||
height: 18,
|
||||
)),
|
||||
|
||||
@@ -3,7 +3,7 @@ import 'package:core/presentation/utils/responsive_utils.dart';
|
||||
import 'package:core/presentation/views/responsive/responsive_widget.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:focus_detector/focus_detector.dart';
|
||||
import 'package:focus_detector_v2/focus_detector_v2.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:tmail_ui_user/features/email/presentation/email_view.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox/presentation/mailbox_view.dart';
|
||||
@@ -79,22 +79,31 @@ class MailboxDashBoardView extends BaseMailboxDashBoardView {
|
||||
body: body,
|
||||
drawer: ResponsiveWidget(
|
||||
responsiveUtils: responsiveUtils,
|
||||
mobile: SizedBox(child: MailboxView(), width: double.infinity),
|
||||
mobile: SizedBox(
|
||||
width: double.infinity,
|
||||
child: MailboxView()
|
||||
),
|
||||
landscapeMobile: SizedBox(
|
||||
child: MailboxView(),
|
||||
width: ResponsiveUtils.defaultSizeDrawer),
|
||||
width: ResponsiveUtils.defaultSizeDrawer,
|
||||
child: MailboxView()
|
||||
),
|
||||
tablet: SizedBox(
|
||||
child: MailboxView(),
|
||||
width: ResponsiveUtils.defaultSizeDrawer),
|
||||
width: ResponsiveUtils.defaultSizeDrawer,
|
||||
child: MailboxView()
|
||||
),
|
||||
landscapeTablet: SizedBox(
|
||||
child: MailboxView(),
|
||||
width: ResponsiveUtils.defaultSizeLeftMenuMobile),
|
||||
width: ResponsiveUtils.defaultSizeLeftMenuMobile,
|
||||
child: MailboxView()
|
||||
),
|
||||
tabletLarge: SizedBox(
|
||||
child: MailboxView(),
|
||||
width: ResponsiveUtils.defaultSizeLeftMenuMobile),
|
||||
width: ResponsiveUtils.defaultSizeLeftMenuMobile,
|
||||
child: MailboxView()
|
||||
),
|
||||
desktop: SizedBox(
|
||||
child: MailboxView(),
|
||||
width: ResponsiveUtils.defaultSizeLeftMenuMobile)),
|
||||
width: ResponsiveUtils.defaultSizeLeftMenuMobile,
|
||||
child: MailboxView()
|
||||
)
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user