From 1c9739271d7eefeec7e788df464c8b56b309a89c Mon Sep 17 00:00:00 2001 From: HuyNguyen Date: Fri, 19 Jan 2024 18:14:47 +0700 Subject: [PATCH] TW-1367: Handle go to the register public site automatically --- lib/config/app_config.dart | 6 - .../auto_homeserver_picker.dart | 70 +++- lib/pages/chat_list/chat_list_body_view.dart | 7 +- lib/pages/chat_list/chat_list_header.dart | 7 +- lib/pages/chat_list/chat_list_view.dart | 7 +- lib/pages/connect/connect_page_mixin.dart | 63 ++++ .../twake_welcome/twake_id_view_style.dart | 4 - lib/pages/twake_welcome/twake_welcome.dart | 27 +- .../twake_welcome/twake_welcome_view.dart | 7 +- .../app_adaptive_scaffold_body.dart | 2 +- lib/widgets/matrix.dart | 21 +- .../twake_components/twake_header.dart | 1 + pubspec.lock | 314 +++++++++--------- pubspec.yaml | 2 +- .../contacts/contacts_manager_test.mocks.dart | 1 + 15 files changed, 318 insertions(+), 221 deletions(-) delete mode 100644 lib/pages/twake_welcome/twake_id_view_style.dart diff --git a/lib/config/app_config.dart b/lib/config/app_config.dart index 4e7d5dd8b3..ab41d9933d 100644 --- a/lib/config/app_config.dart +++ b/lib/config/app_config.dart @@ -27,12 +27,6 @@ abstract class AppConfig { static String homeserver = 'https://example.com/'; - static const String postLoginRedirectUrlPathParams = - 'post_login_redirect_url'; - - static const String postRegisteredRedirectUrlPathParams = - 'post_registered_redirect_url'; - static String? platform; static double toolbarHeight(BuildContext context) => diff --git a/lib/pages/auto_homeserver_picker/auto_homeserver_picker.dart b/lib/pages/auto_homeserver_picker/auto_homeserver_picker.dart index 43b05c6d77..840b377f5b 100644 --- a/lib/pages/auto_homeserver_picker/auto_homeserver_picker.dart +++ b/lib/pages/auto_homeserver_picker/auto_homeserver_picker.dart @@ -24,11 +24,18 @@ class AutoHomeserverPickerController extends State with ConnectPageMixin { static const Duration autoHomeserverPickerTimeout = Duration(seconds: 30); + static const _saasPlatform = 'saas'; + final showButtonRetryNotifier = ValueNotifier(false); MatrixState get matrix => Matrix.of(context); - void _autoCheckHomeserver() async { + bool get _isSaasPlatform => + AppConfig.platform != null && + AppConfig.platform!.isNotEmpty && + AppConfig.platform == _saasPlatform; + + void _autoConnectHomeserver() async { try { matrix.loginHomeserverSummary = await matrix .getLoginClient() @@ -93,18 +100,71 @@ class AutoHomeserverPickerController extends State void retryCheckHomeserver() { showButtonRetryNotifier.toggle(); - _autoCheckHomeserver(); + if (_isSaasPlatform) { + _autoConnectSaas(); + } else { + _autoConnectHomeserver(); + } } - @override - void initState() { + void _autoConnectSaas() async { + matrix.loginHomeserverSummary = + await matrix.getLoginClient().checkHomeserver( + Uri.parse(AppConfig.twakeWorkplaceHomeserver), + ); + Map? rawLoginTypes; + await Matrix.of(context) + .getLoginClient() + .request( + RequestType.GET, + '/client/r0/login', + ) + .then((loginTypes) => rawLoginTypes = loginTypes) + .timeout( + autoHomeserverPickerTimeout, + onTimeout: () { + throw CheckHomeserverTimeoutException(); + }, + ); + final identitiesProvider = identityProviders(rawLoginTypes: rawLoginTypes); + if (identitiesProvider?.length == 1) { + registerPublicPlatformAction( + context: context, + id: identitiesProvider!.single.id!, + saasRegistrationErrorCallback: (object) { + Logs().e( + "AutoHomeserverPickerController: _saasAutoRegistration: Error - $object", + ); + }, + saasRegistrationTimeoutCallback: () { + Logs().e( + "AutoHomeserverPickerController: _saasAutoRegistration: Timeout", + ); + }, + ); + } + } + + void _setupAutoHomeserverPicker() { if (widget.loggedOut == null) { - _autoCheckHomeserver(); + Logs().d( + "AutoHomeserverPickerController: _initializeAutoHomeserverPicker: PlatForm ${AppConfig.platform}", + ); + if (_isSaasPlatform) { + _autoConnectSaas(); + } else { + _autoConnectHomeserver(); + } } else { if (widget.loggedOut == true) { showButtonRetryNotifier.toggle(); } } + } + + @override + void initState() { + _setupAutoHomeserverPicker(); super.initState(); } diff --git a/lib/pages/chat_list/chat_list_body_view.dart b/lib/pages/chat_list/chat_list_body_view.dart index adbc9d86b1..a62988a163 100644 --- a/lib/pages/chat_list/chat_list_body_view.dart +++ b/lib/pages/chat_list/chat_list_body_view.dart @@ -101,7 +101,8 @@ class ChatListBodyView extends StatelessWidget { .paddingTextStartNewChatMessage, child: Text( L10n.of(context)!.startNewChatMessage, - style: Theme.of(context).textTheme.bodyMedium, + style: + Theme.of(context).textTheme.bodyMedium, textAlign: TextAlign.center, ), ), @@ -152,8 +153,8 @@ class ChatListBodyView extends StatelessWidget { controller.filteredRoomsForPin.length, ), isExpanded: isExpanded, - onTap: - controller.expandRoomsForPinNotifier.toggle, + onTap: controller + .expandRoomsForPinNotifier.toggle, ), if (isExpanded) child!, ], diff --git a/lib/pages/chat_list/chat_list_header.dart b/lib/pages/chat_list/chat_list_header.dart index 1e87a4b492..001541bd2f 100644 --- a/lib/pages/chat_list/chat_list_header.dart +++ b/lib/pages/chat_list/chat_list_header.dart @@ -1,15 +1,16 @@ +import 'package:fluffychat/pages/chat_list/chat_list.dart'; import 'package:fluffychat/pages/chat_list/chat_list_header_style.dart'; import 'package:fluffychat/widgets/twake_components/twake_header.dart'; import 'package:flutter/material.dart'; class ChatListHeader extends StatelessWidget { final ChatListController controller; - final VoidCallback onClearSelection; + final VoidCallback? onOpenSearchPage; const ChatListHeader({ Key? key, required this.controller, - required this.onClearSelection, + this.onOpenSearchPage, }) : super(key: key); @override @@ -18,7 +19,7 @@ class ChatListHeader extends StatelessWidget { children: [ TwakeHeader( controller: controller, - onClearSelection: onClearSelection, + onClearSelection: controller.onClickClearSelection, ), Container( height: ChatListHeaderStyle.searchBarContainerHeight, diff --git a/lib/pages/chat_list/chat_list_view.dart b/lib/pages/chat_list/chat_list_view.dart index a880d015bd..5fd0bfd90d 100644 --- a/lib/pages/chat_list/chat_list_view.dart +++ b/lib/pages/chat_list/chat_list_view.dart @@ -45,12 +45,7 @@ class ChatListView extends StatelessWidget { preferredSize: ChatListViewStyle.preferredSizeAppBar(context), child: ChatListHeader( onOpenSearchPage: onOpenSearchPage, - selectModeNotifier: controller.selectModeNotifier, - conversationSelectionNotifier: - controller.conversationSelectionNotifier, - currentProfileNotifier: controller.currentProfileNotifier, - onClickClearSelection: controller.onClickClearSelection, - onClickAvatar: controller.onClickAvatar, + controller: controller, ), ), bottomNavigationBar: ValueListenableBuilder( diff --git a/lib/pages/connect/connect_page_mixin.dart b/lib/pages/connect/connect_page_mixin.dart index 0471c680eb..ac8591f97a 100644 --- a/lib/pages/connect/connect_page_mixin.dart +++ b/lib/pages/connect/connect_page_mixin.dart @@ -14,7 +14,12 @@ import 'package:flutter_web_auth_2/flutter_web_auth_2.dart'; import 'package:matrix/matrix.dart'; import 'package:universal_html/html.dart' as html; +typedef OnSAASRegistrationTimeoutCallback = void Function(); +typedef OnSAASRegistrationErrorCallback = void Function(Object?); + mixin ConnectPageMixin { + static const saasRegistrationTimeout = Duration(seconds: 120); + static const windowNameValue = '_self'; bool supportsFlow({ @@ -53,6 +58,15 @@ mixin ConnectPageMixin { return '$ssoRedirectUri?redirectUrl=$redirectUrlEncode'; } + String generatePublicPlatformAuthenticationUrl({ + required BuildContext context, + required String id, + required String redirectUrl, + }) { + final redirectUrlEncode = Uri.encodeQueryComponent(redirectUrl); + return '${AppConfig.registrationUrl}?post_registered_redirect_url=$redirectUrlEncode'; + } + String? _getLogoutUrl( BuildContext context, { required String redirectUrl, @@ -150,6 +164,36 @@ mixin ConnectPageMixin { } } + Future registerPublicPlatformAction({ + required BuildContext context, + required String id, + OnSAASRegistrationTimeoutCallback? saasRegistrationTimeoutCallback, + OnSAASRegistrationErrorCallback? saasRegistrationErrorCallback, + }) async { + final redirectUrl = _generateRedirectUrl( + Matrix.of(context).client.homeserver.toString(), + ); + final url = generatePublicPlatformAuthenticationUrl( + context: context, + id: id, + redirectUrl: redirectUrl, + ); + final urlScheme = _getRedirectUrlScheme(redirectUrl); + final uri = await FlutterWebAuth2.authenticate( + url: url, + callbackUrlScheme: urlScheme, + options: const FlutterWebAuth2Options( + intentFlags: ephemeralIntentFlags, + windowName: windowNameValue, + ), + ); + Logs().d("ConnectPageMixin:_redirectRegistrationUrl: URI - $uri"); + handleTokenFromRegistrationSite( + matrix: Matrix.of(context), + uri: uri, + ); + } + String _generatePostLogoutRedirectUrl() { if (kIsWeb) { if (AppConfig.issueId != null && AppConfig.issueId!.isNotEmpty) { @@ -190,4 +234,23 @@ mixin ConnectPageMixin { } return list; } + + void handleTokenFromRegistrationSite({ + required MatrixState matrix, + required String uri, + }) async { + final token = Uri.parse(uri).queryParameters['loginToken']; + Logs().d( + "ConnectPageMixin: handleTokenFromRegistrationSite: token: $token", + ); + if (token == null || token.isEmpty == true) return; + matrix.loginType = LoginType.mLoginToken; + await TwakeDialog.showFutureLoadingDialogFullScreen( + future: () => matrix.getLoginClient().login( + LoginType.mLoginToken, + token: token, + initialDeviceDisplayName: PlatformInfos.clientName, + ), + ); + } } diff --git a/lib/pages/twake_welcome/twake_id_view_style.dart b/lib/pages/twake_welcome/twake_id_view_style.dart deleted file mode 100644 index 7f5f1b5474..0000000000 --- a/lib/pages/twake_welcome/twake_id_view_style.dart +++ /dev/null @@ -1,4 +0,0 @@ -class TwakeIdViewStyle { - static const double logoWidth = 257; - static const double logoHeight = 179; -} diff --git a/lib/pages/twake_welcome/twake_welcome.dart b/lib/pages/twake_welcome/twake_welcome.dart index 987a970464..0e77fa07dd 100644 --- a/lib/pages/twake_welcome/twake_welcome.dart +++ b/lib/pages/twake_welcome/twake_welcome.dart @@ -1,8 +1,7 @@ import 'package:fluffychat/config/app_config.dart'; import 'package:equatable/equatable.dart'; +import 'package:fluffychat/pages/connect/connect_page_mixin.dart'; import 'package:fluffychat/pages/twake_welcome/twake_welcome_view.dart'; -import 'package:fluffychat/utils/dialog/twake_dialog.dart'; -import 'package:fluffychat/utils/platform_infos.dart'; import 'package:fluffychat/widgets/matrix.dart'; import 'package:flutter/material.dart'; import 'package:flutter_web_auth_2/flutter_web_auth_2.dart'; @@ -29,13 +28,14 @@ class TwakeWelcomeArg extends Equatable { class TwakeWelcome extends StatefulWidget { final TwakeWelcomeArg? arg; + const TwakeWelcome({super.key, this.arg}); @override State createState() => TwakeWelcomeController(); } -class TwakeWelcomeController extends State { +class TwakeWelcomeController extends State with ConnectPageMixin { void goToHomeserverPicker() { if (widget.arg?.isAddAnotherAccount == true) { context.push('/rooms/addhomeserver'); @@ -63,20 +63,6 @@ class TwakeWelcomeController extends State { _redirectRegistrationUrl(loginUrl); } - void _handleTokenFromRegistrationSite(String uri) async { - final token = Uri.parse(uri).queryParameters['loginToken']; - Logs().d("TwakeIdController: _handleLoginToken: token: $token"); - if (token?.isEmpty ?? false) return; - Matrix.of(context).loginType = LoginType.mLoginToken; - await TwakeDialog.showFutureLoadingDialogFullScreen( - future: () => Matrix.of(context).getLoginClient().login( - LoginType.mLoginToken, - token: token, - initialDeviceDisplayName: PlatformInfos.clientName, - ), - ); - } - void _redirectRegistrationUrl(String url) async { matrix.loginHomeserverSummary = await matrix.getLoginClient().checkHomeserver( @@ -90,12 +76,13 @@ class TwakeWelcomeController extends State { ), ); Logs().d("TwakeIdController:_redirectRegistrationUrl: URI - $uri"); - _handleTokenFromRegistrationSite(uri); + handleTokenFromRegistrationSite(matrix: matrix, uri: uri); } void onClickCreateTwakeId() { - Logs() - .d("TwakeIdController::onClickCreateTwakeId: Signup Url - $signupUrl"); + Logs().d( + "TwakeIdController::onClickCreateTwakeId: Signup Url - $signupUrl", + ); _redirectRegistrationUrl(signupUrl); } diff --git a/lib/pages/twake_welcome/twake_welcome_view.dart b/lib/pages/twake_welcome/twake_welcome_view.dart index 78d282988b..6f2283121c 100644 --- a/lib/pages/twake_welcome/twake_welcome_view.dart +++ b/lib/pages/twake_welcome/twake_welcome_view.dart @@ -1,5 +1,5 @@ -import 'package:fluffychat/pages/twake_welcome/twake_id_view_style.dart'; import 'package:fluffychat/pages/twake_welcome/twake_welcome.dart'; +import 'package:fluffychat/pages/twake_welcome/twake_welcome_view_style.dart'; import 'package:fluffychat/resource/image_paths.dart'; import 'package:flutter/material.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; @@ -24,10 +24,11 @@ class TwakeWelcomeView extends StatelessWidget { description: L10n.of(context)!.descriptionTwakeId, onUseCompanyServerOnTap: controller.goToHomeserverPicker, onSignInOnTap: controller.onClickSignIn, + onCreateTwakeIdOnTap: controller.onClickCreateTwakeId, logo: SvgPicture.asset( ImagePaths.logoTwakeWelcome, - width: TwakeIdViewStyle.logoWidth, - height: TwakeIdViewStyle.logoHeight, + width: TwakeWelcomeViewStyle.logoWidth, + height: TwakeWelcomeViewStyle.logoHeight, ), ); } diff --git a/lib/widgets/layouts/adaptive_layout/app_adaptive_scaffold_body.dart b/lib/widgets/layouts/adaptive_layout/app_adaptive_scaffold_body.dart index 8ce825a1c3..90b149efcf 100644 --- a/lib/widgets/layouts/adaptive_layout/app_adaptive_scaffold_body.dart +++ b/lib/widgets/layouts/adaptive_layout/app_adaptive_scaffold_body.dart @@ -129,7 +129,7 @@ class AppAdaptiveScaffoldBodyController extends State { 'AppAdaptiveScaffoldBodyController::_onLogoutMultipleAccountSuccess():newWidget - ${widget.args}', ); if (oldWidget.args != widget.args && widget.args is LogoutBodyArgs) { - activeNavigationBar.value = AdaptiveDestinationEnum.rooms; + activeNavigationBarNotifier.value = AdaptiveDestinationEnum.rooms; pageController.jumpToPage(AdaptiveDestinationEnum.rooms.index); } } diff --git a/lib/widgets/matrix.dart b/lib/widgets/matrix.dart index 951e201369..eda9f7bd5d 100644 --- a/lib/widgets/matrix.dart +++ b/lib/widgets/matrix.dart @@ -283,7 +283,6 @@ class MatrixState extends State super.initState(); WidgetsBinding.instance.addPostFrameCallback((_) async { WidgetsBinding.instance.addObserver(this); - _migrateToMDatabase(client); if (PlatformInfos.isWeb) { html.window.addEventListener('focus', onWindowFocus); html.window.addEventListener('blur', onWindowBlur); @@ -393,7 +392,7 @@ class MatrixState extends State Logs().v('[MATRIX]:_listenLoginStateChanged:: Log out successful'); if (PlatformInfos.isMobile) { _deletePersistActiveAccount(state); - TwakeApp.router.go('/home/twakeid'); + TwakeApp.router.go('/home/twakeWelcome'); } else { TwakeApp.router.go('/home', extra: true); } @@ -764,24 +763,6 @@ class MatrixState extends State } } - void _migrateToMDatabase(Client client) async { - if (!FlutterHiveCollectionsDatabase.canMigrateToMDatabase) return; - Logs().d( - 'Matrix::_checkHomeserverExists: Start migration to ToMDatabase', - ); - if (client.userID == null) return; - final hiveCollectionToMDatabase = - await getIt.getAsync(); - final currentToMConfigurations = await getTomConfigurations(client.userID!); - if (currentToMConfigurations != null) { - await hiveCollectionToMDatabase.clearCache(); - _storeToMConfiguration(client, currentToMConfigurations); - } - Logs().d( - 'Matrix::_checkHomeserverExists: Finish migration to ToMDatabase', - ); - } - void onWindowFocus(html.Event e) { didChangeAppLifecycleState(AppLifecycleState.resumed); } diff --git a/lib/widgets/twake_components/twake_header.dart b/lib/widgets/twake_components/twake_header.dart index f6792a9c60..0ceac1313b 100644 --- a/lib/widgets/twake_components/twake_header.dart +++ b/lib/widgets/twake_components/twake_header.dart @@ -1,3 +1,4 @@ +import 'package:fluffychat/pages/chat_list/chat_list.dart'; import 'package:fluffychat/presentation/enum/chat_list/chat_list_enum.dart'; import 'package:fluffychat/utils/platform_infos.dart'; import 'package:fluffychat/widgets/avatar/avatar.dart'; diff --git a/pubspec.lock b/pubspec.lock index d2d1cbb1b1..181a631d79 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -37,10 +37,10 @@ packages: dependency: "direct main" description: name: animations - sha256: "708e4b68c23228c264b038fe7003a2f5d01ce85fc64d8cae090e86b27fcea6c5" + sha256: d3d6dcfb218225bbe68e87ccf6378bbb2e32a94900722c5f81611dad089911cb url: "https://pub.dev" source: hosted - version: "2.0.10" + version: "2.0.11" ansicolor: dependency: transitive description: @@ -61,10 +61,10 @@ packages: dependency: transitive description: name: archive - sha256: "7b875fd4a20b165a3084bd2d210439b22ebc653f21cea4842729c0c30c82596b" + sha256: "22600aa1e926be775fa5fe7e6894e7fb3df9efda8891c73f70fb3262399a432d" url: "https://pub.dev" source: hosted - version: "3.4.9" + version: "3.4.10" args: dependency: transitive description: @@ -157,18 +157,18 @@ packages: dependency: "direct dev" description: name: build_runner - sha256: "67d591d602906ef9201caf93452495ad1812bea2074f04e25dbd7c133785821b" + sha256: "581bacf68f89ec8792f5e5a0b2c4decd1c948e97ce659dc783688c8a88fbec21" url: "https://pub.dev" source: hosted - version: "2.4.7" + version: "2.4.8" build_runner_core: dependency: transitive description: name: build_runner_core - sha256: c9e32d21dd6626b5c163d48b037ce906bbe428bc23ab77bcd77bb21e593b6185 + sha256: "4ae8ffe5ac758da294ecf1802f2aff01558d8b1b00616aa7538ea9a8a5d50799" url: "https://pub.dev" source: hosted - version: "7.2.11" + version: "7.3.0" built_collection: dependency: transitive description: @@ -181,34 +181,34 @@ packages: dependency: transitive description: name: built_value - sha256: c9aabae0718ec394e5bc3c7272e6bb0dc0b32201a08fe185ec1d8401d3e39309 + sha256: fedde275e0a6b798c3296963c5cd224e3e1b55d0e478d5b7e65e6b540f363a0e url: "https://pub.dev" source: hosted - version: "8.8.1" + version: "8.9.1" cached_network_image: dependency: "direct main" description: name: cached_network_image - sha256: f98972704692ba679db144261172a8e20feb145636c617af0eb4022132a6797f + sha256: "28ea9690a8207179c319965c13cd8df184d5ee721ae2ce60f398ced1219cea1f" url: "https://pub.dev" source: hosted - version: "3.3.0" + version: "3.3.1" cached_network_image_platform_interface: dependency: transitive description: name: cached_network_image_platform_interface - sha256: "56aa42a7a01e3c9db8456d9f3f999931f1e05535b5a424271e9a38cabf066613" + sha256: "9e90e78ae72caa874a323d78fa6301b3fb8fa7ea76a8f96dc5b5bf79f283bf2f" url: "https://pub.dev" source: hosted - version: "3.0.0" + version: "4.0.0" cached_network_image_web: dependency: transitive description: name: cached_network_image_web - sha256: "759b9a9f8f6ccbb66c185df805fac107f05730b1dab9c64626d1008cca532257" + sha256: "42a835caa27c220d1294311ac409a43361088625a4f23c820b006dd9bffb3316" url: "https://pub.dev" source: hosted - version: "1.1.0" + version: "1.1.1" callkeep: dependency: "direct main" description: @@ -221,42 +221,42 @@ packages: dependency: transitive description: name: camera - sha256: "7fa53bb1c2059e58bf86b7ab506e3b2a78e42f82d365b44b013239b975a166ef" + sha256: "9499cbc2e51d8eb0beadc158b288380037618ce4e30c9acbc4fae1ac3ecb5797" url: "https://pub.dev" source: hosted - version: "0.10.5+7" + version: "0.10.5+9" camera_android: dependency: transitive description: name: camera_android - sha256: "7215e38fa0be58cc3203a6e48de3636fb9b1bf93d6eeedf667f882d51b3a4bf3" + sha256: "15a6543878a41c141807ffab496f66b7fef6da0f23372f5513fc6349e60f437e" url: "https://pub.dev" source: hosted - version: "0.10.8+15" + version: "0.10.8+17" camera_avfoundation: dependency: transitive description: name: camera_avfoundation - sha256: "3c8dd395f18722f01b5f325ddd7f5256e9bcdce538fb9243b378ba759df3283c" + sha256: "608b56b0880722f703871329c4d7d4c2f379c8e2936940851df7fc041abc6f51" url: "https://pub.dev" source: hosted - version: "0.9.13+8" + version: "0.9.13+10" camera_platform_interface: dependency: transitive description: name: camera_platform_interface - sha256: b6a568984254cadaca41a6b896d87d3b2e79a2e5791afa036f8d524c6783b93a + sha256: a250314a48ea337b35909a4c9d5416a208d736dcb01d0b02c6af122be66660b0 url: "https://pub.dev" source: hosted - version: "2.7.0" + version: "2.7.4" camera_web: dependency: transitive description: name: camera_web - sha256: d4c2c571c7af04f8b10702ca16bb9ed2a26e64534171e8f75c9349b2c004d8f1 + sha256: f18ccfb33b2a7c49a52ad5aa3f07330b7422faaecbdfd9b9fe8e51182f6ad67d url: "https://pub.dev" source: hosted - version: "0.3.2+3" + version: "0.3.2+4" canonical_json: dependency: transitive description: @@ -293,10 +293,10 @@ packages: dependency: "direct main" description: name: chewie - sha256: "3427e469d7cc99536ac4fbaa069b3352c21760263e65ffb4f0e1c054af43a73e" + sha256: "8bc4ac4cf3f316e50a25958c0f5eb9bb12cf7e8308bb1d74a43b230da2cfc144" url: "https://pub.dev" source: hosted - version: "1.7.4" + version: "1.7.5" cli_util: dependency: transitive description: @@ -317,10 +317,10 @@ packages: dependency: transitive description: name: code_builder - sha256: feee43a5c05e7b3199bb375a86430b8ada1b04104f2923d0e03cc01ca87b6d84 + sha256: f692079e25e7869c14132d39f223f8eec9830eb76131925143b2129c4bb01b37 url: "https://pub.dev" source: hosted - version: "4.9.0" + version: "4.10.0" collection: dependency: "direct main" description: @@ -414,10 +414,10 @@ packages: dependency: transitive description: name: dart_webrtc - sha256: "5897a3bdd6c7fded07e80e250260ca4c9cd61f9080911aa308b516e1206745a9" + sha256: "5cbc40bd9b33d0c9b8004cff52e9883c71f0f54799afc8faca77535eeb9ef857" url: "https://pub.dev" source: hosted - version: "1.1.3" + version: "1.2.1" dartz: dependency: "direct main" description: @@ -470,10 +470,10 @@ packages: dependency: "direct main" description: name: device_info_plus - sha256: "0042cb3b2a76413ea5f8a2b40cec2a33e01d0c937e91f0f7c211fde4f7739ba6" + sha256: "77f757b789ff68e4eaf9c56d1752309bd9f7ad557cb105b938a7f8eb89e59110" url: "https://pub.dev" source: hosted - version: "9.1.1" + version: "9.1.2" device_info_plus_platform_interface: dependency: transitive description: @@ -486,10 +486,10 @@ packages: dependency: "direct main" description: name: dio - sha256: "797e1e341c3dd2f69f2dad42564a6feff3bfb87187d05abb93b9609e6f1645c3" + sha256: "49af28382aefc53562459104f64d16b9dfd1e8ef68c862d5af436cc8356ce5a8" url: "https://pub.dev" source: hosted - version: "5.4.0" + version: "5.4.1" dio_cache_interceptor: dependency: "direct main" description: @@ -510,18 +510,18 @@ packages: dependency: "direct main" description: name: dynamic_color - sha256: a866f1f8947bfdaf674d7928e769eac7230388a2e7a2542824fad4bb5b87be3b + sha256: eae98052fa6e2826bdac3dd2e921c6ce2903be15c6b7f8b6d8a5d49b5086298d url: "https://pub.dev" source: hosted - version: "1.6.9" + version: "1.7.0" emoji_picker_flutter: dependency: "direct main" description: name: emoji_picker_flutter - sha256: "009c51efc763d5a6ba05a5628b8b2184c327cd117d66ea9c3e7edf2ff269c423" + sha256: "8506341d62efd116d6fb1481450bffdbac659d3d90d46d9cc610bfae5f33cc54" url: "https://pub.dev" source: hosted - version: "1.6.3" + version: "1.6.4" emoji_proposal: dependency: "direct main" description: @@ -582,10 +582,10 @@ packages: dependency: "direct overridden" description: name: ffi - sha256: "7bf0adc28a23d395f19f3f1eb21dd7cfd1dd9f8e1c50051c069122e6853bc878" + sha256: "0396b3798d91e7330911407d0cebc6bcb776aff56da567deb1ef3f40a469e72a" url: "https://pub.dev" source: hosted - version: "2.1.0" + version: "2.0.0" file: dependency: transitive description: @@ -622,18 +622,18 @@ packages: dependency: transitive description: name: file_selector_android - sha256: b7556052dbcc25ef88f6eba45ab98aa5600382af8dfdabc9d644a93d97b7be7f + sha256: "1cd66575f063b689e041aec836905ba7be18d76c9f0634d0d75daec825f67095" url: "https://pub.dev" source: hosted - version: "0.5.0+4" + version: "0.5.0+7" file_selector_ios: dependency: transitive description: name: file_selector_ios - sha256: "2f48db7e338b2255101c35c604b7ca5ab588dce032db7fc418a2fe5f28da63f8" + sha256: b015154e6d9fddbc4d08916794df170b44531798c8dd709a026df162d07ad81d url: "https://pub.dev" source: hosted - version: "0.5.1+7" + version: "0.5.1+8" file_selector_linux: dependency: "direct overridden" description: @@ -654,10 +654,10 @@ packages: dependency: transitive description: name: file_selector_platform_interface - sha256: "0aa47a725c346825a2bd396343ce63ac00bda6eff2fbc43eabe99737dede8262" + sha256: a3994c26f10378a039faa11de174d7b78eb8f79e4dd0af2a451410c1a5c3f66b url: "https://pub.dev" source: hosted - version: "2.6.1" + version: "2.6.2" file_selector_web: dependency: transitive description: @@ -715,10 +715,10 @@ packages: dependency: "direct main" description: name: flutter_adaptive_scaffold - sha256: "3e78be8b9c95b1c9832b2f8ec4a845adac205c4bb5e7bd3fb204b07990229167" + sha256: "4257142551ec97761d44f4258b8ad53ac76593dd0992197b876769df19f8a018" url: "https://pub.dev" source: hosted - version: "0.1.7+1" + version: "0.1.8" flutter_app_badger: dependency: "direct main" description: @@ -784,42 +784,50 @@ packages: dependency: "direct main" description: name: flutter_image_compress - sha256: f159d2e8c4ed04b8e36994124fd4a5017a0f01e831ae3358c74095c340e9ae5e + sha256: "4edadb0ca2f957b85190e9c3aa728569b91b64b6e06e0eec5b622d47a8692ab2" url: "https://pub.dev" source: hosted - version: "2.1.0" + version: "2.2.0" flutter_image_compress_common: dependency: transitive description: name: flutter_image_compress_common - sha256: "7cad12802628706655920089cfe9ee1d1098300e7f39a079eb160458bbc47652" + sha256: "7f79bc6c8a363063620b4e372fa86bc691e1cb28e58048cd38e030692fbd99ee" url: "https://pub.dev" source: hosted - version: "1.0.3" + version: "1.0.5" flutter_image_compress_macos: dependency: transitive description: name: flutter_image_compress_macos - sha256: fea1e3d71150d03373916b832c49b5c2f56c3e7e13da82a929274a2c6f88251e + sha256: "26df6385512e92b3789dc76b613b54b55c457a7f1532e59078b04bf189782d47" url: "https://pub.dev" source: hosted - version: "1.0.1" + version: "1.0.2" + flutter_image_compress_ohos: + dependency: transitive + description: + name: flutter_image_compress_ohos + sha256: "70360371698be994786e5dd2e364a6525b1c5a4f843bff8af9b8a2fbe808d8d8" + url: "https://pub.dev" + source: hosted + version: "0.0.2" flutter_image_compress_platform_interface: dependency: transitive description: name: flutter_image_compress_platform_interface - sha256: eb4f055138b29b04498ebcb6d569aaaee34b64d75fb74ea0d40f9790bf47ee9d + sha256: "579cb3947fd4309103afe6442a01ca01e1e6f93dc53bb4cbd090e8ce34a41889" url: "https://pub.dev" source: hosted - version: "1.0.3" + version: "1.0.5" flutter_image_compress_web: dependency: transitive description: name: flutter_image_compress_web - sha256: da41cc3859f19d11c7d10be615f6a9dcf0907e7daffde7442bf4cc2486663660 + sha256: f02fe352b17f82b72f481de45add240db062a2585850bea1667e82cc4cd6c311 url: "https://pub.dev" source: hosted - version: "0.1.3+2" + version: "0.1.4+1" flutter_inappwebview: dependency: "direct main" description: @@ -950,7 +958,7 @@ packages: description: path: "." ref: master - resolved-ref: "96d16afde0eab53afff59642ab382cbcb522a616" + resolved-ref: "27e36218e126e9e1c382e45fde4a683b10e83f91" url: "https://github.com/linagora/flutter_matrix_html.git" source: git version: "1.2.0" @@ -958,10 +966,10 @@ packages: dependency: "direct dev" description: name: flutter_native_splash - sha256: "141b20f15a2c4fe6e33c49257ca1bc114fc5c500b04fcbc8d75016bb86af672f" + sha256: "558f10070f03ee71f850a78f7136ab239a67636a294a44a06b6b7345178edb1e" url: "https://pub.dev" source: hosted - version: "2.3.8" + version: "2.3.10" flutter_olm: dependency: "direct main" description: @@ -1105,10 +1113,10 @@ packages: dependency: "direct main" description: name: flutter_webrtc - sha256: "577216727181cb13776a65d3e7cb33e783e740c5496335011aed4a038b28c3fe" + sha256: "2f17fb96e0c9c6ff75f6b1c36d94755461fc7f36a5c28386f5ee5a18b98688c8" url: "https://pub.dev" source: hosted - version: "0.9.47" + version: "0.9.48+hotfix.1" fluttertoast: dependency: "direct main" description: @@ -1158,10 +1166,10 @@ packages: dependency: "direct main" description: name: get_it - sha256: f79870884de16d689cf9a7d15eedf31ed61d750e813c538a6efb92660fea83c3 + sha256: e6017ce7fdeaf218dc51a100344d8cb70134b80e28b760f8bb23c242437bafd7 url: "https://pub.dev" source: hosted - version: "7.6.4" + version: "7.6.7" glob: dependency: transitive description: @@ -1286,10 +1294,10 @@ packages: dependency: "direct main" description: name: image - sha256: "028f61960d56f26414eb616b48b04eb37d700cbe477b7fb09bf1d7ce57fd9271" + sha256: "4c68bfd5ae83e700b5204c1e74451e7bf3cf750e6843c6e158289cf56bda018e" url: "https://pub.dev" source: hosted - version: "4.1.3" + version: "4.1.7" image_gallery_saver: dependency: "direct main" description: @@ -1302,34 +1310,34 @@ packages: dependency: "direct main" description: name: image_picker - sha256: fc712337719239b0b6e41316aa133350b078fa39b6cbd706b61f3fd421b03c77 + sha256: "26222b01a0c9a2c8fe02fc90b8208bd3325da5ed1f4a2acabf75939031ac0bdd" url: "https://pub.dev" source: hosted - version: "1.0.5" + version: "1.0.7" image_picker_android: dependency: transitive description: name: image_picker_android - sha256: ecdc963d2aa67af5195e723a40580f802d4392e31457a12a562b3e2bd6a396fe + sha256: "39f2bfe497e495450c81abcd44b62f56c2a36a37a175da7d137b4454977b51b1" url: "https://pub.dev" source: hosted - version: "0.8.9+1" + version: "0.8.9+3" image_picker_for_web: dependency: transitive description: name: image_picker_for_web - sha256: "50bc9ae6a77eea3a8b11af5eb6c661eeb858fdd2f734c2a4fd17086922347ef7" + sha256: e2423c53a68b579a7c37a1eda967b8ae536c3d98518e5db95ca1fe5719a730a3 url: "https://pub.dev" source: hosted - version: "3.0.1" + version: "3.0.2" image_picker_ios: dependency: transitive description: name: image_picker_ios - sha256: eac0a62104fa12feed213596df0321f57ce5a572562f72a68c4ff81e9e4caacf + sha256: fadafce49e8569257a0cad56d24438a6fa1f0cbd7ee0af9b631f7492818a4ca3 url: "https://pub.dev" source: hosted - version: "0.8.9" + version: "0.8.9+1" image_picker_linux: dependency: transitive description: @@ -1350,10 +1358,10 @@ packages: dependency: transitive description: name: image_picker_platform_interface - sha256: ed9b00e63977c93b0d2d2b343685bed9c324534ba5abafbb3dfbd6a780b1b514 + sha256: fa4e815e6fcada50e35718727d83ba1c92f1edf95c0b4436554cec301b56233b url: "https://pub.dev" source: hosted - version: "2.9.1" + version: "2.9.3" image_picker_windows: dependency: transitive description: @@ -1550,26 +1558,26 @@ packages: dependency: transitive description: name: macos_ui - sha256: cc499122655c61728185561e9006af4b239f9526f98d7b2cbf42124e9044a0ff + sha256: d351f0bada7e5b0cee8cf394299878a6c04e5cfcd784fa1d40e44299501124d8 url: "https://pub.dev" source: hosted - version: "2.0.2" + version: "2.0.5" macos_window_utils: dependency: transitive description: name: macos_window_utils - sha256: b3dfd47bbc605f0e315af684b50370a8f84932267aaa542098063fa384d593bd + sha256: "230be594d26f6dee92c5a1544f4242d25138a5bfb9f185b27f14de3949ef0be8" url: "https://pub.dev" source: hosted - version: "1.4.0" + version: "1.5.0" markdown: dependency: transitive description: name: markdown - sha256: acf35edccc0463a9d7384e437c015a3535772e09714cf60e07eeef3a15870dcd + sha256: ef2a1298144e3f985cc736b22e0ccdaf188b5b3970648f2d9dc13efd1d9df051 url: "https://pub.dev" source: hosted - version: "7.1.1" + version: "7.2.2" matcher: dependency: transitive description: @@ -1590,8 +1598,8 @@ packages: dependency: "direct main" description: path: "." - ref: add-callback-migrating-database - resolved-ref: "10d717db2f368bbafb035290a4bc7df558c2e3df" + ref: "twake-supported-0.22.6" + resolved-ref: "22311972c4d781133b893ae032dcb509b1351075" url: "git@github.com:linagora/matrix-dart-sdk.git" source: git version: "0.22.6" @@ -1599,10 +1607,10 @@ packages: dependency: transitive description: name: matrix_api_lite - sha256: "62bdd1dffb956e956863ba21e52109157502342b749e4728f4105f0c6d73a254" + sha256: "0e92d3402b4cbb8ab9283fd2fbe44147facf6f73de88f5adf0b3123bc5114bc1" url: "https://pub.dev" source: hosted - version: "1.7.2" + version: "1.7.3" matrix_homeserver_recommendations: dependency: "direct main" description: @@ -1712,10 +1720,10 @@ packages: dependency: "direct main" description: name: mime - sha256: e4ff8e8564c03f255408decd16e7899da1733852a9110a58fe6d1b817684a63e + sha256: "2e123074287cc9fd6c09de8336dae606d1ddb88d9ac47358826db698c176a1f2" url: "https://pub.dev" source: hosted - version: "1.0.4" + version: "1.0.5" mockito: dependency: "direct dev" description: @@ -1840,10 +1848,10 @@ packages: dependency: "direct main" description: name: path_provider - sha256: a1aa8aaa2542a6bc57e381f132af822420216c80d4781f7aa085ca3229208aaa + sha256: b27217933eeeba8ff24845c34003b003b2b22151de3c908d0e679e8fe1aa078b url: "https://pub.dev" source: hosted - version: "2.1.1" + version: "2.1.2" path_provider_android: dependency: transitive description: @@ -1856,10 +1864,10 @@ packages: dependency: transitive description: name: path_provider_foundation - sha256: "19314d595120f82aca0ba62787d58dde2cc6b5df7d2f0daf72489e38d1b57f2d" + sha256: "5a7999be66e000916500be4f15a3633ebceb8302719b47b9cc49ce924125350f" url: "https://pub.dev" source: hosted - version: "2.3.1" + version: "2.3.2" path_provider_linux: dependency: transitive description: @@ -1872,10 +1880,10 @@ packages: dependency: transitive description: name: path_provider_platform_interface - sha256: "94b1e0dd80970c1ce43d5d4e050a9918fce4f4a775e6142424c30a29a363265c" + sha256: "88f5779f72ba699763fa3a3b06aa4bf6de76c8e5de842cf6f29e2e06476c2334" url: "https://pub.dev" source: hosted - version: "2.1.1" + version: "2.1.2" path_provider_windows: dependency: transitive description: @@ -1936,18 +1944,18 @@ packages: dependency: "direct main" description: name: photo_manager - sha256: "8cf79918f6de9843b394a1670fe1aec54ebcac852b4b4c9ef88211894547dc61" + sha256: df594f989f0c31cdb3ed48f3d49cb9ffadf11cc3700d2c3460b1912c93432621 url: "https://pub.dev" source: hosted - version: "3.0.0-dev.5" + version: "3.0.0" photo_manager_image_provider: dependency: "direct main" description: name: photo_manager_image_provider - sha256: c187f60c3fdbe5630735d9a0bccbb071397ec03dcb1ba6085c29c8adece798a0 + sha256: "38ef1023dc11de3a8669f16e7c981673b3c5cfee715d17120f4b87daa2cdd0af" url: "https://pub.dev" source: hosted - version: "2.1.0" + version: "2.1.1" pin_code_text_field: dependency: "direct main" description: @@ -1960,10 +1968,10 @@ packages: dependency: transitive description: name: pixel_snap - sha256: d31591a4f4aa8ed5dc6fc00b8d027338a5614dfbf5ca658b69d1faa7aba80af7 + sha256: "677410ea37b07cd37ecb6d5e6c0d8d7615a7cf3bd92ba406fd1ac57e937d1fb0" url: "https://pub.dev" source: hosted - version: "0.1.4" + version: "0.1.5" platform: dependency: transitive description: @@ -1984,10 +1992,10 @@ packages: dependency: transitive description: name: plugin_platform_interface - sha256: f4f88d4a900933e7267e2b353594774fc0d07fb072b47eedcd5b54e1ea3269f8 + sha256: "4820fbfdb9478b1ebae27888254d445073732dae3d6ea81f0b7e06d5dedc3f02" url: "https://pub.dev" source: hosted - version: "2.1.7" + version: "2.1.8" pointer_interceptor: dependency: transitive description: @@ -2024,10 +2032,10 @@ packages: dependency: transitive description: name: pointycastle - sha256: "7c1e5f0d23c9016c5bbd8b1473d0d3fb3fc851b876046039509e18e0c7485f2c" + sha256: "43ac87de6e10afabc85c445745a7b799e04de84cebaa4fd7bf55a5e1e9604d29" url: "https://pub.dev" source: hosted - version: "3.7.3" + version: "3.7.4" polylabel: dependency: transitive description: @@ -2072,10 +2080,10 @@ packages: dependency: "direct main" description: name: provider - sha256: "9a96a0a19b594dbc5bf0f1f27d2bc67d5f95957359b461cd9feb44ed6ae75096" + sha256: c8a055ee5ce3fd98d6fc872478b03823ffdb448699c6ebdbbc71d59b596fd48c url: "https://pub.dev" source: hosted - version: "6.1.1" + version: "6.1.2" pub_semver: dependency: transitive description: @@ -2337,10 +2345,10 @@ packages: dependency: transitive description: name: share_plus_platform_interface - sha256: df08bc3a07d01f5ea47b45d03ffcba1fa9cd5370fb44b3f38c70e42cced0f956 + sha256: "251eb156a8b5fa9ce033747d73535bf53911071f8d3b6f4f0b578505ce0d4496" url: "https://pub.dev" source: hosted - version: "3.3.1" + version: "3.4.0" share_plus_web: dependency: transitive description: @@ -2401,10 +2409,10 @@ packages: dependency: transitive description: name: shared_preferences_platform_interface - sha256: d4ec5fc9ebb2f2e056c617112aa75dcf92fc2e4faaf2ae999caa297473f75d8a + sha256: "22e2ecac9419b4246d7c22bfbbda589e3acf5c0351137d87dd2939d984d37c3b" url: "https://pub.dev" source: hosted - version: "2.3.1" + version: "2.3.2" shared_preferences_web: dependency: transitive description: @@ -2510,18 +2518,18 @@ packages: dependency: transitive description: name: sqflite - sha256: "591f1602816e9c31377d5f008c2d9ef7b8aca8941c3f89cc5fd9d84da0c38a9a" + sha256: a9016f495c927cb90557c909ff26a6d92d9bd54fc42ba92e19d4e79d61e798c6 url: "https://pub.dev" source: hosted - version: "2.3.0" + version: "2.3.2" sqflite_common: dependency: transitive description: name: sqflite_common - sha256: bb4738f15b23352822f4c42a531677e5c6f522e079461fd240ead29d8d8a54a6 + sha256: "28d8c66baee4968519fb8bd6cdbedad982d6e53359091f0b74544a9f32ec72d5" url: "https://pub.dev" source: hosted - version: "2.5.0+2" + version: "2.5.3" stack_trace: dependency: transitive description: @@ -2758,26 +2766,26 @@ packages: dependency: "direct main" description: name: url_launcher - sha256: e9aa5ea75c84cf46b3db4eea212523591211c3cf2e13099ee4ec147f54201c86 + sha256: "0ecc004c62fd3ed36a2ffcbe0dd9700aee63bd7532d0b642a488b1ec310f492e" url: "https://pub.dev" source: hosted - version: "6.2.2" + version: "6.2.5" url_launcher_android: dependency: transitive description: name: url_launcher_android - sha256: "31222ffb0063171b526d3e569079cf1f8b294075ba323443fdc690842bfd4def" + sha256: d4ed0711849dd8e33eb2dd69c25db0d0d3fdc37e0a62e629fe32f57a22db2745 url: "https://pub.dev" source: hosted - version: "6.2.0" + version: "6.3.0" url_launcher_ios: dependency: transitive description: name: url_launcher_ios - sha256: bba3373219b7abb6b5e0d071b0fe66dfbe005d07517a68e38d4fc3638f35c6d3 + sha256: "75bb6fe3f60070407704282a2d295630cab232991eb52542b18347a8a941df03" url: "https://pub.dev" source: hosted - version: "6.2.1" + version: "6.2.4" url_launcher_linux: dependency: transitive description: @@ -2798,18 +2806,18 @@ packages: dependency: transitive description: name: url_launcher_platform_interface - sha256: "980e8d9af422f477be6948bdfb68df8433be71f5743a188968b0c1b887807e50" + sha256: "552f8a1e663569be95a8190206a38187b531910283c3e982193e4f2733f01029" url: "https://pub.dev" source: hosted - version: "2.2.0" + version: "2.3.2" url_launcher_web: dependency: transitive description: name: url_launcher_web - sha256: "7286aec002c8feecc338cc33269e96b73955ab227456e9fb2a91f7fab8a358e9" + sha256: fff0932192afeedf63cdd50ecbb1bc825d31aed259f02bb8dba0f3b729a5e88b url: "https://pub.dev" source: hosted - version: "2.2.2" + version: "2.2.3" url_launcher_windows: dependency: transitive description: @@ -2822,10 +2830,10 @@ packages: dependency: transitive description: name: uuid - sha256: "22c94e5ad1e75f9934b766b53c742572ee2677c56bc871d850a57dad0f82127f" + sha256: cd210a09f7c18cbe5a02511718e0334de6559871052c90a90c0cca46a4aa81c8 url: "https://pub.dev" source: hosted - version: "4.2.2" + version: "4.3.3" value_layout_builder: dependency: transitive description: @@ -2838,26 +2846,26 @@ packages: dependency: transitive description: name: vector_graphics - sha256: "0f0c746dd2d6254a0057218ff980fc7f5670fd0fcf5e4db38a490d31eed4ad43" + sha256: "4ac59808bbfca6da38c99f415ff2d3a5d7ca0a6b4809c71d9cf30fba5daf9752" url: "https://pub.dev" source: hosted - version: "1.1.9+1" + version: "1.1.10+1" vector_graphics_codec: dependency: transitive description: name: vector_graphics_codec - sha256: "0edf6d630d1bfd5589114138ed8fada3234deacc37966bec033d3047c29248b7" + sha256: f3247e7ab0ec77dc759263e68394990edc608fb2b480b80db8aa86ed09279e33 url: "https://pub.dev" source: hosted - version: "1.1.9+1" + version: "1.1.10+1" vector_graphics_compiler: dependency: transitive description: name: vector_graphics_compiler - sha256: d24333727332d9bd20990f1483af4e09abdb9b1fc7c3db940b56ab5c42790c26 + sha256: "18489bdd8850de3dd7ca8a34e0c446f719ec63e2bab2e7a8cc66a9028dd76c5a" url: "https://pub.dev" source: hosted - version: "1.1.9+1" + version: "1.1.10+1" vector_math: dependency: transitive description: @@ -2887,42 +2895,42 @@ packages: dependency: "direct main" description: name: video_player - sha256: e16f0a83601a78d165dabc17e4dac50997604eb9e4cc76e10fa219046b70cef3 + sha256: afc65f4b8bcb2c188f64a591f84fb471f4f2e19fc607c65fd8d2f8fedb3dec23 url: "https://pub.dev" source: hosted - version: "2.8.1" + version: "2.8.3" video_player_android: dependency: transitive description: name: video_player_android - sha256: "3fe89ab07fdbce786e7eb25b58532d6eaf189ceddc091cb66cba712f8d9e8e55" + sha256: "4dd9b8b86d70d65eecf3dcabfcdfbb9c9115d244d022654aba49a00336d540c2" url: "https://pub.dev" source: hosted - version: "2.4.10" + version: "2.4.12" video_player_avfoundation: dependency: transitive description: name: video_player_avfoundation - sha256: "01a57940e1dabc8769ccd457c4ae9ea50274e7d5a7617f7820dae5fe1d8436ae" + sha256: "309e3962795e761be010869bae65c0b0e45b5230c5cee1bec72197ca7db040ed" url: "https://pub.dev" source: hosted - version: "2.5.3" + version: "2.5.6" video_player_platform_interface: dependency: transitive description: name: video_player_platform_interface - sha256: be72301bf2c0150ab35a8c34d66e5a99de525f6de1e8d27c0672b836fe48f73a + sha256: "236454725fafcacf98f0f39af0d7c7ab2ce84762e3b63f2cbb3ef9a7e0550bc6" url: "https://pub.dev" source: hosted - version: "6.2.1" + version: "6.2.2" video_player_web: dependency: transitive description: name: video_player_web - sha256: ab7a462b07d9ca80bed579e30fb3bce372468f1b78642e0911b10600f2c5cb5b + sha256: "34beb3a07d4331a24f7e7b2f75b8e2b103289038e07e65529699a671b6a6e2cb" url: "https://pub.dev" source: hosted - version: "2.1.2" + version: "2.1.3" video_thumbnail: dependency: "direct main" description: @@ -3075,18 +3083,26 @@ packages: dependency: "direct main" description: name: wechat_camera_picker - sha256: ffc6f987b62d7e1104ec08c4797a620cb1cc9698cbfb6d19865290e835ea1777 + sha256: "682d4cd5606d5f95af2f6efe3224ebb5fe5ac014980eeaba0eddd211219c6f4a" + url: "https://pub.dev" + source: hosted + version: "4.2.1" + wechat_picker_library: + dependency: transitive + description: + name: wechat_picker_library + sha256: a47cdb227955f64494fe55bc42d91a76bfc626a446075d4284a070f1e1297b4e url: "https://pub.dev" source: hosted - version: "4.2.0-dev.3" + version: "1.0.0" win32: dependency: transitive description: name: win32 - sha256: b0f37db61ba2f2e9b7a78a1caece0052564d1bc70668156cf3a29d676fe4e574 + sha256: "464f5674532865248444b4c3daca12bd9bf2d7c47f759ce2617986e7229494a8" url: "https://pub.dev" source: hosted - version: "5.1.1" + version: "5.2.0" win32_registry: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 8e890cb937..895db17fee 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -232,7 +232,7 @@ msix_config: dependency_overrides: # Until all dependencies are compatible. Missing: file_picker_cross, flutter_matrix_html - ffi: ^2.0.0 + ffi: 2.0.0 # This otherwise breaks on linux with flutter 3.7.0, let's override it for now. file_selector: ^0.9.2+2 file_selector_linux: ^0.9.1 diff --git a/test/domain/contacts/contacts_manager_test.mocks.dart b/test/domain/contacts/contacts_manager_test.mocks.dart index 4a4d1fe7be..07a953663c 100644 --- a/test/domain/contacts/contacts_manager_test.mocks.dart +++ b/test/domain/contacts/contacts_manager_test.mocks.dart @@ -54,6 +54,7 @@ class MockGetTomContactsInteractor extends _i1.Mock Invocation.getter(#contactRepository), ), ) as _i2.ContactRepository); + @override _i4.Stream<_i5.Either<_i6.Failure, _i7.Success>> execute( {required int? limit}) =>