diff --git a/lib/src/features/gallery/api/gallery_image_provider.dart b/lib/src/features/gallery/api/gallery_image_provider.dart index a7615a054..2b2f72978 100644 --- a/lib/src/features/gallery/api/gallery_image_provider.dart +++ b/lib/src/features/gallery/api/gallery_image_provider.dart @@ -1,18 +1,37 @@ +// ignore_for_file: prefer-extracting-function-callbacks + import 'package:dio/dio.dart'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:ksrvnjord_main_app/src/features/gallery/api/gallery_storage.dart'; +// ignore: prefer-static-class +final galleryImageCacheProvider = Provider>((ref) { + return {}; // Create a map to store cached images. +}); + // ignore: prefer-static-class final galleryImageProvider = FutureProvider.autoDispose.family((ref, path) async { + final cache = ref.read(galleryImageCacheProvider); // Access the cache. + + // If the image is already cached, return it directly. + if (cache.containsKey(path)) { + return cache[path]!; // Return the cached image. + } + + // If not cached, fetch the image from the network. final url = await ref.watch(galleryFileUrlProvider(path).future); - // Download image from URL and return the image. final res = await Dio().get( url, options: Options(responseType: ResponseType.bytes), ); - return MemoryImage(res.data); + final image = MemoryImage(res.data); + + // Cache the image manually. + cache[path] = image; + + return image; }); diff --git a/lib/src/features/gallery/pages/gallery_file_page_view.dart b/lib/src/features/gallery/pages/gallery_file_page_view.dart index abcdee685..337ede4de 100644 --- a/lib/src/features/gallery/pages/gallery_file_page_view.dart +++ b/lib/src/features/gallery/pages/gallery_file_page_view.dart @@ -7,6 +7,7 @@ import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:ksrvnjord_main_app/src/features/gallery/api/gallery_image_provider.dart'; +import 'package:ksrvnjord_main_app/src/features/gallery/api/gallery_image_provider.dart'; import 'package:share_plus/share_plus.dart'; class GalleryFilePageView extends ConsumerStatefulWidget { @@ -15,6 +16,7 @@ class GalleryFilePageView extends ConsumerStatefulWidget { required this.initialIndex, required this.paths, }); + final int initialIndex; final List paths; @@ -31,6 +33,29 @@ class _GalleryFilePageViewState extends ConsumerState { super.initState(); _currentPage = widget.initialIndex; _pageController = PageController(initialPage: widget.initialIndex); + _preloadImage(ref, _currentPage); + for (int i = 1; i < 4; i += 1) { + _preloadImage(ref, _currentPage + i); + _preloadImage(ref, _currentPage - i); + } + } + + void _preloadImage(WidgetRef ref, int index) { + if (index < 0 || index >= widget.paths.length) { + return; + } + final path = widget.paths[index]; + + // Read from the provider and cache it if needed. + final memoryImageFuture = + ref.read(galleryImageProvider(path.fullPath).future); + + memoryImageFuture.then((image) { + // Precache the image only if it's not in the cache already. + if (!imageCache.containsKey(MemoryImage(image.bytes))) { + precacheImage(image, context).ignore(); + } + }); } @override @@ -45,7 +70,6 @@ class _GalleryFilePageViewState extends ConsumerState { appBar: AppBar( title: const Text("Gallery"), actions: [ - // Share Button. IconButton( onPressed: () { final path = widget.paths.elementAtOrNull(_currentPage); @@ -54,20 +78,17 @@ class _GalleryFilePageViewState extends ConsumerState { imageVal.when( data: (image) { - if (kIsWeb) { - // Handle sharing on web or other platforms if needed. - } else { - Share.shareXFiles( - [ - XFile.fromData( - image.bytes, - mimeType: "image/jpeg", - name: "foto_$_currentPage.jpg", - ), - ], - subject: "Foto", - ).ignore(); - } + // Handle sharing functionality here. + Share.shareXFiles( + [ + XFile.fromData( + image.bytes, + mimeType: "image/jpeg", + name: "$path.jpg", + ), + ], + subject: "Foto", + ).ignore(); }, error: (err, _) {}, loading: () {}, @@ -83,24 +104,43 @@ class _GalleryFilePageViewState extends ConsumerState { controller: _pageController, onPageChanged: (index) { setState(() { + bool isForward = _currentPage < index; _currentPage = index; + _preloadImage(ref, isForward ? index + 3 : index - 3); }); }, itemBuilder: (context, index) { final path = widget.paths[index]; - final imageVal = ref.watch(galleryImageProvider(path.fullPath)); - return imageVal.when( - data: (image) => Image.memory(image.bytes), - error: (err, _) => Center(child: Text('Error: $err')), - loading: () => const Center(child: CircularProgressIndicator()), - ); + // Access the manual cache. + final cache = ref.read(galleryImageCacheProvider); + + // Check if the image is in the cache. + final image = cache[path]; + + if (image == null) { + // Fallback: Use galleryImageProvider to load and cache the image. + final imageVal = ref.watch(galleryImageProvider(path.fullPath)); + + return imageVal.when( + data: (loadedImage) { + // Add the newly loaded image to the cache. + cache[path.fullPath] = loadedImage; + + return Image.memory(loadedImage.bytes); + }, + error: (err, _) => Center(child: Text('Error: $err')), + loading: () => const Center(child: CircularProgressIndicator()), + ); + } + + // Render the cached image. + return Image.memory(image.bytes); }, itemCount: widget.paths.length, ), onHorizontalDragUpdate: (details) { if (details.primaryDelta! > 0) { - // Swiping in right direction. if (_currentPage > 0) { _pageController.previousPage( duration: const Duration(milliseconds: 300), @@ -108,7 +148,6 @@ class _GalleryFilePageViewState extends ConsumerState { ); } } else if (details.primaryDelta! < 0) { - // Swiping in left direction. if (_currentPage < widget.paths.length - 1) { _pageController.nextPage( duration: const Duration(milliseconds: 300), diff --git a/lib/src/features/gallery/widgets/file_button.dart b/lib/src/features/gallery/widgets/file_button.dart index 43dc6cf0f..795aae3af 100644 --- a/lib/src/features/gallery/widgets/file_button.dart +++ b/lib/src/features/gallery/widgets/file_button.dart @@ -1,6 +1,7 @@ import 'package:firebase_storage/firebase_storage.dart'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:ksrvnjord_main_app/src/features/gallery/utils/gallery_view_provider.dart'; import 'package:ksrvnjord_main_app/src/features/gallery/utils/get_thumbnail_reference.dart'; import 'package:ksrvnjord_main_app/src/features/shared/model/thumbnail.dart'; import 'package:styled_widget/styled_widget.dart'; @@ -19,8 +20,12 @@ class FileButton extends ConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { - final image = getThumbnailReference(item, Thumbnail.x400) - .getDownloadURL(); // TODO: We should get 800x800 thumbnail if we are in LIST mode, IF we are in GRID mode, we should get 400x400 thumbnail. + // ignore: prefer-boolean-prefixes + final gridOrList = ref.watch(gridOrListViewProvider); + final image = getThumbnailReference( + item, + gridOrList ? Thumbnail.x800 : Thumbnail.x400, + ).getDownloadURL(); final navigator = Navigator.of(context); const padding = 12.0; diff --git a/lib/src/features/shared/model/thumbnail.dart b/lib/src/features/shared/model/thumbnail.dart index f0e2e0347..2333773d7 100644 --- a/lib/src/features/shared/model/thumbnail.dart +++ b/lib/src/features/shared/model/thumbnail.dart @@ -1,7 +1,8 @@ import 'package:flutter/foundation.dart'; @immutable -class Thumbnail { +abstract final class Thumbnail { static const String x200 = '_200x200'; static const String x400 = '_400x400'; + static const String x800 = '_800x800'; } diff --git a/pubspec.lock b/pubspec.lock index 7d3d23dae..ed9a81b2d 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -50,10 +50,10 @@ packages: dependency: transitive description: name: args - sha256: "7cf60b9f0cc88203c5a190b4cd62a99feea42759a7fa695010eb5de1c0b2252a" + sha256: bf9f5caeea8d8fe6721a9c358dd8a5c1947b27f1cfaa18b39c301273594919e6 url: "https://pub.dev" source: hosted - version: "2.5.0" + version: "2.6.0" async: dependency: transitive description: @@ -66,58 +66,58 @@ packages: dependency: "direct main" description: name: autologin - sha256: "0a34e1ae2c9bac8c1ec022690cf1801345bb5fb4877bddbe77e6502add3c9678" + sha256: "587de87b3c71351ecc9465c3d3a439a5d3b47a44ddefae207bfe01e66d5026d3" url: "https://pub.dev" source: hosted - version: "1.0.0" + version: "1.0.1" autologin_android: dependency: transitive description: name: autologin_android - sha256: "2a3bb9f1ff13bdd3bb58ac3f041ee31f3824fb1c9546d05f79571826cd847a08" + sha256: "4e112e3301e79062d967b8387ad2b219adf0cf52c5e0812137585a21c519dc95" url: "https://pub.dev" source: hosted - version: "1.0.0" + version: "1.0.1" autologin_darwin: dependency: transitive description: name: autologin_darwin - sha256: b3d6b9a1e4d84b6b7c02a03939fc80405886d8dad91a7dc6b32f07d227e79e3b + sha256: d1576dddf67d8f9edefd0f3fc0feea4a0222ab85f243dbc697cf44a73e7c8b40 url: "https://pub.dev" source: hosted - version: "1.0.0" + version: "1.0.1" autologin_linux: dependency: transitive description: name: autologin_linux - sha256: "73be1095be5550713748861fd46baf08031c1494f50e74f849e4774f1120e387" + sha256: e292b79d4da4b94dba7ce0f78ad25df92dcc8f5238b3003858ba5794aadfa001 url: "https://pub.dev" source: hosted - version: "1.0.0" + version: "1.0.1" autologin_platform_interface: dependency: transitive description: name: autologin_platform_interface - sha256: a2a87c16c90675da04ed98dc70aca44fbb22fa6ca3390a5a739f345c05371563 + sha256: "419b0af00b6ce218bf5730ea4f7eb02319c9329c7fa55f625cad75080fc8acea" url: "https://pub.dev" source: hosted - version: "1.0.0" + version: "1.0.1" autologin_web: dependency: transitive description: name: autologin_web - sha256: "8e81bb4f5d40c346f1d26a188cfb6effa4c4a670b032992ea45c001ef062409a" + sha256: ccb7a295dc80fe6a90ae048dcb46e4e27ac123468569d9e8cfc77819f8a462ea url: "https://pub.dev" source: hosted - version: "1.0.0" + version: "1.0.1" autologin_windows: dependency: transitive description: name: autologin_windows - sha256: "6c462081344ee057384d4b5e4dd24d38edeb1dcd5b1aeb3516965c9b7b6a840e" + sha256: "56e4545eaf7cb9c6ce2dd8114837a4eb1ec8f19aedd358ebc681e3c33dc87e11" url: "https://pub.dev" source: hosted - version: "1.0.0" + version: "1.0.1" boolean_selector: dependency: transitive description: @@ -202,10 +202,10 @@ packages: dependency: transitive description: name: charcode - sha256: fb98c0f6d12c920a02ee2d998da788bca066ca5f148492b7085ee23372b12306 + sha256: fb0f1107cac15a5ea6ef0a6ef71a807b9e4267c713bb93e00e92d737cc8dbd8a url: "https://pub.dev" source: hosted - version: "1.3.1" + version: "1.4.0" checked_yaml: dependency: transitive description: @@ -226,10 +226,10 @@ packages: dependency: transitive description: name: cli_util - sha256: c05b7406fdabc7a49a3929d4af76bcaccbbffcbcdcf185b082e1ae07da323d19 + sha256: ff6785f7e9e3c38ac98b2fb035701789de90154024a75b6cb926445e83197d1c url: "https://pub.dev" source: hosted - version: "0.4.1" + version: "0.4.2" clock: dependency: transitive description: @@ -290,10 +290,10 @@ packages: dependency: transitive description: name: code_builder - sha256: f692079e25e7869c14132d39f223f8eec9830eb76131925143b2129c4bb01b37 + sha256: "0ec10bf4a89e4c613960bf1e8b42c64127021740fb21640c29c909826a5eea3e" url: "https://pub.dev" source: hosted - version: "4.10.0" + version: "4.10.1" collection: dependency: transitive description: @@ -306,10 +306,10 @@ packages: dependency: transitive description: name: convert - sha256: "0f08b14755d163f6e2134cb58222dd25ea2a2ee8a195e53983d57c075324d592" + sha256: b30acd5944035672bc15c6b7a8b47d773e41e2f17de064350988c5d02adb1c68 url: "https://pub.dev" source: hosted - version: "3.1.1" + version: "3.1.2" cross_file: dependency: transitive description: @@ -322,18 +322,18 @@ packages: dependency: "direct main" description: name: crypto - sha256: ec30d999af904f33454ba22ed9a86162b35e52b44ac4807d1d93c288041d7d27 + sha256: "1e445881f28f22d6140f181e07737b22f1e099a5e1ff94b0af2f9e4a463f4855" url: "https://pub.dev" source: hosted - version: "3.0.5" + version: "3.0.6" csslib: dependency: transitive description: name: csslib - sha256: "706b5707578e0c1b4b7550f64078f0a0f19dec3f50a178ffae7006b0a9ca58fb" + sha256: "09bad715f418841f976c77db72d5398dc1253c21fb9c0c7f0b0b985860b2d58e" url: "https://pub.dev" source: hosted - version: "1.0.0" + version: "1.0.2" csv: dependency: "direct main" description: @@ -346,34 +346,42 @@ packages: dependency: "direct dev" description: name: custom_lint - sha256: "832fcdc676171205201c9cffafd6b5add19393962f6598af8472b48b413026e6" + sha256: "3486c470bb93313a9417f926c7dd694a2e349220992d7b9d14534dc49c15bba9" url: "https://pub.dev" source: hosted - version: "0.6.8" + version: "0.7.0" custom_lint_builder: dependency: transitive description: name: custom_lint_builder - sha256: c3d82779026f91b8e00c9ac18934595cbc9b490094ea682052beeafdb2bd50ac + sha256: "42cdc41994eeeddab0d7a722c7093ec52bd0761921eeb2cbdbf33d192a234759" url: "https://pub.dev" source: hosted - version: "0.6.8" + version: "0.7.0" custom_lint_core: dependency: transitive description: name: custom_lint_core - sha256: "4ddbbdaa774265de44c97054dcec058a83d9081d071785ece601e348c18c267d" + sha256: "02450c3e45e2a6e8b26c4d16687596ab3c4644dd5792e3313aa9ceba5a49b7f5" + url: "https://pub.dev" + source: hosted + version: "0.7.0" + custom_lint_visitor: + dependency: transitive + description: + name: custom_lint_visitor + sha256: "8aeb3b6ae2bb765e7716b93d1d10e8356d04e0ff6d7592de6ee04e0dd7d6587d" url: "https://pub.dev" source: hosted - version: "0.6.5" + version: "1.0.0+6.7.0" dart_code_metrics_presets: dependency: "direct dev" description: name: dart_code_metrics_presets - sha256: "2a889a92995fadaf770ee9d08792dd04ae0259029600be55554b6790f1b5da38" + sha256: "7a2d1eb8667c0991ceb925a65ab14f30c76dc32912d17c4c2df29c64dd9b9c97" url: "https://pub.dev" source: hosted - version: "2.16.0" + version: "2.19.0" dart_style: dependency: transitive description: @@ -474,10 +482,10 @@ packages: dependency: "direct main" description: name: feedback_sentry - sha256: ebe3662942ce90b48f2a1eb66396bb17d998b69919e310fbfcb3fe924a22c660 + sha256: ca6eb5344d8ada0bfbf0b5fee4531ab99fc4bd1c5dff831cbe34e835d3994c26 url: "https://pub.dev" source: hosted - version: "3.0.1" + version: "3.1.0" ffi: dependency: transitive description: @@ -498,10 +506,10 @@ packages: dependency: transitive description: name: file_selector_linux - sha256: "712ce7fab537ba532c8febdb1a8f167b32441e74acd68c3ccb2e36dcb52c4ab2" + sha256: "54cbbd957e1156d29548c7d9b9ec0c0ebb6de0a90452198683a7d23aed617a33" url: "https://pub.dev" source: hosted - version: "0.9.3" + version: "0.9.3+2" file_selector_macos: dependency: transitive description: @@ -610,10 +618,10 @@ packages: dependency: transitive description: name: firebase_core_platform_interface - sha256: e30da58198a6d4b49d5bce4e852f985c32cb10db329ebef9473db2b9f09ce810 + sha256: b94b217e3ad745e784960603d33d99471621ecca151c99c670869b76e50ad2a6 url: "https://pub.dev" source: hosted - version: "5.3.0" + version: "5.3.1" firebase_core_web: dependency: transitive description: @@ -723,10 +731,10 @@ packages: dependency: transitive description: name: fixnum - sha256: "25517a4deb0c03aa0f32fd12db525856438902d9c16536311e76cdc57b31d7d1" + sha256: b6dc7065e46c974bc7c5f143080a6764ec7a4be6da1285ececdc37be96de53be url: "https://pub.dev" source: hosted - version: "1.1.0" + version: "1.1.1" flutter: dependency: "direct main" description: flutter @@ -744,10 +752,10 @@ packages: dependency: "direct main" description: name: flutter_local_notifications - sha256: "49eeef364fddb71515bc78d5a8c51435a68bccd6e4d68e25a942c5e47761ae71" + sha256: "674173fd3c9eda9d4c8528da2ce0ea69f161577495a9cc835a2a4ecd7eadeb35" url: "https://pub.dev" source: hosted - version: "17.2.3" + version: "17.2.4" flutter_local_notifications_linux: dependency: transitive description: @@ -773,18 +781,18 @@ packages: dependency: "direct main" description: name: flutter_markdown - sha256: e17575ca576a34b46c58c91f9948891117a1bd97815d2e661813c7f90c647a78 + sha256: "255b00afa1a7bad19727da6a7780cf3db6c3c12e68d302d85e0ff1fdf173db9e" url: "https://pub.dev" source: hosted - version: "0.7.3+2" + version: "0.7.4+3" flutter_pdfview: dependency: "direct main" description: name: flutter_pdfview - sha256: "6b625b32a9102780236554dff42f2d798b4627704ab4a3153c07f2134a52b697" + sha256: "715085f9f2c1ad5129dfe0d31a5f0e5481e2e296ce4e6ce72662de28df5456a6" url: "https://pub.dev" source: hosted - version: "1.3.3" + version: "1.3.4" flutter_plugin_android_lifecycle: dependency: transitive description: @@ -797,10 +805,10 @@ packages: dependency: "direct main" description: name: flutter_riverpod - sha256: "0f1974eff5bbe774bf1d870e406fc6f29e3d6f1c46bd9c58e7172ff68a785d7d" + sha256: "9532ee6db4a943a1ed8383072a2e3eeda041db5657cdf6d2acecf3c21ecbe7e1" url: "https://pub.dev" source: hosted - version: "2.5.1" + version: "2.6.1" flutter_secure_storage: dependency: "direct main" description: @@ -861,10 +869,10 @@ packages: dependency: "direct main" description: name: flutter_svg - sha256: "7b4ca6cf3304575fe9c8ec64813c8d02ee41d2afe60bcfe0678bcb5375d596a2" + sha256: "54900a1a1243f3c4a5506d853a2b5c2dbc38d5f27e52a52618a8054401431123" url: "https://pub.dev" source: hosted - version: "2.0.10+1" + version: "2.0.16" flutter_test: dependency: "direct dev" description: flutter @@ -879,10 +887,10 @@ packages: dependency: "direct main" description: name: font_awesome_flutter - sha256: "275ff26905134bcb59417cf60ad979136f1f8257f2f449914b2c3e05bbb4cd6f" + sha256: d3a89184101baec7f4600d58840a764d2ef760fe1c5a20ef9e6b0e9b24a07a3a url: "https://pub.dev" source: hosted - version: "10.7.0" + version: "10.8.0" freezed: dependency: "direct dev" description: @@ -911,10 +919,10 @@ packages: dependency: "direct main" description: name: get_it - sha256: ff97e5e7b2e82e63c82f5658c6ba2605ea831f0f7489b0d2fb255d817ec4eb5e + sha256: c49895c1ecb0ee2a0ec568d39de882e2c299ba26355aa6744ab1001f98cebd15 url: "https://pub.dev" source: hosted - version: "8.0.0" + version: "8.0.2" glob: dependency: transitive description: @@ -927,10 +935,10 @@ packages: dependency: "direct main" description: name: go_router - sha256: "6f1b756f6e863259a99135ff3c95026c3cdca17d10ebef2bba2261a25ddc8bbc" + sha256: "2fd11229f59e23e967b0775df8d5948a519cd7e1e8b6e849729e010587b46539" url: "https://pub.dev" source: hosted - version: "14.3.0" + version: "14.6.2" graphs: dependency: transitive description: @@ -975,10 +983,10 @@ packages: dependency: transitive description: name: html - sha256: "3a7812d5bcd2894edf53dfaf8cd640876cf6cef50a8f238745c8b8120ea74d3a" + sha256: "1fc58edeaec4307368c60d59b7e15b9d658b57d7f3125098b6294153c75337ec" url: "https://pub.dev" source: hosted - version: "0.15.4" + version: "0.15.5" http: dependency: transitive description: @@ -1015,26 +1023,26 @@ packages: dependency: transitive description: name: image_picker_android - sha256: d3e5e00fdfeca8fd4ffb3227001264d449cc8950414c2ff70b0e06b9c628e643 + sha256: fa8141602fde3f7e2f81dbf043613eb44dfa325fa0bcf93c0f142c9f7a2c193e url: "https://pub.dev" source: hosted - version: "0.8.12+15" + version: "0.8.12+18" image_picker_for_web: dependency: transitive description: name: image_picker_for_web - sha256: "65d94623e15372c5c51bebbcb820848d7bcb323836e12dfdba60b5d3a8b39e50" + sha256: "717eb042ab08c40767684327be06a5d8dbb341fe791d514e4b92c7bbe1b7bb83" url: "https://pub.dev" source: hosted - version: "3.0.5" + version: "3.0.6" image_picker_ios: dependency: transitive description: name: image_picker_ios - sha256: "6703696ad49f5c3c8356d576d7ace84d1faf459afb07accbb0fae780753ff447" + sha256: "4f0568120c6fcc0aaa04511cb9f9f4d29fc3d0139884b1d06be88dcec7641d6b" url: "https://pub.dev" source: hosted - version: "0.8.12" + version: "0.8.12+1" image_picker_linux: dependency: transitive description: @@ -1071,10 +1079,10 @@ packages: dependency: "direct main" description: name: infinite_scroll_pagination - sha256: b68bce20752fcf36c7739e60de4175494f74e99e9a69b4dd2fe3a1dd07a7f16a + sha256: "4047eb8191e8b33573690922a9e995af64c3949dc87efc844f936b039ea279df" url: "https://pub.dev" source: hosted - version: "4.0.0" + version: "4.1.0" intl: dependency: "direct main" description: @@ -1111,10 +1119,10 @@ packages: dependency: "direct dev" description: name: json_serializable - sha256: ea1432d167339ea9b5bb153f0571d0039607a873d6e04e0117af043f14a1fd4b + sha256: c2fcb3920cf2b6ae6845954186420fca40bc0a8abcc84903b7801f17d7050d7c url: "https://pub.dev" source: hosted - version: "6.8.0" + version: "6.9.0" leak_tracker: dependency: transitive description: @@ -1159,10 +1167,10 @@ packages: dependency: transitive description: name: logging - sha256: "623a88c9594aa774443aa3eb2d41807a48486b5613e67599fb4c41c0ad47c340" + sha256: c8245ada5f1717ed44271ed1c26b8ce85ca3228fd2ffdb75468ab01979309d61 url: "https://pub.dev" source: hosted - version: "1.2.0" + version: "1.3.0" lucide_icons: dependency: "direct main" description: @@ -1231,10 +1239,10 @@ packages: dependency: transitive description: name: os_detect - sha256: faf3bcf39515e64da8ff76b2f2805b20a6ff47ae515393e535f8579ff91d6b7f + sha256: e704fb99aa30b2b9a284d87a28eef9ba262f68c25c963d5eb932f54cad07784f url: "https://pub.dev" source: hosted - version: "2.0.1" + version: "2.0.2" package_config: dependency: transitive description: @@ -1247,10 +1255,10 @@ packages: dependency: "direct main" description: name: package_info_plus - sha256: "894f37107424311bdae3e476552229476777b8752c5a2a2369c0cb9a2d5442ef" + sha256: da8d9ac8c4b1df253d1a328b7bf01ae77ef132833479ab40763334db13b91cce url: "https://pub.dev" source: hosted - version: "8.0.3" + version: "8.1.1" package_info_plus_platform_interface: dependency: transitive description: @@ -1271,34 +1279,34 @@ packages: dependency: transitive description: name: path_parsing - sha256: e3e67b1629e6f7e8100b367d3db6ba6af4b1f0bb80f64db18ef1fbabd2fa9ccf + sha256: "883402936929eac138ee0a45da5b0f2c80f89913e6dc3bf77eb65b84b409c6ca" url: "https://pub.dev" source: hosted - version: "1.0.1" + version: "1.1.0" path_provider: dependency: "direct main" description: name: path_provider - sha256: fec0d61223fba3154d87759e3cc27fe2c8dc498f6386c6d6fc80d1afdd1bf378 + sha256: "50c5dd5b6e1aaf6fb3a78b33f6aa3afca52bf903a8a5298f53101fdaee55bbcd" url: "https://pub.dev" source: hosted - version: "2.1.4" + version: "2.1.5" path_provider_android: dependency: transitive description: name: path_provider_android - sha256: c464428172cb986b758c6d1724c603097febb8fb855aa265aeecc9280c294d4a + sha256: "8c4967f8b7cb46dc914e178daa29813d83ae502e0529d7b0478330616a691ef7" url: "https://pub.dev" source: hosted - version: "2.2.12" + version: "2.2.14" path_provider_foundation: dependency: transitive description: name: path_provider_foundation - sha256: f234384a3fdd67f989b4d54a5d73ca2a6c422fa55ae694381ae0f4375cd1ea16 + sha256: "4843174df4d288f5e29185bd6e72a6fbdf5a4a4602717eed565497429f179942" url: "https://pub.dev" source: hosted - version: "2.4.0" + version: "2.4.1" path_provider_linux: dependency: transitive description: @@ -1335,10 +1343,10 @@ packages: dependency: transitive description: name: platform - sha256: "9b71283fc13df574056616011fb138fd3b793ea47cc509c189a6c3fa5f8a1a65" + sha256: "5d6b1b0036a5f331ebc77c850ebc8506cbc1e9416c27e59b439f917a902a4984" url: "https://pub.dev" source: hosted - version: "3.1.5" + version: "3.1.6" plugin_platform_interface: dependency: transitive description: @@ -1375,42 +1383,42 @@ packages: dependency: transitive description: name: riverpod - sha256: f21b32ffd26a36555e501b04f4a5dca43ed59e16343f1a30c13632b2351dfa4d + sha256: "59062512288d3056b2321804332a13ffdd1bf16df70dcc8e506e411280a72959" url: "https://pub.dev" source: hosted - version: "2.5.1" + version: "2.6.1" riverpod_analyzer_utils: dependency: transitive description: name: riverpod_analyzer_utils - sha256: ac28d7bc678471ec986b42d88e5a0893513382ff7542c7ac9634463b044ac72c + sha256: c6b8222b2b483cb87ae77ad147d6408f400c64f060df7a225b127f4afef4f8c8 url: "https://pub.dev" source: hosted - version: "0.5.4" + version: "0.5.8" riverpod_annotation: dependency: "direct main" description: name: riverpod_annotation - sha256: e5e796c0eba4030c704e9dae1b834a6541814963292839dcf9638d53eba84f5c + sha256: e14b0bf45b71326654e2705d462f21b958f987087be850afd60578fcd502d1b8 url: "https://pub.dev" source: hosted - version: "2.3.5" + version: "2.6.1" riverpod_generator: dependency: "direct dev" description: name: riverpod_generator - sha256: "63311e361ffc578d655dfc31b48dfa4ed3bc76fd06f9be845e9bf97c5c11a429" + sha256: "63546d70952015f0981361636bf8f356d9cfd9d7f6f0815e3c07789a41233188" url: "https://pub.dev" source: hosted - version: "2.4.3" + version: "2.6.3" riverpod_lint: dependency: "direct dev" description: name: riverpod_lint - sha256: a35a92f2c2a4b7a5d95671c96c5432b42c20f26bb3e985e83d0b186471b61a85 + sha256: "83e4caa337a9840469b7b9bd8c2351ce85abad80f570d84146911b32086fbd99" url: "https://pub.dev" source: hosted - version: "2.3.13" + version: "2.6.3" rxdart: dependency: transitive description: @@ -1423,18 +1431,18 @@ packages: dependency: transitive description: name: sentry - sha256: "033287044a6644a93498969449d57c37907e56f5cedb17b88a3ff20a882261dd" + sha256: "2440763ae96fa8fd1bcdfc224f5232e1b7a09af76a72f4e626ee313a261faf6f" url: "https://pub.dev" source: hosted - version: "8.9.0" + version: "8.10.1" sentry_flutter: dependency: "direct main" description: name: sentry_flutter - sha256: "3780b5a0bb6afd476857cfbc6c7444d969c29a4d9bd1aa5b6960aa76c65b737a" + sha256: "3b30038b3b9303540a8b2c8b1c8f0bb93a207f8e4b25691c59d969ddeb4734fd" url: "https://pub.dev" source: hosted - version: "8.9.0" + version: "8.10.1" share_plus: dependency: "direct main" description: @@ -1455,18 +1463,18 @@ packages: dependency: "direct main" description: name: shared_preferences - sha256: "746e5369a43170c25816cc472ee016d3a66bc13fcf430c0bc41ad7b4b2922051" + sha256: "95f9997ca1fb9799d494d0cb2a780fd7be075818d59f00c43832ed112b158a82" url: "https://pub.dev" source: hosted - version: "2.3.2" + version: "2.3.3" shared_preferences_android: dependency: transitive description: name: shared_preferences_android - sha256: "3b9febd815c9ca29c9e3520d50ec32f49157711e143b7a4ca039eb87e8ade5ab" + sha256: "7f172d1b06de5da47b6264c2692ee2ead20bbbc246690427cdb4fc301cd0c549" url: "https://pub.dev" source: hosted - version: "2.3.3" + version: "2.3.4" shared_preferences_foundation: dependency: transitive description: @@ -1519,10 +1527,10 @@ packages: dependency: transitive description: name: shelf_web_socket - sha256: "073c147238594ecd0d193f3456a5fe91c4b0abbcc68bf5cd95b36c4e194ac611" + sha256: cc36c297b52866d203dbf9332263c94becc2fe0ceaa9681d07b6ef9807023b67 url: "https://pub.dev" source: hosted - version: "2.0.0" + version: "2.0.1" shimmer: dependency: "direct main" description: @@ -1636,26 +1644,26 @@ packages: dependency: "direct main" description: name: syncfusion_flutter_calendar - sha256: c2105449ffb46a9a79e5b622ceb8a78e2937c88e69747469244051803fba6b52 + sha256: "20118a598cf5ae5b7ec84fa364e2b51070800f078466158fcd25864e1b5a2cfd" url: "https://pub.dev" source: hosted - version: "27.1.52" + version: "27.2.5" syncfusion_flutter_core: dependency: transitive description: name: syncfusion_flutter_core - sha256: "7130fc3259247946b59fe9b76ee89500c775c3f7e5c1d0826f3105e1dd0bebf6" + sha256: "325f519ce4ad8edd81811c21b853d72018529e353584490824da0555156ba076" url: "https://pub.dev" source: hosted - version: "27.1.52" + version: "27.2.5" syncfusion_flutter_datepicker: dependency: transitive description: name: syncfusion_flutter_datepicker - sha256: "61efc09e962d7b7cc3c7d33a2e44ec027112403af49590d5cc1025a255cc34fa" + sha256: "2177e49eb8a1c0fce7081e40f5613c986d00e5e63cbeb98a6012f65ca156bfc7" url: "https://pub.dev" source: hosted - version: "27.1.52" + version: "27.2.5" term_glyph: dependency: transitive description: @@ -1716,10 +1724,10 @@ packages: dependency: transitive description: name: typed_data - sha256: facc8d6582f16042dd49f2463ff1bd6e2c9ef9f3d5da3d9b087e244a7b564b3c + sha256: f9049c039ebfeb4cf7a7104a675823cd72dba8297f264b6637062516699fa006 url: "https://pub.dev" source: hosted - version: "1.3.2" + version: "1.4.0" universal_html: dependency: "direct main" description: @@ -1740,10 +1748,10 @@ packages: dependency: "direct main" description: name: upgrader - sha256: a8751904c13f7699bce3b28d8eedb6260e1c25311b75d4b712faeaedd996b7cc + sha256: "9b907a8c956dbf3f2d0430d16134e27543cba98eab31f19a2240ab1c4d920506" url: "https://pub.dev" source: hosted - version: "11.2.0" + version: "11.3.0" url_launcher: dependency: "direct main" description: @@ -1756,34 +1764,34 @@ packages: dependency: transitive description: name: url_launcher_android - sha256: "8fc3bae0b68c02c47c5c86fa8bfa74471d42687b0eded01b78de87872db745e2" + sha256: "6fc2f56536ee873eeb867ad176ae15f304ccccc357848b351f6f0d8d4a40d193" url: "https://pub.dev" source: hosted - version: "6.3.12" + version: "6.3.14" url_launcher_ios: dependency: transitive description: name: url_launcher_ios - sha256: e43b677296fadce447e987a2f519dcf5f6d1e527dc35d01ffab4fff5b8a7063e + sha256: "16a513b6c12bb419304e72ea0ae2ab4fed569920d1c7cb850263fe3acc824626" url: "https://pub.dev" source: hosted - version: "6.3.1" + version: "6.3.2" url_launcher_linux: dependency: transitive description: name: url_launcher_linux - sha256: e2b9622b4007f97f504cd64c0128309dfb978ae66adbe944125ed9e1750f06af + sha256: "4e9ba368772369e3e08f231d2301b4ef72b9ff87c31192ef471b380ef29a4935" url: "https://pub.dev" source: hosted - version: "3.2.0" + version: "3.2.1" url_launcher_macos: dependency: transitive description: name: url_launcher_macos - sha256: "769549c999acdb42b8bcfa7c43d72bf79a382ca7441ab18a808e101149daf672" + sha256: "17ba2000b847f334f16626a574c702b196723af2a289e7a93ffcb79acff855c2" url: "https://pub.dev" source: hosted - version: "3.2.1" + version: "3.2.2" url_launcher_platform_interface: dependency: transitive description: @@ -1804,10 +1812,10 @@ packages: dependency: transitive description: name: url_launcher_windows - sha256: "49c10f879746271804767cb45551ec5592cdab00ee105c06dddde1a98f73b185" + sha256: "44cf3aabcedde30f2dba119a9dea3b0f2672fbe6fa96e85536251d678216b3c4" url: "https://pub.dev" source: hosted - version: "3.1.2" + version: "3.1.3" uuid: dependency: transitive description: @@ -1820,26 +1828,26 @@ packages: dependency: transitive description: name: vector_graphics - sha256: "32c3c684e02f9bc0afb0ae0aa653337a2fe022e8ab064bcd7ffda27a74e288e3" + sha256: "27d5fefe86fb9aace4a9f8375b56b3c292b64d8c04510df230f849850d912cb7" url: "https://pub.dev" source: hosted - version: "1.1.11+1" + version: "1.1.15" vector_graphics_codec: dependency: transitive description: name: vector_graphics_codec - sha256: c86987475f162fadff579e7320c7ddda04cd2fdeffbe1129227a85d9ac9e03da + sha256: "2430b973a4ca3c4dbc9999b62b8c719a160100dcbae5c819bae0cacce32c9cdb" url: "https://pub.dev" source: hosted - version: "1.1.11+1" + version: "1.1.12" vector_graphics_compiler: dependency: transitive description: name: vector_graphics_compiler - sha256: "12faff3f73b1741a36ca7e31b292ddeb629af819ca9efe9953b70bd63fc8cd81" + sha256: "1b4b9e706a10294258727674a340ae0d6e64a7231980f9f9a3d12e4b42407aad" url: "https://pub.dev" source: hosted - version: "1.1.11+1" + version: "1.1.16" vector_math: dependency: transitive description: @@ -1908,10 +1916,10 @@ packages: dependency: transitive description: name: win32 - sha256: "4d45dc9069dba4619dc0ebd93c7cec5e66d8482cb625a370ac806dcc8165f2ec" + sha256: "8b338d4486ab3fbc0ba0db9f9b4f5239b6697fcee427939a40e720cbb9ee0a69" url: "https://pub.dev" source: hosted - version: "5.5.5" + version: "5.9.0" win32_registry: dependency: transitive description: diff --git a/windows/flutter/generated_plugin_registrant.cc b/windows/flutter/generated_plugin_registrant.cc index 440f93259..d674d363d 100644 --- a/windows/flutter/generated_plugin_registrant.cc +++ b/windows/flutter/generated_plugin_registrant.cc @@ -12,6 +12,7 @@ #include #include #include +#include #include #include @@ -28,6 +29,8 @@ void RegisterPlugins(flutter::PluginRegistry* registry) { registry->GetRegistrarForPlugin("FirebaseStoragePluginCApi")); FlutterSecureStorageWindowsPluginRegisterWithRegistrar( registry->GetRegistrarForPlugin("FlutterSecureStorageWindowsPlugin")); + SentryFlutterPluginRegisterWithRegistrar( + registry->GetRegistrarForPlugin("SentryFlutterPlugin")); SharePlusWindowsPluginCApiRegisterWithRegistrar( registry->GetRegistrarForPlugin("SharePlusWindowsPluginCApi")); UrlLauncherWindowsRegisterWithRegistrar( diff --git a/windows/flutter/generated_plugins.cmake b/windows/flutter/generated_plugins.cmake index e14477e51..7c21b78bb 100644 --- a/windows/flutter/generated_plugins.cmake +++ b/windows/flutter/generated_plugins.cmake @@ -9,12 +9,12 @@ list(APPEND FLUTTER_PLUGIN_LIST firebase_core firebase_storage flutter_secure_storage_windows + sentry_flutter share_plus url_launcher_windows ) list(APPEND FLUTTER_FFI_PLUGIN_LIST - sentry_flutter ) set(PLUGIN_BUNDLED_LIBRARIES)