TF-1487 Upgrade latest dependencies version
(cherry picked from commit 2ba54a168494f772174b196e3a7b5e4173abcdd9)
This commit is contained in:
+63
-78
@@ -1,9 +1,10 @@
|
||||
PODS:
|
||||
- AppAuth (1.4.0):
|
||||
- AppAuth/Core (= 1.4.0)
|
||||
- AppAuth/ExternalUserAgent (= 1.4.0)
|
||||
- AppAuth/Core (1.4.0)
|
||||
- AppAuth/ExternalUserAgent (1.4.0)
|
||||
- AppAuth (1.6.0):
|
||||
- AppAuth/Core (= 1.6.0)
|
||||
- AppAuth/ExternalUserAgent (= 1.6.0)
|
||||
- AppAuth/Core (1.6.0)
|
||||
- AppAuth/ExternalUserAgent (1.6.0):
|
||||
- AppAuth/Core
|
||||
- better_open_file (0.0.1):
|
||||
- Flutter
|
||||
- connectivity_plus (0.0.1):
|
||||
@@ -52,10 +53,10 @@ PODS:
|
||||
- Firebase/Messaging (10.3.0):
|
||||
- Firebase/CoreOnly
|
||||
- FirebaseMessaging (~> 10.3.0)
|
||||
- firebase_core (2.4.0):
|
||||
- firebase_core (2.7.0):
|
||||
- Firebase/CoreOnly (= 10.3.0)
|
||||
- Flutter
|
||||
- firebase_messaging (14.1.4):
|
||||
- firebase_messaging (14.2.5):
|
||||
- Firebase/Messaging (= 10.3.0)
|
||||
- firebase_core
|
||||
- Flutter
|
||||
@@ -63,9 +64,9 @@ PODS:
|
||||
- FirebaseCoreInternal (~> 10.0)
|
||||
- GoogleUtilities/Environment (~> 7.8)
|
||||
- GoogleUtilities/Logger (~> 7.8)
|
||||
- FirebaseCoreInternal (10.3.0):
|
||||
- FirebaseCoreInternal (10.5.0):
|
||||
- "GoogleUtilities/NSData+zlib (~> 7.8)"
|
||||
- FirebaseInstallations (10.3.0):
|
||||
- FirebaseInstallations (10.5.0):
|
||||
- FirebaseCore (~> 10.0)
|
||||
- GoogleUtilities/Environment (~> 7.8)
|
||||
- GoogleUtilities/UserDefaults (~> 7.8)
|
||||
@@ -83,11 +84,11 @@ PODS:
|
||||
- Flutter
|
||||
- Flutter (1.0.0)
|
||||
- flutter_appauth (0.0.1):
|
||||
- AppAuth (= 1.4.0)
|
||||
- AppAuth (= 1.6.0)
|
||||
- Flutter
|
||||
- flutter_downloader (0.0.1):
|
||||
- Flutter
|
||||
- flutter_image_compress (0.0.1):
|
||||
- flutter_image_compress (1.0.0):
|
||||
- Flutter
|
||||
- Mantle
|
||||
- SDWebImage
|
||||
@@ -108,29 +109,26 @@ PODS:
|
||||
- fluttertoast (0.0.2):
|
||||
- Flutter
|
||||
- Toast
|
||||
- FMDB (2.7.5):
|
||||
- FMDB/standard (= 2.7.5)
|
||||
- FMDB/standard (2.7.5)
|
||||
- GoogleDataTransport (9.2.0):
|
||||
- GoogleDataTransport (9.2.1):
|
||||
- GoogleUtilities/Environment (~> 7.7)
|
||||
- nanopb (< 2.30910.0, >= 2.30908.0)
|
||||
- PromisesObjC (< 3.0, >= 1.2)
|
||||
- GoogleUtilities/AppDelegateSwizzler (7.10.0):
|
||||
- GoogleUtilities/AppDelegateSwizzler (7.11.0):
|
||||
- GoogleUtilities/Environment
|
||||
- GoogleUtilities/Logger
|
||||
- GoogleUtilities/Network
|
||||
- GoogleUtilities/Environment (7.10.0):
|
||||
- GoogleUtilities/Environment (7.11.0):
|
||||
- PromisesObjC (< 3.0, >= 1.2)
|
||||
- GoogleUtilities/Logger (7.10.0):
|
||||
- GoogleUtilities/Logger (7.11.0):
|
||||
- GoogleUtilities/Environment
|
||||
- GoogleUtilities/Network (7.10.0):
|
||||
- GoogleUtilities/Network (7.11.0):
|
||||
- GoogleUtilities/Logger
|
||||
- "GoogleUtilities/NSData+zlib"
|
||||
- GoogleUtilities/Reachability
|
||||
- "GoogleUtilities/NSData+zlib (7.10.0)"
|
||||
- GoogleUtilities/Reachability (7.10.0):
|
||||
- "GoogleUtilities/NSData+zlib (7.11.0)"
|
||||
- GoogleUtilities/Reachability (7.11.0):
|
||||
- GoogleUtilities/Logger
|
||||
- GoogleUtilities/UserDefaults (7.10.0):
|
||||
- GoogleUtilities/UserDefaults (7.11.0):
|
||||
- GoogleUtilities/Logger
|
||||
- libwebp (1.2.4):
|
||||
- libwebp/demux (= 1.2.4)
|
||||
@@ -152,33 +150,30 @@ PODS:
|
||||
- OrderedSet (5.0.0)
|
||||
- package_info_plus (0.4.5):
|
||||
- Flutter
|
||||
- path_provider (0.0.1):
|
||||
- path_provider_foundation (0.0.1):
|
||||
- Flutter
|
||||
- FlutterMacOS
|
||||
- permission_handler_apple (9.0.4):
|
||||
- Flutter
|
||||
- PromisesObjC (2.1.1)
|
||||
- PromisesObjC (2.2.0)
|
||||
- ReachabilitySwift (5.0.0)
|
||||
- receive_sharing_intent (0.0.1):
|
||||
- Flutter
|
||||
- SDWebImage (5.14.2):
|
||||
- SDWebImage/Core (= 5.14.2)
|
||||
- SDWebImage/Core (5.14.2)
|
||||
- SDWebImageWebPCoder (0.9.1):
|
||||
- SDWebImage (5.15.4):
|
||||
- SDWebImage/Core (= 5.15.4)
|
||||
- SDWebImage/Core (5.15.4)
|
||||
- SDWebImageWebPCoder (0.10.1):
|
||||
- libwebp (~> 1.0)
|
||||
- SDWebImage/Core (~> 5.13)
|
||||
- share (0.0.1):
|
||||
- SDWebImage/Core (~> 5.15)
|
||||
- share_plus (0.0.1):
|
||||
- Flutter
|
||||
- shared_preferences (0.0.1):
|
||||
- shared_preferences_foundation (0.0.1):
|
||||
- Flutter
|
||||
- sqflite (0.0.2):
|
||||
- Flutter
|
||||
- FMDB (>= 2.7.5)
|
||||
- SwiftyGif (5.4.3)
|
||||
- FlutterMacOS
|
||||
- SwiftyGif (5.4.4)
|
||||
- Toast (4.0.0)
|
||||
- url_launcher_ios (0.0.1):
|
||||
- Flutter
|
||||
- webview_flutter_wkwebview (0.0.1):
|
||||
- Flutter
|
||||
|
||||
DEPENDENCIES:
|
||||
- better_open_file (from `.symlinks/plugins/better_open_file/ios`)
|
||||
@@ -199,14 +194,12 @@ DEPENDENCIES:
|
||||
- flutter_native_splash (from `.symlinks/plugins/flutter_native_splash/ios`)
|
||||
- fluttertoast (from `.symlinks/plugins/fluttertoast/ios`)
|
||||
- package_info_plus (from `.symlinks/plugins/package_info_plus/ios`)
|
||||
- path_provider (from `.symlinks/plugins/path_provider/ios`)
|
||||
- path_provider_foundation (from `.symlinks/plugins/path_provider_foundation/ios`)
|
||||
- permission_handler_apple (from `.symlinks/plugins/permission_handler_apple/ios`)
|
||||
- receive_sharing_intent (from `.symlinks/plugins/receive_sharing_intent/ios`)
|
||||
- share (from `.symlinks/plugins/share/ios`)
|
||||
- shared_preferences (from `.symlinks/plugins/shared_preferences/ios`)
|
||||
- sqflite (from `.symlinks/plugins/sqflite/ios`)
|
||||
- share_plus (from `.symlinks/plugins/share_plus/ios`)
|
||||
- shared_preferences_foundation (from `.symlinks/plugins/shared_preferences_foundation/ios`)
|
||||
- url_launcher_ios (from `.symlinks/plugins/url_launcher_ios/ios`)
|
||||
- webview_flutter_wkwebview (from `.symlinks/plugins/webview_flutter_wkwebview/ios`)
|
||||
|
||||
SPEC REPOS:
|
||||
trunk:
|
||||
@@ -218,7 +211,6 @@ SPEC REPOS:
|
||||
- FirebaseCoreInternal
|
||||
- FirebaseInstallations
|
||||
- FirebaseMessaging
|
||||
- FMDB
|
||||
- GoogleDataTransport
|
||||
- GoogleUtilities
|
||||
- libwebp
|
||||
@@ -269,71 +261,64 @@ EXTERNAL SOURCES:
|
||||
:path: ".symlinks/plugins/fluttertoast/ios"
|
||||
package_info_plus:
|
||||
:path: ".symlinks/plugins/package_info_plus/ios"
|
||||
path_provider:
|
||||
:path: ".symlinks/plugins/path_provider/ios"
|
||||
path_provider_foundation:
|
||||
:path: ".symlinks/plugins/path_provider_foundation/ios"
|
||||
permission_handler_apple:
|
||||
:path: ".symlinks/plugins/permission_handler_apple/ios"
|
||||
receive_sharing_intent:
|
||||
:path: ".symlinks/plugins/receive_sharing_intent/ios"
|
||||
share:
|
||||
:path: ".symlinks/plugins/share/ios"
|
||||
shared_preferences:
|
||||
:path: ".symlinks/plugins/shared_preferences/ios"
|
||||
sqflite:
|
||||
:path: ".symlinks/plugins/sqflite/ios"
|
||||
share_plus:
|
||||
:path: ".symlinks/plugins/share_plus/ios"
|
||||
shared_preferences_foundation:
|
||||
:path: ".symlinks/plugins/shared_preferences_foundation/ios"
|
||||
url_launcher_ios:
|
||||
:path: ".symlinks/plugins/url_launcher_ios/ios"
|
||||
webview_flutter_wkwebview:
|
||||
:path: ".symlinks/plugins/webview_flutter_wkwebview/ios"
|
||||
|
||||
SPEC CHECKSUMS:
|
||||
AppAuth: 31bcec809a638d7bd2f86ea8a52bd45f6e81e7c7
|
||||
AppAuth: 8fca6b5563a5baef2c04bee27538025e4ceb2add
|
||||
better_open_file: 03cf320415d4d3f46b6e00adc4a567d76c1a399d
|
||||
connectivity_plus: 413a8857dd5d9f1c399a39130850d02fe0feaf7e
|
||||
contacts_service: 849e1f84281804c8bfbec1b4c3eedcb23c5d3eca
|
||||
device_info_plus: e5c5da33f982a436e103237c0c85f9031142abed
|
||||
DKImagePickerController: b512c28220a2b8ac7419f21c491fc8534b7601ac
|
||||
DKPhotoGallery: fdfad5125a9fdda9cc57df834d49df790dbb4179
|
||||
file_picker: 817ab1d8cd2da9d2da412a417162deee3500fc95
|
||||
file_picker: ce3938a0df3cc1ef404671531facef740d03f920
|
||||
Firebase: f92fc551ead69c94168d36c2b26188263860acd9
|
||||
firebase_core: 6f2f753e316765799d88568232ed59e300ff53db
|
||||
firebase_messaging: 4b60bd563e1d21e3fe91afd398b59d0eda79cc60
|
||||
firebase_core: 128d8c43c3a453a4a67463314fc3761bedff860b
|
||||
firebase_messaging: 8ac28baba96e69a58ad26b4bb5f9ee67c3e5efe2
|
||||
FirebaseCore: 988754646ab3bd4bdcb740f1bfe26b9f6c0d5f2a
|
||||
FirebaseCoreInternal: 29b76f784d607df8b2a1259d73c3f04f1210137b
|
||||
FirebaseInstallations: e2f26126089dcf41e215f7b8925af8d953c7d602
|
||||
FirebaseCoreInternal: e463f41bb935cd049505bf7e9a5bdd7dcea90df6
|
||||
FirebaseInstallations: 935bc4abb6f7a035cab7a0c31cb777b2be3dd254
|
||||
FirebaseMessaging: e345b219fd15d325f0cf2fef28cb8ce00d851b3f
|
||||
fk_user_agent: 1f47ec39291e8372b1d692b50084b0d54103c545
|
||||
Flutter: 50d75fe2f02b26cc09d224853bb45737f8b3214a
|
||||
flutter_appauth: 05c3778a1e4ae23364dd2ef37cbae14b244f646b
|
||||
flutter_downloader: 058b9c41564a90500f67f3e432e3524613a7fd83
|
||||
flutter_image_compress: fd2b476345226e1a10ea352fa306af95704642c1
|
||||
flutter_inappwebview: bfd58618f49dc62f2676de690fc6dcda1d6c3721
|
||||
Flutter: f04841e97a9d0b0a8025694d0796dd46242b2854
|
||||
flutter_appauth: 525652bda90e43ca5eb7ed748ecc106b79d1f5a1
|
||||
flutter_downloader: b7301ae057deadd4b1650dc7c05375f10ff12c39
|
||||
flutter_image_compress: 5a5e9aee05b6553048b8df1c3bc456d0afaac433
|
||||
flutter_inappwebview: 4fe74e5e65809c3d363febfd9e2b21aa79bb0f1c
|
||||
flutter_keyboard_visibility: 0339d06371254c3eb25eeb90ba8d17dca8f9c069
|
||||
flutter_local_notifications: 0c0b1ae97e741e1521e4c1629a459d04b9aec743
|
||||
flutter_native_splash: 52501b97d1c0a5f898d687f1646226c1f93c56ef
|
||||
fluttertoast: 6122fa75143e992b1d3470f61000f591a798cc58
|
||||
FMDB: 2ce00b547f966261cd18927a3ddb07cb6f3db82a
|
||||
GoogleDataTransport: 1c8145da7117bd68bbbed00cf304edb6a24de00f
|
||||
GoogleUtilities: bad72cb363809015b1f7f19beb1f1cd23c589f95
|
||||
fluttertoast: eb263d302cc92e04176c053d2385237e9f43fad0
|
||||
GoogleDataTransport: ea169759df570f4e37bdee1623ec32a7e64e67c4
|
||||
GoogleUtilities: c2bdc4cf2ce786c4d2e6b3bcfd599a25ca78f06f
|
||||
libwebp: f62cb61d0a484ba548448a4bd52aabf150ff6eef
|
||||
Mantle: c5aa8794a29a022dfbbfc9799af95f477a69b62d
|
||||
nanopb: b552cce312b6c8484180ef47159bc0f65a1f0431
|
||||
OrderedSet: aaeb196f7fef5a9edf55d89760da9176ad40b93c
|
||||
package_info_plus: 6c92f08e1f853dc01228d6f553146438dafcd14e
|
||||
path_provider: abfe2b5c733d04e238b0d8691db0cfd63a27a93c
|
||||
path_provider_foundation: c68054786f1b4f3343858c1e1d0caaded73f0be9
|
||||
permission_handler_apple: 44366e37eaf29454a1e7b1b7d736c2cceaeb17ce
|
||||
PromisesObjC: ab77feca74fa2823e7af4249b8326368e61014cb
|
||||
PromisesObjC: 09985d6d70fbe7878040aa746d78236e6946d2ef
|
||||
ReachabilitySwift: 985039c6f7b23a1da463388634119492ff86c825
|
||||
receive_sharing_intent: c0d87310754e74c0f9542947e7cbdf3a0335a3b1
|
||||
SDWebImage: b9a731e1d6307f44ca703b3976d18c24ca561e84
|
||||
SDWebImageWebPCoder: 18503de6621dd2c420d680e33d46bf8e1d5169b0
|
||||
share: 0b2c3e82132f5888bccca3351c504d0003b3b410
|
||||
shared_preferences: af6bfa751691cdc24be3045c43ec037377ada40d
|
||||
sqflite: 6d358c025f5b867b29ed92fc697fd34924e11904
|
||||
SwiftyGif: 6c3eafd0ce693cad58bb63d2b2fb9bacb8552780
|
||||
SDWebImage: 1c39de67663e5eebb2f41324d5d580eeea12dd4c
|
||||
SDWebImageWebPCoder: 4851414d9f8894e328e8b97c93ea4f4f4e4418ae
|
||||
share_plus: 056a1e8ac890df3e33cb503afffaf1e9b4fbae68
|
||||
shared_preferences_foundation: 986fc17f3d3251412d18b0265f9c64113a8c2472
|
||||
SwiftyGif: 93a1cc87bf3a51916001cf8f3d63835fb64c819f
|
||||
Toast: 91b396c56ee72a5790816f40d3a94dd357abc196
|
||||
url_launcher_ios: 839c58cdb4279282219f5e248c3321761ff3c4de
|
||||
webview_flutter_wkwebview: b7e70ef1ddded7e69c796c7390ee74180182971f
|
||||
url_launcher_ios: 08a3dfac5fb39e8759aeb0abbd5d9480f30fc8b4
|
||||
|
||||
PODFILE CHECKSUM: e209bf81fb4facf3f68c43dbffa0b2d05ff63db0
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
archiveVersion = 1;
|
||||
classes = {
|
||||
};
|
||||
objectVersion = 51;
|
||||
objectVersion = 54;
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
@@ -301,6 +301,7 @@
|
||||
};
|
||||
3B06AD1E1E4923F5004D2608 /* Thin Binary */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
alwaysOutOfDate = 1;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
@@ -337,6 +338,7 @@
|
||||
};
|
||||
9740EEB61CF901F6004384FC /* Run Script */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
alwaysOutOfDate = 1;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
@@ -448,7 +450,7 @@
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
SDKROOT = iphoneos;
|
||||
SUPPORTED_PLATFORMS = iphoneos;
|
||||
@@ -532,7 +534,7 @@
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
|
||||
MTL_ENABLE_DEBUG_INFO = YES;
|
||||
ONLY_ACTIVE_ARCH = YES;
|
||||
SDKROOT = iphoneos;
|
||||
@@ -581,7 +583,7 @@
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
SDKROOT = iphoneos;
|
||||
SUPPORTED_PLATFORMS = iphoneos;
|
||||
|
||||
@@ -83,5 +83,7 @@
|
||||
<false/>
|
||||
<key>com.apple.developer.mail-client</key>
|
||||
<true/>
|
||||
<key>UIApplicationSupportsIndirectInputEvents</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</plist>
|
||||
|
||||
@@ -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()
|
||||
)
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -23,7 +23,7 @@ class RemoteExceptionThrower extends ExceptionThrower {
|
||||
|
||||
if (error is DioError) {
|
||||
switch (error.type) {
|
||||
case DioErrorType.connectTimeout:
|
||||
case DioErrorType.connectionTimeout:
|
||||
throw const ConnectError();
|
||||
default:
|
||||
if (error.response?.statusCode == 502) {
|
||||
|
||||
+633
-526
File diff suppressed because it is too large
Load Diff
+110
-133
@@ -18,7 +18,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev
|
||||
version: 0.7.1
|
||||
|
||||
environment:
|
||||
sdk: ">=2.17.0 <3.0.0"
|
||||
sdk: ">=2.19.2 <3.0.0"
|
||||
|
||||
dependencies:
|
||||
flutter:
|
||||
@@ -45,170 +45,141 @@ dependencies:
|
||||
fcm:
|
||||
path: fcm
|
||||
|
||||
### Dependencies from git ###
|
||||
rich_text_composer:
|
||||
git:
|
||||
url: https://github.com/linagora/rich-text-composer.git
|
||||
ref: firebase_integration
|
||||
# The following adds the Cupertino Icons font to your application.
|
||||
# Use with the CupertinoIcons class for iOS style icons.
|
||||
cupertino_icons: ^1.0.2
|
||||
ref: upgrade-latest-flutter-version
|
||||
|
||||
# GetX
|
||||
get: 4.6.5
|
||||
html_editor_enhanced:
|
||||
git:
|
||||
url: https://github.com/linagora/html-editor-enhanced.git
|
||||
ref: upgrade-latest-flutter-version
|
||||
|
||||
# intl
|
||||
intl_generator: 0.3.0
|
||||
|
||||
# flutter_svg
|
||||
flutter_svg: 1.1.0
|
||||
|
||||
# Http client
|
||||
dio: 4.0.6
|
||||
|
||||
# equatable
|
||||
equatable: 2.0.3
|
||||
|
||||
# shared_preferences
|
||||
shared_preferences: 2.0.5
|
||||
|
||||
# either
|
||||
dartz: 0.10.1
|
||||
|
||||
# flutter_dotenv
|
||||
flutter_dotenv: 5.0.2
|
||||
|
||||
# flutter_typeahead
|
||||
flutter_typeahead: 3.2.7
|
||||
|
||||
built_collection: 5.1.1
|
||||
|
||||
textfield_tags: ^2.0.1
|
||||
|
||||
# jmap_dart_client
|
||||
jmap_dart_client:
|
||||
git:
|
||||
url: https://github.com/linagora/jmap-dart-client.git
|
||||
ref: master
|
||||
ref: upgrade-latest-flutter-version
|
||||
|
||||
# http_parser
|
||||
http_parser: 4.0.0
|
||||
|
||||
collection: 1.16.0
|
||||
|
||||
# file_size
|
||||
filesize: 2.0.1
|
||||
|
||||
# super_tag_editor
|
||||
super_tag_editor:
|
||||
git:
|
||||
url: https://github.com/dab246/super_tag_editor.git
|
||||
ref: master
|
||||
# uuid
|
||||
uuid: 3.0.4
|
||||
ref: upgrade/upgrade-flutter-version-to-v3.7.5
|
||||
|
||||
# flutter_downloader
|
||||
flutter_downloader: 1.7.0
|
||||
|
||||
# external_path
|
||||
external_path: 1.0.1
|
||||
|
||||
# path_provider
|
||||
path_provider: 2.0.3
|
||||
|
||||
# device_info_plus
|
||||
device_info_plus: 4.0.2
|
||||
|
||||
# permission_handler
|
||||
permission_handler: 10.2.0
|
||||
|
||||
# share
|
||||
share: 2.0.4
|
||||
|
||||
# flutter_contacts
|
||||
contacts_service:
|
||||
git:
|
||||
url: https://github.com/linagora/flutter_contacts.git
|
||||
ref: master
|
||||
|
||||
# file_picker
|
||||
file_picker: 5.0.1
|
||||
|
||||
# hive
|
||||
hive: 2.0.4
|
||||
|
||||
# html_editor_enhanced: Compose email for Web Browser
|
||||
html_editor_enhanced:
|
||||
git:
|
||||
url: https://github.com/linagora/html-editor-enhanced.git
|
||||
ref: email_supported
|
||||
|
||||
# fk_user_agent
|
||||
fk_user_agent: 2.1.0
|
||||
|
||||
pointer_interceptor: 0.9.1
|
||||
|
||||
rxdart: 0.27.3
|
||||
|
||||
connectivity_plus: 2.2.1
|
||||
|
||||
package_info_plus: 1.4.3
|
||||
|
||||
receive_sharing_intent:
|
||||
git:
|
||||
url: https://github.com/KasemJaffer/receive_sharing_intent.git
|
||||
ref: master
|
||||
|
||||
dropdown_button2: 1.4.0
|
||||
|
||||
flutter_staggered_grid_view: 0.6.1
|
||||
|
||||
flutter_portal: 1.1.0
|
||||
|
||||
timeago: 3.2.2
|
||||
|
||||
better_open_file: 3.6.3
|
||||
|
||||
# OIDC Mobile
|
||||
flutter_appauth: 4.0.0
|
||||
|
||||
# OIDC Web
|
||||
flutter_appauth_web:
|
||||
git:
|
||||
url: https://github.com/CarlosPacheco/flutter_appauth_web.git
|
||||
ref: main
|
||||
|
||||
flutter_date_range_picker:
|
||||
git:
|
||||
url: https://github.com/linagora/flutter-date-range-picker.git
|
||||
ref: upgrade-latest-flutter-version
|
||||
|
||||
### Dependencies from pub.dev ###
|
||||
cupertino_icons: ^1.0.5
|
||||
|
||||
get: 4.6.5
|
||||
|
||||
intl_generator: 0.4.1
|
||||
|
||||
flutter_svg: 2.0.2
|
||||
|
||||
dio: 5.0.0
|
||||
|
||||
equatable: 2.0.5
|
||||
|
||||
shared_preferences: 2.0.18
|
||||
|
||||
dartz: 0.10.1
|
||||
|
||||
flutter_dotenv: 5.0.2
|
||||
|
||||
flutter_typeahead: 4.3.6
|
||||
|
||||
built_collection: 5.1.1
|
||||
|
||||
textfield_tags: 2.0.2
|
||||
|
||||
http_parser: 4.0.2
|
||||
|
||||
# flutter_test from sdk depends on collection 1.17.0
|
||||
collection: 1.17.0
|
||||
|
||||
filesize: 2.0.1
|
||||
|
||||
uuid: 3.0.7
|
||||
|
||||
flutter_downloader: 1.10.2
|
||||
|
||||
external_path: 1.0.3
|
||||
|
||||
path_provider: 2.0.13
|
||||
|
||||
device_info_plus: 8.1.0
|
||||
|
||||
permission_handler: 10.2.0
|
||||
|
||||
share_plus: 6.3.1
|
||||
|
||||
file_picker: 5.2.5
|
||||
|
||||
hive: 2.2.3
|
||||
|
||||
fk_user_agent: 2.1.0
|
||||
|
||||
pointer_interceptor: ^0.9.3+4
|
||||
|
||||
rxdart: 0.27.7
|
||||
|
||||
connectivity_plus: 3.0.3
|
||||
|
||||
package_info_plus: 3.0.3
|
||||
|
||||
dropdown_button2: 1.9.4
|
||||
|
||||
flutter_staggered_grid_view: 0.6.2
|
||||
|
||||
flutter_portal: 1.1.3
|
||||
|
||||
# flutter_localizations depends on intl 0.17.0
|
||||
timeago: 3.3.0
|
||||
|
||||
better_open_file: 3.6.4
|
||||
|
||||
flutter_appauth: 4.2.1
|
||||
|
||||
percent_indicator: 4.2.2
|
||||
|
||||
# Isolate
|
||||
worker_manager: 4.4.0
|
||||
worker_manager: 5.0.3
|
||||
|
||||
async: 2.8.2
|
||||
async: 2.10.0
|
||||
|
||||
# HTML5 parser
|
||||
html: 0.15.0
|
||||
html: 0.15.1
|
||||
|
||||
custom_pop_up_menu: 1.2.4
|
||||
|
||||
byte_converter: 1.3.0
|
||||
|
||||
json_annotation: 4.5.0
|
||||
json_annotation: 4.8.0
|
||||
|
||||
flutter_date_range_picker:
|
||||
git:
|
||||
url: https://github.com/linagora/flutter-date-range-picker.git
|
||||
ref: master
|
||||
url_launcher: 6.1.10
|
||||
|
||||
url_launcher: 6.1.5
|
||||
firebase_core: 2.7.0
|
||||
|
||||
firebase_core: 2.4.0
|
||||
firebase_messaging: 14.2.5
|
||||
|
||||
firebase_messaging: 14.1.4
|
||||
|
||||
flutter_local_notifications: 12.0.3
|
||||
|
||||
# https://pub.dev/packages/focus_detector
|
||||
# Use for flutter 3.0.5 https://github.com/EdsonBueno/focus_detector/pull/14
|
||||
focus_detector:
|
||||
git: https://github.com/ifnyas/focus_detector.git
|
||||
flutter_local_notifications: 13.0.0
|
||||
|
||||
html_unescape: 2.0.0
|
||||
|
||||
@@ -216,25 +187,31 @@ dependencies:
|
||||
|
||||
focused_menu_custom: 1.2.0
|
||||
|
||||
focus_detector_v2: 3.0.0+2
|
||||
|
||||
dev_dependencies:
|
||||
flutter_test:
|
||||
sdk: flutter
|
||||
|
||||
build_runner: 2.1.11
|
||||
build_runner: 2.3.3
|
||||
|
||||
mockito: 5.2.0
|
||||
mockito: 5.3.2
|
||||
|
||||
hive_generator: 1.1.3
|
||||
hive_generator: 2.0.0
|
||||
|
||||
flutter_lints: 1.0.4
|
||||
flutter_lints: ^2.0.1
|
||||
|
||||
flutter_launcher_icons: 0.9.3
|
||||
flutter_native_splash: 2.2.18
|
||||
|
||||
flutter_native_splash: 2.2.3+1
|
||||
# flutter_native_splash >=2.2.18 and enough_html_editor depends on image ^4.0.15
|
||||
flutter_launcher_icons:
|
||||
git:
|
||||
url: https://github.com/dab246/flutter_launcher_icons.git
|
||||
ref: upgrade-dependencies
|
||||
|
||||
xml: 6.1.0
|
||||
xml: 6.2.2
|
||||
|
||||
json_serializable: 6.2.0
|
||||
json_serializable: 6.6.1
|
||||
# For information on the generic Dart part of this file, see the
|
||||
# following page: https://dart.dev/tools/pub/pubspec
|
||||
|
||||
|
||||
+142
-75
@@ -1,27 +1,28 @@
|
||||
// Mocks generated by Mockito 5.2.0 from annotations
|
||||
// Mocks generated by Mockito 5.3.2 from annotations
|
||||
// in tmail_ui_user/test/features/thread/domain/usecases/get_emails_in_mailbox_interactor_test.dart.
|
||||
// Do not manually edit this file.
|
||||
|
||||
// ignore_for_file: no_leading_underscores_for_library_prefixes
|
||||
import 'dart:async' as _i3;
|
||||
import 'dart:async' as _i4;
|
||||
|
||||
import 'package:jmap_dart_client/jmap/account_id.dart' as _i5;
|
||||
import 'package:jmap_dart_client/jmap/core/filter/filter.dart' as _i13;
|
||||
import 'package:jmap_dart_client/jmap/core/properties/properties.dart' as _i9;
|
||||
import 'package:jmap_dart_client/jmap/core/sort/comparator.dart' as _i7;
|
||||
import 'package:jmap_dart_client/jmap/core/state.dart' as _i10;
|
||||
import 'package:jmap_dart_client/jmap/core/unsigned_int.dart' as _i6;
|
||||
import 'package:jmap_dart_client/jmap/mail/email/email.dart' as _i12;
|
||||
import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart' as _i14;
|
||||
import 'package:jmap_dart_client/jmap/account_id.dart' as _i6;
|
||||
import 'package:jmap_dart_client/jmap/core/filter/filter.dart' as _i14;
|
||||
import 'package:jmap_dart_client/jmap/core/properties/properties.dart' as _i10;
|
||||
import 'package:jmap_dart_client/jmap/core/sort/comparator.dart' as _i8;
|
||||
import 'package:jmap_dart_client/jmap/core/state.dart' as _i11;
|
||||
import 'package:jmap_dart_client/jmap/core/unsigned_int.dart' as _i7;
|
||||
import 'package:jmap_dart_client/jmap/mail/email/email.dart' as _i13;
|
||||
import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart' as _i15;
|
||||
import 'package:mockito/mockito.dart' as _i1;
|
||||
import 'package:model/email/presentation_email.dart' as _i2;
|
||||
import 'package:tmail_ui_user/features/thread/domain/model/email_filter.dart'
|
||||
as _i8;
|
||||
as _i9;
|
||||
import 'package:tmail_ui_user/features/thread/domain/model/email_response.dart'
|
||||
as _i4;
|
||||
as _i5;
|
||||
import 'package:tmail_ui_user/features/thread/domain/model/get_email_request.dart'
|
||||
as _i11;
|
||||
as _i12;
|
||||
import 'package:tmail_ui_user/features/thread/domain/repository/thread_repository.dart'
|
||||
as _i2;
|
||||
as _i3;
|
||||
|
||||
// ignore_for_file: type=lint
|
||||
// ignore_for_file: avoid_redundant_argument_values
|
||||
@@ -32,81 +33,147 @@ import 'package:tmail_ui_user/features/thread/domain/repository/thread_repositor
|
||||
// ignore_for_file: prefer_const_constructors
|
||||
// ignore_for_file: unnecessary_parenthesis
|
||||
// ignore_for_file: camel_case_types
|
||||
// ignore_for_file: subtype_of_sealed_class
|
||||
|
||||
class _FakePresentationEmail_0 extends _i1.SmartFake
|
||||
implements _i2.PresentationEmail {
|
||||
_FakePresentationEmail_0(
|
||||
Object parent,
|
||||
Invocation parentInvocation,
|
||||
) : super(
|
||||
parent,
|
||||
parentInvocation,
|
||||
);
|
||||
}
|
||||
|
||||
/// A class which mocks [ThreadRepository].
|
||||
///
|
||||
/// See the documentation for Mockito's code generation for more information.
|
||||
class MockThreadRepository extends _i1.Mock implements _i2.ThreadRepository {
|
||||
class MockThreadRepository extends _i1.Mock implements _i3.ThreadRepository {
|
||||
MockThreadRepository() {
|
||||
_i1.throwOnMissingStub(this);
|
||||
}
|
||||
|
||||
@override
|
||||
_i3.Stream<_i4.EmailsResponse> getAllEmail(_i5.AccountId? accountId,
|
||||
{_i6.UnsignedInt? limit,
|
||||
Set<_i7.Comparator>? sort,
|
||||
_i8.EmailFilter? emailFilter,
|
||||
_i9.Properties? propertiesCreated,
|
||||
_i9.Properties? propertiesUpdated}) =>
|
||||
_i4.Stream<_i5.EmailsResponse> getAllEmail(
|
||||
_i6.AccountId? accountId, {
|
||||
_i7.UnsignedInt? limit,
|
||||
Set<_i8.Comparator>? sort,
|
||||
_i9.EmailFilter? emailFilter,
|
||||
_i10.Properties? propertiesCreated,
|
||||
_i10.Properties? propertiesUpdated,
|
||||
}) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(#getAllEmail, [
|
||||
accountId
|
||||
], {
|
||||
#limit: limit,
|
||||
#sort: sort,
|
||||
#emailFilter: emailFilter,
|
||||
#propertiesCreated: propertiesCreated,
|
||||
#propertiesUpdated: propertiesUpdated
|
||||
}),
|
||||
returnValue: Stream<_i4.EmailsResponse>.empty())
|
||||
as _i3.Stream<_i4.EmailsResponse>);
|
||||
Invocation.method(
|
||||
#getAllEmail,
|
||||
[accountId],
|
||||
{
|
||||
#limit: limit,
|
||||
#sort: sort,
|
||||
#emailFilter: emailFilter,
|
||||
#propertiesCreated: propertiesCreated,
|
||||
#propertiesUpdated: propertiesUpdated,
|
||||
},
|
||||
),
|
||||
returnValue: _i4.Stream<_i5.EmailsResponse>.empty(),
|
||||
) as _i4.Stream<_i5.EmailsResponse>);
|
||||
@override
|
||||
_i3.Stream<_i4.EmailsResponse> refreshChanges(
|
||||
_i5.AccountId? accountId, _i10.State? currentState,
|
||||
{Set<_i7.Comparator>? sort,
|
||||
_i8.EmailFilter? emailFilter,
|
||||
_i9.Properties? propertiesCreated,
|
||||
_i9.Properties? propertiesUpdated}) =>
|
||||
_i4.Stream<_i5.EmailsResponse> refreshChanges(
|
||||
_i6.AccountId? accountId,
|
||||
_i11.State? currentState, {
|
||||
Set<_i8.Comparator>? sort,
|
||||
_i9.EmailFilter? emailFilter,
|
||||
_i10.Properties? propertiesCreated,
|
||||
_i10.Properties? propertiesUpdated,
|
||||
}) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(#refreshChanges, [
|
||||
accountId,
|
||||
currentState
|
||||
], {
|
||||
#sort: sort,
|
||||
#emailFilter: emailFilter,
|
||||
#propertiesCreated: propertiesCreated,
|
||||
#propertiesUpdated: propertiesUpdated
|
||||
}),
|
||||
returnValue: Stream<_i4.EmailsResponse>.empty())
|
||||
as _i3.Stream<_i4.EmailsResponse>);
|
||||
Invocation.method(
|
||||
#refreshChanges,
|
||||
[
|
||||
accountId,
|
||||
currentState,
|
||||
],
|
||||
{
|
||||
#sort: sort,
|
||||
#emailFilter: emailFilter,
|
||||
#propertiesCreated: propertiesCreated,
|
||||
#propertiesUpdated: propertiesUpdated,
|
||||
},
|
||||
),
|
||||
returnValue: _i4.Stream<_i5.EmailsResponse>.empty(),
|
||||
) as _i4.Stream<_i5.EmailsResponse>);
|
||||
@override
|
||||
_i3.Stream<_i4.EmailsResponse> loadMoreEmails(
|
||||
_i11.GetEmailRequest? emailRequest) =>
|
||||
(super.noSuchMethod(Invocation.method(#loadMoreEmails, [emailRequest]),
|
||||
returnValue: Stream<_i4.EmailsResponse>.empty())
|
||||
as _i3.Stream<_i4.EmailsResponse>);
|
||||
@override
|
||||
_i3.Future<List<_i12.Email>> searchEmails(_i5.AccountId? accountId,
|
||||
{_i6.UnsignedInt? limit,
|
||||
Set<_i7.Comparator>? sort,
|
||||
_i13.Filter? filter,
|
||||
_i9.Properties? properties}) =>
|
||||
_i4.Stream<_i5.EmailsResponse> loadMoreEmails(
|
||||
_i12.GetEmailRequest? emailRequest) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(#searchEmails, [
|
||||
accountId
|
||||
], {
|
||||
#limit: limit,
|
||||
#sort: sort,
|
||||
#filter: filter,
|
||||
#properties: properties
|
||||
}),
|
||||
returnValue: Future<List<_i12.Email>>.value(<_i12.Email>[]))
|
||||
as _i3.Future<List<_i12.Email>>);
|
||||
Invocation.method(
|
||||
#loadMoreEmails,
|
||||
[emailRequest],
|
||||
),
|
||||
returnValue: _i4.Stream<_i5.EmailsResponse>.empty(),
|
||||
) as _i4.Stream<_i5.EmailsResponse>);
|
||||
@override
|
||||
_i3.Future<List<_i12.EmailId>> emptyTrashFolder(
|
||||
_i5.AccountId? accountId, _i14.MailboxId? trashMailboxId) =>
|
||||
_i4.Future<List<_i13.Email>> searchEmails(
|
||||
_i6.AccountId? accountId, {
|
||||
_i7.UnsignedInt? limit,
|
||||
Set<_i8.Comparator>? sort,
|
||||
_i14.Filter? filter,
|
||||
_i10.Properties? properties,
|
||||
}) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(#emptyTrashFolder, [accountId, trashMailboxId]),
|
||||
returnValue: Future<List<_i12.EmailId>>.value(<_i12.EmailId>[]))
|
||||
as _i3.Future<List<_i12.EmailId>>);
|
||||
Invocation.method(
|
||||
#searchEmails,
|
||||
[accountId],
|
||||
{
|
||||
#limit: limit,
|
||||
#sort: sort,
|
||||
#filter: filter,
|
||||
#properties: properties,
|
||||
},
|
||||
),
|
||||
returnValue: _i4.Future<List<_i13.Email>>.value(<_i13.Email>[]),
|
||||
) as _i4.Future<List<_i13.Email>>);
|
||||
@override
|
||||
_i4.Future<List<_i13.EmailId>> emptyTrashFolder(
|
||||
_i6.AccountId? accountId,
|
||||
_i15.MailboxId? trashMailboxId,
|
||||
) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#emptyTrashFolder,
|
||||
[
|
||||
accountId,
|
||||
trashMailboxId,
|
||||
],
|
||||
),
|
||||
returnValue: _i4.Future<List<_i13.EmailId>>.value(<_i13.EmailId>[]),
|
||||
) as _i4.Future<List<_i13.EmailId>>);
|
||||
@override
|
||||
_i4.Future<_i2.PresentationEmail> getEmailById(
|
||||
_i6.AccountId? accountId,
|
||||
_i13.EmailId? emailId, {
|
||||
_i10.Properties? properties,
|
||||
}) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#getEmailById,
|
||||
[
|
||||
accountId,
|
||||
emailId,
|
||||
],
|
||||
{#properties: properties},
|
||||
),
|
||||
returnValue:
|
||||
_i4.Future<_i2.PresentationEmail>.value(_FakePresentationEmail_0(
|
||||
this,
|
||||
Invocation.method(
|
||||
#getEmailById,
|
||||
[
|
||||
accountId,
|
||||
emailId,
|
||||
],
|
||||
{#properties: properties},
|
||||
),
|
||||
)),
|
||||
) as _i4.Future<_i2.PresentationEmail>);
|
||||
}
|
||||
|
||||
+143
-76
@@ -1,27 +1,28 @@
|
||||
// Mocks generated by Mockito 5.2.0 from annotations
|
||||
// Mocks generated by Mockito 5.3.2 from annotations
|
||||
// in tmail_ui_user/test/features/thread/domain/usecases/refresh_changes_emails_in_mailbox_interactor_test.dart.
|
||||
// Do not manually edit this file.
|
||||
|
||||
// ignore_for_file: no_leading_underscores_for_library_prefixes
|
||||
import 'dart:async' as _i3;
|
||||
import 'dart:async' as _i4;
|
||||
|
||||
import 'package:jmap_dart_client/jmap/account_id.dart' as _i5;
|
||||
import 'package:jmap_dart_client/jmap/core/filter/filter.dart' as _i13;
|
||||
import 'package:jmap_dart_client/jmap/core/properties/properties.dart' as _i9;
|
||||
import 'package:jmap_dart_client/jmap/core/sort/comparator.dart' as _i7;
|
||||
import 'package:jmap_dart_client/jmap/core/state.dart' as _i10;
|
||||
import 'package:jmap_dart_client/jmap/core/unsigned_int.dart' as _i6;
|
||||
import 'package:jmap_dart_client/jmap/mail/email/email.dart' as _i12;
|
||||
import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart' as _i14;
|
||||
import 'package:jmap_dart_client/jmap/account_id.dart' as _i6;
|
||||
import 'package:jmap_dart_client/jmap/core/filter/filter.dart' as _i14;
|
||||
import 'package:jmap_dart_client/jmap/core/properties/properties.dart' as _i10;
|
||||
import 'package:jmap_dart_client/jmap/core/sort/comparator.dart' as _i8;
|
||||
import 'package:jmap_dart_client/jmap/core/state.dart' as _i11;
|
||||
import 'package:jmap_dart_client/jmap/core/unsigned_int.dart' as _i7;
|
||||
import 'package:jmap_dart_client/jmap/mail/email/email.dart' as _i13;
|
||||
import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart' as _i15;
|
||||
import 'package:mockito/mockito.dart' as _i1;
|
||||
import 'package:model/email/presentation_email.dart' as _i2;
|
||||
import 'package:tmail_ui_user/features/thread/domain/model/email_filter.dart'
|
||||
as _i8;
|
||||
as _i9;
|
||||
import 'package:tmail_ui_user/features/thread/domain/model/email_response.dart'
|
||||
as _i4;
|
||||
as _i5;
|
||||
import 'package:tmail_ui_user/features/thread/domain/model/get_email_request.dart'
|
||||
as _i11;
|
||||
as _i12;
|
||||
import 'package:tmail_ui_user/features/thread/domain/repository/thread_repository.dart'
|
||||
as _i2;
|
||||
as _i3;
|
||||
|
||||
// ignore_for_file: type=lint
|
||||
// ignore_for_file: avoid_redundant_argument_values
|
||||
@@ -32,81 +33,147 @@ import 'package:tmail_ui_user/features/thread/domain/repository/thread_repositor
|
||||
// ignore_for_file: prefer_const_constructors
|
||||
// ignore_for_file: unnecessary_parenthesis
|
||||
// ignore_for_file: camel_case_types
|
||||
// ignore_for_file: subtype_of_sealed_class
|
||||
|
||||
class _FakePresentationEmail_0 extends _i1.SmartFake
|
||||
implements _i2.PresentationEmail {
|
||||
_FakePresentationEmail_0(
|
||||
Object parent,
|
||||
Invocation parentInvocation,
|
||||
) : super(
|
||||
parent,
|
||||
parentInvocation,
|
||||
);
|
||||
}
|
||||
|
||||
/// A class which mocks [ThreadRepository].
|
||||
///
|
||||
/// See the documentation for Mockito's code generation for more information.
|
||||
class MockThreadRepository extends _i1.Mock implements _i2.ThreadRepository {
|
||||
class MockThreadRepository extends _i1.Mock implements _i3.ThreadRepository {
|
||||
MockThreadRepository() {
|
||||
_i1.throwOnMissingStub(this);
|
||||
}
|
||||
|
||||
@override
|
||||
_i3.Stream<_i4.EmailsResponse> getAllEmail(_i5.AccountId? accountId,
|
||||
{_i6.UnsignedInt? limit,
|
||||
Set<_i7.Comparator>? sort,
|
||||
_i8.EmailFilter? emailFilter,
|
||||
_i9.Properties? propertiesCreated,
|
||||
_i9.Properties? propertiesUpdated}) =>
|
||||
_i4.Stream<_i5.EmailsResponse> getAllEmail(
|
||||
_i6.AccountId? accountId, {
|
||||
_i7.UnsignedInt? limit,
|
||||
Set<_i8.Comparator>? sort,
|
||||
_i9.EmailFilter? emailFilter,
|
||||
_i10.Properties? propertiesCreated,
|
||||
_i10.Properties? propertiesUpdated,
|
||||
}) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(#getAllEmail, [
|
||||
accountId
|
||||
], {
|
||||
#limit: limit,
|
||||
#sort: sort,
|
||||
#emailFilter: emailFilter,
|
||||
#propertiesCreated: propertiesCreated,
|
||||
#propertiesUpdated: propertiesUpdated
|
||||
}),
|
||||
returnValue: Stream<_i4.EmailsResponse>.empty())
|
||||
as _i3.Stream<_i4.EmailsResponse>);
|
||||
Invocation.method(
|
||||
#getAllEmail,
|
||||
[accountId],
|
||||
{
|
||||
#limit: limit,
|
||||
#sort: sort,
|
||||
#emailFilter: emailFilter,
|
||||
#propertiesCreated: propertiesCreated,
|
||||
#propertiesUpdated: propertiesUpdated,
|
||||
},
|
||||
),
|
||||
returnValue: _i4.Stream<_i5.EmailsResponse>.empty(),
|
||||
) as _i4.Stream<_i5.EmailsResponse>);
|
||||
@override
|
||||
_i3.Stream<_i4.EmailsResponse> refreshChanges(
|
||||
_i5.AccountId? accountId, _i10.State? currentState,
|
||||
{Set<_i7.Comparator>? sort,
|
||||
_i8.EmailFilter? emailFilter,
|
||||
_i9.Properties? propertiesCreated,
|
||||
_i9.Properties? propertiesUpdated}) =>
|
||||
_i4.Stream<_i5.EmailsResponse> refreshChanges(
|
||||
_i6.AccountId? accountId,
|
||||
_i11.State? currentState, {
|
||||
Set<_i8.Comparator>? sort,
|
||||
_i9.EmailFilter? emailFilter,
|
||||
_i10.Properties? propertiesCreated,
|
||||
_i10.Properties? propertiesUpdated,
|
||||
}) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(#refreshChanges, [
|
||||
accountId,
|
||||
currentState
|
||||
], {
|
||||
#sort: sort,
|
||||
#emailFilter: emailFilter,
|
||||
#propertiesCreated: propertiesCreated,
|
||||
#propertiesUpdated: propertiesUpdated
|
||||
}),
|
||||
returnValue: Stream<_i4.EmailsResponse>.empty())
|
||||
as _i3.Stream<_i4.EmailsResponse>);
|
||||
Invocation.method(
|
||||
#refreshChanges,
|
||||
[
|
||||
accountId,
|
||||
currentState,
|
||||
],
|
||||
{
|
||||
#sort: sort,
|
||||
#emailFilter: emailFilter,
|
||||
#propertiesCreated: propertiesCreated,
|
||||
#propertiesUpdated: propertiesUpdated,
|
||||
},
|
||||
),
|
||||
returnValue: _i4.Stream<_i5.EmailsResponse>.empty(),
|
||||
) as _i4.Stream<_i5.EmailsResponse>);
|
||||
@override
|
||||
_i3.Stream<_i4.EmailsResponse> loadMoreEmails(
|
||||
_i11.GetEmailRequest? emailRequest) =>
|
||||
(super.noSuchMethod(Invocation.method(#loadMoreEmails, [emailRequest]),
|
||||
returnValue: Stream<_i4.EmailsResponse>.empty())
|
||||
as _i3.Stream<_i4.EmailsResponse>);
|
||||
@override
|
||||
_i3.Future<List<_i12.Email>> searchEmails(_i5.AccountId? accountId,
|
||||
{_i6.UnsignedInt? limit,
|
||||
Set<_i7.Comparator>? sort,
|
||||
_i13.Filter? filter,
|
||||
_i9.Properties? properties}) =>
|
||||
_i4.Stream<_i5.EmailsResponse> loadMoreEmails(
|
||||
_i12.GetEmailRequest? emailRequest) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(#searchEmails, [
|
||||
accountId
|
||||
], {
|
||||
#limit: limit,
|
||||
#sort: sort,
|
||||
#filter: filter,
|
||||
#properties: properties
|
||||
}),
|
||||
returnValue: Future<List<_i12.Email>>.value(<_i12.Email>[]))
|
||||
as _i3.Future<List<_i12.Email>>);
|
||||
Invocation.method(
|
||||
#loadMoreEmails,
|
||||
[emailRequest],
|
||||
),
|
||||
returnValue: _i4.Stream<_i5.EmailsResponse>.empty(),
|
||||
) as _i4.Stream<_i5.EmailsResponse>);
|
||||
@override
|
||||
_i3.Future<List<_i12.EmailId>> emptyTrashFolder(
|
||||
_i5.AccountId? accountId, _i14.MailboxId? trashMailboxId) =>
|
||||
_i4.Future<List<_i13.Email>> searchEmails(
|
||||
_i6.AccountId? accountId, {
|
||||
_i7.UnsignedInt? limit,
|
||||
Set<_i8.Comparator>? sort,
|
||||
_i14.Filter? filter,
|
||||
_i10.Properties? properties,
|
||||
}) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(#emptyTrashFolder, [accountId, trashMailboxId]),
|
||||
returnValue: Future<List<_i12.EmailId>>.value(<_i12.EmailId>[]))
|
||||
as _i3.Future<List<_i12.EmailId>>);
|
||||
}
|
||||
Invocation.method(
|
||||
#searchEmails,
|
||||
[accountId],
|
||||
{
|
||||
#limit: limit,
|
||||
#sort: sort,
|
||||
#filter: filter,
|
||||
#properties: properties,
|
||||
},
|
||||
),
|
||||
returnValue: _i4.Future<List<_i13.Email>>.value(<_i13.Email>[]),
|
||||
) as _i4.Future<List<_i13.Email>>);
|
||||
@override
|
||||
_i4.Future<List<_i13.EmailId>> emptyTrashFolder(
|
||||
_i6.AccountId? accountId,
|
||||
_i15.MailboxId? trashMailboxId,
|
||||
) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#emptyTrashFolder,
|
||||
[
|
||||
accountId,
|
||||
trashMailboxId,
|
||||
],
|
||||
),
|
||||
returnValue: _i4.Future<List<_i13.EmailId>>.value(<_i13.EmailId>[]),
|
||||
) as _i4.Future<List<_i13.EmailId>>);
|
||||
@override
|
||||
_i4.Future<_i2.PresentationEmail> getEmailById(
|
||||
_i6.AccountId? accountId,
|
||||
_i13.EmailId? emailId, {
|
||||
_i10.Properties? properties,
|
||||
}) =>
|
||||
(super.noSuchMethod(
|
||||
Invocation.method(
|
||||
#getEmailById,
|
||||
[
|
||||
accountId,
|
||||
emailId,
|
||||
],
|
||||
{#properties: properties},
|
||||
),
|
||||
returnValue:
|
||||
_i4.Future<_i2.PresentationEmail>.value(_FakePresentationEmail_0(
|
||||
this,
|
||||
Invocation.method(
|
||||
#getEmailById,
|
||||
[
|
||||
accountId,
|
||||
emailId,
|
||||
],
|
||||
{#properties: properties},
|
||||
),
|
||||
)),
|
||||
) as _i4.Future<_i2.PresentationEmail>);
|
||||
}
|
||||
|
||||
@@ -31,6 +31,8 @@
|
||||
|
||||
<title>Team Mail</title>
|
||||
<link rel="manifest" href="manifest.json">
|
||||
|
||||
<script type="application/javascript" src="/assets/packages/flutter_inappwebview/assets/web/web_support.js" defer></script>
|
||||
</head>
|
||||
<body>
|
||||
<!-- This script installs service_worker.js to provide PWA functionality to
|
||||
|
||||
Reference in New Issue
Block a user