Skip to content

Commit 874833e

Browse files
committed
🐛 Fix force cast null type issue with WeChat moment special pick type
Fix #94 .
1 parent f54f126 commit 874833e

File tree

1 file changed

+16
-9
lines changed

1 file changed

+16
-9
lines changed

lib/src/delegates/asset_picker_viewer_builder_delegate.dart

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -517,24 +517,31 @@ class DefaultAssetPickerViewerBuilderDelegate
517517
/// 资源选择器将识别并一同返回。
518518
@override
519519
Widget confirmButton(BuildContext context) {
520-
return ChangeNotifierProvider<AssetPickerViewerProvider<AssetEntity>>.value(
521-
value: provider!,
522-
child: Consumer<AssetPickerViewerProvider<AssetEntity>>(
523-
builder: (_, AssetPickerViewerProvider<AssetEntity> provider, __) {
520+
return ChangeNotifierProvider<
521+
AssetPickerViewerProvider<AssetEntity>?>.value(
522+
value: provider,
523+
child: Consumer<AssetPickerViewerProvider<AssetEntity>?>(
524+
builder: (_, AssetPickerViewerProvider<AssetEntity>? provider, __) {
525+
assert(
526+
specialPickerType == SpecialPickerType.wechatMoment ||
527+
provider != null,
528+
'Viewer provider must not be null'
529+
'when the special type is not WeChat moment.',
530+
);
524531
return MaterialButton(
525532
minWidth: () {
526533
if (specialPickerType == SpecialPickerType.wechatMoment) {
527534
return 48.0;
528535
}
529-
return provider.isSelectedNotEmpty ? 48.0 : 20.0;
536+
return provider!.isSelectedNotEmpty ? 48.0 : 20.0;
530537
}(),
531538
height: 32.0,
532539
padding: const EdgeInsets.symmetric(horizontal: 12.0),
533540
color: () {
534541
if (specialPickerType == SpecialPickerType.wechatMoment) {
535542
return themeData.colorScheme.secondary;
536543
}
537-
return provider.isSelectedNotEmpty
544+
return provider!.isSelectedNotEmpty
538545
? themeData.colorScheme.secondary
539546
: themeData.dividerColor;
540547
}(),
@@ -546,7 +553,7 @@ class DefaultAssetPickerViewerBuilderDelegate
546553
if (specialPickerType == SpecialPickerType.wechatMoment) {
547554
return Constants.textDelegate.confirm;
548555
}
549-
if (provider.isSelectedNotEmpty) {
556+
if (provider!.isSelectedNotEmpty) {
550557
return '${Constants.textDelegate.confirm}'
551558
'(${provider.currentlySelectedAssets.length}'
552559
'/'
@@ -559,7 +566,7 @@ class DefaultAssetPickerViewerBuilderDelegate
559566
if (specialPickerType == SpecialPickerType.wechatMoment) {
560567
return themeData.textTheme.bodyText1?.color;
561568
}
562-
return provider.isSelectedNotEmpty
569+
return provider!.isSelectedNotEmpty
563570
? themeData.textTheme.bodyText1?.color
564571
: themeData.textTheme.caption?.color;
565572
}(),
@@ -572,7 +579,7 @@ class DefaultAssetPickerViewerBuilderDelegate
572579
Navigator.of(context).pop(<AssetEntity>[currentAsset]);
573580
return;
574581
}
575-
if (provider.isSelectedNotEmpty) {
582+
if (provider!.isSelectedNotEmpty) {
576583
Navigator.of(context).pop(provider.currentlySelectedAssets);
577584
}
578585
},

0 commit comments

Comments
 (0)