From afd1d006d488dc1fc8e03c2cf91f6af38786a361 Mon Sep 17 00:00:00 2001 From: "J. A. Messias" Date: Wed, 18 Dec 2024 10:50:43 -0300 Subject: [PATCH] fix entry-point no detachLocal --- .../flutter_flow_button_tabbar.dart | 123 ++++++++++++------ .../locals_local_data_source.dart | 8 +- .../locals_remote_data_source.dart | 47 ++++--- .../repositories/locals_repository_impl.dart | 27 ++-- pubspec.lock | 48 +++---- pubspec.yaml | 2 +- 6 files changed, 156 insertions(+), 99 deletions(-) diff --git a/lib/flutter_flow/flutter_flow_button_tabbar.dart b/lib/flutter_flow/flutter_flow_button_tabbar.dart index 45bee44f..e4cd78cc 100644 --- a/lib/flutter_flow/flutter_flow_button_tabbar.dart +++ b/lib/flutter_flow/flutter_flow_button_tabbar.dart @@ -8,7 +8,8 @@ import 'package:flutter/rendering.dart'; const double _kTabHeight = 46.0; -typedef _LayoutCallback = void Function(List xOffsets, TextDirection textDirection, double width); +typedef _LayoutCallback = void Function( + List xOffsets, TextDirection textDirection, double width); class _TabLabelBarRenderer extends RenderFlex { _TabLabelBarRenderer({ @@ -33,7 +34,8 @@ class _TabLabelBarRenderer extends RenderFlex { RenderBox? child = firstChild; final List xOffsets = []; while (child != null) { - final FlexParentData childParentData = child.parentData! as FlexParentData; + final FlexParentData childParentData = + child.parentData! as FlexParentData; xOffsets.add(childParentData.offset.dx); assert(child.parentData == childParentData); child = childParentData.nextSibling; @@ -82,7 +84,8 @@ class _TabLabelBar extends Flex { } @override - void updateRenderObject(BuildContext context, _TabLabelBarRenderer renderObject) { + void updateRenderObject( + BuildContext context, _TabLabelBarRenderer renderObject) { super.updateRenderObject(context, renderObject); renderObject.onPerformLayout = onPerformLayout; } @@ -133,7 +136,8 @@ class _IndicatorPainter extends CustomPainter { assert(_currentTabOffsets!.isNotEmpty); assert(tabIndex >= 0); assert(tabIndex <= maxTabIndex); - return (_currentTabOffsets![tabIndex] + _currentTabOffsets![tabIndex + 1]) / 2.0; + return (_currentTabOffsets![tabIndex] + _currentTabOffsets![tabIndex + 1]) / + 2.0; } @override @@ -188,10 +192,12 @@ class _TabBarScrollPosition extends ScrollPositionWithSingleContext { // ballistic scroll activity. if (!_viewportDimensionWasNonZero || _needsPixelsCorrection) { _needsPixelsCorrection = false; - correctPixels(tabBar._initialScrollOffset(viewportDimension, minScrollExtent, maxScrollExtent)); + correctPixels(tabBar._initialScrollOffset( + viewportDimension, minScrollExtent, maxScrollExtent)); result = false; } - return super.applyContentDimensions(minScrollExtent, maxScrollExtent) && result; + return super.applyContentDimensions(minScrollExtent, maxScrollExtent) && + result; } void markNeedsPixelsCorrection() { @@ -207,7 +213,8 @@ class _TabBarScrollController extends ScrollController { final _FlutterFlowButtonTabBarState tabBar; @override - ScrollPosition createScrollPosition(ScrollPhysics physics, ScrollContext context, ScrollPosition? oldPosition) { + ScrollPosition createScrollPosition(ScrollPhysics physics, + ScrollContext context, ScrollPosition? oldPosition) { return _TabBarScrollPosition( physics: physics, context: context, @@ -218,7 +225,8 @@ class _TabBarScrollController extends ScrollController { } /// A Flutterflow Design widget that displays a horizontal row of tabs. -class FlutterFlowButtonTabBar extends StatefulWidget implements PreferredSizeWidget { +class FlutterFlowButtonTabBar extends StatefulWidget + implements PreferredSizeWidget { /// The [tabs] argument must not be null and its length must match the [controller]'s /// [TabController.length]. /// @@ -352,14 +360,17 @@ class FlutterFlowButtonTabBar extends StatefulWidget implements PreferredSizeWid maxHeight = math.max(itemHeight, maxHeight); } } - return Size.fromHeight(maxHeight + labelPadding.vertical + buttonMargin.vertical); + return Size.fromHeight( + maxHeight + labelPadding.vertical + buttonMargin.vertical); } @override - State createState() => _FlutterFlowButtonTabBarState(); + State createState() => + _FlutterFlowButtonTabBarState(); } -class _FlutterFlowButtonTabBarState extends State with TickerProviderStateMixin { +class _FlutterFlowButtonTabBarState extends State + with TickerProviderStateMixin { ScrollController? _scrollController; TabController? _controller; _IndicatorPainter? _indicatorPainter; @@ -383,7 +394,8 @@ class _FlutterFlowButtonTabBarState extends State with /// The animation duration is 2/3 of the tab scroll animation duration in /// Material design (kTabScrollDuration). - _animationController = AnimationController(vsync: this, duration: const Duration(milliseconds: 200)); + _animationController = AnimationController( + vsync: this, duration: const Duration(milliseconds: 200)); // so the buttons start in their "final" state (color) _animationController @@ -401,7 +413,8 @@ class _FlutterFlowButtonTabBarState extends State with bool get _controllerIsValid => _controller?.animation != null; void _updateTabController() { - final TabController? newController = widget.controller ?? DefaultTabController.maybeOf(context); + final TabController? newController = + widget.controller ?? DefaultTabController.maybeOf(context); assert(() { if (newController == null) { throw FlutterError( @@ -486,7 +499,8 @@ class _FlutterFlowButtonTabBarState extends State with int get maxTabIndex => _indicatorPainter!.maxTabIndex; - double _tabScrollOffset(int index, double viewportWidth, double minExtent, double maxExtent) { + double _tabScrollOffset( + int index, double viewportWidth, double minExtent, double maxExtent) { if (!widget.isScrollable) { return 0.0; } @@ -502,27 +516,34 @@ class _FlutterFlowButtonTabBarState extends State with break; } - return clampDouble(tabCenter + paddingStart - viewportWidth / 2.0, minExtent, maxExtent); + return clampDouble( + tabCenter + paddingStart - viewportWidth / 2.0, minExtent, maxExtent); } double _tabCenteredScrollOffset(int index) { final ScrollPosition position = _scrollController!.position; - return _tabScrollOffset(index, position.viewportDimension, position.minScrollExtent, position.maxScrollExtent); + return _tabScrollOffset(index, position.viewportDimension, + position.minScrollExtent, position.maxScrollExtent); } - double _initialScrollOffset(double viewportWidth, double minExtent, double maxExtent) { + double _initialScrollOffset( + double viewportWidth, double minExtent, double maxExtent) { return _tabScrollOffset(_currentIndex, viewportWidth, minExtent, maxExtent); } void _scrollToCurrentIndex() { final double offset = _tabCenteredScrollOffset(_currentIndex); - _scrollController!.animateTo(offset, duration: kTabScrollDuration, curve: Curves.ease); + _scrollController! + .animateTo(offset, duration: kTabScrollDuration, curve: Curves.ease); } void _scrollToControllerValue() { - final double? leadingPosition = _currentIndex > 0 ? _tabCenteredScrollOffset(_currentIndex - 1) : null; + final double? leadingPosition = + _currentIndex > 0 ? _tabCenteredScrollOffset(_currentIndex - 1) : null; final double middlePosition = _tabCenteredScrollOffset(_currentIndex); - final double? trailingPosition = _currentIndex < maxTabIndex ? _tabCenteredScrollOffset(_currentIndex + 1) : null; + final double? trailingPosition = _currentIndex < maxTabIndex + ? _tabCenteredScrollOffset(_currentIndex + 1) + : null; final double index = _controller!.index.toDouble(); final double value = _controller!.animation!.value; @@ -534,9 +555,13 @@ class _FlutterFlowButtonTabBarState extends State with } else if (value == index) { offset = middlePosition; } else if (value < index) { - offset = leadingPosition == null ? middlePosition : lerpDouble(middlePosition, leadingPosition, index - value)!; + offset = leadingPosition == null + ? middlePosition + : lerpDouble(middlePosition, leadingPosition, index - value)!; } else { - offset = trailingPosition == null ? middlePosition : lerpDouble(middlePosition, trailingPosition, value - index)!; + offset = trailingPosition == null + ? middlePosition + : lerpDouble(middlePosition, trailingPosition, value - index)!; } _scrollController!.jumpTo(offset); @@ -574,7 +599,8 @@ class _FlutterFlowButtonTabBarState extends State with } // Called each time layout completes. - void _saveTabOffsets(List tabOffsets, TextDirection textDirection, double width) { + void _saveTabOffsets( + List tabOffsets, TextDirection textDirection, double width) { _tabStripWidth = width; _indicatorPainter?.saveTabOffsets(tabOffsets, textDirection); } @@ -586,7 +612,7 @@ class _FlutterFlowButtonTabBarState extends State with } Widget _buildStyledTab(Widget child, int index) { - final TabBarTheme tabBarTheme = TabBarTheme.of(context); + final TabBarTheme tabBarTheme = TabBarTheme.of(context) as TabBarTheme; final double animationValue; if (index == _currentIndex) { @@ -598,34 +624,52 @@ class _FlutterFlowButtonTabBarState extends State with } final TextStyle? textStyle = TextStyle.lerp( - (widget.unselectedLabelStyle ?? tabBarTheme.labelStyle ?? DefaultTextStyle.of(context).style).copyWith( + (widget.unselectedLabelStyle ?? + tabBarTheme.labelStyle ?? + DefaultTextStyle.of(context).style) + .copyWith( color: widget.unselectedLabelColor, ), - (widget.labelStyle ?? tabBarTheme.labelStyle ?? DefaultTextStyle.of(context).style).copyWith( + (widget.labelStyle ?? + tabBarTheme.labelStyle ?? + DefaultTextStyle.of(context).style) + .copyWith( color: widget.labelColor, ), animationValue); - final Color? textColor = Color.lerp(widget.unselectedLabelColor, widget.labelColor, animationValue); + final Color? textColor = Color.lerp( + widget.unselectedLabelColor, widget.labelColor, animationValue); - final Color? borderColor = Color.lerp(widget.unselectedBorderColor, widget.borderColor, animationValue); + final Color? borderColor = Color.lerp( + widget.unselectedBorderColor, widget.borderColor, animationValue); BoxDecoration? boxDecoration = BoxDecoration.lerp( BoxDecoration( - color: widget.unselectedDecoration?.color ?? widget.unselectedBackgroundColor ?? Colors.transparent, + color: widget.unselectedDecoration?.color ?? + widget.unselectedBackgroundColor ?? + Colors.transparent, boxShadow: widget.unselectedDecoration?.boxShadow, gradient: widget.unselectedDecoration?.gradient, - borderRadius: widget.useToggleButtonStyle ? null : BorderRadius.circular(widget.borderRadius), + borderRadius: widget.useToggleButtonStyle + ? null + : BorderRadius.circular(widget.borderRadius), ), BoxDecoration( - color: widget.decoration?.color ?? widget.backgroundColor ?? Colors.transparent, + color: widget.decoration?.color ?? + widget.backgroundColor ?? + Colors.transparent, boxShadow: widget.decoration?.boxShadow, gradient: widget.decoration?.gradient, - borderRadius: widget.useToggleButtonStyle ? null : BorderRadius.circular(widget.borderRadius), + borderRadius: widget.useToggleButtonStyle + ? null + : BorderRadius.circular(widget.borderRadius), ), animationValue); - if (widget.useToggleButtonStyle && widget.borderWidth > 0 && boxDecoration != null) { + if (widget.useToggleButtonStyle && + widget.borderWidth > 0 && + boxDecoration != null) { if (index == 0) { boxDecoration = boxDecoration.copyWith( border: Border( @@ -659,11 +703,13 @@ class _FlutterFlowButtonTabBarState extends State with return Padding( key: _tabKeys[index], // padding for the buttons - padding: widget.useToggleButtonStyle ? EdgeInsets.zero : widget.buttonMargin, + padding: + widget.useToggleButtonStyle ? EdgeInsets.zero : widget.buttonMargin, child: TextButton( onPressed: () => _handleTap(index), style: ButtonStyle( - elevation: WidgetStateProperty.all(widget.useToggleButtonStyle ? 0 : widget.elevation), + elevation: WidgetStateProperty.all( + widget.useToggleButtonStyle ? 0 : widget.elevation), /// give a pretty small minimum size minimumSize: WidgetStateProperty.all(const Size(10, 10)), @@ -729,11 +775,14 @@ class _FlutterFlowButtonTabBarState extends State with if (_controller!.length == 0) { return Container( - height: _kTabHeight + widget.labelPadding.vertical + widget.buttonMargin.vertical, + height: _kTabHeight + + widget.labelPadding.vertical + + widget.buttonMargin.vertical, ); } - final List wrappedTabs = List.generate(widget.tabs.length, (int index) { + final List wrappedTabs = + List.generate(widget.tabs.length, (int index) { return _buildStyledTab(widget.tabs[index], index); }); diff --git a/lib/shared/components/molecules/locals/data/data_sources/locals_local_data_source.dart b/lib/shared/components/molecules/locals/data/data_sources/locals_local_data_source.dart index 64d78e27..775b4c05 100644 --- a/lib/shared/components/molecules/locals/data/data_sources/locals_local_data_source.dart +++ b/lib/shared/components/molecules/locals/data/data_sources/locals_local_data_source.dart @@ -6,11 +6,9 @@ abstract class LocalsLocalDataSource { } class LocalsLocalDataSourceImpl { - Future unlinkLocal() async { - await StorageHelper().set(KeychainStorageKey.clientUUID.value, ''); - await StorageHelper().set(KeychainStorageKey.clientName.value, ''); - await StorageHelper().set(KeychainStorageKey.ownerName.value, ''); + await StorageHelper().set(KeychainStorageKey.clientUUID.value, ''); + await StorageHelper().set(KeychainStorageKey.clientName.value, ''); + await StorageHelper().set(KeychainStorageKey.ownerName.value, ''); } - } diff --git a/lib/shared/components/molecules/locals/data/data_sources/locals_remote_data_source.dart b/lib/shared/components/molecules/locals/data/data_sources/locals_remote_data_source.dart index 2520b990..f4fcc6bc 100644 --- a/lib/shared/components/molecules/locals/data/data_sources/locals_remote_data_source.dart +++ b/lib/shared/components/molecules/locals/data/data_sources/locals_remote_data_source.dart @@ -20,14 +20,15 @@ import 'package:hub/shared/utils/snackbar_util.dart'; abstract class LocalsRemoteDataSource { Future linkLocal(BuildContext context); Future checkLocals(BuildContext context); - Future processLocals(BuildContext context) ; + Future processLocals(BuildContext context); Future processData(BuildContext context); - Future selectLocal(BuildContext context, ApiCallResponse? response) ; - Future detachLocal(BuildContext context); + Future selectLocal(BuildContext context, ApiCallResponse? response); + Future detachLocal(BuildContext context); } class LocalsRemoteDataSourceImpl implements LocalsRemoteDataSource { - static final LocalsRemoteDataSourceImpl _instance = LocalsRemoteDataSourceImpl._internal(); + static final LocalsRemoteDataSourceImpl _instance = + LocalsRemoteDataSourceImpl._internal(); factory LocalsRemoteDataSourceImpl() => _instance; LocalsRemoteDataSourceImpl._internal(); @@ -53,7 +54,8 @@ class LocalsRemoteDataSourceImpl implements LocalsRemoteDataSource { final List locals = response.jsonBody['locais'] ?? []; final bool isEmpty = locals.isEmpty; - final bool isActive = locals.where((local) => local['CLU_STATUS'] != 'B').isNotEmpty; + final bool isActive = + locals.where((local) => local['CLU_STATUS'] != 'B').isNotEmpty; final bool isEnable = !isEmpty && isActive; if (isEnable) { @@ -71,7 +73,7 @@ class LocalsRemoteDataSourceImpl implements LocalsRemoteDataSource { @override Future processLocals(BuildContext context) async { - log('() => processLocals'); + log('() => processLocals'); try { final GetLocalsCall callback = PhpGroup.getLocalsCall; final ApiCallResponse response = await callback.call(); @@ -98,7 +100,8 @@ class LocalsRemoteDataSourceImpl implements LocalsRemoteDataSource { final bool isInactived = await LocalUtil.isInactived(locals); final bool isPending = LocalUtil.isPending(locals); final bool isUnique = locals.length == 1; - final bool isBlocked = locals.where((local) => local['CLU_STATUS'] == 'B').isNotEmpty; + final bool isBlocked = + locals.where((local) => local['CLU_STATUS'] == 'B').isNotEmpty; final bool isEnabled = isUnique && isActive; final bool isDisabled = isUnique && isBlocked; final bool isUnselected = await LocalUtil.isUnselected(); @@ -145,8 +148,10 @@ class LocalsRemoteDataSourceImpl implements LocalsRemoteDataSource { @override Future checkLocals(BuildContext context) async { - String cliUUID = (await StorageHelper().get(KeychainStorageKey.clientUUID.value)) ?? ''; - String cliName = (await StorageHelper().get(KeychainStorageKey.clientName.value)) ?? ''; + String cliUUID = + (await StorageHelper().get(KeychainStorageKey.clientUUID.value)) ?? ''; + String cliName = + (await StorageHelper().get(KeychainStorageKey.clientName.value)) ?? ''; return cliUUID.isEmpty && cliName.isEmpty; } @@ -170,7 +175,8 @@ class LocalsRemoteDataSourceImpl implements LocalsRemoteDataSource { if (isError == true) { final GetLocalsCall callback = PhpGroup.getLocalsCall; response = await callback.call(); - final String errorMsg = response.jsonBody['error_msg'] ?? 'Local indisponível'; + final String errorMsg = + response.jsonBody['error_msg'] ?? 'Local indisponível'; // await DialogUtil.error(context, errorMsg).whenComplete(() async => await selectLocal(context, response)); return false; } else { @@ -189,7 +195,8 @@ class LocalsRemoteDataSourceImpl implements LocalsRemoteDataSource { } @override - Future selectLocal(BuildContext context, ApiCallResponse? response) async { + Future selectLocal( + BuildContext context, ApiCallResponse? response) async { return await showModalBottomSheet( isScrollControlled: true, backgroundColor: Colors.transparent, @@ -209,23 +216,20 @@ class LocalsRemoteDataSourceImpl implements LocalsRemoteDataSource { } @override - Future detachLocal(BuildContext context) async { + Future detachLocal(BuildContext context) async { String content; try { content = FFLocalizations.of(context).getVariableText( enText: 'Device unlinked successfully', ptText: 'Dispositivo desvinculado com sucesso', ); - - await PhpGroup.resopndeVinculo.call(tarefa: 'I').then((value) async { + final bool status = + await PhpGroup.resopndeVinculo.call(tarefa: 'I').then((value) async { if (value.jsonBody['error'] == false) { - await StorageHelper().set(KeychainStorageKey.clientName.value, ''); - await StorageHelper().set(KeychainStorageKey.ownerName.value, ''); - await StorageHelper().set(KeychainStorageKey.clientUUID.value, ''); - context.pop(); - context.go('/homePage', extra: {'update': LocalsRepositoryImpl().update}); SnackBarUtil.showSnackBar(context, content); + return true; } + return false; }).catchError((err, stack) { context.pop(); content = FFLocalizations.of(context).getVariableText( @@ -233,7 +237,9 @@ class LocalsRemoteDataSourceImpl implements LocalsRemoteDataSource { ptText: 'Erro ao desvincular dispositivo', ); SnackBarUtil.showSnackBar(context, content, isError: true); + return false; }); + return status; } catch (err, stack) { context.pop(); log(err.toString(), stackTrace: stack); @@ -242,8 +248,7 @@ class LocalsRemoteDataSourceImpl implements LocalsRemoteDataSource { ptText: 'Erro ao desvincular dispositivo', ); SnackBarUtil.showSnackBar(context, content, isError: true); + return false; } } - - } diff --git a/lib/shared/components/molecules/locals/data/repositories/locals_repository_impl.dart b/lib/shared/components/molecules/locals/data/repositories/locals_repository_impl.dart index 51c48596..6b9ee844 100644 --- a/lib/shared/components/molecules/locals/data/repositories/locals_repository_impl.dart +++ b/lib/shared/components/molecules/locals/data/repositories/locals_repository_impl.dart @@ -3,6 +3,7 @@ import 'dart:developer'; import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:hub/backend/notifications/firebase_messaging_service.dart'; +import 'package:hub/flutter_flow/nav/nav.dart'; import 'package:hub/shared/components/molecules/locals/index.dart'; import 'package:hub/shared/components/molecules/menu/presentation/blocs/menu_bloc.dart'; import 'package:hub/shared/components/molecules/modules/index.dart'; @@ -32,21 +33,23 @@ class LocalsRepositoryImpl implements LocalsRepository { } Future select(BuildContext context) async { - await localDataSource.unlinkLocal(); - await update(context); + await localDataSource.unlinkLocal(); + await update(context); } Future check(BuildContext context) async { - final String? cliUUID = await StorageHelper().get(KeychainStorageKey.clientUUID.value); - final String? ownerUUID = await StorageHelper().get(KeychainStorageKey.ownerUUID.value); + final String? cliUUID = + await StorageHelper().get(KeychainStorageKey.clientUUID.value); + final String? ownerUUID = + await StorageHelper().get(KeychainStorageKey.ownerUUID.value); final bool haveCli = cliUUID != null && cliUUID.isNotEmpty; final bool haveOwner = ownerUUID != null && ownerUUID.isNotEmpty; if (!haveCli && !haveOwner) { - await update(context); - await FirebaseMessagingService().updateDeviceToken(); + await update(context); + await FirebaseMessagingService().updateDeviceToken(); } } - + Future _handleReponse(BuildContext context) async { bool response = false; final bool isUnselected = await remoteDataSource.checkLocals(context); @@ -75,15 +78,17 @@ class LocalsRepositoryImpl implements LocalsRepository { } Future _notifyBlocs(BuildContext context) async { - context.read().add(LocalProfileEvent()); context.read().add(MenuEvent()); - } @override Future unlinkLocal(BuildContext context) async { - await remoteDataSource.detachLocal(context); - await select(context); + final bool response = await remoteDataSource.detachLocal(context); + if (!response) return; + await localDataSource.unlinkLocal(); + context.pop(); + context.go('/homePage', extra: {'update': update}); + await update(context); } } diff --git a/pubspec.lock b/pubspec.lock index bf9b6855..4eeb08de 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -5,10 +5,10 @@ packages: dependency: transitive description: name: _fe_analyzer_shared - sha256: f256b0c0ba6c7577c15e2e4e114755640a875e885099367bf6e012b19314c834 + sha256: "16e298750b6d0af7ce8a3ba7c18c69c3785d11b15ec83f6dcd0ad2a0009b3cab" url: "https://pub.dev" source: hosted - version: "72.0.0" + version: "76.0.0" _flutterfire_internals: dependency: transitive description: @@ -21,15 +21,15 @@ packages: dependency: transitive description: dart source: sdk - version: "0.3.2" + version: "0.3.3" analyzer: dependency: transitive description: name: analyzer - sha256: b652861553cd3990d8ed361f7979dc6d7053a9ac8843fa73820ab68ce5410139 + sha256: "1f14db053a8c23e260789e9b0980fa27f2680dd640932cae5e1137cce0e46e1e" url: "https://pub.dev" source: hosted - version: "6.7.0" + version: "6.11.0" app_links: dependency: "direct main" description: @@ -274,10 +274,10 @@ packages: dependency: "direct main" description: name: collection - sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a + sha256: a1ace0a119f20aabc852d165077c036cd864315bd99b7eaa10a60100341941bf url: "https://pub.dev" source: hosted - version: "1.18.0" + version: "1.19.0" convert: dependency: transitive description: @@ -1013,18 +1013,18 @@ packages: dependency: transitive description: name: leak_tracker - sha256: "3f87a60e8c63aecc975dda1ceedbc8f24de75f09e4856ea27daf8958f2f0ce05" + sha256: "7bb2830ebd849694d1ec25bf1f44582d6ac531a57a365a803a6034ff751d2d06" url: "https://pub.dev" source: hosted - version: "10.0.5" + version: "10.0.7" leak_tracker_flutter_testing: dependency: transitive description: name: leak_tracker_flutter_testing - sha256: "932549fb305594d82d7183ecd9fa93463e9914e1b67cacc34bc40906594a1806" + sha256: "9491a714cca3667b60b5c420da8217e6de0d1ba7a5ec322fab01758f6998f379" url: "https://pub.dev" source: hosted - version: "3.0.5" + version: "3.0.8" leak_tracker_testing: dependency: transitive description: @@ -1093,10 +1093,10 @@ packages: dependency: transitive description: name: macros - sha256: "0acaed5d6b7eab89f63350bccd82119e6c602df0f391260d0e32b5e23db79536" + sha256: "1d9e801cd66f7ea3663c45fc708450db1fa57f988142c64289142c9b7ee80656" url: "https://pub.dev" source: hosted - version: "0.1.2-main.4" + version: "0.1.3-main.0" matcher: dependency: transitive description: @@ -1541,7 +1541,7 @@ packages: dependency: transitive description: flutter source: sdk - version: "0.0.99" + version: "0.0.0" source_gen: dependency: transitive description: @@ -1618,10 +1618,10 @@ packages: dependency: transitive description: name: stack_trace - sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b" + sha256: "9f47fd3630d76be3ab26f0ee06d213679aa425996925ff3feffdec504931c377" url: "https://pub.dev" source: hosted - version: "1.11.1" + version: "1.12.0" state_notifier: dependency: transitive description: @@ -1650,10 +1650,10 @@ packages: dependency: transitive description: name: string_scanner - sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde" + sha256: "688af5ed3402a4bde5b3a6c15fd768dbf2621a614950b17f04626c431ab3c4c3" url: "https://pub.dev" source: hosted - version: "1.2.0" + version: "1.3.0" sync_http: dependency: transitive description: @@ -1682,10 +1682,10 @@ packages: dependency: transitive description: name: test_api - sha256: "5b8a98dafc4d5c4c9c72d8b31ab2b23fc13422348d2997120294d3bac86b4ddb" + sha256: "664d3a9a64782fcdeb83ce9c6b39e78fd2971d4e37827b9b06c3aa1edc5e760c" url: "https://pub.dev" source: hosted - version: "0.7.2" + version: "0.7.3" timeago: dependency: "direct main" description: @@ -1818,10 +1818,10 @@ packages: dependency: transitive description: name: vm_service - sha256: "5c5f338a667b4c644744b661f309fb8080bb94b18a7e91ef1dbd343bed00ed6d" + sha256: f6be3ed8bd01289b34d679c2b62226f63c0e69f9fd2e50a6b3c1c729a961041b url: "https://pub.dev" source: hosted - version: "14.2.5" + version: "14.3.0" watcher: dependency: transitive description: @@ -1858,10 +1858,10 @@ packages: dependency: transitive description: name: webdriver - sha256: "003d7da9519e1e5f329422b36c4dcdf18d7d2978d1ba099ea4e45ba490ed845e" + sha256: "3d773670966f02a646319410766d3b5e1037efb7f07cc68f844d5e06cd4d61c8" url: "https://pub.dev" source: hosted - version: "3.0.3" + version: "3.0.4" webview_flutter: dependency: "direct main" description: diff --git a/pubspec.yaml b/pubspec.yaml index 053c49b0..65086bc6 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -20,7 +20,7 @@ dependencies: flutter_inappwebview: ^6.0.0 webview_flutter: ^4.8.0 rxdart: ^0.28.0 - collection: 1.18.0 + collection: ^1.19.0 app_links: ^6.3.2 # crop_your_image: 1.1.0 csv: 6.0.0