Skip to content

Commit 313fad8

Browse files
authored
🥅 Add more assertions (#411)
1 parent 1e002b9 commit 313fad8

File tree

7 files changed

+20
-8
lines changed

7 files changed

+20
-8
lines changed

CHANGELOG.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,18 @@ that can be found in the LICENSE file. -->
44

55
# Changelog
66

7+
## 8.3.2+1
8+
9+
### Improvements
10+
11+
- Add more assertions. (#411)
12+
713
## 8.3.2
814

915
### Fixes
1016

1117
- Use `Completer` and more accurate conditions to avoid duplicate load assets
12-
when `AssetPickerConfig.pageSize` is smaller than a complete page.
18+
when `AssetPickerConfig.pageSize` is smaller than a complete page. (#407)
1319

1420
## 8.3.1+1
1521

lib/src/constants/config.dart

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,13 @@ class AssetPickerConfig {
3636
this.shouldRevertGrid,
3737
this.limitedPermissionOverlayPredicate,
3838
this.pathNameBuilder,
39-
}) : assert(maxAssets >= 1, 'maxAssets must be greater than 1.'),
40-
assert(
39+
}) : assert(
4140
pickerTheme == null || themeColor == null,
4241
'pickerTheme and themeColor cannot be set at the same time.',
4342
),
43+
assert(maxAssets > 0, 'maxAssets must be greater than 0.'),
44+
assert(pageSize > 0, 'pageSize must be greater than 0.'),
45+
assert(gridCount > 0, 'gridCount must be greater than 0.'),
4446
assert(
4547
pageSize % gridCount == 0,
4648
'pageSize must be a multiple of gridCount.',

lib/src/delegates/asset_picker_builder_delegate.dart

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,8 @@ abstract class AssetPickerBuilderDelegate<Asset, Path> {
5252
Color? themeColor,
5353
AssetPickerTextDelegate? textDelegate,
5454
Locale? locale,
55-
}) : assert(
55+
}) : assert(gridCount > 0, 'gridCount must be greater than 0.'),
56+
assert(
5657
pickerTheme == null || themeColor == null,
5758
'Theme and theme color cannot be set at the same time.',
5859
),

lib/src/delegates/asset_picker_viewer_builder_delegate.dart

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,8 @@ abstract class AssetPickerViewerBuilderDelegate<Asset, Path> {
4040
this.maxAssets,
4141
this.shouldReversePreview = false,
4242
this.selectPredicate,
43-
});
43+
}) : assert(maxAssets == null || maxAssets > 0),
44+
assert(currentIndex >= 0);
4445

4546
/// [ChangeNotifier] for photo selector viewer.
4647
/// 资源预览器的状态保持

lib/src/provider/asset_picker_provider.dart

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,8 @@ abstract class AssetPickerProvider<Asset, Path> extends ChangeNotifier {
2727
this.pageSize = defaultAssetsPerPage,
2828
this.pathThumbnailSize = defaultPathThumbnailSize,
2929
List<Asset>? selectedAssets,
30-
}) {
30+
}) : assert(maxAssets > 0, 'maxAssets must be greater than 0.'),
31+
assert(pageSize > 0, 'pageSize must be greater than 0.') {
3132
if (selectedAssets != null && selectedAssets.isNotEmpty) {
3233
_selectedAssets = selectedAssets.toList();
3334
}
@@ -359,6 +360,7 @@ class DefaultAssetPickerProvider
359360
_hasAssetsToDisplay = _currentAssets.isNotEmpty;
360361
notifyListeners();
361362
}
363+
362364
if (_getAssetsFromPathCompleter == null) {
363365
_getAssetsFromPathCompleter = Completer<void>();
364366
run().then((_) {

lib/src/provider/asset_picker_viewer_provider.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ class AssetPickerViewerProvider<A> extends ChangeNotifier {
1414
AssetPickerViewerProvider(
1515
List<A>? assets, {
1616
this.maxAssets = defaultMaxAssetsCount,
17-
}) {
17+
}) : assert(maxAssets > 0, 'maxAssets must be greater than 0.') {
1818
_currentlySelectedAssets = (assets ?? <A>[]).toList();
1919
}
2020

pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
name: wechat_assets_picker
2-
version: 8.3.2
2+
version: 8.3.2+1
33
description: |
44
An image picker (also with videos and audio)
55
for Flutter projects based on WeChat's UI,

0 commit comments

Comments
 (0)