TF-1487 Upgrade latest dependencies version

(cherry picked from commit 2ba54a168494f772174b196e3a7b5e4173abcdd9)
This commit is contained in:
dab246
2023-02-23 22:15:30 +07:00
committed by Dat Vu
parent 44cc33ddaf
commit bbcaaa549d
14 changed files with 1180 additions and 951 deletions
+63 -78
View File
@@ -1,9 +1,10 @@
PODS: PODS:
- AppAuth (1.4.0): - AppAuth (1.6.0):
- AppAuth/Core (= 1.4.0) - AppAuth/Core (= 1.6.0)
- AppAuth/ExternalUserAgent (= 1.4.0) - AppAuth/ExternalUserAgent (= 1.6.0)
- AppAuth/Core (1.4.0) - AppAuth/Core (1.6.0)
- AppAuth/ExternalUserAgent (1.4.0) - AppAuth/ExternalUserAgent (1.6.0):
- AppAuth/Core
- better_open_file (0.0.1): - better_open_file (0.0.1):
- Flutter - Flutter
- connectivity_plus (0.0.1): - connectivity_plus (0.0.1):
@@ -52,10 +53,10 @@ PODS:
- Firebase/Messaging (10.3.0): - Firebase/Messaging (10.3.0):
- Firebase/CoreOnly - Firebase/CoreOnly
- FirebaseMessaging (~> 10.3.0) - FirebaseMessaging (~> 10.3.0)
- firebase_core (2.4.0): - firebase_core (2.7.0):
- Firebase/CoreOnly (= 10.3.0) - Firebase/CoreOnly (= 10.3.0)
- Flutter - Flutter
- firebase_messaging (14.1.4): - firebase_messaging (14.2.5):
- Firebase/Messaging (= 10.3.0) - Firebase/Messaging (= 10.3.0)
- firebase_core - firebase_core
- Flutter - Flutter
@@ -63,9 +64,9 @@ PODS:
- FirebaseCoreInternal (~> 10.0) - FirebaseCoreInternal (~> 10.0)
- GoogleUtilities/Environment (~> 7.8) - GoogleUtilities/Environment (~> 7.8)
- GoogleUtilities/Logger (~> 7.8) - GoogleUtilities/Logger (~> 7.8)
- FirebaseCoreInternal (10.3.0): - FirebaseCoreInternal (10.5.0):
- "GoogleUtilities/NSData+zlib (~> 7.8)" - "GoogleUtilities/NSData+zlib (~> 7.8)"
- FirebaseInstallations (10.3.0): - FirebaseInstallations (10.5.0):
- FirebaseCore (~> 10.0) - FirebaseCore (~> 10.0)
- GoogleUtilities/Environment (~> 7.8) - GoogleUtilities/Environment (~> 7.8)
- GoogleUtilities/UserDefaults (~> 7.8) - GoogleUtilities/UserDefaults (~> 7.8)
@@ -83,11 +84,11 @@ PODS:
- Flutter - Flutter
- Flutter (1.0.0) - Flutter (1.0.0)
- flutter_appauth (0.0.1): - flutter_appauth (0.0.1):
- AppAuth (= 1.4.0) - AppAuth (= 1.6.0)
- Flutter - Flutter
- flutter_downloader (0.0.1): - flutter_downloader (0.0.1):
- Flutter - Flutter
- flutter_image_compress (0.0.1): - flutter_image_compress (1.0.0):
- Flutter - Flutter
- Mantle - Mantle
- SDWebImage - SDWebImage
@@ -108,29 +109,26 @@ PODS:
- fluttertoast (0.0.2): - fluttertoast (0.0.2):
- Flutter - Flutter
- Toast - Toast
- FMDB (2.7.5): - GoogleDataTransport (9.2.1):
- FMDB/standard (= 2.7.5)
- FMDB/standard (2.7.5)
- GoogleDataTransport (9.2.0):
- GoogleUtilities/Environment (~> 7.7) - GoogleUtilities/Environment (~> 7.7)
- nanopb (< 2.30910.0, >= 2.30908.0) - nanopb (< 2.30910.0, >= 2.30908.0)
- PromisesObjC (< 3.0, >= 1.2) - PromisesObjC (< 3.0, >= 1.2)
- GoogleUtilities/AppDelegateSwizzler (7.10.0): - GoogleUtilities/AppDelegateSwizzler (7.11.0):
- GoogleUtilities/Environment - GoogleUtilities/Environment
- GoogleUtilities/Logger - GoogleUtilities/Logger
- GoogleUtilities/Network - GoogleUtilities/Network
- GoogleUtilities/Environment (7.10.0): - GoogleUtilities/Environment (7.11.0):
- PromisesObjC (< 3.0, >= 1.2) - PromisesObjC (< 3.0, >= 1.2)
- GoogleUtilities/Logger (7.10.0): - GoogleUtilities/Logger (7.11.0):
- GoogleUtilities/Environment - GoogleUtilities/Environment
- GoogleUtilities/Network (7.10.0): - GoogleUtilities/Network (7.11.0):
- GoogleUtilities/Logger - GoogleUtilities/Logger
- "GoogleUtilities/NSData+zlib" - "GoogleUtilities/NSData+zlib"
- GoogleUtilities/Reachability - GoogleUtilities/Reachability
- "GoogleUtilities/NSData+zlib (7.10.0)" - "GoogleUtilities/NSData+zlib (7.11.0)"
- GoogleUtilities/Reachability (7.10.0): - GoogleUtilities/Reachability (7.11.0):
- GoogleUtilities/Logger - GoogleUtilities/Logger
- GoogleUtilities/UserDefaults (7.10.0): - GoogleUtilities/UserDefaults (7.11.0):
- GoogleUtilities/Logger - GoogleUtilities/Logger
- libwebp (1.2.4): - libwebp (1.2.4):
- libwebp/demux (= 1.2.4) - libwebp/demux (= 1.2.4)
@@ -152,33 +150,30 @@ PODS:
- OrderedSet (5.0.0) - OrderedSet (5.0.0)
- package_info_plus (0.4.5): - package_info_plus (0.4.5):
- Flutter - Flutter
- path_provider (0.0.1): - path_provider_foundation (0.0.1):
- Flutter - Flutter
- FlutterMacOS
- permission_handler_apple (9.0.4): - permission_handler_apple (9.0.4):
- Flutter - Flutter
- PromisesObjC (2.1.1) - PromisesObjC (2.2.0)
- ReachabilitySwift (5.0.0) - ReachabilitySwift (5.0.0)
- receive_sharing_intent (0.0.1): - receive_sharing_intent (0.0.1):
- Flutter - Flutter
- SDWebImage (5.14.2): - SDWebImage (5.15.4):
- SDWebImage/Core (= 5.14.2) - SDWebImage/Core (= 5.15.4)
- SDWebImage/Core (5.14.2) - SDWebImage/Core (5.15.4)
- SDWebImageWebPCoder (0.9.1): - SDWebImageWebPCoder (0.10.1):
- libwebp (~> 1.0) - libwebp (~> 1.0)
- SDWebImage/Core (~> 5.13) - SDWebImage/Core (~> 5.15)
- share (0.0.1): - share_plus (0.0.1):
- Flutter - Flutter
- shared_preferences (0.0.1): - shared_preferences_foundation (0.0.1):
- Flutter - Flutter
- sqflite (0.0.2): - FlutterMacOS
- Flutter - SwiftyGif (5.4.4)
- FMDB (>= 2.7.5)
- SwiftyGif (5.4.3)
- Toast (4.0.0) - Toast (4.0.0)
- url_launcher_ios (0.0.1): - url_launcher_ios (0.0.1):
- Flutter - Flutter
- webview_flutter_wkwebview (0.0.1):
- Flutter
DEPENDENCIES: DEPENDENCIES:
- better_open_file (from `.symlinks/plugins/better_open_file/ios`) - 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`) - flutter_native_splash (from `.symlinks/plugins/flutter_native_splash/ios`)
- fluttertoast (from `.symlinks/plugins/fluttertoast/ios`) - fluttertoast (from `.symlinks/plugins/fluttertoast/ios`)
- package_info_plus (from `.symlinks/plugins/package_info_plus/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`) - permission_handler_apple (from `.symlinks/plugins/permission_handler_apple/ios`)
- receive_sharing_intent (from `.symlinks/plugins/receive_sharing_intent/ios`) - receive_sharing_intent (from `.symlinks/plugins/receive_sharing_intent/ios`)
- share (from `.symlinks/plugins/share/ios`) - share_plus (from `.symlinks/plugins/share_plus/ios`)
- shared_preferences (from `.symlinks/plugins/shared_preferences/ios`) - shared_preferences_foundation (from `.symlinks/plugins/shared_preferences_foundation/ios`)
- sqflite (from `.symlinks/plugins/sqflite/ios`)
- url_launcher_ios (from `.symlinks/plugins/url_launcher_ios/ios`) - url_launcher_ios (from `.symlinks/plugins/url_launcher_ios/ios`)
- webview_flutter_wkwebview (from `.symlinks/plugins/webview_flutter_wkwebview/ios`)
SPEC REPOS: SPEC REPOS:
trunk: trunk:
@@ -218,7 +211,6 @@ SPEC REPOS:
- FirebaseCoreInternal - FirebaseCoreInternal
- FirebaseInstallations - FirebaseInstallations
- FirebaseMessaging - FirebaseMessaging
- FMDB
- GoogleDataTransport - GoogleDataTransport
- GoogleUtilities - GoogleUtilities
- libwebp - libwebp
@@ -269,71 +261,64 @@ EXTERNAL SOURCES:
:path: ".symlinks/plugins/fluttertoast/ios" :path: ".symlinks/plugins/fluttertoast/ios"
package_info_plus: package_info_plus:
:path: ".symlinks/plugins/package_info_plus/ios" :path: ".symlinks/plugins/package_info_plus/ios"
path_provider: path_provider_foundation:
:path: ".symlinks/plugins/path_provider/ios" :path: ".symlinks/plugins/path_provider_foundation/ios"
permission_handler_apple: permission_handler_apple:
:path: ".symlinks/plugins/permission_handler_apple/ios" :path: ".symlinks/plugins/permission_handler_apple/ios"
receive_sharing_intent: receive_sharing_intent:
:path: ".symlinks/plugins/receive_sharing_intent/ios" :path: ".symlinks/plugins/receive_sharing_intent/ios"
share: share_plus:
:path: ".symlinks/plugins/share/ios" :path: ".symlinks/plugins/share_plus/ios"
shared_preferences: shared_preferences_foundation:
:path: ".symlinks/plugins/shared_preferences/ios" :path: ".symlinks/plugins/shared_preferences_foundation/ios"
sqflite:
:path: ".symlinks/plugins/sqflite/ios"
url_launcher_ios: url_launcher_ios:
:path: ".symlinks/plugins/url_launcher_ios/ios" :path: ".symlinks/plugins/url_launcher_ios/ios"
webview_flutter_wkwebview:
:path: ".symlinks/plugins/webview_flutter_wkwebview/ios"
SPEC CHECKSUMS: SPEC CHECKSUMS:
AppAuth: 31bcec809a638d7bd2f86ea8a52bd45f6e81e7c7 AppAuth: 8fca6b5563a5baef2c04bee27538025e4ceb2add
better_open_file: 03cf320415d4d3f46b6e00adc4a567d76c1a399d better_open_file: 03cf320415d4d3f46b6e00adc4a567d76c1a399d
connectivity_plus: 413a8857dd5d9f1c399a39130850d02fe0feaf7e connectivity_plus: 413a8857dd5d9f1c399a39130850d02fe0feaf7e
contacts_service: 849e1f84281804c8bfbec1b4c3eedcb23c5d3eca contacts_service: 849e1f84281804c8bfbec1b4c3eedcb23c5d3eca
device_info_plus: e5c5da33f982a436e103237c0c85f9031142abed device_info_plus: e5c5da33f982a436e103237c0c85f9031142abed
DKImagePickerController: b512c28220a2b8ac7419f21c491fc8534b7601ac DKImagePickerController: b512c28220a2b8ac7419f21c491fc8534b7601ac
DKPhotoGallery: fdfad5125a9fdda9cc57df834d49df790dbb4179 DKPhotoGallery: fdfad5125a9fdda9cc57df834d49df790dbb4179
file_picker: 817ab1d8cd2da9d2da412a417162deee3500fc95 file_picker: ce3938a0df3cc1ef404671531facef740d03f920
Firebase: f92fc551ead69c94168d36c2b26188263860acd9 Firebase: f92fc551ead69c94168d36c2b26188263860acd9
firebase_core: 6f2f753e316765799d88568232ed59e300ff53db firebase_core: 128d8c43c3a453a4a67463314fc3761bedff860b
firebase_messaging: 4b60bd563e1d21e3fe91afd398b59d0eda79cc60 firebase_messaging: 8ac28baba96e69a58ad26b4bb5f9ee67c3e5efe2
FirebaseCore: 988754646ab3bd4bdcb740f1bfe26b9f6c0d5f2a FirebaseCore: 988754646ab3bd4bdcb740f1bfe26b9f6c0d5f2a
FirebaseCoreInternal: 29b76f784d607df8b2a1259d73c3f04f1210137b FirebaseCoreInternal: e463f41bb935cd049505bf7e9a5bdd7dcea90df6
FirebaseInstallations: e2f26126089dcf41e215f7b8925af8d953c7d602 FirebaseInstallations: 935bc4abb6f7a035cab7a0c31cb777b2be3dd254
FirebaseMessaging: e345b219fd15d325f0cf2fef28cb8ce00d851b3f FirebaseMessaging: e345b219fd15d325f0cf2fef28cb8ce00d851b3f
fk_user_agent: 1f47ec39291e8372b1d692b50084b0d54103c545 fk_user_agent: 1f47ec39291e8372b1d692b50084b0d54103c545
Flutter: 50d75fe2f02b26cc09d224853bb45737f8b3214a Flutter: f04841e97a9d0b0a8025694d0796dd46242b2854
flutter_appauth: 05c3778a1e4ae23364dd2ef37cbae14b244f646b flutter_appauth: 525652bda90e43ca5eb7ed748ecc106b79d1f5a1
flutter_downloader: 058b9c41564a90500f67f3e432e3524613a7fd83 flutter_downloader: b7301ae057deadd4b1650dc7c05375f10ff12c39
flutter_image_compress: fd2b476345226e1a10ea352fa306af95704642c1 flutter_image_compress: 5a5e9aee05b6553048b8df1c3bc456d0afaac433
flutter_inappwebview: bfd58618f49dc62f2676de690fc6dcda1d6c3721 flutter_inappwebview: 4fe74e5e65809c3d363febfd9e2b21aa79bb0f1c
flutter_keyboard_visibility: 0339d06371254c3eb25eeb90ba8d17dca8f9c069 flutter_keyboard_visibility: 0339d06371254c3eb25eeb90ba8d17dca8f9c069
flutter_local_notifications: 0c0b1ae97e741e1521e4c1629a459d04b9aec743 flutter_local_notifications: 0c0b1ae97e741e1521e4c1629a459d04b9aec743
flutter_native_splash: 52501b97d1c0a5f898d687f1646226c1f93c56ef flutter_native_splash: 52501b97d1c0a5f898d687f1646226c1f93c56ef
fluttertoast: 6122fa75143e992b1d3470f61000f591a798cc58 fluttertoast: eb263d302cc92e04176c053d2385237e9f43fad0
FMDB: 2ce00b547f966261cd18927a3ddb07cb6f3db82a GoogleDataTransport: ea169759df570f4e37bdee1623ec32a7e64e67c4
GoogleDataTransport: 1c8145da7117bd68bbbed00cf304edb6a24de00f GoogleUtilities: c2bdc4cf2ce786c4d2e6b3bcfd599a25ca78f06f
GoogleUtilities: bad72cb363809015b1f7f19beb1f1cd23c589f95
libwebp: f62cb61d0a484ba548448a4bd52aabf150ff6eef libwebp: f62cb61d0a484ba548448a4bd52aabf150ff6eef
Mantle: c5aa8794a29a022dfbbfc9799af95f477a69b62d Mantle: c5aa8794a29a022dfbbfc9799af95f477a69b62d
nanopb: b552cce312b6c8484180ef47159bc0f65a1f0431 nanopb: b552cce312b6c8484180ef47159bc0f65a1f0431
OrderedSet: aaeb196f7fef5a9edf55d89760da9176ad40b93c OrderedSet: aaeb196f7fef5a9edf55d89760da9176ad40b93c
package_info_plus: 6c92f08e1f853dc01228d6f553146438dafcd14e package_info_plus: 6c92f08e1f853dc01228d6f553146438dafcd14e
path_provider: abfe2b5c733d04e238b0d8691db0cfd63a27a93c path_provider_foundation: c68054786f1b4f3343858c1e1d0caaded73f0be9
permission_handler_apple: 44366e37eaf29454a1e7b1b7d736c2cceaeb17ce permission_handler_apple: 44366e37eaf29454a1e7b1b7d736c2cceaeb17ce
PromisesObjC: ab77feca74fa2823e7af4249b8326368e61014cb PromisesObjC: 09985d6d70fbe7878040aa746d78236e6946d2ef
ReachabilitySwift: 985039c6f7b23a1da463388634119492ff86c825 ReachabilitySwift: 985039c6f7b23a1da463388634119492ff86c825
receive_sharing_intent: c0d87310754e74c0f9542947e7cbdf3a0335a3b1 receive_sharing_intent: c0d87310754e74c0f9542947e7cbdf3a0335a3b1
SDWebImage: b9a731e1d6307f44ca703b3976d18c24ca561e84 SDWebImage: 1c39de67663e5eebb2f41324d5d580eeea12dd4c
SDWebImageWebPCoder: 18503de6621dd2c420d680e33d46bf8e1d5169b0 SDWebImageWebPCoder: 4851414d9f8894e328e8b97c93ea4f4f4e4418ae
share: 0b2c3e82132f5888bccca3351c504d0003b3b410 share_plus: 056a1e8ac890df3e33cb503afffaf1e9b4fbae68
shared_preferences: af6bfa751691cdc24be3045c43ec037377ada40d shared_preferences_foundation: 986fc17f3d3251412d18b0265f9c64113a8c2472
sqflite: 6d358c025f5b867b29ed92fc697fd34924e11904 SwiftyGif: 93a1cc87bf3a51916001cf8f3d63835fb64c819f
SwiftyGif: 6c3eafd0ce693cad58bb63d2b2fb9bacb8552780
Toast: 91b396c56ee72a5790816f40d3a94dd357abc196 Toast: 91b396c56ee72a5790816f40d3a94dd357abc196
url_launcher_ios: 839c58cdb4279282219f5e248c3321761ff3c4de url_launcher_ios: 08a3dfac5fb39e8759aeb0abbd5d9480f30fc8b4
webview_flutter_wkwebview: b7e70ef1ddded7e69c796c7390ee74180182971f
PODFILE CHECKSUM: e209bf81fb4facf3f68c43dbffa0b2d05ff63db0 PODFILE CHECKSUM: e209bf81fb4facf3f68c43dbffa0b2d05ff63db0
+6 -4
View File
@@ -3,7 +3,7 @@
archiveVersion = 1; archiveVersion = 1;
classes = { classes = {
}; };
objectVersion = 51; objectVersion = 54;
objects = { objects = {
/* Begin PBXBuildFile section */ /* Begin PBXBuildFile section */
@@ -301,6 +301,7 @@
}; };
3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = {
isa = PBXShellScriptBuildPhase; isa = PBXShellScriptBuildPhase;
alwaysOutOfDate = 1;
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
); );
@@ -337,6 +338,7 @@
}; };
9740EEB61CF901F6004384FC /* Run Script */ = { 9740EEB61CF901F6004384FC /* Run Script */ = {
isa = PBXShellScriptBuildPhase; isa = PBXShellScriptBuildPhase;
alwaysOutOfDate = 1;
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
); );
@@ -448,7 +450,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES; GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 9.0; IPHONEOS_DEPLOYMENT_TARGET = 11.0;
MTL_ENABLE_DEBUG_INFO = NO; MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos; SDKROOT = iphoneos;
SUPPORTED_PLATFORMS = iphoneos; SUPPORTED_PLATFORMS = iphoneos;
@@ -532,7 +534,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES; GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 9.0; IPHONEOS_DEPLOYMENT_TARGET = 11.0;
MTL_ENABLE_DEBUG_INFO = YES; MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES; ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos; SDKROOT = iphoneos;
@@ -581,7 +583,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES; GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 9.0; IPHONEOS_DEPLOYMENT_TARGET = 11.0;
MTL_ENABLE_DEBUG_INFO = NO; MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos; SDKROOT = iphoneos;
SUPPORTED_PLATFORMS = iphoneos; SUPPORTED_PLATFORMS = iphoneos;
+2
View File
@@ -83,5 +83,7 @@
<false/> <false/>
<key>com.apple.developer.mail-client</key> <key>com.apple.developer.mail-client</key>
<true/> <true/>
<key>UIApplicationSupportsIndirectInputEvents</key>
<true/>
</dict> </dict>
</plist> </plist>
@@ -1,6 +1,5 @@
import 'package:core/core.dart'; import 'package:core/core.dart';
import 'package:dropdown_button2/dropdown_button2.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:file_picker/file_picker.dart';
import 'package:filesize/filesize.dart'; import 'package:filesize/filesize.dart';
import 'package:flutter/foundation.dart'; import 'package:flutter/foundation.dart';
@@ -9,7 +8,7 @@ import 'package:flutter_svg/flutter_svg.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:jmap_dart_client/jmap/identities/identity.dart'; import 'package:jmap_dart_client/jmap/identities/identity.dart';
import 'package:model/model.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: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/base/mixin/app_loader_mixin.dart';
import 'package:tmail_ui_user/features/composer/presentation/composer_controller.dart'; import 'package:tmail_ui_user/features/composer/presentation/composer_controller.dart';
@@ -84,7 +83,7 @@ class ComposerView extends GetWidget<ComposerController>
child: Scaffold( child: Scaffold(
backgroundColor: Colors.black38, backgroundColor: Colors.black38,
body: LayoutBuilder(builder: (context, constraints) { body: LayoutBuilder(builder: (context, constraints) {
return rich_text_composer.KeyboardRichText( return KeyboardRichText(
richTextController: controller.keyboardRichTextController, richTextController: controller.keyboardRichTextController,
keyBroadToolbar: RichTextKeyboardToolBar( keyBroadToolbar: RichTextKeyboardToolBar(
backgroundKeyboardToolBarColor: AppColor.colorBackgroundKeyboard, backgroundKeyboardToolBarColor: AppColor.colorBackgroundKeyboard,
@@ -313,7 +312,7 @@ class ComposerView extends GetWidget<ComposerController>
)).toList(), )).toList(),
onChanged: (newIdentity) => controller.selectIdentity(newIdentity), onChanged: (newIdentity) => controller.selectIdentity(newIdentity),
itemPadding: const EdgeInsets.symmetric(horizontal: 8), itemPadding: const EdgeInsets.symmetric(horizontal: 8),
customItemsHeight: 55, itemHeight: 55,
dropdownMaxHeight: 240, dropdownMaxHeight: 240,
dropdownWidth: 300, dropdownWidth: 300,
dropdownDecoration: BoxDecoration( dropdownDecoration: BoxDecoration(
@@ -435,27 +434,7 @@ class ComposerView extends GetWidget<ComposerController>
} }
Widget _buildBodyMobile(BuildContext context, double maxWidth) { Widget _buildBodyMobile(BuildContext context, double maxWidth) {
return rich_text_composer.KeyboardRichText( return 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,
keyBroadToolbar: RichTextKeyboardToolBar( keyBroadToolbar: RichTextKeyboardToolBar(
backgroundKeyboardToolBarColor: AppColor.colorBackgroundKeyboard, backgroundKeyboardToolBarColor: AppColor.colorBackgroundKeyboard,
isLandScapeMode: responsiveUtils.isLandscapeMobile(context), isLandScapeMode: responsiveUtils.isLandscapeMobile(context),
@@ -468,6 +447,28 @@ class ComposerView extends GetWidget<ComposerController>
titleFormatBottomSheet: AppLocalizations.of(context).titleFormat, titleFormatBottomSheet: AppLocalizations.of(context).titleFormat,
titleBack: AppLocalizations.of(context).format, 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(), )).toList(),
onChanged: (newIdentity) => controller.selectIdentity(newIdentity), onChanged: (newIdentity) => controller.selectIdentity(newIdentity),
itemPadding: const EdgeInsets.symmetric(horizontal: 8), itemPadding: const EdgeInsets.symmetric(horizontal: 8),
customItemsHeight: 55, itemHeight: 55,
dropdownMaxHeight: 240, dropdownMaxHeight: 240,
dropdownWidth: 370, dropdownWidth: 370,
dropdownDecoration: BoxDecoration( dropdownDecoration: BoxDecoration(
@@ -582,7 +582,7 @@ class ComposerView extends GetWidget<ComposerController>
icon: SvgPicture.asset(imagePaths.icAttachmentsComposer, icon: SvgPicture.asset(imagePaths.icAttachmentsComposer,
width: 24, width: 24,
height: 24, height: 24,
color: AppColor.colorTextButton, colorFilter: const ColorFilter.mode(AppColor.colorTextButton, BlendMode.srcIn),
fit: BoxFit.fill), fit: BoxFit.fill),
tooltip: AppLocalizations.of(context).attach_file, tooltip: AppLocalizations.of(context).attach_file,
onTap: () => controller.openFilePickerByType(context, FileType.any)), onTap: () => controller.openFilePickerByType(context, FileType.any)),
@@ -594,8 +594,11 @@ class ComposerView extends GetWidget<ComposerController>
child: buildIconWeb( child: buildIconWeb(
minSize: 40, minSize: 40,
iconPadding: EdgeInsets.zero, iconPadding: EdgeInsets.zero,
icon: SvgPicture.asset(imagePaths.icInsertImage, icon: SvgPicture.asset(
color: AppColor.colorTextButton.withOpacity(opacity), imagePaths.icInsertImage,
colorFilter: ColorFilter.mode(
AppColor.colorTextButton.withOpacity(opacity),
BlendMode.srcIn),
fit: BoxFit.fill), fit: BoxFit.fill),
tooltip: AppLocalizations.of(context).insertImage, tooltip: AppLocalizations.of(context).insertImage,
onTap: () => controller.insertImage(context, constraints.maxWidth)), onTap: () => controller.insertImage(context, constraints.maxWidth)),
@@ -609,9 +612,10 @@ class ComposerView extends GetWidget<ComposerController>
? AppColor.colorSelectedRichTextButton ? AppColor.colorSelectedRichTextButton
: Colors.transparent, : Colors.transparent,
iconPadding: EdgeInsets.zero, iconPadding: EdgeInsets.zero,
icon: SvgPicture.asset(imagePaths.icStyleCodeView, icon: SvgPicture.asset(
color: AppColor.colorTextButton, imagePaths.icStyleCodeView,
fit: BoxFit.fill), colorFilter: const ColorFilter.mode(AppColor.colorTextButton, BlendMode.srcIn),
fit: BoxFit.fill),
tooltip: AppLocalizations.of(context).codeView, tooltip: AppLocalizations.of(context).codeView,
onTap: () => controller.richTextWebController.toggleCodeView()); 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:better_open_file/better_open_file.dart' as open_file;
import 'package:permission_handler/permission_handler.dart'; import 'package:permission_handler/permission_handler.dart';
import 'package:pointer_interceptor/pointer_interceptor.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/base_controller.dart';
import 'package:tmail_ui_user/features/base/mixin/app_loader_mixin.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'; 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); _downloadAttachmentsAction(attachments);
break; break;
case PermissionStatus.permanentlyDenied: 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; break;
default: { default: {
final requested = await Permission.storage.request(); final requested = await Permission.storage.request();
@@ -454,7 +456,9 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
_downloadAttachmentsAction(attachments); _downloadAttachmentsAction(attachments);
break; break;
default: 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; break;
} }
} }
@@ -536,7 +540,7 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
void _openDownloadedPreviewWorkGroupDocument(DownloadedResponse downloadedResponse) async { void _openDownloadedPreviewWorkGroupDocument(DownloadedResponse downloadedResponse) async {
log('SingleEmailController::_openDownloadedPreviewWorkGroupDocument(): $downloadedResponse'); log('SingleEmailController::_openDownloadedPreviewWorkGroupDocument(): $downloadedResponse');
if (downloadedResponse.mediaType == null) { if (downloadedResponse.mediaType == null) {
await share_library.Share.shareFiles([downloadedResponse.filePath]); await Share.shareXFiles([XFile(downloadedResponse.filePath)]);
} }
final openResult = await open_file.OpenFile.open( final openResult = await open_file.OpenFile.open(
@@ -596,10 +600,10 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
void moveToMailbox(BuildContext context, PresentationEmail email) async { void moveToMailbox(BuildContext context, PresentationEmail email) async {
final currentMailbox = getMailboxContain(email); final currentMailbox = getMailboxContain(email);
final accountId = mailboxDashBoardController.accountId.value; final accountId = mailboxDashBoardController.accountId.value;
final _session = mailboxDashBoardController.sessionCurrent; final session = mailboxDashBoardController.sessionCurrent;
if (currentMailbox != null && accountId != null) { if (currentMailbox != null && accountId != null) {
final arguments = DestinationPickerArguments(accountId, MailboxActions.moveEmail, _session); final arguments = DestinationPickerArguments(accountId, MailboxActions.moveEmail, session);
if (BuildUtils.isWeb) { if (BuildUtils.isWeb) {
showDialogDestinationPicker( showDialogDestinationPicker(
context: context, context: context,
@@ -621,8 +625,10 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
arguments: arguments); arguments: arguments);
if (destinationMailbox != null && if (destinationMailbox != null &&
destinationMailbox is PresentationMailbox && destinationMailbox is PresentationMailbox &&
mailboxDashBoardController.sessionCurrent != null) { mailboxDashBoardController.sessionCurrent != null &&
context.mounted
) {
_dispatchMoveToAction( _dispatchMoveToAction(
context, context,
accountId, accountId,
@@ -692,7 +698,7 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
imagePaths.icFolderMailbox, imagePaths.icFolderMailbox,
width: 24, width: 24,
height: 24, height: 24,
color: Colors.white, colorFilter: const ColorFilter.mode(Colors.white, BlendMode.srcIn),
fit: BoxFit.fill), fit: BoxFit.fill),
backgroundColor: AppColor.toastSuccessBackgroundColor, backgroundColor: AppColor.toastSuccessBackgroundColor,
textColor: Colors.white, textColor: Colors.white,
@@ -932,7 +938,7 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
imagePaths.icNotConnection, imagePaths.icNotConnection,
width: 24, width: 24,
height: 24, height: 24,
color: Colors.white, colorFilter: const ColorFilter.mode(Colors.white, BlendMode.srcIn),
fit: BoxFit.fill), fit: BoxFit.fill),
backgroundColor: AppColor.toastErrorBackgroundColor, backgroundColor: AppColor.toastErrorBackgroundColor,
textColor: Colors.white, textColor: Colors.white,
@@ -949,7 +955,7 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
imagePaths.icNotConnection, imagePaths.icNotConnection,
width: 24, width: 24,
height: 24, height: 24,
color: Colors.white, colorFilter: const ColorFilter.mode(Colors.white, BlendMode.srcIn),
fit: BoxFit.fill), fit: BoxFit.fill),
backgroundColor: AppColor.toastErrorBackgroundColor, backgroundColor: AppColor.toastErrorBackgroundColor,
textColor: Colors.white, textColor: Colors.white,
@@ -966,7 +972,7 @@ class SingleEmailController extends BaseController with AppLoaderMixin {
imagePaths.icNotConnection, imagePaths.icNotConnection,
width: 24, width: 24,
height: 24, height: 24,
color: Colors.white, colorFilter: const ColorFilter.mode(Colors.white, BlendMode.srcIn),
fit: BoxFit.fill), fit: BoxFit.fill),
backgroundColor: AppColor.toastErrorBackgroundColor, backgroundColor: AppColor.toastErrorBackgroundColor,
textColor: Colors.white, textColor: Colors.white,
@@ -32,11 +32,11 @@ class SetDefaultIdentityCheckboxBuilder extends StatelessWidget {
decoration: BoxDecoration( decoration: BoxDecoration(
borderRadius: BorderRadius.circular(4.0), borderRadius: BorderRadius.circular(4.0),
border: Border.all(color: AppColor.primaryColor, width: 2.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( child: SvgPicture.asset(
imagePaths.icSelectedSB, imagePaths.icSelectedSB,
color: isCheck ? Colors.white : Colors.transparent, colorFilter: const ColorFilter.mode(Colors.white, BlendMode.srcIn),
width: 18, width: 18,
height: 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:core/presentation/views/responsive/responsive_widget.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.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:get/get.dart';
import 'package:tmail_ui_user/features/email/presentation/email_view.dart'; import 'package:tmail_ui_user/features/email/presentation/email_view.dart';
import 'package:tmail_ui_user/features/mailbox/presentation/mailbox_view.dart'; import 'package:tmail_ui_user/features/mailbox/presentation/mailbox_view.dart';
@@ -79,22 +79,31 @@ class MailboxDashBoardView extends BaseMailboxDashBoardView {
body: body, body: body,
drawer: ResponsiveWidget( drawer: ResponsiveWidget(
responsiveUtils: responsiveUtils, responsiveUtils: responsiveUtils,
mobile: SizedBox(child: MailboxView(), width: double.infinity), mobile: SizedBox(
width: double.infinity,
child: MailboxView()
),
landscapeMobile: SizedBox( landscapeMobile: SizedBox(
child: MailboxView(), width: ResponsiveUtils.defaultSizeDrawer,
width: ResponsiveUtils.defaultSizeDrawer), child: MailboxView()
),
tablet: SizedBox( tablet: SizedBox(
child: MailboxView(), width: ResponsiveUtils.defaultSizeDrawer,
width: ResponsiveUtils.defaultSizeDrawer), child: MailboxView()
),
landscapeTablet: SizedBox( landscapeTablet: SizedBox(
child: MailboxView(), width: ResponsiveUtils.defaultSizeLeftMenuMobile,
width: ResponsiveUtils.defaultSizeLeftMenuMobile), child: MailboxView()
),
tabletLarge: SizedBox( tabletLarge: SizedBox(
child: MailboxView(), width: ResponsiveUtils.defaultSizeLeftMenuMobile,
width: ResponsiveUtils.defaultSizeLeftMenuMobile), child: MailboxView()
),
desktop: SizedBox( desktop: SizedBox(
child: MailboxView(), width: ResponsiveUtils.defaultSizeLeftMenuMobile,
width: ResponsiveUtils.defaultSizeLeftMenuMobile)), child: MailboxView()
)
),
); );
} }
} }
@@ -23,7 +23,7 @@ class RemoteExceptionThrower extends ExceptionThrower {
if (error is DioError) { if (error is DioError) {
switch (error.type) { switch (error.type) {
case DioErrorType.connectTimeout: case DioErrorType.connectionTimeout:
throw const ConnectError(); throw const ConnectError();
default: default:
if (error.response?.statusCode == 502) { if (error.response?.statusCode == 502) {
+633 -526
View File
File diff suppressed because it is too large Load Diff
+110 -133
View File
@@ -18,7 +18,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev
version: 0.7.1 version: 0.7.1
environment: environment:
sdk: ">=2.17.0 <3.0.0" sdk: ">=2.19.2 <3.0.0"
dependencies: dependencies:
flutter: flutter:
@@ -45,170 +45,141 @@ dependencies:
fcm: fcm:
path: fcm path: fcm
### Dependencies from git ###
rich_text_composer: rich_text_composer:
git: git:
url: https://github.com/linagora/rich-text-composer.git url: https://github.com/linagora/rich-text-composer.git
ref: firebase_integration ref: upgrade-latest-flutter-version
# The following adds the Cupertino Icons font to your application.
# Use with the CupertinoIcons class for iOS style icons.
cupertino_icons: ^1.0.2
# GetX html_editor_enhanced:
get: 4.6.5 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: jmap_dart_client:
git: git:
url: https://github.com/linagora/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: super_tag_editor:
git: git:
url: https://github.com/dab246/super_tag_editor.git url: https://github.com/dab246/super_tag_editor.git
ref: master ref: upgrade/upgrade-flutter-version-to-v3.7.5
# uuid
uuid: 3.0.4
# 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: contacts_service:
git: git:
url: https://github.com/linagora/flutter_contacts.git url: https://github.com/linagora/flutter_contacts.git
ref: master 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: receive_sharing_intent:
git: git:
url: https://github.com/KasemJaffer/receive_sharing_intent.git url: https://github.com/KasemJaffer/receive_sharing_intent.git
ref: master 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: flutter_appauth_web:
git: git:
url: https://github.com/CarlosPacheco/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 percent_indicator: 4.2.2
# Isolate worker_manager: 5.0.3
worker_manager: 4.4.0
async: 2.8.2 async: 2.10.0
# HTML5 parser html: 0.15.1
html: 0.15.0
custom_pop_up_menu: 1.2.4 custom_pop_up_menu: 1.2.4
byte_converter: 1.3.0 byte_converter: 1.3.0
json_annotation: 4.5.0 json_annotation: 4.8.0
flutter_date_range_picker: url_launcher: 6.1.10
git:
url: https://github.com/linagora/flutter-date-range-picker.git
ref: master
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: 13.0.0
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
html_unescape: 2.0.0 html_unescape: 2.0.0
@@ -216,25 +187,31 @@ dependencies:
focused_menu_custom: 1.2.0 focused_menu_custom: 1.2.0
focus_detector_v2: 3.0.0+2
dev_dependencies: dev_dependencies:
flutter_test: flutter_test:
sdk: flutter 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 # For information on the generic Dart part of this file, see the
# following page: https://dart.dev/tools/pub/pubspec # following page: https://dart.dev/tools/pub/pubspec
@@ -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. // in tmail_ui_user/test/features/thread/domain/usecases/get_emails_in_mailbox_interactor_test.dart.
// Do not manually edit this file. // Do not manually edit this file.
// ignore_for_file: no_leading_underscores_for_library_prefixes // 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/account_id.dart' as _i6;
import 'package:jmap_dart_client/jmap/core/filter/filter.dart' as _i13; import 'package:jmap_dart_client/jmap/core/filter/filter.dart' as _i14;
import 'package:jmap_dart_client/jmap/core/properties/properties.dart' as _i9; import 'package:jmap_dart_client/jmap/core/properties/properties.dart' as _i10;
import 'package:jmap_dart_client/jmap/core/sort/comparator.dart' as _i7; import 'package:jmap_dart_client/jmap/core/sort/comparator.dart' as _i8;
import 'package:jmap_dart_client/jmap/core/state.dart' as _i10; import 'package:jmap_dart_client/jmap/core/state.dart' as _i11;
import 'package:jmap_dart_client/jmap/core/unsigned_int.dart' as _i6; import 'package:jmap_dart_client/jmap/core/unsigned_int.dart' as _i7;
import 'package:jmap_dart_client/jmap/mail/email/email.dart' as _i12; import 'package:jmap_dart_client/jmap/mail/email/email.dart' as _i13;
import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart' as _i14; import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart' as _i15;
import 'package:mockito/mockito.dart' as _i1; 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' 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' 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' 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' import 'package:tmail_ui_user/features/thread/domain/repository/thread_repository.dart'
as _i2; as _i3;
// ignore_for_file: type=lint // ignore_for_file: type=lint
// ignore_for_file: avoid_redundant_argument_values // 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: prefer_const_constructors
// ignore_for_file: unnecessary_parenthesis // ignore_for_file: unnecessary_parenthesis
// ignore_for_file: camel_case_types // 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]. /// A class which mocks [ThreadRepository].
/// ///
/// See the documentation for Mockito's code generation for more information. /// 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() { MockThreadRepository() {
_i1.throwOnMissingStub(this); _i1.throwOnMissingStub(this);
} }
@override @override
_i3.Stream<_i4.EmailsResponse> getAllEmail(_i5.AccountId? accountId, _i4.Stream<_i5.EmailsResponse> getAllEmail(
{_i6.UnsignedInt? limit, _i6.AccountId? accountId, {
Set<_i7.Comparator>? sort, _i7.UnsignedInt? limit,
_i8.EmailFilter? emailFilter, Set<_i8.Comparator>? sort,
_i9.Properties? propertiesCreated, _i9.EmailFilter? emailFilter,
_i9.Properties? propertiesUpdated}) => _i10.Properties? propertiesCreated,
_i10.Properties? propertiesUpdated,
}) =>
(super.noSuchMethod( (super.noSuchMethod(
Invocation.method(#getAllEmail, [ Invocation.method(
accountId #getAllEmail,
], { [accountId],
#limit: limit, {
#sort: sort, #limit: limit,
#emailFilter: emailFilter, #sort: sort,
#propertiesCreated: propertiesCreated, #emailFilter: emailFilter,
#propertiesUpdated: propertiesUpdated #propertiesCreated: propertiesCreated,
}), #propertiesUpdated: propertiesUpdated,
returnValue: Stream<_i4.EmailsResponse>.empty()) },
as _i3.Stream<_i4.EmailsResponse>); ),
returnValue: _i4.Stream<_i5.EmailsResponse>.empty(),
) as _i4.Stream<_i5.EmailsResponse>);
@override @override
_i3.Stream<_i4.EmailsResponse> refreshChanges( _i4.Stream<_i5.EmailsResponse> refreshChanges(
_i5.AccountId? accountId, _i10.State? currentState, _i6.AccountId? accountId,
{Set<_i7.Comparator>? sort, _i11.State? currentState, {
_i8.EmailFilter? emailFilter, Set<_i8.Comparator>? sort,
_i9.Properties? propertiesCreated, _i9.EmailFilter? emailFilter,
_i9.Properties? propertiesUpdated}) => _i10.Properties? propertiesCreated,
_i10.Properties? propertiesUpdated,
}) =>
(super.noSuchMethod( (super.noSuchMethod(
Invocation.method(#refreshChanges, [ Invocation.method(
accountId, #refreshChanges,
currentState [
], { accountId,
#sort: sort, currentState,
#emailFilter: emailFilter, ],
#propertiesCreated: propertiesCreated, {
#propertiesUpdated: propertiesUpdated #sort: sort,
}), #emailFilter: emailFilter,
returnValue: Stream<_i4.EmailsResponse>.empty()) #propertiesCreated: propertiesCreated,
as _i3.Stream<_i4.EmailsResponse>); #propertiesUpdated: propertiesUpdated,
},
),
returnValue: _i4.Stream<_i5.EmailsResponse>.empty(),
) as _i4.Stream<_i5.EmailsResponse>);
@override @override
_i3.Stream<_i4.EmailsResponse> loadMoreEmails( _i4.Stream<_i5.EmailsResponse> loadMoreEmails(
_i11.GetEmailRequest? emailRequest) => _i12.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}) =>
(super.noSuchMethod( (super.noSuchMethod(
Invocation.method(#searchEmails, [ Invocation.method(
accountId #loadMoreEmails,
], { [emailRequest],
#limit: limit, ),
#sort: sort, returnValue: _i4.Stream<_i5.EmailsResponse>.empty(),
#filter: filter, ) as _i4.Stream<_i5.EmailsResponse>);
#properties: properties
}),
returnValue: Future<List<_i12.Email>>.value(<_i12.Email>[]))
as _i3.Future<List<_i12.Email>>);
@override @override
_i3.Future<List<_i12.EmailId>> emptyTrashFolder( _i4.Future<List<_i13.Email>> searchEmails(
_i5.AccountId? accountId, _i14.MailboxId? trashMailboxId) => _i6.AccountId? accountId, {
_i7.UnsignedInt? limit,
Set<_i8.Comparator>? sort,
_i14.Filter? filter,
_i10.Properties? properties,
}) =>
(super.noSuchMethod( (super.noSuchMethod(
Invocation.method(#emptyTrashFolder, [accountId, trashMailboxId]), Invocation.method(
returnValue: Future<List<_i12.EmailId>>.value(<_i12.EmailId>[])) #searchEmails,
as _i3.Future<List<_i12.EmailId>>); [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>);
} }
@@ -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. // in tmail_ui_user/test/features/thread/domain/usecases/refresh_changes_emails_in_mailbox_interactor_test.dart.
// Do not manually edit this file. // Do not manually edit this file.
// ignore_for_file: no_leading_underscores_for_library_prefixes // 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/account_id.dart' as _i6;
import 'package:jmap_dart_client/jmap/core/filter/filter.dart' as _i13; import 'package:jmap_dart_client/jmap/core/filter/filter.dart' as _i14;
import 'package:jmap_dart_client/jmap/core/properties/properties.dart' as _i9; import 'package:jmap_dart_client/jmap/core/properties/properties.dart' as _i10;
import 'package:jmap_dart_client/jmap/core/sort/comparator.dart' as _i7; import 'package:jmap_dart_client/jmap/core/sort/comparator.dart' as _i8;
import 'package:jmap_dart_client/jmap/core/state.dart' as _i10; import 'package:jmap_dart_client/jmap/core/state.dart' as _i11;
import 'package:jmap_dart_client/jmap/core/unsigned_int.dart' as _i6; import 'package:jmap_dart_client/jmap/core/unsigned_int.dart' as _i7;
import 'package:jmap_dart_client/jmap/mail/email/email.dart' as _i12; import 'package:jmap_dart_client/jmap/mail/email/email.dart' as _i13;
import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart' as _i14; import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart' as _i15;
import 'package:mockito/mockito.dart' as _i1; 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' 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' 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' 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' import 'package:tmail_ui_user/features/thread/domain/repository/thread_repository.dart'
as _i2; as _i3;
// ignore_for_file: type=lint // ignore_for_file: type=lint
// ignore_for_file: avoid_redundant_argument_values // 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: prefer_const_constructors
// ignore_for_file: unnecessary_parenthesis // ignore_for_file: unnecessary_parenthesis
// ignore_for_file: camel_case_types // 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]. /// A class which mocks [ThreadRepository].
/// ///
/// See the documentation for Mockito's code generation for more information. /// 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() { MockThreadRepository() {
_i1.throwOnMissingStub(this); _i1.throwOnMissingStub(this);
} }
@override @override
_i3.Stream<_i4.EmailsResponse> getAllEmail(_i5.AccountId? accountId, _i4.Stream<_i5.EmailsResponse> getAllEmail(
{_i6.UnsignedInt? limit, _i6.AccountId? accountId, {
Set<_i7.Comparator>? sort, _i7.UnsignedInt? limit,
_i8.EmailFilter? emailFilter, Set<_i8.Comparator>? sort,
_i9.Properties? propertiesCreated, _i9.EmailFilter? emailFilter,
_i9.Properties? propertiesUpdated}) => _i10.Properties? propertiesCreated,
_i10.Properties? propertiesUpdated,
}) =>
(super.noSuchMethod( (super.noSuchMethod(
Invocation.method(#getAllEmail, [ Invocation.method(
accountId #getAllEmail,
], { [accountId],
#limit: limit, {
#sort: sort, #limit: limit,
#emailFilter: emailFilter, #sort: sort,
#propertiesCreated: propertiesCreated, #emailFilter: emailFilter,
#propertiesUpdated: propertiesUpdated #propertiesCreated: propertiesCreated,
}), #propertiesUpdated: propertiesUpdated,
returnValue: Stream<_i4.EmailsResponse>.empty()) },
as _i3.Stream<_i4.EmailsResponse>); ),
returnValue: _i4.Stream<_i5.EmailsResponse>.empty(),
) as _i4.Stream<_i5.EmailsResponse>);
@override @override
_i3.Stream<_i4.EmailsResponse> refreshChanges( _i4.Stream<_i5.EmailsResponse> refreshChanges(
_i5.AccountId? accountId, _i10.State? currentState, _i6.AccountId? accountId,
{Set<_i7.Comparator>? sort, _i11.State? currentState, {
_i8.EmailFilter? emailFilter, Set<_i8.Comparator>? sort,
_i9.Properties? propertiesCreated, _i9.EmailFilter? emailFilter,
_i9.Properties? propertiesUpdated}) => _i10.Properties? propertiesCreated,
_i10.Properties? propertiesUpdated,
}) =>
(super.noSuchMethod( (super.noSuchMethod(
Invocation.method(#refreshChanges, [ Invocation.method(
accountId, #refreshChanges,
currentState [
], { accountId,
#sort: sort, currentState,
#emailFilter: emailFilter, ],
#propertiesCreated: propertiesCreated, {
#propertiesUpdated: propertiesUpdated #sort: sort,
}), #emailFilter: emailFilter,
returnValue: Stream<_i4.EmailsResponse>.empty()) #propertiesCreated: propertiesCreated,
as _i3.Stream<_i4.EmailsResponse>); #propertiesUpdated: propertiesUpdated,
},
),
returnValue: _i4.Stream<_i5.EmailsResponse>.empty(),
) as _i4.Stream<_i5.EmailsResponse>);
@override @override
_i3.Stream<_i4.EmailsResponse> loadMoreEmails( _i4.Stream<_i5.EmailsResponse> loadMoreEmails(
_i11.GetEmailRequest? emailRequest) => _i12.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}) =>
(super.noSuchMethod( (super.noSuchMethod(
Invocation.method(#searchEmails, [ Invocation.method(
accountId #loadMoreEmails,
], { [emailRequest],
#limit: limit, ),
#sort: sort, returnValue: _i4.Stream<_i5.EmailsResponse>.empty(),
#filter: filter, ) as _i4.Stream<_i5.EmailsResponse>);
#properties: properties
}),
returnValue: Future<List<_i12.Email>>.value(<_i12.Email>[]))
as _i3.Future<List<_i12.Email>>);
@override @override
_i3.Future<List<_i12.EmailId>> emptyTrashFolder( _i4.Future<List<_i13.Email>> searchEmails(
_i5.AccountId? accountId, _i14.MailboxId? trashMailboxId) => _i6.AccountId? accountId, {
_i7.UnsignedInt? limit,
Set<_i8.Comparator>? sort,
_i14.Filter? filter,
_i10.Properties? properties,
}) =>
(super.noSuchMethod( (super.noSuchMethod(
Invocation.method(#emptyTrashFolder, [accountId, trashMailboxId]), Invocation.method(
returnValue: Future<List<_i12.EmailId>>.value(<_i12.EmailId>[])) #searchEmails,
as _i3.Future<List<_i12.EmailId>>); [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>);
}
+2
View File
@@ -31,6 +31,8 @@
<title>Team Mail</title> <title>Team Mail</title>
<link rel="manifest" href="manifest.json"> <link rel="manifest" href="manifest.json">
<script type="application/javascript" src="/assets/packages/flutter_inappwebview/assets/web/web_support.js" defer></script>
</head> </head>
<body> <body>
<!-- This script installs service_worker.js to provide PWA functionality to <!-- This script installs service_worker.js to provide PWA functionality to