diff --git a/android/app/build.gradle b/android/app/build.gradle index 9c15646..dde978d 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -59,7 +59,7 @@ android { defaultConfig { applicationId "org.communiquons.comunic" - minSdkVersion 21 + minSdkVersion 23 targetSdkVersion 32 versionCode flutterVersionCode.toInteger() versionName flutterVersionName diff --git a/lib/forez/ui/routes/forez_member_profile_route.dart b/lib/forez/ui/routes/forez_member_profile_route.dart index e593e5d..5c1f455 100644 --- a/lib/forez/ui/routes/forez_member_profile_route.dart +++ b/lib/forez/ui/routes/forez_member_profile_route.dart @@ -14,7 +14,7 @@ import 'package:comunic/utils/conversations_utils.dart'; import 'package:comunic/utils/intl_utils.dart'; import 'package:comunic/utils/ui_utils.dart'; import 'package:flutter/material.dart'; -import 'package:url_launcher/url_launcher.dart'; +import 'package:url_launcher/url_launcher_string.dart'; /// Show information about a Forez member /// @@ -165,7 +165,7 @@ class _ForezMemberProfileRouteState extends State { subtitle: Text(tr("Website")!), trailing: IconButton( icon: Icon(Icons.open_in_new), - onPressed: () => launch(_user.personalWebsite), + onPressed: () => launchUrlString(_user.personalWebsite), ), ), diff --git a/lib/generated_plugin_registrant.dart b/lib/generated_plugin_registrant.dart index 37b222d..22b64a4 100644 --- a/lib/generated_plugin_registrant.dart +++ b/lib/generated_plugin_registrant.dart @@ -10,7 +10,7 @@ import 'package:connectivity_plus_web/connectivity_plus_web.dart'; import 'package:file_picker/_internal/file_picker_web.dart'; import 'package:firebase_core_web/firebase_core_web.dart'; import 'package:firebase_messaging_web/firebase_messaging_web.dart'; -import 'package:flutter_web_plugins/flutter_web_plugins.dart'; +import 'package:image_cropper_for_web/image_cropper_for_web.dart'; import 'package:image_picker_for_web/image_picker_for_web.dart'; import 'package:package_info_plus_web/package_info_plus_web.dart'; import 'package:shared_preferences_web/shared_preferences_web.dart'; @@ -18,12 +18,15 @@ import 'package:url_launcher_web/url_launcher_web.dart'; import 'package:video_player_web/video_player_web.dart'; import 'package:wakelock_web/wakelock_web.dart'; +import 'package:flutter_web_plugins/flutter_web_plugins.dart'; + // ignore: public_member_api_docs void registerPlugins(Registrar registrar) { ConnectivityPlusPlugin.registerWith(registrar); FilePickerWeb.registerWith(registrar); FirebaseCoreWeb.registerWith(registrar); FirebaseMessagingWeb.registerWith(registrar); + ImageCropperPlugin.registerWith(registrar); ImagePickerPlugin.registerWith(registrar); PackageInfoPlugin.registerWith(registrar); SharedPreferencesPlugin.registerWith(registrar); diff --git a/lib/ui/dialogs/deprecation_dialog.dart b/lib/ui/dialogs/deprecation_dialog.dart index 354c743..4f00b20 100644 --- a/lib/ui/dialogs/deprecation_dialog.dart +++ b/lib/ui/dialogs/deprecation_dialog.dart @@ -1,7 +1,7 @@ import 'package:comunic/helpers/server_config_helper.dart'; import 'package:comunic/utils/intl_utils.dart'; import 'package:flutter/material.dart'; -import 'package:url_launcher/url_launcher.dart'; +import 'package:url_launcher/url_launcher_string.dart'; /// Deprecation dialog /// @@ -22,12 +22,12 @@ class _DeprecationDialog extends StatelessWidget { actions: [ MaterialButton( onPressed: () => - launch(ServerConfigurationHelper.config!.playStoreURL), + launchUrlString(ServerConfigurationHelper.config!.playStoreURL), child: Text(tr("Go to the Play Store")!), ), MaterialButton( - onPressed: () => - launch(ServerConfigurationHelper.config!.androidDirectDownloadURL), + onPressed: () => launchUrlString( + ServerConfigurationHelper.config!.androidDirectDownloadURL), child: Text(tr("Download update outside Play Store")!), ), MaterialButton( diff --git a/lib/ui/routes/full_screen_image.dart b/lib/ui/routes/full_screen_image.dart index ec769a1..3ea5d72 100644 --- a/lib/ui/routes/full_screen_image.dart +++ b/lib/ui/routes/full_screen_image.dart @@ -2,7 +2,7 @@ import 'package:cached_network_image/cached_network_image.dart'; import 'package:comunic/utils/intl_utils.dart'; import 'package:flutter/material.dart'; import 'package:photo_view/photo_view.dart'; -import 'package:url_launcher/url_launcher.dart'; +import 'package:url_launcher/url_launcher_string.dart'; /// Full screen image details /// @@ -26,7 +26,7 @@ class _FullScreenImageRouteState extends State { title: Text(tr("Image")!), actions: [ IconButton( - icon: Icon(Icons.launch), onPressed: () => launch(widget.url)) + icon: Icon(Icons.launch), onPressed: () => launchUrlString(widget.url)) ], ), body: PhotoView( diff --git a/lib/ui/routes/image_editor_route.dart b/lib/ui/routes/image_editor_route.dart index f1eaab5..756eeed 100644 --- a/lib/ui/routes/image_editor_route.dart +++ b/lib/ui/routes/image_editor_route.dart @@ -19,7 +19,6 @@ import '../../utils/files_utils.dart'; /// Return original image in case of error / if the user did not crop the image Future showImageCropper(BuildContext context, BytesFile source, {CropAspectRatio? aspectRatio}) async { - File? file; File? cropped; @@ -27,15 +26,18 @@ Future showImageCropper(BuildContext context, BytesFile source, file = await generateTemporaryFile(); await file.writeAsBytes(source.bytes!); - File? cropped = await ImageCropper().cropImage( + var cropped = await ImageCropper().cropImage( sourcePath: file.absolute.path, compressFormat: ImageCompressFormat.png, aspectRatio: aspectRatio, - androidUiSettings: AndroidUiSettings( - toolbarColor: Colors.black, - toolbarTitle: tr("Crop Photo"), - toolbarWidgetColor: Colors.white, - ), + uiSettings: [ + AndroidUiSettings( + toolbarColor: Colors.black, + toolbarTitle: tr("Crop Photo"), + toolbarWidgetColor: Colors.white, + ), + IOSUiSettings(title: tr("Crop Photo")) + ], ); if (cropped == null) return source; diff --git a/lib/ui/routes/settings/about_settings.dart b/lib/ui/routes/settings/about_settings.dart index 5aa797d..db67ac3 100644 --- a/lib/ui/routes/settings/about_settings.dart +++ b/lib/ui/routes/settings/about_settings.dart @@ -5,7 +5,7 @@ import 'package:comunic/utils/intl_utils.dart'; import 'package:comunic/utils/ui_utils.dart'; import 'package:flutter/material.dart'; import 'package:flutter_settings_ui/flutter_settings_ui.dart'; -import 'package:url_launcher/url_launcher.dart'; +import 'package:url_launcher/url_launcher_string.dart'; /// About application settings /// @@ -24,11 +24,11 @@ class AboutApplicationSettings extends StatelessWidget { tiles: [ SettingsTile( title: tr("Privacy policy"), - onPressed: (c) => launch(srvConfig!.privacyPolicyURL), + onPressed: (c) => launchUrlString(srvConfig!.privacyPolicyURL), ), SettingsTile( title: tr("Terms of Use"), - onPressed: (c) => launch(srvConfig!.termsURL), + onPressed: (c) => launchUrlString(srvConfig!.termsURL), ), SettingsTile( title: tr("Contact us"), diff --git a/lib/ui/screens/group_sections/about_group_section.dart b/lib/ui/screens/group_sections/about_group_section.dart index fa281d1..1a83fa3 100644 --- a/lib/ui/screens/group_sections/about_group_section.dart +++ b/lib/ui/screens/group_sections/about_group_section.dart @@ -4,7 +4,7 @@ import 'package:comunic/models/group.dart'; import 'package:comunic/utils/date_utils.dart'; import 'package:comunic/utils/intl_utils.dart'; import 'package:flutter/material.dart'; -import 'package:url_launcher/url_launcher.dart'; +import 'package:url_launcher/url_launcher_string.dart'; /// About group section /// @@ -29,7 +29,7 @@ class AboutGroupSection extends StatelessWidget { leading: Icon(Icons.link), title: Text(tr("URL")!), subtitle: Text(group.url), - onTap: () => launch(group.url), + onTap: () => launchUrlString(group.url), ) : Container(), diff --git a/lib/ui/screens/user_page_sections/about_user_section.dart b/lib/ui/screens/user_page_sections/about_user_section.dart index 12faba4..c89849f 100644 --- a/lib/ui/screens/user_page_sections/about_user_section.dart +++ b/lib/ui/screens/user_page_sections/about_user_section.dart @@ -17,7 +17,7 @@ import 'package:comunic/utils/intl_utils.dart'; /// /// @author Pierre Hubert import 'package:flutter/material.dart'; -import 'package:url_launcher/url_launcher.dart'; +import 'package:url_launcher/url_launcher_string.dart'; class AboutUserSection extends StatefulWidget { final AdvancedUserInfo user; @@ -63,7 +63,7 @@ class _AboutUserSectionState extends State { leading: Icon(Icons.link), title: Text(tr("Personal Website")!), subtitle: Text(widget.user.personalWebsite), - onTap: () => launch(widget.user.personalWebsite), + onTap: () => launchUrlString(widget.user.personalWebsite), ) : Container(), diff --git a/lib/ui/tiles/post_tile.dart b/lib/ui/tiles/post_tile.dart index b21e7f5..b295606 100644 --- a/lib/ui/tiles/post_tile.dart +++ b/lib/ui/tiles/post_tile.dart @@ -29,7 +29,7 @@ import 'package:comunic/utils/intl_utils.dart'; import 'package:comunic/utils/navigation_utils.dart'; import 'package:comunic/utils/ui_utils.dart'; import 'package:flutter/material.dart'; -import 'package:url_launcher/url_launcher.dart'; +import 'package:url_launcher/url_launcher_string.dart'; import '../../models/api_request.dart'; import '../../utils/log_utils.dart'; @@ -281,8 +281,8 @@ class _PostTileState extends State { Text(tr("YouTube movie")!) ], ), - onPressed: () => - launch("https://youtube.com/watch/?v=" + widget.post.filePath!), + onPressed: () => launchUrlString( + "https://youtube.com/watch/?v=" + widget.post.filePath!), ); } @@ -291,7 +291,7 @@ class _PostTileState extends State { color: darkTheme() ? darkerAccentColor : Color.fromRGBO(0xf7, 0xf7, 0xf7, 1), child: InkWell( - onTap: () => launch(widget.post.linkURL!), + onTap: () => launchUrlString(widget.post.linkURL!), child: Row( children: [ Padding( @@ -330,7 +330,7 @@ class _PostTileState extends State { Widget _buildPostPDF() { return ElevatedButton.icon( onPressed: () { - launch(widget.post.fileURL!); + launchUrlString(widget.post.fileURL!); }, icon: Icon(Icons.picture_as_pdf), label: Text(tr("PDF")!), diff --git a/lib/ui/widgets/banner_widget.dart b/lib/ui/widgets/banner_widget.dart index 751e09f..08ba979 100644 --- a/lib/ui/widgets/banner_widget.dart +++ b/lib/ui/widgets/banner_widget.dart @@ -5,7 +5,7 @@ import 'package:comunic/models/server_config.dart'; import 'package:comunic/utils/date_utils.dart'; import 'package:comunic/utils/intl_utils.dart'; import 'package:flutter/material.dart'; -import 'package:url_launcher/url_launcher.dart'; +import 'package:url_launcher/url_launcher_string.dart'; bool _bannerDismissed = false; @@ -26,7 +26,7 @@ class _BannerWidgetState extends State { } void _openLink() { - launch(srvConfig!.banner!.link!); + launchUrlString(srvConfig!.banner!.link!); } @override diff --git a/lib/ui/widgets/conversation_file_tile.dart b/lib/ui/widgets/conversation_file_tile.dart index 4b7a452..c5ca836 100644 --- a/lib/ui/widgets/conversation_file_tile.dart +++ b/lib/ui/widgets/conversation_file_tile.dart @@ -9,7 +9,7 @@ import 'package:comunic/ui/routes/video_player_route.dart'; import 'package:comunic/ui/widgets/network_image_widget.dart'; import 'package:filesize/filesize.dart'; import 'package:flutter/material.dart'; -import 'package:url_launcher/url_launcher.dart'; +import 'package:url_launcher/url_launcher_string.dart'; const _AreaWidth = 150.0; const _AreaHeight = 100.0; @@ -124,7 +124,7 @@ class _ConversationFileWidgetState extends State { break; default: - launch(file.url!); + launchUrlString(file.url!); } } } diff --git a/lib/ui/widgets/create_account_widget.dart b/lib/ui/widgets/create_account_widget.dart index f466d08..8459f94 100644 --- a/lib/ui/widgets/create_account_widget.dart +++ b/lib/ui/widgets/create_account_widget.dart @@ -6,7 +6,7 @@ import 'package:comunic/utils/intl_utils.dart'; import 'package:comunic/utils/ui_utils.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; -import 'package:url_launcher/url_launcher.dart'; +import 'package:url_launcher/url_launcher_string.dart'; import 'new_password_input_widget.dart'; @@ -229,7 +229,8 @@ class _CreateAccountWidgetState extends State { widget.onCreated(); } - void _openTOS() => launch(ServerConfigurationHelper.config!.termsURL); + void _openTOS() => + launchUrlString(ServerConfigurationHelper.config!.termsURL); void _showCreateAccountError() async { await showCupertinoDialog( diff --git a/lib/ui/widgets/text_rich_content_widget.dart b/lib/ui/widgets/text_rich_content_widget.dart index 10c2a37..d10db6a 100644 --- a/lib/ui/widgets/text_rich_content_widget.dart +++ b/lib/ui/widgets/text_rich_content_widget.dart @@ -1,7 +1,7 @@ import 'package:comunic/utils/input_utils.dart'; import 'package:flutter/gestures.dart'; import 'package:flutter/material.dart'; -import 'package:url_launcher/url_launcher.dart'; +import 'package:url_launcher/url_launcher_string.dart'; /// Text rich content widget /// @@ -41,7 +41,7 @@ class TextRichContentWidget extends StatelessWidget { text: s, recognizer: TapGestureRecognizer() ..onTap = () { - launch(s); + launchUrlString(s); })); currString = ""; diff --git a/lib/ui/widgets/text_widget.dart b/lib/ui/widgets/text_widget.dart index e2d7d05..0b34ee5 100644 --- a/lib/ui/widgets/text_widget.dart +++ b/lib/ui/widgets/text_widget.dart @@ -2,7 +2,7 @@ import 'package:comunic/models/displayed_content.dart'; import 'package:comunic/utils/input_utils.dart'; import 'package:comunic/utils/navigation_utils.dart'; import 'package:flutter/material.dart'; -import 'package:url_launcher/url_launcher.dart'; +import 'package:url_launcher/url_launcher_string.dart'; /// Text widget /// @@ -24,13 +24,14 @@ class TextWidget extends StatelessWidget { this.textAlign = TextAlign.start, this.style, this.linksColor = Colors.blueAccent, - }) : super(key: key); + }) : super(key: key); @override Widget build(BuildContext context) { if (this.content.isNull || this.content.isEmpty) return Text(""); - var usedStyle = style == null ? Theme.of(context).textTheme.bodyText2 : style; + var usedStyle = + style == null ? Theme.of(context).textTheme.bodyText2 : style; var content = this.content.parsedString!; @@ -78,7 +79,7 @@ class TextWidget extends StatelessWidget { word, style: style!.copyWith(color: linksColor), ), - onTap: () => launch(word), + onTap: () => launchUrlString(word), ), ), ); diff --git a/pubspec.lock b/pubspec.lock index fedf89d..3f78cf1 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -7,14 +7,14 @@ packages: name: archive url: "https://pub.dartlang.org" source: hosted - version: "3.2.1" + version: "3.3.0" args: dependency: transitive description: name: args url: "https://pub.dartlang.org" source: hosted - version: "2.3.0" + version: "2.3.1" async: dependency: transitive description: @@ -35,7 +35,7 @@ packages: name: cached_network_image url: "https://pub.dartlang.org" source: hosted - version: "3.2.0" + version: "3.2.1" cached_network_image_platform_interface: dependency: transitive description: @@ -70,7 +70,7 @@ packages: name: chewie url: "https://pub.dartlang.org" source: hosted - version: "1.3.0" + version: "1.3.3" chewie_audio: dependency: "direct main" description: @@ -105,98 +105,98 @@ packages: name: connectivity_plus url: "https://pub.dartlang.org" source: hosted - version: "2.2.1" + version: "2.3.3" connectivity_plus_linux: dependency: transitive description: name: connectivity_plus_linux url: "https://pub.dartlang.org" source: hosted - version: "1.3.0" + version: "1.3.1" connectivity_plus_macos: dependency: transitive description: name: connectivity_plus_macos url: "https://pub.dartlang.org" source: hosted - version: "1.2.1" + version: "1.2.3" connectivity_plus_platform_interface: dependency: transitive description: name: connectivity_plus_platform_interface url: "https://pub.dartlang.org" source: hosted - version: "1.2.0" + version: "1.2.1" connectivity_plus_web: dependency: transitive description: name: connectivity_plus_web url: "https://pub.dartlang.org" source: hosted - version: "1.2.0" + version: "1.2.1" connectivity_plus_windows: dependency: transitive description: name: connectivity_plus_windows url: "https://pub.dartlang.org" source: hosted - version: "1.2.0" + version: "1.2.2" cross_file: dependency: transitive description: name: cross_file url: "https://pub.dartlang.org" source: hosted - version: "0.3.2" + version: "0.3.3+1" crypto: dependency: transitive description: name: crypto url: "https://pub.dartlang.org" source: hosted - version: "3.0.1" + version: "3.0.2" csslib: dependency: transitive description: name: csslib url: "https://pub.dartlang.org" source: hosted - version: "0.17.1" + version: "0.17.2" cupertino_icons: dependency: "direct main" description: name: cupertino_icons url: "https://pub.dartlang.org" source: hosted - version: "1.0.4" + version: "1.0.5" dart_webrtc: dependency: transitive description: name: dart_webrtc url: "https://pub.dartlang.org" source: hosted - version: "1.0.4" + version: "1.0.6" dbus: dependency: transitive description: name: dbus url: "https://pub.dartlang.org" source: hosted - version: "0.7.1" + version: "0.7.4" dio: dependency: "direct main" description: name: dio url: "https://pub.dartlang.org" source: hosted - version: "4.0.4" + version: "4.0.6" emoji_picker_flutter: dependency: "direct main" description: name: emoji_picker_flutter url: "https://pub.dartlang.org" source: hosted - version: "1.1.2" + version: "1.3.0" event_bus: dependency: "direct main" description: @@ -217,7 +217,7 @@ packages: name: ffi url: "https://pub.dartlang.org" source: hosted - version: "1.1.2" + version: "1.2.1" file: dependency: transitive description: @@ -231,7 +231,7 @@ packages: name: file_picker url: "https://pub.dartlang.org" source: hosted - version: "4.5.0" + version: "4.6.1" filesize: dependency: "direct main" description: @@ -245,42 +245,42 @@ packages: name: firebase_core url: "https://pub.dartlang.org" source: hosted - version: "1.13.1" + version: "1.17.1" firebase_core_platform_interface: dependency: transitive description: name: firebase_core_platform_interface url: "https://pub.dartlang.org" source: hosted - version: "4.2.5" + version: "4.4.0" firebase_core_web: dependency: transitive description: name: firebase_core_web url: "https://pub.dartlang.org" source: hosted - version: "1.6.1" + version: "1.6.4" firebase_messaging: dependency: "direct main" description: name: firebase_messaging url: "https://pub.dartlang.org" source: hosted - version: "11.2.8" + version: "11.4.1" firebase_messaging_platform_interface: dependency: transitive description: name: firebase_messaging_platform_interface url: "https://pub.dartlang.org" source: hosted - version: "3.2.1" + version: "3.5.1" firebase_messaging_web: dependency: transitive description: name: firebase_messaging_web url: "https://pub.dartlang.org" source: hosted - version: "2.2.9" + version: "2.4.1" flutter: dependency: "direct main" description: flutter @@ -292,7 +292,7 @@ packages: name: flutter_blurhash url: "https://pub.dartlang.org" source: hosted - version: "0.6.4" + version: "0.7.0" flutter_cache_manager: dependency: transitive description: @@ -320,14 +320,14 @@ packages: name: flutter_launcher_icons url: "https://pub.dartlang.org" source: hosted - version: "0.9.2" + version: "0.9.3" flutter_plugin_android_lifecycle: dependency: transitive description: name: flutter_plugin_android_lifecycle url: "https://pub.dartlang.org" source: hosted - version: "2.0.5" + version: "2.0.6" flutter_settings_ui: dependency: "direct main" description: @@ -341,7 +341,7 @@ packages: name: flutter_svg url: "https://pub.dartlang.org" source: hosted - version: "1.0.3" + version: "1.1.0" flutter_test: dependency: "direct dev" description: flutter @@ -358,7 +358,7 @@ packages: name: flutter_webrtc url: "https://pub.dartlang.org" source: hosted - version: "0.8.3" + version: "0.8.9" html: dependency: "direct main" description: @@ -379,42 +379,70 @@ packages: name: http_parser url: "https://pub.dartlang.org" source: hosted - version: "4.0.0" + version: "4.0.1" image: dependency: transitive description: name: image url: "https://pub.dartlang.org" source: hosted - version: "3.1.3" + version: "3.2.0" image_cropper: dependency: "direct main" description: name: image_cropper url: "https://pub.dartlang.org" source: hosted - version: "1.5.0" + version: "2.0.3" + image_cropper_for_web: + dependency: transitive + description: + name: image_cropper_for_web + url: "https://pub.dartlang.org" + source: hosted + version: "0.0.4" + image_cropper_platform_interface: + dependency: transitive + description: + name: image_cropper_platform_interface + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.0" image_picker: dependency: "direct main" description: name: image_picker url: "https://pub.dartlang.org" source: hosted - version: "0.8.4+10" + version: "0.8.5+3" + image_picker_android: + dependency: transitive + description: + name: image_picker_android + url: "https://pub.dartlang.org" + source: hosted + version: "0.8.5" image_picker_for_web: dependency: transitive description: name: image_picker_for_web url: "https://pub.dartlang.org" source: hosted - version: "2.1.6" + version: "2.1.8" + image_picker_ios: + dependency: transitive + description: + name: image_picker_ios + url: "https://pub.dartlang.org" + source: hosted + version: "0.8.5+5" image_picker_platform_interface: dependency: transitive description: name: image_picker_platform_interface url: "https://pub.dartlang.org" source: hosted - version: "2.4.4" + version: "2.5.0" intl: dependency: "direct main" description: @@ -463,7 +491,7 @@ packages: name: mime url: "https://pub.dartlang.org" source: hosted - version: "1.0.1" + version: "1.0.2" nested: dependency: transitive description: @@ -484,21 +512,21 @@ packages: name: octo_image url: "https://pub.dartlang.org" source: hosted - version: "1.0.1" + version: "1.0.2" package_info_plus: dependency: "direct main" description: name: package_info_plus url: "https://pub.dartlang.org" source: hosted - version: "1.4.0" + version: "1.4.2" package_info_plus_linux: dependency: transitive description: name: package_info_plus_linux url: "https://pub.dartlang.org" source: hosted - version: "1.0.3" + version: "1.0.5" package_info_plus_macos: dependency: transitive description: @@ -519,14 +547,14 @@ packages: name: package_info_plus_web url: "https://pub.dartlang.org" source: hosted - version: "1.0.4" + version: "1.0.5" package_info_plus_windows: dependency: transitive description: name: package_info_plus_windows url: "https://pub.dartlang.org" source: hosted - version: "1.0.4" + version: "1.0.5" path: dependency: transitive description: @@ -554,49 +582,49 @@ packages: name: path_provider url: "https://pub.dartlang.org" source: hosted - version: "2.0.9" + version: "2.0.11" path_provider_android: dependency: transitive description: name: path_provider_android url: "https://pub.dartlang.org" source: hosted - version: "2.0.12" + version: "2.0.14" path_provider_ios: dependency: transitive description: name: path_provider_ios url: "https://pub.dartlang.org" source: hosted - version: "2.0.8" + version: "2.0.9" path_provider_linux: dependency: transitive description: name: path_provider_linux url: "https://pub.dartlang.org" source: hosted - version: "2.1.5" + version: "2.1.7" path_provider_macos: dependency: transitive description: name: path_provider_macos url: "https://pub.dartlang.org" source: hosted - version: "2.0.5" + version: "2.0.6" path_provider_platform_interface: dependency: transitive description: name: path_provider_platform_interface url: "https://pub.dartlang.org" source: hosted - version: "2.0.3" + version: "2.0.4" path_provider_windows: dependency: transitive description: name: path_provider_windows url: "https://pub.dartlang.org" source: hosted - version: "2.0.5" + version: "2.0.7" pedantic: dependency: transitive description: @@ -624,7 +652,7 @@ packages: name: permission_handler_apple url: "https://pub.dartlang.org" source: hosted - version: "9.0.3" + version: "9.0.4" permission_handler_platform_interface: dependency: transitive description: @@ -645,21 +673,21 @@ packages: name: petitparser url: "https://pub.dartlang.org" source: hosted - version: "4.4.0" + version: "5.0.0" photo_view: dependency: "direct main" description: name: photo_view url: "https://pub.dartlang.org" source: hosted - version: "0.13.0" + version: "0.14.0" pie_chart: dependency: "direct main" description: name: pie_chart url: "https://pub.dartlang.org" source: hosted - version: "5.1.0" + version: "5.3.1" platform: dependency: transitive description: @@ -687,7 +715,7 @@ packages: name: provider url: "https://pub.dartlang.org" source: hosted - version: "6.0.2" + version: "6.0.3" random_string: dependency: "direct main" description: @@ -708,42 +736,42 @@ packages: name: rxdart url: "https://pub.dartlang.org" source: hosted - version: "0.27.3" + version: "0.27.4" shared_preferences: dependency: "direct main" description: name: shared_preferences url: "https://pub.dartlang.org" source: hosted - version: "2.0.13" + version: "2.0.15" shared_preferences_android: dependency: transitive description: name: shared_preferences_android url: "https://pub.dartlang.org" source: hosted - version: "2.0.11" + version: "2.0.12" shared_preferences_ios: dependency: transitive description: name: shared_preferences_ios url: "https://pub.dartlang.org" source: hosted - version: "2.1.0" + version: "2.1.1" shared_preferences_linux: dependency: transitive description: name: shared_preferences_linux url: "https://pub.dartlang.org" source: hosted - version: "2.1.0" + version: "2.1.1" shared_preferences_macos: dependency: transitive description: name: shared_preferences_macos url: "https://pub.dartlang.org" source: hosted - version: "2.0.3" + version: "2.0.4" shared_preferences_platform_interface: dependency: transitive description: @@ -757,14 +785,14 @@ packages: name: shared_preferences_web url: "https://pub.dartlang.org" source: hosted - version: "2.0.3" + version: "2.0.4" shared_preferences_windows: dependency: transitive description: name: shared_preferences_windows url: "https://pub.dartlang.org" source: hosted - version: "2.1.0" + version: "2.1.1" simple_gesture_detector: dependency: transitive description: @@ -790,14 +818,14 @@ packages: name: sqflite url: "https://pub.dartlang.org" source: hosted - version: "2.0.2" + version: "2.0.2+1" sqflite_common: dependency: transitive description: name: sqflite_common url: "https://pub.dartlang.org" source: hosted - version: "2.2.0" + version: "2.2.1+1" stack_trace: dependency: transitive description: @@ -825,14 +853,14 @@ packages: name: synchronized url: "https://pub.dartlang.org" source: hosted - version: "3.0.0" + version: "3.0.0+2" table_calendar: dependency: "direct main" description: name: table_calendar url: "https://pub.dartlang.org" source: hosted - version: "3.0.4" + version: "3.0.6" term_glyph: dependency: transitive description: @@ -853,42 +881,42 @@ packages: name: typed_data url: "https://pub.dartlang.org" source: hosted - version: "1.3.0" + version: "1.3.1" url_launcher: dependency: "direct main" description: name: url_launcher url: "https://pub.dartlang.org" source: hosted - version: "6.0.20" + version: "6.1.3" url_launcher_android: dependency: transitive description: name: url_launcher_android url: "https://pub.dartlang.org" source: hosted - version: "6.0.15" + version: "6.0.17" url_launcher_ios: dependency: transitive description: name: url_launcher_ios url: "https://pub.dartlang.org" source: hosted - version: "6.0.15" + version: "6.0.17" url_launcher_linux: dependency: transitive description: name: url_launcher_linux url: "https://pub.dartlang.org" source: hosted - version: "3.0.0" + version: "3.0.1" url_launcher_macos: dependency: transitive description: name: url_launcher_macos url: "https://pub.dartlang.org" source: hosted - version: "3.0.0" + version: "3.0.1" url_launcher_platform_interface: dependency: transitive description: @@ -902,14 +930,14 @@ packages: name: url_launcher_web url: "https://pub.dartlang.org" source: hosted - version: "2.0.9" + version: "2.0.11" url_launcher_windows: dependency: transitive description: name: url_launcher_windows url: "https://pub.dartlang.org" source: hosted - version: "3.0.0" + version: "3.0.1" uuid: dependency: transitive description: @@ -931,55 +959,48 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "2.0.0" - very_good_analysis: - dependency: transitive - description: - name: very_good_analysis - url: "https://pub.dartlang.org" - source: hosted - version: "2.4.0" video_player: dependency: "direct main" description: name: video_player url: "https://pub.dartlang.org" source: hosted - version: "2.3.0" + version: "2.4.4" video_player_android: dependency: transitive description: name: video_player_android url: "https://pub.dartlang.org" source: hosted - version: "2.3.0" + version: "2.3.6" video_player_avfoundation: dependency: transitive description: name: video_player_avfoundation url: "https://pub.dartlang.org" source: hosted - version: "2.3.0" + version: "2.3.5" video_player_platform_interface: dependency: transitive description: name: video_player_platform_interface url: "https://pub.dartlang.org" source: hosted - version: "5.1.0" + version: "5.1.3" video_player_web: dependency: transitive description: name: video_player_web url: "https://pub.dartlang.org" source: hosted - version: "2.0.7" + version: "2.0.10" video_thumbnail: dependency: "direct main" description: name: video_thumbnail url: "https://pub.dartlang.org" source: hosted - version: "0.4.6" + version: "0.5.0" wakelock: dependency: "direct main" description: @@ -1021,21 +1042,21 @@ packages: name: web_socket_channel url: "https://pub.dartlang.org" source: hosted - version: "2.1.0" + version: "2.2.0" webrtc_interface: dependency: transitive description: name: webrtc_interface url: "https://pub.dartlang.org" source: hosted - version: "1.0.2" + version: "1.0.5" win32: dependency: transitive description: name: win32 url: "https://pub.dartlang.org" source: hosted - version: "2.4.1" + version: "2.6.1" xdg_directories: dependency: transitive description: @@ -1049,14 +1070,14 @@ packages: name: xml url: "https://pub.dartlang.org" source: hosted - version: "5.3.1" + version: "6.1.0" yaml: dependency: transitive description: name: yaml url: "https://pub.dartlang.org" source: hosted - version: "3.1.0" + version: "3.1.1" sdks: - dart: ">=2.17.0-0 <3.0.0" - flutter: ">=2.10.0" + dart: ">=2.17.0 <3.0.0" + flutter: ">=3.0.0" diff --git a/pubspec.yaml b/pubspec.yaml index 4db8699..7095a7b 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -68,7 +68,7 @@ dependencies: random_string: ^2.3.1 # Display zoomable images - photo_view: ^0.13.0 + photo_view: ^0.14.0 # Check Internet connection connectivity_plus: ^2.2.1 @@ -104,7 +104,7 @@ dependencies: clipboard: ^0.1.3 # Video / Audio player - video_player: ^2.3.0 + video_player: ^2.4.3 chewie_audio: ^1.3.0 chewie: ^1.3.0 @@ -112,7 +112,7 @@ dependencies: mime: ^1.0.1 # Create video thumbnails - video_thumbnail: ^0.4.6 + video_thumbnail: ^0.5.0 # Record audio file record_mp3: ^3.0.0 @@ -127,7 +127,7 @@ dependencies: flutter_colorpicker: ^1.0.3 # Image cropper - image_cropper: ^1.5.0 + image_cropper: ^2.0.3 # Firebase cloud messaging (for push notifications) firebase_core: ^1.13.1