From e2f9c43675b4eb7ad561dfb4c58f1defbf895777 Mon Sep 17 00:00:00 2001 From: Marcin Wojnarowski Date: Sun, 12 Sep 2021 22:47:05 +0200 Subject: [PATCH] Bump deps (#253) * Migrate first chunk * Upgrade rest of the deps * Remove unawaited * Enabled new lints * Remove old TODO * Update podlock --- analysis_options.yaml | 4 + ios/Podfile.lock | 26 ++-- lib/hooks/debounce.dart | 8 +- lib/hooks/delayed_loading.dart | 6 +- lib/hooks/memo_future.dart | 2 +- lib/hooks/ref.dart | 9 -- lib/hooks/refreshable.dart | 8 +- lib/pages/create_post.dart | 2 +- lib/pages/instance.dart | 4 +- lib/pages/manage_account.dart | 29 ++-- lib/pages/settings.dart | 4 - lib/pages/user.dart | 2 +- lib/util/share.dart | 26 +++- lib/util/unawaited.dart | 3 - lib/widgets/about_tile.dart | 19 +-- lib/widgets/infinite_scroll.dart | 33 ++-- pubspec.lock | 257 ++++++++++++++++++++++--------- pubspec.yaml | 22 +-- 18 files changed, 276 insertions(+), 188 deletions(-) delete mode 100644 lib/hooks/ref.dart delete mode 100644 lib/util/unawaited.dart diff --git a/analysis_options.yaml b/analysis_options.yaml index 89fb0e2..3355edd 100644 --- a/analysis_options.yaml +++ b/analysis_options.yaml @@ -32,13 +32,16 @@ linter: - directives_ordering - empty_catches - empty_constructor_bodies + - eol_at_end_of_file - exhaustive_cases - file_names - hash_and_equals - implementation_imports + - invariant_booleans - library_names - library_prefixes - non_constant_identifier_names + - noop_primitive_operations - null_check_on_nullable_type_parameter - omit_local_variable_types - one_member_abstracts @@ -101,6 +104,7 @@ linter: - unrelated_type_equality_checks - use_full_hex_values_for_flutter_colors - use_is_even_rather_than_modulo + - use_test_throws_matchers - use_raw_strings - use_rethrow_when_possible - use_setters_to_change_properties diff --git a/ios/Podfile.lock b/ios/Podfile.lock index 12a37db..56e5c2a 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -5,11 +5,11 @@ PODS: - FMDB/standard (2.7.5) - image_picker (0.0.1): - Flutter - - package_info (0.0.1): + - package_info_plus (0.4.5): - Flutter - path_provider (0.0.1): - Flutter - - share (0.0.1): + - share_plus (0.0.1): - Flutter - shared_preferences (0.0.1): - Flutter @@ -22,9 +22,9 @@ PODS: DEPENDENCIES: - Flutter (from `Flutter`) - image_picker (from `.symlinks/plugins/image_picker/ios`) - - package_info (from `.symlinks/plugins/package_info/ios`) + - package_info_plus (from `.symlinks/plugins/package_info_plus/ios`) - path_provider (from `.symlinks/plugins/path_provider/ios`) - - share (from `.symlinks/plugins/share/ios`) + - share_plus (from `.symlinks/plugins/share_plus/ios`) - shared_preferences (from `.symlinks/plugins/shared_preferences/ios`) - sqflite (from `.symlinks/plugins/sqflite/ios`) - url_launcher (from `.symlinks/plugins/url_launcher/ios`) @@ -38,12 +38,12 @@ EXTERNAL SOURCES: :path: Flutter image_picker: :path: ".symlinks/plugins/image_picker/ios" - package_info: - :path: ".symlinks/plugins/package_info/ios" + package_info_plus: + :path: ".symlinks/plugins/package_info_plus/ios" path_provider: :path: ".symlinks/plugins/path_provider/ios" - share: - :path: ".symlinks/plugins/share/ios" + share_plus: + :path: ".symlinks/plugins/share_plus/ios" shared_preferences: :path: ".symlinks/plugins/shared_preferences/ios" sqflite: @@ -52,16 +52,16 @@ EXTERNAL SOURCES: :path: ".symlinks/plugins/url_launcher/ios" SPEC CHECKSUMS: - Flutter: 434fef37c0980e73bb6479ef766c45957d4b510c + Flutter: 50d75fe2f02b26cc09d224853bb45737f8b3214a FMDB: 2ce00b547f966261cd18927a3ddb07cb6f3db82a - image_picker: 50e7c7ff960e5f58faa4d1f4af84a771c671bc4a - package_info: 873975fc26034f0b863a300ad47e7f1ac6c7ec62 + image_picker: e06f7a68f000bd36f552c1847e33cda96ed31f1f + package_info_plus: 6c92f08e1f853dc01228d6f553146438dafcd14e path_provider: abfe2b5c733d04e238b0d8691db0cfd63a27a93c - share: 0b2c3e82132f5888bccca3351c504d0003b3b410 + share_plus: 056a1e8ac890df3e33cb503afffaf1e9b4fbae68 shared_preferences: af6bfa751691cdc24be3045c43ec037377ada40d sqflite: 6d358c025f5b867b29ed92fc697fd34924e11904 url_launcher: 6fef411d543ceb26efce54b05a0a40bfd74cbbef PODFILE CHECKSUM: aafe91acc616949ddb318b77800a7f51bffa2a4c -COCOAPODS: 1.10.1 +COCOAPODS: 1.11.0 diff --git a/lib/hooks/debounce.dart b/lib/hooks/debounce.dart index 546665e..4450586 100644 --- a/lib/hooks/debounce.dart +++ b/lib/hooks/debounce.dart @@ -3,8 +3,6 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter_hooks/flutter_hooks.dart'; -import 'ref.dart'; - class Debounce { final bool loading; final VoidCallback callback; @@ -27,14 +25,14 @@ Debounce useDebounce( final timerHandle = useRef(null); cancel() { - timerHandle.current?.cancel(); + timerHandle.value?.cancel(); loading.value = false; } - useEffect(() => () => timerHandle.current?.cancel(), []); + useEffect(() => () => timerHandle.value?.cancel(), []); start() { - timerHandle.current = Timer(delayDuration, () async { + timerHandle.value = Timer(delayDuration, () async { loading.value = true; await callback(); cancel(); diff --git a/lib/hooks/delayed_loading.dart b/lib/hooks/delayed_loading.dart index 06332e4..403b033 100644 --- a/lib/hooks/delayed_loading.dart +++ b/lib/hooks/delayed_loading.dart @@ -3,8 +3,6 @@ import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter_hooks/flutter_hooks.dart'; -import 'ref.dart'; - class DelayedLoading { final bool pending; final bool loading; @@ -32,11 +30,11 @@ DelayedLoading useDelayedLoading( loading: loading.value, pending: pending.value, start: () { - timerHandle.current = Timer(delayDuration, () => loading.value = true); + timerHandle.value = Timer(delayDuration, () => loading.value = true); pending.value = true; }, cancel: () { - timerHandle.current?.cancel(); + timerHandle.value?.cancel(); pending.value = false; loading.value = false; }, diff --git a/lib/hooks/memo_future.dart b/lib/hooks/memo_future.dart index 0485e2f..f1cb8f9 100644 --- a/lib/hooks/memo_future.dart +++ b/lib/hooks/memo_future.dart @@ -3,7 +3,7 @@ import 'package:flutter_hooks/flutter_hooks.dart'; /// creates an [AsyncSnapshot] from the Future returned from the valueBuilder. /// [keys] can be used to rebuild the Future -AsyncSnapshot useMemoFuture( +AsyncSnapshot useMemoFuture( Future Function() valueBuilder, [ List keys = const [], ]) => diff --git a/lib/hooks/ref.dart b/lib/hooks/ref.dart deleted file mode 100644 index 5965eaa..0000000 --- a/lib/hooks/ref.dart +++ /dev/null @@ -1,9 +0,0 @@ -import 'package:flutter_hooks/flutter_hooks.dart'; - -class Ref { - T current; - Ref(this.current); -} - -/// see React's useRef -Ref useRef(T initialValue) => useMemoized(() => Ref(initialValue)); diff --git a/lib/hooks/refreshable.dart b/lib/hooks/refreshable.dart index c126d8f..ab4c1c8 100644 --- a/lib/hooks/refreshable.dart +++ b/lib/hooks/refreshable.dart @@ -18,8 +18,10 @@ class Refreshable { /// /// `keys` will re-run the initial fetching thus yielding a /// loading state in the AsyncSnapshot -Refreshable useRefreshable(AsyncValueGetter fetcher, - [List keys = const []]) { +Refreshable useRefreshable( + AsyncValueGetter fetcher, [ + List keys = const [], +]) { final newData = useState(null); final snapshot = useMemoFuture(() async { newData.value = null; @@ -28,7 +30,7 @@ Refreshable useRefreshable(AsyncValueGetter fetcher, final outSnapshot = () { if (newData.value != null) { - return AsyncSnapshot.withData(ConnectionState.done, newData.value); + return AsyncSnapshot.withData(ConnectionState.done, newData.value!); } return snapshot; }(); diff --git a/lib/pages/create_post.dart b/lib/pages/create_post.dart index b51165d..1913a4e 100644 --- a/lib/pages/create_post.dart +++ b/lib/pages/create_post.dart @@ -114,7 +114,7 @@ class CreatePostPage extends HookWidget { uploadPicture(Jwt token) async { try { - final pic = await imagePicker.getImage(source: ImageSource.gallery); + final pic = await imagePicker.pickImage(source: ImageSource.gallery); // pic is null when the picker was cancelled if (pic != null) { imageUploadLoading.value = true; diff --git a/lib/pages/instance.dart b/lib/pages/instance.dart index 4a523a3..7b9bc8c 100644 --- a/lib/pages/instance.dart +++ b/lib/pages/instance.dart @@ -38,7 +38,7 @@ class InstancePage extends HookWidget { @override Widget build(BuildContext context) { final theme = Theme.of(context); - final siteSnap = useFuture(siteFuture, initialData: null); + final siteSnap = useFuture(siteFuture); final colorOnCard = textColorBasedOnBackground(theme.cardColor); final accStore = useAccountsStore(); final scrollController = useScrollController(); @@ -233,7 +233,7 @@ class _AboutTab extends HookWidget { @override Widget build(BuildContext context) { final theme = Theme.of(context); - final commSnap = useFuture(communitiesFuture, initialData: null); + final commSnap = useFuture(communitiesFuture); final accStore = useAccountsStore(); void goToCommunities() { diff --git a/lib/pages/manage_account.dart b/lib/pages/manage_account.dart index cbc4005..57a6809 100644 --- a/lib/pages/manage_account.dart +++ b/lib/pages/manage_account.dart @@ -8,7 +8,6 @@ import 'package:url_launcher/url_launcher.dart' as ul; import '../hooks/delayed_loading.dart'; import '../hooks/image_picker.dart'; -import '../hooks/ref.dart'; import '../hooks/stores.dart'; import '../l10n/l10n.dart'; import '../util/more_icon.dart'; @@ -151,8 +150,8 @@ class _ManageAccount extends HookWidget { showReadPosts: showReadPosts.value, sendNotificationsToEmail: sendNotificationsToEmail.value, auth: token.raw, - avatar: avatar.current, - banner: banner.current, + avatar: avatar.value, + banner: banner.value, matrixUserId: matrixUserController.text.isEmpty ? null : matrixUserController.text, @@ -163,8 +162,8 @@ class _ManageAccount extends HookWidget { email: emailController.text.isEmpty ? null : emailController.text, )); - informAcceptedAvatarRef.current?.call(); - informAcceptedBannerRef.current?.call(); + informAcceptedAvatarRef.value?.call(); + informAcceptedBannerRef.value?.call(); ScaffoldMessenger.of(context).showSnackBar(const SnackBar( content: Text('User settings saved'), @@ -243,16 +242,16 @@ class _ManageAccount extends HookWidget { _ImagePicker( user: user, name: L10n.of(context)!.avatar, - initialUrl: avatar.current, - onChange: (value) => avatar.current = value, + initialUrl: avatar.value, + onChange: (value) => avatar.value = value, informAcceptedRef: informAcceptedAvatarRef, ), const SizedBox(height: 8), _ImagePicker( user: user, name: L10n.of(context)!.banner, - initialUrl: banner.current, - onChange: (value) => banner.current = value, + initialUrl: banner.value, + onChange: (value) => banner.value = value, informAcceptedRef: informAcceptedBannerRef, ), const SizedBox(height: 8), @@ -396,7 +395,7 @@ class _ImagePicker extends HookWidget { /// _ImagePicker will set the ref to a callback that can inform _ImagePicker /// that the current picture is accepted /// and should no longer allow for deletion of it - final Ref informAcceptedRef; + final ObjectRef informAcceptedRef; const _ImagePicker({ Key? key, @@ -413,7 +412,7 @@ class _ImagePicker extends HookWidget { // basically saves the very first initialUrl final initialUrl = useRef(this.initialUrl); final theme = Theme.of(context); - final url = useState(initialUrl.current); + final url = useState(initialUrl.value); final pictrsDeleteToken = useState(null); final imagePicker = useImagePicker(); @@ -422,7 +421,7 @@ class _ImagePicker extends HookWidget { uploadImage() async { try { - final pic = await imagePicker.getImage(source: ImageSource.gallery); + final pic = await imagePicker.pickImage(source: ImageSource.gallery); // pic is null when the picker was cancelled if (pic != null) { delayedLoading.start(); @@ -456,15 +455,15 @@ class _ImagePicker extends HookWidget { if (updateState) { pictrsDeleteToken.value = null; - url.value = initialUrl.current; + url.value = initialUrl.value; onChange?.call(url.value); } } useEffect(() { - informAcceptedRef.current = () { + informAcceptedRef.value = () { pictrsDeleteToken.value = null; - initialUrl.current = url.value; + initialUrl.value = url.value; }; return () { diff --git a/lib/pages/settings.dart b/lib/pages/settings.dart index 2a06d26..54731ca 100644 --- a/lib/pages/settings.dart +++ b/lib/pages/settings.dart @@ -314,7 +314,6 @@ class AccountsConfigPage extends HookWidget { ); } - // TODO: speeddial v3 has really stupid defaults here https://github.com/darioielardi/flutter_speed_dial/issues/149 return Scaffold( key: _scaffoldKey, appBar: AppBar( @@ -324,12 +323,10 @@ class AccountsConfigPage extends HookWidget { animatedIcon: AnimatedIcons.menu_close, // TODO: change to + => x curve: Curves.bounceIn, tooltip: 'Add account or instance', - overlayColor: theme.canvasColor, children: [ SpeedDialChild( child: const Icon(Icons.person_add), label: 'Add account', - labelBackgroundColor: theme.canvasColor, onTap: () => showCupertinoModalPopup( context: context, builder: (_) => @@ -337,7 +334,6 @@ class AccountsConfigPage extends HookWidget { ), SpeedDialChild( child: const Icon(Icons.dns), - labelBackgroundColor: theme.canvasColor, label: 'Add instance', onTap: () => showCupertinoModalPopup( context: context, builder: (_) => const AddInstancePage()), diff --git a/lib/pages/user.dart b/lib/pages/user.dart index 60d003b..9c55dcd 100644 --- a/lib/pages/user.dart +++ b/lib/pages/user.dart @@ -25,7 +25,7 @@ class UserPage extends HookWidget { @override Widget build(BuildContext context) { - final userDetailsSnap = useFuture(_userDetails, initialData: null); + final userDetailsSnap = useFuture(_userDetails); final body = () { if (userDetailsSnap.hasData) { diff --git a/lib/util/share.dart b/lib/util/share.dart index 5b16b2e..47339d0 100644 --- a/lib/util/share.dart +++ b/lib/util/share.dart @@ -1,6 +1,8 @@ +import 'dart:io'; + import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; -import 'package:share/share.dart'; +import 'package:share_plus/share_plus.dart'; /// A `package:share` wrapper that fallbacks to copying contents to the clipboard /// on platforms that do not support native sharing @@ -10,16 +12,28 @@ Future share( Rect? sharePositionOrigin, required BuildContext context, }) async { + if (Platform.isLinux || Platform.isWindows) { + await _fallbackShare(text, context: context); + return; + } + try { - return await Share.share( + await Share.share( text, subject: subject, sharePositionOrigin: sharePositionOrigin, ); } on MissingPluginException { - await Clipboard.setData(ClipboardData(text: text)); - ScaffoldMessenger.of(context).showSnackBar( - const SnackBar(content: Text('Copied data to clipboard!')), - ); + await _fallbackShare(text, context: context); } } + +Future _fallbackShare( + String text, { + required BuildContext context, +}) async { + await Clipboard.setData(ClipboardData(text: text)); + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('Copied data to clipboard!')), + ); +} diff --git a/lib/util/unawaited.dart b/lib/util/unawaited.dart deleted file mode 100644 index 622d0ca..0000000 --- a/lib/util/unawaited.dart +++ /dev/null @@ -1,3 +0,0 @@ -/// Explicitely indicate to the `unawaited_futures` lint -/// that the future is not awaited for on purpose -void unawaited(Future future) {} diff --git a/lib/widgets/about_tile.dart b/lib/widgets/about_tile.dart index 97d636a..7b817ca 100644 --- a/lib/widgets/about_tile.dart +++ b/lib/widgets/about_tile.dart @@ -1,9 +1,8 @@ import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; -import 'package:flutter/services.dart'; import 'package:flutter_hooks/flutter_hooks.dart'; import 'package:flutter_markdown/flutter_markdown.dart'; -import 'package:package_info/package_info.dart'; +import 'package:package_info_plus/package_info_plus.dart'; import '../gen/assets.gen.dart'; import '../hooks/memo_future.dart'; @@ -17,21 +16,7 @@ class AboutTile extends HookWidget { @override Widget build(BuildContext context) { - final packageInfoSnap = useMemoFuture( - () async { - try { - return await PackageInfo.fromPlatform(); - } on MissingPluginException { - // when we get here it means PackageInfo does not support this platform - return PackageInfo( - appName: 'lemmur', - packageName: '', - version: '', - buildNumber: '', - ); - } - }, - ); + final packageInfoSnap = useMemoFuture(PackageInfo.fromPlatform); final assetBundle = DefaultAssetBundle.of(context); final changelogSnap = useMemoFuture(() => assetBundle.loadString('CHANGELOG.md')); diff --git a/lib/widgets/infinite_scroll.dart b/lib/widgets/infinite_scroll.dart index 090339d..8256cc8 100644 --- a/lib/widgets/infinite_scroll.dart +++ b/lib/widgets/infinite_scroll.dart @@ -4,7 +4,6 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_hooks/flutter_hooks.dart'; -import '../hooks/ref.dart'; import 'bottom_safe.dart'; class InfiniteScrollController { @@ -77,9 +76,9 @@ class InfiniteScroll extends HookWidget { if (controller != null) { controller?.clear = () { data.value = []; - hasMore.current = true; - page.current = 1; - dataSet.current.clear(); + hasMore.value = true; + page.value = 1; + dataSet.value.clear(); }; } @@ -89,9 +88,9 @@ class InfiniteScroll extends HookWidget { return RefreshIndicator( onRefresh: () async { data.value = []; - hasMore.current = true; - page.current = 1; - dataSet.current.clear(); + hasMore.value = true; + page.value = 1; + dataSet.value.clear(); await HapticFeedback.mediumImpact(); await Future.delayed(const Duration(seconds: 1)); @@ -107,35 +106,35 @@ class InfiniteScroll extends HookWidget { i -= 1; // if we are done but we have no data it means the list is empty - if (!hasMore.current && data.value.isEmpty) { + if (!hasMore.value && data.value.isEmpty) { return Center(child: noItems); } // reached the bottom, fetch more if (i == data.value.length) { // if there are no more, skip - if (!hasMore.current) { + if (!hasMore.value) { return const BottomSafe(); } // if it's already fetching more, skip - if (!isFetching.current) { - isFetching.current = true; - fetcher(page.current, batchSize).then((incoming) { + if (!isFetching.value) { + isFetching.value = true; + fetcher(page.value, batchSize).then((incoming) { // if got less than the batchSize, mark the list as done if (incoming.length < batchSize) { - hasMore.current = false; + hasMore.value = false; } final newData = incoming.where( - (e) => !dataSet.current.contains(uniquePropFunc(e)), + (e) => !dataSet.value.contains(uniquePropFunc(e)), ); // append new data data.value = [...data.value, ...newData]; - dataSet.current.addAll(newData.map(uniquePropFunc)); - page.current += 1; - }).whenComplete(() => isFetching.current = false); + dataSet.value.addAll(newData.map(uniquePropFunc)); + page.value += 1; + }).whenComplete(() => isFetching.value = false); } return SafeArea( diff --git a/pubspec.lock b/pubspec.lock index 710132f..87d82b6 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -7,14 +7,14 @@ packages: name: _fe_analyzer_shared url: "https://pub.dartlang.org" source: hosted - version: "22.0.0" + version: "25.0.0" analyzer: dependency: transitive description: name: analyzer url: "https://pub.dartlang.org" source: hosted - version: "1.7.2" + version: "2.2.0" archive: dependency: transitive description: @@ -28,7 +28,7 @@ packages: name: args url: "https://pub.dartlang.org" source: hosted - version: "2.0.0" + version: "2.2.0" async: dependency: transitive description: @@ -49,63 +49,77 @@ packages: name: build url: "https://pub.dartlang.org" source: hosted - version: "2.0.0" + version: "2.1.0" build_config: dependency: transitive description: name: build_config url: "https://pub.dartlang.org" source: hosted - version: "0.4.7" + version: "1.0.0" build_daemon: dependency: transitive description: name: build_daemon url: "https://pub.dartlang.org" source: hosted - version: "2.1.10" + version: "3.0.0" build_resolvers: dependency: transitive description: name: build_resolvers url: "https://pub.dartlang.org" source: hosted - version: "2.0.0" + version: "2.0.4" build_runner: dependency: "direct dev" description: name: build_runner url: "https://pub.dartlang.org" source: hosted - version: "1.12.2" + version: "2.1.2" build_runner_core: dependency: transitive description: name: build_runner_core url: "https://pub.dartlang.org" source: hosted - version: "6.1.12" + version: "7.1.0" built_collection: dependency: transitive description: name: built_collection url: "https://pub.dartlang.org" source: hosted - version: "5.0.0" + version: "5.1.1" built_value: dependency: transitive description: name: built_value url: "https://pub.dartlang.org" source: hosted - version: "8.0.4" + version: "8.1.2" cached_network_image: dependency: "direct main" description: name: cached_network_image url: "https://pub.dartlang.org" source: hosted - version: "3.0.0" + version: "3.1.0" + cached_network_image_platform_interface: + dependency: transitive + description: + name: cached_network_image_platform_interface + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.0" + cached_network_image_web: + dependency: transitive + description: + name: cached_network_image_web + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.1" characters: dependency: transitive description: @@ -133,7 +147,7 @@ packages: name: cli_util url: "https://pub.dartlang.org" source: hosted - version: "0.3.0" + version: "0.3.3" clock: dependency: transitive description: @@ -147,7 +161,7 @@ packages: name: code_builder url: "https://pub.dartlang.org" source: hosted - version: "3.7.0" + version: "4.1.0" collection: dependency: transitive description: @@ -161,7 +175,14 @@ packages: name: convert url: "https://pub.dartlang.org" source: hosted - version: "3.0.0" + version: "3.0.1" + cross_file: + dependency: transitive + description: + name: cross_file + url: "https://pub.dartlang.org" + source: hosted + version: "0.3.1+5" crypto: dependency: transitive description: @@ -175,14 +196,14 @@ packages: name: cupertino_icons url: "https://pub.dartlang.org" source: hosted - version: "1.0.2" + version: "1.0.3" dart_style: dependency: transitive description: name: dart_style url: "https://pub.dartlang.org" source: hosted - version: "2.0.0" + version: "2.1.0" fake_async: dependency: transitive description: @@ -196,14 +217,14 @@ packages: name: ffi url: "https://pub.dartlang.org" source: hosted - version: "1.0.0" + version: "1.1.2" file: dependency: transitive description: name: file url: "https://pub.dartlang.org" source: hosted - version: "6.1.0" + version: "6.1.2" fixnum: dependency: transitive description: @@ -229,21 +250,21 @@ packages: name: flutter_cache_manager url: "https://pub.dartlang.org" source: hosted - version: "3.0.1" + version: "3.1.2" flutter_hooks: dependency: "direct main" description: name: flutter_hooks url: "https://pub.dartlang.org" source: hosted - version: "0.16.0" + version: "0.18.0" flutter_launcher_icons: dependency: "direct dev" description: name: flutter_launcher_icons url: "https://pub.dartlang.org" source: hosted - version: "0.9.0" + version: "0.9.2" flutter_localizations: dependency: "direct main" description: flutter @@ -255,7 +276,7 @@ packages: name: flutter_markdown url: "https://pub.dartlang.org" source: hosted - version: "0.6.1" + version: "0.6.6" flutter_mobx: dependency: "direct main" description: @@ -269,14 +290,14 @@ packages: name: flutter_plugin_android_lifecycle url: "https://pub.dartlang.org" source: hosted - version: "2.0.1" + version: "2.0.3" flutter_speed_dial: dependency: "direct main" description: name: flutter_speed_dial url: "https://pub.dartlang.org" source: hosted - version: "3.0.5" + version: "4.3.0" flutter_test: dependency: "direct dev" description: flutter @@ -293,14 +314,21 @@ packages: name: freezed url: "https://pub.dartlang.org" source: hosted - version: "0.14.1+2" + version: "0.14.5" freezed_annotation: dependency: "direct main" description: name: freezed_annotation url: "https://pub.dartlang.org" source: hosted - version: "0.14.2" + version: "0.14.3" + frontend_server_client: + dependency: transitive + description: + name: frontend_server_client + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.2" fuzzy: dependency: "direct main" description: @@ -321,21 +349,21 @@ packages: name: graphs url: "https://pub.dartlang.org" source: hosted - version: "1.0.0" + version: "2.0.0" http: dependency: transitive description: name: http url: "https://pub.dartlang.org" source: hosted - version: "0.13.1" + version: "0.13.3" http_multi_server: dependency: transitive description: name: http_multi_server url: "https://pub.dartlang.org" source: hosted - version: "3.0.0" + version: "3.0.1" http_parser: dependency: transitive description: @@ -349,28 +377,28 @@ packages: name: image url: "https://pub.dartlang.org" source: hosted - version: "3.0.2" + version: "3.0.4" image_picker: dependency: "direct main" description: name: image_picker url: "https://pub.dartlang.org" source: hosted - version: "0.7.4" + version: "0.8.4" image_picker_for_web: dependency: transitive description: name: image_picker_for_web url: "https://pub.dartlang.org" source: hosted - version: "2.0.0" + version: "2.1.3" image_picker_platform_interface: dependency: transitive description: name: image_picker_platform_interface url: "https://pub.dartlang.org" source: hosted - version: "2.0.1" + version: "2.4.1" intl: dependency: "direct main" description: @@ -384,7 +412,7 @@ packages: name: io url: "https://pub.dartlang.org" source: hosted - version: "1.0.0" + version: "1.0.3" js: dependency: transitive description: @@ -398,14 +426,14 @@ packages: name: json_annotation url: "https://pub.dartlang.org" source: hosted - version: "4.0.1" + version: "4.1.0" json_serializable: dependency: "direct dev" description: name: json_serializable url: "https://pub.dartlang.org" source: hosted - version: "4.1.0" + version: "5.0.0" keyboard_dismisser: dependency: "direct main" description: @@ -482,7 +510,7 @@ packages: name: mobx_codegen url: "https://pub.dartlang.org" source: hosted - version: "2.0.2" + version: "2.0.3" modal_bottom_sheet: dependency: "direct main" description: @@ -511,13 +539,48 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "2.0.0" - package_info: + package_info_plus: dependency: "direct main" description: - name: package_info + name: package_info_plus url: "https://pub.dartlang.org" source: hosted - version: "2.0.0" + version: "1.0.6" + package_info_plus_linux: + dependency: transitive + description: + name: package_info_plus_linux + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.3" + package_info_plus_macos: + dependency: transitive + description: + name: package_info_plus_macos + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.1" + package_info_plus_platform_interface: + dependency: transitive + description: + name: package_info_plus_platform_interface + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.2" + package_info_plus_web: + dependency: transitive + description: + name: package_info_plus_web + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.4" + package_info_plus_windows: + dependency: transitive + description: + name: package_info_plus_windows + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.3" path: dependency: transitive description: @@ -531,21 +594,21 @@ packages: name: path_provider url: "https://pub.dartlang.org" source: hosted - version: "2.0.1" + version: "2.0.3" path_provider_linux: dependency: transitive description: name: path_provider_linux url: "https://pub.dartlang.org" source: hosted - version: "2.0.0" + version: "2.0.2" path_provider_macos: dependency: transitive description: name: path_provider_macos url: "https://pub.dartlang.org" source: hosted - version: "2.0.0" + version: "2.0.2" path_provider_platform_interface: dependency: transitive description: @@ -559,21 +622,21 @@ packages: name: path_provider_windows url: "https://pub.dartlang.org" source: hosted - version: "2.0.0" + version: "2.0.3" pedantic: dependency: transitive description: name: pedantic url: "https://pub.dartlang.org" source: hosted - version: "1.11.0" + version: "1.11.1" petitparser: dependency: transitive description: name: petitparser url: "https://pub.dartlang.org" source: hosted - version: "4.1.0" + version: "4.3.0" photo_view: dependency: "direct main" description: @@ -589,14 +652,14 @@ packages: name: platform url: "https://pub.dartlang.org" source: hosted - version: "3.0.0" + version: "3.0.2" plugin_platform_interface: dependency: transitive description: name: plugin_platform_interface url: "https://pub.dartlang.org" source: hosted - version: "2.0.0" + version: "2.0.1" pool: dependency: transitive description: @@ -610,14 +673,14 @@ packages: name: process url: "https://pub.dartlang.org" source: hosted - version: "4.2.1" + version: "4.2.3" provider: dependency: "direct main" description: name: provider url: "https://pub.dartlang.org" source: hosted - version: "5.0.0" + version: "6.0.0" pub_semver: dependency: transitive description: @@ -638,35 +701,70 @@ packages: name: rxdart url: "https://pub.dartlang.org" source: hosted - version: "0.26.0" - share: + version: "0.27.2" + share_plus: dependency: "direct main" description: - name: share + name: share_plus + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.4" + share_plus_linux: + dependency: transitive + description: + name: share_plus_linux + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.4" + share_plus_macos: + dependency: transitive + description: + name: share_plus_macos + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.2" + share_plus_platform_interface: + dependency: transitive + description: + name: share_plus_platform_interface url: "https://pub.dartlang.org" source: hosted version: "2.0.1" + share_plus_web: + dependency: transitive + description: + name: share_plus_web + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.4" + share_plus_windows: + dependency: transitive + description: + name: share_plus_windows + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.3" shared_preferences: dependency: "direct main" description: name: shared_preferences url: "https://pub.dartlang.org" source: hosted - version: "2.0.5" + version: "2.0.7" shared_preferences_linux: dependency: transitive description: name: shared_preferences_linux url: "https://pub.dartlang.org" source: hosted - version: "2.0.0" + version: "2.0.2" shared_preferences_macos: dependency: transitive description: name: shared_preferences_macos url: "https://pub.dartlang.org" source: hosted - version: "2.0.0" + version: "2.0.2" shared_preferences_platform_interface: dependency: transitive description: @@ -680,21 +778,21 @@ packages: name: shared_preferences_web url: "https://pub.dartlang.org" source: hosted - version: "2.0.0" + version: "2.0.2" shared_preferences_windows: dependency: transitive description: name: shared_preferences_windows url: "https://pub.dartlang.org" source: hosted - version: "2.0.0" + version: "2.0.2" shelf: dependency: transitive description: name: shelf url: "https://pub.dartlang.org" source: hosted - version: "1.1.0" + version: "1.2.0" shelf_web_socket: dependency: transitive description: @@ -713,7 +811,14 @@ packages: name: source_gen url: "https://pub.dartlang.org" source: hosted - version: "1.0.0" + version: "1.1.0" + source_helper: + dependency: transitive + description: + name: source_helper + url: "https://pub.dartlang.org" + source: hosted + version: "1.2.1" source_span: dependency: transitive description: @@ -727,14 +832,14 @@ packages: name: sqflite url: "https://pub.dartlang.org" source: hosted - version: "2.0.0+3" + version: "2.0.0+4" sqflite_common: dependency: transitive description: name: sqflite_common url: "https://pub.dartlang.org" source: hosted - version: "2.0.0+2" + version: "2.0.1+1" stack_trace: dependency: transitive description: @@ -790,7 +895,7 @@ packages: name: timeago url: "https://pub.dartlang.org" source: hosted - version: "3.0.2" + version: "3.1.0" timing: dependency: transitive description: @@ -811,49 +916,49 @@ packages: name: url_launcher url: "https://pub.dartlang.org" source: hosted - version: "6.0.3" + version: "6.0.10" url_launcher_linux: dependency: transitive description: name: url_launcher_linux url: "https://pub.dartlang.org" source: hosted - version: "2.0.0" + version: "2.0.2" url_launcher_macos: dependency: transitive description: name: url_launcher_macos url: "https://pub.dartlang.org" source: hosted - version: "2.0.0" + version: "2.0.2" url_launcher_platform_interface: dependency: transitive description: name: url_launcher_platform_interface url: "https://pub.dartlang.org" source: hosted - version: "2.0.2" + version: "2.0.4" url_launcher_web: dependency: transitive description: name: url_launcher_web url: "https://pub.dartlang.org" source: hosted - version: "2.0.0" + version: "2.0.4" url_launcher_windows: dependency: transitive description: name: url_launcher_windows url: "https://pub.dartlang.org" source: hosted - version: "2.0.0" + version: "2.0.2" uuid: dependency: transitive description: name: uuid url: "https://pub.dartlang.org" source: hosted - version: "3.0.3" + version: "3.0.4" vector_math: dependency: transitive description: @@ -874,14 +979,14 @@ packages: name: web_socket_channel url: "https://pub.dartlang.org" source: hosted - version: "2.0.0" + version: "2.1.0" win32: dependency: transitive description: name: win32 url: "https://pub.dartlang.org" source: hosted - version: "2.0.5" + version: "2.2.9" xdg_directories: dependency: transitive description: @@ -895,7 +1000,7 @@ packages: name: xml url: "https://pub.dartlang.org" source: hosted - version: "5.1.0" + version: "5.3.0" yaml: dependency: transitive description: @@ -904,5 +1009,5 @@ packages: source: hosted version: "3.1.0" sdks: - dart: ">=2.12.0 <3.0.0" - flutter: ">=1.24.0-10.2.pre" + dart: ">=2.14.0 <3.0.0" + flutter: ">=2.0.0" diff --git a/pubspec.yaml b/pubspec.yaml index 401fb18..ba60ea2 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -22,7 +22,7 @@ environment: dependencies: # widgets - flutter_speed_dial: ^3.0.5 + flutter_speed_dial: ^4.3.0 # TODO: bring back to pub hosted when fix is released photo_view: git: @@ -34,15 +34,15 @@ dependencies: modal_bottom_sheet: ^2.0.0 # native - share: ^2.0.1 + share_plus: ^2.1.4 url_launcher: ^6.0.3 shared_preferences: ^2.0.5 - package_info: ^2.0.0 - image_picker: ^0.7.4 + package_info_plus: ^1.0.6 + image_picker: ^0.8.4 # state management - flutter_hooks: ^0.16.0 - provider: ^5.0.0 + flutter_hooks: ^0.18.0 + provider: ^6.0.0 mobx: ^2.0.4 flutter_mobx: ^2.0.2 @@ -52,9 +52,9 @@ dependencies: lemmy_api_client: ^0.16.0 intl: ^0.17.0 matrix4_transform: ^2.0.0 - json_annotation: ^4.0.1 + json_annotation: ^4.1.0 keyboard_dismisser: ^2.0.0 - freezed_annotation: ^0.14.2 + freezed_annotation: ^0.14.3 flutter: sdk: flutter @@ -68,9 +68,9 @@ dependencies: dev_dependencies: flutter_test: sdk: flutter - flutter_launcher_icons: ^0.9.0 - json_serializable: ^4.1.0 - build_runner: ^1.11.1 + flutter_launcher_icons: ^0.9.2 + json_serializable: ^5.0.0 + build_runner: ^2.1.2 mobx_codegen: ^2.0.2 freezed: ^0.14.1+2