diff --git a/example/android/app/build.gradle b/example/android/app/build.gradle index 0f6a5e5..1cb14eb 100644 --- a/example/android/app/build.gradle +++ b/example/android/app/build.gradle @@ -26,23 +26,27 @@ apply plugin: 'kotlin-android' apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" android { - compileSdkVersion 28 + compileSdkVersion 34 + namespace "com.example.example" sourceSets { main.java.srcDirs += 'src/main/kotlin' } - - lintOptions { - disable 'InvalidPackage' + compileOptions { + sourceCompatibility JavaVersion.VERSION_11 + targetCompatibility JavaVersion.VERSION_11 + } + kotlinOptions { + jvmTarget = '11' } defaultConfig { - // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). applicationId "com.example.example" - minSdkVersion 16 - targetSdkVersion 28 + minSdkVersion flutter.minSdkVersion + targetSdkVersion flutter.targetSdkVersion versionCode flutterVersionCode.toInteger() versionName flutterVersionName + multiDexEnabled true testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } diff --git a/example/android/app/src/main/AndroidManifest.xml b/example/android/app/src/main/AndroidManifest.xml index 55ca830..09fe88b 100644 --- a/example/android/app/src/main/AndroidManifest.xml +++ b/example/android/app/src/main/AndroidManifest.xml @@ -1,34 +1,22 @@ - - - _HomeScreenState(); @@ -30,7 +27,7 @@ class _HomeScreenState extends State { floatingActionButton: FloatingActionButton( child: Icon(Icons.search), onPressed: () { - _controller.currentState.goToPage(2); + _controller.currentState?.goToPage(2); }, ), ); diff --git a/example/pubspec.lock b/example/pubspec.lock index 11f1b91..259449e 100644 --- a/example/pubspec.lock +++ b/example/pubspec.lock @@ -5,51 +5,58 @@ packages: dependency: transitive description: name: async - url: "https://pub.dartlang.org" + sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c" + url: "https://pub.dev" source: hosted - version: "2.4.1" + version: "2.11.0" boolean_selector: dependency: transitive description: name: boolean_selector - url: "https://pub.dartlang.org" + sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66" + url: "https://pub.dev" source: hosted - version: "2.0.0" - charcode: + version: "2.1.1" + characters: dependency: transitive description: - name: charcode - url: "https://pub.dartlang.org" + name: characters + sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605" + url: "https://pub.dev" source: hosted - version: "1.1.3" + version: "1.3.0" clock: dependency: transitive description: name: clock - url: "https://pub.dartlang.org" + sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf + url: "https://pub.dev" source: hosted - version: "1.0.1" + version: "1.1.1" collection: dependency: transitive description: name: collection - url: "https://pub.dartlang.org" + sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a + url: "https://pub.dev" source: hosted - version: "1.14.12" + version: "1.18.0" cupertino_icons: dependency: "direct main" description: name: cupertino_icons - url: "https://pub.dartlang.org" + sha256: ba631d1c7f7bef6b729a622b7b752645a2d076dba9976925b8f25725a30e1ee6 + url: "https://pub.dev" source: hosted - version: "0.1.2" + version: "1.0.8" fake_async: dependency: transitive description: name: fake_async - url: "https://pub.dartlang.org" + sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78" + url: "https://pub.dev" source: hosted - version: "1.1.0" + version: "1.3.1" flutter: dependency: "direct main" description: flutter @@ -60,20 +67,54 @@ packages: description: flutter source: sdk version: "0.0.0" + leak_tracker: + dependency: transitive + description: + name: leak_tracker + sha256: "3f87a60e8c63aecc975dda1ceedbc8f24de75f09e4856ea27daf8958f2f0ce05" + url: "https://pub.dev" + source: hosted + version: "10.0.5" + leak_tracker_flutter_testing: + dependency: transitive + description: + name: leak_tracker_flutter_testing + sha256: "932549fb305594d82d7183ecd9fa93463e9914e1b67cacc34bc40906594a1806" + url: "https://pub.dev" + source: hosted + version: "3.0.5" + leak_tracker_testing: + dependency: transitive + description: + name: leak_tracker_testing + sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3" + url: "https://pub.dev" + source: hosted + version: "3.0.1" matcher: dependency: transitive description: name: matcher - url: "https://pub.dartlang.org" + sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb + url: "https://pub.dev" + source: hosted + version: "0.12.16+1" + material_color_utilities: + dependency: transitive + description: + name: material_color_utilities + sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec + url: "https://pub.dev" source: hosted - version: "0.12.6" + version: "0.11.1" meta: dependency: transitive description: name: meta - url: "https://pub.dartlang.org" + sha256: bdb68674043280c3428e9ec998512fb681678676b3c54e773629ffe74419f8c7 + url: "https://pub.dev" source: hosted - version: "1.1.8" + version: "1.15.0" page_turn: dependency: "direct dev" description: @@ -85,9 +126,10 @@ packages: dependency: transitive description: name: path - url: "https://pub.dartlang.org" + sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af" + url: "https://pub.dev" source: hosted - version: "1.7.0" + version: "1.9.0" sky_engine: dependency: transitive description: flutter @@ -97,57 +139,66 @@ packages: dependency: transitive description: name: source_span - url: "https://pub.dartlang.org" + sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c" + url: "https://pub.dev" source: hosted - version: "1.7.0" + version: "1.10.0" stack_trace: dependency: transitive description: name: stack_trace - url: "https://pub.dartlang.org" + sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b" + url: "https://pub.dev" source: hosted - version: "1.9.3" + version: "1.11.1" stream_channel: dependency: transitive description: name: stream_channel - url: "https://pub.dartlang.org" + sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7 + url: "https://pub.dev" source: hosted - version: "2.0.0" + version: "2.1.2" string_scanner: dependency: transitive description: name: string_scanner - url: "https://pub.dartlang.org" + sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde" + url: "https://pub.dev" source: hosted - version: "1.0.5" + version: "1.2.0" term_glyph: dependency: transitive description: name: term_glyph - url: "https://pub.dartlang.org" + sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84 + url: "https://pub.dev" source: hosted - version: "1.1.0" + version: "1.2.1" test_api: dependency: transitive description: name: test_api - url: "https://pub.dartlang.org" + sha256: "5b8a98dafc4d5c4c9c72d8b31ab2b23fc13422348d2997120294d3bac86b4ddb" + url: "https://pub.dev" source: hosted - version: "0.2.15" - typed_data: + version: "0.7.2" + vector_math: dependency: transitive description: - name: typed_data - url: "https://pub.dartlang.org" + name: vector_math + sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803" + url: "https://pub.dev" source: hosted - version: "1.1.6" - vector_math: + version: "2.1.4" + vm_service: dependency: transitive description: - name: vector_math - url: "https://pub.dartlang.org" + name: vm_service + sha256: "5c5f338a667b4c644744b661f309fb8080bb94b18a7e91ef1dbd343bed00ed6d" + url: "https://pub.dev" source: hosted - version: "2.0.8" + version: "14.2.5" sdks: - dart: ">=2.6.0 <3.0.0" + dart: ">=3.5.3 <4.0.0" + flutter: ">=3.18.0-18.0.pre.54" diff --git a/example/pubspec.yaml b/example/pubspec.yaml index 02cb41b..e7816be 100644 --- a/example/pubspec.yaml +++ b/example/pubspec.yaml @@ -4,7 +4,7 @@ publish_to: 'none' version: 1.0.0+1 environment: - sdk: ">=2.2.2 <3.0.0" + sdk: ^3.5.3 dependencies: flutter: @@ -12,7 +12,7 @@ dependencies: # The following adds the Cupertino Icons font to your application. # Use with the CupertinoIcons class for iOS style icons. - cupertino_icons: ^0.1.2 + cupertino_icons: ^1.0.8 dev_dependencies: flutter_test: diff --git a/lib/page_turn.dart b/lib/page_turn.dart index 077987f..b65bf38 100644 --- a/lib/page_turn.dart +++ b/lib/page_turn.dart @@ -1,20 +1,19 @@ import 'package:flutter/material.dart'; -import 'package:flutter/rendering.dart'; -import 'package:flutter/widgets.dart'; import 'src/builders/index.dart'; class PageTurn extends StatefulWidget { const PageTurn({ - Key key, + super.key, this.duration = const Duration(milliseconds: 450), this.cutoff = 0.6, this.backgroundColor = const Color(0xFFFFFFCC), - @required this.children, + required this.children, this.initialIndex = 0, - this.lastPage, + required this.lastPage, this.showDragCutoff = false, - }) : super(key: key); + this.onPageChanged, + }); final Color backgroundColor; final List children; @@ -23,6 +22,7 @@ class PageTurn extends StatefulWidget { final Widget lastPage; final bool showDragCutoff; final double cutoff; + final ValueChanged? onPageChanged; @override PageTurnState createState() => PageTurnState(); @@ -33,7 +33,7 @@ class PageTurnState extends State with TickerProviderStateMixin { List pages = []; List _controllers = []; - bool _isForward; + bool? _isForward; @override void didUpdateWidget(PageTurn oldWidget) { @@ -84,7 +84,7 @@ class PageTurnState extends State with TickerProviderStateMixin { pageNumber = widget.initialIndex; } - bool get _isLastPage => pages != null && (pages.length - 1) == pageNumber; + bool get _isLastPage => (pages.length - 1) == pageNumber; bool get _isFirstPage => pageNumber == 0; @@ -97,7 +97,8 @@ class PageTurnState extends State with TickerProviderStateMixin { _isForward = true; } } - if (_isForward || pageNumber == 0) { + + if (_isForward == true || pageNumber == 0) { _controllers[pageNumber].value += _ratio; } else { _controllers[pageNumber - 1].value += _ratio; @@ -105,26 +106,23 @@ class PageTurnState extends State with TickerProviderStateMixin { } Future _onDragFinish() async { - if (_isForward != null) { - if (_isForward) { - if (!_isLastPage && - _controllers[pageNumber].value <= (widget.cutoff + 0.15)) { - await nextPage(); - } else { - await _controllers[pageNumber].forward(); - } + if (_isForward == true) { + if (!_isLastPage && + _controllers[pageNumber].value <= (widget.cutoff + 0.15)) { + await nextPage(); } else { - print( - 'Val:${_controllers[pageNumber - 1].value} -> ${widget.cutoff + 0.28}'); - if (!_isFirstPage && - _controllers[pageNumber - 1].value >= widget.cutoff) { - await previousPage(); + await _controllers[pageNumber].forward(); + } + } else { + if (!_isFirstPage) {} + if (!_isFirstPage && + _controllers[pageNumber - 1].value >= widget.cutoff) { + await previousPage(); + } else { + if (_isFirstPage) { + await _controllers[pageNumber].forward(); } else { - if (_isFirstPage) { - await _controllers[pageNumber].forward(); - } else { - await _controllers[pageNumber - 1].reverse(); - } + await _controllers[pageNumber - 1].reverse(); } } } @@ -132,34 +130,34 @@ class PageTurnState extends State with TickerProviderStateMixin { } Future nextPage() async { - print('Next Page..'); await _controllers[pageNumber].reverse(); if (mounted) setState(() { pageNumber++; }); + widget.onPageChanged?.call(pageNumber); } Future previousPage() async { - print('Previous Page..'); await _controllers[pageNumber - 1].forward(); if (mounted) setState(() { pageNumber--; }); + widget.onPageChanged?.call(pageNumber); } Future goToPage(int index) async { - print('Navigate Page ${index + 1}..'); - if (mounted) + if (mounted) { setState(() { pageNumber = index; }); + widget.onPageChanged?.call(pageNumber); + } for (var i = 0; i < _controllers.length; i++) { if (i == index) { _controllers[i].forward(); } else if (i < index) { - // _controllers[i].value = 0; _controllers[i].reverse(); } else { if (_controllers[i].status == AnimationStatus.reverse) @@ -180,14 +178,10 @@ class PageTurnState extends State with TickerProviderStateMixin { child: Stack( fit: StackFit.expand, children: [ - if (widget?.lastPage != null) ...[ + ...[ widget.lastPage, ], - if (pages != null) - ...pages - else ...[ - Container(child: CircularProgressIndicator()), - ], + ...pages, Positioned.fill( child: Flex( direction: Axis.horizontal, diff --git a/lib/src/builders/image.dart b/lib/src/builders/image.dart index 109ac13..cfa062f 100644 --- a/lib/src/builders/image.dart +++ b/lib/src/builders/image.dart @@ -4,26 +4,26 @@ import '../effects/index.dart'; class PageTurnImage extends StatefulWidget { const PageTurnImage({ - Key key, - this.amount, - this.image, + super.key, + required this.amount, + required this.image, this.backgroundColor = const Color(0xFFFFFFCC), - }) : super(key: key); + }); final Animation amount; final ImageProvider image; final Color backgroundColor; @override - _PageTurnImageState createState() => _PageTurnImageState(); + State createState() => _PageTurnImageState(); } class _PageTurnImageState extends State { - ImageStream _imageStream; - ImageInfo _imageInfo; + ImageStream? _imageStream; + ImageInfo? _imageInfo; bool _isListeningToStream = false; - ImageStreamListener _imageListener; + late final ImageStreamListener _imageListener; @override void initState() { @@ -39,13 +39,13 @@ class _PageTurnImageState extends State { @override void didChangeDependencies() { + super.didChangeDependencies(); _resolveImage(); if (TickerMode.of(context)) { _listenToStream(); } else { _stopListeningToStream(); } - super.didChangeDependencies(); } @override @@ -58,14 +58,12 @@ class _PageTurnImageState extends State { @override void reassemble() { - _resolveImage(); // in case the image cache was flushed super.reassemble(); + _resolveImage(); // In case the image cache was flushed } void _resolveImage() { - final ImageStream newStream = - widget.image.resolve(createLocalImageConfiguration(context)); - assert(newStream != null); + final ImageStream newStream = widget.image.resolve(createLocalImageConfiguration(context)); _updateSourceStream(newStream); } @@ -73,27 +71,29 @@ class _PageTurnImageState extends State { setState(() => _imageInfo = imageInfo); } - // Updates _imageStream to newStream, and moves the stream listener - // registration from the old stream to the new stream (if a listener was - // registered). void _updateSourceStream(ImageStream newStream) { - if (_imageStream?.key == newStream?.key) return; + if (_imageStream?.key == newStream.key) return; - if (_isListeningToStream) _imageStream.removeListener(_imageListener); + if (_isListeningToStream) { + _imageStream?.removeListener(_imageListener); + } _imageStream = newStream; - if (_isListeningToStream) _imageStream.addListener(_imageListener); + + if (_isListeningToStream) { + _imageStream?.addListener(_imageListener); + } } void _listenToStream() { if (_isListeningToStream) return; - _imageStream.addListener(_imageListener); + _imageStream?.addListener(_imageListener); _isListeningToStream = true; } void _stopListeningToStream() { if (!_isListeningToStream) return; - _imageStream.removeListener(_imageListener); + _imageStream?.removeListener(_imageListener); _isListeningToStream = false; } @@ -103,7 +103,7 @@ class _PageTurnImageState extends State { return CustomPaint( painter: PageTurnEffect( amount: widget.amount, - image: _imageInfo.image, + image: _imageInfo!.image, backgroundColor: widget.backgroundColor, ), size: Size.infinite, diff --git a/lib/src/builders/widget.dart b/lib/src/builders/widget.dart index 6fb50a1..92450d3 100644 --- a/lib/src/builders/widget.dart +++ b/lib/src/builders/widget.dart @@ -7,23 +7,23 @@ import '../effects/index.dart'; class PageTurnWidget extends StatefulWidget { const PageTurnWidget({ - Key key, - this.amount, + super.key, + required this.amount, + required this.child, this.backgroundColor = const Color(0xFFFFFFCC), - this.child, - }) : super(key: key); + }); final Animation amount; final Color backgroundColor; final Widget child; @override - _PageTurnWidgetState createState() => _PageTurnWidgetState(); + State createState() => _PageTurnWidgetState(); } class _PageTurnWidgetState extends State { final _boundaryKey = GlobalKey(); - ui.Image _image; + ui.Image? _image; @override void didUpdateWidget(PageTurnWidget oldWidget) { @@ -36,12 +36,15 @@ class _PageTurnWidgetState extends State { void _captureImage(Duration timeStamp) async { final pixelRatio = MediaQuery.of(context).devicePixelRatio; final boundary = - _boundaryKey.currentContext.findRenderObject() as RenderRepaintBoundary; + _boundaryKey.currentContext?.findRenderObject() as RenderRepaintBoundary?; + if (boundary == null) return; + if (boundary.debugNeedsPaint) { await Future.delayed(const Duration(milliseconds: 20)); return _captureImage(timeStamp); } final image = await boundary.toImage(pixelRatio: pixelRatio); + if (!mounted) return; setState(() => _image = image); } @@ -51,7 +54,7 @@ class _PageTurnWidgetState extends State { return CustomPaint( painter: PageTurnEffect( amount: widget.amount, - image: _image, + image: _image!, backgroundColor: widget.backgroundColor, ), size: Size.infinite, @@ -62,7 +65,7 @@ class _PageTurnWidgetState extends State { builder: (BuildContext context, BoxConstraints constraints) { final size = constraints.biggest; return Stack( - overflow: Overflow.clip, + clipBehavior: Clip.none, // Instead of overflow children: [ Positioned( left: 1 + size.width, diff --git a/lib/src/effects/curl.dart b/lib/src/effects/curl.dart index 0c00e9f..73bccec 100644 --- a/lib/src/effects/curl.dart +++ b/lib/src/effects/curl.dart @@ -27,12 +27,11 @@ import 'package:flutter/material.dart'; class PageTurnEffect extends CustomPainter { PageTurnEffect({ - @required this.amount, - @required this.image, - this.backgroundColor, + required this.amount, + required this.image, + required this.backgroundColor, this.radius = 0.18, - }) : assert(amount != null && image != null && radius != null), - super(repaint: amount); + }) : super(repaint: amount); final Animation amount; final ui.Image image; @@ -55,9 +54,7 @@ class PageTurnEffect extends CustomPainter { final shadowSigma = Shadow.convertRadiusToSigma(8.0 + (32.0 * (1.0 - shadowXf))); final pageRect = Rect.fromLTRB(0.0, 0.0, w * shadowXf, h); - if (backgroundColor != null) { - c.drawRect(pageRect, Paint()..color = backgroundColor); - } + c.drawRect(pageRect, Paint()..color = backgroundColor); if (pos != 0) { c.drawRect( pageRect, diff --git a/pubspec.lock b/pubspec.lock index 4211cac..4838d6b 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -5,44 +5,50 @@ packages: dependency: transitive description: name: async - url: "https://pub.dartlang.org" + sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c" + url: "https://pub.dev" source: hosted - version: "2.4.1" + version: "2.11.0" boolean_selector: dependency: transitive description: name: boolean_selector - url: "https://pub.dartlang.org" + sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66" + url: "https://pub.dev" source: hosted - version: "2.0.0" - charcode: + version: "2.1.1" + characters: dependency: transitive description: - name: charcode - url: "https://pub.dartlang.org" + name: characters + sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605" + url: "https://pub.dev" source: hosted - version: "1.1.3" + version: "1.3.0" clock: dependency: transitive description: name: clock - url: "https://pub.dartlang.org" + sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf + url: "https://pub.dev" source: hosted - version: "1.0.1" + version: "1.1.1" collection: dependency: transitive description: name: collection - url: "https://pub.dartlang.org" + sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a + url: "https://pub.dev" source: hosted - version: "1.14.12" + version: "1.18.0" fake_async: dependency: transitive description: name: fake_async - url: "https://pub.dartlang.org" + sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78" + url: "https://pub.dev" source: hosted - version: "1.1.0" + version: "1.3.1" flutter: dependency: "direct main" description: flutter @@ -53,27 +59,62 @@ packages: description: flutter source: sdk version: "0.0.0" + leak_tracker: + dependency: transitive + description: + name: leak_tracker + sha256: "3f87a60e8c63aecc975dda1ceedbc8f24de75f09e4856ea27daf8958f2f0ce05" + url: "https://pub.dev" + source: hosted + version: "10.0.5" + leak_tracker_flutter_testing: + dependency: transitive + description: + name: leak_tracker_flutter_testing + sha256: "932549fb305594d82d7183ecd9fa93463e9914e1b67cacc34bc40906594a1806" + url: "https://pub.dev" + source: hosted + version: "3.0.5" + leak_tracker_testing: + dependency: transitive + description: + name: leak_tracker_testing + sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3" + url: "https://pub.dev" + source: hosted + version: "3.0.1" matcher: dependency: transitive description: name: matcher - url: "https://pub.dartlang.org" + sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb + url: "https://pub.dev" + source: hosted + version: "0.12.16+1" + material_color_utilities: + dependency: transitive + description: + name: material_color_utilities + sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec + url: "https://pub.dev" source: hosted - version: "0.12.6" + version: "0.11.1" meta: dependency: transitive description: name: meta - url: "https://pub.dartlang.org" + sha256: bdb68674043280c3428e9ec998512fb681678676b3c54e773629ffe74419f8c7 + url: "https://pub.dev" source: hosted - version: "1.1.8" + version: "1.15.0" path: dependency: transitive description: name: path - url: "https://pub.dartlang.org" + sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af" + url: "https://pub.dev" source: hosted - version: "1.7.0" + version: "1.9.0" sky_engine: dependency: transitive description: flutter @@ -83,57 +124,66 @@ packages: dependency: transitive description: name: source_span - url: "https://pub.dartlang.org" + sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c" + url: "https://pub.dev" source: hosted - version: "1.7.0" + version: "1.10.0" stack_trace: dependency: transitive description: name: stack_trace - url: "https://pub.dartlang.org" + sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b" + url: "https://pub.dev" source: hosted - version: "1.9.3" + version: "1.11.1" stream_channel: dependency: transitive description: name: stream_channel - url: "https://pub.dartlang.org" + sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7 + url: "https://pub.dev" source: hosted - version: "2.0.0" + version: "2.1.2" string_scanner: dependency: transitive description: name: string_scanner - url: "https://pub.dartlang.org" + sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde" + url: "https://pub.dev" source: hosted - version: "1.0.5" + version: "1.2.0" term_glyph: dependency: transitive description: name: term_glyph - url: "https://pub.dartlang.org" + sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84 + url: "https://pub.dev" source: hosted - version: "1.1.0" + version: "1.2.1" test_api: dependency: transitive description: name: test_api - url: "https://pub.dartlang.org" + sha256: "5b8a98dafc4d5c4c9c72d8b31ab2b23fc13422348d2997120294d3bac86b4ddb" + url: "https://pub.dev" source: hosted - version: "0.2.15" - typed_data: + version: "0.7.2" + vector_math: dependency: transitive description: - name: typed_data - url: "https://pub.dartlang.org" + name: vector_math + sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803" + url: "https://pub.dev" source: hosted - version: "1.1.6" - vector_math: + version: "2.1.4" + vm_service: dependency: transitive description: - name: vector_math - url: "https://pub.dartlang.org" + name: vm_service + sha256: "5c5f338a667b4c644744b661f309fb8080bb94b18a7e91ef1dbd343bed00ed6d" + url: "https://pub.dev" source: hosted - version: "2.0.8" + version: "14.2.5" sdks: - dart: ">=2.6.0 <3.0.0" + dart: ">=3.5.3 <4.0.0" + flutter: ">=3.18.0-18.0.pre.54" diff --git a/pubspec.yaml b/pubspec.yaml index b1147e7..78dd287 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,15 +1,11 @@ name: page_turn description: Page Turn Widget | Add a page turn effect to widgets in your app. version: 1.0.1 -authors: - - Flutter Community - - Simon Lightfoot - - Rody Davis homepage: https://github.com/fluttercommunity/page_turn maintainer: Rody Davis (@rodydavis) environment: - sdk: ">=2.2.2 <3.0.0" + sdk: ^3.5.3 dependencies: flutter: @@ -20,4 +16,5 @@ dev_dependencies: sdk: flutter flutter: + uses-material-design: true