Skip to content

Commit e413583

Browse files
committed
Null Safety Migration #1
*Run dart migrate. *Resolve warnings. *Manually migrate responsive_wrapper.dart.
1 parent a723d4a commit e413583

File tree

8 files changed

+264
-268
lines changed

8 files changed

+264
-268
lines changed

lib/responsive_grid.dart

Lines changed: 36 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -15,30 +15,30 @@ import 'package:flutter/widgets.dart';
1515
class ResponsiveGridView extends StatelessWidget {
1616
final Axis scrollDirection;
1717
final bool reverse;
18-
final ScrollController controller;
19-
final bool primary;
20-
final ScrollPhysics physics;
18+
final ScrollController? controller;
19+
final bool? primary;
20+
final ScrollPhysics? physics;
2121
final bool shrinkWrap;
22-
final EdgeInsetsGeometry padding;
22+
final EdgeInsetsGeometry? padding;
2323

2424
/// Align grid items together as a group.
2525
final AlignmentGeometry alignment;
2626

2727
/// A custom [SliverGridDelegate] with item size control.
2828
final ResponsiveGridDelegate gridDelegate;
2929
final IndexedWidgetBuilder itemBuilder;
30-
final int itemCount;
31-
final int maxRowCount;
30+
final int? itemCount;
31+
final int? maxRowCount;
3232
final bool addAutomaticKeepAlives;
3333
final bool addRepaintBoundaries;
3434
final bool addSemanticIndexes;
35-
final double cacheExtent;
36-
final int semanticChildCount;
35+
final double? cacheExtent;
36+
final int? semanticChildCount;
3737
final DragStartBehavior dragStartBehavior;
3838
final ScrollViewKeyboardDismissBehavior keyboardDismissBehavior;
3939

4040
ResponsiveGridView.builder({
41-
Key key,
41+
Key? key,
4242
this.scrollDirection = Axis.vertical,
4343
this.reverse = false,
4444
this.controller,
@@ -47,8 +47,8 @@ class ResponsiveGridView extends StatelessWidget {
4747
this.shrinkWrap = false,
4848
this.padding,
4949
this.alignment = Alignment.centerLeft,
50-
@required this.gridDelegate,
51-
@required this.itemBuilder,
50+
required this.gridDelegate,
51+
required this.itemBuilder,
5252
this.itemCount,
5353
this.maxRowCount,
5454
this.addAutomaticKeepAlives = true,
@@ -69,11 +69,11 @@ class ResponsiveGridView extends StatelessWidget {
6969
// must be preserved for the [BoxScrollView] to calculate
7070
// an effective padding with SafeArea. Create a
7171
// temporary variable here to avoid overwriting null.
72-
EdgeInsets paddingHolder = padding ?? EdgeInsets.zero;
72+
EdgeInsets paddingHolder = padding as EdgeInsets? ?? EdgeInsets.zero;
7373
// The maximum number of items that can fit on one row.
7474
int crossAxisCount;
7575
// The maximum number of items that fit under the max row count.
76-
int maxItemCount;
76+
int? maxItemCount;
7777
// Manual padding adjustment for alignment.
7878
EdgeInsetsGeometry alignmentPadding;
7979
// The width of all items and padding.
@@ -86,15 +86,15 @@ class ResponsiveGridView extends StatelessWidget {
8686
if (gridDelegate.crossAxisExtent != null) {
8787
// Fixed item size.
8888
crossAxisCount = (crossAxisExtent /
89-
(gridDelegate.crossAxisExtent + gridDelegate.crossAxisSpacing))
89+
(gridDelegate.crossAxisExtent! + gridDelegate.crossAxisSpacing))
9090
.floor();
9191
crossAxisWidth = crossAxisCount *
92-
(gridDelegate.crossAxisExtent + gridDelegate.crossAxisSpacing) +
92+
(gridDelegate.crossAxisExtent! + gridDelegate.crossAxisSpacing) +
9393
paddingHolder.horizontal;
9494
} else if (gridDelegate.maxCrossAxisExtent != null) {
9595
// Max item size.
9696
crossAxisCount = (crossAxisExtent /
97-
(gridDelegate.maxCrossAxisExtent +
97+
(gridDelegate.maxCrossAxisExtent! +
9898
gridDelegate.crossAxisSpacing))
9999
.ceil();
100100
final double usableCrossAxisExtent = crossAxisExtent -
@@ -107,7 +107,7 @@ class ResponsiveGridView extends StatelessWidget {
107107
} else {
108108
// Min item size.
109109
crossAxisCount = (crossAxisExtent /
110-
(gridDelegate.minCrossAxisExtent +
110+
(gridDelegate.minCrossAxisExtent! +
111111
gridDelegate.crossAxisSpacing))
112112
.floor();
113113
final double usableCrossAxisExtent = crossAxisExtent -
@@ -155,7 +155,7 @@ class ResponsiveGridView extends StatelessWidget {
155155
}
156156
// Force row limit by calculating item limit.
157157
if (maxRowCount != null) {
158-
maxItemCount = maxRowCount * crossAxisCount;
158+
maxItemCount = maxRowCount! * crossAxisCount;
159159
}
160160
// Internal children builder delegate.
161161
SliverChildDelegate childrenDelegate = SliverChildBuilderDelegate(
@@ -191,22 +191,22 @@ class ResponsiveGridView extends StatelessWidget {
191191
class _ResponsiveGridViewLayout extends BoxScrollView {
192192
final ResponsiveGridDelegate gridDelegate;
193193
final SliverChildDelegate childrenDelegate;
194-
final int itemCount;
194+
final int? itemCount;
195195

196196
_ResponsiveGridViewLayout({
197-
Key key,
197+
Key? key,
198198
Axis scrollDirection = Axis.vertical,
199199
bool reverse = false,
200-
ScrollController controller,
201-
bool primary,
202-
ScrollPhysics physics,
200+
ScrollController? controller,
201+
bool? primary,
202+
ScrollPhysics? physics,
203203
bool shrinkWrap = false,
204-
EdgeInsetsGeometry padding,
205-
@required this.gridDelegate,
206-
@required this.childrenDelegate,
204+
EdgeInsetsGeometry? padding,
205+
required this.gridDelegate,
206+
required this.childrenDelegate,
207207
this.itemCount,
208-
double cacheExtent,
209-
int semanticChildCount,
208+
double? cacheExtent,
209+
int? semanticChildCount,
210210
DragStartBehavior dragStartBehavior = DragStartBehavior.start,
211211
ScrollViewKeyboardDismissBehavior keyboardDismissBehavior =
212212
ScrollViewKeyboardDismissBehavior.manual,
@@ -259,13 +259,13 @@ class ResponsiveGridDelegate extends SliverGridDelegate {
259259
assert(childAspectRatio != null && childAspectRatio > 0);
260260

261261
/// Fixed item size.
262-
final double crossAxisExtent;
262+
final double? crossAxisExtent;
263263

264264
/// Maximum item size.
265-
final double maxCrossAxisExtent;
265+
final double? maxCrossAxisExtent;
266266

267267
/// Minimum item size.
268-
final double minCrossAxisExtent;
268+
final double? minCrossAxisExtent;
269269
final double mainAxisSpacing;
270270
final double crossAxisSpacing;
271271
final double childAspectRatio;
@@ -290,19 +290,19 @@ class ResponsiveGridDelegate extends SliverGridDelegate {
290290
// Item height.
291291
double childMainAxisExtent;
292292
// Item width.
293-
double childCrossAxisExtent;
293+
double? childCrossAxisExtent;
294294
// Switch between item sizing behaviors.
295295
if (this.crossAxisExtent != null) {
296296
crossAxisCount =
297-
(constraints.crossAxisExtent / (crossAxisExtent + crossAxisSpacing))
297+
(constraints.crossAxisExtent / (crossAxisExtent! + crossAxisSpacing))
298298
.floor();
299299
childCrossAxisExtent = crossAxisExtent;
300-
childMainAxisExtent = childCrossAxisExtent / childAspectRatio;
300+
childMainAxisExtent = childCrossAxisExtent! / childAspectRatio;
301301
mainAxisStride = childMainAxisExtent + mainAxisSpacing;
302302
crossAxisStride = childCrossAxisExtent + crossAxisSpacing;
303303
} else if (this.maxCrossAxisExtent != null) {
304304
crossAxisCount = (constraints.crossAxisExtent /
305-
(maxCrossAxisExtent + crossAxisSpacing))
305+
(maxCrossAxisExtent! + crossAxisSpacing))
306306
.ceil();
307307
final double usableCrossAxisExtent =
308308
constraints.crossAxisExtent - crossAxisSpacing * (crossAxisCount - 1);
@@ -312,7 +312,7 @@ class ResponsiveGridDelegate extends SliverGridDelegate {
312312
crossAxisStride = childCrossAxisExtent + crossAxisSpacing;
313313
} else {
314314
crossAxisCount = (constraints.crossAxisExtent /
315-
(minCrossAxisExtent + crossAxisSpacing))
315+
(minCrossAxisExtent! + crossAxisSpacing))
316316
.floor();
317317
final double usableCrossAxisExtent =
318318
constraints.crossAxisExtent - crossAxisSpacing * (crossAxisCount - 1);

lib/responsive_row_column.dart

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -23,26 +23,26 @@ class ResponsiveRowColumn extends StatelessWidget {
2323
final MainAxisAlignment rowMainAxisAlignment;
2424
final MainAxisSize rowMainAxisSize;
2525
final CrossAxisAlignment rowCrossAxisAlignment;
26-
final TextDirection rowTextDirection;
26+
final TextDirection? rowTextDirection;
2727
final VerticalDirection rowVerticalDirection;
28-
final TextBaseline rowTextBaseline;
28+
final TextBaseline? rowTextBaseline;
2929
final MainAxisAlignment columnMainAxisAlignment;
3030
final MainAxisSize columnMainAxisSize;
3131
final CrossAxisAlignment columnCrossAxisAlignment;
32-
final TextDirection columnTextDirection;
32+
final TextDirection? columnTextDirection;
3333
final VerticalDirection columnVerticalDirection;
34-
final TextBaseline columnTextBaseline;
35-
final double rowSpacing;
36-
final double columnSpacing;
34+
final TextBaseline? columnTextBaseline;
35+
final double? rowSpacing;
36+
final double? columnSpacing;
3737
final EdgeInsets rowPadding;
3838
final EdgeInsets columnPadding;
3939
get isRow => rowColumn;
4040
get isColumn => !rowColumn;
4141

4242
const ResponsiveRowColumn(
43-
{Key key,
43+
{Key? key,
4444
this.children = const [],
45-
@required this.rowColumn,
45+
required this.rowColumn,
4646
this.rowMainAxisAlignment = MainAxisAlignment.start,
4747
this.rowMainAxisSize = MainAxisSize.max,
4848
this.rowCrossAxisAlignment = CrossAxisAlignment.center,
@@ -96,7 +96,7 @@ class ResponsiveRowColumn extends StatelessWidget {
9696

9797
/// Logic to construct widget [children].
9898
List<Widget> buildChildren(
99-
List<ResponsiveRowColumnItem> children, bool rowColumn, double spacing) {
99+
List<ResponsiveRowColumnItem> children, bool rowColumn, double? spacing) {
100100
// Sort ResponsiveRowColumnItems by their order.
101101
List<ResponsiveRowColumnItem> childrenHolder = children;
102102
childrenHolder.sort((a, b) {
@@ -135,14 +135,14 @@ class ResponsiveRowColumnItem extends StatelessWidget {
135135
final int rowOrder;
136136
final int columnOrder;
137137
final bool rowColumn;
138-
final int rowFlex;
139-
final int columnFlex;
140-
final FlexFit rowFit;
141-
final FlexFit columnFit;
138+
final int? rowFlex;
139+
final int? columnFlex;
140+
final FlexFit? rowFit;
141+
final FlexFit? columnFit;
142142

143143
const ResponsiveRowColumnItem(
144-
{Key key,
145-
@required this.child,
144+
{Key? key,
145+
required this.child,
146146
this.rowOrder = 1073741823,
147147
this.columnOrder = 1073741823,
148148
this.rowColumn = true,
@@ -166,14 +166,14 @@ class ResponsiveRowColumnItem extends StatelessWidget {
166166
}
167167

168168
ResponsiveRowColumnItem copyWith({
169-
Widget child,
170-
int rowOrder,
171-
int columnOrder,
172-
bool rowColumn,
173-
int rowFlex,
174-
int columnFlex,
175-
FlexFit rowFlexFit,
176-
FlexFit columnFlexFit,
169+
Widget? child,
170+
int? rowOrder,
171+
int? columnOrder,
172+
bool? rowColumn,
173+
int? rowFlex,
174+
int? columnFlex,
175+
FlexFit? rowFlexFit,
176+
FlexFit? columnFlexFit,
177177
}) =>
178178
ResponsiveRowColumnItem(
179179
child: child ?? this.child,

0 commit comments

Comments
 (0)