[READ ONLY MIRROR] Open Source TikTok alternative built on AT Protocol github.com/sprksocial/client
flutter atproto video dart
10
fork

Configure Feed

Select the types of activity you want to include in your feed.

feat: haptics

+140 -82
+13 -12
ios/Podfile.lock
··· 14 14 - camera_avfoundation (0.0.1): 15 15 - Flutter 16 16 - Flutter (1.0.0) 17 - - flutter_secure_storage (6.0.0): 17 + - flutter_secure_storage_darwin (10.0.0): 18 18 - Flutter 19 - - fvp (0.35.1): 19 + - FlutterMacOS 20 + - fvp (0.35.2): 20 21 - Flutter 21 22 - FlutterMacOS 22 - - mdk (~> 0.35.0) 23 + - mdk (~> 0.35.1) 23 24 - GCDWebServer (3.5.4): 24 25 - GCDWebServer/Core (= 3.5.4) 25 26 - GCDWebServer/Core (3.5.4) ··· 28 29 - PINCache (>= 3.0.1-beta.3) 29 30 - image_picker_ios (0.0.1): 30 31 - Flutter 31 - - mdk (0.35.0) 32 + - mdk (0.35.1) 32 33 - package_info_plus (0.4.5): 33 34 - Flutter 34 35 - path_provider_foundation (0.0.1): ··· 42 43 - PINCache/Core (3.0.4): 43 44 - PINOperation (~> 1.2.3) 44 45 - PINOperation (1.2.3) 45 - - PostHog (3.35.0) 46 + - PostHog (3.37.1) 46 47 - posthog_flutter (0.0.1): 47 48 - Flutter 48 49 - FlutterMacOS ··· 69 70 - better_player_plus (from `.symlinks/plugins/better_player_plus/ios`) 70 71 - camera_avfoundation (from `.symlinks/plugins/camera_avfoundation/ios`) 71 72 - Flutter (from `Flutter`) 72 - - flutter_secure_storage (from `.symlinks/plugins/flutter_secure_storage/ios`) 73 + - flutter_secure_storage_darwin (from `.symlinks/plugins/flutter_secure_storage_darwin/darwin`) 73 74 - fvp (from `.symlinks/plugins/fvp/darwin`) 74 75 - image_picker_ios (from `.symlinks/plugins/image_picker_ios/ios`) 75 76 - package_info_plus (from `.symlinks/plugins/package_info_plus/ios`) ··· 103 104 :path: ".symlinks/plugins/camera_avfoundation/ios" 104 105 Flutter: 105 106 :path: Flutter 106 - flutter_secure_storage: 107 - :path: ".symlinks/plugins/flutter_secure_storage/ios" 107 + flutter_secure_storage_darwin: 108 + :path: ".symlinks/plugins/flutter_secure_storage_darwin/darwin" 108 109 fvp: 109 110 :path: ".symlinks/plugins/fvp/darwin" 110 111 image_picker_ios: ··· 135 136 Cache: 4ca7e00363fca5455f26534e5607634c820ffc2d 136 137 camera_avfoundation: 5675ca25298b6f81fa0a325188e7df62cc217741 137 138 Flutter: cabc95a1d2626b1b06e7179b784ebcf0c0cde467 138 - flutter_secure_storage: 1ed9476fba7e7a782b22888f956cce43e2c62f13 139 - fvp: 5a47a325ffa8d63e70a276a6436416ae703206a5 139 + flutter_secure_storage_darwin: acdb3f316ed05a3e68f856e0353b133eec373a23 140 + fvp: 4fe77c2b30122233a57f425dafd219ed35565809 140 141 GCDWebServer: 2c156a56c8226e2d5c0c3f208a3621ccffbe3ce4 141 142 HLSCachingReverseProxyServer: 59935e1e0244ad7f3375d75b5ef46e8eb26ab181 142 143 image_picker_ios: e0ece4aa2a75771a7de3fa735d26d90817041326 143 - mdk: baa616b93f696c7066df0e5ebe057badfa9c462b 144 + mdk: 59bbe9e2ac2a052455ab1b076c245680d66cf6c0 144 145 package_info_plus: af8e2ca6888548050f16fa2f1938db7b5a5df499 145 146 path_provider_foundation: bb55f6dbba17d0dccd6737fe6f7f34fbd0376880 146 147 PINCache: d9a87a0ff397acffe9e2f0db972ac14680441158 147 148 PINOperation: fb563bcc9c32c26d6c78aaff967d405aa2ee74a7 148 - PostHog: da83ef8bee8c21ccb2b3680054e22c85d352f142 149 + PostHog: cf23456d5de1c19efe5823437069440a12198c91 149 150 posthog_flutter: 9535ac2d4ab65ccb9ace3886dcc0b3105198bad5 150 151 pro_video_editor: 44ef9a6d48dbd757ed428cf35396dd05f35c7830 151 152 shared_preferences_foundation: 7036424c3d8ec98dfe75ff1667cb0cd531ec82bb
+13 -2
lib/src/core/design_system/components/atoms/toggles/follow_button.dart
··· 1 1 import 'package:flutter/material.dart'; 2 + import 'package:flutter/services.dart'; 2 3 import 'package:sparksocial/src/core/design_system/components/atoms/buttons/interactive_pressable.dart'; 3 4 import 'package:sparksocial/src/core/design_system/tokens/colors.dart'; 4 5 import 'package:sparksocial/src/core/design_system/tokens/typography.dart'; ··· 33 34 34 35 if (isBlocking && onUnblock != null) { 35 36 return InteractivePressable( 36 - onTap: onUnblock, 37 + onTap: () { 38 + HapticFeedback.mediumImpact(); 39 + onUnblock!(); 40 + }, 37 41 borderRadius: const BorderRadius.all(Radius.circular(8)), 38 42 child: Container( 39 43 width: width ?? 109.47, ··· 61 65 } 62 66 63 67 return InteractivePressable( 64 - onTap: isFollowing ? onUnfollow : onFollow, 68 + onTap: () { 69 + HapticFeedback.mediumImpact(); 70 + if (isFollowing) { 71 + onUnfollow(); 72 + } else { 73 + onFollow(); 74 + } 75 + }, 65 76 borderRadius: const BorderRadius.all(Radius.circular(8)), 66 77 child: Container( 67 78 width: width ?? 109.47,
+9 -1
lib/src/core/design_system/components/atoms/toggles/glass_follow_button.dart
··· 1 1 import 'dart:ui'; 2 2 import 'package:flutter/material.dart'; 3 + import 'package:flutter/services.dart'; 3 4 import 'package:sparksocial/src/core/design_system/tokens/typography.dart'; 4 5 5 6 class GlassFollowButton extends StatelessWidget { ··· 21 22 @override 22 23 Widget build(BuildContext context) { 23 24 return GestureDetector( 24 - onTap: isFollowing ? onUnfollow : onFollow, 25 + onTap: () { 26 + HapticFeedback.mediumImpact(); 27 + if (isFollowing) { 28 + onUnfollow(); 29 + } else { 30 + onFollow(); 31 + } 32 + }, 25 33 child: ClipRRect( 26 34 borderRadius: BorderRadius.circular(100), 27 35 child: BackdropFilter(
+17 -2
lib/src/core/network/atproto/data/models/feed_models.dart
··· 591 591 }) = EmbedViewRecord_Blocked; 592 592 593 593 factory EmbedViewRecord.fromJson(Map<String, dynamic> json) { 594 - // Handle unsupported record embed types by returning notFound (uses adapter's list) 595 594 final type = json[r'$type'] as String?; 595 + // Handle unsupported record embed types by returning notFound (uses adapter's list) 596 596 if (BskyFeedAdapter.isUnsupportedEmbedType(type)) { 597 597 return EmbedViewRecord.notFound( 598 598 uri: AtUri.parse(json['uri'] as String? ?? 'at://unknown'), 599 599 notFound: true, 600 600 ); 601 601 } 602 - return _$EmbedViewRecordFromJson(json); 602 + // Route to appropriate subtype based on $type 603 + return switch (type) { 604 + 'app.bsky.embed.record#viewRecord' => _$EmbedViewRecord_RecordFromJson(json), 605 + 'app.bsky.embed.record#viewNotFound' => _$EmbedViewRecord_NotFoundFromJson(json), 606 + 'app.bsky.embed.record#viewBlocked' => _$EmbedViewRecord_BlockedFromJson(json), 607 + _ => EmbedViewRecord.notFound( 608 + uri: AtUri.parse(json['uri'] as String? ?? 'at://unknown'), 609 + notFound: true, 610 + ), 611 + }; 603 612 } 613 + 614 + Map<String, dynamic> toJson() => switch (this) { 615 + EmbedViewRecord_Record() => (this as EmbedViewRecord_Record).toJson(), 616 + EmbedViewRecord_NotFound() => (this as EmbedViewRecord_NotFound).toJson(), 617 + EmbedViewRecord_Blocked() => (this as EmbedViewRecord_Blocked).toJson(), 618 + }; 604 619 } 605 620 606 621 @freezed
+2
lib/src/features/comments/ui/widgets/comment_input.dart
··· 2 2 3 3 import 'package:fluentui_system_icons/fluentui_system_icons.dart'; 4 4 import 'package:flutter/material.dart'; 5 + import 'package:flutter/services.dart'; 5 6 import 'package:flutter_riverpod/flutter_riverpod.dart'; 6 7 import 'package:image_picker/image_picker.dart'; // Import image_picker 7 8 import 'package:sparksocial/src/core/ui/widgets/alt_text_editor_dialog.dart'; ··· 168 169 ), 169 170 onPressed: () { 170 171 if (state.canSubmit) { 172 + HapticFeedback.mediumImpact(); 171 173 // Use reply info if available, otherwise use main post info 172 174 final parentCid = widget.postCid; 173 175 final parentUri = widget.postUri;
+3
lib/src/features/feed/ui/widgets/action_buttons/side_action_bar.dart
··· 1 1 import 'package:atproto/core.dart'; 2 2 import 'package:auto_route/auto_route.dart'; 3 3 import 'package:flutter/material.dart'; 4 + import 'package:flutter/services.dart'; 4 5 import 'package:flutter_riverpod/flutter_riverpod.dart'; 5 6 import 'package:get_it/get_it.dart'; 6 7 import 'package:sparksocial/src/core/design_system/components/organisms/side_action_bar.dart'; ··· 92 93 } 93 94 94 95 Future<void> _handleLike() async { 96 + HapticFeedback.mediumImpact(); 95 97 final wasLiked = _isLiked; 96 98 setState(() { 97 99 _isLiked = !_isLiked; ··· 149 151 } 150 152 151 153 Future<void> _handleRepost() async { 154 + HapticFeedback.lightImpact(); 152 155 final wasReposted = _isReposted; 153 156 setState(() { 154 157 _isReposted = !_isReposted;
+4
lib/src/features/feed/ui/widgets/post/feed_post_widget.dart
··· 2 2 import 'package:atproto/core.dart'; 3 3 import 'package:auto_route/auto_route.dart'; 4 4 import 'package:flutter/material.dart'; 5 + import 'package:flutter/services.dart'; 5 6 import 'package:flutter_riverpod/flutter_riverpod.dart'; 6 7 import 'package:sparksocial/src/core/network/atproto/data/models/feed_models.dart'; 7 8 import 'package:sparksocial/src/core/routing/app_router.dart'; ··· 75 76 if (isCurrentlyLiked) { 76 77 return; 77 78 } 79 + 80 + // Haptic feedback for the like action 81 + HapticFeedback.mediumImpact(); 78 82 79 83 // Start heart animation 80 84 setState(() {
+7 -1
lib/src/features/messages/ui/widgets/message_input.dart
··· 1 1 import 'package:fluentui_system_icons/fluentui_system_icons.dart'; 2 2 import 'package:flutter/material.dart'; 3 + import 'package:flutter/services.dart'; 3 4 import 'package:flutter_riverpod/flutter_riverpod.dart'; 4 5 import 'package:image_picker/image_picker.dart'; 5 6 import 'package:sparksocial/src/core/ui/foundation/colors.dart'; ··· 77 78 Container( 78 79 decoration: const BoxDecoration(color: AppColors.primary, shape: BoxShape.circle), 79 80 child: IconButton( 80 - onPressed: isLoading ? null : onSend, 81 + onPressed: isLoading 82 + ? null 83 + : () { 84 + HapticFeedback.mediumImpact(); 85 + onSend(); 86 + }, 81 87 icon: isLoading 82 88 ? const SizedBox( 83 89 width: 16,
+59 -51
pubspec.lock
··· 93 93 dependency: "direct main" 94 94 description: 95 95 name: atproto 96 - sha256: "33a8355a7eee37c87ac08242911693a6037ebb0a39cde8f6a7cc52e09324c4f9" 96 + sha256: "160da2b0bc9207336aee4be8bf67a801f4eb2d7e7574550b2ab8e6bbac8728d4" 97 97 url: "https://pub.dev" 98 98 source: hosted 99 - version: "1.2.4" 99 + version: "1.3.0" 100 100 atproto_core: 101 101 dependency: "direct main" 102 102 description: 103 103 name: atproto_core 104 - sha256: "0f060b31745d01bcf73e8a25fc1c24ecf14dc78039d59a526ae9d7653f4f8fe7" 104 + sha256: d8938e1fbde4eb7cea57129b8c2e0ec1e680e0197a5e46bae49f8e3d85aa36f4 105 105 url: "https://pub.dev" 106 106 source: hosted 107 - version: "1.0.7" 107 + version: "1.1.0" 108 108 atproto_oauth: 109 109 dependency: transitive 110 110 description: ··· 213 213 dependency: "direct main" 214 214 description: 215 215 name: bluesky 216 - sha256: eea4944e15fca6c72838cdfcd1ed440a4da450e3f97d0f420c80c63229bcdddf 216 + sha256: "37b970b31b4b4b7ba0a6416f11133005854ae409f452e0d90266f465e35f33ae" 217 217 url: "https://pub.dev" 218 218 source: hosted 219 - version: "1.2.6" 219 + version: "1.3.0" 220 220 boolean_selector: 221 221 dependency: transitive 222 222 description: ··· 325 325 dependency: transitive 326 326 description: 327 327 name: camera_avfoundation 328 - sha256: "035b90c1e33c2efad7548f402572078f6e514d4f82be0a315cd6c6af7e855aa8" 328 + sha256: "087a9fadef20325cb246b4c13344a3ce8e408acfc3e0c665ebff0ec3144d7163" 329 329 url: "https://pub.dev" 330 330 source: hosted 331 - version: "0.9.22+6" 331 + version: "0.9.22+8" 332 332 camera_platform_interface: 333 333 dependency: transitive 334 334 description: ··· 341 341 dependency: transitive 342 342 description: 343 343 name: camera_web 344 - sha256: "3bc7bb1657a0f29c34116453c5d5e528c23efcf5e75aac0a3387cf108040bf65" 344 + sha256: "57f49a635c8bf249d07fb95eb693d7e4dda6796dedb3777f9127fb54847beba7" 345 345 url: "https://pub.dev" 346 346 source: hosted 347 - version: "0.3.5+2" 347 + version: "0.3.5+3" 348 348 carousel_slider: 349 349 dependency: "direct main" 350 350 description: ··· 405 405 dependency: transitive 406 406 description: 407 407 name: code_builder 408 - sha256: "11654819532ba94c34de52ff5feb52bd81cba1de00ef2ed622fd50295f9d4243" 408 + sha256: "6a6cab2ba4680d6423f34a9b972a4c9a94ebe1b62ecec4e1a1f2cba91fd1319d" 409 409 url: "https://pub.dev" 410 410 source: hosted 411 - version: "4.11.0" 411 + version: "4.11.1" 412 412 collection: 413 413 dependency: "direct main" 414 414 description: ··· 525 525 dependency: transitive 526 526 description: 527 527 name: ffi 528 - sha256: "289279317b4b16eb2bb7e271abccd4bf84ec9bdcbe999e278a94b804f5630418" 528 + sha256: d07d37192dbf97461359c1518788f203b0c9102cfd2c35a716b823741219542c 529 529 url: "https://pub.dev" 530 530 source: hosted 531 - version: "2.1.4" 531 + version: "2.1.5" 532 532 file: 533 533 dependency: transitive 534 534 description: ··· 610 610 dependency: "direct main" 611 611 description: 612 612 name: flutter_dotenv 613 - sha256: b7c7be5cd9f6ef7a78429cabd2774d3c4af50e79cb2b7593e3d5d763ef95c61b 613 + sha256: d4130c4a43e0b13fefc593bc3961f2cb46e30cb79e253d4a526b1b5d24ae1ce4 614 614 url: "https://pub.dev" 615 615 source: hosted 616 - version: "5.2.1" 616 + version: "6.0.0" 617 617 flutter_launcher_icons: 618 618 dependency: "direct dev" 619 619 description: ··· 655 655 dependency: "direct main" 656 656 description: 657 657 name: flutter_secure_storage 658 - sha256: "9cad52d75ebc511adfae3d447d5d13da15a55a92c9410e50f67335b6d21d16ea" 658 + sha256: da922f2aab2d733db7e011a6bcc4a825b844892d4edd6df83ff156b09a9b2e40 659 659 url: "https://pub.dev" 660 660 source: hosted 661 - version: "9.2.4" 662 - flutter_secure_storage_linux: 661 + version: "10.0.0" 662 + flutter_secure_storage_darwin: 663 663 dependency: transitive 664 664 description: 665 - name: flutter_secure_storage_linux 666 - sha256: be76c1d24a97d0b98f8b54bce6b481a380a6590df992d0098f868ad54dc8f688 665 + name: flutter_secure_storage_darwin 666 + sha256: "8878c25136a79def1668c75985e8e193d9d7d095453ec28730da0315dc69aee3" 667 667 url: "https://pub.dev" 668 668 source: hosted 669 - version: "1.2.3" 670 - flutter_secure_storage_macos: 669 + version: "0.2.0" 670 + flutter_secure_storage_linux: 671 671 dependency: transitive 672 672 description: 673 - name: flutter_secure_storage_macos 674 - sha256: "6c0a2795a2d1de26ae202a0d78527d163f4acbb11cde4c75c670f3a0fc064247" 673 + name: flutter_secure_storage_linux 674 + sha256: "2b5c76dce569ab752d55a1cee6a2242bcc11fdba927078fb88c503f150767cda" 675 675 url: "https://pub.dev" 676 676 source: hosted 677 - version: "3.1.3" 677 + version: "3.0.0" 678 678 flutter_secure_storage_platform_interface: 679 679 dependency: transitive 680 680 description: 681 681 name: flutter_secure_storage_platform_interface 682 - sha256: cf91ad32ce5adef6fba4d736a542baca9daf3beac4db2d04be350b87f69ac4a8 682 + sha256: "8ceea1223bee3c6ac1a22dabd8feefc550e4729b3675de4b5900f55afcb435d6" 683 683 url: "https://pub.dev" 684 684 source: hosted 685 - version: "1.1.2" 685 + version: "2.0.1" 686 686 flutter_secure_storage_web: 687 687 dependency: transitive 688 688 description: 689 689 name: flutter_secure_storage_web 690 - sha256: f4ebff989b4f07b2656fb16b47852c0aab9fed9b4ec1c70103368337bc1886a9 690 + sha256: "6a1137df62b84b54261dca582c1c09ea72f4f9a4b2fcee21b025964132d5d0c3" 691 691 url: "https://pub.dev" 692 692 source: hosted 693 - version: "1.2.1" 693 + version: "2.1.0" 694 694 flutter_secure_storage_windows: 695 695 dependency: transitive 696 696 description: 697 697 name: flutter_secure_storage_windows 698 - sha256: b20b07cb5ed4ed74fc567b78a72936203f587eba460af1df11281c9326cd3709 698 + sha256: "3b7c8e068875dfd46719ff57c90d8c459c87f2302ed6b00ff006b3c9fcad1613" 699 699 url: "https://pub.dev" 700 700 source: hosted 701 - version: "3.1.2" 701 + version: "4.1.0" 702 702 flutter_svg: 703 703 dependency: "direct main" 704 704 description: ··· 753 753 dependency: "direct main" 754 754 description: 755 755 name: fvp 756 - sha256: b0589714775781cec707daa34fcfe6131dc571690c95be8cd7ebe437df0e9248 756 + sha256: e03c4ba02c367cde8610c09325d085c9b1efe4f7d98a563950993a1fee17a28b 757 757 url: "https://pub.dev" 758 758 source: hosted 759 - version: "0.35.1" 759 + version: "0.35.2" 760 760 get_it: 761 761 dependency: "direct main" 762 762 description: 763 763 name: get_it 764 - sha256: ae78de7c3f2304b8d81f2bb6e320833e5e81de942188542328f074978cc0efa9 764 + sha256: "1d648d2dd2047d7f7450d5727ca24ee435f240385753d90b49650e3cdff32e56" 765 765 url: "https://pub.dev" 766 766 source: hosted 767 - version: "8.3.0" 767 + version: "9.2.0" 768 768 glob: 769 769 dependency: transitive 770 770 description: ··· 777 777 dependency: "direct main" 778 778 description: 779 779 name: google_fonts 780 - sha256: ba03d03bcaa2f6cb7bd920e3b5027181db75ab524f8891c8bc3aa603885b8055 780 + sha256: eefe5ee217f331627d8bbcf01f91b21c730bf66e225d6dc8a148370b0819168d 781 781 url: "https://pub.dev" 782 782 source: hosted 783 - version: "6.3.3" 783 + version: "7.0.0" 784 784 gradient_borders: 785 785 dependency: "direct main" 786 786 description: ··· 857 857 dependency: "direct main" 858 858 description: 859 859 name: image 860 - sha256: "4e973fcf4caae1a4be2fa0a13157aa38a8f9cb049db6529aa00b4d71abc4d928" 860 + sha256: "492bd52f6c4fbb6ee41f781ff27765ce5f627910e1e0cbecfa3d9add5562604c" 861 861 url: "https://pub.dev" 862 862 source: hosted 863 - version: "4.5.4" 863 + version: "4.7.2" 864 864 image_picker: 865 865 dependency: "direct main" 866 866 description: ··· 953 953 dependency: transitive 954 954 description: 955 955 name: js 956 - sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3 956 + sha256: "53385261521cc4a0c4658fd0ad07a7d14591cf8fc33abbceae306ddb974888dc" 957 957 url: "https://pub.dev" 958 958 source: hosted 959 - version: "0.6.7" 959 + version: "0.7.2" 960 960 json_annotation: 961 961 dependency: "direct main" 962 962 description: ··· 1001 1001 dependency: transitive 1002 1002 description: 1003 1003 name: lean_builder 1004 - sha256: f3ddb3b2c29285a726d739f3eaa4877a2478068f975b51231d032711efbc02d8 1004 + sha256: "6af3cfbf34400eb14b89fe20111e5981e7083362f00ea10b9ed2a6e833250d76" 1005 1005 url: "https://pub.dev" 1006 1006 source: hosted 1007 - version: "0.1.4" 1007 + version: "0.1.6" 1008 1008 lints: 1009 1009 dependency: transitive 1010 1010 description: ··· 1069 1069 url: "https://pub.dev" 1070 1070 source: hosted 1071 1071 version: "1.0.2" 1072 + nanoid: 1073 + dependency: transitive 1074 + description: 1075 + name: nanoid 1076 + sha256: be3f8752d9046c825df2f3914195151eb876f3ad64b9d833dd0b799b77b8759e 1077 + url: "https://pub.dev" 1078 + source: hosted 1079 + version: "1.0.0" 1072 1080 nested: 1073 1081 dependency: transitive 1074 1082 description: ··· 1233 1241 dependency: "direct main" 1234 1242 description: 1235 1243 name: posthog_flutter 1236 - sha256: "93d26162898320a21c444732bab21be8f53690e70fd991e4fbbd90ac6f69b753" 1244 + sha256: "134457a6fc2b47238750d077449ca40eaede5f9d5008ad4dfc872ffee9e04489" 1237 1245 url: "https://pub.dev" 1238 1246 source: hosted 1239 - version: "5.9.1" 1247 + version: "5.11.0" 1240 1248 pro_image_editor: 1241 1249 dependency: "direct main" 1242 1250 description: ··· 1250 1258 description: 1251 1259 path: "." 1252 1260 ref: dev 1253 - resolved-ref: c7ad41b13b160e4a8b7a5b9a24efa83a0972fe69 1261 + resolved-ref: f8c4678fe76ad8984fc03eeb0e1a45f6359fdc5b 1254 1262 url: "https://github.com/sprksocial/pro_video_editor.git" 1255 1263 source: git 1256 1264 version: "0.3.0" ··· 1719 1727 dependency: transitive 1720 1728 description: 1721 1729 name: video_player_android 1722 - sha256: d74b66f283afff135d5be0ceccca2ca74dff7df1e9b1eaca6bd4699875d3ae60 1730 + sha256: ee4fd520b0cafa02e4a867a0f882092e727cdaa1a2d24762171e787f8a502b0a 1723 1731 url: "https://pub.dev" 1724 1732 source: hosted 1725 - version: "2.8.22" 1733 + version: "2.9.1" 1726 1734 video_player_avfoundation: 1727 1735 dependency: transitive 1728 1736 description: 1729 1737 name: video_player_avfoundation 1730 - sha256: e4d33b79a064498c6eb3a6a492b6a5012573d4943c28d566caf1a6c0840fe78d 1738 + sha256: d1eb970495a76abb35e5fa93ee3c58bd76fb6839e2ddf2fbb636674f2b971dd4 1731 1739 url: "https://pub.dev" 1732 1740 source: hosted 1733 - version: "2.8.8" 1741 + version: "2.8.9" 1734 1742 video_player_platform_interface: 1735 1743 dependency: transitive 1736 1744 description:
+11 -11
pubspec.yaml
··· 15 15 sdk: flutter 16 16 flutter_localizations: 17 17 sdk: flutter 18 - flutter_dotenv: ^5.1.0 18 + flutter_dotenv: ^6.0.0 19 19 cupertino_icons: ^1.0.8 20 20 cached_network_image: ^3.3.1 21 21 camera: ^0.11.1 22 22 path_provider: ^2.1.2 23 23 flutter_svg: ^2.2.0 24 - atproto: ^1.2.4 25 - bluesky: ^1.2.6 24 + atproto: ^1.3.0 25 + bluesky: ^1.3.0 26 26 http: ^1.2.0 27 27 url_launcher: ^6.2.5 28 28 shared_preferences: ^2.5.3 29 - fvp: ^0.35.1 29 + fvp: ^0.35.2 30 30 fluentui_system_icons: ^1.1.273 31 31 image_picker: ^1.0.7 32 32 path: ^1.9.1 33 - image: ^4.5.4 33 + image: ^4.7.2 34 34 flutter_cache_manager: ^3.3.1 35 35 synchronized: ^3.1.0 36 36 flutter_riverpod: ^3.0.3 ··· 38 38 freezed: ^3.2.3 39 39 freezed_annotation: ^3.1.0 40 40 json_annotation: ^4.9.0 41 - get_it: ^8.0.3 41 + get_it: ^9.2.0 42 42 auto_route: ^10.1.0+1 43 - flutter_secure_storage: ^9.2.4 44 - atproto_core: ^1.0.7 43 + flutter_secure_storage: ^10.0.0 44 + atproto_core: ^1.1.0 45 45 sqflite: ^2.4.2 46 46 pool: ^1.5.0 47 47 collection: ^1.19.1 ··· 56 56 path: fonts 57 57 assets: 58 58 path: assets 59 - posthog_flutter: ^5.6.0 59 + posthog_flutter: ^5.11.0 60 60 pro_image_editor: ^12.0.0-beta.5 61 - google_fonts: ^6.3.2 61 + google_fonts: ^7.0.0 62 62 flutter_colorpicker: ^1.1.0 63 63 64 64 pro_video_editor: ··· 74 74 flutter_test: 75 75 sdk: flutter 76 76 flutter_lints: ^6.0.0 77 - build_runner: ^2.5.4 77 + build_runner: ^2.10.4 78 78 riverpod_generator: ^3.0.3 79 79 json_serializable: ^6.7.1 80 80 auto_route_generator: ^10.2.3
+2 -2
widgetbook/macos/Flutter/GeneratedPluginRegistrant.swift
··· 7 7 8 8 import audioplayers_darwin 9 9 import file_selector_macos 10 - import flutter_secure_storage_macos 10 + import flutter_secure_storage_darwin 11 11 import fvp 12 12 import package_info_plus 13 13 import path_provider_foundation ··· 22 22 func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { 23 23 AudioplayersDarwinPlugin.register(with: registry.registrar(forPlugin: "AudioplayersDarwinPlugin")) 24 24 FileSelectorPlugin.register(with: registry.registrar(forPlugin: "FileSelectorPlugin")) 25 - FlutterSecureStoragePlugin.register(with: registry.registrar(forPlugin: "FlutterSecureStoragePlugin")) 25 + FlutterSecureStorageDarwinPlugin.register(with: registry.registrar(forPlugin: "FlutterSecureStorageDarwinPlugin")) 26 26 FvpPlugin.register(with: registry.registrar(forPlugin: "FvpPlugin")) 27 27 FPPPackageInfoPlusPlugin.register(with: registry.registrar(forPlugin: "FPPPackageInfoPlusPlugin")) 28 28 PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin"))