From 88e8afeb2fa64f37f45fe220f8ecc6fef19a7300 Mon Sep 17 00:00:00 2001 From: Sasikumar Arumugam Date: Mon, 5 Apr 2021 19:31:25 +0530 Subject: [PATCH] FLUT-4313-Sample updated with null safety. --- README.md | 16 ++--- lib/main.dart | 50 +++++----------- pubspec.lock | 161 ++++++++++++-------------------------------------- pubspec.yaml | 9 +-- 4 files changed, 68 insertions(+), 168 deletions(-) diff --git a/README.md b/README.md index d9faea7..bc8798f 100644 --- a/README.md +++ b/README.md @@ -41,7 +41,7 @@ Row( highlightColor: Colors.lightGreen, onPressed: () { setState(() { - _controller.backward(); + _controller.backward!(); }); }, )), @@ -64,7 +64,7 @@ Row( highlightColor: Colors.lightGreen, onPressed: () { setState(() { - _controller.forward(); + _controller.forward!(); }); }, )), @@ -104,13 +104,13 @@ Using the `onViewChanged` callback of the date picker, you can get the mid date ```xml void viewChanged(DateRangePickerViewChangedArgs args) { - _startDate = (args.visibleDateRange.startDate - .difference(args.visibleDateRange.endDate) - .inDays); - var middleDate = (_startDate ~/ 2).toInt(); - midDate = args.visibleDateRange.startDate.add(Duration(days: middleDate)); + final DateTime visibleStartDate = args.visibleDateRange.startDate!; + final DateTime visibleEndDate = args.visibleDateRange.endDate!; + final int totalVisibleDays = (visibleStartDate.difference(visibleEndDate).inDays); + final DateTime midDate = + visibleStartDate.add(Duration(days: totalVisibleDays ~/ 2)); headerString = DateFormat('MMMM yyyy').format(midDate).toString(); - SchedulerBinding.instance.addPostFrameCallback((duration) { + SchedulerBinding.instance!.addPostFrameCallback((duration) { setState(() {}); }); } diff --git a/lib/main.dart b/lib/main.dart index 6cc9077..663524b 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -23,36 +23,17 @@ class HeaderCustomization extends StatefulWidget { } class _HeaderCustomizationState extends State { - DateRangePickerController _controller; - int _startDate; - String headerString; - DateTime midDate; - double width, cellWidth, height, cellHeight; - - @override - void initState() { - // TODO: implement initState - _controller = DateRangePickerController(); - _startDate = 0; - width = 0.0; - cellWidth = 0.0; - height = 0.0; - cellHeight = 0.0; - midDate = DateTime.now(); - headerString = ''; - super.initState(); - } + final DateRangePickerController _controller = DateRangePickerController(); + String headerString = ''; @override Widget build(BuildContext context) { - width = MediaQuery.of(context).size.width; - cellWidth = width / 9; - height = MediaQuery.of(context).size.height; - cellHeight = height / 17; + final double width = MediaQuery.of(context).size.width; + final double cellWidth = width / 9; return Scaffold( body: Column( - mainAxisAlignment: MainAxisAlignment.center, + mainAxisAlignment: MainAxisAlignment.center, children: [ Row( children: [ @@ -71,7 +52,7 @@ class _HeaderCustomizationState extends State { highlightColor: Colors.lightGreen, onPressed: () { setState(() { - _controller.backward(); + _controller.backward!(); }); }, )), @@ -94,7 +75,7 @@ class _HeaderCustomizationState extends State { highlightColor: Colors.lightGreen, onPressed: () { setState(() { - _controller.forward(); + _controller.forward!(); }); }, )), @@ -118,22 +99,23 @@ class _HeaderCustomizationState extends State { monthCellStyle: DateRangePickerMonthCellStyle( cellDecoration: BoxDecoration(color: Color(0xFF6fb98f)), leadingDatesDecoration: - BoxDecoration(color: Color(0xFF6fb98f)), + BoxDecoration(color: Color(0xFF6fb98f)), trailingDatesDecoration: - BoxDecoration(color: Color(0xFF6fb98f)))), + BoxDecoration(color: Color(0xFF6fb98f)))), ) ], )); } void viewChanged(DateRangePickerViewChangedArgs args) { - _startDate = (args.visibleDateRange.startDate - .difference(args.visibleDateRange.endDate) - .inDays); - var middleDate = (_startDate ~/ 2).toInt(); - midDate = args.visibleDateRange.startDate.add(Duration(days: middleDate)); + final DateTime visibleStartDate = args.visibleDateRange.startDate!; + final DateTime visibleEndDate = args.visibleDateRange.endDate!; + final int totalVisibleDays = + (visibleStartDate.difference(visibleEndDate).inDays); + final DateTime midDate = + visibleStartDate.add(Duration(days: totalVisibleDays ~/ 2)); headerString = DateFormat('MMMM yyyy').format(midDate).toString(); - SchedulerBinding.instance.addPostFrameCallback((duration) { + SchedulerBinding.instance!.addPostFrameCallback((duration) { setState(() {}); }); } diff --git a/pubspec.lock b/pubspec.lock index eeca8fe..93937f8 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -1,69 +1,62 @@ # Generated by pub # See https://dart.dev/tools/pub/glossary#lockfile packages: - archive: - dependency: transitive - description: - name: archive - url: "https://pub.dartlang.org" - source: hosted - version: "2.0.11" - args: - dependency: transitive - description: - name: args - url: "https://pub.dartlang.org" - source: hosted - version: "1.5.2" async: dependency: transitive description: name: async url: "https://pub.dartlang.org" source: hosted - version: "2.4.0" + version: "2.5.0" boolean_selector: dependency: transitive description: name: boolean_selector url: "https://pub.dartlang.org" source: hosted - version: "1.0.5" - charcode: + version: "2.1.0" + characters: dependency: transitive description: - name: charcode + name: characters url: "https://pub.dartlang.org" source: hosted - version: "1.1.2" - collection: + version: "1.1.0" + charcode: dependency: transitive description: - name: collection + name: charcode url: "https://pub.dartlang.org" source: hosted - version: "1.14.11" - convert: + version: "1.2.0" + clock: dependency: transitive description: - name: convert + name: clock url: "https://pub.dartlang.org" source: hosted - version: "2.1.1" - crypto: + version: "1.1.0" + collection: dependency: transitive description: - name: crypto + name: collection url: "https://pub.dartlang.org" source: hosted - version: "2.1.3" + version: "1.15.0" cupertino_icons: dependency: "direct main" description: name: cupertino_icons url: "https://pub.dartlang.org" source: hosted - version: "0.1.3" + version: "1.0.2" + fake_async: + dependency: transitive + description: + name: fake_async + url: "https://pub.dartlang.org" + source: hosted + version: "1.2.0" flutter: dependency: "direct main" description: flutter @@ -74,67 +67,34 @@ packages: description: flutter source: sdk version: "0.0.0" - flutter_web_plugins: - dependency: transitive - description: flutter - source: sdk - version: "0.0.0" - image: - dependency: transitive - description: - name: image - url: "https://pub.dartlang.org" - source: hosted - version: "2.1.4" intl: - dependency: "direct dev" + dependency: "direct main" description: name: intl url: "https://pub.dartlang.org" source: hosted - version: "0.16.1" + version: "0.17.0" matcher: dependency: transitive description: name: matcher url: "https://pub.dartlang.org" source: hosted - version: "0.12.6" + version: "0.12.10" meta: dependency: transitive description: name: meta url: "https://pub.dartlang.org" source: hosted - version: "1.1.8" + version: "1.3.0" path: dependency: transitive description: name: path url: "https://pub.dartlang.org" source: hosted - version: "1.6.4" - petitparser: - dependency: transitive - description: - name: petitparser - url: "https://pub.dartlang.org" - source: hosted - version: "2.4.0" - plugin_platform_interface: - dependency: transitive - description: - name: plugin_platform_interface - url: "https://pub.dartlang.org" - source: hosted - version: "1.0.2" - quiver: - dependency: transitive - description: - name: quiver - url: "https://pub.dartlang.org" - source: hosted - version: "2.0.5" + version: "1.8.0" sky_engine: dependency: transitive description: flutter @@ -146,112 +106,69 @@ packages: name: source_span url: "https://pub.dartlang.org" source: hosted - version: "1.5.5" + version: "1.8.1" stack_trace: dependency: transitive description: name: stack_trace url: "https://pub.dartlang.org" source: hosted - version: "1.9.3" + version: "1.10.0" stream_channel: dependency: transitive description: name: stream_channel url: "https://pub.dartlang.org" source: hosted - version: "2.0.0" + version: "2.1.0" string_scanner: dependency: transitive description: name: string_scanner url: "https://pub.dartlang.org" source: hosted - version: "1.0.5" + version: "1.1.0" syncfusion_flutter_core: dependency: transitive description: name: syncfusion_flutter_core url: "https://pub.dartlang.org" source: hosted - version: "18.1.36" + version: "19.1.54+1" syncfusion_flutter_datepicker: - dependency: "direct dev" + dependency: "direct main" description: name: syncfusion_flutter_datepicker url: "https://pub.dartlang.org" source: hosted - version: "18.1.36-beta" + version: "19.1.54-beta.1" term_glyph: dependency: transitive description: name: term_glyph url: "https://pub.dartlang.org" source: hosted - version: "1.1.0" + version: "1.2.0" test_api: dependency: transitive description: name: test_api url: "https://pub.dartlang.org" source: hosted - version: "0.2.15" + version: "0.2.19" typed_data: dependency: transitive description: name: typed_data url: "https://pub.dartlang.org" source: hosted - version: "1.1.6" - url_launcher: - dependency: transitive - description: - name: url_launcher - url: "https://pub.dartlang.org" - source: hosted - version: "5.4.2" - url_launcher_macos: - dependency: transitive - description: - name: url_launcher_macos - url: "https://pub.dartlang.org" - source: hosted - version: "0.0.1+4" - url_launcher_platform_interface: - dependency: transitive - description: - name: url_launcher_platform_interface - url: "https://pub.dartlang.org" - source: hosted - version: "1.0.6" - url_launcher_web: - dependency: transitive - description: - name: url_launcher_web - url: "https://pub.dartlang.org" - source: hosted - version: "0.1.1+1" - utf: - dependency: transitive - description: - name: utf - url: "https://pub.dartlang.org" - source: hosted - version: "0.9.0+5" + version: "1.3.0" vector_math: dependency: transitive description: name: vector_math url: "https://pub.dartlang.org" source: hosted - version: "2.0.8" - xml: - dependency: transitive - description: - name: xml - url: "https://pub.dartlang.org" - source: hosted - version: "3.5.0" + version: "2.1.0" sdks: - dart: ">=2.5.0 <3.0.0" - flutter: ">=1.12.8 <2.0.0" + dart: ">=2.12.0 <3.0.0" diff --git a/pubspec.yaml b/pubspec.yaml index 5680340..b977260 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -14,21 +14,22 @@ description: A new Flutter application. version: 1.0.0+1 environment: - sdk: ">=2.1.0 <3.0.0" + sdk: '>=2.12.0 <3.0.0' dependencies: flutter: sdk: flutter + syncfusion_flutter_datepicker: ^19.1.54-beta.1 + intl: ^0.17.0 + # 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.2 dev_dependencies: flutter_test: sdk: flutter - syncfusion_flutter_datepicker: ^18.1.36-beta - intl: ">=0.15.0 <0.17.0" # For information on the generic Dart part of this file, see the